文档详情

J2EE分布式系统框架设.docx

发布:2017-08-04约6.11千字共5页下载文档
文本预览下载声明
一,导言框架设计(Framework Design)是系统设计的重要组成部分,一个设计优秀的框架是一个可扩展和可改变(迁移)系统的基础。本文针对常见J2EE分布式的信息系统(特别是B/S形式的系统),提出作者在框架设计上的观点和思路。(一)问题和解决方法目前应用J2EE技术构建信息系统的需求越来越复杂,开发周期越来越紧迫,同时对系统的稳定性、扩展性和可维护性要求也越来越高。那么如何满足客户对系统要求,加快我们的开发呢?信息系统需要一个持久化的存储设备(如:数据库)中存放和取回信息数据。当存储设备改变时,我们如何使系统支持这个改变,而不用重写我们的程序代码呢?已有的代码能不能在新的系统上重用呢?类似问题,给我们系统设计带来很大的挑战。一个有效的解决方法是把信息业务信息按照应用功能模块拆分开:业务逻辑与数据库服务器分开,用户界面与业务逻辑分开。辟此相对独立,任一方任何改变都不会影响对方。这就是我们经常提到的三层概念。*表示层(Presentation)*业务逻辑层(Business Logic)*数据存储层(Data)表示层负责提供用户界面,业务逻辑层负责实现业务逻辑,数据存储层负责业务逻辑层中所有数据的持久的存储。业务逻辑层在三层模型中具有很好的伸缩性,设计者往往根据系统容量、分发、部署等等情况再一步把业务逻辑层细分,从而产生了多层。这就是所谓n层体系结构。所以业务逻辑层也是我们系统设计中最重要的一块。引入三层模型后,我们就可以针对这三层的特点定义出一种可重用的、可扩展的类集合,它通过标准的API来先外提供服务。这些类集合的划分和定义过程就是我们所要阐述的框架设计。(二)框架定义及特点什么是框架(framework)?框架可以定义为一组关系服务的可扩展、可重用的子系统。常见的软件框架有:MFC、VCL、JDK等等。其具有以下的特点。*它是一个功能类的集合,类之间可以相互协作,为业务逻辑子系统提供服务。*它包含了具体类和抽象类,这些类定义了标准的接口、对象间的交互作用和系统的相关常量。抽象类,可以包含抽象和具体的方法。*为了利用、自定义或扩展框架的服务,通常需要框架的使用者去定义已存在的框架类的子类。*框架中定义好的类只提供给用户自定义的类调用,而从不调用用户自己定义的类。二,框架设计对于一个分布式信息系统,我们通过上面的讨论,引入了三层的设计模型,现在就可以在这个模型上进行系统的框架设计了。但是,在开始设计之前先明确一下框架设计的目标。根据系统要求和框架定义,我们的目标为:*类(组件、代码)最大化的重用。*框架结构尽可能合理、简单和明了。*框架要有灵活扩展性。满足用户的二次开发要求。*框架要安全、稳定、高效率,可维护,可升级。*框架中子系统(包)之间不应该存在双向性依存关系。分布式信息系统三层设计模型中系统类的类型(Classes-Type)体系结构图如下所示:图(一)所以此框架设计为:把分布式信息系统的框架总体划分为四个主体包,分别为:表示层的用户界面包(ui),业务逻辑层的业务对象包(bs),数据持久层的数据持久包(ps),系统资源层的通用实用包(su),结合公司自己的命名规范,具体的UML框架图可为如下所示:?图(二)其中,“ProjectName”为信息系统项目的立项英文命名,如:国有资产管理系统,“ProjectName”为“sams”;“CompanyName”为公司的英文简称,如:翱拓系统集成,“CompanyName”为“auto”。“ui”----用户界面包(User Interface)。“bs”----业务逻辑包(Business Session)。“ps”----数据持久存储包(Persistence Store)。“su”----系统通用实用包(System Utility)。下面将结合J2EE体系结构分别详细讨论各层包的框架实现问题。(一)通用系统资源层框架设计通用系统资源层框架设计,从我们上面定义好框架来看就是系统通用包su(System Utility)的设计。从图(二)可以看出,ui包、bs包和ps包都是从su包中调用接口,su包给它们提供服务。所以本层框架的设计是系统能否实现类(组件)重用的基础,是系统能否满足可靠稳定、高效率和可维护的关键。既然是通用包,那么它具体提供哪些服务(或工具)呢?我们知道J2EE体系结构中也提供了许多标准的服务,如:JMS、EJB、JTA等等。那么su包是否也应该提供类似的服务呢?这些问题都没有统一的答案,这主要看项目系统分析和设计人员根据项目本身的特点和需求,应用什么样的技术和解决问题所运用什么样的设计思想和设计模式等因素有关。值得一提的是,“框架是骨架,设计模式是肉”。设计模式思想影响框架的构成,一个框架中应用合适的设计模式来实现,才是框架精华的所在。在这一层,
显示全部
相似文档