C/S (Client/Server) 结构,即大家熟知的客户机和服务器结构。 它是软件系统体系结构,通过它可以充分利用两端硬件环境的优势,将任务合理分配到客户机端和服务器端来实现,降低了系统的通信开销。 目前大多数应用软件系统都是C/S形式的两层结构,由于现在的软件应用系统正在向分布式的Web应用发展,Web和C/S应用都可以进行同样的业务处理,应用不同的模块共享逻辑组件 因此,内部和外部的用户都可以访问新的和现有的应用系统,通过现有应用系统中的逻辑可以扩展出新的应用系统。 这也就是目前应用系统的发展方向。
传统的C/S体系结构虽然采用的是开放模式,但这只是系统开发一级的开放性,在特定的应用中,无论是客户机端还是服务器端,都还需要特定的软件支持。 由于没能提供用户真正期望的开放环境,C/S结构的软件需要针对不同的操作系统开发不同版本的软件,加之产品的更新换代十分快,已经很难适应百台电脑以上局域网用户同时使用 而且代价高,效率低。
C/S结构由两部分构成: 前端是客户机,通常是PC 后端是服务器,运行数据库管理系统提供数据库的查询和管理结构如图2-4所示。
图2-4 两层结构C/S图
1.C/S架构软件的优势与劣势
(1) 应用服务器运行数据负荷较小
最简单的C/S体系结构的数据库应用由两部分组成,即客户应用程序和数据库服务器程序。 二者可分别称为前台程序与后台程序。 运行数据库服务器程序的机器,也称为应用服务器。 一旦服务器程序被启动,就随时等待响应客户程序发来的请求 客户应用程序运行在用户自己的电脑上,对应于数据库服务器,可称为客户电脑,当需要对数据库中的数据进行任何操作时,客户程序就自动地寻找服务器程序,并向其发出请求,服务器程序根据预定的规则做出应答,送回结果,应用服务器运行数据负荷较小。
(2) 数据的储存管理功能较为透明
在数据库应用中,数据的储存管理功能是由服务器程序和客户应用程序分别独立进行的,前台应用可以违反的规则,例如访问者的权限,编号可以重复、 必须有客户才能建立订单这样的规则。 所有这些,对于工作在前台程序上的最终用户是 “透明” 的,他们无须过问 (通常也无法干涉) 背后的过程,就可以完成自己的一切工作。 在客户服务器架构的应用中,前台程序不是非常 “瘦小”,麻烦的事情都交给了服务器和网络。 在C/S体系下,数据库不能真正成为公共、 专业化的仓库,它受到独立的专门管理。
(3) C/S架构的劣势是高昂的维护成本且投资大
首先,采用C/S架构,要选择适当的数据库平台来实现数据库数据的真正 “统一”,使分布于两地的数据同步完全交由数据库系统去管理,但逻辑上两地的操作者要直接访问同一个数据库才能有效实现。 有这样一些问题,如果需要建立 “实时” 的数据同步,就必须在两地间建立实时的通信连接,保持两地的数据库服务器在线运行。 网络管理工作人员既要对服务器维护管理,又要对客户端维护和管理,这需要高昂的投资和复杂的技术支持,维护成本很高,维护任务量大。
其次,传统的C/S结构的软件需要针对不同的操作系统开发不同版本的软件,由于产品的更新换代十分快,高代价和低效率已经不适应工作需要。 在JAVA这样的跨平台语言出现之后,B/S架构更是猛烈冲击C/S,并对其形成威胁和挑战。
正是基于以上特点,导致了C/S结构难维护,出现性能 “瓶颈”,并发用户数少,难以适应集中管理的要求。 随着Internet技术的迅速发展,基于B/S (Browser/Server) 模式的计算环境为越来越多的应用系统所采用,它有效地克服了C/S模式的缺点。
B/S结构即浏览器和服务器结构。 它是随着Internet技术的兴起,对C/S结构的一种变化或者改进的结构。 在这种结构下,用户工作界面通过WWW浏览器来实现,极少部分事务逻辑在前端 (Browser) 实现,但是主要事务逻辑在服务器端 (Server) 实现,形成所谓三层3-tier结构。这样就大大简化了客户端电脑载荷,减少了系统维护与升级的成本和工作量,以及用户的总体成本 (TCO)。
以目前的技术看,局域网建立B/S结构的网络应用,并通过Internet/Intranet模式下数据库应用,相对易于把握、 成本也是较低的。 它是一次性到位的开发,能实现不同的人员从不同的地点,以不同的接入方式 (比如LAN,WAN,Internet/Intranet等) 访问和操作共同的数据库 它能有效地保护数据平台和管理访问权限,服务器数据库也很安全。 特别是在JAVA这样的跨平台语言出现之后,B/S架构管理软件更是方便、 快捷、 高效。
B/S结构主要是利用了不断成熟的WWW浏览器技术,结合浏览器的多种Script语言(VBScript、 Java Script等) 和Active X技术,用通用浏览器实现了原来需要复杂专用软件才能实现的强大功能,并节约了开发成本,是一种全新的软件系统构造技术。 随着Windows 98/Windows2000将浏览器技术植入操作系统内部,这种结构更成为当今应用软件的首选体系结构。 B/S模式的主要特点在于应用系统开发人员无须开发自己的客户端软件,而统一采用浏览器来实现客户端与服务器的交互。 此外,当需要对应用系统进行升级时,只需对服务器端的应用程序进行升级即可。 B/S结构的核心概念是利用中间件将应用分为表示层、 业务逻辑层和数据存储层三个不同的处理层次,如图2-5所示。 三个层次是从逻辑上来分的具体的物理分法可以有多种组合。 中间件作为构造三层结构应用系统的基础平台,提供了以下主要功能: 负责客户机与服务器间、 服务器间与服务器间的连接和通信 实现应用与数据库的高效连接 提供一个三层结构应用的开发、 运行、 部署和管理的平台。
图2-5 三层结构B/S图
2.B/S架构软件的优势与劣势
(1) 维护和升级方式简单
目前,软件系统的改进和升级越来越频繁,B/S架构的产品明显体现着更为方便的特性。 对一个稍微大一点单位来说,系统管理人员如果需要在几百甚至上千部电脑之间来回奔跑,效率和工作量是可想而知的,但B/S架构的软件只需要管理服务器就行了,所有的客户端只是浏览器,根本不需要做任何的维护。 无论用户的规模有多大,有多少分支机构,都不会增加任何维护升级的工作量,所有的操作只需要针对服务器进行 如果是异地,只需要把服务器连接专网即可,实现远程维护、 升级和共享。 所以,客户机越来越 “瘦” 而服务器越来越 “胖” 是将来信息化发展的主流方向。 今后,软件升级和维护会越来越容易,而使用起来会越来越简单,这对用户人力、 物力、 时间、 费用的节省是显而易见的,惊人的。因此,维护和升级革命的方式是 “瘦” 客户机,“胖” 服务器。
(2) 成本降低,选择更多
大家都知道,Windows在桌面电脑上几乎一统天下,浏览器成为标准配置,但在服务器操作系统上,Windows并不是处于绝对的统治地位。 现在的趋势是,凡使用B/S架构的应用管理软件,只需安装在Linux服务器上即可,而且安全性高。 所以,服务器操作系统的选择是很多的,不管选用哪种操作系统,都可以让大部分人使用Windows作为桌面操作系统,电脑不受影响,这就使最流行的免费的Linux操作系统快速发展起来。 Linux除了操作系统是免费的以外,连数据库也是免费的,这种选择非常盛行。
比如,很多人每天上 “网易” 网,只要安装浏览器就可以了,并不需要了解 “网易”的服务器用的是什么操作系统,而事实上大部分网站都没有使用Windows操作系统,但用户的电脑本身安装的基本都是Windows操作系统。
(3) 应用服务器运行数据负荷较重
由于B/S架构管理软件只安装在服务器端 (Server) 上,网络管理人员只需要管理服务器就行了,用户界面主要事务逻辑在服务器端完全通过WWW浏览器实现,极少部分事务逻辑在前端 (Browser) 实现,所有的客户端只有浏览器,网络管理人员只需要做硬件维护。但是,应用服务器运行数据负荷较重,一旦发生服务器 “崩溃” 等问题,后果不堪设想。因此,许多单位都备有数据库存储服务器,以防万一。
3.C/S与B/S的区别与比较
C/S是建立在局域网的基础上的,B/S是建立在广域网的基础上的。
(1) 硬件环境不同
C/S一般建立在专用的网络上。 小范围里的网络环境,局域网之间再通过专门服务器提供连接和数据交换服务。
B/S建立在广域网之上,不必是专门的网络硬件环境,例如,可以通过租用设备和互联网实现,有比C/S更强的适应范围,一般只要有操作系统和浏览器就行。
(2) 对安全要求不同
C/S一般面向相对固定的用户群,对信息安全的控制能力很强。 一般高度机密的信息系统采用C/S结构适宜,可以通过B/S发布部分可公开信息。 由于B/S是建立在广域网之上的,对安全的控制能力相对较弱,面向的是不可知的用户群。
(3) 对程序架构不同
C/S程序更加注重流程,可以对权限多层次校验,对系统运行速度可以较少考虑。 B/S对安全及访问速度的多重考虑,建立在需要更加优化的基础之上,比C/S有更高的要求。由于计算机网络的普及和发展,B/S结构的程序架构是技术发展的必然趋势。 SUN和IBM公司推出的Java Bean构件技术等,使B/S更加成熟。
(4) 软件重用不同
C/S程序须从整体性考虑,软件的重用性不如在B/S要求下的软件的重用性好。 B/S的多重结构,要求软件有相对独立的功能,能够相对较好地重用。
(5) 系统维护不同
在软件生存周期中,系统维护开销的大小相当重要。 C/S程序由于具有整体性,必须整体考察,因此处理出现的问题难,系统升级难,可能时需做一个全新的系统。 B/S构件组成方面,构件可个别更换,可实现系统的无缝升级,系统的维护只需在服务端进行就可以。
(6) 处理对象不同
C/S程序可以处理的用户群固定,并且是在相同区域 与操作系统相关,应该都是相同的系统。 B/S建立在广域网上,面向不同的用户群,地域分散,这是C/S无法做到的 与操作系统平台关系最小。
(7) 用户接口不同
C/S多建立在Window平台上,表现方法有限,对程序员技术水平普遍要求较高。 B/S建立在浏览器上,有更加丰富和生动的表现方式来与用户交流,并且大部分难度降低,降低了开发成本。
(8) 信息流向不同
C/S程序一般是典型的中央集权的机械式处理,交互性相对低。 B/S信息流向可变化B-B、B-C、B-G等信息流向的变化更像交易中心。
免责声明:以上内容源自网络,版权归原作者所有,如有侵犯您的原创版权请告知,我们将尽快删除相关内容。