서비스 메시지 오브젝트(SMO)는 서비스 사이에 교환되는 메시지 처리 및 조작을 위한 추상 레이어를 제공합니다.
이 모든 정보는 SDO DataObjects로서 처리되며 SMO의 전체 구조를 지정하는 스키마 선언이 있습니다. 스키마는 WebSphere Integration Developer에서 생성됩니다.
모든 SMO는 동일한 기본 구조를 갖습니다. 구조는 ServiceMessageObject라는 루트 데이터 오브젝트로 구성되어 있으며 이 구조에는 헤더, 본문, 첨부 및 컨텍스트 데이터를 나타내는 기타 데이터 오브젝트가 있습니다. 헤더, 본문 및 컨텍스트의 정확한 구조는 통합 개발 시 중개 플로우를 정의하는 방법에 따라 다릅니다. 중개 플로우는 런타임 시 서비스 사이를 중개하는 데 사용됩니다.
일반적으로 응용프로그램 데이터를 보유하는 SM0 본문의 구조는 중개 플로우를 구성할 때 지정하는 WSDL(Web Service Description Language) 메시지로 판별합니다.
SMO 컨텍스트 오브젝트는 사용자 정의 또는 시스템 정의됩니다. 사용자 정의 컨텍스트 오브젝트를 사용하여 중개 기본이 나중에 플로우에서 사용할 수 있는 특성을 저장합니다. 비즈니스 오브젝트에서 사용자 정의 컨텍스트 오브젝트의 구조를 정의하고 요청 플로우의 입력 노드에서 해당 비즈니스 오브젝트를 사용합니다. 상관 컨텍스트, 임시 컨텍스트 및 공유 컨텍스트가 사용자 정의 컨텍스트 오브젝트입니다.
SMO는 메시지 헤더, 메시지 페이로드, 메시지 첨부 및 메시지 컨텍스트에 액세스하고 수정하는 인터페이스를 제공합니다.
런타임은 상호작용 엔드포인트 사이에서 이동하는 메시지에 조작됩니다. 런타임은 중개 플로우가 메시지를 처리하는 데 사용하는 SMO 오브젝트를 작성합니다.
중개 플로우를 작성할 때 WebSphere Integration Developer가 각 터미널의 메시지 본문 유형(입력, 출력 또는 실패) 및 선택적으로 컨텍스트 정보 유형을 지정합니다. 런타임은 이 정보를 사용하여 지정된 유형의 SMO 오브젝트로 메시지를 변환합니다.
동적 라우팅을 제공하기 위해 WSRR(WebSphere Service Registry and Repository) 또는 데이터베이스를 사용하여 상호작용 엔드포인트를 찾아볼 수 있습니다. WSRR 조회 또는 데이터베이스 찾아보기 결과는 런타임이 동적 엔드포인트를 처리할 SMO의 특정 위치에 저장할 수 있습니다.