技术开发 频道

软件体系架构模式在J2EE中的应用(下)


  每个具体的EJBAction完成自己的具体的业物逻辑,如果处理数据对象,则使用的相应的实体对象(data module)。具体的层次调用过程,见下图:

(EJBAction业务逻辑)
 
3-2-2 Tier层
 
3-2-2-1 概述
 
  PetStore Layer的设计分为以下几层,最底层为操作系统和网络服务,然后是基于J2EE服务器提供的系统服务层,上面是framework,Component层,包括WebApplicationFrameWork,以及commons业务逻辑,工具类等组成。最上层才是具体的业务实现模块具体见下图:
(PetStore设计分层)
 
3-2-2-2 实现
 
Petstore主要开发了两层,其中业务核心层,主要有几部分:
 
·WAF (Web Application Framework)
·ApplicationControl 和Presentation (主要指JSP TagLib)
·Components(如各种实体对象如customer,Account,等)
·Business Logic Data各种常用的工具类
 
层的业务逻辑包括以下几个部分:
 
登录和注册,购物车模块,登录模块等。
 
  我们以WAF为例介绍业务共同层的作用, 开发者,可以基于这个框架,添加自己的代码和实现,下面红框内为WAF核心,如果增加新的业务功能只需增加相应的绿色部分。
 
(层的业务逻辑)
 
同时其他的components提供了对JMS,Mail等的处理。
 
4-1 外观模式(Facade)
 
  外观模式的意图就是为子系统中的一组接口提供一个一致的界面,Facade模式定义了一个高层接口,这个接口使得这一子系统更加容易使用。其实层模式的每层之间的经常使用Facade来进行封装成一致的接口供上层进行调用。如PetStore的EJB层的ECC就是Facade模式的应用。
 
public interface EJBClientController extends javax.ejb.EJBObject {
    public EventResponse processEvent(Event ev) throws EventException, RemoteException;
}
 
  J2EE核心模式的SessionFacade 模式定义了一类高层的业务组件,用于封装并集中较低层次业务组件之间的复杂交互。它为客户端提供单一接口,用于访问应用程序或应用程序子集的功能。它还把较低层次的业务组件彼此分离开来,从而使设计更具灵活性和可理解性。通过远程接口的细粒度访问是不可取的,因为这会增加网络通信量和滞后时间。多个细粒度调用会产生许多网络通信,而且会降低性能,因为远程调用的滞后时间很高。引入Session Facade会减少网络通信和滞后时间,因为对细粒度业务对象的所有访问都是本地的。见下图:
(J2EE核心模式的SessionFacade 模式)
 
4-2 中介模式 (Mediator)
 
  外观模式的意图就是用一个中介对象来封装一系列的对象交互。中介模式使各对象不需要显式地相互引用,从而使其耦合松散,而且可以独立地改变它们之间的交互。在层架构模式中有时会使用该设计模式,使层之间的通信仅知道中介者并且只与通信,而不是层直接调用其他系统。使用中介模式如下:
(中介模式)
 
总结
 
  本文介绍了软件体系架构模式的层模式,分析了它的结构,特点,实现,以及优缺点。然后介绍遵循层模式的Architectural cube理论,结合J2EE的体系架构特点,剖析层模式是怎样应用的。最后以PetStore为例, 简单阐述怎样应用该模式在实际J2EE系统之中。
0
相关文章