版权归原作者所有,如有侵权,请联系我们

[科普中国]-对象管理体系结构指南

科学百科
原创
科学百科为用户提供权威科普内容,打造知识科普阵地
收藏

对象管理组织OMG(Object Management Group)是成立于1989年的非盈利联盟,其宗旨是通过制订与维护规范标准以促进面向对象技术的理论与实践发展,特别是在日新月异的分布式计算领域。由OMG发布的《对象管理体系结构指南》是关于对象管理体系结构OMA(Object Management Architecture)的正式规范,该指南描述了OMG的技术目标与相关术语,并为所有CORBA规范提供概念性的基础设施。指南的核心内容是对象模型与参考模型,其中对象模型定义对象外部可见的、独立于具体实现的语义,参考模型则标识与刻划组成OMA的组件、接口与协议。

基本介绍公共对象请求代理体系结构(Common Object Request Broker Architecture,简称CORBA)是一个拥有800多个成员公司的非营利性国际组织即对象管理组织(OMG)的研究成果,这个组织包括了计算机工业界的各个主要的公司(如IBM,Microsoft,Apple,HP,SUN等),代表了整个计算机工业。

CORBA的核心是对象请求代理(Object Request Broker,简称ORB)。ORB就是对象总线,它的作用就像一个中间人,使得各个对象能够相互传递请求。尽管ORB是在客户机/服务器的环境中工作的,但是,与ORB一同工作的各个对象既可以是客户机,也可以是服务器。如果对象发出请求,那么它就是客户机;如果对象接收和处理请求,则是服务器。同一个对象在不同的时刻可能表现为客户机也可能表现为服务器,这要取决于具体情况。ORB作为一种中间件,它有能力包容现有的客户机/服务器中间件的任何一种形式。也就是说,CORBA将对象作为一个统一的隐性象征,将现有的所有应用软件都包容到ORB这一对象总线上来。同时,它也为基于组件的软件开发奠定了坚实的基础。

CORBA允许用户创建通用的对象,然后通过让对象继承相应的服务,使对象具有事务处理、安全性、持久性等所需要的特性。这也就意味着可以设计一些具有常用功能的通用对象,然后在系统运行时建立,与中间件混合成的适当的对象。CORBA的这种可以通过中间件进行混合的特性,极大地简化了应用编程的工作,同时又能保证系统的良好的可复用性、高可靠性和高质量。

对象管理体系结构指南

1990年秋,OMG第一次发表了对象管理体系结构指南(Object ManagementArchitecture,简称OMA),1992年进行了修订,1995年又加入了关于公用设施的细节。图1表示了OMA的四个主要的单元:

(1)对象请求代理(ORB)。ORB定义了CORBA对象总线。

(2)CORBA服务(CORBA Services)。CORBA服务定义了系统级对象框架,用来扩展CORBA对象总线。

(3)CORBA公用设施(CORBA Common Facilities)。CORBA公用设施定义了可以直接被商务对象使用的水平和垂直应用程序框架。

(4)应用程序对象(Application Objects)。应用程序对象包括商务对象及其应用程序,它们是CORBA基础结构的最终使用者。下面对OMA的这四个方面进行简单介绍1。

对象请求代理(ORB)对象请求代理(ORB)是管理对象之问进行通信和数据交换的中间件。ORB的功能类似于硬件总线的功能,它提供了对象之间信息流动所需的通路,因此也称为对象总线。ORB可支持分布式对象之间的互操作性、可复用性和可移植性。通过它,各个对象可以透明地向本地或远程的其他对象发出请求或接收响应。ORB提供了许多分布式中间件服务,ORB使得各个对象可以在运行时彼此发现并调用对方的服务。ORB是OMA的核心,它也是OMG最先定义好并且由软件供应商最先实现的部分。图2是对象之间通过ORB进行通信和数据交换的示意图。

公用对象服务公用对象服务是CORBA提供的系统级服务的集合。公用对象服务可以看成是对ORB的功能的扩充和补足。公用对象服务为创建对象、对象访问控制、对象跟踪和对象引用等提供了一套标准的服务。公用对象服务使得应用程序开发人员只需调用这些对象服务功能即可,而没有必要完全由应用程序开发人员从头进行开发。现在已经实现或正在实现的一些公用对象服务包括:命名、持久性、生命期、属性、并发、集合、安全性、交易器、外表化、事件、事务处理、查询、关系、计时、特许等服务。

公用设施ORB和公用对象服务是OMA的底层基本技术,而公用设施则是基于这些技术向应用程序开发者和最终用户提供一些共同性的对象组件,如复合文档等。CORBA公用设施是CORBA向应用程序对象提供直接应用服务的框架集合。公用设施分为两类:水平公用设施和垂直公用设施。目前,CORBA提供的水平公用设施有:

(1)用户界面设施:提供类似于OpenDoc和OLE的复合文档技术和就地编辑的功能;

(2)信息管理设施:提供复合文档存储和数据交换服务,还可用于表示和编码组件数据、定义和交换元数据、进行信息建模等;

(3)系统管理设施:提供管理、配置、安装、操纵、修补分布式对象组件等的接口和服务;

(4)任务管理设施:提供管理工作流、长事务、代理(Agent)、脚本、规则和任务自动化的框架。

垂直公用设施提供诸如金融、健康、制造、零售等“垂直”市场领域的接口和标准,以方便各领域对象的相互操作1。

应用程序对象应用程序对象包括业务对象及其应用程序,它们是CORBA基础结构的最终使用者。业务对象提供了一种很自然的方式来描述与应用相关的概念,如顾客、订单、支付等。对象技术和组件的最终承诺是提供与真实世界更为接近的中粒度组件。根据OMG的业务对象工作组的看法,业务对象是应用程序级的组件.可以应用到无法预测的任意组合当中去。在CORBA中,业务对象可以分为三种。

(1)(狭义的)业务对象:业务对象封装了数据存储、元数据、并发以及与实际业务实体相关的业务规则,业务对象还定义了如何对系统中的事件做出反应。

(2)业务过程对象:在CORBA中,不涉及其他业务对象的短期的过程由(1)中的业务对象处理,涉及其他业务对象的长期的过程由业务过程对象处理。业务过程对象通常是将其他的对象结合在一起。

(3)表示对象:即用户可看到的对象。表示对象通常直接与业务对象通信,用于在屏幕上显示数据。表示对象有时也可以与业务过程对象直接通信。一个典型的业务对象组件由一个业务对象,一个或多个表示对象和一个业务过程对象组成。

业务对象用于创建可扩展的三层客户机/服务器体系结构的解决方案是非常理想的。因为对象和三层模型一样是可以分解的。业务对象并不是单块的代码,而是可以拆分为若干部分,然后根据需要装配在一起。在三层模型中,用户层(或称为表示层)用于表示业务对象的可视方面,通常用表示对象来表示。中间的业务层,通常用业务对象和业务过程对象来表示业务逻辑功能的应用服务器对象。第三层的数据层使用业务对象和业务过程对象来表示现有的数据库或其他形式的数据(如文件)1。

本词条内容贡献者为:

李嘉骞 - 博士 - 同济大学