利用动态调用方式实现分布式应用(上)
(本文转载自软件工程专家网www.21cmm.com)
苏洋
CORBA规范中定义动态调用接口(Dynamic Invocation Interface,DII)和动态骨架接口(Dynamic Skeleton Interface,DSI)的目的在于增加分布式应用程序设计的灵活性。
通常,基于客户端存根程序的情况下,需要预先知道被调用方法的名称、参数、返回值类型等信息。但是,在实际应用中往往在设计客户端应用时,不知道服务对象实现的具体细节,甚至服务对象实例还没有被创建。根据这种情况,CORBA定义了另外一种客户对象调用服务对象实现方法的方式:客户端以动态调用接口(DII)方式实现,而服务对象以动态骨架接口(DSI)形式创建。这样,在分布式应用程序设计时,很大程度上减少了客户端应用程序创建时对服务对象的依赖程度,提高了分布式应用程序设计的灵活性。
客户端动态调用接口(DII)
动态调用方式下创建客户端和服务对象实现应用时不再依靠桩程序和骨架程序对服务对象的引用。因此,在IDL到Java语言映射过程中需要指定映射工具的动态调用映射选项“-dynamic_marshal”,在VisiBroker中映射的方式为:
idl2java -dynamic_marshal filename.idl
在创建基于动态调用的分布式应用程序的客户