class org.omg.CORBA.ORB说明

    技术2022-05-11  125

    ORB

    abstract public class org.omg.CORBA.ORB

     

    作者: Cocia Lin

     说明:本文是在jdk1.3的源码中翻译整理而成。

     ORB类是为CORBA ORB提供的。ORB类也提供可插入实现ORBpluggable ORB implementation)以允许ORB提供商来实现使用。

     

    一个ORB使CORBA对象相互能够通过客户请求(client)和对象服务请求(server)通信。

    ORB类封装了通用的CORBA功能,包括以下:(注意:第5和第6条包含了ORB类得大多数方法,典型的是被用在Dynamic Invocation Interfacd(DII)DynamicSkeleton Interface(DSI)。这些接口可能被开发者直接使用,但多数情况下,他们是被ORB内部使用,程序员看不到他们)

    初始化ORB是通过提供预先确定的属性值和环境参数实现的。包含服务的初始化对象参数,例如NameService使用resolve_initial_references在对象引用合字符串之间转换。ORB连接到一个servent(一个CORBA对象得实现实例)和从servant断开联结。 创建这样的对象:TypeCode * Any * NamedValue * Context * Environment * lists (such as NVList) containing these objects * DII中传递多个消息。

    ORB类可以用来获得网络上任何地方的对象实现的引用。

      一个Application 或Applet通过3个初始化方法中的1个在ORB上初始化自己获得CORBA环境的访问入口。其中有2个方法使用下面表格中的属性:

    基本Java CORBA属性

     Property Name

    Property Value

    org.omg.CORBA.ORBClass

    ORB实现的类名

    org.omg.CORBA.ORBSingletonClass

    通过init()返回的ORB类名

    这些属性允许不同的ORB提供商提供不同的实现。

    当一个ORB实例被创建,ORB的类名实现通过下边的顺序被定位:

    检测Applet参数或Application字符串数组。检测属性参数检测系统参数 检测java.home/lib目录中的orb.properties文件。使用缺省的参数(利用Java IDL实现)

    注意:Java IDL为全功能ORB和单子(singletonORB提供了一个默认实现。当init方法没有提供参数,返回默认单子ORB。当给init方法提供参数但没有ORB类被提供,返回Java IDLORB实现。

    下面的代码片断创建一个使用默认单子ORB的ORB对象 。这个ORB有一个限制的实现,防止恶意的不受限的applet任意操作。使用单子模式是因为一个JVM只有一个ORB实例。

     *    ORB orb = ORB.init();

    下面的代码片断为Application创建一个ORB对象。参数args代表Application的main方法提供的参数。因为属性指定了ORB类为SomeORBImplementation,所以新的ORB将使用ORB实现来初始化。如果p是null,并且参数没有指定ORB类,新的ORB将被使用默认Java IDL实现初始化。

     *    Properties p = new Properties(); *    p.put("org.omg.CORBA.ORBClass", "SomeORBImplementation"); *    ORB orb = ORB.init(args, p);

    下面的代码片断提供applet作为第一个参数创建ORB对象。如果applet没有提供ORB类,那么新ORB将使用默认Java IDL实现初始化。

     *    ORB orb = ORB.init(myApplet, null); *

    一个application或applet可以在一个或者多个ORB中被初始化。ORB初始化只是CORBA世界的开始。

    关于作者

    Cocia Lin(cocia@163.com)是程序员。他拥有学士学位,现在专攻Java相关技术,刚刚开始在计算机领域折腾。

     

     


    最新回复(0)