基于CORBA/WEB技术构建三层体系结构的应用


 
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页面中,这样,通过浏览器浏览该页面,就可以调用服务器方应用对象实现的操作。



5 JBuilder 4 Enterprise 开发CORBA/WEB应用实例



实例思路 本实例将建立一个银行账号查询程序。先创建一个IDL文件,执行idl2java编译器,生成服务器端的骨架和对应的客户端的桩,然后,基于以上生成的框架,创建服务器端JAVA程序和html客户端程序。

实例开发工具 Borland Jbuilder 4 Enterprise

(1) 选择File|New Project 菜单,在Jbuilder 中创建一个新项目。

(2) 修改Project name为BankTutorial,修改Root path 为c:/sample,单击完成。

(3) 选择File|New,在Enterprise页上选择Sample IDL。

(4) 在File Name框中输入BankTutorial.idl,单击OK,将创建一个示例IDL文件。在IDL文件中输入如下代码:

module Bank {

interface Account();{

float balance();

};

interface AccountManger {

Account open(in string name);

};

};

(5) 在project 栏中右击BankTutorial.idl文件。选择Make,执行idl2java编译器。

(6) 创建服务器端程序:选择File|New,从Enterprise页中选择CORBA Server Application。

(7) IDL File 框中选择c:/sample/BankTutorial/scr/ BankTutorial /BankTutorial.idl。选择Generate Visible Application With Monitor,为服务器程序创建一个监控界面。单击OK。服务器程序名为BankServerApp.java。

(8) 在具体项目开发中,CORBA接口服务器端实现,可加到project栏中的banktutorial.Bank.server相应类里。本实例暂不加任何用户代码。

(9) 创建CORBA的HTML客户端程序,选择File|New,从Enterprise页中选择HTML CORBA Client 。

(10) HTML CORBA Client 向导中,IDL File选择与生成服务器端对应的IDL文件,即:c:/sample/BankTutorial/scr/ BankTutorial /BankTutorial.idl。package选择banktutorial,单击OK,将生成HTML CORBA Client相关文件,其中会生成一个jsp页面文件。

(11) 关客户端的程序,可加到project栏中的banktutorial.Bank.clienthtml相应的类中。本实例暂不加任何用户代码。

(12) 译项目,选择project|Make Project “BankTutorial.jpx”。

(13) 启动Smart Agent,选择Tools|VisiBroker Smart Agent。

(14) 启动服务器程序:在project栏中右击文件BankServerApp.java,选择Run。在屏幕上将显示服务器端运行界面。

(15) 运行HTML 客户端程序:在project栏中右击文件FormBank.jsp,选择Web Run。在屏幕上将显示客户端运行界面。此时,如果打开浏览器,输入地址:

http://localhost:8080/scr/banktutorial/FormBank.jsp ,在浏览器中会显示相应界面。

(16) 一个基于CORBA/WEB技术的三层结构的应用框架已经建立了。



6 小结

基于CORBA/WEB技术建立三层结构的应用,有效地解决了在CLIENT/SERVER体系结构下负载平蘅、系统伸缩性等问题,JAVA是实现CORBA/WEB技术很好地切入点,Borland Jbuilder 4 Enterprise 提供了纯JAVA开发环境,为实现CORBA/WEB技术提供为强大地技术支持。



参考文献

[1] Jin Huang. Internet/CORBA-based Multi-Agent System for Tele?Design and Manufacturing. ICAMT′99,1999.6

[2] OMG. The Common Object Request Broker: Architecture and Specification. Revision2.


原文链接: http://blog.csdn.net/jaminwm/article/details/90375

你可能感兴趣的:(基于CORBA/WEB技术构建三层体系结构的应用)