三层软件架构在web系统中的应用
作者:王英
来源:《硅谷》2013年第11
        软件架构在软件开发的整个过程中起着重要的指导作用。在软件体系架构中三层软件架构应用广泛。采用三层软件架构开发软件可以提高软件开发的质量和效率,提高系统的安全性以及系统或模块的复用。在Web应用系统的开发设计中大部分采用三层软件架构来开发,在系统的开发中不仅占有优势,在系统的后期优化中优势更加显著。
        关键词 软件架构;三层软件架构;web应用系统;接口
        中图分类号:TP311.52 文献标识码:A 文章编号:1671-7597201311-0000-00
        软件架构(software architecture)的概念目前没有统一的定义,其中卡内基梅隆大学软件研究所给出的软件架构的定义是软件架构是一系列相关的抽象模式,用于指导大型软件系统各个方面的设计。软件架构是一个系统的草图。它描述的对象是直接构成系统的抽象组件。各个组件之间的连接则明确和相对细致地描述组件之间的通讯。在实现阶段,这些抽象组件被细
化为实际的组件,比如具体某个类或者对象。在面向对象领域中,组件之间的连接通常用接口来实现。
        软件架构是沟通现实世界和计算机世界的一座桥梁。软件架构设计不仅仅是单纯的技术,也不是与客户需求无关,而是要应对客户需求的变更,提高软件的开发效率,降低维护成本,因此是一种面向业务到面向技术的转换。软件架构设计在软件开发的整个过程中起着重要的指导作用。
        1 三层软件架构
        在软件体系架构的设计中,分层式结构最常见,有三层和多层的架构,其中三层架构在软件的设计中应用比较广泛。三层架构中的三层主要是指表示层、业务逻辑层和数据访问层。
        1.1 表示层
        表示层也称为用户界面层(UI层),负责用户与整个系统的交互,位于整个系统的最上层,是用户对整个系统最直观的体验,一般用来接收用户的操作和显示数据。
        1.2 业务逻辑层
        业务逻辑层也称为领域层,它是整个系统的核心,它封装了核心的逻辑业务处理。它位于中间层,即系统的表示层和数据访问层之间。它将接收到的表示层传递过来的操作,按照特定的业务逻辑提取数据访问层中的数据,从而实现用户的操作,将结果显示在表示层。
        1.3 数据访问层
        数据访问层也称持久层,负责对数据库的访问。主要实现对数据库中的数据实现查询、修改、插入和删除操作,而这里的数据库是一个广义的概念,可以是任意一种数据库,也可以是文本文档文件或XML文件等。
        三层软件架构之所以应用广泛,首先是三层架构可以使不同的开发人员大部分的精力只关注于整个结构中的某一层,分工更加明确,可以提高软件开发的质量和效率;其次体现了软件开发的原则,即层内的高内聚,层间的低耦合,有利于系统的安全性;最后三层架构的关键技术是接口,接口的标准化有利于系统的扩展,系统中层的替换以及模块的复用。三层软件架构也有其缺陷,首先它降低了系统的性能,如果不采用分层式的架构,可以直接访问
数据库,而采用三层架构必须通过中间层来完成。其次有时会导致级联的修改。这种修改尤其体现在自上而下的方向。如果在表示层中需要增加一个功能,为保证其设计符合分层式结构,可能需要在相应的业务逻辑层和数据访问层中都增加相应的代码。最后因为在设计上体现三层架构,因此会增加一定的工作量,特别是代码量方面。
        对于软件的三层架构的理解我们可以举一个例子,例如我们日常生活中经常使用的手机,它可以分成手机的外壳(手机的前后面板),手机电路板,手机附属产品(如存储卡、耳机等等)等部分,三层软件架构的表示层可以比喻成手机的外壳,业务逻辑层可以比喻成手机的电路板,数据访问层可以比喻成手机的存储卡,一个采用三层软件架构软件的开发过程就相当于一部手机的生产过程,手机的外壳,手机的电路板和手机附属出产品可以各自独立的生产,但是如果它们最终想组合成一部好的手机,各个部分的生产又需要遵循一定的标准规范,那么一个采用三层软件架构的软件的开发也是如此,各个层的开发可以独立进行,但同时还需规范各个层间的接口,这样才能开发出实用有效的软件产品。
        2 三层软件架构在web中的应用
        随着网络技术的快速发展,特别是电子商务行业的蓬勃发展,web应用技术在众多的软
件开发中,特别是网站的开发中得到广泛的应用。在这种情况下对开发者提出的新的要求,要求设计开发出的软件具备开发成本低,维护费用少,程序的复用性高等特点。
        Web应用技术包括三个方面:第一个方面是用超文本技术(HTML)实现信息与信息的连接;第二个方面是使用统一资源定位技术(URL)实现全球信息的精准定位;第三个方面是使用新的应用层协议(HTTP)实现分布式的信息共享。Web应用系统是一种典型的分布式应用软件。Web应用中的每一次并发请求和信息交换都涉及到三个层面:即客户端、服务器端和传输交互数据的网络。Web应用系统必须要考虑到这三个层面,同时还需考虑到将这三个层面组织在一起形成一个整体的软件体系管理结构。Web应用系统中的客户端主要负责Web信息展现和客户端动态页面;Web应用系统中的服务器端主要负责实现Web动态请求功能;传输数据的网络主要实现路由和交换功能,该层面更多侧重于硬件的性能。从软件开发的角度看,Web应用系统更主要的还是针对客户端和服务器端两个层面。
        在具体的Web应用系统的软件设计中,大部分是采用三层软件架构来实现。如图1 web应用系统的两个层面与软件三层架构对应关系所示,其中客户端对应软件架构中的表示层,通过超文本技术(HTML)和客户端动态效果实现界面设计;服务器端对应软件架构中的业
务逻辑层和数据访问层负责系统中的Web动态请求、逻辑业务数据的处理以及对数据库的访问等。以一个在线网上商城系统应用软件设计为例,客户端主要面向的对象是浏览网页的用户,因此其主要责任是为用户提供一个便捷、友好的界面,为用户展现有效信息、美观的界面和适当的动态效果,如商品列表界面、商品详细信息描述界面等等,而要实现这些可以使用HTML标记语言、JavaScript脚本语言和CSS层叠样式表;服务器端的主要任务是对客户端的动态请求做出相应,如会员信息的修改、购物车功能、订单信息查询等等都需要服务器端按照一定的业务逻辑处理客户端获取的数据,并对这些处理的结果做出响应,如果需要对有效的信息进行适当存取的,则还需建立与数据库的访问接口。
        1 web应用系统的三个层面与软件三层架构对应关系
        Web应用系统中采用三层软件架构开发,在系统的开发中不仅占有优势,在系统的后期优化中优势更加显著,如,后期优化工作中的模块耦合性优化、系统运行速度和用户支持能力优化,对于没有采用分层软件架构开发的系统往往会因为在优化过程中担心方法调用的耦合性而放弃很多可以大幅度提醒性能的方式,而如果采用分层架构开发则会只需要进行组件内调整,不会影响其它组件。系统运行速度和用户支持能力优化都与数据库的存取相关,
采用分层架构开发的系统在优化数据库的存取时因采用的是统一的优化接口,因此一次优化可直接对多个模块起作用。
        3 总结
        三层软件架构在软件开发中应用广泛,关键在于采用三层软件架构开发软件可以使分工更加明确,可以提高软件开发的质量和效率;符合软件的开发原则,有利于系统的安全性,采用接口技术有利于系统和模块的复用。当然,人无完人,三层软件架构存在降低系统性能和级联修改的缺陷。随着电子商务和网络技术的快速发展,三层软件架构在Web应用系统的开发中得以体现。web应用系统的客户端和服务器端各自实现的功能独立,在系统开发中与三层架构中的三层相对应。客户端对应表示层,服务器端对应业务逻辑层和数据访问层。
        Web应用系统开发中采用三层架构,不仅在系统的开发中占有优势,在系统的后期优化中效率将更加明显。
        参考文献
        [1]温昱.软件架构设计[M].电子工业出版社,2012.
        [2]生活中常见的数据库应用王勇.系统架构设计师考试[M].电子工业出版社,2012.
        [3]程春蕊,刘万军.高内聚低耦合软件架构的构建》,计算机系统应用,20097.
        [4]陈超.深入理解三层软件架构[J].福建电脑,201011.
        [5]王湘文,陈建伦,陈纪铭.分层软件架构设计及其应用研究[J].福建电脑,20116.
        [6]余鋆,董文瑾.软件架构关键需求确定方法分析[J].科技创新导报,200935.