文档详情

中间件技术.ppt

发布:2017-09-25约字共68页下载文档
文本预览下载声明
一、ORB结构 ORB是一个中间件(middleware),它可以建立对象之间的client/server关系。通过ORB,一个client可以透明的引用同一台机器上或网络上的一个server对象的方法。ORB解释该调用并负责查找一个实现该请求的对象,找到后,把参数传给该对象,调用它的方法,最后返回结果。client并不清楚该对象的位置,它的编程语言,它的操作系统以及其它不是对象接口的系统信息。 ORB能实现分布环境中位于不同机器上的应用之间的互操作以及多对象系统之间的无缝连接。 在传统的client/server)应用中,开发者使用自己设计的标准或通用标准来定义设备之间的协议。协议定义与实现的语言、网络传输及其它因素有关。ORB简化了这一过程,它使用IDL来定义应用接口之间的协议。ORB允许程序员选择通用操作系统,运行环境和编程语言。更重要的是,它能集成现存元素。 一、ORB结构 图 1 通过ORB传递请求通过ORB传递请求 一、ORB结构 图1显示了一个client向对象实现发送一个请求。Client是一个想对对象进行操作的一个实体,对象实体是实现对象的代码和数据。ORB负责根据一个请求来定位一个对象,安排对象实现准备接受请求,与请求的数据通讯。Client的接口与对象的位置完全,实现对象的语言及其它不在对象接口反映出来的方面等无关。 图2显示了单个ORB的结构。用斜条文的矩形框表示ORB的接口, 箭头表示调用ORB或ORB使用接口把信息向上传递。 一、ORB结构 图2 ORB接口结构 一、ORB结构 Clinet使用Dynamic Invocation interface (与目标对象的接口无关)或OMG IDL stub (与目标对象接口有关的stub)来发出请求。由于某种原因,Client也可以直接与ORB联系。对象实现使用OMG IDL生成的skeleton或动态 skeleton以向上传送(up-call)的方式接受请求。对象实现也可以调用Object Adapter和ORB。可以用两种方式来定义对象接口:一是用OMG Interface Definition Language (OMG IDL)来定义接口。该语言根据可能对对象进行的操作和这些操作使用的参数来定义对象类型。第二种方法是,把接口(interface)放入Interface Repository service中; 该服务把接口中的元素描述成一个对象。任何能实现ORB的软件中,Interface Definition Language (可能根据文档的内容而改变)和Interface Repository具有相同的作用。一个client要使用Object Reference完成请求,它必须知道对象的类型的及具体的操作。Client初始化请求有两种方法,一是通过调用目标对象的stub routines,二是动态的创造请求(如图3所示)。 一、ORB结构 图 3 Client使用Stub 或Dynamic Invocation Interface 一、ORB结构 不论使用Stub还是Dynamic Invocation Interface来发出请求具有相同的语义,信息的接收者不能分辨出该请求是使用哪种方法来传递的。ORB确定适当的实现代码,传递参数,通过IDL skeleton或dynamic skeleton (如图Figure 4 所示)把控制传给Object Implementation。每一个接口和object adapter 使用不同的Skeletons。为了完成请求,object implementation 可能通过Object Adapter 使用来自ORB的服务。当完成请求后,控制和输出结果返回给client。 图4 Object Implementation 接受请求 一、ORB结构 Object Implementation选择使用何种Object Adapter。它是根据Object Implementation 需要服务的种类来确定的。图5 显示了clients和object implementations如何使用接口和实现信息。用OMG IDL或Interface Repository来定义接口;该定义用于产生client Stubs和object implementation Skeletons。 图 5 Interface 和 Implementation Repositories 一、ORB结构 在安装时把object im
显示全部
相似文档