NET平台的分层架构设计研究

时间:2022-09-05 09:50:43

NET平台的分层架构设计研究

摘要: 随着互联网技术的不断发展,传统的软件设计方法已无法继续满足用户的需求。软件设计逐渐开始将重心转移到系统架构的设计上来,耦合度低且具有良好可维护性及扩展性的系统备受青睐。文章以图书馆管理系统为例,结合分层架构中常用的设计模式对.NET平台上的分层架构进行深入的研究和探讨。

关键词: 分层架构;架构设计模型;分布式架构

中图分类号:TP39 文献标识码:A 文章编号:1006-4311(2012)19-0236-02

1 分层架构

“在传统的系统设计中,通常对数据库的访问、业务逻辑及可视元素等代码混编,这样不但代码风格不美观,所写的程序更是可读性差,耦合度高,不容易维护,灵活性差,不容易扩展,更谈不上复用。为了解决这个问题,有人提出了N层架构思想,即将各个功能块明确分开,放置在独立的层中,各层之间通过协作来完成整体功能。所以,分层架构可以说是以牺牲系统性能换取可维护性的手段。

2 分层架构设计的关键性原则

2.1 分层架构逐渐调用原则及单向调用原则 约定将N层架构的各层依次编号为1、2、…、K、…、N-1、N,其中层的编号越大,则越处在上层。那么,架构设计应该满足以下两个原则:

①第K(1

其中第一个原则,保证了依赖的逐层性,及整个架构的依赖是逐层向下的,而不能跨层依赖。第一个原则,则保证了依赖的单向性,及只能上层依赖底层,而不能底层反过来依赖上层[1]。

2.2 单一职责原则 就一个类而言,应该仅有一个引起它变化的原因。软件设计工作的关键在于发现职责并把那些职责相互分离。如果设计者能够想到多于一个的动机去改变一个类,那么这个类就具有多于一个的职责,一个类承担的职责过多,就等于把这些职责耦合在一起,一个职责的变化可能会削弱或者抑制这个类完成其他职责的能力。这种耦合会导致脆弱的设计,当变化发生是,设计会遭受到意想不到的破坏[2]。

2.3 开放-封闭原则 开放-封闭原则,是说软件实体(类、模块、函数等等)应该可以扩展(Open for extension),但是不可修改(Closed for modification)[3]。开放-封闭原则是面向对象设计的核心所在。遵循这个原则可以带来面向对象技术所声称的巨大好处,也就是可维护、可扩展、可复用、灵活性好。具体到N层架构中,可以描述为:当K-1层有了一个新的具体实现时,它应该可以在不修改K层的情况下,与K层无缝连接,顺利交互。

2.4 依赖倒转原则 依赖倒转原则:A.高层模块不应该依赖底层模块。两个都应该依赖抽象;B.抽象不应该依赖细节,细节应该依赖抽象[4]。如果不管高层模块还是底层模块都依赖于抽象,具体一点就是借口或抽象类,只要接口是稳定的,那么任何一个的更改都不用担心其他收到影响,这就使得无论高层模块还是底层模块都可以很容易地被复用。

3 图书馆管理系统的架构设计

3.1 架构设计的选择

3.1.1 表示层设计及对应框架的选择原则 在系统架构设计的框架选择方向,比较稳妥的方法是选择主流的、已得到证明了的Web应用框架,而不是开发者自行设计和开发新的框架。在本项目中,选择比较成熟并广为人知的Apache Struts框架。

3.1.2 业务逻辑层中的具体技术实现 本项目系统是一个典型的不需要远程访问功能支持的普通Web应用系统,因此选用普通的JavaBean组件技术,并充分利用Spring框架中IoC(Inversion of Control)和AOP(Aspect-Oriented Programming)的特性,将是实现业务逻辑层的更好选择。

3.1.3 持久层设计 由于需要利用关系型数据库实现项目数据的持久化,但在目前的应用系统中可以选择以下形式的持久层技术来加以实现。

①标准的JDBC技术。这是最为灵活和通用的实现方法和技术,然而低级、复杂的JDBC API难以使用,而且质量差的JDBC代码很难运转良好和满足企业级项目数据访问的要求。

②EJB的实体Bean(EJB Entity Beans)。J2EE平台中的容器管理持久化技术(Container-Managed Persistence,CMP)形式的实体组件(Entity Bean)是一种分离数据访问代码和实现O/R Mapping功能的重量级解决方案,它是以应用服务器为中心的方法,并受到EJB容器的约束。

③轻量级的O/R Mapping框架。一个对象关系映射(O/R Mapping)框架采用以面向对象为中心的方法实现应用系统中数据的持久化,一个以对象为中心的应用是易于开发并具有高度的可移植性的。本项目选用功能比较强大的Hibernate O/R Mapping框架,主要是基于Hibernate框架的技术成熟性并广为人知,这将有利于组建满足项目技术要求的开发团队。

3.2 系统的层次划分 因此,本系统的整体架构设计由DWR+Struts+Spring+Hibernate框架构成,同时整个系统被分为5层——表示层、处理层、服务层、数据访问层和数据层。

3.2.1 表示层设计 经过与客户的交流后,对客户的需求进行分析,然后将程序的使用者划分成不同的类,为不同类别的用户提供相应的Web服务的调用接口界面。Web服务的调用对用户来说是完全透明的,用户只需根据界面提供的接口和功能说明提供相应的参数即可,Web服务执行结束后,结果将自动返回。由JSP,HTML等技术实现,通过浏览器向用户显示,并通过对服务层各服务的调用来实现其相应功能。

上一篇:安全智能存储卡(Secure Micro SDCard)研发与应... 下一篇:基于霍尔三维结构的高校科技成果推广转化系统...