分布式对象中间件概述ByBeyond章节概要分布式对象中间件的产生背景分布式对象中间件技术总结产生背景随着计算机技术和Internet的快速发展,应用系统不再局限于单机系统,而是朝着多处理器的分布式应用发展。分布式应用系统需要在网络的异构环境(各种操作系统、网络协议、数据库等)下完成系统功能,从而使得一种能够独立于操作系统及硬件资源等的软件应用和开发平台——中间件应运而生。产生背景分布式对象体系结构B/S体系结构C/S体系结构客户机和服务器地位不同将应用处理层抽象出来,WEB服务器的响应速度成为瓶颈基于组建思想,由一组对象来提供系统服务,对象之间能跨平台通信分布式对象中间件的任务是处理分布式对象之间的通信产生背景面向对象技术通过封装、继承及多态提供了良好的代码重用功能分布式技术将网络上的所有资源互相连接起来,对外表现为一个统一的整体,对客户是透明的,不必区分本地操作和远程操作分布式对象体系结构基本组件就是对象,它们提供一组服务,对外给出服务接口,对象之间可以相互调用,服务对象之间不存在客户机和服务器的界限产生背景软件总线(中间件)对象1对象2对象3对象4对象5三种主流技术介绍目前比较著名的分布式对象中间件技术有:OMG的公共对象请求代理结构(CORBA)Microsoft的分布式对象构件模型(DCOM)JAVA商业应用组件技术EJB公共对象请求代理体系结构CORBACORBA由对象管理组织OMG于1991年提出,它规定了分布式对象之间如何实现互操作。CORBA是为解决分布式处理环境中硬件和软件系统的互联而提出的一种解决方案,它具有不依赖于编程语言(C、C++、JAVA等)、软硬件平台(Windows95、WindowsNT、OpenVSM等)、网络协议的特点。CORBA对象可以用任何一种CORBA软件开发商所支持的语言和平台来实现。Windows95平台上运行JAVA应用程序可以动态调用C++对象该对象可能存在于网络上的一个UNIX应用服务器上公共对象请求代理体系结构CORBA对象请求代理(中间件)公共服务公共设施应用对象公共对象请求代理体系结构CORBA对象请求代理(ORB):位于所有的CORBA进程中,规定了分布对象的定义(接口)和语言映射,实现对象间的通讯和互操作,是分布对象系统中的软总线。通过它,各个对象可以透明地向本地或远端对象发出请求或接收响应,每一台运行着分布式对象的计算机都有自己的对象请求代理。ORB可以实现单进程中对象间的调用,也可以实现在同一台计算机中运行的多进程中对象之间的调用,也可以实现运行在网络中多个计算机上多进程中对象间的调用。对于远端对象调用,需要在ORB间通过网络进行通信。公共对象请求代理体系结构CORBAcIDLO1C++IDLO2JAVAIDLO3SmalltalkIDLO4对象请求代理(ORB)对象请求代理(ORB)网络ORB间通信协议GIOP公共对象请求代理体系结构CORBA公共服务:为创建对象、对象访问控制提供了一套标准函数。提供诸如:并发控制服务、名字服务、事务(交易)服务、安全服务、查询服务等多种服务公共设施:向应用对象直接提供应用服务的框架的集合应用程序对象:为用户提供一组完成特定任务的对象,所有应用对象都有用接口定义语言(IDL)定义的接口并且可以运行在对象请求代理之上,各个对象之间可以相互调用分布组件对象模式DCOM组件对象模型(COM)是构建二进制兼容软件组件的规范。COM对象间相互调用是通过一组语义相关的接口来实现的,接口中包含对象的方法函数,请求服务的对象通过方法调用来实现所需要的功能。COM定义了组件之间相互作用的方式,使得组件之间的联系无需任何中介组件。COM可以直接截取从客户端发出的请求调用,并将其直接传递给另一进程空间中的组件。但是COM组件只能在一台计算机内使用,为COM组件的跨平台使用带来了限制。分布组件对象模式DCOMDCOM(DistributedComponentObjectModel)一种分布式组件对象模型,它主要是为不同网络环境中的分布式对象提供交互的标准。DCOM具有语言独立性,可以采用多种开发语言进行开发。当客户进程(请求服务的组件)和组件位于不同的计算机上时,DCOM用网络协议来代替进程间的通信。分布组件对象模式DCOM组件COMCOM客户安全提供DECRPC协议栈安全提供DECRPC协议栈DCOM网络协议ORPCJAVA商业应用组件技术EJBEJB是Sun推出的基于Java的服务器端构件规范J2EE的一部分,自从J2EE推出之后,得到了广泛的发展,己经成为应用服务器端的标准技术。SunEJB技术是在JavaBean本地构件基础上发展的面向服务器端分布应用构件技术,它基于Java语言,提供了基于Java二进制字节代码的重用方式。EJB给出了系统的服务器端分布构件规范,这包括了构件、构件容器的接口规范以及构件打包、构件配置等标准规范内容。JAVA商业应用组件技术EJB企业应用多层结构分布式计算Internet技术应用•EJB是业务逻辑层的中间件技术,与JavaBean不同,它提供了事务处理的能力•EJB像CORBA一样,提供了分布式技术的基础,提供了对象之间的通讯手段•EJB、Servlet和JSP一起成为新一代应用服务器的技术标准三种主流技术比较接口定义开发语言CORBAOMGIDL接口支持多语言DCOM与C++紧密集成EJBJAVARMIAPI接口定义和JAVA平台通信CORBA支持异构平台间通信DCOM仅限WINDOWS平台EJB几乎所有OS和WEB服务器、浏览器发展趋势——标准化标准是业界共同遵守的技术格式。由于中间件还是一项发展中的技术,作为基础的标准化工作仍在进行中,所以当前流行的来自不同厂家之间的中间件产品还很难实现互操作。目前使用最广泛是OMG的CORBA和Microsoft的DCOM两种标准,但它们在具体实现时差别很大,使用的标准也不同。由于中间件是基于分布式系统应用程序模块,所以它的标准就和互联网的标准密切相关,但是这两个标准在防火墙面前都束手无策。而作为被业界广泛接收的XML就成了它们靠拢的标准。值得注意的是,Webservices就是架构在XML标准之上的,它的成功也从另一方面指明了标准化的方向。DCOMCORBAEJBXML发展趋势——构件化中间件本身作为软件产品,构件化的软件开发对中间件同样适用。中间件作为分布式计算平台,涉及资源多样。中间件的一个重要的设计目标是互操作,而互操作的关键是有清晰而与实现无关的接口。中间件的应用范围越来越广,但应用有不同的需要、不同的业务特点,如果仅仅依靠固定的模式去套用,显然不合适。因此,中间件必须设计成可伸缩的体系,由一些可替换的构件组成,如某些重于可靠,某些强调实时,某些则需要小巧。操作系统网络协议数据库中间件发展趋势——开放化和可配置化随着新的应用形式的出现以及传统应用环境的改变,中间件系统不断面临着一些新的挑战,例如群件、多媒体、实时以及移动系统所提出的需求。这些应用系统都具有一个共同的特点,它们都需要根据运行环境的改变而动态地改变。为此,传统的中间件平台必须引入某种新的机制来实现具有开放性的中间件系统。发展趋势——简单化中间件出现的原因就是为了方便网络编程,因此如何使它的应用更简便一直是它的努力方向,为此提出了基于服务的体系结构,它是比过程调用更高层次上的概念。显然,层次越高使用越简单服务越可靠。目前使用广泛的命名服务、事务服务和安全服务己经证明了这一点。但是和理想中的网络透明、服务透明和发现透明还有相当大的距离。未来的中间件应该能够提供更高层次上的和粒度更大的服务。查找服务用户服务JINI体系架构下载并运行代理对象通过查找找到服务服务寻找找到服务并注册通过代理对象客户和服务之间相互通信谢谢