欢迎来到天天文库
浏览记录
ID:21615179
大小:56.50 KB
页数:7页
时间:2018-10-23
《对于分布式对象技术及其在web上的应用》由会员上传分享,免费在线阅读,更多相关内容在工程资料-天天文库。
1、对于分布式对象技术及其在Web上的应用:本文首先论述了分布式对象技术的重要概念和基本原理,然后分析了CORBA和S1引言InterIntra的飞速发展使得icrosoft的OLE//D标准、Sun公司的JavaRMI标准和OMG组织的CORBA标准。下面以CORBA为代表论述分布式对象技术的体系结构,并对三种标准加以比较。2.1CORBA体系结构CORBA的体系结构如图1所示。在该体系结构中主要描述了以下内容:(1)接口和IDL语言接口是CORBA系统中一个非常重要的概念,由于它代表了对象的服务能力,为客
2、户提供了操纵对象的唯一方法。简单的说,接口就是一组相关函数的集合,接口中每一个函数都给出了具体的说明,包括函数名、参数个数、参数类型、返回类型以及可能抛出的异常。必须指出的是接口只定义了函数的原型,并没有给出具体的实现,这就留给开发者足够的灵活性来提供他们自己的函数实现。接口是通过一种中性的接口描述语言(IDL,Inte***ceDescriptionLanguage)来定义的。固然IDL语言只提供了被ORB操纵的对象的概念框架,但是ORB在运行时并不需要IDL的源代码。只要桩例程或运行状态下接口库中的等
3、价信息是可用的,ORB就能通过特定的方式完成其功能。(2)桩和构架桩(Stub)可以看成是实际对象在客户进程中的映像,其中的接口必须是预先定义好的,因此它为客户提供了一种静态的调用方式。和桩相对应的构架(Skeleton)为服务器提供了一种静态的实现方式。IDL编译器翻译描述对象接口的IDL文件,天生对应具体编程语言的IDL桩和IDL构架。桩负责将客户请求进行编码,发送到对象实现端,并对收到的结果进行解释,然后把结果或异常返回给客户。和此相反,构架对客户的请求进行解码,定位目标对象和请求执行的对象方法,激
4、活该方法,然后把结果或异常信息编码返回给客户端。(3)动态调用接口和动态构架接口和桩和构架不同,动态调用接口(DII,DynamicInvocationInte***ce)和动态构架接口(DSI,DynamicSkeletonInte***ce)提供了动态调用的方式和动态实现的方式,它们使得用户可以在事先不知道对象接口信息的情况下通过查询接口库或采取其它手段动态地获得对象接口信息,然后使用ORB核心接口中的DII动态调用方法构造客户请求并发送到对象实现。在对象实现方可以使用DSI的动态分发机制处理客户方的
5、请求。和静态方式相比,动态方式提供了很大的灵活性,但是它的工作效率没有静态方式高。另外,实现系统的接口大多可以预先确定,所以大部分情况下都是采用静态方式。客户方和服务器方所采用的方式并不一定要逐一对应,也就是说,客户方支持静态和动态两种调用方式,服务器方也支持静态和动态两种实现方式,经过组合得到的四种方式都可能出现,例如,客户方使用静态调用方式,而服务器方使用动态构架接口是答应的,反之亦然。(4)ORB核心和对象适配器和Unix的实现机制相类似,CORBA规范将那些相对固定的、单一的功能提取出来交由ORB
6、内核实现以保证它的可靠性、高效性和可重用性。作为整个CORBA系统的基础,ORB内核通过屏蔽诸如服务器位置、实现方式、通讯协议等具体细节为客户方和服务器方之间的通讯提供了透明的传输机制。当前的应用系统存在着各种不同的对象实现方式,例如可执行程序、面向对象的数据库等,他们有不同的定位对象、解释对象、激活对象的方法。因此,假如将现存的所有对象实现的解决方案都包含在ORB内核中,它必将非常庞大、冗余并且难以移植。为了确保ORB内核的高效和可移植性,一个称为对象适配器(OMA)的中间层加进到ORB和对象实现之间。
7、定位目标对象的任务从ORB内核中分离出来交给对象适配器来完成。2.2CORBA和RMI和D的比较RMI直接把分布式对象模型嵌进到Java语言内部,使得Java程序员可以自然地编写分布式程序,不必离开Java环境,或者涉及CORBAIDL以及Java到CORBA的类型转换。然而RMI不遵守CORBA标准,基本上是Java-to-Java技术,它需要客户方程序和服务方程序都用Java编写,难以实现和其它语言编写的对象之间的互操纵。D则是从改造过来的。Microsoft把D作为开发Inter和组件的基础,目前已
8、搭载到WindowsNT4.0以上版本和Windows98中。这一技术部分是作为规范,它定义对象实现的二进制标准,用于单机上应用之间的通讯,对象实现和使用的语言无关。D是的分布式扩展,在DCERPC之上构造对象的远程过程调用层支持对远程对象的访问。一个D对象(又称为ActiveX对象)是支持一个或多个界面的组件,D界面指预先规定的一组相关函数。D类实现一个或多个界面,由一个又一个128-bit类ID唯一标识。客户程序通过获得指
此文档下载收益归作者所有