四、通用框架模型
基于对上述三种框架的分析,根据多位著名分析师的观点,得出一个可以在多种应用领域通用的框架模型,并给出一个特定应用软件领域的一个通用模型。
1、多应用软件领域通用框架模型
该模型是基于WEB的多层实现模型的框架,但不仅仅是多层模型。
它不是一个具体的实现了的框架,它是象J2EE这样的指导性的框架。它的固定不变的特征是:
架构模式(Architecture pattern)是B/S结构瘦客户端的多层模型;
参考模型(Reference model)提供声明性事务服务、远程通讯服务、安全性服务、多数据库访问功能、日志处理模块、WEB SERVICE接口等基本功能,它是由多种组件(JSP,SERVLET,EJB,POJO等)模块功能组成的;
映射:架构模式(Architecture pattern)和参考模型(Reference model)到参考架构(Reference Architecture)的映射就是多种决定架构的那些成熟的模式(MVC,依赖注入等)和远程方法调用等,以及AOP等编程方式。
参考架构(Reference Architecture)就是架构模式和参考模式加上映射方法的结果。
该通用模型满足下述原则:
采用JAVA组件来实现,OO的编程模型。
简单:在满足软件基本需求的基础上,尽可能的简化,例如采用POJO而不是EJB。
灵活:可以有选择的采用多种实现方法,如可选择各种现成的可用框架的实现,如STRUTS等。
模式:采用经过证明的成功的模式来保证组件及组件之间的交互是一种好的实现方式,如依赖注入等。
该框架可变的部分是:
它的实现由应用软件的具体需求从现有的实现方案中进行选择,或者是自行开发。比如说:MVC的实现方法可以采用现有的实现框架,如STRUTS,TAPESTRY等,也可以根据自己的需要开发出符合MVC模式的方案。
2、通用的分布式事务处理系统框架模型
针对分布式的基于WEB的分布式事务处理系统我们提出下面的通用框架模型。
它的固定不变的特征是:
架构模式(Architecture pattern)是B/S结构瘦客户端的多层模型;
参考模型(Reference model)是一种松散耦合的模型,采用AOP编程模型。提供声明性事务服务、远程通讯服务、安全性服务、多数据库访问功能、日志处理模块、WEB SERVICE接口等基本功能,该模型由多种组件(JSP,SERVLET,EJB,POJO)的模块功能组成。处理远程事务时业务逻辑采用EJB中的MDB(Message-Driven Bean)来实现异步通讯,因为分布式的事务处理系统需要用户等待的时间会超过他能忍受的时间,而且系统一旦在交易时发生意外情况,信息就会丢失,采用MDB可以减少用户在使用软件系统时等待的时间,他可以在提交请求之后,浏览其它的内容或离开,也可以在系统或服务器出现问题时将信息保存,等问题解决后重新进行交易的处理;
映射:架构模式(Architecture pattern)和参考模型(Reference model)到参考架构(Reference Architecture)的映射就是多种决定架构的那些成熟的模式(MVC,依赖注入等),普通对象之间的调用,普通对象到分布式组件的远程方法调用。
参考架构(Reference Architecture)就是架构模式和参考模式加上映射方法的结果。
一定是采用JAVA组件来实现,AOP,MDB的实现方式,和它们之间的交互方式,以及遵循的模式。
该通用模型应满足多应用软件领域通用框架模型中提到的原则。
该框架可变的部分是:
它的实现由应用软件的具体需求从现有的实现方案中进行选择,或者是自行开发。比如说:MVC的实现方法可以采用现有的实现框架,如STRUTS,TAPESTRY等,也可以根据自己的需要开发出符合MVC模式的方案。AOP模型可以采用目前现有的实现,如SPRING中的AOP模块。
五、讨论
本项目涉及的技术知识太多,每一个都可以进行很深入的讨论,因此有很多阐述很笼统,不能一一详述,但是从较高的视角,和综合的角度来看这些问题,会对软件系统的架构有更全面和准确的把握,避免陷入某个细节而忽略了整体架构,毕竟全局的考虑在软件架构设计中是最重要的。
注重和关注框架可以使我们在架构设计中事半功倍,使用经过验证的框架模型更能保证软件架构的质量和可重用性。
六、结论
通过对三种框架的分析,得出通用的框架模型,我们可以看到这种模型对应用开发架构的搭建有重要的指导意义,并可以在多种应用领域中应用该模型。对架构框架的争论是个综合的解决方案。