软件体系架构模式在J2EE中的应用(上)
【IT168 技术文档】
1-1 概述
层架构模式组织成一个层次结构,每一层为上层服务(Service Provider),同时也作为下层的客户端。在一些层次系统中,除了包含一些输出函数外,内部的层只对相邻的层可见。这样的系统中构件在一些层实现了虚拟机(在另一些层次系统中层是部分不透明的)机制。层的调用通过决定层间如何交互的协议来定义。这种风格支持基于可增加抽象层的设计。这样,允许将一个复杂问题分解成一个层堆栈的实现。由于每一层最多只影响两层,同时只要给相邻层提供接口,允许每层用不同的方法实现,因此为软件重用提供了强大的支持。
1-2 问题
层结构是最成熟的软件体系架构模式,它起源于早期的系统设计,由开始的函数调用,作为函数库,供其他程序进行调用。一般在系统设计时,由一系列高层模块和底层模块处理构成,并且高层的模块依赖于底层。因此为了完成系统的设计必须要考虑一下因素:
·源码的修改会影响整个系统,应该被限定在一个部件内部而不影响其他模块
·接口应当稳定,甚至要被规范化
·系统的架构应该灵活,可以更换
·系统的开发需要被划分为多个部分,比如团队开发或者异地开发
1-3 模式结构
从系统高层的观点来看设计方案比较简单,它把系统进行分为几个层次并且把它们叠加起来,最下面的抽象层称为第一层,它是系统基础。依次类推,把n层放在第n-1层上。其结构如下图:

(N层结构图)
1-4 非软件描述
层模式在现实生活中很常见。特别在中国的封建社会的等级森严的制度下,把人分为几个等级,其实就是分层,上层可以指示下层。不过现在有的企业管理制度,与这种管理理念相适应的管理体制是垂直的自上而下的泛官僚体制结构。其结构设置表现为自上而下的单向层级制,这种结构有利于政令的传达和执行,保证管理的效率,但是官僚特性也很明显。如下图:

(制度管理图)
层模式在现代物流也很常见,如下图的,在自行车在运输的过程,首先在自行车厂进行出厂,有人员进行打包,然后进行装运,最后再有相应的分销商,进行组装销售。

(自行车销售管理图)
1-5 优点与缺点
层架构模式是最常用的一种软件体系架构模式。从它的实现和结构图中,我们可以得出,该模式具有以下优点和缺点:
1-5-1 优点
·层次的复用性。如果每个层次有很好的抽象接口,那么它可以被其他环境复用
·支持基于抽象程度递增的系统设计,使设计者可以把一个复杂系统按递增的步骤进行分解,使系统更容易模块化
·支持功能增强,因为每一层至多和相邻的上下层交互,因此功能的改变最多影响相邻的上下层
·可替换性。因为独立的层次设计很容易被功能相同的模块替换
·但是在实际的项目中,该模式也有相应的不足
1-5-2 缺点
·低效率:分层结构通常要比单层结构的效率低。因为有时高层过分依赖底层的服务,因此必须穿过许多中间层进行数据的传送,甚至多次。
·改变行为的连锁反映
2-1 J2EE层架构模式的背景
也许下图大家都比较熟悉,它介绍了软件从两层体系架构方式到三层的架构模式。

(两层体系架构到三层体系架构模式图)
由于2层的架构方式,存在以下几点缺点:
·软件部署开销很大
·每个客户端数据库驱动都需要进行安装和设置,一但程序发生改变,就需要重新部署,这意味巨大的开销
·改变数据结构的开销很大
·客户端应用程序一般通过JDBC,ODBC,ADO等直接访问数据库,这表明客户程序直接与底层数据结构交互。如果改变数据结构来处理新的过程,就需要重新部署每个客户端。
·改变数据库的类型的开销很大
·由于客户端直接使用特定数据库的API,和特定的存输过程,触发器等,因此数据库类型的改变,会引起很多的修改。
但是通过把业务逻辑从存储过程和本地的业务逻辑进行分离,独立为一层,这样就是应用层架构模式最经典的应用之一。
0
相关文章