分布式对象技术及其应用第五章.pptVIP

  • 1
  • 0
  • 约3.82千字
  • 约 27页
  • 2021-12-11 发布于广东
  • 举报
第一页,共27页 在分布式对象系统中,所谓服务器是指实现分布式对象功能的程序,它是由两部分组成的:一是分布式对象实现部分,这部分是CORBA服务器的核心部分,用于实现IDL定义的接口的功能;二是服务器进程部分,这部分主要用于实现分布式对象的生成与登录,以及接受来自客户端的调用请求等。CORBA服务器是根据IDL接口定义来实现的。在CORBA服务器的实现过程中,需要利用IDL的Java语言映射结果。本章主要介绍CORBA服务器的实现过程,所利用的IDL接口及其映射结果与4.1节给出的例子相同。 第二页,共27页 5.1CORBA服务器的构造 CORBA服务器是指实现分布式对象功能的程序。图5.1给出了CORBA服务器程序的基本构成。 第三页,共27页 CORBA服务器程序的基本构成: ORB的初始化 BOA/POA的初始化 接收请求开始 图5.1 CORBA服务器的处理流程 分布式对象的生成 分布式对象的登录 第四页,共27页 一种服务器程序的实现框架: public class ControlSerImpl { public static void main(String args[]){ //args的检查处理 try{ //ORB的初始化 org.omg.CORBA.ORB orb = org.omg.CORBA.ORB.init(args,null); //BOA的初始化 org.omg.CORBA.BOA boa = orb.BOA_init(); //分布式对象的生成 ControlImpl control = new ControlImpl(“BANK”); //分布式对象的登录(登录到BOA中) boa.obj_is_ready(control); //接收请求 boa.impl_is_ready();//循环等待 } catch(org.CORBA.SystemException system_exception) { //异常处理 } } } 第五页,共27页 5.2 对象适配器的作用 5.2.1对象适配器的作用 在客户端开发一章中已经提到过,ORB的初始化结束以后,就已经获得了ORB对象的引用,这样,就可以使用ORB的功能了。 在CORBA中,把ORB功能中的服务器所需要的功能都组织到被称为对象适配器OA(Object Adapter)的对象中来提供。这也就是说OA是ORB的一个组成部分,同时,由OA所提供的功能也仅在开发服务器程序时使用,而不用于开发客户端程序。 第六页,共27页 由CORBA所提供的服务器的功能主要有如下几种,这些功能在不同的系统中所体现的方式可能是不同的,有的是分别提供的,有的是一个功能中包含多项: (1)分布式对象引用的生成; (2)分布式对象的登录与删除; (3)服务器进程的登录与删除; (4)分布式对象的激活; (5)服务器进程的激活; (6)方法调用请求的发送(dispatch); (7)方法启动请求的认证信息的取出。 第七页,共27页 5.2.2 BOA与POA 由POA来取代BOA主要是基于以下的原因: (1)BOA描述模糊,服务器端程序难于移植; (2)由BOA所提供的功能难以满足对CORBA系统的开发。 第八页,共27页 5.2.3 伪对象 伪对象与普通的CORBA分布式对象的主要区别有如下几点: (1)不能将伪对象作为一般CORBA对象中操作的参数进行传递。 (2)在接口仓库中没有伪对象的定义信息。 第九页,共27页 5.3 BOA的功能 由于BOA本身也是作为对象来实现的,因此,同ORB一样,为了利用其功能也必须要先获取其对象引用。为了获取BOA对象的引用,一般需要首先获取ORB对象的引用,然后通过调研ORB对象中的方法来获取BOA对象的引用。 在获取了BOA的对象引用之后,就可以利用BOA的功能来实现服务器的功能了。由于不同的CORBA产品对BOA的定义也是由差异的,因此,下面给出的只是BOA的一种定义形式,从中可以了解由BOA所提供的功能。 第十页,共27页 Public abstract class org.omg.CORBA.BOA extends java.lang.Object{ //取出方法启动请求的认证信息 public abstract org.omg.CORBA.principal get_principle(org.omg.CORBA.Object obj)

文档评论(0)

1亿VIP精品文档

相关文档