JMS 1.1规范详解:Java消息服务的核心概念
需积分: 31 85 浏览量
更新于2024-09-21
收藏 711KB PDF 举报
"JMS 1.1 规范"
Java消息服务(JMS)1.1规范是Java平台上用于处理企业级消息传递的标准。它提供了一种统一的接口,允许应用程序在分布式环境中发送、接收和管理消息。JMS 1.1是J2EE(Java 2 Platform, Enterprise Edition)5.0时代的重要组成部分,对于理解和开发基于消息的应用程序至关重要。
**1.1 摘要**
JMS 1.1规范旨在为开发人员提供一种可靠且标准的方法来交换异步消息,这使得不同的组件或系统可以在不同时刻处理信息,提高了系统的可扩展性和解耦性。它不仅定义了消息传递的接口,还规定了消息代理(如消息队列和主题)的行为。
**1.2 概述**
JMS并不是一个电子邮件API,而是设计用来在分布式系统间传输业务数据。它支持两种消息模式:点对点(Queue)和发布/订阅(Topic)。点对点模式确保每个消息仅被一个消费者接收,而发布/订阅模式则允许多个订阅者接收消息。
**1.2.1 是MailAPI吗?**
JMS不是邮件API,它专注于业务逻辑之间的通信,而非个人用户间的邮件通信。
**1.2.2 现存的消息系统**
在JMS出现之前,已有多种消息传递系统,但它们之间缺乏互操作性。JMS的目标是标准化这些系统,促进不同供应商之间的兼容性。
**1.2.3 JMS目标**
JMS的主要目标是提供一种可靠的、面向消息的中间件,用于应用程序之间的通信,支持批量处理、解耦、异步处理和事务性消息传递。
**1.2.4 JMS不包含什么**
JMS不包含具体的消息传递实现,而是定义了一套接口和语义,由实际的消息服务器提供商(如IBM WebSphere MQ、Apache ActiveMQ等)来实现。
**1.3 JMS的要求**
JMS要求实现包括消息创建、发送、接收和管理的一系列功能,并且必须支持事务性消息传递和非事务性消息传递。
**1.4 与其他Java API的关系**
- **JDBC软件**:JMS可以与JDBC结合使用,存储和检索消息到数据库。
- **JavaBean组件**:JavaBeans可以作为消息的生产者或消费者。
- **EJB组件模型**:EJB可以利用JMS进行组件间通信。
- **Java事务API (JTA)**:JMS可以嵌入到JTA事务中,提供分布式事务支持。
- **Java事务服务 (JTS)**:与JTA一起工作,提供跨多个资源的强一致性事务。
- **Java命名和目录接口API (JNDI)**:JMS使用JNDI查找消息代理和目的地。
- **J2EE平台**:JMS是J2EE的一部分,允许在J2EE应用中使用。
- **JMS和EJB组件的集成**:EJB可以通过JMS进行异步调用,增强可扩展性。
**1.5 JMS 1.1的新特性**
JMS 1.1相较于早期版本可能包含了一些增强和改进,例如更好的兼容性、性能提升和新的API特性。
**2 架构**
JMS架构包括生产者、消费者、消息代理(如消息队列和主题)以及管理工具。JMS应用可以是独立的客户端,也可以是EJB或其他Java组件。
**2.6 开发JMS应用**
开发JMS应用涉及创建消息生产者、配置消息代理、编写消息消费者,以及考虑安全、多线程和触发式客户端等问题。
**3 JMS消息模型**
JMS消息模型定义了消息的结构和传递方式,包括基本消息类型、消息头、属性和体,以及消息的生命周期和可靠性保证。
JMS 1.1规范是Java开发者构建高可用、解耦的企业级应用程序的关键工具,通过提供标准的消息传递接口,促进了跨系统的互操作性和可维护性。了解并掌握JMS规范,可以帮助开发人员构建更加健壮、灵活的应用系统。
2011-05-25 上传
2013-03-22 上传
2009-11-09 上传
227 浏览量
2010-08-19 上传
2009-02-28 上传
点击了解资源详情
点击了解资源详情
点击了解资源详情
pdschenxu
- 粉丝: 0
- 资源: 2
最新资源
- BottleJS快速入门:演示JavaScript依赖注入优势
- vConsole插件使用教程:输出与复制日志文件
- Node.js v12.7.0版本发布 - 适合高性能Web服务器与网络应用
- Android中实现图片的双指和双击缩放功能
- Anum Pinki英语至乌尔都语开源词典:23000词汇会话
- 三菱电机SLIMDIP智能功率模块在变频洗衣机的应用分析
- 用JavaScript实现的剪刀石头布游戏指南
- Node.js v12.22.1版发布 - 跨平台JavaScript环境新选择
- Infix修复发布:探索新的中缀处理方式
- 罕见疾病酶替代疗法药物非临床研究指导原则报告
- Node.js v10.20.0 版本发布,性能卓越的服务器端JavaScript
- hap-java-client:Java实现的HAP客户端库解析
- Shreyas Satish的GitHub博客自动化静态站点技术解析
- vtomole个人博客网站建设与维护经验分享
- MEAN.JS全栈解决方案:打造MongoDB、Express、AngularJS和Node.js应用
- 东南大学网络空间安全学院复试代码解析