首页>java频道>java教程>正文
关于Java EE架构原理探秘及企业级应用

www.zige365.com 2010-6-7 12:08:31 点击:发送给好友 和学友门交流一下 收藏到我的会员中心

 
在客户端方面,独立的客户端程序是一个Java核心应用程序,通过网络与EJB容器连接;而如果用户使用网络浏览器,则通常浏览器会通过HTTP协议与Web容器进行交互。EJB容器和Web容器都来自Java EE应用服务器,而服务器程序本身又运行在Java虚拟机(JVM)之上。

不同的容器提供不同类型的底层服务,比如Web容器不提供对事务的支持,而EJB容器则正相反。容器所提供的服务可以通过标准的JavaEE API进行访问,例如Java消息服务(JMS,Java Message Service)、Java命名与目录接口(JNDI,Java Naming and Directory Interface)、Java持久化API(JPA,Java Persistence API)以及Java事务API(JTA,Java Transaction API)(译注:作者可能自己写晕了,JTA写了两遍。。。)等等。这些服务的最大优点是,应用组件可以透明地调用它们而且不需要太多配置改动。如果想插入这些服务,应用组件需要与一个XML格式的部署描述文件一起封装进一个预定义好的归档文件。这种方式有效地减少了部署时间,也简化了维护工作。

Java EE的应用架构

Java EE平台简化了n级分布式应用系统的开发,应用组件可以根据功能的不同被轻松划分到不同的级上运行,不同级上的组件都要通过一个构建好的架构准则实现相互间合作,而这个架构就是MVC。

MVC概览

MVC第一次被提出要追溯到1979年Trygve Reenskaug在他的一篇名为《Smalltalk-80™应用程序开发:如何使用模型—视图—控制器结构》的论文中对它的描述。最初它主要是作为一种分离用户接口逻辑与业务逻辑的策略被设计出来的。然而,只是简单的将二者分离开无法实现有效的功能,还需要加入一个间接层以连接并协调表现层与业务逻辑层。而这个新的层就被称作“控制器层”。就这样,MVC结构将应用程序划分成了3个独特又相互协作的组件:

◆模型。模型通过业务逻辑管理应用中的数据。

◆视图。视图负责应用程序的数据显示以及向用户提供控制选项,使用户可以与系统进行进一步交互。

◆控制器。控制器负责模型与视图之间的协调。

图2描述了这三个组件之间的关系。控制器截获任何由用户操作出发的事件;根据用户操作的类型,控制器调用模型以应用与之匹配的业务逻辑然后修改相应的应用数据;之后控制器选择一个视图组件向终端用户展示修改之后的应用数据。从这个过程中你可以看到,MVC提供了一种明确应用程序中各部分职能的方法。通过这种分离方式,多个视图以及控制器就可以同时与一个模型一起工作了。

模型—视图—控制器
图2. 模型—视图—控制器(图中文字:Apply business rules——应用业务逻辑;Modify application data——修改应用数据;User Actions——用户操作;Select view——选择视图;Display changed application data——显示修改后的数据;Model——模型;Controller——控制器;View——视图)

使用MVC结构的Java EE架构

目前的企业级应用开发中,MVC被广泛使用。MVC的概念可以很容易地被用来构建Java EE应用架构的基础。Java EE的Servlet技术作为控制器就非常完美。任何浏览器请求都可以通过HTTP协议发送给Servlet,之后Servlet作为控制器可以调用EJB模型组件。这些模型组件内部封装了业务逻辑并可以对应用数据进行操作,而处理过的企业数据之后可以通过JSP表现给用户。这是真实生活中企业级Java应用架构的一个最简范例,尽管这种结构只在很小的范围内能够有效工作,但是它仍然对应用的开发具有重大的意义。如果你能让不同技术领域的专业人员一起工作,你的风险就会降低,而生产力就会提高。除此之外,任何一层的替换都是透明的,你可以轻易的加入新的功能而不需要修改其它层(参见图3)。

Java EE架构中的层
图3. 基于MVC结构的分层多级Java EE应用架构(图中文字:Client Tier——客户级;Clinet/Browser——客户端/浏览器;HTTP Request/Response——HTTP请求/响应;Presentation Layer——表现层;Presentation Tier——表现级;Data Access Layer——数据访问层;Business Tier——业务级;Enterprise Information Tier——企业信息级;Database——数据库)

本新闻共3页,当前在第2页  1  2  3  

我要投稿 新闻来源: 编辑: 作者:
相关新闻
浅谈Java企业级应用架构设计中的分布式结构
浅谈正则表达式操作符参考列表
关于Java连接池总结复习及推荐
浅谈web.xml元素:常见设定值一览
关于Java输入数据流详解