admin 管理员组文章数量: 1086019
2024年4月24日发(作者:虚函数是一个成员函数)
理论研究
208
J2EE多层模型研究
贾素来
(无锡商业职业技术学院基础教学部, 江苏 无锡 214153)
摘 要:J2EE为搭建分布式系统提供了良好的整套机制。典型的J2EE结构的应用程序包括四层:客户层、表示逻辑层、业务逻辑层和企业信
息系统层,每一层多有核心技术对其开发提供支持,比如Servlets、EJB、JDBC、JNDI、Java RMI等。MVC设计模式是目前最流行的J2EE开发
模式,而Struts技术已经成为实现该模式的最流行框架方案。
关键词:多层体系结构; J2EE; MVC; Struts
DOI:
10.16640/.37-1222/t.2017.04.184
0 引言
针对传统的客户机/服务器体系结构的种种缺点,计算机科学家
提出了三层或多层分布式系统模型
[1]
。随着不断改进和发展,多层分
布式系统逐渐形成了三种具有代表性的主流技术,即CORBA、COM/
DCOM和J2EE(Java2 Platform Enterprise Edition)。J2EE为搭建具有可
伸缩性、灵活性、易维护性的分布式系统提供了良好的整套机制。
1 多层体系结构模型
三层架构就是将整个系统业务应用划分为三个层次,即:客户层、
业务逻辑层、数据访问层。业务逻辑层又可由多个子层组成,具体要
看系统的复杂程度。这样就形成了多层分布式体系结构,分布性可以
体现在软件上,也可以是硬件,具体模型如图1所示。
图1 多层分布式体系结构模型
多层体系结构模型将表示和业务处理分开,缩减了客户端的规模,
又将相关业务和资源分开,降低了服务器的负载,避免了服务器的性
能缺陷对整个系统性能的影响。这种在多个服务器上分布应用程序处
理的多层可变结构比二层体系结构的伸缩性和扩展性有了很大加强。
同时多层体系结构解决了客户机/服务器结构的维护成本问题,改善
客户机/服务器结构延展性问题。客户机/服务器结构支持的用户人
数有一定限额,这种结构限制了internet/intranet及电子商务的发展。
2 J2EE多层模型
为实现企业级分布式应用,J2EE定义了丰富的技术标准、符合
标准的开发工具和API为开发企业级应用提供技术支持,这些技术涵
盖数据库访问、分布式通信和安全等。
2.1 J2EE多层模型介绍
J2EE是一个基于Java的适合服务器端的、结合了Java Enterprise
API的完整的企业级应用系统开发平台或中间件体系结构,它通过提
供一组应用组件和运行时环境来构造可伸缩的企业应用。典型的J2EE
结构的应用程序包括四层:客户层、表示逻辑层、业务逻辑层和数据
访问层,如图2所示
[2]
。
客户端层用来实现企业级应用系统的操作界面和显示层。表
示逻辑层由web服务器和web组件组成。web组件包括JSP页面和
图2 J2EE 多层体系结构模型
servlets。表示逻辑层也可以包括一些JavaBeans,这一层主要用来处理
客户请求,调用相应的逻辑模块,并把结果以动态网页的形式返回到
客户端。业务逻辑层也叫ejb层或应用层,由ejb服务器和ejb组件组
成,用来实现企业级信息系统的业务逻辑,这是企业级应用的核心。
ejb要运行在容器中,容器解决了底层的问题,如事务处理、状态管理、
多线程、安全管理、资源池等。表示逻辑层和业务逻辑层也可以合称
中间层。数据访问层处理企业系统软件,包括企业基础系统、数据库
系统及其它遗留的系统。
2.2 J2EE核心技术
在J2EE中,开发者可以用来实现多层结构的核心技术应该包括
Servlets、EJB、JDBC、JNDI、Java RMI等
[3]
。
Java Servlet是一项服务器端技术,它接收来自Web浏览器的
HTTP请求并返回HTTP响应。首先,请求被提交给Servlet引擎,然
后Servlet引擎执行适当的Servlet,访问响应对象,并向客户端返回一
个响应。
ejb定义了如何编写服务器端组件,并为服务器端组件和管理这
些组件的应用服务器之间提供了标准协议,开发者可以利用这些组件
象搭积木一样建立自己的分布式应用程序。ejb并不是一个单独的文件,
它由一些类、接口、描述文件和其它一些资源文件组成。ejb组件有
三种类型:会话Bean、实体Bean、消息驱动Bean。会话Bean用于管
理实体Bean和其它会话Bean的交互、访问资源,通常代表客户机执
行任务。实体Bean用于表示数据库中的数据,向JDBC或其它一些
后端API经常访问的数据提供了一个面向对象的接口。消息驱动Bean
响应JMS消息。
JDBC是Java程序与数据库通信的标准API,使Java开发者能够
用纯Java API编写数据库应用程序。和ODBC一样,JDBC为开发人
员隐藏了不同数据库的不同特性。另外,由于JDBC建立在Java的基
础上,因此还提供了数据库存取的平台独立性。
JNDI是Java对对象名字和目录服务的“中央注册表”,管理
着对构建分布式应用程序所需的核心组件的引用。当创建访问远程
对象的应用程序时,JNDI以查找返回该对象地址的方式提供对该对
象的引用。应用程序首先在WebLogic Server部署中需要的对象,而
209
WebLogic Server服务将返回应用程序访问该对象时所需要的一切属性。
远程方法调用(Remote Method Invocation, RMI)大大增强了Java开发分
布式应用的能力,支持存储于不同地址空间的程序级对象之间彼此进
行通信,实现远程对象之间的无缝调用。RMI目前使用Java远程消息
交换协议JRMP进行通信,JRMP是专为Java调用远程对象制定的协议。
因此,Java RMI具有Java的“Write Once, Run Anywhere”的优点,用
Java RMI开发的应用系统可以部署在任何支持Java运行环境的平台上。
但由于JRMP是专为Java对象制定的,因此,RMI对于用非Java语言
开发的应用系统支持不足,不能与用非Java语言编写的对象进行通信,
其实也可以把它看作是RPC的Java版本。
理论研究
MVC在J2EE下开发已经成为了开发的主流模式。目前实现
MVC模式比较好的框架有structs、spring、hibernate、JSF等。这些框
架都提供了很好的层次分隔功能,其中Struts技术是构建J2EE分布
式程序的最流行框架方案。
Struts的开发模型分model 1和model 2两种。model 1模式在进
行快速和小规模的应用开发时是具有非常大的优势,但是从工程化的
角度考虑,它也有一些不足之处,主要在于不方便应用扩展,以及
不利于应用系统业务的复用。大型web应用必须采用不同的Model 2
设计模式。Model 2是基于MVC模式的框架,"Model"代表的是应用
的业务逻辑(通过JavaBean、ejb组件实现),"View"是应用的表示层
(由JSP页面产生),"Controller"是提供应用的处理过程控制(一般是
Servlet)。这种设计模型把应用逻辑、处理过程和显示逻辑分成不同的
组件实现,这些组件可以进行交互和复用。Model 2具有组件化的优点,
从而更有利于大规模系统的开发和管理。Struts是一组相互协作的类、
Servlet和JSP标记,它们组成一个可复用的Model 2设计。这个定义
表示Struts是一个框架,而不是一个库。但Struts也包含了丰富的标
记库和独立于该框架工作的实用程序类库。Struts利用taglib获得可重
用代码和抽象Java代码,利用Action Servlet配合实现
对整个系统的导航。Struts增强了开发人员对系统的整体把握,提高
了系统的可维护性和可扩充性。
3 MVC在J2EE中的应用
J2EE能使遵从这个规定的开发者得到行业的广泛支持,使企业
级应用的开发变得简单、快速。然而在实际的开发过程中,设计者往
往忽略了Java语言面向对象的特性,模糊了web系统三层之间的界
限,从而使整个系统貌似神离,不能获得预期地优越的性能。这就要
对J2EE开发模式的理论进行探讨,目前最流行的就是MVC(Model/
View/Controller)设计模式,structs、spring、hibernate、JSF等则是实现
MVC模式最流行的框架方案
[4]
。
设计模式就是软件人员在面向对象软件设计中经多次验证的成功
解的记录与提炼,是在特定上下文情形下解决一般设计问题的类和相
互通信对象的描述,是针对问题和解的抽象,是对一系列具有共性的
问题的完整的解决方案。设计模式有效地避免了设计损害了系统的复
用性,是可复用面向对象软件的基础。MVC是一个强大的模型,基
于功能清楚地分开了代码,修改在某一层上的应用程序不会影响到其
它层。代码分布到多个逻辑层和物理层执行,每一层对应于一个特定
的应用程序功能,它们之间使用定义明确的、可判定的方式进行通信。
通过响应用户和程序输入,在层与层之间传递信号和数据来完成应用
程序的功能。
MVC设计模式具有设计清晰、易于扩展、运用可分布的特点,
因此在构建Web应用中具有显著的优势。MVC可适用于多用户的、
可扩展的、可维护的、具有很高交互性的系统,如电子商务平台、
CRM系统和ERP系统等。MVC可以很好的表达用户与系统的交互,
可以很方便的用多个视图来显示多种数据,从而可以使系统能方便的
支持其它新的客户端类型,如PDA、WAP等。MVC的另一个好处就
是将开发团队依照专业技术方向分开。这样,GUI设计专家可以在视
图层工作,负责具体功能开发的领域专家在控制层工作,数据库专家
在模型层工作。这种明确分工可有效提高开发团队所有成员的效率,
从而提高整个开发团队的生产能力。
4 结束语
J2EE为搭建多层分布式系统提供了良好的整套机制,包括了
J2EE的相关实现技术和应用开发的一般过程。通过多个具体项目的
应用研究,开发者可以逐步完善该体系结构,逐步积累各层次的组件,
直至最后建立J2EE业务组件库,从而达到提高研发分布式系统的能
力、效率和规范软件的研发过程。
参考文献:
[1]梁维海.三层体系结构无关性的研究及实现[D].四川:成都理工
大学,2004:1-4.
[2]闫珅,郭燚.基于Eclipse开发环境的J2EE编程技术[J].河北:
唐山职业技术学院学报,2008,6(04):45-46.
[3]王仕超.基于JAVA的MVC模型框架研究[D].江苏:南京理工大
学,2003:11-16.
[4]陆荣幸,郁洲,阮永良,王志强.J2EE平台上MVC设计模式的研
究与实现[J].四川:计算机应用研究,2003(03):144-146.
作者简介:贾素来(1979-),男,江苏泰州人,硕士研究生,讲师,
研究方向:软件工程,信息系统设计。
(上接第199页)
(4)实验中还发现2杯100mL葡萄汁并联后能持续供电2
天,两天以后更换电极片后电压仍保持一杯U=0.960V,但是电流从
I=16.00mA增大到I=20.00mA,原因是内阻变小,是什么导致内阻变
小?
(5)原电池中用盐桥代替导线可以使实验效果更明显,那么水
果电池也可以用盐桥代替导线。
(6)水果电池的电动势和内电阻的探讨。
参考文献:
[1]杨玉琴.关于“水果电池”的实验探究[J].化学教学,2008(01):
17-18.
[2]祝炎,吴先强,王程杰.水果电池实验效果影响因素分析及案例
设计[J].教学仪器与实验,2009(09):13-14.
[3]肖庆孝.文科班<<电池探秘>>教学反思[J].广东教育<教研版
>,2007(12):135-136.
[4]穆华荣著. 食品分析[J].化学工业出版社,2009(08).
[5]曲祖乙著.食品分析与检验[J].中国环境科学出版社,2006(08).
[6]郝志国.浅析创新实验题目-测"水果电池”的电源电动势和内
阻[J].教育教学论坛,2010(25).
版权声明:本文标题:J2EE多层模型研究 内容由网友自发贡献,该文观点仅代表作者本人, 转载请联系作者并注明出处:http://www.roclinux.cn/b/1713919615a657725.html, 本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌抄袭侵权/违法违规的内容,一经查实,本站将立刻删除。
发表评论