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. |
相关推荐
Web应用程序概论主要探讨的是如何构建可扩展、灵活和易于维护的企业级应用,而J2EE的N层体系结构则是解决这一问题的关键。J2EE,全称为Java 2 Platform, Enterprise Edition,由SUN公司制定,是一个用于开发分布式、...
本文主要探讨了基于J2EE(Java 2 Platform, Enterprise Edition)的三层B/S模式在构建第三方物流管理信息系统中的应用。 首先,系统结构的选择对于系统的性能和可扩展性至关重要。传统的两层客户/服务器(C/S)模式...
为了解决上述问题,分布式Web GIS逐渐向更为先进的体系结构和技术转变,其中,基于J2EE(Java 2 Platform, Enterprise Edition)的分布式Web GIS成为新的研究热点。J2EE提供了一套全面的企业级应用开发框架,支持...
WBM技术的出现源于Web技术的快速发展及其在各个领域的广泛应用。随着Web技术的成熟,越来越多的应用程序可以通过Web浏览器进行访问,这为网络管理提供了新的思路。通过Web浏览器,网络管理员可以在任何时间、任何...
在探讨基于Java的多层分布式应用模型研究前,有必要了解多层分布式系统的发展背景及其体系结构的特点。传统的集中模式和两层模式已不能满足大型信息系统对可扩展性、可维护性和高性能的需求。因此,多层模式,特别是...
### J2EE体系结构及其主要设计模式 #### J2EE体系结构 **1.1 J2EE产生前提** 随着企业应用系统的不断复杂化以及分布式应用程序的需求增加,传统的开发方式已经无法满足新的需求。例如,当应用程序需要跨越多个...
在多层体系结构中,J2EE将应用分为了几个主要层次,包括客户层(Client tier),Web应用层(Web tier),企业组件层(EJB tier)和企业信息系统层(EIS tier)。客户层主要通过HTTP协议与Web应用层进行交互,Web应用...
在文档中还提及了一个教学平台的原型系统,该系统采用的是三层Client/Server体系结构,基于Web对象计算体系。通信协议采用的是HTTP和TCP网络协议,系统开发应用了CORBA-Web技术方案。整个平台由客户端、服务器端、...
### Java技术体系概览 #### 一、Java程序员的基础与高级特性 - **高级特性**: - **反射**:动态获取类的信息并操作对象的能力。 - **泛型**:提供类型安全的集合,避免运行时ClassCastException。 - **注解**...
CORBA(Common Object Request Broker Architecture,公共对象请求代理体系结构)是一种标准的中间件技术,用于构建分布式系统。它允许不同操作系统、编程语言和网络环境中的对象进行通信,实现跨平台的分布式计算。...
J2EE体系结构是基于分层模型的,通常包括客户端层、Web层、业务逻辑层(也称为应用服务器层)和数据存储层。这种架构允许各层之间解耦,使得开发、测试和维护变得更加灵活和高效。J2EE平台的核心在于其提供的一系列...
9. l 平滑过渡到h层体系结构 9.2 关于多层应用程序 9·3 delphi 6开发基本多层分布式系统 9.3.1 配置数据库 9.3.2 创建应用服务器 9.3.3 创建客户应用程序 9.4 本地数据库查询操作localquers 9.5 ...
综上所述,WebLogic Server的J2EE体系结构包含了多种服务和组件,这些组件共同构成了一个强大的平台,能够满足企业级应用程序的各种需求,包括数据访问、安全性、事务处理、并发和分布式计算等。通过理解和掌握这些...
2. **Java Servlets和JavaServer Pages(JSP):** 这些技术用于构建动态网页和Web应用程序,Servlets处理服务器端逻辑,而JSP则负责呈现逻辑。 3. **Java Persistence API(JPA):** JPA是一种用于管理持久化对象...
- **松耦合**:由于采用标准化的协议和技术,Web Services能够实现松散耦合的服务体系结构,提高系统的灵活性和可扩展性。 - **易集成**:Web Services提供了标准化的接口定义,便于各种应用程序和服务之间的集成。 ...
JAVA技术体系是围绕JAVA编程语言构建的一整套技术栈和工具链,旨在帮助开发者高效地开发高质量的应用程序。该体系覆盖了从基础语法到高级特性,从核心API到企业级应用开发的各个方面。 #### 二、JAVA核心编程技术 ...