1、1中间件技术简介中间件技术简介2中间件的定义中间件的定义l中间件(Middleware)是一类软件,处于系统软件(操作系统和网络软件)与应用软件之间,它能使应用软件之间进行跨网络的协同工作(也就是互操作),这时允许各应用软件之下所涉及的“系统结构、操作系统、通信协议、数据库和其它应用服务”各不相同。l中间件是一种独立的系统软件或服务程序,分布式应用软件借助这种软件在不同的技术之间共享资源,中间件位于客户机服务器的操作系统之上,管理计算资源和网络通信。l 3应用软件中间件网络软件操作系统应用软件中间件网络软件操作系统利用中间件进行协同工作的系统可协同工作中间件定义图示中间件定义图示4l执行环境(
2、执行环境(Execution Environment)软件软件 l应用开发应用开发(Application Development)工具工具 中间件的组成中间件的组成5l执行环境(执行环境(Execution Environment)软件软件 如果一个网络的各个节点上安装了EE软件,各节点上的应用软件之间就可以实现相互合作相互合作。这时允许各节点可为不同的机器和操作系统各节点可为不同的机器和操作系统。也即EE软件使各节点下层的设备对应用软件来说变成了透明的透明的。所以EE软件是实现可互操作功能的关键,是中间件中的主体部分主体部分。中间件的组成(续)中间件的组成(续)6l应用开发应用开发(App
3、lication Development)工具工具 应用软件要能透明地动用远方合作者的资源,该软件中应有作出此种透明动用的相应指示。为此必定要有一组工具一组工具,它可以用来开发含开发含“透明动用对透明动用对方方”成分的应用软件成分的应用软件,或改造原有的无透明动用能改造原有的无透明动用能力的应用软件力的应用软件。这组AD工具含有一些专用语言专用语言(如界面描述语言和界面调整语言等)和有关的编译器编译器。有了它,用户(特别是应用软件开发人员)将得到极大的方便,所以AD工具是一个完善的中间件所必备的部分。中间件的组成(续)中间件的组成(续)7中间件的应用层次中间件的应用层次中间件:提供了应用系统基
4、本的执行/开发环境。中间件服务:基于中间件,提供了更多高级的功能,如名字服务、事件服务、通告服务、事务服务、日志服务等服务。面向领域的服务设施:在中间件服务之上,针对不同应用行业的需求而设计制定的,如电信、电力、医药等。8中间件的应用层次中间件的应用层次(续)(续)9l分布请求调用中间件 远程过程调用(RPC)分布对象调用 Web服务调用l数据库访问中间件l事务处理中间件l消息中间件l其它中间件,如P2P中间件、安全中间件、网格中间件等按应用领域划分中间件按应用领域划分中间件10数据库访问中间件数据库访问中间件11 连接应用程序和数据库的软件,允许通过单一的、定义良好的接口访问网络中来自不同厂
5、商的数据库产品。l(1)通用数据库接口l JDBC(SUN)l ODBC(Microsoft)(2)数据库引擎 Borland公司开发,类似于ODBC,支持与数据库的直接连接,效率较ODBC高12l(3)数据库网关l 用于分布式应用环境,无需在客户机进行各种配置,如安装各种ODBC驱动、设置ODBC 数据源等,使用网关来统一管理不同数据库的访问l 相关产品:EDA/SQL、RDA、DRDA 13事务处理中间件(Transaction Processing Middleware,TPM)14l又称分布式事务处理中间件。专门针对联机交易处理系统而设计。l事务是对共享的系统资源所完成的一件工作,它通
6、常是由一些列操作所组成。事务必须具有ACID(Atomicity,Consistency,Isolation和Durability)属性。l本地事务的管理由数据库系统来完成。l联机交易处理系统需要处理大量的分布式事务。15l分布式事务涉及到多个数据库,且允许这些数据库异构,如在不同的银行间进行资金转账:l 1、转账客户程序请求A银行的ORACLE数据库服务器取出100元。l 2、ORACLE数据库服务器更新其数据库。l 3、转账客户程序请求B银行的DB2数据库服务器存入100元。l 4、DB2数据库服务器更新其数据库。l 要求:如果对第二个数据库的更新失败,则取消对第一个数据库的更新。16l分
7、布式事务需要处理大量并发进程,涉及到操作系统、文件系统、编程语言、数据通讯、数据库系统、系统管理及应用软件,是一个相当艰巨的任务。l通过事务处理中间件简化应用开发。由它来负责处理联机交易过程中分布式交易的完整性、并发控制、负载均衡以及出错恢复等。17X/Open DTPX/Open DTP模型的组成模型的组成图示图示事务管理器应用程序资源管理器l应用程序(Application Program,简称AP)是事务的使用者,它是开始(Begin)、提交(Commit)和回滚(Rollback)事务的发出者。它规定一个事务的界限,并给出事务所包含的操作。l事 务 管 理 器(T r a n s a
8、c t i o n Manager,简称TM):是AP与RM之间的协调员,它给每个事务分配标示符,监视其进展,保证事务处理的顺利进行,并负责事务在失败情况下的恢复。资源管理器(Resource Manager,简称RM):提供对共享资源的访问,数据库管理系统(DBMS)或文件访问系统都可以成为RM。18l分布式事务涉及到多个结点的数据的更新,任何一个结点或结点间通信的失效都可能导致分布式事务的失败。因此,为了保证事务的完整性,分布式事务通常采用两阶段提交协议(Two Phase Commitment Protocol,简称2PC)来提交。l阶段1(准备阶段)l TM询问所有的RM是否已准备提交
9、。l阶段2(提交阶段)l TM检查所有RM的回答,只要有一个RM给出否定的回答,TM指示所有的RM进行回滚。否则,TM指示所有的RM进行提交。19l在两阶段提交中,一个主节点被指派为事务协调者(Coordiantor),其他节点称为事务参与者(Participants)。协调者掌握提交或撤消事务的决定权,而其它参与者则各自负责本地数据的更新,并向协调者提出撤消或提交子事务的意向。一般一个结点对应一个子事务。20事务协调者调用接口交易监控器交易监控器客户转出帐户对象转出帐户对象转入帐户对象转入帐户对象1.begin()2.调用方法调用方法debit()3.登记资源登记资源4.credit()5.
10、登记资源登记资源mit()7.prepare()mit()21lBEA的Tuxedo lMicrosoft的MTSlSUN的JTSlOMG的OTSl东方通的TongEasy常见的常见的TPM产品有产品有22消息中间件消息中间件(Message-Oriented Message-Oriented MiddlewareMiddleware,MOMMOM)23总部(成都)总部(成都)销售网点销售网点(重庆重庆)销售网点销售网点(哈尔滨哈尔滨)某公司产品销售的网络拓扑图某公司产品销售的网络拓扑图拨号网络拨号网络拨号网络拨号网络拨号网络拨号网络24l(1)客户端与服务器端需要同时在线;l(2)客户端需要
11、知道服务器端的调用接口,若调用接口发生改变,客户端需要做相应变化,如通过ODBC连接访问数据库,客户端需要知道远程数据库的类型,若类型发生改变,还需要重新装载相应的驱动程序。动机:动机:RPCRPC调用的缺点调用的缺点25l(3)操作过程中需要一直保持与服务器端的连接,直到操作结束。因而,l (a)一旦连接中断,就意味着操作失败或数据丢失;l (b)通常判断连接中断的时间较长,若信道的可靠性较差,容易造成连接中断,那么应用效率将严重低下;l (c)服务器端在执行操作的过程中,并不涉及网上数据传输,但连接的保持占用信道,容易造成网络堵塞。26l这个问题可用消息中间件来解决,应用间通过传递消息来进
12、行协作,是一种异步通信模式。l主要功能是在不同的网络协议、不同的操作系统和不同的应用程序之间提供可靠的可靠的和可可恢复的(若发生意外)恢复的(若发生意外)消息传送。这时应用这时应用并不需要消息即时即刻传递到达对方。并不需要消息即时即刻传递到达对方。27l缓存消息并负责消息的传递,允许程序无需建立连接即可发送和接受消息。l队列具有名字。队列名队列管理器名l队列具有属性。属性包含消息的发送次序(先进先出或带优先级的先进先出)、消息访问方式(共享或独占)、队列的长度和队列触发机制等。l队列分为很多种类型,其中包括:本地队列、远程队列、传输队列等 消息队列消息队列28l由消息头和消息体组成。l消息头是
13、对消息结构的描述,对整条消息起控制作用,含有消息的属性及与消息相关的系统信息,如消息标志、消息类型、目的队列名、日期时间等。l消息体对应消息的应用数据,具体语义由通信双方事先约定。消息消息29消息类型分为3种:l请求消息(Request):除了发送数据,该消息要求对方一定要应 答。l应答消息(Reply):用于请求消息的回应。l通知消息(Report):单向而不需要应答的消息。30消息的触发消息的触发l分为每条消息触发、多条消息触发和有特定优先级的消息触发l每条消息触发适合于很少到达但十分重要、需要立即处理的消息l多条消息触发适合于能够批处理的消息l有特定优先级的消息触发适合于处理含有不同类型
14、、不同层次、不同级别的多种消息的消息队列31l应用之间以一系列消息的方式进行通信。l在消息传递过程中,为了避免消息被丢失,消息被保存在消息队列中。l应用把消息发送到与接收者有关的队列中。消息传递机制保证将消息传送到目的地且只传送一次传送到目的地且只传送一次。l在消息传递过程中,应用之间不必建立联系,发送者仅需将消息放入到与接收者有关的队列中,而不必关心接收者是否在线。l接收者仅需从自己的队列中提取消息即可。MOM的工作原理的工作原理32l有两种基本的MOM工作模型,分别是消息队列(message queuing)以及发表和预定(publish-and-subscribe)。l一对一方式,消息发送到一个目的队列里,接收方可以在任何时候查看该队列提取消息。l一对多方式,l 应用对其感兴趣的主题进行登记,一旦一个主题被一个应用登记,那么该应用将会收到与该主题有关的任何消息。l 发送程序只需将消息以主题的形式发送出去,由中间件来负责将消息传递给所有订阅该主题的应用。l 实质是:消息发送到一个特定队列,客户机可以随时预定该队列,并从中取得消息。MOM的工作模型的工作模型3334lIBM的MQSerieslMicrosoft的MSMQlBEA的MessageQl东方通的TongLink/Q常见的消息中间件产品常见的消息中间件产品
侵权处理QQ:3464097650--上传资料QQ:3464097650
【声明】本站为“文档C2C交易模式”,即用户上传的文档直接卖给(下载)用户,本站只是网络空间服务平台,本站所有原创文档下载所得归上传人所有,如您发现上传作品侵犯了您的版权,请立刻联系我们并提供证据,我们将在3个工作日内予以改正。