【Java开源代码栏目提醒】:网学会员--在 Java开源代码编辑为广大网友搜集整理了:[计算机]Java EE 快速Web开发架构总体设计 - 操作系统绩等信息,祝愿广大网友取得需要的信息,参考学习。
Java EE 快速Web开发架构总体设计 来源好优科技收集 作者不详 时间2010-07-16 09:23:44 浏览458次 【北京好优科技】
Java EE 快速 Web 开发架构总体设计 基于前面的软件复用思想和系统架构的
设计原则以及当前
Java EE 架构分层实现思想结合各层和当前
Java 各种框架的特点设计了如图 3-1 所示的
Java EE快速 Web 开发架构。
一、架构的概要说明 总体上此开发架构主要是采用纯
Java EE 架构对非
Java EE 架构的如 Tuxedo服务保留一定的调用接口。
系统的核心为 Struts SpringSessionBean Hibernate 1、数据访问层采用 Hibernate 实现增删改和一般的查询操作JDBC 实现对性能有要求的操作。
2、业务逻辑层采用 Spring 或者 SessionBean 实现两种技术并存在具体应用时根据需要选择。
当需要较多的对外接口的时候采用 EJB 会更便于包装成对外提供的服务而 Spring 技术更便于开发和调试。
业务逻辑层内部还可以根据实际需要再细分为代理层、服务层和逻辑层。
1代理层提供给上层调用屏蔽了内部技术差异的细节 2业务逻辑根据需要适当的封装成单独的 JavaBean以提高业务逻辑的重用性 3服务层上实现事务的控制和业务逻辑的调用简单且不需要重用的逻辑可以直接在服务层实现。
3、控制层采用 Struts 框架。
展示层用户请求都通过 Struts 的 ActionServlet 和Action。
各种权限、异常、字符集、国际化也都在这里控制。
4、展示层采用 JSP充分利用 TagLib 技术将
Java 代码和页面
代码分离界面的校验采用普通的
Java Script涉及后台的校验时采用 Ajax 技术。
5、系统的对外接口上提供了多种可选择的技术可根据不同的需要进行选择。
对性能要求不高的接口建议用比较通用的 WebService在同构系统中特别是企业内的核心系统建议采用 EJB 实现性能较好对于跨业务的性能要求较高的接口Tuxedo 或者 Socket 比较合适。
二、架构的主要流程 图 3-2 主要展示了架构的主要流程。
当用户发出请求后请求经过 Struts 的 ActionServlet 根据配置文件找到相应的Action同时创建一个 ActionForm 对象保存用户请求的相关数据Action 创建代理层对象代理层对象找到相应的业务处理类进行相关业务的处理业务处理程序通过 DAO 层操纵和访问数据库访问数据库主要采取了 JDBC 和 Hibernate 两种方式取到的数据逐层返回给相应的页面呈现给用户。
架构应用范畴 这是一个
Java EE 快速 Web 开发架构适合于几乎所有的 B/S 系统开发需要有大量的交互界面的
系统应首选该架构如参数管理、系统管理和监控、CRM 等面向客户的服务系统如营业和收费、报表和分析等等。
架构相关技术 一、 MVC 模式和 Struts 技术 MVC 是 Model-View-Controller 的缩写即模型-视图-控制器它是目前非常流行的
软件设计模式。
MVC 强制性的把应用程序的输入、处理和输出分开它把应用分成三个核心模块分担不同的任务图 3-3 展示了它们之间的关系。
MVC 的处理过程首先控制器接收用户的请求并决定调用哪个模型来进行处理然后模型根据用户请求进行相应的业务逻辑处理并返回数据最后控制器调用相应的视图来格式化模型返回的数据并通过视图呈现给用户。
MVC 实现了多个视图共享一个模型它的模型是自包含的与控制器和视图保持相对独立所以可以方便的改变应用程序的数据层和业务规则而控制器则提高了应用程序的灵活性和可配置性。
基于 MVC 模式Sun 公司先后制定了两种规范JSP Model1 和 JSP Model2。
Struts 框架源于 Apache 软件基金会Apache software Foundation的 Jakarta 项目是在
JSP Model2基础上实现的一个
开源的表示层框架由一组相互协作的类、Serlvet以及 JSP Taglib 组成。
在 Struts 框架中模型由实现业务逻辑的
JavaBean 或 EJB组件构成控制器由 ActionServlet 和 Action 来实现视图由 JSP 文件构成图 3-4展示了 Struts 实现的 MVC 框架。
二、 EJB 组件技术 Enterprise JavaBeansEJB是
Java 企业级开发的重要组成部分EJB 从技术上而言不是一种“产品”而是一个技术规范。
EJB 是可部署的服务器端组件是一种结构良好的组件体系它大大的简化了企业级分布式组件应用系统的开发。
通过 EJB 分布式组件框架可以开发出可扩展的、健壮的应用系统。
EJB 规范定义了三种类型的企业 Bean会话 Bean、实体 Bean、消息驱动 Bean。
会话 Bean 代表的是业务过程。
对于客户机会话 Bean 是一种非持久性的对象它实现某些在服务器上运行的业务逻辑。
会话对象是运行在服务器上的客户机程序的逻辑扩展。
客户通过调用会话 Bean 的方法来访问远程服务。
会话 Bean 为它的客户完成特定的工作并通过在服务器端运行业务逻辑向客户屏蔽了实现的复杂性。
会话 Bean 还可细分为无状态会话 BeanStateless Session Bean和有状态会话 BeanStateful SessionBean两种类型。
三、 Spring 框架技术 Spring 是一个
开源框架它由 Rod Johnson 创建是为了解决企业应用开发的复杂性而创建的。
简单地说Spring 是一个轻量级的 IoC控制反转和 AOP面向切面的编程容器框架。
它最大的贡献是在 Web 应用框架中引入了控制反转的思想Inversion of ControlIoc它的架构核心是基于使用 JavaBean 属性的 IoC 容器提供了管理业务对象的一致方法并且鼓励注入对接口编程而不是对类编程的良好习惯Spring 还提供了数据持久层的解决方案通过唯一的数据访问抽象可以集成简单和有效率的 JDBC 框架也可以集成 Hibemate 和其他 0RM对象关系映射解决
方案Spring 还提供了唯一的事务管理抽象它能够在各种底层事务管理技术例如 JTA 或者 JDBC基础上提供一个一致的编程模型。
Spring 具有先进的思想简洁而优雅的结构和强大的功能也使其成为 Web 应用开发关注的焦点之一。
Spring 由 7 个定义良好的模块组成组成 Spring 框架的每个模块都可以单独存在或者与其他一个或多个模块联合实现。
Spring 模块构建在核心容器之上核心容器定义了创建、配置和管理 bean 的方式图 3-5 为 Spring 的主要结构。
四 ORM 和 Hibernate 技术 对象关系映射Object Relational Mapping简称 ORM是一种为了解决面向对象与关系数据库存在的互不匹配现象的技术。
简单的说ORM 是通过使用描述对象和数据库之间映射的元数据将
java 程序中的对象自动持久化到关系数据库中。
本质上就是将数据从一种形式转换到另外一种形式。
Hibernate 就是一个基于
Java 的开放源
代码的持久化中间件越来越多的
Java开发人员把 Hibernate 作为企业应用和关系数据库之间的中间件以节省和对象持久化有关的JDBC 编程
工作量。
2005 年Hibernate 作为优秀的类库和组件荣获了第15 届 Jolt 大奖Hibernate 之所以流行归功于它的以下优势 1它是开放源
代码的允许开发人员在需要的时候研究源
代码改写源
代码定制客户化功能具有可扩展性。
2具有详细的参考
文档使用方便容易上手。
3对 JDBC 做了轻量级封装必要的话用户还可以绕过 Hibernate直接访问 JDBC API。
4Hibernate 既适用于独立的
Java 程序也适用于
Java Web 应用而且还可以在
Java EE 架构中取代 CMP容器管理持久化完成对象持久化的重任。
5Hibernate 可以和多种 Web 服务器、应用服务器良好集成并且支持几乎所有流行的数据库服务器。
在使用 Hibernate 作为数据持久方案的系统中应用程序直接使用持久对象Persistent Object来操作数据库而具体实现的细节则被 Hibernate 隐藏起来可以通过 Hibernate.properties 和 XML 映像文件等配置文件处理具体的数据库操作。
图3-6 主要展示了 Hibernate 的原理。
五、 Ajax 技术 AJAX即 Asynchronous JavaScript and XML 的简写是一种新的 Web应用程序开发的手段它采用客户端脚本与 Web 服务器交换数据。
不刷新整个页面就可以动态地更新 Web 页面。
使用 Ajax可以创建更加丰富、更加动态的 Web 应用程序用户界面实时性与可用性甚至能够接近本机桌面应用程序。
这使得 Web 应用的交互性得到了前所未有的提高大大增强了应用的实用性和实时性。
实际上 Ajax 并不是一个新的技术而是几项技术按一定的方式组合在一起在相互协作中发挥各自的作用它包括 1使用 XHTML 和 CSS 标准化呈现 2使用 DOM 实现动态显示和交互 3使用 XML 和 XSLT 进行数据交换与处理 4使用 XMLHttpRequest 进行异步数据读取 5最后用 JavaScript 绑定和处理所有数据。
虽然 Ajax的技术有上面的 7 项其实 Ajax核心只有 JavaScript、XMLHttpRequest和 DOM如果所用数据格式为 XML 的话还可以再加上 XML 这一项Ajax 从服务器端返回的数据可以是 XML 格式也可以是文本等其他格式。
在 Ajax 之前Web 应用采用同步的交互这种情况下用户发出的请求将直接发给 Web 服务器Web 服务器再进行处理只有用户收到了 Web 服务器的响应数据才对整个页面进行刷新显示而用户在收到数据之前的这段时间只能是等待这样用户的动作总是与服务器的“思考时间”同步。
采用超文本作为 Web 的传输和展示是一直普遍使用的方式但是事实上任何系统设计都不希望用户总是经历“请求—处理—等待—再请求—处理—再等待”这样的过程。
与传统的方式不同Ajax 采用了异步的交互过程。
Ajax 在用户和 Web 服务器层之间加入了 Ajax 引擎Ajax 引擎通常采用 JavaScript 编写通常隐藏在一个隐藏的框架中它负责用户与服务器之间的交互。
Ajax 引擎允许用户与应用之间的交互异步进行。
Ajax 采用与服务器异步通信的方式使用户从请求/响应的循环等待中解脱出来。
借助于 Ajax可以在用户单击按钮时使用 JavaScript 和 D
HTML 立即更新 UI并向服务器发出异步请求以执行更新或
查询数据库。
当请求返回时就可以使用 JavaScript 和 CSS 来相应地更新 UI而不是刷新整个页面。
最重要的是用户甚至不知道浏览器正在与服务器
通信Web 站点看起来是即时响应的。