分布式对象技术及其在Web上的应用_第1页
分布式对象技术及其在Web上的应用_第2页
分布式对象技术及其在Web上的应用_第3页
分布式对象技术及其在Web上的应用_第4页
分布式对象技术及其在Web上的应用_第5页
全文预览已结束

下载本文档

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

文档简介

1、    分布式对象技术及其在Web上的应用            作者:佚名时间:2007-11-25 12:33:00                     摘要:本文首先论述了分布式对象技术的重要概念和基本原理,然后分析了CORBA和

2、Web相结合所带来的技术优势。最后,结合实例,介绍了开发基于CORBA/Web技术的应用系统的步骤和特点。关键词:Web  分布式对象  CORBA  IDL  PDMS1      引言Internet/Intranet的飞速发展使得World Wide Web应用日益广泛,从而引发了一场Web技术的革命。目前,各种新型的Web应用,如电子出版,电子商务等层出不穷,许多应用系统也纷纷集成了Web浏览器和服务器,Web技术正以日新月异的速度变化着。Web已不再仅仅是超媒体信息的浏览工具,它正逐步成为人们事

3、务处理的通用前端。在分布式环境中,异构性是一个十分明显的特点,一个典型的分布环境包括有大型主机、UNIX工作站和PC机,各种机器所采用的操作系统和网络通信协议也是千差万别。在这样的异构环境下实现信息和软件资源的共享将十分困难,而一个健壮的分布式计算框架将为分布式应用软件的开发带来巨大的好处。由于分布式对象技术,特别是CORBA技术对于提高Web的网络计算能力有着无可比拟的巨大作用,它已开始进入Web领域并投入应用。2      分布式对象技术分布式对象技术主要是在分布式异构环境下建立应用系统框架和对象构件,在应用系统框架的支撑下,开发者可以将软

4、件功能包装为更易管理和使用的对象,这些对象可以跨越不同的软硬件平台进行互操作。目前主要的分布式互操作标准有Microsoft的OLE/COM/DCOM标准、Sun公司的Java RMI标准和OMG组织的CORBA标准。下面以CORBA为代表论述分布式对象技术的体系结构,并对三种标准加以比较。2.1 CORBA体系结构CORBA的体系结构如图1所示。在该体系结构中主要描述了以下内容:(1)  接口与IDL语言接口是CORBA系统中一个非常重要的概念,因为它代表了对象的服务能力,为客户提供了操作对象的唯一方法。简单的说,接口就是一组相关函数的集合,接口中每一个函数都给出了详细的说明,包括

5、函数名、参数个数、参数类型、返回类型以及可能抛出的异常。必须指出的是接口只定义了函数的原型,并没有给出具体的实现,这就留给开发者足够的灵活性来提供他们自己的函数实现。接口是通过一种中性的接口描述语言( IDL,Interface Description Language)来定义的。虽然IDL语言只提供了被ORB操作的对象的概念框架,但是ORB在运行时并不需要IDL的源代码。只要桩例程或运行状态下接口库中的等价信息是可用的,ORB就能通过特定的方式完成其功能。 (2)  桩和构架桩(Stub)可以看成是实际对象在客户进程中的映像,其中的接口必须是预先定义好的,因此它为客户提供

6、了一种静态的调用方式。与桩相对应的构架(Skeleton)为服务器提供了一种静态的实现方式。IDL编译器翻译描述对象接口的IDL文件,生成对应具体编程语言的IDL桩和IDL构架。桩负责将客户请求进行编码,发送到对象实现端,并对收到的结果进行解释,然后把结果或异常返回给客户。与此相反,构架对客户的请求进行解码,定位目标对象和请求执行的对象方法,激活该方法,然后把结果或异常信息编码返回给客户端。(3)  动态调用接口和动态构架接口    与桩和构架不同,动态调用接口(DII ,Dynamic Invocation Interface)和动态构架接口(DSI

7、,Dynamic Skeleton Interface)提供了动态调用的方式和动态实现的方式,它们使得用户可以在事先不知道对象接口信息的情况下通过查询接口库或采取其它手段动态地获得对象接口信息,然后使用ORB核心接口中的DII动态调用方法构造客户请求并发送到对象实现。在对象实现方可以使用DSI的动态分发机制处理客户方的请求。与静态方式相比,动态方式提供了很大的灵活性,但是它的工作效率没有静态方式高。另外,实现系统的接口大多可以预先确定,所以大部分情况下都是采用静态方式。客户方与服务器方所采用的方式并不一定要一一对应,也就是说,客户方支持静态和动态两种调用方式,服务器方也支持静态和动态两种实现方

8、式,经过组合得到的四种方式都可能出现,例如,客户方使用静态调用方式,而服务器方使用动态构架接口是允许的,反之亦然。(4)  ORB核心和对象适配器与Unix的实现机制相类似,CORBA规范将那些相对固定的、单一的功能提取出来交由ORB内核实现以保证它的可靠性、高效性与可重用性。作为整个CORBA系统的基础,ORB内核通过屏蔽诸如服务器位置、实现方式、通信协议等具体细节为客户方与服务器方之间的通信提供了透明的传输机制。当前的应用系统存在着各种不同的对象实现方式,例如可执行程序、面向对象的数据库等,他们有不同的定位对象、解释对象、激活对象的方法。因此,如果将现存的所有对象实现的解决方案都

9、包含在ORB内核中,它必将非常庞大、冗余并且难以移植。为了确保ORB内核的高效与可移植性,一个称为对象适配器(OMA)的中间层加入到ORB与对象实现之间。定位目标对象的任务从ORB内核中分离出来交给对象适配器来完成。 22  CORBA与RMI和DCOM的比较RMI直接把分布式对象模型嵌入到Java语言内部,使得Java程序员可以自然地编写分布式程序,不必离开Java环境,或者涉及CORBA IDL以及Java到CORBA的类型转换。然而RMI不遵守CORBA标准,基本上是Java-to-Java技术,它需要客户方程序和服务方程序都用Java编写,难以实现与其它语言编写的对象之间的互

10、操作。DCOM则是从COM改造过来的。Microsoft把DCOM作为开发Internet和组件的基础,目前已搭载到Windows NT 4.0以上版本和Windows 98中。COM这一技术部分是作为规范,它定义对象实现的二进制标准,用于单机上应用之间的通信,对象实现与使用的语言无关。DCOM是COM的分布式扩展,在DCE RPC之上构造对象的远程过程调用层支持对远程对象的访问。一个DCOM对象(又称为ActiveX对象)是支持一个或多个界面的组件,DCOM界面指预先规定的一组相关函数。DCOM类实现一个或多个界面,由一个又一个128-bit类ID唯一标识。客户程序通过获得指向DCOM对象的

11、界面的指针与该对象交互,通过指针调用其操作。客户程序从不直接访问对象。DCOM对象不支持对象ID,因此,客户程序不能与某个特定的对象发生联系。3.   分布式对象技术与Web技术的集成Web 的发展已经历了两个发展阶段。静态的信息发布阶段。服务器只提供信息的存储和发布功能,用户通过浏览器被动地获取信息,功能单一,缺乏交互性。动态的信息发布阶段。用户可以通过CGI或JDBC等多种手段与Web服务器,甚至后端数据库直接交互,极大地增强了客户方的可操作性。但是,HTTP协议是一种无状态的协议,很难支持联机处理和系统集成。分布式对象技术与Web 之间并不存在着内在的必然联系,但是这

12、两者相结合后,却产生了诱人的技术魅力。第一,它可以消除CGI的瓶颈,使客户端能直接调用服务器上的方法。客户端可以利用预编译过的桩(Stub)传递参数或利用CORBA的动态调度服务在运行中产生参数,服务器通过一个预编译的程序直接接受调用。与HTTP/CGI比较起来,客户/服务器的开销非常小。在CGI 中,一个Applet每次调用服务器上的方法必须要启动一个新的进程请求,而CORBA不需要,CGI不能维护客户端调用间的状态,CORBA则可以做到。第二,CORBA可以提供可伸缩的服务器到服务器的基础结构,对象也可以利用CORBA ORB 进行通信。这样,为了均衡来自客户机上的请求负荷,ORB可以让这

13、些对象运行在多个服务器上,而且,ORB还可以根据各个服务器的负荷情况进行调度。而CGI面对要响应的成百上千个请求,无法将负载分散到多个进程或多个服务器上,这就是CGI运用的瓶颈。第三,CORBA 可以采用分布式对象结构扩充Java,目前,Java Applet还不能利用远程方法调    用进行跨地址空间的通信,而CORBA可以使Java Applet能够和用不同语言编写的其它对象进行跨地址空间及网络的通信,同时还可以提供强大的分布式对象服务。CORBA和Web相结合产生了面向对象的Web体系结构,如图2所示,它由客户层(Web浏览器)、应用层(Web服务

14、器和应用服务器)和资源层(数据库服务器)三层构成。客户层通过HTTP协议访问Web服务器,从Web服务器下载HTML页面,页面中内嵌的Java Applet通过CORBA内部通信机制(IIOP)访问应用层的对象和服务。应用层由Web服务器和应用服务器构成,主要提供安全管理,事务处理和各种访问服务。Web服务器提供常规的页面访问请求。应用服务器利用对象通信协议在Web浏览器和资源层之间提供事务处理和数据库访问的功能。资源层中主要包括数据库服务器和数据库。数据库服务器由会话管理、公共语言组件、数据存储和访问组件构成。会话管理处理来自应用层的请求。公共语言组件解释来自客户端的请求,并将它们转换成一种

15、适于传递到数据存储的形式。数据访问和存储执行请求包括访问数据库和进行事务处理。4  基于CORBA的Web计算模式实例分析受国家863计划CIMS专家组的委托,由东南大学和同创集团软件事业部联合开发研制的“基于CORBA/Web技术的企业级和部门级产品数据管理系统”,此项目得到八六三计划专家委员会的高度重视,被列为八六三重大目标产品项目。产品数据管理系统(PDMS,Product Data Management System)以产品为中心,通过计算机网络和数据库技术,把企业生产过程中所有与产品相关的信息和过程集成起来,统一管理,使产品数据在其生命周期内保持一致、最新和安全,实现整个企

16、业信息的集成,为工程技术人员提供一个协同工作的环境,从而缩短产品研发周期、降低成本、提高质量,为企业赢得竞争优势。    下面简要介绍基于CORBA/Web技术的PDMS的研制开发步骤:    (1)通过对应用需求的分析,归纳得到PDMS的服务功能及其描述。在功能模块上,OMG组织提出了“PDM使能器”规范,将PDM的功能通过八个使能器(工程活动需求、工程变更、制造实现、文档管理、产品结构定义、配置管理和测试维护等)封装起来。使它们能够支持企业制造过程模型中的产品开发过程。本系统的开发参照“PDM使能器”规范,保证了与其它PDMS的交

17、互性和通用性。(2)根据得到的服务功能描述,使用标准的 IDL语言进行描述,从而得到应用系统服务功能的IDL文件。IDL文件中包括了PDMS服务的数据类型和服务接口,服务接口又可以分为属性和操作。IDL语言是CORBA规范中定义的一种中性语言,它用来描述对象的接口,而不涉及对象的具体实现。通过CORBA软件总线系统提供的IDL编译器工具对PDMS服务的IDL描述文件进行转换,得到客户端桩文件和服务器端构架文件。在CORBA中定义了IDL语言到C、C+、和Java等语言的映射。本系统中服务器端的构架文件采用C+的映射形式,以充分利用C+语言在对象实现方面的优势;客户端的桩文件采用Java的映射形

18、式,以充分利用Java Applet在Web上的独特功能。(3)完成服务器端方主程序的编写,通过将服务器端功能实现代码与所生成的服务端构架代码联合编译得到实现相应系统服务功能的软构件,随后使用对象管理工具将该软构件注册到CORBA软件总线支持环境中,以供其它应用调用和访问。    (4)完成客户方Java Applet的编写,该Applet根据用户的需求向服务器方发出请求,并把请求结果返回给用户。由于绝大多数的浏览器对从网上下载的Java Applet采取一种称为“Sand-Box”的安全模型,使得Java Applet既不能与宿主机以外的计算机建立网络连接,也不能访问本地文件系统、本地设备。而CORBA系统的特点是服务对象的分布性和远程对象定位的透明性。本系统通过CORBA系统提供的IIOP代理(Gatekeeper)来解决安全限制的约束,它负责接受Applet发来的IIOP报文,分析报文内容,将其转发给位于其他主机上的Applet无法直接调用的CORBA服务对象实现,并将服务对象实现返回的IIOP报文送交Applet。  

温馨提示

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

评论

0/150

提交评论