正在加载图片...
CORBA上的服务用IDL描述,IDL将被映射为某种程序设计语言如C++或Java,并且 分成两分,在客户方叫 IDL Stub(桩),在服务器方叫 IDL Skeleton(骨架)。两者可以采 用不同的语言。服务器方在 Skeleton的基础上编写对象实现( Object Implementation,而客户 方要访问服务器对象上的方法,则要通过客户桩。而双方又要通过而ORB( Object Request Broker,对象请求代理)总线通信。 与传统的 Client/Server模式(我们称为Two- tier client/server)不同, CORBA是一种 multi- tier client/ server architecture,更确切的说,是一种 three- tier client/ server模式。双重客 户/服务器模式存在的问题是两者耦合太紧,它们之间采用一种私有协议通信,服务器的改 变将影响到客户方。多重客户/服务器与此不同,两者之间的通信不能直接进行,而需要通 过中间的一种叫代理的方式进行。在 CORBA中这种代理就是ORB。通过它,客户和服务 器不再关心通信问题,它们只需关心功能上的实现。从这个意义上讲, CORBA是一种中间 件( Middleware)技术 下面列出 CORBA中的一些重要概念,或者说 CORBA中的几个重要名词,有助于读者 了解 CORBA的一些重要的方面 12 CORBA中的几个概念 1. 2. 1 ORB(Object Request Broker) CORBA体系结构的核心就是ORB。可以这样简单理解:ORB就是使得客户应用程序 能调用远端对象方法的一种机制。 Client machine Client Applicatio Operation Call Code Object IDL Interface 图12ORB模型 具体来说就是:当客户程序要调用远程对象上的方法时,首先要得到这个远程对象的引 用,之后就可以像调用本地方法一样调用远程对象的方法。当发出一个调用时,实际上ORB 会截取这个调用(通过客户Stub完成,“提高”篇中会详细解释),因为客户和服务器可 能在不同的网络、不同的操作系统上甚至用不同的语言实现,ORB还要负责将调用的名字 参数等编码成标准的方式(称 Marshaling)通过网络传输到服务器方(实际上在同一台机器上 也如此),并通过将参数 Unmarshaling的过程,传到正确的对象上(这整个过程叫重定向, Redirecting),服务器对象完成处理后,ORB通过同样的 Marshaling/ Unmarshaling方式将结 果返回给客户。 因此,ORB是一种功能,它具备以下能力: 1.对象定位(根据对象引用定位对象的实现) 2.对象定位后,确信 Server能接受请求 3.将客户方请求通过 Marshaling/ Unmarshing方式重定向到服务器对象上2 CORBA 上的服务用 IDL 描述,IDL 将被映射为某种程序设计语言如 C++或 Java,并且 分成两分,在客户方叫 IDL Stub(桩), 在服务器方叫 IDL Skeleton(骨架)。两者可以采 用不同的语言。服务器方在 Skeleton 的基础上编写对象实现(Object Implementation),而客户 方要访问服务器对象上的方法,则要通过客户桩。而双方又要通过而 ORB(Object Request Broker,对象请求代理)总线通信。 与传统的 Client/Server 模式(我们称为 Two-tier client/server)不同,CORBA 是一种 multi-tier client/server architecture,更确切的说,是一种 three-tier client/server 模式。双重客 户/服务器模式存在的问题是两者耦合太紧,它们之间采用一种私有协议通信,服务器的改 变将影响到客户方。多重客户/服务器与此不同,两者之间的通信不能直接进行,而需要通 过中间的一种叫代理的方式进行。在 CORBA 中这种代理就是 ORB。通过它,客户和服务 器不再关心通信问题,它们只需关心功能上的实现。从这个意义上讲,CORBA 是一种中间 件(Middleware)技术。 下面列出 CORBA 中的一些重要概念,或者说 CORBA 中的几个重要名词,有助于读者 了解 CORBA 的一些重要的方面。 1.2 CORBA 中的几个概念 1.2.1 ORB(Object Request Broker) CORBA 体系结构的核心就是 ORB。可以这样简单理解:ORB 就是使得客户应用程序 能调用远端对象方法的一种机制。 图 1.2 ORB 模型 具体来说就是:当客户程序要调用远程对象上的方法时,首先要得到这个远程对象的引 用,之后就可以像调用本地方法一样调用远程对象的方法。当发出一个调用时,实际上 ORB 会截取这个调用(通过客户 Stub 完成,“提高”篇中会详细解释),因为客户和服务器可 能在不同的网络、不同的操作系统上甚至用不同的语言实现,ORB 还要负责将调用的名字、 参数等编码成标准的方式(称 Marshaling)通过网络传输到服务器方(实际上在同一台机器上 也如此),并通过将参数 Unmarshaling 的过程,传到正确的对象上(这整个过程叫重定向, Redirecting),服务器对象完成处理后,ORB 通过同样的 Marshaling/Unmarshaling 方式将结 果返回给客户。 因此,ORB 是一种功能,它具备以下能力: 1.对象定位(根据对象引用定位对象的实现) 2.对象定位后,确信 Server 能接受请求 3.将客户方请求通过 Marshaling/Unmarshing 方式重定向到服务器对象上
<<向上翻页向下翻页>>
©2008-现在 cucdc.com 高等教育资讯网 版权所有