web系统分层架构设计

时间:2020-11-03 19:47:01 系统架构师 我要投稿

web系统分层架构设计

  企业中许多WEB信息管理系统同属于针对关系型数据库的,并且有相当一部分功能需求是重复的。比如组织结构管理、通知公告发布,甚至是访问权限控制等。出于对软件复用原则和开发效率等方面的考虑,可以采用相同的系统框架,再进行具有各自业务特点的功能开发,这样可以避免重复工作,保证项目进度。

  1 框架分析

  1.1 框架

  框架(Framework)是整个或部分系统的可重用设计,表现为一组抽象构件及构件实例间交互的方法;另一种定义认为,框架是可被应用开发者定制的应用骨架。前者是从应用方面而后者是从目的方面给出的定义。其具有以下的特点:

  1)它是一个功能类的集合,类之间可以相互协作,为业务子系统提供服务。

  2)它包含了具体类和抽象类,这些类定义了标准的接口、对象间的交互作用和系统的相关常量。

  3)为了利用、自定义或扩展框架的服务,通常需要框架的使用者去定义已存在的框架类的子类。

  4)框架中定义好的类只提供给用户自定义的类调用,而从不调用用户自己定义的类。

  框架可分为白盒(White-Box)与黑盒(Black-Box)两种框架。

  基于继承的框架被称为白盒框架。所谓白盒即具备可视性,被继承的父类的内部实现细节对子类而言都是可知的。利用白盒框架的应用开发者通过衍生子类或重写父类的成员方法来开发系统。子类的实现很大程度上依赖于父类的实现,这种依赖性限制了重用的灵活性和完全性。但解决这种局限性的方法可以是只继承抽象父类,也就是基类,因为抽象类基本上不提供具体的实现。白盒框架是一个程序骨架,而用户衍生出的子类是这个骨架上的附属品。

  基于对象构件组装的框架就是黑盒框架。应用开发者通过整理、组装对象来获得系统的实现。用户只须了解构件的外部接口,无须了解内部的具体实现。另外,组装比继承更为灵活,它能动态地改变,继承只是一个静态编译时的概念。

  在理想情况下,任何所需的功能都可通过组装已有的构件得到。事实上,可获得的构件远远不能满足需求,有时通过继承获得新的构件比利用已有构件组装新构件更容易,因此白盒和黑盒将同时应用于系统的开发中。不过白盒框架趋向于向黑盒框架发展,黑盒框架也是系统开发希望达到的理想目标。

  1.2 分层架构

  分层架构是一个层次结构,每一层为上层服务,并作为下层的客户。在一些分层系统中,除了一些精心挑选的输出函数外,内部的层只对相邻的层可见。这样的系统中,构件在一些层实现了虚拟机(对实现过程的不可见)。连接件通过决定层间如何交互的协议来定义、拓扑约束,包括对相邻层间交互的'约束。

  这种风格支持基于可增加抽象层的设计。允许将一个复杂问题分解成一个增量步骤序列的实现。由于每一层最多只影响两层,同时只要给相邻层提供相同的接口,允许每层用不同的方法实现,为软件复用提供了强大的支持。

  我们经常提到的三层架构就属于分层架构设计的一种。它是信息管理系统最为常见的设计模式。总体思想就是将整个业务应用划分为:数据访问层(DAL)、业务逻辑层(BLL)、用户界面层(UI)。层与层的职责没有重叠,上层只能依赖于下层。这样的系统,结构非常明确,可以很容易的用新的实现来替换原有层次的实现,大大增加了系统的可复用性,降低了后期的维护成本。

  2 实现目标

  鉴于目前遇到的需求基本都属于中低等规模的信息管理系统开发,综合考虑开发难度、可维护性、可扩展性等因素,开发一个介于白盒(类复用)与黑盒(功能复用)之间的基于分层架构设计模式的框架较为适宜。框架主要实现以下几个目标:

  1)实现类、组件、代码甚至设计的最大化重用。

  2)框架结构尽可能合理、简单,符合架构设计的单一职责原则和单向调用原则,即框架各层的职责单一,只能上层依赖于下层,不能上下层互相依赖。

  3)框架要有灵活的扩展性,可满足二次开发要求。但是在进行二次开发时,对框架只能扩展不能修改,即满足软件架构设计思想中的开放-关闭原则。

  4)框架具备一定的配置开发能力,部分通用的功能可适用大部分信息管理系统。并且在针对不同的存储设备时,通过修改配置而不需要修改代码就可以适应新的运行环境。

  以上是一种基于分层架构的WEB系统框架的分析、设计与实现的全过程。该框架层次分明、结构简单,对每层都有一个抽象,派生类强制实现规定的抽象方法,规范了编码过程,提高了框架的可维护性。根据信息管理系统的共同需求,提供了部分通用的框架功能。所以,不论在白盒框架部分还是在功能方面都具有一定的可复用性。

【web系统分层架构设计】相关文章:

1.Web信息集成系统网络架构

2.Web系统架构的性能优化

3.基于Web的MES系统安全架构设计及分析

4.系统架构设计模式大全

5.系统架构师知识:高可用系统设计

6.地籍管理系统架构设计

7.SSH架构档案管理系统设计

8.C/C架构移动学习系统设计