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

  • 0
  • 0
  • 约6.94千字
  • 约 27页
  • 2023-08-23 发布于广东
  • 举报
分布式对象技术及其应用第五章;在分布式对象系统中,所谓服务器是指实现分布式对象功能的程序,它是由两部分组成的:一是分布式对象实现部分,这部分是CORBA服务器的核心部分,用于实现IDL定义的接口的功能;二是服务器进程部分,这部分主要用于实现分布式对象的生成与登录,以及接受来自客户端的调用请求等。CORBA服务器是根据IDL接口定义来实现的。在CORBA服务器的实现过程中,需要利用IDL的Java语言映射结果。本章主要介绍CORBA服务器的实现过程,所利用的IDL接口及其映射结果与4.1节给出的例子相同。 ;5.1CORBA服务器的构造;CORBA服务器程序的基本构成: ;一种服务器程序的实现框架: 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) { //异常处理 } } };5.2 对象适配器的作用;由CORBA所提供的服务器的功能主要有如下几种,这些功能在不同的系统中所体现的方式可能是不同的,有的是分别提供的,有的是一个功能中包含多项: (1)分布式对象引用的生成; (2)分布式对象的登录与删除; (3)服务器进程的登录与删除; (4)分布式对象的激活; (5)服务器进程的激活; (6)方法调用请求的发送(dispatch); (7)方法启动请求的认证信息的取出。 ;5.2.2 BOA与POA 由POA来取代BOA主要是基于以下的原因: (1)BOA描述模糊,服务器端程序难于移植; (2)由BOA所提供的功能难以满足对CORBA系统的开发。 ;5.2.3 伪对象 伪对象与普通的CORBA分布式对象的主要区别有如下几点: (1)不能将伪对象作为一般CORBA对象中操作的参数进行传递。 (2)在接口仓库中没有伪对象的定义信息。 ;5.3 BOA的功能;Public abstract class org.omg.CORBA.BOA extends java.lang.Object{ //取出方法启动请求的认证信息 public abstract org.omg.CORBA.principal get_principle(org.omg.CORBA.Object obj); //分布式对象的登录 public abstract void obj_is_ready(org.omg.CORBA.Object obj); public abstract void obj_is_ready(org.omg.CORBA.Object obj,…); //分布式对象的删除 public abstract void deactivate_obj(org.omg.CORBA.Object obj); //服务器进程的登录 public abstract void impl_is_ready(); public abstract void impl_is_ready(…); …… } ;5.4 分布式对象的实现;5.4.1 Skeleton继承方式 所谓Skeleton继承方式,就是通过直接继承Skeleton类来实现分布式对象实现。这种方式的特点是由对象适配器(OA)来调用Skeleton类中的dispatch方法,而dispatch方法通过参数来接收来自客户端的调用请求。;5.4.2 Skeleton类的构造 在CORBA服务器程序设计过程中,由于Skeleton类的作用使得很多复杂的细节都被隐藏掉了,程序设计 人员可以集中精力来研究业务逻辑的实现问题,从表面上看,就如同实现本地对象一样来实现分布式对象。 在上一章介绍了Stub类的结构,在本节将介绍Skeleton类的构

文档评论(0)

1亿VIP精品文档

相关文档