首页 | 资讯动态 | linux基础 | 系统管理 | 网络管理 | 编程开发 | linux数据库 | 服务器技术 | linux相关 | linux认证 | 嵌入式 | 下载中心 | 专题 | linux招聘 | 镜像站
OKLinux中文技术站
·设为首页
·加入收藏
·联系我们
系统管理: 中文环境 系统管理 桌面应用 内核技术 | Linux基础: 基础入门 安装配置 常用命令 经验技巧 软件应用 | Linux数据库: Mysql Postgre Oracle DB2 Sybase other
网络管理: 网络安全 网络应用 Linux服务器 环境配置 黑客安全 | 编程开发: PHP CC++ Python Perl Shell 嵌入式开发 java jsp | PHP技术: PHP基础 PHP技巧 PHP应用 PHP文摘
Linux资讯 Linux招聘 Linux专题 Apache | Linux相关: 硬件相关 Linux解决方案 Linux认证 企业应用 其它Unix | 相关下载: 资料下载 参考手册 开发工具 服务器类 软路由 其它
 技术搜索:
会员中心 注册会员 高级搜索  
  → 当前位置:首页>编程开发>java>J2EE>正文

进阶-当前流行的J2EE WEB应用架构分析

http://www.oklinux.cn  2008-01-20  来源: 赛迪网 xuyy_cn  会员收藏  游客收藏  【 】 

1. 架构概述


J2EE体系包括java server pages(JSP) ,java SERVLET, enterprise bean,WEB service等技术。这些技术的出现给电子商务时代的WEB应用程序的开发提供了一个非常有竞争力的选择。怎样把这些技术组合起来形成一个适应项目需要的稳定架构是项目开发过程中一个非常重要的步骤。完成这个步骤可以形成一个主要里程碑基线。形成这个基线有很多好处:


各种因数初步确定

为了形成架构基线,架构设计师要对平台(体系)中的技术进行筛选,各种利弊的权衡。往往架构设计师在这个过程中要阅读大量的技术资料,听取项目组成员的建议,考虑领域专家的需求,考虑赞助商成本(包括开发成本和运行维护成本)限额。一旦架构设计经过评审,这些因数初步地就有了在整个项目过程中的对项目起多大作用的定位。

定向技术培训

一旦架构师设计的架构得到了批准形成了基线,项目开发和运行所采用的技术基本确定下来了。众多的项目经理都会对预备项目组成员的技术功底感到担心;他们需要培训部门提供培训,但就架构师面对的技术海洋,项目经理根本就提不出明确的技术培训需求。怎不能够对体系中所有技术都进行培训吧!有了架构里程碑基线,项目经理能确定这个项目开发会采用什么技术,这是提出培训需求应该是最精确的。不过在实际项目开发中,技术培训可以在基线确定之前与架构设计并发进行。

角色分工

有了一个好的架构蓝图,我们就能准确划分工作。如网页设计,JSP 标签处理类设计,SERVLET 设计,session bean设计,还有各种实现。这些任务在架构蓝图上都可以清楚地标出位置,使得项目组成员能很好地定位自己的任务。一个好的架构蓝图同时也能规范化任务,能很好地把任务划分为几类,在同一类中的任务的工作量和性质相同或相似。这样工作量估计起来有一个非常好的基础。

运行维护

前面说过各个任务在架构图上都有比较好的定位。任何人能借助它很快地熟悉整个项目的运行情况,错误出现时能比较快速地定位错误点。另外,有了清楚的架构图,项目版本治理也有很好的版本树躯干。

扩展性

架构如同一颗参天大树的躯干,只要躯干根系牢,树干粗,长一些旁支,加一些树叶轻而易举无疑。同样,有一个稳定的经得起考验的架构,增加一两个业务组件是非常快速和轻易的。

大家都知道这些好处,一心想形成一个这样的J2EE应用程序架构(就像在windows平台中的MFC)。在这个路程中经历了两个大的阶段:


1.1. 模型1


模型1其实不是一个什么稳定架构,甚至谈不上形成了架构。模型1的基础是JSP文件。它从HTTP的请求中提取参数,调用相应的业务逻辑,处理HTTP会话,最后生成HTTP文档。一系列这样的JSP文件形成一个完整的模型1应用,当然可能会有其他辅助类或文件。早期的ASP 和 PHP 技术就属于这个情况。


总的看来,这个模型的好处是简单,但是它把业务逻辑和表现混在一块,对大应用来说,这个缺点是令人容忍不了的。


1.2. 模型2


在经过一番实践,并广泛借鉴和总结经验教训之后,J2EE应用程序终于迎来了MVC(模型-视图-控制)模式。MVC模式并不是J2EE行业人士标新立异的,所以前面我谈到广发借鉴。MVC的核心就是做到三层甚至多层的松散耦合。这对基于组件的,所覆盖的技术不断膨胀的J2EE体系来说真是福音和救星。


它在浏览器(本文对客户代理都称浏览器)和JSP或SERVLET之间插入一个控制组件。这个控制组件集中了处理浏览器发过来的HTTP请求的分发逻辑,也就是说,它会根据HTTP请求的URL,输入参数,和目前应用的内部状态,把请求分发给相应的WEB 层的JSP 或SERVLET。另外它也负责选择下一个视图(在J2EE中,JSP,SERVLET会生成回给浏览器的html从而形成视图)。集中的控制组件也有利于安全验证,日志纪录,有时也封装请求数据给下面的WEB tier层。这一套逻辑的实现形成了一个像MFC的应用框架,位置如图:


1.3. 多层应用


下图为J2EE体系中典型的多层应用模型。


Client tier客户层

一般为浏览器或其他应用。客户层普遍地支持HTTP协议,也称客户代理。

WEB tier WEB应用层

在J2EE中,这一层由WEB 容器运行,它包括JSP, SERVLET等WEB部件。

EJB tier 企业组件层

企业组件层由EJB容器运行,支持EJB, JMS, JTA 等服务和技术。

EIS tier 企业信息系统层

企业信息系统包含企业内传统信息系统如财务,CRM等,特点是有数据库系统的支持。


应用框架目前主要集中在WEB层,旨在规范这一层软件的开发。其实企业组件层也可以实现这个模型,但目前主要以设计模式的形式存在。而且有些框架可以扩充,有了企业组件层组件的参与,框架会显得更紧凑,更自然,效率会更高。


2. 候选方案


目前,实现模型2的框架也在不断的涌现,下面列出比较有名的框架。


2.1. Apache Struts


Struts是一个免费的开源的WEB层的应用框架,apache软件基金致力于struts的开发。Struts具是高可配置的性,和有一个不断增长的特性列表。一个前端控制组件,一系列动作类,动作映射,处理XML的实用工具类,服务器端java bean 的自动填充,支持验证的WEB 表单,国际化支持,生成HTML,实现表现逻辑和模版组成了struts的灵魂。


2.1.1. Struts和MVC


模型2的目的和MVC的目的是一样的,所以模型2基本可以和MVC等同起来。下图体现了Struts的运作机理:


2.1.1.1. 控制


如图所示,它的主要部件是一个通用的控制组件。这个控制组件提供了处理所有发送到Struts 的HTTP请求的入口点。它截取和分发这些请求到相应的动作类(这些动作类都是Action类的子类)。另外控制组件也负责用相应的请求参数填充 From bean,并传给动作类。动作类实现核心商业逻辑,它可以通过访问java bean 或调用EJB。最后动作类把控制权传给后续的JSP 文件,后者生成视图。所有这些控制逻辑利用一个叫struts-config.xml文件来配置。


2.1.1.2. 模型


模型以一个或几个java bean的形式存在。这些bean分为三种:


Form beans(表单Beans)

共3页: 上一页 1 [2] [3] 下一页

上一篇:高级:走近JavaEE5与Glassfish应用服务器   下一篇:Java语言深入:关于多线程程序模型研究


收藏于收藏夹】 【评论】 【推荐】 【打印】 【关闭
相关文档
·Java EE/J2EE面向对象编程之道
·J2EE综合:Struts上传多个文件的例子
·J2EE综合--Java企业系统架构选择考量
·J2EE基础:分析J2EE架构的6个最佳实践
·进阶--开发J2EE应用应遵循的几点原则
·J2EE综合:关于Config参数和Context参数
·高级:Java/J2EE中文问题终极解决之道
·J2EE综合--Hibernate的事务处理机制
·J2EE综合--分析Hibernate的缓存机制
·J2EE基础:J2EE开发之常用开源项目介绍
·J2EE综合--业务逻辑和数据库访问决策
·J2EE基础:Java的中文编程与配置心得
·J2EE综合:谈谈Java Web开发的学习路径
·J2EE框架:Spring框架的事务管理及应用
·J2EE综合--Struts常见错误的全面汇总
·J2EE综合:看JAVA设计模式之事务处理
发表评论
密码: 匿名评论
评论内容:

(不超过250字,需审核后才会公布,请自觉遵守互联网相关政策法规)
 
  最新文档
·一个用JAVA写的测算服务器响应速度程序
·软件测试:软件测试的基础知识概要介绍
·J2EE综合--浅析Java程序员的存储过程
·J2EE综合:业务逻辑和数据库的访问决策
·J2EE综合:关于Java EJB容器存取和实现
·J2EE综合--Java企业系统架构的选择考量
·J2EE综合--java语言不一定就跨平台
·J2EE综合--对Struts中常见错误的汇总
·J2EE综合:开发J2EE应用应遵循的几点原
·J2EE综合:Java EE/J2EE面向对象编程之
·提高J2EE层与数据库层交互操作能力的优
·开发J2EE应用时应该遵循的几个基本准则
  阅读排行
·对J2EE开发中常用开源项目的介绍
·J2EE综合--关于权限设计的详细探讨
·J2EE--关于JAVA的分页查询操作技术
·J2EE综合--Java企业系统架构选择考量
·J2EE基础:j2ee所包含的13种核心技术
·J2EE基础:在Struts 2中实现文件上传
·J2EE综合:Struts上传多个文件的例子
·J2EE综合--业务逻辑和数据库访问决策
·J2EE综合--浅谈Java程序员的存储过程
·与你共同分享12个最重要的J2EE最佳实践
·J2EE综合--JAVA开发工具安装配置心得
·J2EE综合--总结java编程中的经验教训
·J2EE综合--Java EJB容器的存取和实现
·J2EE综合:谈谈Java Web开发的学习路径
·[J2EE] JNDI定义Oracle数据源的方法
网摘收藏: