课程提纲 口第一部分Java EE基础 口第二部分Java Web开发 口第三部分JSF框架 口第四部分EJB ◆第12章JMS与消息驱动邡ean(MDB) JMS (Java Message Service) MDB (Message-Dr iven Bean) 口第五部分JPA ▣第六部分SSH框架 Java EE技术 ·1。西北农林彩教大学信息工程学院本科生课程
课程提纲 第一部分 Java EE基础 第二部分 Java Web开发 第三部分 JSF框架 第四部分 EJB ◆第12章 JMS与消息驱动bean (MDB) JMS (Java Message Service) MDB (Message-Driven Bean) 第五部分 JPA 第六部分 SSH框架 Java EE技术 •1 信息工程学院本科生课程
主要内容 JMS(Uava消息服务): 。消息服务概述 ·消息服务器配置 ·JMS ·点对点模式与发布-订阅模式 MDB(消息驱动Bean): ·什么是MDB 。 如何编写MDB ·MyEcl ipse:环境下开发和部署MDB JMS与消息驱动bean 2。 西北农林科教大学信息工程学院本科生课程
主要内容 ❖ JMS (Java消息服务) : • 消息服务概述 • 消息服务器配置 • JMS • 点对点模式与发布-订阅模式 ❖ MDB (消息驱动Bean): • 什么是MDB • 如何编写MDB • MyEclipse环境下开发和部署MDB JMS与消息驱动bean •2 信息工程学院本科生课程
消息服务 冬消息是不同应用程序之间,或同一个应用程序的 不同组件之间的通信方法。当一个应用程序或者 一个组件(生产者)将消息发送到指定的消息目的 地后,该消息可以被一个或多个组件(消费者)读 取并处理。 对于面向消息的应用架构来说,消费生产者与消 息消费者之间完全隔离,消费者只负责将消息送 到目的地,至于该消息的处理细节是消息消费者 关心的。消费者和生产者双方无须相互了解,只 需了解消息格式即可。 JMS与消息驱动bean ·3。西北农林升教大学信息工程学院本科生课程
消息服务 ❖ 消息是不同应用程序之间,或同一个应用程序的 不同组件之间的通信方法。当一个应用程序或者 一个组件(生产者)将消息发送到指定的消息目的 地后,该消息可以被一个或多个组件(消费者)读 取并处理。 ❖ 对于面向消息的应用架构来说,消费生产者与消 息消费者之间完全隔离,消费者只负责将消息送 到目的地,至于该消息的处理细节是消息消费者 关心的。消费者和生产者双方无须相互了解,只 需了解消息格式即可。 JMS与消息驱动bean •3 信息工程学院本科生课程
Java消息服务(MS) 冬JMS是用于访问企业消息系统的开发商中立的API。而企业 消息系统可以协助应用软件通过网络进行消息交互。 JMS的编程过程概括为:应用程序A发送一条消息到消息服 务器的某个目的地(Destination),然后消息服务器把消息转 发给应用程序B。应用程序A和B之间没有直接的代码关连。 Jboss JMS 应用程序A 消息 消息 应用程序B 消息生成器 消息使用者 JMS与消急驱动bean 4。 西北农林科教大学信息工程学院本科生课程
❖ JMS是用于访问企业消息系统的开发商中立的API。而企业 消息系统可以协助应用软件通过网络进行消息交互。 ❖ JMS的编程过程概括为:应用程序A发送一条消息到消息服 务器的某个目的地(Destination),然后消息服务器把消息转 发给应用程序B。应用程序A和B之间没有直接的代码关连。 Java消息服务 (JMS) JMS与消息驱动bean •4 信息工程学院本科生课程
面向消息的中间件(MOM) MOM Consumer Receive Send Producer message message Retrieve Store messages messages JMS与消息驱动bea 5。 品北农林升教大学信息工程学院本科生课程
面向消息的中间件 (MOM) JMS与消息驱动bean •5 信息工程学院本科生课程
消息格式 一条消息由三个部分组成: ● 头(header), ●属性(property)., Header Field ● 主体(body)。 Message JMSDestination JMSDeliveryMode JMSExpiration JMSPriority Various standard flags for JMSMessagelD routing,identification, Header JMSTimestamp expiration etc. JMSCorrelationlD JMSReplyTo JMSType JMSRedelivered Optional name/value pairs,Can be use to filter Properties messages The payload of the Message(one of five Body types) JMS与消急驱动bean 6。 西北农林科教大学信息工程学院本科生课程
消息格式 JMS与消息驱动bean •6 信息工程学院本科生课程 ❖ 一条消息由三个部分组成: ⚫ 头(header), ⚫ 属性(property), ⚫ 主体(body)
消息类型 5种消息类型: ·StreamMessage:消息由序列化对象流组成,读取对象 (反序列化)时必须按照写对象(序列化)的顺序读: ·MapMessage:消息包括“名字/值”。同散列表一样, 数据是无序的,但映射中的每个名字是唯一的; ·TextMessage:消息的主要内容是字符串的形式,这也 是消息服务中经常使用的方式: ·ObjectMessage:消息容纳序列化的对象,包括自定义 的序列化的Java对象; ·BytesMessage:消息的主要形式是二进制数据。 JMS与消息驱动bean ·7。品北农林升教大学信息工程学院本科生课程
❖ 5种消息类型: • StreamMessage:消息由序列化对象流组成,读取对象 (反序列化)时必须按照写对象(序列化)的顺序读; • MapMessage:消息包括“名字/值”。同散列表一样, 数据是无序的,但映射中的每个名字是唯一的; • TextMessage:消息的主要内容是字符串的形式,这也 是消息服务中经常使用的方式; • ObjectMessage:消息容纳序列化的对象,包括自定义 的序列化的Java对象; • BytesMessage:消息的主要形式是二进制数据。 消息类型 JMS与消息驱动bean •7 信息工程学院本科生课程
JMS的两种消息服务模式 JMS支持消息服务模式,即点对点(point-to-point, PTP)和发布/订阅(oub Ii sh/subscr ibe,pub/sub)。 这两种消息传递模型非常相似,其区别如下: ÷PTP消息传递模型中一条消息只能传递给一个接收方。 采用javax.jms.Queue表示; pub/sub消息传递模型允许一条消息传递给多个接收方。 采用javax.jms.Topic表示。 ÷这两种模型都通过扩展公用基类来实现。例如: javax.jms.Queue和javax.jms.Topic都扩展自 javax.jms.Destination类。 JMS与消息驱动bea ·8。品北农林科枝大学信息工程学院本科生课程
❖ JMS支持消息服务模式,即点对点(point-to-point, PTP)和发布/订阅(publish/subscribe, pub/sub)。 这两种消息传递模型非常相似,其区别如下: ❖ PTP 消息传递模型中一条消息只能传递给一个接收方。 采用javax.jms.Queue 表示; ❖ pub/sub 消息传递模型允许一条消息传递给多个接收方。 采用javax.jms.Topic表示。 ❖ 这两种模型都通过扩展公用基类来实现。例如: javax.jms.Queue 和javax.jms.Topic 都扩展自 javax.jms.Destination 类。 JMS的两种消息服务模式 JMS与消息驱动bean •8 信息工程学院本科生课程
PTP(点对点)消息服务模式 监昕 jboss jms 应用程序A1 应用程序A1 应用程序A2 消息 消息 应用程序A2 应用程序A3 消息队列 应用程序3 queue 消息生成者 消息使用者 (队列发送方) (队列接收方) JMS与消息驱动bean ·9。西北农林教大学信息工程学院本科生课程
PTP(点对点)消息服务模式 queue JMS与消息驱动bean •9 信息工程学院本科生课程
pub/sub(发布/订阅)消息服务模式 监听 应用程序A1 iboss jms 应用程序B1 应用程序A2 消息 消息 应用程序B2 应用程序A3 消息主题 应用程序B3 消息生成者 topic 消息使用者 (主题发布者)》 (主题订阅者) JMS与消急驱动bean •10。 西北农林科教大学信息工程学院本科生课程
pub/sub(发布/订阅)消息服务模式 topic JMS与消息驱动bean •10 信息工程学院本科生课程