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

  1. 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
  2. 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  3. 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
  4. 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
  5. 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们
  6. 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
  7. 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多

4、OMGIDL;1、IDL特点

CORBA标准中最有意义的内容

IDL类似于应用程序接口〔API〕

在客户代码与对象实现〔效劳〕之间定义了

一个清晰的边界

OMGIDL是一个稳定的标准

自1991年公布以来,根本未改变

是OMG其它被采纳标准的根底

已经被ISO采纳〔ISODIS14750〕

; 一个IDL文件可以向多个编程语言映射

IDL是独立于语言的

CORBA标准包含IDL向具体编程语言的映射

已经发布映射标准的语言包括:

C,C++,SmallTalk,Ada95等

IDL支持平台独立性

IDL是独立于平台的

由IDL指定的接口可以在不同的ORB

与平台上一致地表达

只要程序员使用由IDL定义的接口

不会遇到由于使用CORBA导致的

平台移植问题; IDL是一个纯标准,不涉及实现问题:

IDL定义的接口不对对象实现进行任何约束

例如: 编程语言

进程

算法 等

将客户从对象实现细节中清晰地别离出来

有利于:

软件复用

软件演化

这是IDL被广泛接收的重要原因; IDL设计的质量至为重要

IDL通常被用于定义应用系统中的重要接口

例如:

子系统接口

企业模型接口

库接口 等

这些接口是复用、互操作的关键局部

IDL的变化将影响系统中的多个软件模块

好的IDL将: 提高复用与互操作性

提高系统的适应性

降低维护费用

;2、IDL标准

IDL是一个严格的定义

用OMGIDL编写的接口定义

完整地定义了接口并且

完全指定了每个操作的参数

OMGIDL接口提供的信息

被用于开发使用接口操作的客户

客户程序不用纯描述性语言OMGIDL编写

而是用事先定义的映射

从OMGIDL概念映射到的语言编写的;OMGIDL词法遵循C++的词法规那么

OMGIDL语法是已被提议的ANSIC++标准的子集

但比C++更严格:

函数返回类型是强制的

对操作声明的每个正式参数都必须提供名称

由单个符号void组成的参数列表

不允许作为空参数列表的同义字

结构、discriminated联合和枚举要求被标记

??数类型不能定义为简单的int或unsigned

它们必须显式声明为short或long

char不能由signed或unsigned关键字限定;(1)IDL模块(Modules)

为IDL定义创立别离的名空间

防止不同领域中标识之间的冲突

模块可以嵌套

以创立 具有一定长度的

限定范围的 名字引用

名字引用例子:

Part::Assembly::ComponentWidget

;3个模块例子:

moduleAssembly{

typedefstringWidget;

};

modulePart{

typedef::Assembly::WidgetPartWidget;

moduleComponentPart{

typedefPartWidgetComponentWidget;

};

};

CORBAServices对模块进行扩充使用

每个效劳定义了一个或多个模块;(2)IDL接口(Interface)

IDL接口定义分布对象显露的细节

每个IDL接口定义了一个新对象类型

操作签名 是接口的核心

是效劳请求的入口点

接口 清晰地划分了效劳的实现与客户之间的边界

接口的缺乏之处:未显示代码之间的关系;例子:

InterfaceAccount{

//Accountdefinitions

}

InterfaceCheking:Account{

//InheritsallAccountdefinitions

//addsCheckingdefinitions

};

InterfaceSaving:Account{

//InheritsallAccountdefinitions

//addsSavingsdefinitions

};

IDL支持多继承;(3)IDL

文档评论(0)

159****1716 + 关注
实名认证
文档贡献者

该用户很懒,什么也没介绍

1亿VIP精品文档

相关文档