3.1 背景

企业消息产品把消息看作是轻量级的实体,它由消息头和消息体组成。消息头包含了用 于消息路由和标识的字段;消息体包含了被发送的应用数据。通常情况下,消息的定义随产品的不同有很大的差别。主要的差别是消息头的内容和语 义。某些产品使用自描述的规范的消息数据编码;其他的可能将数据认为是完全不透明的。 某些产品为能被用于标识和解释消息内容的消息描述提供了存储池;其他的就没有。对JMS来讲捕获偶尔冲突的消息模型组合的范围是非常困难的。

3.2 目标

JMS消息模型有下列目标:

• 提供一个单一的统一的消息API。

• 提供一个API,它能创建匹配现存的非JMS应用使用的格式的消息。

• 支持异构应用的开发,异构应用涵盖操作系统、机器架构和计算机语言。

• 支持包含java对象的消息。

• 支持包含可扩展标签语言(XML)页面的消息

3.3 JMS消息

JMS消息由以下部分组成:

• 消息头——所有的消息都支持相同的头字段集。头字段包含了客户端和提供商都要 使用的用于标识和路由消息的值。

• 属性——除了标准的头字段外,消息提供了一个内置的功能来向消息增加可选的头字段。

• 应用专有属性—为消息增加应用专有的头字段提供的机制。

• 标准属性—JMS定义的一些标准属性,它们相当于可选的头字段。

• 提供商专有属性—在集成JMS客户端和JMS提供商本地客户端时可能会用到提供商专有的属性。JMS为这些属性定义了命名规范。

• 消息体——JMS定义了几个消息体类型,这些类型覆盖了大部分当前使用的消息风格。