高级软件工程05(IIOP、现有产品、开发过程.ppt_第1页
高级软件工程05(IIOP、现有产品、开发过程.ppt_第2页
高级软件工程05(IIOP、现有产品、开发过程.ppt_第3页
高级软件工程05(IIOP、现有产品、开发过程.ppt_第4页
高级软件工程05(IIOP、现有产品、开发过程.ppt_第5页
已阅读5页,还剩34页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

1 8IIOP IIOP InternetInter ORBProtocol基于Internet的ORB间互操作协议GIOP的一个实例GIOP GeneralInter ORBProtocol IIOP 2 内容GIOP设计目标GIOP功能CDRGIOP消息格式GIOP传输假定IIOP消息传输 IIOP 3 最大可能范围的可用性基于最广泛使用和灵活的通讯传输机制 TCP IP 并定义在ORB之间传输请求所需的其它协议简单性可扩展性它们的大小接近或超过今天Internet的大小 1 GIOP设计目标 IIOP 4 低耗费对现有的或新的ORB设计添加对GIOP IIOP的支持应该需要小量的工程投资一般性IIOP开始是为TCP IP定义的GIOP设计为在其它面向连接的传输协议上实现体系结构中立性GIOP将ORB看成体系结构未知的不透明实体 IIOP 5 少量 简单消息仅仅用七个消息格式GIOP就可以支持ORB之间的全部CORBA功能以及支持对象地点服务的扩展功能动态迁移和对通讯资源的有效管理GIOP语义不要求格式或绑定协议在大多数情况下客户可以在打开连接后立即向对象发送请求动态对象地点许多ORB的体系结构允许在不同地点激活还没有过期的对象实现并且允许动态迁移对象GIOP消息为对象地点和迁移提供支持但在不需要或不适合ORB的体系结构时不要求ORB实现这样的机制 2 GIOP功能 IIOP 6 完全的CORBA支持GIOP消息直接支持CORBA要求的所有功能和行为包括例外情况报告 传送操作环境和远程对象引用操作 例如CORBA Object get interface GIOP支持传送特定于服务的环境例如由事务服务定义的事务环境该机制的设计目的是支持要求在请求中隐式传送与服务相关环境的任何服务 IIOP 7 3 公共数据表示 CDR CDR是传输语法它将用OMGIDL定义的数据类型映射到双向规范的低级表示以便在代理之间进行传输CDR有如下功能 可变的字节次序有公共字节次序的机器可以在不进行字节交换的情况下进行消息交换当与字节次序不同的机器进行通讯时消息发起者决定消息字节次序接收者负责交换字节以便匹配它的本地次序每个GIOP消息 以及CDR封装 包含指出正确字节次序的标记 IIOP 8 对齐的主类型在GIOP消息内基本OMGIDL数据类型在它们的自然边界对齐这样强制在内存中进行数据对齐的体系结构可以有效地处理它们完整的OMGIDL映射CDR描述所有OMGIDL数据类型 包括可传输的伪对象 例如TypeCode 的表示如果需要 CDR为CORBACore规范中表示未定义或与实现有关的数据类型定义表示方法 IIOP 9 moduleGIOP enumMsgType Request Reply CancelRequest LocateRequest LocateReply CloseConnection MessageError structMessageHeader charmagic 4 VersionGIOP version booleanbyte order octetmessage type unsignedlongmessage size 4 GIOP消息格式 IIOP 10 5 GIOP传输假定 传输是面向连接的GIOP使用连接来定义请求ID的作用域和范围传输是可靠的传输保证字节按发送时的次序至多传输一次并且有一些传输的肯定确认传输对错误的连接丢失提供一些合理的通知如果对等进程失败 对等主机崩溃或者网络连接丢失则连接所有者应该接收到这种情况的一些通知初始化连接的传输模型可以映射到TCP IP的一般连接模型代理将已知的网络地址发布在IOR中客户在初始化连接时使用它 IIOP 11 服务器不主动初始化连接但它准备接收对连接的请求例如 它侦听TCP IPterms的连接其它知道地址的代理 称为客户 可以尝试通过对地址发送connect请求来初始化连接侦听的服务器可以接受请求 与客户建立新的唯一连接或者它可以拒绝请求一旦连接打开后 两端都可以关闭连接候选的传输协议可能不直接支持这种特定的连接模型只有传输模型可以映射到该视图才是必要的 IIOP 12 6 IIOP OMG为GIOP指定的基线传输协议是TCP IP用于支持TCP IP的库的特定API可以不同GIOP消息传输到TCP IP的映射称为InternetInter ORB协议 IIOP IIOP 13 moduleIIOP IDLstructVersion charmajor charminor structProfileBody Versioniiop version stringhost unsignedshortport sequenceobject key IIOPIOR IIOP 14 9ORB产品 IONA公司的OrbixInprise公司的visibrokerDigital公司的ObjectBrokerIBM公司的ComponentBrokerOOC公司的OminiBrokerFrankfurt大学的MICO ORB产品 15 IONA公司的Orbix是目前市场占有率最高的ORB产品已经在金融 电信等多个领域得到广泛应用目前在UNIXWindows95 NTMVX等多种操作系统上运行对IDL的映射基本上包含了CORBA规范的内容例如C Java Ada Cobol等所实现的COS包括NamingService EventService TransactionService SecurityService EventService等另外IONA公司还提供了ORB与DCOM的桥接产品 OrbixCOMet以及完全用Java实现的ORB OrbixWeb可以被WEB浏览器加载 增强WEB功能网址 Orbix ORB产品 16 Visibroker1997年11月原Borland公司与Visigenic公司合并成立Inprise原属于Visigenic公司的ORB产品Visibroker成为Inprise的重要产品并被集成到Delphi4 0中Visibroker对IDL的映射包括 C Java所实现的COS包括NamingService EventService等Visibroker已经被集成到Netscape的Communicator中在其它嵌入式系统中也有所应用网址 ORB产品 17 ObjectBroker这是中间件厂商BEA公司从Digital公司获得的ORB产品已经被集成到BEA的其它环境之中主要完成了向C 的映射所实现的COS包括NamingServiceEventServiceTransactionService等M3是BEA的一个集ORB COS等功能于一身的产品网址 ORB产品 18 ComponentBrokerIBM公司的ORB增强产品IBM最初曾提出兼容CORBA规范的DSOM模型随着CORBA规范的逐步完善IBM将模型中与ORB直接相关的部分抽取出来称之为ComponentBrokerComponentBroker完成的IDL映射包括C JavaSmalltalkCOBOL等语言所实现的COS包括NamingServiceEventServiceTransactionServiceConcurrentServices等网址 ORB产品 19 OB美国OOC公司开发ORB产品 OB OmniBroker 最初是完全free的其所有源代码皆可以自由下载完成的IDL包括C JavaOB所实现的COS包括NamingService EventService等1998年开始 OOC以OB为核心实现了商业ORB产品 Orbacus所实现的COS增加了TradingService SecurityService等网址 ORB产品 20 MICO德国Frankfurt大学开发的ORB产品 MICO MicoIsCOrba 所完成的IDL包括C Java所实现的COS包括NamingServiceEventServiceSecurityService等自2 0开始 MICO的版本号与CORBA的正式版本号同步目前为2 31版MICO是为教育目的而开发的并且采用了与Linux类似的发展途径版权归GNU组织因而具有较好的发展前景网址 www vsb cs uni frankfurt de mico ORB产品 21 Clientdeveloper Serverdeveloper Server IDLcompiler IDLcompiler Client IDL 10CORBA应用程序开发过程 开发过程 22 例子 GridObject Gridobject server remotecalls 1 2 3 5 8 13 21 34 55 89 144 233 widthheightget row col set row col value client 开发过程 23 Step by Step DefinetheIDLinterfaceCompiletheIDLinterfaceWriteaclientImplementtheinterfaceWriteaservermainlineRegistertheserver 开发过程 24 AnIDLInterface interfaceGrid readonlyattributeshortheight readonlyattributeshortwidth voidset inshortrow inshortcol inlongvalue longget inshortrow inshortcol 开发过程 25 ORBclientlibrary ORBserverlibrary 编译成C gridS ccserverskeleton gridC ccclientstubs Client Server grid hhcommondeclarations grid idl 开发过程 26 IDLtoC 映射 IDLoperations 操作 映射为C 的成员函数 parametertypes映射为C types IDLattributes 属性 映射为C 的成员函数 一个用于获取值 另一个用于设置值 如果不是只读属性 IDLdatatypes映射为C datatypes 一个interface映射为一个C class 开发过程 27 所产生的C code classGrid publicvirtualCORBA Object public staticGrid ptr bind virtualCORBA Shortheight CORBA Environment 开发过程 28 WritingaClient include grid hh includemain Grid varp LikeaC pointer ConnecttoaremoteGridobjectp Grid bind myGrid GridSrv GridHost NowuseitlikearegularC objectcoutheight width set 2 4 123 aremotecallcoutget 2 4 endl 开发过程 29 如何工作 Gridimplementation server remoteCORBAcalls client C calls Gridproxy alocalC object 开发过程 30 ImplementingtheInterface 编写一个C class 继承ORBfunctionality 加入数据成员以及其它C 函数 根据具体的需求 重定义IDL函数 提供具体的功能 开发过程 31 Gridimplementation DefineaC implementationclassGrid i Inheritdistributedcapability include grid hh classGrid i publicvirtualGridBOAImpl Addapplicationdataandfunctionsshortm height m width long m array public Grid i shorth shortw Constructorvirtual Grid i Destructor 开发过程 32 Grid i还包括 Re definetheIDLfunctionsvirtualCORBA Shortheight CORBA Environment 开发过程 33 IDL具体功能 virtualCORBA ShortGrid i width CORBA Environment 开发过程 34 什么是 servermainline server是objects的容器 ORB能激活的可执行代码 servermainline 在server中创建初始对象 将控制权交给ORB以等待调用 各个对象分别实现自己的功能 ORB将接受到的调用

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论