版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
1、 Page 1 Page 2 Page 2t中间件的概念及特点中间件的概念及特点t中间件技术分类中间件技术分类t 中间件举例中间件举例t 中间件的应用中间件的应用t 小结小结中间件中间件 Page 3 Page 3t中间件的概念及特点中间件的概念及特点t中间件技术分类中间件技术分类t 中间件举例中间件举例t 中间件的应用中间件的应用t 小结小结中间件中间件 Page 4 Page 4t 中间件是泛指能够屏蔽操作系统和网络协议的差异,能够为异构系中间件是泛指能够屏蔽操作系统和网络协议的差异,能够为异构系统之间提供通讯服务的软件。统之间提供通讯服务的软件。t 该术语最早出现在该术语最早出现在198
2、0年代后期,主要用于描述网络连接管理软年代后期,主要用于描述网络连接管理软件。在件。在1990年代中期,随着网络技术快速发展,中间件的概念日年代中期,随着网络技术快速发展,中间件的概念日益普及。益普及。什么是中间件?什么是中间件? .硬件操作系统硬件操作系统应用应用中间件(分布系统服务) Page 5 Page 5t Software that connects two otherwise separate applications.t IEEE: 中间件通过提供简单、一致、集成的分布编程环境,简化中间件通过提供简单、一致、集成的分布编程环境,简化分布应用的设计、编程和管理。本质上,中间件是一
3、个分布软件层,分布应用的设计、编程和管理。本质上,中间件是一个分布软件层,抽象了底层分布环境(网络、主机、操作系统、编程语言)的复杂抽象了底层分布环境(网络、主机、操作系统、编程语言)的复杂性和异构性。性和异构性。t OMG:中间件就是解决网络环境下互操作问题的软件,它同时还:中间件就是解决网络环境下互操作问题的软件,它同时还提供事务、目录、时间等其他基本服务。提供事务、目录、时间等其他基本服务。本质上说,中间件主要解决异构网络环境下分布式应用软件的本质上说,中间件主要解决异构网络环境下分布式应用软件的通信、互操作和协同问题,可屏蔽并发控制、事务管理和网络通信通信、互操作和协同问题,可屏蔽并发
4、控制、事务管理和网络通信等各种实现细节,提高应用系统的易移植性、适应性和可靠性。不等各种实现细节,提高应用系统的易移植性、适应性和可靠性。不少人将中间件和分布计算环境视为等同的概念。少人将中间件和分布计算环境视为等同的概念。中间件的定义中间件的定义 Page 6 Page 6t 左右之间的左右之间的“中中”:位于应用系统间:位于应用系统间, 提供通信服务提供通信服务t 上下之间的上下之间的“中中”:位于应用系统和操作系统间:位于应用系统和操作系统间,提供提供应用编程接应用编程接口口(抽象抽象)并管理计算资源并管理计算资源“中间中间”的理解的理解 Page 7 Page 7中间件的开放中间件的开
5、放 In an open middleware-based distributed systerm, the protocols used by each middleware layer should be the same, as well as the interfaces they offer to applications.1.23 Page 8 Page 8t 中间件的主旨是简化分布系统的构造:在构造分布系统的过程中,中间件的主旨是简化分布系统的构造:在构造分布系统的过程中,开发人员经常会遇到网络通信、同步、激活开发人员经常会遇到网络通信、同步、激活/去活、并发、可靠性、去活、并发
6、、可靠性、事务性、容错性、安全性、伸缩性、异构性等问题,中间件正是事务性、容错性、安全性、伸缩性、异构性等问题,中间件正是辅助应用开发者解决这些问题的软件系统辅助应用开发者解决这些问题的软件系统t 中间件的基本思想:抽取分布系统构造中的共性问题,封装这些中间件的基本思想:抽取分布系统构造中的共性问题,封装这些共性问题的解决机制,对外提供简单统一的接口,从而减少开发共性问题的解决机制,对外提供简单统一的接口,从而减少开发人员在解决这些共性问题时的难度和工作量。人员在解决这些共性问题时的难度和工作量。中间件的基本思想中间件的基本思想 Page 9 Page 9t 通信支持通信支持:大多数基于中间件
7、的系统包含有分布式操作,即系统需要与其它分布:大多数基于中间件的系统包含有分布式操作,即系统需要与其它分布式服务或系统进行交互,中间件需要对此进行支持式服务或系统进行交互,中间件需要对此进行支持n屏蔽现代屏蔽现代OS提供的网络操作提供的网络操作API(如套接字)这组底层、复杂的接口(如套接字)这组底层、复杂的接口消息、消息、RPC、RMIt 并发支持并发支持:分布式应用系统一般需要具有较强的处理能力,即系统可以处理很多:分布式应用系统一般需要具有较强的处理能力,即系统可以处理很多的客户请求。一般需要采用并发技术(如多进程或多线程),中间件需要对此提的客户请求。一般需要采用并发技术(如多进程或多
8、线程),中间件需要对此提供支持。供支持。n提供一种提供一种“单线程单线程”或或“单进程单进程”的编程模型的编程模型t 公共服务公共服务:将应用中的共性抽取出来以公共服务的形式由中间件实现,减少了系:将应用中的共性抽取出来以公共服务的形式由中间件实现,减少了系统开发的工作量,并使得应用开发者更能关注业务功能的需求、设计和实现,有统开发的工作量,并使得应用开发者更能关注业务功能的需求、设计和实现,有助于提高软件质量。助于提高软件质量。n 名字和目录服务、安全服务、事务服务、持久化服务名字和目录服务、安全服务、事务服务、持久化服务中间件的主要功能中间件的主要功能 Page 10 Page 10GUI
9、应用逻辑数据库或其它资源客户端应用服务器数据服务器中间件中间件中间件中间件API中间件APISQL等网络第一层第三层第二层采用了中间件的三层采用了中间件的三层C/SC/S模式模式 Page 11 Page 11中间件协议所处的层次中间件协议所处的层次 Page 12 Page 12Standish Group的研究报告的研究报告: (分析了分析了100个关键应用系统)个关键应用系统)t 应用开发:业务逻辑程序和应用逻辑程序平均仅占总程序量的30,而基础程序占了70 !若是采用新一代的中间件产品,同时配以可复用的商务对象构件,则开发费用可节省25 至60。t 系统运行:没有使用中间件的应用系统,
10、其初期的资金及运行费用的投入要比同规模的使用中间件的应用系统多一倍。t 开发周期:基础软件的开发是一件极耗时的工作。若使用标准商业中间件则可缩短开发周期5075。t 减少项目开发风险:没有使用标准商业中间件的关键应用系统开发项目的失败率高于90。t 应用集成:依靠标准的中间件可以将现有的应用、新的应用和购买的商务构件融合在一起进行应用集成。中间件的优越性中间件的优越性 Page 13 Page 13t 系统维护:基础(中间件软件)的自我开发是要付出很高代价的、此 外,每年维护自我开发的基础(中间件)软件的开支则需要当初开发费用的15-25,每年应用程序的维护开支也还需要当初项目总费用的10-2
11、0左右。而在一般情况下,购买标准商业中间件每年只需付产品价格的15-20的维护费。t 质量:基于企业自我建造的基础(中间件)软件平台上的应用系统,每增加一个新的模块,就要相应地在基础(中间件)软件之上进行改动。 Standish Group在调研过程中,曾在中间件的优越性(中间件的优越性(2 2) Page 14 Page 14t中间件的概念及特点中间件的概念及特点t中间件技术分类中间件技术分类t 中间件举例中间件举例t 中间件的应用中间件的应用t 小结小结中间件中间件 Page 15 Page 15t 由于中间件技术和产品正在快速的发展,要精确的给出其完整由于中间件技术和产品正在快速的发展,
12、要精确的给出其完整的分类目前尚有一定的困难。一种比较常见的分类方式:的分类目前尚有一定的困难。一种比较常见的分类方式:nRPC中间件中间件nORB中间件中间件n消息中间件消息中间件n数据库中间件数据库中间件n事务处理中间件事务处理中间件nWeb中间件中间件n企业应用集成中间件企业应用集成中间件nInternet资源共享中间件资源共享中间件n专用中间件专用中间件 报表制作与数据分析、安全、地图应用系统、工业生产管理中间件的分类中间件的分类 基础通信中间基础通信中间件件 Page 16 Page 16t中间件的概念及特点中间件的概念及特点t中间件技术分类中间件技术分类t 中间件举例中间件举例t 中
13、间件的应用中间件的应用t 小结小结中间件中间件 Page 17 Page 17t RPC中间件中间件t ORB中间件中间件t 消息中间件消息中间件t 数据库中间件数据库中间件t 事务处理中间件事务处理中间件t 应用服务器中间件应用服务器中间件t Web中间件中间件t 企业应用集成企业应用集成EAI中间件中间件中间件举例中间件举例 Page 18 Page 18t RPC中间件中间件t ORB中间件中间件t 消息中间件消息中间件t 数据库中间件数据库中间件t 事务处理中间件事务处理中间件t 应用服务器中间件应用服务器中间件t Web中间件中间件t 企业应用集成企业应用集成EAI中间件中间件中间件
14、举例中间件举例 Page 19 Page 19RPC(Remote Procedure Call)RPC(Remote Procedure Call):第一个得到广泛认可的通第一个得到广泛认可的通信中间件技术信中间件技术t 不少人认为是最初由不少人认为是最初由 Sun 微系统提出微系统提出 RFC,并应用于,并应用于Unix系统系统t IETF ONC 宪章重新修订了宪章重新修订了Sun版本,使得版本,使得ONC RPC协议成为协议成为IETF标准协议标准协议t 两种主流标准:两种主流标准: n OSF(Open System Foundation)/DCE (Distributed Comp
15、uting Environment)的RPC,n SUN/ONC(Open Network Computing)的RPCRPCRPC中间件中间件 Page 20 Page 20t 操作系统:运行调用和被调用进程的计算机可能有明显操作系统:运行调用和被调用进程的计算机可能有明显不同的体系结构和数据表示格式不同的体系结构和数据表示格式t 网络通信:调用进程和被调用进程间的网络比本地计算网络通信:调用进程和被调用进程间的网络比本地计算机有更复杂的特性。例如,它可能限制消息尺寸,并且机有更复杂的特性。例如,它可能限制消息尺寸,并且有丢失和重排消息的可能,安全问题有丢失和重排消息的可能,安全问题t 编程
16、语言:跨语言之间的互操作问题编程语言:跨语言之间的互操作问题RPCRPC的面临的主要挑战的面临的主要挑战 Page 21 Page 21t 沿用用户熟悉的编程模式,调用远端过程并将结果返沿用用户熟悉的编程模式,调用远端过程并将结果返回。通信一般采用同步方式(回。通信一般采用同步方式(Request-Wait-ReplyRequest-Wait-Reply)n允许程序允许程序(Client)调用驻留在其他机器上的过程调用驻留在其他机器上的过程(Server),并且使远程的过程调用看起来和本地的过,并且使远程的过程调用看起来和本地的过程调用没有区别程调用没有区别t 基本方法:引入存根(基本方法:引
17、入存根(StubStub)的概念)的概念RPCRPC的基本思想的基本思想 Page 22 Page 22RPCRPC的工作机制的工作机制 t 在发送方的地址空间里创建一个远程组件在发送方的地址空间里创建一个远程组件( (如过程如过程) )的代理,在的代理,在接收方的地址空间里创建一个桩(接收方的地址空间里创建一个桩(StubStub)。)。发送方与代理通信,代发送方与代理通信,代理再和接收方侧的理再和接收方侧的StubStub通信。通信。t 在这种体系结构下,组件间的远程通信封装在代理在这种体系结构下,组件间的远程通信封装在代理StubStub通信通信中,它是由建立在中间件中,它是由建立在中间
18、件APIAPI基础上的基础上的IDLIDL编译器生成的。发送方只编译器生成的。发送方只和本地代理通信,接收方从本地和本地代理通信,接收方从本地StubStub得到所有的请求。得到所有的请求。 调用过程调用过程接收方接收方Stub远程过程远程过程发送方发送方Stub进程边界进程边界 Page 23 Page 23RPC的工作机制的工作机制(续续1)t Service interface: the procedures that are available for remote callingt Invocation semantics choice: at-least-once or at-mo
19、st-oncet Generally implemented over request-reply protocolt Building blocksnCommunication modulenClient stub procedure: marshalling, sending, unmarshallingnDispatcher: select one of the server stub proceduresnServer stub procedure: unmarshalling, calling, marshallingclient RequestReplyCommunicationC
20、ommunication module moduledispatcherservice client stub server stubprocedureprocedureclient process server process procedureprogram Page 24 Page 24PRC的参数传递的参数传递 Page 25 Page 25编写客户与服务器的步骤编写客户与服务器的步骤 Page 26 Page 26t 至少一次语义至少一次语义(at least one semantics):这种方法要求不断这种方法要求不断重试直至应答消息到来。它保证重试直至应答消息到来。它保证RPC
21、至少要执行一次,但至少要执行一次,但也有可能执行多次。也有可能执行多次。- 缺省值缺省值t 最多一次语义(最多一次语义(at most once semantics):若有问题立即放若有问题立即放弃并报告失败。它确保弃并报告失败。它确保RPC最多执行一次,但可能没有执最多执行一次,但可能没有执行行t 不作任何保证。不作任何保证。RPC可以不被执行或执行相当多次。当服可以不被执行或执行相当多次。当服务器崩溃时,客户得不到任何帮助和保证。这种方法最大务器崩溃时,客户得不到任何帮助和保证。这种方法最大的优点是易实现的优点是易实现 t 这三种方法都不是成熟的方法。人们需要的是精确的执行这三种方法都不是
22、成熟的方法。人们需要的是精确的执行一次的语义一次的语义(exactly once semantics),但通常是不容易实现但通常是不容易实现的的RPCRPC消息的语义消息的语义 Page 27 Page 27Client侧的侧的stub如何定位如何定位servert 可能的解决方法:可能的解决方法:1.1. 当系统生成与调用者对应的当系统生成与调用者对应的stubstub时,将远程过程的地址也时,将远程过程的地址也并入其中。并入其中。 不灵活!不灵活!2.2. 在进行调用之前,与调用者对应的在进行调用之前,与调用者对应的stubstub向系统中的其他节向系统中的其他节点进行组播,请求有关的节点
23、通报其地址。点进行组播,请求有关的节点通报其地址。一系列的消息传递!一系列的消息传递!3.3.由系统管理一个表,其表项内容为由系统管理一个表,其表项内容为节点地址节点地址该节点上将运行的远程过程的名字该节点上将运行的远程过程的名字常用的方法!常用的方法! Page 28 Page 28t 目标目标: 提供一个可以作为分布式应用平台的一致的、提供一个可以作为分布式应用平台的一致的、无缝环境。无缝环境。t 提供的环境由一组工具、服务以及使它们能够有提供的环境由一组工具、服务以及使它们能够有效工作的内部结构组成。效工作的内部结构组成。t DCE可运行在许多不同的机器、操作系统以及网可运行在许多不同的
24、机器、操作系统以及网络上。络上。t DCE可以在许多领域内同现有的标准协同工作。可以在许多领域内同现有的标准协同工作。t 编程模式为客户编程模式为客户/服务器模式。服务器模式。RPCRPC中间件例:中间件例:DCEDCE Page 29 Page 29DCEDCE部分合成的大致思路部分合成的大致思路 硬件硬件主操作系统和网络主操作系统和网络DCE线程线程DCE远程过程调用、认证远程过程调用、认证文件服务文件服务时间服务时间服务 目录服务目录服务安全服务安全服务分布式应用分布式应用 Page 30 Page 30t DCE的主要目的:使系统中任何进程都可以访问所有资源t 目录服务:记录所有资源位
25、置并提供它们的用户友好名称n资源:用户、机器、信元、服务器、服务、文件、安全数据n每个资源有个独立的名字n信元名:符合X.500 规范DCEDCE的目录服务的目录服务 DCE名字可有五个部分名字可有五个部分 Page 31 Page 31DCEDCE中客户到服务器的绑定中客户到服务器的绑定 Page 32 Page 32t 假设:拍卖期间只开放一个拍卖品给竞拍者竞价,拍卖结假设:拍卖期间只开放一个拍卖品给竞拍者竞价,拍卖结束时,拍卖者宣布拍卖结果。束时,拍卖者宣布拍卖结果。t 参考实现方式:参考实现方式:n 拍卖程序为竞拍者提供两个远程过程:一个用于竞拍卖程序为竞拍者提供两个远程过程:一个用于
26、竞拍者注册,一个用于竞拍者投标。拍者注册,一个用于竞拍者投标。n每个竞拍者程序均提供如下远程过程每个竞拍者程序均提供如下远程过程: (1)允许拍卖者向)允许拍卖者向竞拍者宣布拍卖开始;竞拍者宣布拍卖开始; (2)允许拍卖者向)允许拍卖者向竞拍者通告最新标价;竞拍者通告最新标价; (3)允许拍卖者向)允许拍卖者向竞拍者宣布拍卖结束。竞拍者宣布拍卖结束。应用例应用例: : 基于基于RPCRPC的拍卖系统的拍卖系统 Page 33 Page 33t 简单的简单的Call/Return语法,适合小型简单的不需要采用异步语法,适合小型简单的不需要采用异步通信方式的应用。通信方式的应用。t 不足:不足:n
27、 一对一通信方式。不太适合大型的关键型应用。一对一通信方式。不太适合大型的关键型应用。关键型应用需考虑网络或系统的故障、处理多个网关键型应用需考虑网络或系统的故障、处理多个网络连接、可移植性、缓冲及流量控制、进程之间的络连接、可移植性、缓冲及流量控制、进程之间的同步等多种问题。同步等多种问题。n只能建立分布式应用之间的静态连接关系。只能建立分布式应用之间的静态连接关系。一旦桩程序和一旦桩程序和C/S端的应用编译、连接在一起,则端的应用编译、连接在一起,则客户端的功能就不能再改变)。客户端的功能就不能再改变)。RPCRPC中间件小结中间件小结 Page 34 Page 34t RPC中间件中间件
28、t ORB中间件中间件t 消息中间件消息中间件t 数据库中间件数据库中间件t 事务处理中间件事务处理中间件t 应用服务器中间件应用服务器中间件t Web中间件中间件t 企业应用集成企业应用集成EAI中间件中间件中间件举例中间件举例 Page 35 Page 35ORB中间件中间件tORB中间件基于远程方法调用技术中间件基于远程方法调用技术t远程过程调用系统试图使对另一台机器上的过程进行远程过程调用系统试图使对另一台机器上的过程进行调用看起来像是对本地同一地址空间中过程进行调用;调用看起来像是对本地同一地址空间中过程进行调用;t远程方法调用技术把编程的级别从过程调用抬高到对远程方法调用技术把编程
29、的级别从过程调用抬高到对象的调用,其本质上模仿象的调用,其本质上模仿RPC技术,但是多了对象引用技术,但是多了对象引用的概念。的概念。 t著名的著名的ORB标准:标准:nOMG的的CORBA ORB (产品:产品: IONA的的Orbix, OrbixWeb, Borland 的的 VisiBroker)nMicrosoft 的的 DCOM ORBnJava 的的RMI Page 36 Page 36object Aobject BskeletonRequestproxy for BReplyCommunicationRemote Remote referenceCommunication m
30、odule modulereference module modulefor Bs class& dispatcherremoteclient servertranslates between local and remote object references and creates remote object references. Uses remote object tableThe architecture of RMIRMI software - between application level objects and communication and remote refer
31、ence modulesDispatcher - gets request from communication module and invokes method in skeleton (using methodID in message).carries out Request-reply protocolProxy - makes RMI transparent to client. Class implements remote interface. Marshals requests and unmarshals results. Forwards request.Skeleton
32、 - implements methods in remote interface. Unmarshals requests and marshals results. Invokes method in remote object. Page 37 Page 37t 与与RPC的区别:用面向对象方法取代了过程。的区别:用面向对象方法取代了过程。t 参考实现方式:参考实现方式:n 拍卖对象为竞拍者提供两个拍卖对象为竞拍者提供两个远程方法远程方法:一个用于竞:一个用于竞拍者注册,一个用于竞拍者投标。拍者注册,一个用于竞拍者投标。n每个竞拍者对象均提供如下每个竞拍者对象均提供如下远程方法远程方法:
33、 (1)允许拍卖者向)允许拍卖者向竞拍者宣布拍卖开始;竞拍者宣布拍卖开始; (2)允许拍卖者向)允许拍卖者向竞拍者通告最新标价;竞拍者通告最新标价; (3)允许拍卖者向)允许拍卖者向竞拍者宣布拍卖结束。实现方式竞拍者宣布拍卖结束。实现方式与与RMI方式类似方式类似。例:基于例:基于ORBORB的拍卖系统的拍卖系统 Page 38 Page 38n每个对象每个对象(拍卖者和竞拍者拍卖者和竞拍者)必须在必须在ORB注册注册并接受并接受ORB请求。请求。n通过通过ORB竞拍者竞拍者向拍卖者对象发送注册请求并参与投标;向拍卖者对象发送注册请求并参与投标;拍卖者可调用每个竞拍者对象的方法来宣布拍拍卖者可
34、调用每个竞拍者对象的方法来宣布拍卖开始,通告最新标价,宣布拍卖结束。卖开始,通告最新标价,宣布拍卖结束。例:基于例:基于ORBORB的拍卖系统(续)的拍卖系统(续) Page 39 Page 39t 基于面向对象技术,利用软件总线基于面向对象技术,利用软件总线ORB调用远端的对象。调用远端的对象。t 适用:对象接口变化不频繁,不会导致代码经常被重新适用:对象接口变化不频繁,不会导致代码经常被重新编译及链接的情况。编译及链接的情况。t 不足:主要采用同步、点对点通信方式。当网络层不可不足:主要采用同步、点对点通信方式。当网络层不可靠时,很难定位错误。靠时,很难定位错误。ORBORB中间件小结中间
35、件小结 Page 40 Page 40t RPC中间件中间件t ORB中间件中间件t 消息中间件消息中间件t 数据库中间件数据库中间件t 事务处理中间件事务处理中间件t 应用服务器中间件应用服务器中间件t Web中间件中间件t 企业应用集成企业应用集成EAI中间件中间件中间件举例中间件举例 Page 41 Page 41t 大多采用同步通信:客户发出调用后,必须等待服务对象完大多采用同步通信:客户发出调用后,必须等待服务对象完成处理并返回结果后才能继续执行;成处理并返回结果后才能继续执行;t 客户和服务对象的生命周期紧密耦合:客户进程和服务对象客户和服务对象的生命周期紧密耦合:客户进程和服务对
36、象进程都必须正常运行;如果由于服务对象崩溃或者网络故障进程都必须正常运行;如果由于服务对象崩溃或者网络故障导致客户的请求不可达,客户会接收到异常;导致客户的请求不可达,客户会接收到异常;t 点对点通信:客户的一次调用只发送给某个单独的目标对象。点对点通信:客户的一次调用只发送给某个单独的目标对象。 t 当然,现在的基于当然,现在的基于ORB、EJB的应用服务器等都支持基于消的应用服务器等都支持基于消息的通信息的通信RPCRPC、ORBORB的一些问题的一些问题 Page 42 Page 42t 消息中间件消息中间件MOM (Message Oriented Middleware) 指的是利用高
37、指的是利用高效可靠的消息传递机制进行平台无关的数据交流,并基于数据通信来进行效可靠的消息传递机制进行平台无关的数据交流,并基于数据通信来进行分布式系统的集成。分布式系统的集成。n主要通过消息传递和消息队列模型,消息传递和消息队列模型,来完成分布异构环境下数据和控制的处理,采用多种机制来保证消息可靠n可在分布环境下扩展进程间的通信,并支持多通讯协议、语言、应用程序、硬件和软件平台、高效、安全的传输。t 适用于需要在多个进程之间进行可靠的数据传送的分布式环境,且适用于需要在多个进程之间进行可靠的数据传送的分布式环境,且特别适合松耦合的系统间的通信。特别适合松耦合的系统间的通信。n常采用异步通信方式
38、,消息接收者和发送者的生命期可以是不一样的n支持一对一、一对多,多对一、多对多通信消息中间件消息中间件MOMMOM Page 43 Page 43tCommunication using messagestMessages stored in message queuestOptional message server (broker) decouples client and server基本思想基本思想 Page 44 Page 44t 消息消息= 消息头消息头(路由信息路由信息) + 消息正文消息正文n支持异步发送支持异步发送n不指定格式不指定格式(松散约束松散约束)t 目的地目的地 可
39、可= 命名的消息存储仓库命名的消息存储仓库n解耦合消息的产生者与消费者解耦合消息的产生者与消费者n便于重定向或者改变调用流程便于重定向或者改变调用流程t 运行环境运行环境= 多样化的发送方式多样化的发送方式n服务质量服务质量: Reliable, transacted, prioritized, deadline-basedn通信方式通信方式: publish-and-subscribe、 MessageQueuing等等.t 消息交换模式消息交换模式nRequest-response, fire-and-forget, request-async response主要概念主要概念 Page
40、45 Page 45t 主要功能:主要功能: 消息队列、触发器功能、传递消息、数据格式翻译、安全性消息队列、触发器功能、传递消息、数据格式翻译、安全性(对队列存取进行权限控制)、数据广播、错误恢复、在网(对队列存取进行权限控制)、数据广播、错误恢复、在网络中定位资源、基于成本的路由功能、消息及请求的优先级络中定位资源、基于成本的路由功能、消息及请求的优先级设定、扩展的调试功能、设定、扩展的调试功能、.主要功能主要功能 Page 46 Page 46t MOM的几种形式:的几种形式:n消息传递消息传递(MessagePassing):面向连接,程序之间建立直接的逻辑连接面向连接,程序之间建立直接
41、的逻辑连接(主(主 要要 的的 模模 式式 是是 发布发布/ 订订 购购 (Publish-Subscribe) 方方 式。式。 )n消息队列消息队列(MessageQueuing):程序之间进行非直接通信的非连接模型。程序之间进行非直接通信的非连接模型。t 典型典型MOM产品:产品: nDEC的的MessageQ, IBM的的MQSeries, Microsoft的的MSMQ,TIBCO的的TIB/Rendezvous, 清华北美的清华北美的TH-MT, J2EE的的JMS。n不少产品可以同时支持上述两种方式不少产品可以同时支持上述两种方式MOMMOM的工作方式的工作方式 Page 47 P
42、age 47t 由在网络上发布消息的应用和订购特定主题消息的应用共同组成。当消息由由在网络上发布消息的应用和订购特定主题消息的应用共同组成。当消息由产生者按一定的主题发布后,消息的订购者根据自己的需要,接收特定主题产生者按一定的主题发布后,消息的订购者根据自己的需要,接收特定主题的消息。的消息。发布发布- -订购方式的消息中间件订购方式的消息中间件 Page 48 Page 48t 最大好处:提供了位置透明性,实现了应用开发的松耦合性和企业体最大好处:提供了位置透明性,实现了应用开发的松耦合性和企业体系结构的高度灵活,适合于企业应用的集成。系结构的高度灵活,适合于企业应用的集成。n消息的发送和
43、接收根据主题进行,消息的生产者和接收者无需知道对方的存消息的发送和接收根据主题进行,消息的生产者和接收者无需知道对方的存在、位置或状态,在、位置或状态, 处理过程简单,简化了应用的开发处理过程简单,简化了应用的开发n支持动态的系统重新配置,新应用的增加不会影响系统的正常运行。参与系支持动态的系统重新配置,新应用的增加不会影响系统的正常运行。参与系统的组件无需知道其它组件的内部实现方式。统的组件无需知道其它组件的内部实现方式。n任务的合理分布:事件订阅者和事件发布者任务分组,各负其责。另外,不任务的合理分布:事件订阅者和事件发布者任务分组,各负其责。另外,不同的订阅者同的订阅者 对事件采取的行动
44、由各个订阅者决定。对事件采取的行动由各个订阅者决定。t 它它 比比 较较 适适 合合 于于 对对 容容 错错 性性 和和 可可 靠靠 性性 要要 求求 较较 高高 的的 分分 布布 式式 应应 用。用。 但但 它它 的的 异异 步步 特特 性相对较弱,性相对较弱, 不不 太太 适适 合合 长长 时时 间间 网网 络络 断断 开开 的的 情情 况。况。发布发布- -订购订购MOMMOM的优势的优势 Page 49 Page 49t 参考实现方式:参考实现方式:n每个竞拍者都订阅一条每个竞拍者都订阅一条“开始拍卖(开始拍卖(begin-auction)”事件消息事件消息n拍卖者发送一条拍卖者发送一
45、条“begin-auction”事件消息事件消息n竞拍者收到竞拍者收到“begin-auction”事件消息后,就接着订事件消息后,就接着订阅阅“结束拍卖(结束拍卖(end-auction)”事件消息事件消息n拍卖者订阅拍卖者订阅“新报价(新报价(new-bid)”事件消息事件消息n要出价的竞拍者发布一条要出价的竞拍者发布一条“new-bid”事件消息,该事件消息,该消息被转发给拍卖者消息被转发给拍卖者n拍卖会结束时,拍卖者发布一条拍卖会结束时,拍卖者发布一条“end-auction”事事件消息,将拍卖结果通报给所有的竞拍者。件消息,将拍卖结果通报给所有的竞拍者。例:基于发布例:基于发布- -
46、订购方式的拍卖系统订购方式的拍卖系统 Page 50 Page 50TIBCOTIBCO消息总线消息总线TIB/Rendezvous消息总线是世界上使用非常广泛的发布消息总线是世界上使用非常广泛的发布-订订购中间件。购中间件。t 采用分布式的体系结构采用分布式的体系结构t 应用可选择不同质量的服务,包括可靠的和可证实的服务应用可选择不同质量的服务,包括可靠的和可证实的服务t 消息交换基于请求消息交换基于请求/响应的方式或发布响应的方式或发布-订购的方式订购的方式t 消息传输可经由广域网或消息传输可经由广域网或Internett 消息是自描述的,具平台无关性。支持消息是自描述的,具平台无关性。支
47、持XML类型消息格式,具有可扩展类型消息格式,具有可扩展性性t 支持从支持从PC机到机到OS/390大型机的各种硬件平台大型机的各种硬件平台t 支持支持Java、C、C+、Perl和和COM等各种语言等各种语言t 提供了大量预建立的适配器,连接市场上各种主流的应用软件、数据库提供了大量预建立的适配器,连接市场上各种主流的应用软件、数据库软件,并提供大量软件,并提供大量API供应用创建自己的客户适配器供应用创建自己的客户适配器 。 Page 51 Page 51例:例:TIBCO TIBCO 运行环境运行环境 Page 52 Page 52point-to-point messagepoint-
48、to-point message 事先确定发送目标 消息只能由唯一目标机所接收 Eg. ATM取款, 远端DB查询 Page 53 Page 53Publish/Subscribe InteractionPublish/Subscribe Interaction 按主题发布 Eg. 股市信息发布,物流管理随时通告库存 Page 54 Page 54Multicast Request/Reply Interaction两种方式 指定接收者(但发消息时大家都能听到)不具体指定接收者,真正接收者按一定条件选定 Eg. 分布计算分发子任务,网管为测试发广播消息 Page 55 Page 55t 一种比
49、较流行的发布一种比较流行的发布-订购消息中间件订购消息中间件, 是是J2EE的一个组成部分。的一个组成部分。t 确切的说,确切的说,JMS不是一种产品,而是一种标准,它定义了一组标不是一种产品,而是一种标准,它定义了一组标准的准的APIs,实现对各种消息系统的统一访问。实现对各种消息系统的统一访问。t JMS定义了不同方式的消息传递,包括请求定义了不同方式的消息传递,包括请求/响应,发布响应,发布/订购,同订购,同步步/异步等。异步等。t JMS与与SUN提供的其它企业技术紧密的绑定在一起提供的其它企业技术紧密的绑定在一起如如Java命命名服务,名服务,Java事务服务、事务服务、EJB等等。
50、等等。t 优势:为所有消息系统提供了一个标准的接口优势:为所有消息系统提供了一个标准的接口 t 不足:仅支持不足:仅支持Java一种语言。一种语言。 SUNSUN的的JMSJMS Page 56 Page 56t JMS is a set of interfaces and associated semantics that define how a JMS client accesses the facilities of an enterprise messaging productSUNSUN的的JMSJMS Page 57 Page 57一种特殊的发布一种特殊的发布-订购消息中间件。它
51、订购消息中间件。它在普通的消息在普通的消息-订购中间件之订购中间件之上提供了一些附加服务上提供了一些附加服务,从而简化了,从而简化了EAI的建立过程。的建立过程。t 消息转换:提供单独的消息转换层,将来自一个应用的消息转换为接收者所消息转换:提供单独的消息转换层,将来自一个应用的消息转换为接收者所能理解的格式。能理解的格式。t 规则处理:提供规则处理引擎,通过规则控制消息的处理和分发。但不同的规则处理:提供规则处理引擎,通过规则控制消息的处理和分发。但不同的消息代理和厂商在处理规则上有极大的不同。消息代理和厂商在处理规则上有极大的不同。t 智能路由:能动态的识别来自一个应用的消息,并将其发送到
52、正确的目标应智能路由:能动态的识别来自一个应用的消息,并将其发送到正确的目标应用。用。t 消息仓库。提供相应的数据库,存储流经整个企业的所有消息。消息仓库。提供相应的数据库,存储流经整个企业的所有消息。t 图形用户接口图形用户接口:提供基于提供基于GUI的界面,进行规则的创建、应用的连接和转换的界面,进行规则的创建、应用的连接和转换逻辑的定义。逻辑的定义。t 目录服务:提供了网络资源的定位、标识、使用和验证功能。目录服务:提供了网络资源的定位、标识、使用和验证功能。消息代理消息代理 Page 58 Page 58t 消消 息息 队队 列:在列:在 程程 序序 间间 的的 通通 信信 中中 一一
53、 般般 要要 借借 助助 于于 队队 列列 来来 实实 现。现。 它它 允允 许许 程程 序序 无无 需需 直直 接接 建建 立立 起起 连连 接接 即即 可可 发发 送送 和和 接接 收收 消消 息。息。 使使 用用 消消 息息 队队 列列 方方 式,式, 程程 序序 只只 需需 简简 单单 地地 将将 消消 息息 发发 送送 给给 消消 息息 队队 列,列, 由由 消消 息息 队队 列列 负负 责责 消消 息息 的的 传传 递,递, 对对 应应 用用 程程 序序 完完 全全 透透 明。明。n消消 息息 队队 列列 支支 持持 同同 步步 和和 异异 步步 通通 信,常采信,常采 用用 异异
54、 步步 方方 式,式, 为为 信信 息息 提提 供供 了了 一一 个个 安安 全全 的的 存存 储储 方方 式,式, 特特 别别 适适 用用 于于 不不 是是 直直 接接 连连 接接 的的 应应 用,用, 如如 移移 动动 用用 户、户、 发发 送送 方方 或或 接接 收收 方方 进进 程程 可可 能能 处处 于于 不不 活活 动动 状状 态态 的的 应应 用。用。 n消消 息息 队队 列列 方方 式式 的的 缺缺 点点 是是 需需 要要 一一 些些 配配 置置 工工 作,作, 性性 能能 不不 是是 很很 高,高, 而而 且且 如如 果果 队队 列列 丢丢 失,失, 整整 个个 系系 统统
55、将将 受受 到到 影影 响。响。 消息队列消息队列 Page 59 Page 59基于消息队列的消息传送基于消息队列的消息传送 Page 60 Page 60t 用户队列:用户自己通过队列管理器创建的,在一个消息中间件的节点用户队列:用户自己通过队列管理器创建的,在一个消息中间件的节点中用户队列可以有多个;中用户队列可以有多个;t 发送队列:即传输队列,是要发送消息的缓冲池;通信管理模块从发送发送队列:即传输队列,是要发送消息的缓冲池;通信管理模块从发送队列取消息发送;队列取消息发送;t 死信队列:用来存放发送和接收失败的消息;死信队列:用来存放发送和接收失败的消息;t 事件队列:存放系统产生
56、的所有的事件,并等待事件处理器来处理。事件队列:存放系统产生的所有的事件,并等待事件处理器来处理。n 系统事件:由操作系统硬件产生的事件,如系统调用失败、系统被重启系统事件:由操作系统硬件产生的事件,如系统调用失败、系统被重启n 核心事件。由消息中间件的核心处理模块运行过程中产生的事件,如队列未核心事件。由消息中间件的核心处理模块运行过程中产生的事件,如队列未定义或无法访问等定义或无法访问等n 用户事件。由用户定义的事件。如消息事件、订阅发布事件、死信事件。用户事件。由用户定义的事件。如消息事件、订阅发布事件、死信事件。消息队列中的队列种类消息队列中的队列种类 Page 61 Page 61t
57、 使用与使用与Internet邮件系统类似的两级地址,在通讯中间件屏蔽网络邮件系统类似的两级地址,在通讯中间件屏蔽网络底层的基础上进一步屏蔽了队列机制,不了解队列机制也可以编底层的基础上进一步屏蔽了队列机制,不了解队列机制也可以编写分布式应用。写分布式应用。t 通讯安全构架内置清华加密与身份验证算法。通讯安全构架内置清华加密与身份验证算法。t 内置的路由数据库,并提供路由数据库的同步功能,易于进行复内置的路由数据库,并提供路由数据库的同步功能,易于进行复杂网络结构的规划。杂网络结构的规划。t 拥有一个可视化开发平台,通过拥有一个可视化开发平台,通过MT的开发工具包,可高效的开发的开发工具包,可
58、高效的开发分布式应用系统(常用的函数调用只有分布式应用系统(常用的函数调用只有10几个)。几个)。t 可作为网络通讯管理与监控的平台,通过标准可作为网络通讯管理与监控的平台,通过标准浏览器浏览器对对MT通讯节通讯节点进行远程管理与监控。点进行远程管理与监控。消息队列产品:消息队列产品: 清华北美的清华北美的TH-MTTH-MT Page 62 Page 62TH-MTTH-MT的基本工作机制的基本工作机制 Page 63 Page 63t MOM适用范围:适用范围: MOM既支持同步、又支持异步通信方式,既支持同步、又支持异步通信方式, 故特别适合于事件故特别适合于事件驱动的应用场合。驱动的应
59、用场合。t MOM的不足:的不足: 需 要 开 发 者 学 习 新 的MOM API 编 程; 缺 乏 流 行 的 开 发 工 具 的 支 持 有 关MOM 的 标 准 还 未 形 成对访问透明性的支持不是很好,因客户用消息API进行远程通信,而往往用其他机制进行本地通信。消息中间件消息中间件( (MOM)MOM)小结小结 Page 64 Page 64三类基础通信中间件的发展情况三类基础通信中间件的发展情况 Page 65 Page 65t RPC中间件中间件t ORB中间件中间件t 消息中间件消息中间件t 数据库中间件数据库中间件t 事务处理中间件事务处理中间件t 应用服务器中间件应用服务
60、器中间件t Web中间件中间件t 企业应用集成企业应用集成EAI中间件中间件中间件举例中间件举例 Page 66 Page 66t 允许应用程序同本地或异地的数据库进行通信并对各种数据源使用统允许应用程序同本地或异地的数据库进行通信并对各种数据源使用统一的数据存取方法。一的数据存取方法。 t 提供了一系列应用程序接口提供了一系列应用程序接口API,通过中间层而不考虑操作系统及网通过中间层而不考虑操作系统及网络来访问数据库。络来访问数据库。t 典型产品:典型产品:InformationBuilders公司的公司的EdaSQL,SUN的数据库中间的数据库中间件标准件标准JDBC,Microsoft
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 医药商品购销员班组建设测试考核试卷含答案
- 年产2000件不锈钢设备加工项目可行性研究报告模板-立项备案
- 2026银川市省考面试题库及答案
- 2026应急分队队员面试题及答案
- 2026城市业态面试题库及答案
- 2026初学插画面试题及答案
- 2026创新型对策面试题及答案
- (2026版)小三班班级工作总结
- 学校收费情况自查报告
- 青海省黄南藏族自治州尖扎县2025届四下数学期末达标测试试题含答案
- GB/T 1539-2026纸板耐破度的测定
- 2026年针灸推拿医师高频面试题包含详细解答
- 《鸦胆子油乳注射液治疗消化道恶性肿瘤临床应用专家共识-公示稿》
- dbj41现浇混凝土内置保温墙体技术规程
- 深度解析(2026)《HJT 81-2001畜禽养殖业污染防治技术规范》
- 消防安全培训医院课件
- 化学检验员高级工练习题库含参考答案
- (2026)急危重症患者的早期识别与评估课件
- 注意缺陷多动障碍(ADHD)法律能力评估与支持方案
- 仓储安全应急预案
- CQC13464225-2024电力储能用锂离子电池安全与性能认证规则
评论
0/150
提交评论