




已阅读5页,还剩4页未读, 继续免费阅读
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
JMS消息服务Outline 什么是消息服务 为什么使用消息服务 什么是JMS(Java Message Service) JMS的通信方式 JMS应用程序开发步骤 JMS应用程序开发实践 其他的JMS特性 Spring与JMS的集成,JMS与MDB的关系 JMS与Task,RMI,CORBA,WEB SERVICE的区别 什么是消息服务 1. 消息服务是支持松耦合分布式通信的对等通信机制。 2. 消息服务支持软件组件或应用程序之间松耦合分布式通信。 3.支持的数据可以是文本,数值,若是Java应用程序之间的通信,数据可以包含对象。 4.组件或应用程序之间不一定同时运行 。 为什么使用消息服务 1.松散耦合但高内聚 2.避免直接通信 3.保证消息传递 4.异步通信 5.一对多,多对多,多对一通信 什么是JMS JMS(Java 消息服务)是一组标准的API,能够用于访问多种消息服务器。它试图提供一套标准,统一的接口,这套接口适用于多种不同供应商的消息服务器,在这个意义上 ,它和JDBC以及JNDI是相似的。那些消息服务器一般都有自己的本机接口,用本机接口可以直接访问消息服务器。但是,使用本机接口的代码不仅可移植性差,而且每当您希望使用另一个消息服务时,都要学习新的API。而使用JMS,你可以使用一样的API访问IBM的MQSeries消息服务和 JBossMQ消息服务。准许开发者避免使用各供应商特定的API,这当然是JMS的一大 优点。 1.什么是JMS中的消息 消息这个术语在计算机系统中含义非常广泛,它被用来描述不同的操作系统概念,它被用来描述邮件和传真。而在这里,它指的是用于企业应用间的异步通讯。 这里所说的“消息”是指被企业应用而不是人所消费的异步的请求、报告以及事件。消息中包含了重要的用来系统间进行协作的信息。消息中包含了精确的数据格式以描述特定的业务活动,通过应用系统之间的消息交互,使得企业业务过程能够保持一致。 2.JMS中的消息的基本结构 2.1 消息头 2.2 消息属性 2.3 消息体 2.1 消息头 消息头包含标准的,必不可少的消息信息,比如每个消息都有个ID,一个优先级,一个时间戳,一个目标。这些信息大部分都在消息发送到目标之前自动设定。消息头可以通过get和 set方法存取.形式如:setJMSHeaderName,getJMSHeaderName 2.2 消息属性 消息属性是标准的,特定于供应商或特定于应用程序的可选的消息信息,主要作用是帮助消息过滤,消息属性在接收的客户机里是只读的。 2.3 消息体 消息体是实际的消息内容。JMS支持多种格式的消息体。比如:TextMessage,MapMessage,BytesMessage,StreamMessage,ObjectMessage 3.JMS由那些应用部分组成 JMS客户端 :用来发送和接收消息的Java语言程序。 非JMS客户端:这些客户端是用消息系统的本地客户端API编写的,而不是JMS。如果应用先于JMS出来之前,那么它可能会既包括JMS客户端,也包括非JMS客户端。 Messages(消息):每个应用定义了用于在客户端之间进行通讯的消息。 JMS Provider (JMS提供者):实现了JMS规范的消息系统,该系统还提供必须的用于管理和控制全方位的功能。 Administered Objects(被管理的对象):是预先配置的JMS对象,由系统管理员为使用JMS的客户端创建。 4.如何实现JMS客户端程序的跨平台性? 由于有很多JMS 消息系统,它们的底层实现技术各不相同,比如Sun MQ, IBM MQ,BEA MQ,Apache ActiveMQ,那么如何使得JMS客户端针对这些消息系统编程时能够隔离这些产品的变化而具有跨平台特性呢?那就是通过定义被管理的对象来实现。被管理的对象是由管理员通过使用JMS系统提供者的管理工具创建和定制,然后被JMS客户端使用。客户端通过接口来调用这些被管理的对象,从而具备跨平台特性。 主要有两个被管理的对象: ConnectionFactory: 这是客户端用来创建同JMS提供者之间的连接的对象。 Destination :这个对象是客户端用来指明消息被发送的目的地以及客户端接收消息的来源。被管理的对象一般被管理员放在JNDI名字空间中,通常在客户端应用的文档中说明它所需要的被管理对象,以及应以何种JNDI名字来提供这些被管理对象。 下图是被管理对象的关系: 传统的消息服务一般支持点对点通信和发布/订阅通信两种通信模式中的一种。JMS API对两种模式都支持。 1.点对点通信 2.发布/订阅通信 1.点对点通信 2.布/订阅通信 JMS应用程序开发步骤 1.点对点JMS应用程序开发步骤 1.1 使用特定于服务器的机制发布目标(队列)。在JBOSS中,这是通过jbossmq-destinations-service.xml文件完成的。本质上,JNDI条目是为目标而注册的。 1.2 定义产生消息的客户机 1.3 定义接收消息的客户端 1.4 启动消息服务器 1.5 编译并启动客户端 点对点JMS应用程序模型 2.发布/订阅JMS应用程序开发步骤 2.1 使用特定于服务器的机制发布目标(主题)。 2.2 定义发布消息的客户机 2.3 定义订阅主题的客户端 2.4 启动消息服务器 2.5 编译并启动客户端 发布/订阅JMS应用程序模型 JMS API 编程模型 JMS api 类图关系 JMS应用程序开发实践 其他的JMS特性 1.指定消息的持久性 2.设置消息优先级 3.定义消息持续的时间 4.持久订阅 5.主题消息选择器 6.客户端验证 7.事务 Spring与JMS的集成 1.提供JMS抽象API,简化了访问目标(队列或主题)和向指定目标发布消息时JMS的使用。 2.开发人员不需要关心JMS不同版本(例如JMS 1.0.2与JMS 1.1)之间的差异。 3.开发人员不必专门处理JMS异常,因为Spring为所有JMS异常提供了一个未经检查的异常,并在JMS代码中重新抛出。 JMS与MDB的关系 由于消息驱动Bean架构在Java消息服务(JMS)技术之上。 实现接口:MssageDrivenBean和MessageListener. J
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 2025年环保材料家具定制与代工生产合作协议
- 2025年度美发沙龙产品销售提成分配合同范本
- 新型城镇化背景下车位使用权共享租赁合同模板
- 2025年商业空间设计装修半包施工合同
- 2025年环保型印刷品印刷及绿色包装设计一体化服务合同
- 2025年度公司股权无偿赠与及过户登记全程代理合同
- 2025年智能穿戴设备批量采购合同质量保证金协议
- 2025年跨境电商平台合规运营质量保证协议
- 2025年都市时尚咖啡厅吧台设备共享与维护管理协议
- 2025年高科技园区智能化厂房及配套设施租赁协议书
- 图书管理员考试的注意事项和建议试题及答案
- 警校区队管理制度规定
- 郑州银行总行信息科技岗位招聘考试真题2024
- 新发展英语(第二版)综合教程2 课件 Unit 6 Cultural Difference
- 脑卒中失语症的康复护理
- 消防联动调试方案
- 2025年安徽中医药高等专科学校单招职业技能测试题库审定版
- 自动化仪表施工方案
- 注射用重组人TNK组织型纤溶酶原激活剂-药品临床应用解读
- 小儿泄泻(小儿腹泻病)中医临床路径
- 运输车辆司机安全培训考试专项测试题及答案
评论
0/150
提交评论