基于CORBA的分布式程序设计Advanced CORBA Distributed Programming
引言
近年来,随着互联网技术的日益成熟,公众及商业企业正享受着高速、低价网络信息传输所带来的高品质数字生活。但是,由于网络规模的不断扩大以及计算机软硬件技术水平的飞速提高,给传统的应用软件系统的实现方式带来了巨大挑战。
首先,在企业级应用中,硬件系统集成商基于性能、价格、服务等方面的考虑,通常在同一系统中集成来自不同厂商的硬件设备、操作系统、数据库平台和网络协议等,由此带来的异构性给应用软件的互操作性、兼容性以及平滑升级能力带来了严重问题。
另外,随着基于网络的业务不断增多,传统的客户/服务器(C/S)模式的分布式应用方式越来越显示出在运行效率、系统网络安全性和系统升级能力等方面的局限性。
为了解决分布式计算环境(DCE,Distributed Computing Environment)中不同硬件设备和软件系统的互联,增强网络间软件的互操作性,解决传统分布式计算模式中的不足等问题,对象管理组织(OMG)提出了公共对象请求代理体系结构(CORBA),以增强软件系统间的互操作能力,使构造灵活的分布式应用系统成为可能。
正是基于面向对象技术的发展和成熟、客户/服务器软件系统模式的普遍应用以及集成已有系统等方面的需求,推动了CORBA技术的成熟与发展。作为面向对象系统的对象通信的核心,CORBA为当今网络计算环境带来了真正意义上的互联。
摘 要
论文主要介绍了CORBA(公用对象请求代理结构)的基本原理和总体框架,以及应用CORBA中间件技术进行企业级分布式应用软件开发的基本方法。
针对不断开展的新数据业务,不断增长的数据量和不断提高的实时性要求,出于增强软件系统间的互操作能力,构造灵活的分布式应用系统的考虑,
中国移动BOSS系统采用了CORBA分布式多层体系构架,实现了整体化、集中化、实时化和三层平台的设计初衷。
为了适应江苏网通集成数据网综合业务计费与管理系统和BOSS系统的需求,联创公司LCMIS系统与佳都公司飞马系统的接口准备构架在CORBA的服务体系上。论文中基于CORBA的聊天软件实现了不同中间件(CORBA与TUXEDO)之间的通信,使LICMS与飞马系统的集成成为可能,为两系统的顺利集成打好了技术基础。
第一章CORBA简介
1.1 CORBA概述
CORBA(The Common Object Request Broker Architecture:通用对象请求代理结构)是一个分布式的面向对象应用架构规范,它是由OMG研究组在80年代末提出,在90年代逐步完善,形成现在被软件行业普遍认可的标准——CORBA/IIOP 规范2.3。CORBA的开发者OMG最初由3Com、American Airlines、Canon、Data General、Hewlett-Packard、Philips、 Sun 和Unisys等八家公司在1989年组建,专门从事公共软件平台的研究和行业标准的制订, 目前已经有800多个成员单位加入OMG。
CORBA是在当今快速发展的软件与硬件资源的情况下发展出的一种新技术。它可以让分布的应用程序完成通信,无论这种应用程序是什么厂商生产的,只要符合CORBA标准就可以相互通信。CORBA 1.1于1991年由OMG提出,同时还提出了接口定义语言Interface Definition Language,IDL)以及能够让客户/服务器对象在特定的ORB(对象请求代理)实现中进行通信。而1994年提出并被采纳的CORBA 2.0标准才真正实现了不同生产厂商间的互操作性。
CORBA是对象管理组织(ORG)在分布式对象项目方面资助的一个工业标准。CORBA只是一个标准,它是为了实现分布式计算而引入的。为了说明CORBA在分布计算上有何特点,我们从它与其它几种分布计算技术的比较中进行说明。
与过去的面向过程的RPC(Remote Procedure Call)不同,CORBA是基于面向对象技术的,它能解决远程对象之间的互操作问题。MicroSoft 的DCOM (Distributed Component Object Model)也是解决这一问题的, 但它基于Windows操作系统,尽管到本书编写时,DCOM已有在其他操作系统如Sun Solaris, Digital Unix, IBM MVS 上的实现,但毫无疑问,只有在微软的操作系统上才会实现得更好。而只有CORBA是真正跨平台的,平台独立性正是CORBA的初衷之一。另一种做到平台无关性的技术是Java RMI(Remote Method Invocation),但它只能用JAVA实现。CORBA与此不同,它通过一种叫IDL(Interface Definition Language)的接口定义语言,能做到语言无关,也就是说,任何语言都能制作CORBA组件,而CORBA组件能在任何语言下使用。
因此,可以这样理解CORBA:CORBA一种异构平台下的语言无关的对象互操作模型。即,CORBA的设计是独立于平台和语言的,因此CORBA可以在任何平台上运行,可以定位在网络的任何地方,能够使用任何有IDL(Interface Definition Language )映射的语言。
1.2 CORBA 的发展与演化
CORBA经过近十年的发展,已逐步走向成熟,并成功地应用在我国许多大型的软件系统中,由此产生了对掌握CORBA技术的软件开发人员的大量需求。在此,我们应广大读者的要求组织了本次讲座。 本系列讲座分别介绍了CORBA的基本思想、体系结构以及CORBA应用程序的设计与开发,希望借此能帮助广大软件开发、设计人员,开阔思路,加深对CORBA的理解,进而真正掌握这门技术,并能在实际工作中加以灵活运用,更高效、迅速地开发出更强壮的软件系统,最终促进我国软件事业的蓬勃发展。
CORBA的发展历程
1. 对象管理组织(OMG)简介
OMG成立于1989年,作为一个非营利性组织,集中致力于开发在技术上具有先进性、在商业上具有可行性并且独立于厂商的软件互联规范,推广面向对象模型技术,增强软件的可移植性(Portability)、可重用性(Reusability)和互操作性(Interoperability)。
该组织成立之初,成员包括Unisys、Sun、Cannon、Hewlett-Packard、Philips等在业界享有声誉的软硬件厂商,目前该组织拥有800多家成员。
2. CORBA主要版本的发展历程
● 1990年11月,OMG发表《对象管理体系指南》,初步阐明了CORBA的思想;
● 1991年10月,OMG推出1.0版,其中定义了接口定义语言(IDL)、对象管理模型以及基于动态请求的API和接口仓库等内容;
● 1991年12月,OMG推出了CORBA 1.1版,在澄清了1.0版中存在的二义性的基础上,引入了对象适配器的概念;
● 1996年8月,OMG基于以前的升级版本,完成了2.0版的开发,该版本中重要的内容是对象请求代理间协议(IIOP,Internet Inter-ORB Protocol)的引入,用以实现不同厂商的ORB真正意义上的互通;
● 1998年9月,OMG发表了CORBA 2.3版,增加了支持CORBA对象的异步实时传输、服务质量规范等内容。目前,宣布支持CORBA 2.3规范的中间件厂商包括Inprise (Borland)、Iona、BEA System等著名的CORBA产品生产商。