C/S分布式模式,是计算机用语。C是指Client,S是指Server,C/S模式就是指客户端/服务器模式。是计算机软件协同工作的一种模式,通常采取两层结构。服务器负责数据的管理,客户机负责完成与用户的交互任务。
由于Web浏览器的兴起,B/S模式逐步取代了C/S模式,被更广泛地应用。
模式简介随着计算机网络技术的成熟和应用普及,特别是局域网的发展、PC机的出现,越来越多的用户和企业开始使用计算机管理一些事务。PC机的资源没有大型、中型甚至小型主机丰富,但将多台PC机联成网,必然会增加资源含量,各个用户都在网络上来共享所有资源。根据客户/服务器(Client/Server简记为C/S)体系结构的概念,至少用两台计算机来分别充当客户机和服务器角色。客户端可以是X86体系的风机或RISC体系的工作站等,而服务器端硬件一般比较高档,比如:高档PC服务器或SUN专用服务器;操作系统也比较高档,比如: Windows NT和 Unix。
服务器-客户机,即Client-Server(C/S)结构。C/S结构通常采取两层结构。服务器负责数据的管理,客户机负责完成与用户的交互任务。
客户机通过局域网与服务器相连,接受用户的请求,并通过网络向服务器提出请求,对数据库进行操作。服务器接受客户机的请求,将数据提交给客户机,客户机将数据进行计算并将结果呈现给用户。服务器还要提供完善安全保护及对数据完整性的处理等操作,并允许多个客户机同时访问服务器,这就对服务器的硬件处理数据能力提出了很高的要求。
在C/S结构中,应用程序分为两部分:服务器部分和客户机部分。服务器部分是多个用户共享的信息与功能,执行后台服务,如控制共享数据库的操作等;客户机部分为用户所专有,负责执行前台功能,在出错提示、在线帮助等方面都有强大的功能,并且可以在子程序间自由切换。
C/S结构在技术上已经很成熟,它的主要特点是交互性强、具有安全的存取模式、响应速度快、利于处理大量数据。但是C/S结构缺少通用性,系统维护、升级需要重新设计和开发,增加了维护和管理的难度,进一步的数据拓展困难较多,所以C/S结构只限于小型的局域网1。
主要功能服务器提供的服务可以包括:文件服务、打印服务、Web服务、数据库服务、应用服务和代理服务等。通常客户端运行应用程序,服务器端运行服务程序,应用程序向服务程序提出申请,服务程序分析该申请是否合理,来决定返回数据信息还是禁止申请信息。从数据库的角度来讲,对一个应用,全局公共数据保存在服务器,各个客户端保存各自的私有数据,用户可以查询自己的数据,也可以远端查询全局数据。这就是C/S分布式模式。
由于客户端实现与服务器的直接相连,没有中间环节,因此响应速度快。客户操作界面设计个性化,具有直观、简单、方便的特点,可以满足客户个性化的操作要求。同时由于开发是针对性的,因此,操作界面漂亮、形式多样,可以充分满足客户自身的个性化要求。由于是针对性开发,因此缺少通用性的特点,业务变更或改变不够灵活,需要重新设计和开发,增加了维护和管理的难度,进一步的业务拓展困难较多。需要专门的客户端安装程序,分布功能弱,不能够实现快速部署安装和配置。兼容性差,对于不同的开发工具,相互之间很难兼容,具有较大的局限性。若采用不同工具,需要重新改写程序。 开发成本较高,需要具有一定专业水准的技术员才能完成。
发展经历C/S模式的发展经历了从两层结构到三层结构。
两层结构由两部分构成:前端是客户机,主要完成用户界面显示,接受数据输入,校验数据有效性,向后台数据库发请求,接受返回结果,处理应用逻辑;后端是服务器,运行DBMS,提供数据库的查询和管理。
两层结构存在一些不足,主要表现在:系统的可伸缩性差;难以和其它系统进行互操作;难以支持多个异构数据库;客户端程序和服务器端DBMS交互频繁,网络通讯量大;所有客户机都需要安装、配置数据库客户端软件,是一件十分庞杂的工作,等。2
基于二层结构的以上不足,三层结构伴随着中间件技术的成熟而兴起。其核心概念是利用中间件将应用分为表示层、业务逻辑层和数据存储层三个不同的处理层次。
三层结构较二层结构具有一定的优越性:具有良好的开放性;减少整个系统的成本,维护升级十分方便;系统的可扩充性良好;系统管理简单,可支持异种数据库,有很高的可用性;可以进行严密的安全管理。
优缺点优点C/S结构的优点是能充分发挥客户端PC的处理能力,很多工作可以在客户端处理后再提交给服务器。对应的优点就是客户端响应速度快。具体表现在以下两点:3
(1)应用服务器运行数据负荷较轻。最简单的C/S体系结构的数据库应用由两部分组成,即客户应用程序和数据库服务器程序。二者可分别称为前台程序与后台程序。运行数据库服务器程序的机器,也称为应用服务器。一旦服务器程序被启动,就随时等待响应客户程序发来的请求;客户应用程序运行在用户自己的电脑上,对应于数据库服务器,可称为客户电脑,当需要对数据库中的数据进行任何操作时,客户程序就自动地寻找服务器程序,并向其发出请求,服务器程序根据预定的规则作出应答,送回结果,应用服务器运行数据负荷较轻。
(2)数据的储存管理功能较为透明。在数据库应用中,数据的储存管理功能,是由服务器程序和客户应用程序分别独立进行的,并且通常把那些不同的(不管是已知还是未知的)前台应用所不能违反的规则,在服务器程序中集中实现,例如访问者的权限,编号可以重复、必须有客户才能建立订单这样的规则。所有这些,对于工作在前台程序上的最终用户,是“透明”的,他们无须过问(通常也无法干涉)背后的过程,就可以完成自己的一切工作。在客户服务器架构的应用中,前台程序不是非常“瘦小”,麻烦的事情都交给了服务器和网络。在C/S体系下,数据库不能真正成为公共、专业化的仓库,它受到独立的专门管理。
缺点随着互联网的飞速发展,移动办公和分布式办公越来越普及,这需要我们的系统具有扩展性。这种方式远程访问需要专门的技术,同时要对系统进行专门的设计来处理分布式的数据。
客户端需要安装专用的客户端软件。首先涉及到安装的工作量,其次任何一台电脑出问题,如病毒、硬件损坏,都需要进行安装或维护。特别是有很多分部或专卖店的情况,不是工作量的问题,而是路程的问题。还有,系统软件升级时,每一台客户机需要重新安装,其维护和升级成本非常高。1
对客户端的操作系统一般也会有限制。可能适应于Win98, 但不能用于Windows2000或Windows XP。或者不适用于微软新的操作系统等等,更不用说Linux、Unix等。(目前,大多数客户端都适应win XP系统,但对微软新的操作系统或其他开发系统就兼用不了。)
传统的C/S体系结构虽然采用的是开放模式,但这只是系统开发一级的开放性,在特定的应用中无论是Client端还是Server端都还需要特定的软件支持。由于没能提供用户真正期望的开放环境,C/S结构的软件需要针对不同的操作系统开发不同版本的软件, 加之产品的更新换代十分快,已经很难适应百台电脑以上局域网用户同时使用。而且代价高, 效率低。
C/S架构的劣势还有高昂的维护成本且投资大。首先,采用C/S架构,要选择适当的数据库平台来实现数据库数据的真正“统一”,使分布于两地的数据同步完全交由数据库系统去管理,但逻辑上两地的操作者要直接访问同一个数据库才能有效实现,有这样一些问题,如果需要建立“实时”的数据同步,就必须在两地间建立实时的通讯连接,保持两地的数据库服务器在线运行,网络管理工作人员既要对服务器维护管理,又要对客户端维护和管理,这需要高昂的投资和复杂的技术支持,维护成本很高,维护任务量大。
其次,传统的C/S结构的软件需要针对不同的操作系统系统开发不同版本的软件,由于产品的更新换代十分快,代价高和低效率已经不适应工作需要。在JAVA这样的跨平台语言出现之后,B/S架构更是猛烈冲击C/S,并对其形成威胁和挑战。3
服务端的特征:
被动的角色(从)。
等待来自用户端的要求。
处理要求并传回结果。
用户端的特征:
主动的角色(主)。
发送要求。
等待直到收到回应。4
C/S和B/S硬件环境的比较C/S建立在局域网的基础上,局域网之间再通过专门服务器提供连接和数据交换服务。在C/S结构中,客户机和服务器都需要处理数据任务,这就对客户机的硬件提出了较高的要求。B/S结构建立在广域网之上,不必配备专门的网络硬件环境。虽然对客户端的硬件要求不是很高,只需要运行操作系统和浏览器,但服务器端需要处理大量实时的数据,这就对服务器端的硬件提出了较高的要求。总体来讲,B/S结构相对C/S结构能够大大降低成本。1
系统维护 、 升级的比较C/S结构中的每一个客户机都必须安装和配置相关软件,如操作系统、客户端软件等。当客户端软件需要维护、升级,即使只是增加或删除某一功能,也需要逐一将C/S结构中所有的客户端软件卸载并重新安装。如果不进行升级,可能会碰到客户端软件版本不一致而无法工作的情况。B/S结构中每一个客户端只需通过浏览器便可进行各种信息的处理,而不需要安装客户端软件,维护、升级等几乎所有的工作都在服务器端进行,如果系统需要升级,只需要将升级程序安装在服务器端即可。
系统安全的比较C/S结构采取点对点的结构模式,数据的处理是基于安全性较高的网络协议之上。另外, C/S一般面向相对固定的用户群,它可以对权限进行多层次的校验,对信息安全的控制能力很强,安全性可以得到很好的保障。B/S结构采取一点对多点、多点对多点的开放式结构模式,其安全性只能靠数据服务器上的管理密码的数据库来保证,况且网络安全技术尚未成熟,需不断发现、修补各种安全漏洞。
用户接口的比较C/S结构多是建立在Windows平台上,表现方法有限, 对程序员普遍要求较高。B/S结构是建立在浏览器上,有更加丰富和生动的表现方式与用户交流。
处理上的比较C/S结构建立在局域网上, 处理面向在相同区域的比较固定的用户群, 满足对安全要求高的需求, 与操作系统相关。B/S结构建立在广域网上, 处理面向分散的地域的不同的用户群, 与操作系统关系较少。另外, B/S的处理模式与CS处理模式相比,简化了客户端,只需要安装操作系统、浏览器即可。
软件重用的比较C/S结构软件可从不可避免的整体性考虑,构件的重用性不如在B/S要求下构建的重用性好。B/S对应的是多重结构,要求构建相对独立的功能,能够相对较好的重用。
系统速度的比较C/S结构在逻辑结构上比B/S结构少一层,对于相同的任务,C/S结构完成的速度总比B/S结构快,使得C/S更利于处理大量数据。另外,由于客户端实现与服务器的直接相连,没有中间环节,因此响应速度快。
交互性与信息流的比较C/S结构的交互性很强, 在C/S结构中,客户机有完整的客户端软件, 能处理大量的、实时的数据流,响应速度快。B/S结构虽然可以提供一定的交互能力,但交互能力很有限。C/S的信息流单一, 而B/S结构可处理如B-B、B-C、B-G等信息并具有流向的变化。1
本词条内容贡献者为:
孙锐 - 教授 - 合肥工业大学