课程提纲 口第一部分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 信息工程学院本科生课程