服务消息对象(SMO)是对“服务数据对象”(SDO)的增强。SMO 提供了一个抽象层,用于处理和控制在服务之间交换的消息。
此信息的所有内容都是作为 SDO 数据对象来访问的,并且具有用来指定 SMO 的整体结构的模式声明。该模式是由 WebSphere Integration Developer 生成的。
所有 SMO 都具有相同的基本结构。该结构由称为 ServiceMessageObject 的根数据对象组成,该根数据对象包含用来表示头、主体和上下文数据的其他数据对象。SMO 主体包含消息的有效内容。头包含起源于特定导入或导出绑定的信息。例如,JMS 绑定。
SMO 提供了一个界面用来访问和修改消息头和消息有效内容。SMO 可以表示许多不同类型的消息的逻辑内容。
WebSphere ESB 将对在交互端点之间传递的消息进行处理。在 WebSphere ESB 中,调解流将把消息作为 SMO 来处理。
WebSphere ESB 将创建 SMO 对象,然后调解流就可使用这些 SMO 对象。
运行时创建的某些 SMO 对象是由运行时所提供的类来实现的。例如,ServiceMessageObject 类是由 WebSphere ESB 提供的。某些 SMO 头类也是由运行时提供的。运行时创建的其他 SMO 对象是由开发者所创建的类来实现的。
当创建调解流时,WebSphere Integration Developer 将指定每个终端(输入、输出或失败)的消息体的类型,还可以选择指定上下文信息的类型。WebSphere ESB 使用此信息来将消息转换为指定类型的 SMO 对象。