某大中型企业在全国各城市共有15个左右的分支机构,这些机构已经建设了相关的关系型数据库管理系统,每天负责独立地处理本区域内的业务并实时存储业务数据。PH软件公司承接了该大中型企业信息管理系统的升级改造开发任务。该软件公司的领域专家对需求进行深入分析后,得到的部分系统需求如下。
(1)开发一个网络财务程序,使各地员工能在Internet上通过VPN技术进行财务单据报销和处理。
(2)为了加强管理,实现对下属分支机构业务数据的异地存储备份,保证数据的安全及恢复,同时对全国业务数据进行挖掘分析,拟在该企业总部建设数据中心。
PH公司在设计该财务程序的体系结构时,开发项目组产生了以下分歧。
(1)架构师许工认为应该采用客户机/服务器(C/S)架构风格,各分支机构财务部要安装一个软件客户端,通过这个客户端连接到总公司财务部主机。如果员工在外地出差,需要报销账务的,也需要安装这个客户端才能进行。
(2)架构师郭工认为应该采用浏览器/服务器(B/S)架构风格,各分支机构及出差员工直接通过Windows操作系统自带的IE浏览器就可以连接到总公司的财务部主机。
在架构评估会议上,专家对这两种方案进行综合评价,最终采用了C/S和B/S相结合的混合架构风格。
结合你的系统架构经验,请用400字以内的文字简要讨论C/S和B/S两科一架构风格各自的优点和缺点。
参考答案:C/S架构风格的优点:①客户机应用程序与服务器程序分离,二者的开发既可以分开进行,也可以同时进行;②技术成熟,允许网络分布操作,交互性强,具有安全的存取模式;③网络压力小,响应速度快,有利于处理大量数据;④模型思想简单,易于人们理解和接受等。
C/S架构风格的缺点:①客户机与服务器的通信依赖于网络,服务器的负荷过重;②无法实现快速部署和安装,维护工作量大,升级困难;③开发成本较高,客户端程序设计复杂,灵活性差;④用户界面风格不一,软件移植和数据集成困难;⑤数据库的安全性因客户机程序直接访问而降低等。
B/S架构风格的优点:①易于部署、维护和升级;②具有良好的开放性和可扩充性,可以应用在广域网上,方便了信息的全球传输、查询和发布;③可跨平台操作,无须开发客户端软件;④通过JDBC等数据库连接接口,提高了动态交互性、服务器的通用性与可移植性等。
B/S架构风格的缺点:①数据的动态交互性不强,不利于在线事务处理(OLTP)应用;②数据查询等响应速度较慢;③系统的安全性较难以控制等。
解析:客户机/服务器(C/S)架构风格是基于资源不对等且实现共享而提出,它将应用一分为二,服务器负责数据管理,客户机完成与用户的交互任务。C/S架构风格的优点主要在于,系统的客户应用程序和服务器构件分别运行在不同的计算机上,系统中每台服务器都可以适合各构件的要求,这对于硬件和软件的变化显示出极大的适应性和灵活性,而且二者的开发既可以分开进行,也可以同时进行,易于对系统进行扩充和缩小。在C/S模式中,系统中的功能构件充分隔离,客户应用程序的开发集中于数据的显示和分析,而服务器的开发则集中于数据的管理,不必在每一个新的应用程序中都要对一个数据库管理系统(DBMS)进行编码。C/S模式将大应用处理任务分布到许多通过网络连接的低成本计算机上,允许网络分布操作。C/S模式是一种较安全的存取模式,其交互性较强、网络压力小、响应速度快且利于处理大量数据。
C/S架构风格具有强大的数据操作和事务处理能力,模型思想简单,易于人们理解和接受。但随着企业规模的日益扩大,软件的复杂程度不断提高,C/S架构风格逐渐暴露了以下缺点。
(1)客户机与服务器的通信依赖于网络,可能成为整个系统运作的瓶颈。
(2)服务器的负荷过重,难以管理大量的客户机,系统的性能受到很大的影响。
(3)部署和维护成本较高。基于该架构风格开发的应用系统存在灵活性差、维护工作量大、升级困难等缺陷,并且每台客户机都需要安装客户端程序,无法实现快速部署和安装,具有较大的局限性。若要对采用C/S架构风格的软件升级,则需要开发人员到现场为每台客户机的软件升级和维护。
(4)采用单一服务器且以局域网为中心,难以将应用扩展至广域网或Internet环境中。
(5)客户机程序直接访问数据库服务器,使数据库的安全性受到威胁。
(6)开发成本较高。C/S架构风格对客户端软硬件配置要求较高,尤其是软件的不断升级,对硬件要求不断提高,增加了整个系统的成本,且客户端变得越来越臃肿。
(7)客户端程序设计复杂。采用C/S架构风格进行软件开发,大部分工作量放在客户端的程序设计上,客户端显得十分庞大。对软件进行的一个小小改动(例如只改动一个变量),则每一个客户端都必须更新。
(8)信息内容和形式单一。因为传统应用一般为事务处理,界面基本遵循数据库的字段解释,开发之初就已确定,而且不能随时截取办公信息和档案等外部信息,用户获得的只是单纯的字符和数字,既枯燥又死板。
(9)用户界面风格不一,使用复杂,不利于大范围推广使用。
(10)软件移植和数据集成困难。采用不同开发工具或平台开发的软件一般互不兼容,不能或很难移植到其他平台上运行。
为了解决C/S模式中服务器端的问题,发展形成了三层(多层)C/S模式,即多层应用架构。在三层C/S架构风格中,将应用功能分成表示层、功能层和数据层3个部分。通过对这3层进行明确分割,不同层构件相互独立,层间的接口简洁,适合复杂事务处理。新增加的应用服务器负责处理系统中所有的应用逻辑,而只有表示层存在于客户机上。
为了解决C/S模式中客户端的问题,发展形成了浏览器朋艮务器(B/S)模式。其具体结构为浏览器—Web服务器—数据库服务器。与三层C/S的解决方案相比,客户端采用WWW浏览器,应用服务器采用Web服务器。B/S架构风格主要是利用不断成熟的WWW浏览器技术,结合浏览器的多种脚本语言,利用通用浏览器就实现了原来需要复杂的专用软件才能实现的强大功能,并节约了开发成本。除了数据库服务器外,应用程序以网页形式存放于Web服务器上,用户运行某个应用程序时只需在客户端上的浏览器中输入相应的网址(URL),调用Web服务器上的应用程序并对数据库进行操作,从而完成相应的数据处理工作,最后将结果通过浏览器显示给用户。
基于B/S架构风格的软件,系统安装、修改和维护全在服务器端解决,用户在使用系统时,仅仅需要一个浏览器就可运行全部的模块,易于系统的升级和维护;可以应用在广域网上,方便了信息的全球传输、查询和发布;可跨平台操作,无须开发客户端软件,客户端只需通过浏览器就可以实现大部分的软件功能:通过JDBC等数据库连接接口,提高了动态交互性和服务器的通用性与可移植性;具有良好的开放性和可扩充性。
与C/S架构风格相比,B/S架构风格也有许多不足之处,主要表现在以下几个方面。
(1)B/S架构风格的数据提交一般以页面为单位,数据的动态交互性不强,不利于在线事务的处理(OLTP)应用。
(2)在数据查询等响应速度上,要低于C/S架构风格。
(3)系统的安全性较难以控制等。