基于JSH的多层开发架构研究

来源 :硅谷 | 被引量 : 0次 | 上传用户:ffftty
下载到本地 , 更方便阅读
声明 : 本文档内容版权归属内容提供方 , 如果您对本文有版权争议 , 可与客服联系进行内容授权或下架
论文部分内容阅读
  [摘要]目前,随着J2ee技术平台的逐渐成熟和完善,基于它的企业级的Web应用开发也越来越多,大部分的Web应用在层的划分上一般可以被分成4层,分别是:表示层、业务逻辑层、持久层和域模块层,每层在处理程序上都应该有明确的责任,不应该在功能上与其他层混合,并且每层要与其他层之间分开,降低彼此直接的耦合度,详细的分析基于JSH框架的多层架构的各层的具体功能,希望对大家有所帮助。
  [关键词]Jsf SpringHibernate 架构
  中图分类号:TP3 文献标识码:A 文章编号:1671-7597(2008)0810045-01
  
  一、引言
  
  这篇文章通过详细的分析各个层所应该具有的职责和功能,使大家思考怎样组合几个著名的框架使他们之间在企
  业级应用中做到松散耦合,怎样在开发中建立你的构架,怎样让你的应用的各个层之间保持一致。富于挑战的是:组合这些框架使得每一层都以一种松耦合的方式彼此通信,而与底层的技术无关。文章将使用3种流行的开源框架来讨论组合框架的策略。表现层我们将使用Jsf,业务层我们将使用Spring,持久层使用Hibernate,当然,在项目中可以根据实际情况来选择到底需要哪一种,通过替换这些框架中的任何一种而得到同样的效果。
  
  二、表示层
  
  一般来讲,一个典型的Web应用的用于实现展示给用户看的那层就是表示层。表示层的功能是采集用户的信息输入、展示数据、控制页面导航并将用户的输入传递给业务逻辑层,表示层同时需要验证用户的输入和做些相关的前台验证工作。JSF非常适合于基于MVC的表示层架构,它在行为和表示之间提供了清晰的分离,它使得你可以采用熟悉的UI组件和web层概念而无需受限于某种特殊的脚本技术或标记语言。
  表示层的主要功能是:
  1.管理用户的请求,做出相应的响应。
  2.提供一个控制器 ,委派调用业务逻辑层处理。
  3.处理异常。
  4.为显示提供一个模型。
  5.UI验证。
  但是,为了各层之间的松散耦合和清晰,有些功能不能放在表现层,如下:
  1.直接的与数据库的通信,例如JDBC调用。
  2.与你应用程序相关联的业务逻辑以及校验。
  3.事务管理。
  如果在表示层引入这些代码,将会带来高耦合和维护上的困难。
  
  三、业务逻辑层
  
  企业级Web应用的负责业务逻辑处理那层是业务层逻辑层。 从编码的视角来看,这层是最容易被忽视的一层。而我们却往往在表示层或持久层周围看到这些业务逻辑处理的代码,这其实是不正确的,因为它导致了程序代码的紧耦合,这样一来,随着时间推移和需求的变动这些代码讲变的很难维护。幸运的是,针对这一问题有些比较灵活的Frameworks存在。最受欢迎的一个开源框架是Spring,可以把它看作为microcontainers,它能让你很好的把对象搭配起来。 这个框架通过使用‘依赖注射’(dependency injection))这样的思想,把程序中所涉及到包含业务逻辑和Dao的Objects,例如:事务管理控制)、对象工厂、服务组件等都通过XML配置文件的形式联系起来,从而易于扩展和维护。
  业务层所负责的如下:
  1.处理应用程序的业务逻辑和业务校验
  2.管理事务
  3.允许与其它层相互作用的提供接口
  4.管理业务层级别的对象的依赖。
  5.在显示层和持久层之间增加了一个灵活的机制,使得他们不直接的联系在一起。
  6.通过依赖注入实现从显示层到业务逻辑层之间的接口调用。
  7.管理程序的执行(从业务层到持久层)。
  
  四、持久层
  
  该层主要是跟数据库打交道的一层,凡是涉及操作数据库的内容都在该层来实现,这里通常是程序最容易失控的地方。目前在持久层已经有好多种现成的持久化中间件可供选择,这些ORM开源框架提供的接口可以很好的方便数据库的操作,尤其是Hibernate,它对JDBC进行了轻量级的封装,不仅提供ORM映射服务,还提供了数据查询和数据缓存功能Java开发人员可以方便地通过Hibernate API来操作数据库,Hibernate的持久对象是基于POJO(Pure Old Java Object,简单传统Java对象)和Java 集合的。此外,使用Hibernate并不妨碍你正在使用的集成开发环境,极大的节省了和对象持久化有关的工作量。
  下面是持久层需要实现的功能:
  (一)查询对象的相关信息。Hibernate通过一个HQL查询语言或者正则表达的API来完成查询。HQL非常类似于SQL,只是把SQL里的table和columns用Object和它的fields代替。你需要学习一些新的HQL语言;不管怎样,他们容易理解而文档也做得很好。HQL是一种对象查询的自然语言,花很小的代价就能学习它。
  (二)存储,更新,删除数据库记录。诸如Hibernate这类的高级ORM框架支持大部分主流数据库,并且他们支持 Parent/child关系,事务处理,继承和多态。
  
  五、域模块层
  
  如果我们致力于的是一个不是很复杂的Web的应用,我们需要一个对象集合,让它在不同层之间移动。域 模块层由实际需求中的业务对象组成,比如,OrderLineItem , Product等等。开发者在这层不用管那些DTOS(Design To Order Service),仅关注domain object即可。 例如,Hibernate允许你将数据库中的信息存放入域对象(domain objects),这样你可以在连接断开的情况下把这些数据通过表示层显示出来,而那些对象也可以返回给持久层,从而在数据库里进行更新。而且,你不必把对象转化成DTOS(这可能使得它在不同层之间的在传输过程中丢失),这个模型使得Java开发者能很自然运用面向对象编程,而不需要附加的代码。
  
  六、四层架构图如下
  
  


  
  七、结束语
  总之,从软件层次结构的角度来说,软件的框架要具有较高的伸缩性和可扩展性,本文所讨论的JSH多层轻量级架构,由于它采用了Jsf表现层框架,基于组件式的开发,同时又通过Spring的依赖注入以及Hibernate对象-关系映射机制,然后我们根据项目的需要引入域模块层,因而它的模块化设计得到了很好的应用,层次非常清晰,具有很好的可复用度,对架构扩展的一个有益尝试,虽然提供了非常好的应用开发模式,但是它还非常新,一直在发展中。轻量级架构结合Jsf、Spring、Hibernate,充分发挥了三者的优点, 基于轻量级框架的J2EE 架构开发简洁、结构清晰,有很好的可扩展性和可维护性,非常适于企业级的Web应用的设计与开发。
  参考文献:
  [1]曹广鑫、王谢华、王建凤等编著.Struts 数据库项目开发宝典,电子工业出版社,2006.1.
  [2][美]曼著,铁手等译. JSF实战.人民邮电出版社,2007.3.
  作者简介:
  卢其龙,吉林大学珠海学院电子信息系,研究方向:电子信息科学与技术。
其他文献
[摘要]电力行业正在由以安全运行为中心向以面向用户、提高社会效益和经济效益为中心转变。为了提高工作效率、开展优质服务,更好的服务社会,各级电力公司相继进行了信息化建设。信息化工作已经成为电力行业改革、发展、稳定的重要组成部分,以信息化促进电力营销,把信息化与企业核心业务紧密结合起来,促进管理现代化、生产智能化和营销网络化。  [关键词]电力企业 管理信息系统 功能 子系统  中图分类号:TM7 文
期刊
[摘要]首先简要分析6~l0KV电网中性点的接地方。然后阐述6~10 kV电网中性点传统接地方式下单相接地故障时,在升高的稳态电压下继续运行的弊端,并且作了定性分析。对6~10 kV电网中性点取电阻接地方式的单相接地故障进行矢量分析,提出具有可靠选择性的单相接地故障保护方式,并指出单相接地故障取跳闸方式的必要性和可靠性。  [关键词]中性点 接地方式 接地保护  中图分类号:TM 773 文献标识
期刊
[摘要]作为人工智能与分布式计算技术相结合的产物,移动Agent技术已经成为分布式计算研究的热点。分析移动Agent通信存在的问题及解决方法。  [关键词]移动Agent 问题 解决方法  中图分类号:TN91 文献标识码:A 文章编号:1671-7597(2008)0810022-01    一、移动Agent通信存在的问题    移动Agent系统主要从“如何支持移动”的角度来设计通信机制。在
期刊
[摘要]就3G无线网络规划的核心问题以及规划方法进行讨论,对3G网络中应重点考虑的传播模型修正、容量与干扰、远近效应、导频污染等问题进行讨论,同时给出3G无线网络规划的应遵循的原则以及实施建议,进而指导工程实践。  [关键词]3G 网络规划 容量 干扰 覆盖  中图分类号:TN929.533 文献标识码:A 文章编号:1671-7597(2008)0810029-01    一、前言    随着通
期刊
[摘要]ARP协议由于固有的缺陷,在接受APR数据包时,不要求认证,使得伪造ARP数据包进行ARP欺骗变得很容易。在校园网环境下,ARP欺骗(攻击)尤为明显,严重的影响了日常的网络使用。PPPoE是在标准PPP报文的前面加上以太网的报头,PPPoE在通讯过程中不涉及ARP协议,由此可以避免ARP欺骗。  [关键词]APR 欺骗 PPPoE  中图分类号:TP3 文献标识码:A 文章编号:1671-
期刊
[摘要]简略介绍10kV电力电缆施工的几个注意事项。  [关键词]10kV电缆 型号 敷设 电缆头 机械损伤  中图分类号:TM3文献标识码:A 文章编号:1671-7597(2008)0810054-01    随着我国城市化进程的加快,市容市貌越来越成为人们注目的焦点,原有的城市架空线路逐步被电缆所替代,城市无杆化已成为城建工作的重要部分,加上城市建设道路拓宽等原因,市区内10kV电缆施工量越
期刊
[摘要]简要介绍EDA技术的基本特点,论述EDA技术及其发展。基于VHDL的自顶向下的设计方法,比较EDA技术与传统电子设计方法的差异,给出电子设计领域的全新理念。  [关键词]EDA VHDL应用 FPGA  中图分类号:TN7 文献标识码:A 文章编号:1671-7597(2008)0810021-01    一、引言    20世纪末,电子技术得到了飞速发展,电子设计自动化(EDA)技术,加
期刊
[摘要]随着3D GIS的不断发展,利用3D GIS技术管理矿产资源储量,分析矿产资源的空间分布,已成为矿产资源管理的必然趋势。主要介绍Micromine和MapGIS在辽宁省矿产资源储量管理中的应用。通过利用这两个软件,辽宁省矿产资源储量管理实现了从矿区范围到储量计算范围、从表层到深层、从二维到三维、从宏观到微观的储量管理体系,矿产资源储量管理水平上了一个新台阶。  [关键词]储量管理 Micr
期刊
[摘要]基于构件的软件开发是软件工程化的必然趋势。首先对构件技术简要介绍,然后对ERP系统进行分析,提炼系统功能的共性,研究将构件技术引入ERP系统的设计和实现,给出基于构件技术的ERP系统应用服务器端的设计。最后对工作进行总结,并指出今后的研究重点。  [关键词]ERP 构件 构件组装  中图分类号:TP315文献标识码:A 文章编号:1671-7597(2008)0810044-01    一
期刊
[摘要]设计采用单片机与FPGA开发系统实现数字示波器,阐述示波器的实现原理及过程,利用AD783做取样保持电路,对被测信号进行实时采样并保持,将采样信号送入FPGA,进行实施采样和等效采样,实现对信号的完整取样并还原波形,再由单片机处理,最后实现 LCD显示和键盘操作。对各功能模块、电路原理进行分析,实测表明系统实时采样频率和等效采样频率范围覆盖1KHz~100MHz,输入阻抗大于1MΩ。设计模
期刊