CORBA动态调用接口(DII)的深入解析与应用
1. 引言
在分布式系统中,操作调用是一个核心功能。CORBA(Common Object Request Broker Architecture)提供了两种不同的操作调用方式:静态调用接口(SII)和动态调用接口(DII)。SII使用从IDL(Interface Definition Language)生成的存根代码,以特定语言的便捷语法使IDL操作对应用程序可用。然而,对于某些应用程序,存根代码的使用过于受限,因为它要求应用程序使用的IDL接口必须事先已知,这在某些情况下是不可能的。因此,CORBA定义了动态调用接口(DII),允许在运行时动态创建调用。
2. DII概述
在进行调用之前,客户端必须了解IDL接口。这种知识有两个可能的来源:
- 存根代码 :使用IDL编译器从IDL生成。
- 接口仓库 :通常使用命令行实用程序将IDL注册到接口仓库。
在实际应用中,DII的使用与接口仓库的使用密切相关。当DII客户端在运行时需要进行调用时,它必须咨询接口仓库,以动态发现要调用的操作的语法。接口仓库是一个独立的CORBA服务器,作为所有IDL声明的存储库,通过标准IDL接口以解析树的形式提供声明,可在运行时通过对接口仓库进行远程调用来检索IDL接口的信息。
3. CORBA::DynAny和CORBA::TypeCode的使用
存根代码的缺失除了迫使你咨询接口仓库外,还有其他重要影响。存根代码还提供了以下有用的类:
- 用户定义数据类型的类型代码。
超级会员免费看
订阅专栏 解锁全文
1822

被折叠的 条评论
为什么被折叠?



