高级软件工程03IDL与ORB接口.pptVIP

  • 2
  • 0
  • 约7.68千字
  • 约 46页
  • 2017-12-23 发布于上海
  • 举报
高级软件工程03IDL与ORB接口

interface Object { // PIDL InterfaceDef get_interface (); boolean is_nil(); Object duplicate (); void release (); boolean is_a (in string logical_type_id); boolean non_existent(); boolean is_equivalent (in Object other_object); unsigned long hash(in unsigned long maximum); 这样的操作包括: ORB接口 void create_request (in Context ctx in Identifier operation, in NVList arg_list, inout NamedValue result, out Request request, in Flags req_flag); Policy get_policy (in PolicyType policy_type); DomainManagersList get_domain_managers (); Object set_policy_overrides(in PolicyList policies, in SetOverrideType set_add ); }; ORB接口 InterfaceDef get_interface (); ImplementationDef get_implementation (); 确定对象实现和接口 对象引用上的get_interface操作返回 Interface Repository里的一个对象 该对象提供可能对程序有用的类型信息 Object上的get_implementation操作 返回实现池里的一个对象 该对象描述对象的实现 ORB接口 * 4、OMG IDL OMG IDL IDL特点 IDL规范 模块 接口 提前声明 常量 类型声明 序列 any 类型 属性 例外 操作签名 预编译 1、IDL特点 CORBA规范中最有意义的内容 IDL类似于应用程序接口(API) 在客户代码与对象实现(服务)之间定义了 一个清晰的边界 OMG IDL是一个稳定的标准 自1991年公布以来,基本未改变 是OMG其它被采纳规范的基础 已经被ISO采纳(ISO DIS 14750) OMG IDL 一个IDL文件可以向多个编程语言映射 IDL是独立于语言的 CORBA规范包含IDL向具体编程语言的映射 已经发布映射规范的语言包括: C, C++, SmallTalk, Ada95 等 IDL支持平台独立性 IDL是独立于平台的 由IDL指定的接口可以在不同的ORB 与平台上一致地表达 只要程序员使用由IDL定义的接口 不会遇到由于使用CORBA导致的 平台移植问题 OMG IDL IDL是一个纯规范,不涉及实现问题: IDL定义的接口不对对象实现进行任何约束 例如: 编程语言 进程 算法 等 将客户从对象实现细节中清晰地分离出来 有利于: 软件复用 软件演化 这是IDL被广泛接收的重要原因 OMG IDL IDL设计的质量至为重要 IDL通常被用于定义应用系统中的重要接口 例如: 子系统接口 企业模型接口 库接口 等 这些接口是复用、互操作的关键部分 IDL的变化将影响系统中的多个软件模块 好的IDL将: 提高复用与互操作性 提高系统的适应性 降低维护费用 OMG IDL 2、IDL规范 IDL是一个严格的定义 用OMG IDL编写的接口定义 完整地定义了接口 并且 完全指定了每个操作的参数 OMG IDL接口提供的信息 被用于开发使用接口操作的客户 客户程序不用纯描述性语言OMG IDL编写 而是用事先定义的映射 从OMG IDL概念映射到的语言编写的 OMG IDL OMG IDL词

文档评论(0)

1亿VIP精品文档

相关文档