论文部分内容阅读
摘要:本文对C/S、B/S两种软件体系结构进行了分析比较,论述了其在软件开发中的优势和劣势,认为C/S、B/S混合体系结构更适用于大型复杂系统的开发。最后,通过对其在数字化教学系统中的应用,进一步剖析了C/S、B/S混合体系结构的特点,及其在特定领域中的开发模式。
关键词:软件体系结构;CS与BS混合结构;数字化教学系统
中图分类号:TP311文献标识码:A文章编号:1009-3044(2007)18-31742-03
C/S and B/S Hybrid Software Architecture and Application in Digital Teaching System
ZHANG Wei
(The School of Computer Science and Technology,Soochow University,Suzhou 215006,China)
Abstract:In this paper, made the analysis and comparison about the C/S and B/S software architecture, discussed their advantages and disadvantages in software development. And considered that C/S and B/S Hybrid Architecture is more applicable to a large and complex software system development. Finally, by the digital teaching systems, made the further analysis on the characteristics of C/S and B/S Hybrid Architecture, and its development model in specific domain.
Key words:Software Architecture;C/S and B/S Hybrid Architecture;Digital Teaching System
1 引言
体系结构(Architecture)是软件系统的高层抽象,其描述了软件系统的结构和行为模型,标识了主要的系统构件、构件间的交互以及构件和连接件相互关联的约束与配置关系。软件体系结构的设计是高于程序设计的上层建筑[1],体系结构直接关系着软件系统的成败。同时,一个合适的体系结构,是控制软件复杂性、提高软件系统质量、支持软件开发和复用的重要手段[2]。近年来,随着大型、超大型软件系统的不断出现,特别是异构系统的出现,使得传统的单一体系结构越来越不能适应实际需求,往往需要对不同的子系统选择不同的体系结构。
C/S结构和B/S结构是两种常见的体系结构风格,现行的很多软件系统都是架构在这两种风格之上的。然而由于这两种风格自身的特点,在某些特定的领域下,纯粹的C/S或B/S都不能完全适应需求,于是,C/S、B/S混合软件体系结构就应运而生了。
2 基于C/S与B/S体系结构的研究
2.1C/S体系结构
C/S(Client/Server)结构,即大家熟知的客户机和服务器结构,是基于资源不对等性,为实现共享而发展起来的,其发展成熟于上世纪八九十年代。通过它可以充分利用两端硬件环境的优势,将任务合理分配到Client端和Server端来实现,降低了系统的开销。
从开发角度看,C/S模型具有强大的数据操作和事务处理能力,且开发模型简单,易于人们理解和接受。系统的客户应用程序和服务器构件分别运行在不同的计算机上,易于扩充和压缩。在C/S结构中,各功能构件充分隔离,客户应用程序的开发集中于数据的查询浏览,而数据库服务器的开发则集中于数据的管理,分工具体,且利于系统的安全性。由于客户端与服务器的直接相连,因此实时性较好。客户操作界面设计有针对性,可满足客户个性化的业务要求。
然而,C/S 结构的缺点也同样明显。第一,开发成本高,客户端程序设计复杂,用户界面风格不统一,不易推广。第二,兼容性差,对于不同的开发工具,相互之间很难兼容,具有较大的局限性。若移植到不同平台几乎需要重新构建系统,维护和升级不便。第三,对于已存在的C/S系统,很难将新技术应用于其中[3]。另外,传统的C/S结构是单一的两层结构,只对开发一级进行开放,在特定应用中无论是Client端还是Server端都还需要具体的软件或平台支持。面对技术和产品的不断更新换代,已经很难适应大型开放系统的需要了。
2.2 B/S体系结构
B/S(Browser/Server)结构即浏览器和服务器结构,它是随着Internet技术的兴起,继承发展于C/S结构的一种改进结构。其主要是利用不断成熟的WWW浏览器技术,结合浏览器的多种脚本语言,用通用浏览器就实现了原来需要复杂的专用软件才能实现的强大功能。在这种结构下,大部分主要业务逻辑在服务器端(Server)实现,少量在前端(Browser)实现,而用户工作界面是通过网页浏览器来实现,形成所谓三层结构。这种结构的好处是,系统安装和维护全在服务端解决。用户在使用系统时,仅需要一个浏览器即可运行全部模块,真正达到了“零客户端”,大大方便了系统的开发、部署和维护。
正如双刃剑一样,B/S结构同样存在三大硬伤。第一,没有集成有效的数据库处理功能,过度依赖服务端,数据查询等响应速度比较慢。而且数据提交一般以页面为单位,数据的动态交互性不强[3]。第二,过于开放,安全性难以保证。第三,开发模式过于千篇一律,造成系统功能弱化,不能适应特定业务领域的特殊功能需求。
不过从目前技术水平看,基于B/S的网络应用是比较成熟的,特别是在JAVA这样的跨平台语言出现之后,B/S架构在企业级应用中得到相当广泛应用。
3 C/S与B/S混合软件体系结构
通过上面的分析,我们知道,传统的C/S体系结构并非一无是处,而新兴的B/S体系结构也不是十全十美,那能不能将他们结合起来,优势互补呢?答案是肯定的,那就是C/S与B/S混合软件体系结构。
C/S与B/S混合软件体系结构是一种典型的异构体系结构[4]。C/S与B/S混合体系结构的特点是对大型系统的不同子应用采用不同体系结构的优点,它是一种比较适用于特定领域的软件体系结构风格[5]。
在大型异构系统中,针对不同子模块的特点,其业务特点和性能要求是不尽相同的。对于一些核心的模块,尤其是一些对安全性和系统性能要求较高的模块,可以采用C/S结构;而对一些普通的浏览查询功能,以及远程访问则可采用B/S结构,提高的开放性、通用性和简易性。在这样的体系结构下,系统内实际并不存在真正的零客户端,而是大量可配置的瘦客户端。
从下表1中,可以比较单一C/S或B/S结构以及混合软件体系结构的特点,我们认为,在特定业务领域应用恰当的情况下,C/S与B/S混合体系结构可以表现出比较优良的实际性能。
表1 C/S或B/S以及混合软件体系结构性能对照表
4 基于C/S与B/S混合软件体系结构的数字化教学系统的设计
4.1 系统概述
数字化教学系统是从上世纪90年代在国内出现并兴起的教学辅助系统。它早期一般是基于C/S结构的,特点是便于教师对教学过程进行管理,但缺点在于不灵活,软件设计复杂,通用性差,可用资源单一,且仅局限于局域网中。近年来,在提倡多媒体教学、自主学习的风潮下,加之网络资源的日益丰富[6],远程教学的方兴未艾,传统的教学系统越来越显得力不从心。需要我们采用全新的体系结构设计决策方法[7]来构建新的系统。
基于现代教学的新发展,本系统采用了C/S、B/S混合体系结构。系统的核心是主服务器(在比较庞大的系统里可以用服务器集群或网格代替)和主控计算机。主服务器用于储存数字化教材及流媒体课件,并提供网络服务。主控计算机控制教学过程,并监控局域网计算机和外网远程计算机访问服务器资源。
从模块划分上看,整个系统核心部分分为控制模块和数据模块。控制模块采用变异的C/S结构,而数据模块又分为内部数据模块和外部数据模块,他们都采用B/S结构,不同的是外部数据模块对安全认证的要求更高。基于这样的C/S、B/S混合架构,既可以最大的发挥系统网络资源的优势,又能最大限度地使教学在受控状态下进行,并保证了安全性,满足了现代数字化教学的需要。
4.2系统拓扑结构
系统整体是一种混合的体系结构风格,但是其中各个主模块有自己特定的内部风格结构。具体拓扑结构如下图1所示。
4.3系统控制模型
本系统控制模型是基于一种变异的C/S风格。其之所以不同于传统C/S,是因为在这里,“服务器”的角色由资源服务器和主控计算机共同组成,并以控制计算机为主导,而“客户机”也并非传统的胖客户端(Fat Client),而是一种介于胖客户端和瘦客户端(Sing Client)之间的智能客户端(Smart Client)。
主控计算机的主要任务是控制其他所有学生计算机,它通过和学生机的连接,对学生机进行使用上的控制;通过和资源服务器的连接,控制服务器各种服务的开放和管理。实际上,支持控制模型的软件的服务端安装在主控计算机和资源服务器上,但控制机是主动的,服务器既可以是主动的也可以是被动受控制的;而客户端安装在学生计算机上,是被动的。但是,只有控制计算机上的控制程序运行在前台,其他计算机上的控制程序都运行在后台,对用户是透明的。这种透明的运行模式大大方便了对客户机的管理。
图1 系统拓扑结构简图
之所以采用这种控制模型,是为了适应教育领域的特殊需求。在教学系统中,需要使整个教学过程在可控状态下完成。但传统的C/S结构中胖客户端由于其先天缺陷又不能很好的适应这种要求。因此,我们在学生计算机后台运行一个轻量级的客户端程序,该客户端只是程序的基本框架,它装载各应用模块,承担受控操作,也可以在控制端的要求下自动从服务器更新和部署新的组件和模块。所以我们说,本系统中的“客户机” 借鉴瘦客户端应用程序的可管理性优势,并结合以胖客户端应用程序的优点,是一种革除了劣势的智能客户端。
4.4系统数据模型
本系统的数据模型是一种典型的B/S风格。但是分为局域网内的B/S和面向Internet的B/S。资源服务器提供各种必要的服务,内外网用户通过WEB浏览器进行资源访问。
在资源服务器服务开放的情况下,客户机实际上只需要一些诸如网络浏览器、媒体播放器即可。在局域网中,学生计算机对开放资源的访问是自由的,不受限制的。但是对于来自Internet的访问,则必须通过必要的安全认证。
另外,系统提供了网络服务质量(Qos)的保证,尽可能的保证流媒体等新兴网络应用的需求[8]。
4.5系统安全策略
本系统由于采用了C/S和B/S混合的体系结构,所以在安全策略上兼具两者的特点。
首先,对于使用本系统的用户采用了分级权限认证机制。具体来说,分为超级管理员、系统管理员、数据库管理员、教师、学生、匿名用户。除超级管理员外,其他都是受限业务角色。其中,系统管理员和数据库管理员可以在服务器和控制计算机上对系统进行设定、管理和配置,教师用户可以主控计算机上对授课过程进行管理,或对服务器资源进行管理,学生用户只能在局域网学生计算机上访问开放的资源或参与各种课程和活动。匿名用户针对Internet用户,只能进行有限的浏览。分级权限机制是由域服务器管理的,对登录系统的用户而言,只要在Windows下登录了操作系统,实际上就已经在域服务器进行了注册和认证,并根据自身权限,由后台程序进行了设置。这点类似于大多数C/S系统。
B/S的架构使本系统在浏览器的支持下提供网络安全性基础结构,以便使不同的应用程序(页面)能够分配到或多或少的权限,这样,它们就可以围绕状态(如 Cookies)执行不同的任务,就可以承载组件和执行脚本。IE 浏览器通过不同的区域、受信任站点、分级等实现了这些功能。
由于本系统连接Internet,所以在内外网间采用硬件防火墙隔离,有效增加了系统的安全级别。
5 总结
类似于数字化教学系统这样的大型软件系统在现实需求中是比较常见的,通过本文我们不难发现,CS与BS混合软件体系只要能找准系统的契合点,可以使我们的软件系统更加简洁实用,在具备优良的系统性能的同时兼顾了系统的鲁棒性和扩展性,同时,能够较好的控制开发成本。因此,这样混合异构的体系结构不失为开发大型系统的一种选择。
参考文献:
[1]Kruchten P,Obbink H,Stafford J,Special issue on software architecture [J].IEEE Software,2006.23(2): 22-30.
[2]梅宏,申峻嵘,软件体系结构研究进展[J].软件学报,2006,17 (6):1257-1275.
[3]张友生,陈松乔.CS与BS混合软件体系结构模型[J].计算机工程与应用,2002(23):138-140.
[4]张友生,钱盛友,异构软件体系结构的设计[J].计算机工程与应用,2003(22):126-128.
[5]张广泉.软件体系结构的特点与研究进展[J].重庆师范学院学报,2002(4).
[6]刘贵富,秦艳友,数字化校园中网络教学资源的合理配置[J].情报杂志,2005(12).
[7]Tyree J,Akerman A. Architecture decisions: Demystifying architecture [J].IEEE Software, 2005,22(2):19,27.
[8]杨鹏,吴家皋.网络服务体系结构及其形式化模型的研究[J].计算机研究与发展,2005.42(7):1115-1122.
[8]何详,吴庆宪.基于CS与BS模式的远程控制实验系统[J].光电与控制,2005(10).
注:本文中所涉及到的图表、注解、公式等内容请以PDF格式阅读原文。
关键词:软件体系结构;CS与BS混合结构;数字化教学系统
中图分类号:TP311文献标识码:A文章编号:1009-3044(2007)18-31742-03
C/S and B/S Hybrid Software Architecture and Application in Digital Teaching System
ZHANG Wei
(The School of Computer Science and Technology,Soochow University,Suzhou 215006,China)
Abstract:In this paper, made the analysis and comparison about the C/S and B/S software architecture, discussed their advantages and disadvantages in software development. And considered that C/S and B/S Hybrid Architecture is more applicable to a large and complex software system development. Finally, by the digital teaching systems, made the further analysis on the characteristics of C/S and B/S Hybrid Architecture, and its development model in specific domain.
Key words:Software Architecture;C/S and B/S Hybrid Architecture;Digital Teaching System
1 引言
体系结构(Architecture)是软件系统的高层抽象,其描述了软件系统的结构和行为模型,标识了主要的系统构件、构件间的交互以及构件和连接件相互关联的约束与配置关系。软件体系结构的设计是高于程序设计的上层建筑[1],体系结构直接关系着软件系统的成败。同时,一个合适的体系结构,是控制软件复杂性、提高软件系统质量、支持软件开发和复用的重要手段[2]。近年来,随着大型、超大型软件系统的不断出现,特别是异构系统的出现,使得传统的单一体系结构越来越不能适应实际需求,往往需要对不同的子系统选择不同的体系结构。
C/S结构和B/S结构是两种常见的体系结构风格,现行的很多软件系统都是架构在这两种风格之上的。然而由于这两种风格自身的特点,在某些特定的领域下,纯粹的C/S或B/S都不能完全适应需求,于是,C/S、B/S混合软件体系结构就应运而生了。
2 基于C/S与B/S体系结构的研究
2.1C/S体系结构
C/S(Client/Server)结构,即大家熟知的客户机和服务器结构,是基于资源不对等性,为实现共享而发展起来的,其发展成熟于上世纪八九十年代。通过它可以充分利用两端硬件环境的优势,将任务合理分配到Client端和Server端来实现,降低了系统的开销。
从开发角度看,C/S模型具有强大的数据操作和事务处理能力,且开发模型简单,易于人们理解和接受。系统的客户应用程序和服务器构件分别运行在不同的计算机上,易于扩充和压缩。在C/S结构中,各功能构件充分隔离,客户应用程序的开发集中于数据的查询浏览,而数据库服务器的开发则集中于数据的管理,分工具体,且利于系统的安全性。由于客户端与服务器的直接相连,因此实时性较好。客户操作界面设计有针对性,可满足客户个性化的业务要求。
然而,C/S 结构的缺点也同样明显。第一,开发成本高,客户端程序设计复杂,用户界面风格不统一,不易推广。第二,兼容性差,对于不同的开发工具,相互之间很难兼容,具有较大的局限性。若移植到不同平台几乎需要重新构建系统,维护和升级不便。第三,对于已存在的C/S系统,很难将新技术应用于其中[3]。另外,传统的C/S结构是单一的两层结构,只对开发一级进行开放,在特定应用中无论是Client端还是Server端都还需要具体的软件或平台支持。面对技术和产品的不断更新换代,已经很难适应大型开放系统的需要了。
2.2 B/S体系结构
B/S(Browser/Server)结构即浏览器和服务器结构,它是随着Internet技术的兴起,继承发展于C/S结构的一种改进结构。其主要是利用不断成熟的WWW浏览器技术,结合浏览器的多种脚本语言,用通用浏览器就实现了原来需要复杂的专用软件才能实现的强大功能。在这种结构下,大部分主要业务逻辑在服务器端(Server)实现,少量在前端(Browser)实现,而用户工作界面是通过网页浏览器来实现,形成所谓三层结构。这种结构的好处是,系统安装和维护全在服务端解决。用户在使用系统时,仅需要一个浏览器即可运行全部模块,真正达到了“零客户端”,大大方便了系统的开发、部署和维护。
正如双刃剑一样,B/S结构同样存在三大硬伤。第一,没有集成有效的数据库处理功能,过度依赖服务端,数据查询等响应速度比较慢。而且数据提交一般以页面为单位,数据的动态交互性不强[3]。第二,过于开放,安全性难以保证。第三,开发模式过于千篇一律,造成系统功能弱化,不能适应特定业务领域的特殊功能需求。
不过从目前技术水平看,基于B/S的网络应用是比较成熟的,特别是在JAVA这样的跨平台语言出现之后,B/S架构在企业级应用中得到相当广泛应用。
3 C/S与B/S混合软件体系结构
通过上面的分析,我们知道,传统的C/S体系结构并非一无是处,而新兴的B/S体系结构也不是十全十美,那能不能将他们结合起来,优势互补呢?答案是肯定的,那就是C/S与B/S混合软件体系结构。
C/S与B/S混合软件体系结构是一种典型的异构体系结构[4]。C/S与B/S混合体系结构的特点是对大型系统的不同子应用采用不同体系结构的优点,它是一种比较适用于特定领域的软件体系结构风格[5]。
在大型异构系统中,针对不同子模块的特点,其业务特点和性能要求是不尽相同的。对于一些核心的模块,尤其是一些对安全性和系统性能要求较高的模块,可以采用C/S结构;而对一些普通的浏览查询功能,以及远程访问则可采用B/S结构,提高的开放性、通用性和简易性。在这样的体系结构下,系统内实际并不存在真正的零客户端,而是大量可配置的瘦客户端。
从下表1中,可以比较单一C/S或B/S结构以及混合软件体系结构的特点,我们认为,在特定业务领域应用恰当的情况下,C/S与B/S混合体系结构可以表现出比较优良的实际性能。
表1 C/S或B/S以及混合软件体系结构性能对照表
4 基于C/S与B/S混合软件体系结构的数字化教学系统的设计
4.1 系统概述
数字化教学系统是从上世纪90年代在国内出现并兴起的教学辅助系统。它早期一般是基于C/S结构的,特点是便于教师对教学过程进行管理,但缺点在于不灵活,软件设计复杂,通用性差,可用资源单一,且仅局限于局域网中。近年来,在提倡多媒体教学、自主学习的风潮下,加之网络资源的日益丰富[6],远程教学的方兴未艾,传统的教学系统越来越显得力不从心。需要我们采用全新的体系结构设计决策方法[7]来构建新的系统。
基于现代教学的新发展,本系统采用了C/S、B/S混合体系结构。系统的核心是主服务器(在比较庞大的系统里可以用服务器集群或网格代替)和主控计算机。主服务器用于储存数字化教材及流媒体课件,并提供网络服务。主控计算机控制教学过程,并监控局域网计算机和外网远程计算机访问服务器资源。
从模块划分上看,整个系统核心部分分为控制模块和数据模块。控制模块采用变异的C/S结构,而数据模块又分为内部数据模块和外部数据模块,他们都采用B/S结构,不同的是外部数据模块对安全认证的要求更高。基于这样的C/S、B/S混合架构,既可以最大的发挥系统网络资源的优势,又能最大限度地使教学在受控状态下进行,并保证了安全性,满足了现代数字化教学的需要。
4.2系统拓扑结构
系统整体是一种混合的体系结构风格,但是其中各个主模块有自己特定的内部风格结构。具体拓扑结构如下图1所示。
4.3系统控制模型
本系统控制模型是基于一种变异的C/S风格。其之所以不同于传统C/S,是因为在这里,“服务器”的角色由资源服务器和主控计算机共同组成,并以控制计算机为主导,而“客户机”也并非传统的胖客户端(Fat Client),而是一种介于胖客户端和瘦客户端(Sing Client)之间的智能客户端(Smart Client)。
主控计算机的主要任务是控制其他所有学生计算机,它通过和学生机的连接,对学生机进行使用上的控制;通过和资源服务器的连接,控制服务器各种服务的开放和管理。实际上,支持控制模型的软件的服务端安装在主控计算机和资源服务器上,但控制机是主动的,服务器既可以是主动的也可以是被动受控制的;而客户端安装在学生计算机上,是被动的。但是,只有控制计算机上的控制程序运行在前台,其他计算机上的控制程序都运行在后台,对用户是透明的。这种透明的运行模式大大方便了对客户机的管理。
图1 系统拓扑结构简图
之所以采用这种控制模型,是为了适应教育领域的特殊需求。在教学系统中,需要使整个教学过程在可控状态下完成。但传统的C/S结构中胖客户端由于其先天缺陷又不能很好的适应这种要求。因此,我们在学生计算机后台运行一个轻量级的客户端程序,该客户端只是程序的基本框架,它装载各应用模块,承担受控操作,也可以在控制端的要求下自动从服务器更新和部署新的组件和模块。所以我们说,本系统中的“客户机” 借鉴瘦客户端应用程序的可管理性优势,并结合以胖客户端应用程序的优点,是一种革除了劣势的智能客户端。
4.4系统数据模型
本系统的数据模型是一种典型的B/S风格。但是分为局域网内的B/S和面向Internet的B/S。资源服务器提供各种必要的服务,内外网用户通过WEB浏览器进行资源访问。
在资源服务器服务开放的情况下,客户机实际上只需要一些诸如网络浏览器、媒体播放器即可。在局域网中,学生计算机对开放资源的访问是自由的,不受限制的。但是对于来自Internet的访问,则必须通过必要的安全认证。
另外,系统提供了网络服务质量(Qos)的保证,尽可能的保证流媒体等新兴网络应用的需求[8]。
4.5系统安全策略
本系统由于采用了C/S和B/S混合的体系结构,所以在安全策略上兼具两者的特点。
首先,对于使用本系统的用户采用了分级权限认证机制。具体来说,分为超级管理员、系统管理员、数据库管理员、教师、学生、匿名用户。除超级管理员外,其他都是受限业务角色。其中,系统管理员和数据库管理员可以在服务器和控制计算机上对系统进行设定、管理和配置,教师用户可以主控计算机上对授课过程进行管理,或对服务器资源进行管理,学生用户只能在局域网学生计算机上访问开放的资源或参与各种课程和活动。匿名用户针对Internet用户,只能进行有限的浏览。分级权限机制是由域服务器管理的,对登录系统的用户而言,只要在Windows下登录了操作系统,实际上就已经在域服务器进行了注册和认证,并根据自身权限,由后台程序进行了设置。这点类似于大多数C/S系统。
B/S的架构使本系统在浏览器的支持下提供网络安全性基础结构,以便使不同的应用程序(页面)能够分配到或多或少的权限,这样,它们就可以围绕状态(如 Cookies)执行不同的任务,就可以承载组件和执行脚本。IE 浏览器通过不同的区域、受信任站点、分级等实现了这些功能。
由于本系统连接Internet,所以在内外网间采用硬件防火墙隔离,有效增加了系统的安全级别。
5 总结
类似于数字化教学系统这样的大型软件系统在现实需求中是比较常见的,通过本文我们不难发现,CS与BS混合软件体系只要能找准系统的契合点,可以使我们的软件系统更加简洁实用,在具备优良的系统性能的同时兼顾了系统的鲁棒性和扩展性,同时,能够较好的控制开发成本。因此,这样混合异构的体系结构不失为开发大型系统的一种选择。
参考文献:
[1]Kruchten P,Obbink H,Stafford J,Special issue on software architecture [J].IEEE Software,2006.23(2): 22-30.
[2]梅宏,申峻嵘,软件体系结构研究进展[J].软件学报,2006,17 (6):1257-1275.
[3]张友生,陈松乔.CS与BS混合软件体系结构模型[J].计算机工程与应用,2002(23):138-140.
[4]张友生,钱盛友,异构软件体系结构的设计[J].计算机工程与应用,2003(22):126-128.
[5]张广泉.软件体系结构的特点与研究进展[J].重庆师范学院学报,2002(4).
[6]刘贵富,秦艳友,数字化校园中网络教学资源的合理配置[J].情报杂志,2005(12).
[7]Tyree J,Akerman A. Architecture decisions: Demystifying architecture [J].IEEE Software, 2005,22(2):19,27.
[8]杨鹏,吴家皋.网络服务体系结构及其形式化模型的研究[J].计算机研究与发展,2005.42(7):1115-1122.
[8]何详,吴庆宪.基于CS与BS模式的远程控制实验系统[J].光电与控制,2005(10).
注:本文中所涉及到的图表、注解、公式等内容请以PDF格式阅读原文。