第0章 中间件概述_第1页
第0章 中间件概述_第2页
第0章 中间件概述_第3页
第0章 中间件概述_第4页
第0章 中间件概述_第5页
已阅读5页,还剩81页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

1、操作系统操作系统数据库管理系统数据库管理系统中间件中间件人们必须人们必须 不断地不断地提取提取 软件的共性成份软件的共性成份屏蔽屏蔽 系统低层的复杂度系统低层的复杂度 从而从而 在高层保持复杂度的相对稳定在高层保持复杂度的相对稳定 发展动因发展动因不断提取共性!不断提取共性!沉淀成为一层软件沉淀成为一层软件保持应用软件的复杂性相对稳定保持应用软件的复杂性相对稳定应用软件应用软件应用软件应用软件操作系统操作系统DBMS操作系统操作系统应用软件应用软件中间件中间件操作系统操作系统应用软件应用软件DBMS初始状态:硬件初始状态:硬件如何提高算法适应性?如何提高算法适应性?分离出了程序分离出了程序(汇

2、编汇编=)程序程序硬件硬件硬件硬件初始状态:硬件初始状态:硬件 + 程序程序程序的共性(稳定)成分:计算资源管理程序的共性(稳定)成分:计算资源管理操作系统操作系统应用程序应用程序产生了:产生了:分离出了:分离出了:软件软件硬件硬件操作系统操作系统初始状态:硬件初始状态:硬件 + 操作系统操作系统 + 应用程序应用程序程序的共性(稳定)成分:数据管理程序的共性(稳定)成分:数据管理产生了:数据库管理系统产生了:数据库管理系统分离出了:应用软件分离出了:应用软件操作系统操作系统 操作系统操作系统 数据存储文件数据存储文件 数据库管理系统数据库管理系统 应用程序应用程序 程序的共性(稳定)成分:网

3、络资源管理程序的共性(稳定)成分:网络资源管理产生了:中间件(应用服务器)产生了:中间件(应用服务器)分离出了:业务逻辑(构件)分离出了:业务逻辑(构件)初始状态:硬件初始状态:硬件 + 操作系统操作系统 + 数据库管理系统数据库管理系统 +应用软件应用软件中间件的发展与互联网(中间件的发展与互联网(Internet)的发展)的发展有着非常密切的关系有着非常密切的关系可以说可以说:是软件运行环境从个人机向互联网的转变是软件运行环境从个人机向互联网的转变催生了中间件催生了中间件硬件环境、用户环境等与软件进行交互的各种实体硬件环境、用户环境等与软件进行交互的各种实体 l网络环境带来的挑战软件之间的

4、通信问题不同资源的异构问题资源在网络上的定位问题系统总体的可靠性问题安全问题维护问题 硬件环境:硬件环境:用户环境:用户环境:用户环境与人们运行软件的目的直接相关用户环境与人们运行软件的目的直接相关软件最初以科学计算为主要目标软件最初以科学计算为主要目标与用户的交互比较少与用户的交互比较少随着软件应用范围的扩展随着软件应用范围的扩展多数用户不是用软件来进行某种计算多数用户不是用软件来进行某种计算而是将其作为一些日常工作与生活的工具而是将其作为一些日常工作与生活的工具尤其是网络出现以后:尤其是网络出现以后:软件正在逐步成为人们协作的工具软件正在逐步成为人们协作的工具用户与软件交互量大用户与软件交

5、互量大不同的交互之间互相有影响不同的交互之间互相有影响应用目的与应用方式的变化应用目的与应用方式的变化 必然带来软件技术的新发展必然带来软件技术的新发展哑终端哑终端链接链接大型主机大型主机负载大负载大应用程序,数据库应用程序,数据库客户客户服务器服务器TCP/IP应用程序应用程序通信软件通信软件数据库数据库通信软件通信软件充分利用资源充分利用资源降低主机负载降低主机负载发布、维护复杂;发布、维护复杂;编写通信编写通信的代码复杂;自己开发安全的代码复杂;自己开发安全软件软件程序的共性(稳定)成分:网络资源管理程序的共性(稳定)成分:网络资源管理产生了:应用服务器中间件产生了:应用服务器中间件分离

6、出了:业务逻辑(构件)分离出了:业务逻辑(构件)初始状态:硬件初始状态:硬件 + 操作系统操作系统 + 数据库管理系统数据库管理系统 +应用软件应用软件中间件之于中间件之于底层网络编程,如同数据库之于文件系统底层网络编程,如同数据库之于文件系统瘦客户瘦客户业务处理服务器业务处理服务器数据服务器数据服务器中间层中间层/ /易于扩展易于扩展三层三层(three-tier)/多层多层(multi-tier)结构结构RPCRPC应用应用应用应用中间件中间件(分布式系统服务)(分布式系统服务)硬件硬件操作系统操作系统硬件硬件操作系统操作系统中间件与操作系统、应用系统之间的纵向关系中间件与操作系统、应用系

7、统之间的纵向关系 硬件硬件 应用系统应用系统 操作系统 操作系统 操作系统 硬件硬件 硬件硬件 中间件 中间件 中间件 应用 应用 应用 系统系统 软件软件 中间件与应用系统之间的横向关系中间件与应用系统之间的横向关系另外一种另外一种“中间中间”视角:视角:中间件技术发展到今天其产品形态还没有达到 操作系统、数据库管理系统 那样的成熟程度内涵与外延目前都还不是很清晰JVM是不是中间件?浏览器是不是中间件?Web Server 是不是开发平台是不是?操作系统、数据库管理系统、中间件的类比操作系统、数据库管理系统、中间件的类比 操作系统操作系统数据库管理系统数据库管理系统中间件中间件产生动因产生动

8、因硬件过于复杂硬件过于复杂数据操作过于复杂数据操作过于复杂网络环境过于复杂网络环境过于复杂主要作用主要作用管理各种资源管理各种资源组织各类数据组织各类数据支持不同的交互模式支持不同的交互模式主要理论基础主要理论基础各种调度算法各种调度算法各种数据模型各种数据模型各种协议、接口定义方各种协议、接口定义方式式产品形态产品形态不同的操作系统功不同的操作系统功能类似能类似不同的数据库管理系不同的数据库管理系统功能类似,但类统功能类似,但类型比操作系统多型比操作系统多存在大量不同种类中间存在大量不同种类中间件产品,它们的功件产品,它们的功能差别较大能差别较大主要作用主要作用n用来屏蔽网络硬件平台的差异性

9、和操作系用来屏蔽网络硬件平台的差异性和操作系统与网络协议的异构性,使应用软件能够统与网络协议的异构性,使应用软件能够比较平滑地运行于不同平台上。比较平滑地运行于不同平台上。n同时在负载平衡、连接管理和调度方面起同时在负载平衡、连接管理和调度方面起了很大的作用,使企业级应用的性能得到了很大的作用,使企业级应用的性能得到大幅提升,满足了关键业务的需求。大幅提升,满足了关键业务的需求。中间件的作用中间件的作用操作系统的重要性一般人都能感觉到操作系统的重要性一般人都能感觉到:所有的计算机都需要安装操作系统后才能运行所有的计算机都需要安装操作系统后才能运行所有的应用软件都运行在操作系统之上所有的应用软件

10、都运行在操作系统之上熟悉数据库管理系统的人则要少得多熟悉数据库管理系统的人则要少得多:面向个人用户的应用软件一般不涉及大量的数据面向个人用户的应用软件一般不涉及大量的数据不需要数据库管理系统的支持不需要数据库管理系统的支持对于中间件对于中间件:一般情况下许多用户根本感觉不到中间件的存在一般情况下许多用户根本感觉不到中间件的存在原因:原因:1)用户一般只关心应用软件,因为它直接为用户提供支持;)用户一般只关心应用软件,因为它直接为用户提供支持;2)在网络环境中,中间件通常在服务器端发挥作用。)在网络环境中,中间件通常在服务器端发挥作用。 银行账户系统银行账户系统 营业员营业员 电脑电脑 浏览器浏

11、览器 民航票务系统民航票务系统 网上支付系统网上支付系统 自动取款机自动取款机 中间件中间件 中间件在具体系统中的作用:银行系统的例子中间件在具体系统中的作用:银行系统的例子 中间件主要是用来中间件主要是用来支持网络环境中支持网络环境中软件实体软件实体之间的之间的有效有效交互交互“软件实体”是具有不同特征的软件模块 它们通常是具有不同粒度的软件构造模块“有效”是指所支持的实体之间的交互必须具有可靠、安全、快速等特点交互模式 + 交互质量不同特征的模块:过程、对象、构件与服务等等它们不仅是构造软件系统的不同粒度的模块也通常在运行阶段表现出不同的性质网络环境中 它们之间的交互也分别需要不同类型的中

12、间件的支持 - - - 服务器端计算机服务器端计算机 客户端计算机客户端计算机 - - - - - - - - 服务器进程服务器进程 客户进程客户进程 客户进程客户进程 网络 客户客户-服务器模式服务器模式 过程、对象、构件与服务之间的关系过程、对象、构件与服务之间的关系 过程 方法(过程) 属性 过程过程 对象对象 服务服务 构件构件 对象 过程 方法(过程) 不同构造模块出现的时间不同后者直接发展了前者后者的实现中包含了前者的模块只是强调的重点有所改变但后者不是替代了前者:尽管后续技术适合新的热点以前的技术仍然有其适合的应用场景这种现象构成了软件系统构造方式的多样性也造成了中间件产品的多样

13、性不同构造模块在网络环境中的交互模式是不同的:接口的定义方式、交互的协议等等都不同这就形成了分别 支持远程过程调用支持对象互操作支持构件技术支持服务概念等不同种类的中间件 中间件种类中间件种类(1)终端仿真)终端仿真/屏幕转换中间件屏幕转换中间件 用以实现用以实现 客户机图形用户接口客户机图形用户接口 与与 已有的字符接口方式的服务器应用程序的互操作已有的字符接口方式的服务器应用程序的互操作(2)远程过程调用远程过程调用中间件中间件程序员方便地编写客户端应用程序程序员方便地编写客户端应用程序 调用位于远端服务器上的过程调用位于远端服务器上的过程(3)数据访问中间件)数据访问中间件为了建立数据应

14、用资源互操作的模式为了建立数据应用资源互操作的模式 对异构环境下的数据库实现联接或文件系统实现联接的中间件对异构环境下的数据库实现联接或文件系统实现联接的中间件Gartner的观点的观点(4)事务事务(交易)中间件(交易)中间件在分布、异构环境下在分布、异构环境下提供保证交易完整性和数据完整性的一种环境平台提供保证交易完整性和数据完整性的一种环境平台(5)面向消息中间件)面向消息中间件用来用来屏蔽各种平台及屏蔽各种平台及协议协议之间的特性之间的特性进行相互通信进行相互通信实现应用程序之间的协同实现应用程序之间的协同(6)对象中间件)对象中间件在分布、异构的网络计算环境中在分布、异构的网络计算环

15、境中将各种分布对象有机地结合在一起将各种分布对象有机地结合在一起完成完成 系统的快速集成系统的快速集成实现实现 对象重用对象重用远程过程调用远程过程调用(RPC)远程数据库访问远程数据库访问分布式事务处理分布式事务处理消息队列消息队列 对象中间件对象中间件 Deposit( 1000) 继续运行继续运行 启动服务器上的存款过程启动服务器上的存款过程 int Deposit(number) return total + number; 客户端程序客户端程序 服务器端程序服务器端程序 以对某银行帐户的一个存款过程为例:以对某银行帐户的一个存款过程为例:NetworkLocal CallClient

16、StubRPCInterfaceRPCInterfaceServerSkeletonRemoteProceduresendreceivesendreceive客户端程序客户端程序服务器端程序服务器端程序Stub的主要工作包括:的主要工作包括:n1)建立客户与服务器之间的连接)建立客户与服务器之间的连接n2)将客户的高层调用语句打包为一条底层的请)将客户的高层调用语句打包为一条底层的请求消息,这一过程在求消息,这一过程在RPC中被称为中被称为marshallingn3)等待服务器返回应答消息)等待服务器返回应答消息n4)将来自服务器底层的应答消息解析为可以返)将来自服务器底层的应答消息解析为可以

17、返回的数据,这一过程在回的数据,这一过程在RPC中被称为中被称为unmarshallingn5)将返回值传送给客户程序)将返回值传送给客户程序需要特别处理:需要特别处理:编码、字节序编码、字节序 等问题等问题请求分派请求分派Skeleton的主要工作包括:的主要工作包括:n除了需要进除了需要进marshalling / unmarshalling外,还外,还需要区分客户所请求的过程名,然后将客户的请需要区分客户所请求的过程名,然后将客户的请求求分派(分派(dispatch)给正确的过程给正确的过程描述(描述(1)1)客户按本地调用的方式)客户按本地调用的方式 ,直接调用本地的,直接调用本地的客

18、客户占位程序户占位程序/指代指代/代理(代理(Stub), Stub具有与服具有与服务器相同的过程接口务器相同的过程接口2)Stub将客户的调用请求进行加工、打包,向将客户的调用请求进行加工、打包,向底层通信机制(如套接字)发出请求消息;底层通信机制(如套接字)发出请求消息;Stub不进行任何逻辑处理,只是一个中介不进行任何逻辑处理,只是一个中介3)客户端通过底层的通信机制,将消息传送给)客户端通过底层的通信机制,将消息传送给服务器端的底层通信机制服务器端的底层通信机制4)服务器需要部分地解析消息,找出客户希望)服务器需要部分地解析消息,找出客户希望调用的服务器程序调用的服务器程序5)服务器构

19、架(服务器构架(Skeleton)对消息进行解析,从对消息进行解析,从中获得调用者的参数,然后调用服务器程序中获得调用者的参数,然后调用服务器程序6)服务器程序执行相应的过程)服务器程序执行相应的过程7)服务器程序将结果返回给)服务器程序将结果返回给Skeleton 8) Skeleton将结果打包,向底层通信机制发出将结果打包,向底层通信机制发出应答消息应答消息9)服务器端通信机制将消息传送给客户端通信)服务器端通信机制将消息传送给客户端通信机制机制描述(描述(2)描述(描述(3)10)客户端节点上也可能有多个调出点,通信机)客户端节点上也可能有多个调出点,通信机制需要部分地解析返回的消息,

20、找出消息应该返制需要部分地解析返回的消息,找出消息应该返回给哪个客户程序,并将消息发送给对应的回给哪个客户程序,并将消息发送给对应的Stub 11) Stub从消息中解析结果,返回给客户程序从消息中解析结果,返回给客户程序1、定义并编译接口、定义并编译接口 2、编写实现具体服务功能的代码、编写实现具体服务功能的代码3、编译、连接,产生可执行的服务器程序、编译、连接,产生可执行的服务器程序4、编写客户端代码、编写客户端代码5、编译、连接,产生客户程序、编译、连接,产生客户程序6、运行服务器端程序、运行服务器端程序7、运行客户端程序、运行客户端程序基于基于RPC的开发过程的开发过程程序与数据库之间

21、通信;程序与数据库之间通信;从客户端读取或者写入一个数据库的能从客户端读取或者写入一个数据库的能力,该数据库在物理上位于一台不同的力,该数据库在物理上位于一台不同的机器上机器上远程数据库访问技术:远程数据库访问技术:ODBC/OLE ODBC/OLE DB/ADODB/ADO 等待 同步调用同步调用 异步调用异步调用 进程进程 a 进程进程 b 进程进程 a 进程进程 b 异步调用调用的发出方在发出调用消息后不等待处理结果,继续往下执行消息的接受方处理完消息后,将处理结果返回给发出方也可能不返回处理结果同步调用调用发出方在发出调用消息后 进入等待状态调用消息的接收方处理完消息 将处理结果返回给

22、发出方发出方继续往下执行中间件应提供如下特性:中间件应提供如下特性:n易用性易用性相对于网络底层编程而言;相对于网络底层编程而言;n位置透明性位置透明性应用不必知道对方网络和应用的地应用不必知道对方网络和应用的地址。不经重新编译,就可把一个应用从一台机器转址。不经重新编译,就可把一个应用从一台机器转移到另一台具有不同网络地址的机器上;移到另一台具有不同网络地址的机器上;n消息传输的完整性消息传输的完整性消息不应丢失或重复;消息不应丢失或重复;n消息格式的完整性消息格式的完整性消息格式不应被破坏;消息格式不应被破坏;n语言透明性语言透明性使用中间件的程序应能够与另一个使用中间件的程序应能够与另一

23、个用不同语言编写的程序通信。如果用一种不同的语用不同语言编写的程序通信。如果用一种不同的语言重写一个程序,其他程序应不受影响。言重写一个程序,其他程序应不受影响。早期的中间件市场中事务中间件与消息中间件占的份额最大早期的中间件市场中事务中间件与消息中间件占的份额最大近年来随着近年来随着 Web应用应用 的逐渐普及的逐渐普及支持支持Web服务和应用的各种应用服务器慢慢蚕食事务中间件和消息中间件的部分市服务和应用的各种应用服务器慢慢蚕食事务中间件和消息中间件的部分市场场目前应用服务器中间件的占有量已经居于各类中间件的首位目前应用服务器中间件的占有量已经居于各类中间件的首位消息中间件和事务中间件分别

24、居第二,三名消息中间件和事务中间件分别居第二,三名在银行,电信、证券等许多在银行,电信、证券等许多 对对效率、可靠性等方面要求严格的关键任务系统中对对效率、可靠性等方面要求严格的关键任务系统中 消息中间件及事务中间件,仍然将占有重要的地位消息中间件及事务中间件,仍然将占有重要的地位根据开发组织的背景,可以将现有的根据开发组织的背景,可以将现有的应用服务器应用服务器产品进行如下划分:产品进行如下划分: 中间件厂商开发的产品中间件厂商开发的产品例如:例如:BEABEA公司开发的公司开发的WebLogicWebLogic(被(被OracleOracle收购)收购)IONAIONA公司开发的公司开发的iPortal ApplicationServeriPortal ApplicationServer等等数据库厂商开发的产品数据库厂商开发的产品例如:例如:OracleOracle公司开发的公司开发的 Oracle 9i Application ServerOracle 9i Application Server等等操作系统厂商开发的产品操作系统厂商开发的产品例如:例如:IBMIBM公司开发的公司开发的Websphe

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论