您好,欢迎访问三七文档
当前位置:首页 > 商业/管理/HR > 销售管理 > 第二章中间件Corba_初步.
山东大学计算机科学与技术学院基础技术教学部第二章Corba初步山东大学计算机科学与技术学院2.1对象管理体系结构(OMA)对象管理组织(OMG)OMA–对象模型–参考模型山东大学计算机科学与技术学院2.1.1对象管理组织——OMG成立于1989年的非盈利性联盟。目标:–促进在分布式系统开发中面向对象技术的理论与实践的发展。现有成员800多个,负责制定协议、实现基于协议的软件产品、应用软件产品。山东大学计算机科学与技术学院OMG为使该组织所采纳的技术具有开放性,OMG所采用的方法是,针对某一领域发出RFP(RequestForProposal),然后以各方提交的建议为基础,经过一系列的讨论和协商,产生最终的规范。山东大学计算机科学与技术学院对象管理组织——OMG负责制订并维护一套规范(notsoftware):–支持分布式、异类(heterogeneous)环境的软件开发项目。–覆盖了从分析、设计到编码、部署、运行和管理的整个软件开发过程。–这些规范是一种工业或行业标准OMG主要规范–UML:UnifiedModelingLanguage–CORBA:CommonObjectRequestBrokerArchitecture。–MDA:ModelDrivenArchitecture山东大学计算机科学与技术学院基础技术教学部OMA(对象管理体系结构)山东大学计算机科学与技术学院记住CorbaC-ORB-A:“Common”+“ORB”+“Architecture”通用“orb”体系结构Orb:Objectrequestbroker对象请求代理:通过智能代理的方式处理对象请求CORBA规范主要基于以下几个公司所提交的建议:DEC、HyperDesk、HP、SunSoft、NCR和ObjectDesign。是OMA(ObjectModelArchitecture)的核心部分山东大学计算机科学与技术学院OMA由OMG制定的最关键的规范——对象管理结构(ObjectManagementArchitecture,OMA)和它的核心(也就是CORBA规范),提供了一个完整的体系结构。这个结构以足够的灵活性、丰富的形式适用了各类分布式系统。山东大学计算机科学与技术学院对象管理体系结构OMA描述了面向对象技术在分布式处理中的运用。它包括两部分:对象模型(ObjectModel)和参考模型(ReferenceModel)。对象模型定义如何描述分布式异质环境中的对象参考模型描述对象之间的交互(组件,接口,协议)山东大学计算机科学与技术学院OMA对象模型在OMA对象模型中,对象是一个被封装的实体,它具有一个不可改变的标识,并能给客户用户提供一个或多个服务。interfaceprinter{attributemodel;voidprint(instringbuffer);};山东大学计算机科学与技术学院OMA对象模型对象的访问方式是通过向对象发出请求来完成的。请求信息包括目标对象、所请求的操作、0个或多个实际参数和可选的请求上下文(描述环境信息)。每个对象的实现和位置,对客户都是透明的。山东大学计算机科学与技术学院OMA参考模型对象请求代理对象服务公共设施领域接口应用接口山东大学计算机科学与技术学院OMA参考模型在OMA参考模型中,OMG定义了一条为对象所公用的通信总线,即ORB(ObjectRequestBroker)。同时,OMG又定义了对象进出这一总线的接口。这包括:对象服务(ObjectServices)、公共设施(commonfacilities)、应用接口(ApplicationInterface)和域接口(DomainInterface)。山东大学计算机科学与技术学院OMA参考模型公共设施领域接口对象请求代理(ORB)应用程序接口对象服务通用服务的接口与应用有关的非标准化接口与应用领域有关的接口通用设施的接口山东大学计算机科学与技术学院1对象请求代理——ORBORB是OMA参考模型的核心,提供了最基本的通信枢纽设施(分布式对象之间透明的地发送请求或接收响应的基本机制),独立于实现对象的特定平台与技术。是基于分布式对象构建应用程序的基础设施,保证了在异构平台上对象的互操作性与可移植性山东大学计算机科学与技术学院ORBORB(ObjectRequestBroker)是对象总线。1通过ORB,一个client可以透明的调用同一台机器上或网络上的一个server对象的方法。2ORB解释该调用并负责查找一个实现该请求的对象,3找到后,把参数传给该对象,调用它的方法,最后返回结果。4客户方不需要了解服务对象的位置、通信方式、实现、激活或存储机制。山东大学计算机科学与技术学院ORB基本原理山东大学计算机科学与技术学院2对象服务作用:提供所有应用程序都可能用到的通用服务的接口(基本服务,与具体的应用领域无关的接口)。支持的服务有:名字服务、持久性服务、生命周期服务、事务处理服务、对象事件服务和安全服务等。实质:通用的服务集合,将覆盖对象整个生存期的对象管理任务标准化,可保证各种应用程序均采用一致的风格管理对象山东大学计算机科学与技术学院支持的服务命名服务(NamingService):允许通过名字查找对象。持久性服务(PersistenceService):提供在各种存储服务器(包括对象数据库、关系数据库和简单文件)上永久性存储对象的统一接口。生存周期服务(LifeCycleService):定义了在对象总线上创建、拷贝、移动和删除对象的操作。山东大学计算机科学与技术学院支持的服务事务处理服务(TransactionService):提供两阶段提交协议,用于确保ORB上的一些分布式对象协同地完成事务处理。事件服务(EventService):允许对象动态注册或撤消指定的事件。安全服务(SecurityService):提供一个分布式对象安全的完整框架。山东大学计算机科学与技术学院3公共设施与对象服务不同的是,公共设施面向最终用户的应用,它是各种应用可以共享的一系列服务集合。复合文档的管理工具,数据库存取工具、文件打印工具、电子邮件服务都等属于公共设施。其标准化使得通用操作具有统一性,山东大学计算机科学与技术学院4域接口针对着某一特殊的应用领域。可以按不同的应用领域来组织领域接口按不同应用领域制订与发布一系列领域接口规范目前:财务金融,电信,运输,电子商务,仿真等山东大学计算机科学与技术学院5应用接口应用程序中的对象为终端用户执行特定的任务,不是OMG标准化的内容山东大学计算机科学与技术学院总结:对象管理体系结构——OMAOMA的层次结构支持客户程序与对象实现在一个分布式环境中通信。独立于实现对象的特定平台与技术。客户程序无需知道如何与对象通讯、如何激活对象、对象如何实现、如何查找对象等。并保证了在异类网络中对象的可移植性与可互操作性。应用程序接口公共设施对象服务对象请求代理CORBAManufacturingCORBAMedCORBAFinanceCORBATelecomsCORBAServices:对象命名、事件、生存期、持久对象、事务、并发控制、关系、外表化、许可机制、查询、属性、安全性、时间、对象收集、交易对象等服务。应用程序接口领域接口CORBAFacilities:分布式文档设施打印设施数据库设施电子邮件设施等与具体应用相关的接口为终端用户执行特定的任务不是OMG标准化的内容山东大学计算机科学与技术学院对不同分布对象的共性依据基础性分别抽象并标准化为对象服务,公共设施与领域接口标准化工作主要针对对象接口而非对象实现为提高平台无关性和可互操作性,OMA分离了对象接口与对象实现–对象接口是对象结构与行为的外部可见的规格说明,用IDL描述–对象实现提供对象内部的具体数据表示与可执行代码,同一接口的实现可采用不同语言编写–所有接口均未规定组件的具体实现,为开发的实现活动留下自由山东大学计算机科学与技术学院2.2CORBA体系结构建立在OMG的对象模型基础之上,主要由三个关键部分组成–作为分布式对象通信基础设施的对象请求代理ORB的体系结构–接口定义语言IDL的语法和语义以及到各种程序设计语言的映射–保证可互操作性的标准ORB间的通信协议GIOP/IIOP山东大学计算机科学与技术学院2.2.1ORB体系结构客户服务器ORB核心(GIOP/IIOP)动态调用IDL存根ORB界面静态IDL框架动态框架调用对象适配器所有ORB实现都一致的界面可能有多个对象适配器依赖ORB核心的界面与每个对象对应的存根或框架向上调用界面向下调用界面界面仓库对象实现仓库ORB接口,动态调用接口,动态框架接口等标准化接口在CORBA规范中均以IDL定义山东大学计算机科学与技术学院ORB是OMA的核心基础设施由ORB提供的通信机制负责完成查找请求的对象实现,让对象实现准备好接收请求,传递构成请求的数据功能:把客户发出的请求传递给目标对象,并把目标对象的执行结果返回给发出请求的客户。ORB内核是ORB最关键的部分,是真正负责传输请求的通信设施,每个产品供应商都可以有一个自己专用的ORB内核其重要特征是:提供了客户和目标对象之间的交互透明性山东大学计算机科学与技术学院ORB内核的作用对象的定位编组(marshlling)与解组启动初始服务屏蔽底层网络协议提供接口库和其他API1.客户执行一个远程对象调用,对象引用经stub传给orb。Orb寻找对应的服务器,确保该服务器做好接收请求的工作2.客户端对调用进行编组,成为网络可传输的,服务器端进行解组,送给服务器启动所调用的操作。3.如果有返回参数,按2的逆过程处理山东大学计算机科学与技术学院透明性对象位置:客户不必知道目标对象的物理位置。它可能与客户一起驻留在同一个进程中或同一机器的不同进程中,也有可能驻留在网络上的远程机器中。对象实现:客户不必知道有关对象实现的具体细节。例如,设计对象所用的编程语言、对象所在节点的操作系统和硬件平台等。对象的执行状态:当客户向目标对象发送请求时,它不必知道当时目标对象是否处于活动状态(即是否处于正在运行的进程中)。此时,如果目标对象不是活动的,在把请求传给它之际,ORB会透明地将它激活。山东大学计算机科学与技术学院–对象通信机制:客户不必知道ORB所用的下层通信机制,如,TCP/IP、管道、共享内存、本地方法调用等。–数据表示:客户不必知道本地主机和远程主机对数据表示方式,如高位字节在前还是在后等,是否有所不同。透明性山东大学计算机科学与技术学院2.2.2对象接口定义客户程序与对象实现之间的界面是对象的接口定义,对象接口是服务双方共同订立的合约对象接口采用OMG的接口定义语言IDL描述,IDL根据对象可执行的操作定义对象的类型,并可映射到特定的编程语言或对象系统为在运行时充分利用对象接口定义的有关信息,还可将对象接口定义添加到接口库服务中接口库服务将对象接口定义中的内容表达为不同类型对象的层次结构,为应用程序运行时动态访问对象接口定义提供服务IDL定义与接口库表达相同信息,只是两者组织方式不同客户程序只能通过对象的接口定义了解对象的逻辑结构山东大学计算机科学与技术学院对象实现可以采用多种方式实现:独立服务程序,一个程序库,被包装的非面向对象应用程序等通过使用附加的对象适配器,ORB可支持所有风格的对象实现山东大学计算机科学与技术学院2.2.3客户端机制静态调用:借助于客户程序桩自动完成动态调用:利用动态调用接口手工编码完成桩,框架是在编译时创建并在运行时不再改变,其接口称静态调用接口,与RMI类似动态调用接口允许客户程序调用在编译时尚未确定对象接口的那些对象实现山东大学计算机科学与技术学院2.2.4服务端机制ORB将请求分派给对象实现有两种方式:–静态通过由IDL生成的框架–动态利用动态框架接口对象实现与ORB内核间的通信由对象适配器完成,POA负责远程对象引用
本文标题:第二章中间件Corba_初步.
链接地址:https://www.777doc.com/doc-2125870 .html