1 问题提出
在应用系统开发过程中,CLIENT/SERVER体系结构得到了广泛的应用 。其特点是,应用程序逻辑通常分布在客户和服务器两端,客户端发出数据资源访问请求,服务器端将结果返回客户端。但CLIENT/SERVER结构存在着很多体系结构上的问题,比如:当客户端数目激增时,服务器端的性能会因为负载过重而大大衰减;一旦应用的需求发生变化,客户端和服务器端的应用程序都需要进行修改,给应用维护和升级带来了极大的不便;大量的数据传输增加了网络的负载等等。
随着分布式对象技术的逐渐成熟,多层分布式应用体系结构得到了越来越多的应用。应用系统只有向多层分布式转变,才能最终解决CLIENT/SERVER结构存在的问题。在多层架构下,应用可以分布在不同的系统平台上,通过分布式技术实现异构平台间对象的相互通信。将应用系统集成于分布式系统之上,能极大地提高系统的可扩展性。
在多层分布式应用中,在客户端和服务器之间加入了一层或多层应用服务程序,这种程序称为“应用服务器”。开发人员可以将应用的商业逻辑放在中间层应用服务器上,把应用的业务逻辑与用户界面分开。在保证客户端功能的前提下,为用户提供一个简洁的界面。这意味着如果需要修改应用程序代码,只需要对中间层应用服务器进行修改,而不用修改成千上万的客户端应用程序。从而使开发人员可以专注于应用系统核心业务逻辑的分析、设计和开发,简化了应用系统的开发、更新和升级工作。
2 CORBA 简介
CORBA是Common Object Request Broker Architecture的缩写,它是分布计算机技术的发展结果,CORBA技术的成功在于,它除了能够解决由于多个系统层次上的异构带来的“孤岛”问题,还在理论和技术上扩展了客户/服务器的模式,使系统具有良好的可伸缩性,便于系统的开发与升级,保护已有投资。
CORBA体系的主要内容包括以下几部分,
(1) 对象请求代理ORB(Object Request Broker):负责对象在分布环境中透明地收发请求和响应,它是构建分布对象应用、在异构或同构环境下实现应用间互操作的基础。
(2) 对象服务(Object Services):为使用和实现对象而提供的基本对象集合,这些服务应独立于应用领域。主要的CORBA服务有:名录服务(Naming Service)、事件服务(Event Service)、生命周期服务(Life Cycle Service)、关系服务(Relationship Service)、事务服务(Transaction Service)等。这些服务几乎包括分布系统和面向对象系统的各个方面,每个组成部分都非常复杂。
(3) 公共设施(Common Facilitites):向终端用户提供一组共享服务接口,例如系统管理、组合文档和电子邮件等。
(4) 应用接口(Application Interfaces):由销售商提供的可控制其接口的产品,相应于传统的应用层表示,处于参考模型的最高层。
(5) 领域接口(Domain Interfaces):为应用领域服务而提供的接口。如OMG组织为PDM系统制定的规范。
CORBA的产生有其特定的背景,它是在面向对象的技术兴起,客户/服务器模式普遍得到应用的前提下,为屏蔽通信和实现细节的需求,继承已有系统,消除“孤岛”现象而产生的。他弥补了传统分布处理系统的不足(如RPC等),具有很多新的特色:
(1) 引入代理(Broker)概念。代理起到如下作用:完成对客户方提出的抽象服务请求的映射;自动发现和找到服务器;自动设定路由,实现服务方程序的执行。
(2) 客户方程序与服务方程序完全分离。用传统的客户/服务器方式有很大的不同,客户将不再与服务方发生直接的联系,而仅需要与代理发生联系,客户与服务器方都可方便升级。
(3) 提供“软件总线”机制。任何应用系统只要提供符合CORBA系统定义的一组接口规范,就可以方便的集成到CORBA系统中,这个接口规范独立于任何实现语言和环境。如此,客户应用于服务对象之间可以透明地交互运行,实现应用软件在“软件总线”上的“即插即用”。
(4) 分层的设计原则和实现方式。CORBA系统的底层核心是一个精练的系统,各种复杂系统和应用可以由核心扩展和延伸。
CORBA技术是先进技术发展的结果,它将面向对象的概念揉合到分布计算中,使得CORBA规范成为开放的、基于客户/服务器模式的、面向对象的分布计算的工业标准。
3 CORBA与WWW 相结合
WWW技术迅速发展,它已不再仅仅是超媒体信息的浏览工具,以逐步成为人们进行事务处理的前端。由于分布对象的计算技术,特别是CORBA技术对于提高WEB的网络计算能力有着无可比拟的巨大作用,CORBA与WWW技术迅速融合,产生诱人的技术前景。
CORBA与WWW结合,构架出真正的三层体系结构。这种三层的体系结构,以分布对象技术为基础构架,增加了应用层,将客户层与资源层隔开,降低了Web服务器的负载,避免了Web服务器的性能缺陷对整个性能的影响。并且具有连接缓冲,负载均衡,安全管理等功能,从而提高了Web应用整体的灵活性,可伸缩性,可扩展性。
该结构中,CORBA客户方程序从Web服务器上下载执行,与应用服务器上的CORBA应用对象通过IIOP(Internet-Inter-ORB Protocol)协议进行通讯,调用其指定的操作。CORBA应用对象首先对客户的请求进行认证和解释,根据客户请求的内容,或是直接访问资源层的数据库,或是与网络上的其它CORBA对象交互,共同完成客户请求。CORBA-WEB体系与ActiveX,JAVA RMI(Remote Method Invocation)比较起来,有明显优势。
在CORBA与Web的结合技术上,JAVA是CORBA结合Web的一个很好的切入点。CORBA规范中定义了IDL/Java的映射,CORBA产品提供商则根据规范开发了Java ORB。
JAVA ORB不仅能开发分布式的JAVA应用,更重要的是它能够开发WEB的CORBA应用。
Java ORB是基于CORBA的Java应用的中心,Java客户,包括Applet和Application,通过桩(Stub)代码向本地的Java ORB发出请求,本地ORB再与服务器方的Java ORB进行IIOP通讯,服务方ORB根据请求的内容调用相关的骨架(Skeleton)代码由指定的对象实现来完成请求,并将请求结果按原路返回给客户。Java ORB作为信息中介的桥梁,负责远程对象请求的生成、编码、传输等工作。
4 Java的CORBA/WEB应用实现概述与图解
在进行JAVA的CORBA/WEB应用系统开发时,首先要建立IDL描述文件,然后把IDL描述文件通过IDL/JAVA进行编译,生成相应的桩和骨架文件。接下来采用JAVA分别实现服务器方和客户方程序,然后将服务器方主程序和客户方程序分别与骨架文件和桩相联编,并将该客户端程序嵌入到HTML页面中,这样,通过浏览器浏览该页面,就可以调用服务器方应用对象实现的操作。
基于CORBA/WEB技术建立三层结构的应用,有效地解决了在CLIENT/SERVER体系结构下负载平蘅、系统伸缩性等问题,JAVA是实现CORBA/WEB技术很好地切入点,Borland Jbuilder 4 Enterprise 提供了纯JAVA开发环境,为实现CORBA/WEB技术提供为强大地技术支持。