CORBA客户端-服务端的处理流程(Java示例).doc
上传人:sy****28 上传时间:2024-09-14 格式:DOC 页数:5 大小:39KB 金币:16 举报 版权申诉
预览加载中,请您耐心等待几秒...

CORBA客户端-服务端的处理流程(Java示例).doc

CORBA客户端-服务端的处理流程(Java示例).doc

预览

在线预览结束,喜欢就下载吧,查找使用更方便

16 金币

下载此文档

如果您无法下载资料,请参考说明:

1、部分资料下载需要金币,请确保您的账户上有足够的金币

2、已购买过的文档,再次下载不重复扣费

3、资料包下载后请先用软件解压,在使用对应软件打开

CORBA客户端/服务端的处理流程(Java示例)一、客户端的处理流程ORB的初始化-->分布式对象引用的获取-->分布式对象的引用|1、ORB(ObjectRequestBroker,对象请求代理)是基于CORBA的分布式对象系统的核心,在代理对象(Stub)和分布式对象实现的背后,由ORB提供了实现分布式对象系统所需要的各种服务。由ORB提供的服务包括如下四种:1)ORB接口。主要包括ORB的初始化(获取ORB)、获取CORBA服务对象、动态调用请求的生成、分布式对象引用的变换等。2)DII(动态启动接口)。将客户端生成的对象调用请求传送给ORB时需要利用DII。3)DSI(动态骨架接口)。DSI是与DII对应的服务器端的接口,分布式对象实现利用该接口从ORB中获取来自客户端的请求。4)OA(对象适配器)。它是用于在服务器进程中管理分布式对象而提供的接口。OA提供的主要的功能包括分布式对象引用的生成,以及将分布式对象实现登录到ORB中等。在客户端中,ORB的初始化有以下两个目的1)为分布式对象初始化环境2)为了利用ORB接口而获取其对象的引用2、分布式对象引用的获取一般来说,CORBA系统不同,获取分布式对象引用的方法也不同,目前大概有如下几种方法:1)利用文件的方法获取对象。过程是:服务器将所生成的分布式对象引用进行字符串化处理后保存在文件中,并以某种方式将其发送到客户端能够获取的设备上。客户端从该文件中获取字符串的分布式对象引用,并将其恢复原状。分布式对象引用的字符串化:ORBorb=ORB.init();Stringorbstr=orb.object_to_string((Object)con_ref);//将orbstr以文件形式发送给客户端字符串化引用的复原:BankControlank_ref;ank_ref=Bank.ControlHelper.narrow(orb.string_to_object(orbstr));...2)利用Binding服务的方法获取对象引用。Binging服务,包括:定位(locating)、连接(binding)。定位服务通常利用服务器端的IP地址和端口进行定位。为了对连接进行管理以及进行调用请求的传递,在这一出理过程的最后阶段要生成与此接口对应的Stub类的对象,即代理对象。这一处理过程一般是利用IDL接口定义经映射之后所生成的Helper类中的narrow()方法完成。3)利用命名服务的方法获取对象引用。现在的ORB产品供应商都提供CORBA命名服务。如果从可移植性和互操作性等反面考虑,CORBA命名都是最优秀的。4)利用factory对象的方法获取对象引用。3、分布式对象的引用。CORBA客户利用代理对象来调用分布式对象中的方法。在Java环境下,代理对象是作为Java类来实现的,即Stub类。在客户端与分布式对象进行连接操作时,是通过利用所生成的Stub类的对象来进行的。由于这一对像起到代理作用,固称之为代理对象。示例代码://创建一个ORB实例,并初始ORBORBorb=ORB.init(args,null);//获取根名称上下文org.omg.CORBA.ObjectobjRef=orb.resolve_initial_references("NameService");NamingContextExtncRef=NamingContextExtHelper.narrow(objRef);//从命名上下文中获取接口实现对象Stringname="Hello";helloImpl=HelloHelper.narrow(ncRef.resolve_str(name));//调用接口对象的方法System.out.println(helloImpl.sayHello());//关闭分布式对象helloImpl.shutdown();二、服务器端的处理流程ORB的初始化-->BOA/POA的初始化-->分布式对象的生成-->分布式对象的登录-->接收请求开始|1、ORB功能中的服务器所需要的功能都组织到OA(对象适配器)中来。OA所提供的功能仅在服务器端使用,这些功能包括:1)分布式对象引用的生成2)分布式对象的登录与删除3)服务器进程的登录与删除4)分布式对象的激活5)服务器进程的激活6)方法调用请求的发送(dispatch)7)方法启动请求的认证信息的抽取2、BOA(BasicObjectAdapter,基本对象适配器),提供了由对象适配器所必须提供的最基本的功能。在CORBA2.2版本中,BOA被删除掉,取而代之的是POA(PortableObjectAd