友情提示:如果本网页打开太慢或显示不完整,请尝试鼠标右键“刷新”本网页!阅读过程发现任何错误请告诉我们,谢谢!! 报告错误
狗狗书籍 返回本书目录 我的书架 我的书签 TXT全本下载 进入书吧 加入书签

JMS简明教程(PDF格式)-第8章

按键盘上方向键 ← 或 → 可快速上下翻页,按键盘上的 Enter 键可回到本书目录页,按键盘上方向键 ↑ 可回到本页顶部!
————未阅读完?加入书签已便下次继续阅读!




JMS 被管理的对象来做到隔离,这些对象由提供商的管理员创建和客户化,接下来由客户端 

使用。通过 JMS  接口来使用它们的客户端是可移植的。管理员使用提供商专有的工具来创 

建它们。  

    有两种类型的JMS 被管理对象:  

    z   ConnectionFactory——这个对象用于客户端来创建和提供商的连接。  

    z   Destination——这个对象用于客户端来指定发送消息的目的地,也是接收消息的来 

        源。  

    被管理对象被管理员放置在JNDI  命名空间。JMS  客户端通常在它的文档中注上它要求 

的JMS 被管理对象和这些对象的JNDI 名字应当如何提供给它。  

    图2�1 解释了JMS 管理如何工作。  

                                  图2�1 JMS 管理  



                                                                                    



2。4  两种消息风格  



    JMS 应用既可以使用PTP 风格又可以使用Pub/Sub 消息风格,在后面的章节中会有更详 

细的描述。应用也可以将两种风格组合到一个应用中。消息的这两种风格常被称为消息域。 

JMS 提供了这两种消息域,因为它们代表了两种通用的消息模型。  

    当使用JMS API 时,开发人员可以使用两种消息模型的接口和方法。当使用接口时,消 

息系统的行为可能会稍有不同,因为两种消息域有不同的语义。这些语义的差别在第 5                                     章 

 “JMS 点对点模型”和第6 章“JMS 发布/订阅模型”中描述。  



                                                                          13 / 66  

  


…………………………………………………………Page 14……………………………………………………………

                                               



2。5  JMS 接口  



     JMS 基于一系列通用的消息概念。每个JMS 消息域—PTP 和Pub/Sub—也为这些概念定 

义了各自的接口集。  

     表2�1 PTP 和Pub/Sub 接口的关系  



        JMS 公共接口                       PTP 专有接口                     Pub/Sub 专有接口  



ConnectionFactory              QueueConnectionFactory         TopicConnectionFactory  



Connection                     QueueConnection                TopicConnection  



Destination                    Queue                          Topic  



Session                        QueueSession                   TopicSession  



MessageProducer                QueueSender                    TopicPublisher  



MessageConsumer                QueueReceiver              , TopicConsumer  

                               QueueBrowser  



     JMS 通用接口提供了一个独立于PTP 和Pub/Sub 消息域的域视图。鼓励JMS 客户端程序 

员使用这些接口来创建他们的客户端程序。  

     下面列出了这些JMS 概念的简要定义。参见第4 章“JMS 通用工具”来详细了解这些 

概念。  

     对于两种消息域的差别的详细内容,参见第5 章“JMS 点对点模型”和第6 章“JMS 发 

布/订阅模型”。  

     z   ConnectionFactory——客户端使用这个被管理对象来创建一个Connection 。  

     z   Connection——一个到JMS 提高商的活动连接。  

     z   Destination——封装了消息目的地标识的被管理对象。  

     z   Session——一个用于发送和接收消息的单线程上下文。  

     z   MessageProducer——一个由Session 创建用于往目的地发送消息的对象。  

     z   MessageConsumer——一个由Session 创建用于接收发送到目的地的消息的对象。  

                                   图2�1 JMS 对象间关系概览  



                                                                                        

     在这个文档中使用的术语“消费”是指通过JMS 客户端接收消息;也就是说,一个JMS 

提供商已经收到一个消息并将它给了它的客户端。由于 JMS  支持同步和异步接收消息,因 



                                                                                      14 / 66  

  


…………………………………………………………Page 15……………………………………………………………

                                         



此术语“消费”在不需要区分它们的时候使用。  

    术语“生产”用作发送消息的最通用的术语。它指给予 JMS  提供商一个消息以转发到 

一个目的地。  



2。6  开发一个JMS 应用  



    广义的讲,一个JMS 应用是一个或多个交换消息的JMS 客户端。应用也涉及非JMS 客 

户端;但是,这些非JMS 客户端使用JMS 提供商的本地API 而不是JMS 的API 。  

    一个JMS 应用可以被架构和部署为一个单元。在许多情况下,JMS 客户端是被逐渐增加 

到线程的应用中的。  

    应用使用的消息定义可以来源于JMS ,或者他们可能已经由应用的非JMS 部分定义了。  



2。6。1 开发一个JMS 客户端  



    典型的JMS 客户端执行下面的JMS 设置过程:  

    z   使用JNDI 来发现ConnectionFactory 对象。  

    z   使用JNDI 来发现一个或多个Desitination 对象。  

    z   使用ConnectionFactory 来创建一个具有消息转发约束的JMS Connection 。  

    z   使用Connection 来创建一个或多个JMS Session 。  

    z   使用Session 和Destination 来创建需要的MessageProducer 和MessageConsumer。  

    z   告诉Connection 开始转发消息。  

    此时,客户端有了生产和消费消息的基本的JMS 设置。  



2。7  安全  



    JMS 没有提供控制或配置消息完整或消息私密的特性。  

    这期望由 JMS  提供商来提供。也期望由提供商专有的管理工具来配置这些服务。客户 

端将得到正确的安全配置作为他们使用的被管理对象的一部分。  



2。8  多线程  



    JMS  已经要求它的所有对象都支持并发誓要。由于支持并非访问通常会增加一些成本和 

复杂性,所以 JMS       限制了那些很自然要被多线程客户端并发访问的对象的要求。其他的都 

被设计成在一个时间只能被一个逻辑线程访问。  

                           表2�2 支持并发使用的JMS 对象  



               JMS 对象                                 支持并非使用  



               Destination                                YES  



            ConnectionFactory                             YES  



               Connection                                 YES  



                Session                                   NO  



            MessageProducer                               NO  



                                                                           15 / 66  

  


…………………………………………………………Page 16……………………………………………………………

                                    



          MessageConsumer                         NO  



   JMS 定义了一些特殊的规则来限制Session  的并发使用。由于他们要求比在这里呈现的 

更多的JMS 知识,所以他们将在后面描述。这里我们将描述他们必须遵守的基本原理。  

   有两个原因要限制并发访问Session 。第一个,Session 是支持事务的JMS 实体。实现多 

线程的事务是非常困难的。第二,Session 支持异步的消费消息
返回目录 上一页 下一页 回到顶部 赞(1) 踩(1)
未阅读完?加入书签已便下次继续阅读!
温馨提示: 温看小说的同时发表评论,说出自己的看法和其它小伙伴们分享也不错哦!发表书评还可以获得积分和经验奖励,认真写原创书评 被采纳为精评可以获得大量金币、积分和经验奖励哦!