서비스 메시지 오브젝트(SMO)는 확장된 서비스 데이터 오브젝트(SDO)입니다. SMO는 서비스 간에 교환되는 메시지를 처리하고 조작하기 위한 추상 레이어를 제공합니다.
이 모든 정보는 SDO DataObjects로 액세스되며 SMO의 전체 구조를 지정하는 스키마 선언이 제공됩니다. 스키마는 WebSphere Integration Developer가 생성합니다.
모든 SMO는 동일한 기본 구조를 가집니다. 이 구조는 ServiceMessageObject라는 루트 데이터 오브젝트로 구성되며, 이 오브젝트에는 헤더, 본문 및 컨텍스트 데이터를 나타내는 다른 데이터 오브젝트가 있습니다. SMO 본문에는 메시지 페이로드가 있습니다. 헤더에는 특정 가져오기 또는 내보내기 바인딩에서 가져온 정보가 있습니다. 예: JMS 바인딩.
SMO는 메시지 헤더 및 메시지 페이로드를 액세스하고 수정하기 위한 인터페이스를 제공합니다. SMO는 여러 서로 다른 메시지 유형의 논리적 컨텐츠를 표시할 수 있습니다.
WebSphere Process Server는 상호작용 엔드포인트 간에 전달되는 메시지에 대해 작동합니다. WebSphere Process Server에서 중개 플로우는 메시지를 SMO로서 처리합니다.
동적 라우팅을 제공하기 위해 WSRR(Websphere Service Registry and Repository)을 사용하여 상호작용 엔드포인트를 검색할 수 있습니다. WSRR 조회 결과는 SMO에 저장됩니다.
WebSphere Process Server는 SMO 오브젝트를 작성하고 이 오브젝트는 중개 플로우에 사용될 수 있습니다.
중개 플로우 작성 시 WebSphere Integration Developer는 각 터미널(입력, 출력 또는 실패)에 대한 메시지 본문 유형을 지정하며 컨텍스트 정보 유형을 지정할 수도 있습니다. WebSphere Process Server는 이 정보를 사용하여 메시지를 지정된 유형의 SMO 오브젝트로 변환합니다.
control 요소는 메시지 본문을 설명하는 Encoding, CodedCharSetId 및 Format 필드를 전달합니다. WebSphere MQ 메시지에 메시지 헤더(예: MQRFH2)가 있는 경우, 해당 헤더를 설명하는 Encoding, CodedCharSetId 및 Format 필드가 header 요소 내에서 전달됩니다.
header 요소가 헤더를 설명하는 Encoding, CodedCharSetId 및 Format 필드를 포함합니다. 특히 Format 필드를 정확하게 설정해야 하며(예: MQRFH2 헤더의 경우 MQHRF2) CodedCharSetId 및 Encoding 필드는 분명하지 않은 데이터의 경우에 중요합니다. WebSphere MQ 메시지로 렌더링될 때 이 형식 정보는 이전 MQ 헤더로 작성됩니다(또는 이전 헤더가 없는 경우 MQMD로 작성됨).
header 요소는 또한 각 모델화된 헤더에 대한 부속 요소(rfh 및 rfh2)와 모델화되지 않은 표준 MQ 헤더에 대한 부속 요소(opaque), 그리고 사용자가 제공한 MQ 헤더에 대한 부속 요소(value)를 포함합니다. 이 네 가지 요소 중 하나는 반드시 설정해야 합니다. 헤더 요소에 이 요소들 중 두 개 이상을 설정하면 오류가 발생합니다. value 부속 요소는 사용자가 제공한 헤더 데이터 바인딩에서 사용되는 구조를 저장합니다. 나머지 다른 세 요소(rfh, rfh2 및 opaque)는 다음 섹션에서 설명됩니다.
WebSphere MQ RFH 헤더는 이름-값 쌍의 문자열을 포함하는데, 여기서 각 이름과 값은 텍스트 문자열입니다. 이는 이름 및 값 요소를 포함하는 반복되는 특성 요소로서 SMO로 표시됩니다.
WebSphere MQ RFH2 헤더는 0개 이상의 이름 지정된 폴더를 포함하며, 각 폴더는 일련의 특성과 그룹을 포함합니다. 특성에는 이름, 선택적 유형 및 값(모두 문자열로 표시됨)이 있습니다. 그룹은 이름을 가지며 일련의 특성과 그룹을 포함합니다. RFH2 헤더의 SMO 표시에는 NameValueCCSID 요소가 포함되는데, 이 요소는 WebSphere MQ 메시지에서 폴더를 인코드하는 데 사용되는 CCSID를 판별합니다.
opaque 요소는 표준 구조의 모든 WebSphere MQ header를 표시합니다. 이러한 모든 헤더에 공통적인 필드(StrucId, Version 및 Flags)는 요소로서 표시됩니다. data라는 요소도 있는데 이 요소는 hexBinary 데이터와 같이 헤더의 모델화되지 않은 부분을 포함합니다. opaque 요소를 사용할 때, 보통 올바른 Encoding 및 CodedCharSetId 값을 헤더와 연관시켜 놓으면 데이터 손상을 방지할 수 있습니다.
WebSphere MQ 헤더 필드는 WebSphere MQ 자체에서 사용되는 것과 동일한 세트의 유형을 사용하여 정의합니다. MQLONG 필드는 int로 표시되고 MQBYTEnn 필드는 hexBinary 데이터(nn 길이로 제한됨)로 표시되며, MQCHARnn 필드는 string 데이터(nn 문자로 제한됨)로 표시됩니다.
ⓒ Copyright IBM Corporation 2005, 2006.
이 Information Center는 Eclipse 기술을 기반으로 합니다. (http://www.eclipse.org)