- 1、本文档共36页,可阅读全部内容。
- 2、有哪些信誉好的足球投注网站(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
第二部分 CORBA的核心第四章 OMG接口定义语言 4.2 简介 OMG IDL是CORBA的基本抽象机理,它从实现中分离出对象接口。在客户机和服务器程序之间建立起了一个契约,用它来描述在应用程序中需要用到的类型和对象接口。 IDL定义由一个IDL编译器编译一个具体的实现语言。编译器将这些与语言无关的定义翻译成特定语言的类型定义和API,开发者使用这些类型和API来提供应用程序的功能和与ORB交互。 IDL只描述接口,不描述实现,它是一个纯说明性语言。 IDL定义把焦点集中在对象接口、其它接口所支持的操作和操作时所可能引发的异常上, 。IDL的大部分内容涉及到数据类型的定义,这些数据用来提供客户机和服务器程序之间的交互。 OMG接口定义语言 4.3 编译 一个IDL编译器生成源文件。源文件必须与应用程序代码一起生成客户机和服务器的可执行文件,不同的ORB可能生成不同文件名和文件数目。 4.3.1 编译 IDL编译器生成四个IDL定义的文件,两个头文件types.hh和serv.hh,一个存根文件stubs.cc和一个框架文件skels.cc。 头文件types.hh包含在IDL中所有的相应类型的定义(数据类型和接口)。 头文件serv.hh包含在IDL中所有的相应类型的定义(特指服务器端的)。 存根文件stubs.cc提供客户程序发送消息给远程的对象所需要的API。 框架文件skels.cc中提供一个从这个ORB到开发人员所编写的服务器源代码的上端调用接口,并且提供ORB的网络层和应用程序代码之间的连接。 客户机和服务器程序还必须与ORB库连接,它提供必要的运行时支持。 OMG接口定义语言 联邦制的服务器程序提供了一种单一的逻辑服务,它将大量的进程分布在不同的机器上。在这种联邦机制中每个服务器程序实现相同的接口,但是控制着不同的对象。 4.3.2 客户机和服务器的不同开发环境 不同语言或不同ORB开发的客户机和服务器程序不能共享任何源代码或二进制组件。JAVA不能包含C++头文件,不能共享不同的ORB。 客户用JAVA在ORB(A)上开发,服务器用C++在ORB(B)上开发。客户机和服务器完全独立(开发环境、语言映射和ORB)。客户机和服务器程序之间唯一的连接就是IDL定义。 OMG接口定义语言 客户和服务器连接如下图 OMG接口定义语言 4.4 源文件 4.4.1 文件的命名 包含IDL定义的源文件的命名必须以idl为扩展名。编译器拒绝编译其它扩展名。对于不区分大小写的DOS,扩展名用大小写都可。对于区分大小写的UNIX,扩展名必须用小写。 4.4.2 文件格式 IDL是一种自由的格式语言。允许自由的使用空格、水平和垂直制表符、换行和换页符,没有规定页面布局和缩进方式。任何文本编辑器都可对其进行编辑。 4.4.3 预处理 IDL源文件是经过预处理的。预处理作为编译器的一部分来实现,它也可以是外部的程序。预处理常见的有#include和#define等。 4.4.4 定义的顺序 IDL结构,比如模块、接口或类型定义,顺序可任意,但标识符必须在使用将说明。 OMG接口定义语言 4.5 词法规则 4.5.1 注释 IDL定义允许使用C++和C两种形式的注释 /*……………………*/和// 4.5.2 关键字 IDL中关键字必须用小写字母。三个例外:Object、TRUE和FALSE 4.5.3 标识符 标识符由字母、数字和下划线组成,以字母开头,不能以下划线开头(转义标识符)。不能有非英语字母(映射困难)。 标识符是不区分大小写的,但必须以大写字母开头。否则非法。 IDL允许创建凑巧在某种实现语言中正好是关键字的标识符,编译器使用前缀来避开这个关键字。入while加前缀后_cxx_while。 OMG接口定义语言 4.6 基本的IDL类型 在CORBA中,不一定所有的IDL提供的类型在任何语言中都与要求相符。这就要求实现部分提供与要求的取值范围有任何差别的文档资料。 IDL中仅仅指定了下线尺寸,而未指定上限。这是为了避免限制那些可能的目标环境和语言。CORBA规范对IDL基本类型的尺寸和取值范围保留了灵活性。如有些CPU体系结构没有8位字符或16为整数,在这种CPU中,映射的取值范围为大于的类型。 OMG接口定义语言 在IDL中没有指针类型的原因: (1) 指针类型在面向对象的编程中要比在非面向对象的语言用的少。 (2) 某些实现语言不支持指针。 (3) 指针使得ORB的软件平台的编组的实现复杂化,并增加了允许时的开销。 4
您可能关注的文档
最近下载
- 顶管专项施工组织设计与对策.pdf
- 小学书法社团教学计划(共14篇).docx
- 企业管理咨询 时段四作业(第七-八章).docx VIP
- 《抗生素合理使用》课件.pptx VIP
- 肉牛养殖技术:肉牛体脂肪与肌肉的沉积规律.doc
- Haier海尔家用电热水器 FCD-JTHC40-III 使用说明书.PDF VIP
- NFPA 855-2023 Standard for the Installation of Stationary Energy Storage Systems 固定储能系统安装标准.pdf
- 0508-美容美发与造型(美容)专业国家技能人才培养工学一体化课程设置方案(试用).docx VIP
- 堆垛机维护保养手册.doc
- 《小狗的房子》教学设计4篇.docx
文档评论(0)