您好,欢迎来到钮旅网。
搜索
您的当前位置:首页基于J2EE三层体系结构的研究与应用

基于J2EE三层体系结构的研究与应用

来源:钮旅网
第14卷第5期Vol.14,No.5辽宁税务高等专科学校学报

LIAONING TAXATION COLLEGE JOURNAL2002年10月Oct.,2002

基于J2EE三层体系结构的研究与应用

滕英岩

(沈阳大学信息工程学院 通信工程系,辽宁 沈阳 110044)

  摘 要:三层结构的特点是在Client/Server基础上加入一个(或多个)中间件层。它将Client/Server体系

结构中原本运行于客户端的应用程序移到了中间件层,客户端只负责显示与用户交互的界面及少量的数据处理(如数据合法性检验)工作。客户端将收集到的信息(请求)提交给中间件服务器,中间件服务器进行相应的业务处理(包括对数据库的操作),再将处理结果反馈给客户机。

  关键词:三层架构;面向对象;容器

  中图分类号:TP392    文献标识码:A   文章编号:1008-2859(2002)05-0035-03

R&DThree-LayersSystemStructurebasedOnJ2EE

TENGYing-yan

(DepartmeneofCommunicationsEngineering,FacultyoflnformationEngeneering,ShenyangUniversity,Shenyang,Liaoning110044,China)

Abstract:Thefeatureofthethree-layerstructureisaddingamiddle-warelayer.Itcarriestheapplicationpro-gramrunningontheclientendintothemiddle-warelayer.Theclientonlydisplaystheuserinterfaceand

dealsalittleofdataprocessing.Theclientcarriestheinformation(requests)tothemiddle-wareserver,which

feelsbacktheresultstotheclientafferithasdealtwiththeoperation(includingtheoperationofthedatabase).

Keywords:Three-layersstructure;objectorientedcontainer

背景  一、

传统的Client/Server体系结构应用分为两大部分:一

部分是由多个用户共享所需的功能和信息,即Server部分;另一部分是每个用户所需要的功能和信息,即Client部分。Client部分执行前台功能,如管理用户接口、采集数据和接受用户请求等;Server部分执行公共服务或存放公共信息。当用户需要服务或想要得到公共信息时,由Client端发出请求,通过专用接口或ODBC等将请求发送到Server端,serv-er端接到请求后,激活相应的服务处理请求,并将处理结果送回Client端。

由于Client/Server体系结构存在着诸多缺陷,90年代随着网络技术在各行各业的深入应用,IT行业又出现了一种低费用、低管理开销、并享有Client/Server计算模式的优

点的新的体系结构——三层网络体系结构。如果把Client/

Server体系结构称为“胖客户机/服务器”计算模式,那么三层体系结构可以称之为“瘦客户机/服务器”计算模式。

三层结构是在Client/Server基础上加入一个(或多个)中间件层。客户端负责显示与用户交互的界面及少量的数据处理(如数据合法性检验)工作。客户端将收集到的信息(请求)提交给中间件服务器,中间件服务器进行相应的业务处理(包括对数据库的操作),再将处理结果反馈给客户机。与传统的Client/Server体系结构相比,三层体系结构有客户端零维护、可扩展性好、安全性好可移植性好、以及资源重用性好等特点。

二、系统概述

三层体系结构系统运行的过程是一个客户端和服务器

收稿日期:2002-04-16

作者简介:滕英岩(1972-),女,辽宁大连人,讲师。・36・

辽宁税务高等专科学校学报第14卷

端不断交互的循环过程。一个典型的三层体系结构系统的工作流程周期是这样的:

(一)操作员在浏览器界面上输入业务信息;(二)界面对数据的合法性进行检查;

(三)检查通过后,界面将携带参数信息的请求发送给HTTPServer;

(四)Server根据请求的类型调用核心Servet进行初步处理,为不失典型性,假如客户端请求的是一个业务系统自定义的Servlet;

(五)核心Servlet:InvokerServlet击活(如果该Servlet是第一次被请求,则先加载该Servlet)请求中指定的Servlet;

(六)在ApplicationServer中,该Servlet组织业务逻辑层的classes进行业务处理;

(七)如果业务逻辑层的classes需要进行持久化处理,则调用相应容器的服务;

(八)持久化容器到数据库连接池中获得或创建一条连接,执行对数据库的操作,并将执行结果返回给业务逻辑对象;

(九)Servlet根据业务逻辑对象计算的结果决定反馈给HTTPServer一个什么样的JSP,同时将计算结果嵌入JSP;

(十)由JSP编译生成的Servlet根据传过来的结果输出一段完整的HTML代码(含有操作结果信息),并传递给HTTPServer;

(十一)HTTPServer将这段HTML代码加上HTTP信息头,作为应答反馈给客户端浏览器。

三、核心技术

采用Rational公司的可视化面向对象建模工具Ratio-设计建模。采用UML建模语言。nalROSE进行开发、

(一)用户界面问题:

三层体系结构中,从技术的角度划分,客户端程序由以下几部分组成:

1.HTML,XML,XSL,CSS

HTML是所有界面元素的载体,标题、正文、Table、Form、Script程序段、Applet、ActiveXCtroller……所有这些都是通过〈标识〉〈/标识〉嵌在HTML中的。

XML以文本的形式表示对象属性,一般用于在不同系统或系统的不同层次之间传递对象。在三层方案中,应用服务对浏览器的应答统一采用XML+XSL+CSS的方式,这三种技术各司其职:XML代表数据内容,XSL代表数据布局及表现形式,CSS统一控制界面元素的显示风格。XSL和CSS的可重用性很高,一般说来,一个应用系统只需一两个CSS,几个XSL即可,项目组应统一定制。

2.JavaScript负责处理纯客户端的处理,包括:数据合法性校验、界面元素控制、提交请求等。JavaScript几乎在每一页中都会用到,具有较高的重用性,可以把公共的JavaScript脚本统一编制成XXX.js文件,在登录后下载到RootMenuFrame中,供其它帧直接调用。

(二)中间件服务器1.WebServerHTTPServer使用基本的服务器构架,它在启动时创建自己的服务处理线程池。在线程处理池中的线程进入循环,监听来自客户端的HTTP请求,并使用HTTP协议,对来到的HTTP请求进行处理。所有的HTTP连接都传给它们。HTTP请求到来后,服务处理线程根据URL和Server的配置信息进行必要的授权检查,决定调用哪个Servlet来处理请求,然后将Servlet处理之后的结果作为应答反馈给客户端。

在HTTPServer中有几个处于核心地位的Servlet,它们提供标准的HTTP功能。这几个核心的Servlet分别是:FileServlet:用于处理对文件服务的请求;CgiServlet:提供基本的CGI功能;

InvokerServlet:作为一个元Servlet(meta-servlet),负责其

它Servlet的加载、击活和删除;

DispatcherServlet:间离部分可信和完全可信的Servlet,使它们在各自安全的“沙箱”里执行。

网络应用级协议有多种,如HTTP(S)、FTP、SMTP等,其中HTTP(S)协议是最安全、应用最广的协议,HTTP请求是被防火墙视为安全的请求。因此,三层结构中间件都带有HTTPServer,它是三层结构中间件的门户,是联系客户端和真正处理业务的ApplicationServer的桥梁和纽带。

2.JavaApplicationServer

ApplicationServer是中间件的核心部分,是真正实现业务功能的服务,它接受HTTPServer分配的请求,做出相应处理,再将处理结果传递给HTTPServer,由HTTPServ-er形成HTTP应答反馈给客户端。

按照一般的VCM中间件设计范式,ApplicationServer可以划分成以下三个层次:

(1)View显示层

View在这里可以解释为UserInterfaceLogicLayer

(用户界面逻辑层)。View层负责显示应答结果,应答结果的载体有两种形式:StaticPage(静态页面)和DynamicPage(动态页面)。在ApplicationServer中,静态页面即普通HTML页面。动态页面最常用的是JSP(JavaServerPage)。

(2)Controller控制层

控制层是ApplicationServer的调度中心,主要由Ap-plicationServer核心Servlet和应用系统开发商自定义Servlet组成。Servlet被译为服务器小程序,是一个与协议无关、跨平台的服务方构件,可以实现网络上远程动态加载。Servlet的激活和移动必须有客户端调用才行。它接受来自客户端的请求,将处理结果返回客户端。

Servlet的工作过程是这样的:首先在HTMLFORM的action属性中声明处理该表单的Servlet,这样当用户提交表单时,被加载到服务器端的Servlet就会被激活。Servlet接受来自于客户端的请求,收集请求中的信息,并调用业务逻辑层接口,对数据进行分析、处理;然后,Servlet决定输出或调用什么样的界面反馈给用户。

Servlet是传统的CGI(公共网关接口)的代替物,与CGI相比,Servlet有以下优点:

效率高:使用Servlet比使用CGI脚本来处理用户请求快。这是因为Servlet是在服务器上运行一个Java虚拟机,因此在多次调用一个Servlet时,它只需要加载一次即可。第5期            滕英岩:基于J2EE三层体系结构的研究与应用              ・37・标准API:SUN公司为Servlet提供了一个标准的API(ServletAPI),保证了程序开发的一致性,并使Servlet具备了一个最大的优点:协议无关性。

可移植性:Servlet是用Java语言开发的,因此它具有

一次编Java语言的一切优点,如良好的可移植性,能做到“

译,到处运行”。

灵活性:Servlet可以从本机磁盘加载激活,也可以通过网络远程加载或激活。Servlet可以单独工作,也可以连接在一起工作。可以让一个Servlet调用多个其它Servlet,也可以让多个Servlet按流水线方式工作。

安全性:Servlet安全模型和“沙箱”机制可以保护系统不受到破坏。

(3)Model模型层

模型层是具体实现业务处理功能的层次,供Servlet调用、分析和处理来自客户端的请求。模型层可以细分为业务逻辑层(BussinessLogicTier)和持久化层(PersistenceTier)。

业务逻辑层处理业务逻辑的各种细节。业务逻辑层中有大量业务实体类对象(BussinessEntityObjects)这些对象的属性需要在业务处理过程中及时地存储到数据库中,或者实时从数据库中获取属性信息重新装配对象。一个健壮的应用系统应该有一个相对的层次来完成这一功能,这一层次应相对于业务逻辑层、同时相对于数据库管理系统。成功的持久化层是实现系统进行数据库移植和适应业务变动的关键环节之一。

(三)数据库服务器

保证对象持久的最直接的方法是使用面向对象的数据库管理系统,它是专门为存储和共享对象而设计的。但是目(上接第27页)的征收待遇一致”,所以如果出口产品在出口国遇到不退税或不完整退税的情况下,那么在进入进口国市场时还会被征收间接税,这就造成了重复课税的发生,对于产品的竞争力会发生较大的影响。所以应尽快实行零税率的。坚持“征多少退多少,多征多退,不征不退,彻底退税”的原则,将出口退税率恢复到法定退税率的水平。

(2)加强出口退税账户托管,为支持出口企业扩大出口,解决出口企业短期流动资金困难,银行对于信誉良好,没有非法偷骗税行为并且近年内出口业绩稳定,财务健全的各类出口企业可通过建立出口退税账户的方式来支持出口企业扩大出口,以解决出口企业短期流动资金困难。防范贷款风险托管贷款期限最长应不超过1年。

(3)加大财政支持,以缓解财政压力,国家财政部门所负担的出口退税额应界定在体现公平税制下出口退税所允许的下限和国家非中性税收杠杆所允许的上限内,计算出合理的退税率;同时改革目前出口环节、消费税和关税同步减免的办法,对进口产品普遍征收、消费税并严格控制减免,逐步实现进出口税收大体自求平衡,形成以进养出的良性循环。

(4)我们还应加大对出口退税的管理力量,借鉴外国对于出口退税的管理经验,结合我国出口退税管理的迫切需

前面向对象的数据库还很不成熟,加之绝大多数老的MIS(managerinfornationsystem)系统都是建立在关系数据库之上的,所以使用面向对象的数据库会使老系统的升级成为无法实现的课题。基于以上原因,对象持久化工作通常需要一个关系数据库。目前,大型三层体系结构应用系统中用的较多的关系型数据库有Orcale、DB2、Sysbase等。

实体Bean对象持久化在J2EE中有BMP和CMP两种模式,本系统业务环节采用CMP即容器管理的模式,由实体BEAN与数据库表相映射,对实体组件的调用采用了专业化的组件查询语言-EJB-QL。应用服务器的可扩展性。本

系统采用Cluster技术实现应用服务器的扩展和负载平衡,以满足系统在容量上的不断护展。

结论

基于J2EE的三层体系结构在安全性、可扩展性、可维护性、适应性、开放性、先进性和成熟性等方面较之两层结构而言均有着很大的优势,尤其对于建设大型应用系统,意义尤为深远。

参考文献

[1] (英)DannyAyers.Java服务器高级编程[M].北京:机械工业

出版社,2001.[2] (美)BarbaraWhite.JavaBeans开发使用手册[M].北京:机械

工业出版社,1998.[3] (美)HerbertSchilde.Java2编程起步[M].北京:人民邮电出

版社,2001.

[4] (美)PaulTremblett.JSP即时应用[M].北京:人民邮电出版

社,2001.[5] 李 江,张 威.实例解析XML/XSL/Java网络编程[M].北

京:宇宙出版社,2002.

要,应大力加快出口退税的网络建设。在目前与海关和外汇管理机关实行有关信息共享基础上,在将来应结合全国税收电子化工程实现出口退税工作全面自动化管理。目前首先应加大管理力度,国税部门应及时公布新,搞好内外协调,促进环节畅通,做好税务机关之间的协调工作,促进先征后返,争取实现快征快退。除进一步在机构和办公经费及人员方面加大投入外,地方、银行、海关、外汇、外贸等部门也应该各负其责,更多投入,以加强管理工作。

(5)国家、地方、省市外贸经营企业应该加快及经济改革步伐,出口退税的改革需要退税主管部门及相关经济部门之间的相互配合,涉外经贸企业应加快内部机制转换,增强国际竞争力以摆脱对出口退税的过分依赖,从经营角度出发应尽量由“粗放型”向“以质取胜”的经营策略转变,适时提高价格,减少价格战对资源的内耗,提高应用效益。

参考文献

[1] 孟 茜.出口退税对外贸企业的影响[J].沿海经贸,

2000,(3):25—27.

[2] 闻 缓.非彻底退税浅论[J].外经贸实务,1998,(6):10—

11.

因篇幅问题不能全部显示,请点此查看更多更全内容

Copyright © 2019- niushuan.com 版权所有 赣ICP备2024042780号-2

违法及侵权请联系:TEL:199 1889 7713 E-MAIL:2724546146@qq.com

本站由北京市万商天勤律师事务所王兴未律师提供法律服务