服务热线:13616026886

技术文档 欢迎使用技术文档,我们为你提供从新手到专业开发者的所有资源,你也可以通过它日益精进

位置:首页 > 技术文档 > JAVA > 新手入门 > 基础入门 > 查看文档

基于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

扫描关注微信公众号