1. 首页 > 经验  > 正文

Client/Server

Client/Server

Client/Server结构(C/S结构)是大家熟知的客户机和伺服器结构。它是软体系统体系结构,通过它可以充分利用两端硬体环境的优势,将任务合理分配到Client端和Server端来实现,降低了系统的通讯开销。目前大多数套用软体系统都是Client/Server形式两层结构,由于现在的软体套用系统正在向分散式的Web套用发展,Web和Client/Server 套用都可以进行同样的业务处理,套用不同的模组共享逻辑组件;因此,内部的和外部的用户都可以访问新的和现有的套用系统,通过现有套用系统中的逻辑可以扩展出新的套用系统。这也就是目前套用系统的发展方向

基本介绍

中文:客户/伺服器模式外文名:Client/Server英文缩写:C/S

定义

C/S又称Client/Server或客户/伺服器模式。伺服器通常採用高性能的PC、工作站或小型机,并採用大型资料库系统,如ORACLE、SYBASE、InfORMix或 SQL Server。客户端需要安装专用的客户端软体。
传统的C/S体系结构虽然採用的是开放模式,但这只是系统开发一级的开放性,在特定的套用中无论是Client端还是Server端都还需要特定的软体支持。由于没能提供用户真正期望的开放环境,C/S结构的软体需要针对不同的作业系统系统开发不同版本的软体, 加之产品的更新换代十分快,已经很难适应百台电脑以上区域网路用户同时使用。而且代价高, 效率低。
Client/Server结构是20世纪80年代末提出的。这种结构的系统把较複杂的计算管理任务交给网路上的高档机器——伺服器,而把一些频繁与用户打交道的任务交给前端较简单的计算机—客户机。通过这种方式,将任务合理分配到客户端和伺服器端,既充分利用了两端硬体环境的优势,又实现了网路上信息资源的共享。由于这种结构比较适于区域网路运行环境,因此逐渐得到了广泛的套用。
在Client/Server结构的系统中,应用程式分为客户端和伺服器端两大部分。客户端部分为每个用户所专有,而伺服器端部分则由多个用户共享其信息与功能。客户端部分通常负责执行前台功能,如管理用户接口数据处理和报告请求等;而伺服器端部分执行后台服务,如管理共享外设、控制对共享资料库的操作等。这种体系结构由多台计算机构成,它们有机地结合在一起,协同完成整个系统的套用,从而达到系统中软、硬体资源最大限度的利用。
任何一个套用系统,不管是简单的单机系统还是複杂的网路系统,都由3个部分组成:显示逻辑部分(表示层)、事务处理逻辑部分(功能层)和数据处理逻辑部分(数据层)。显示逻辑部分的功能是与用户进行互动;事务处理逻辑部分的功能是进行具体的运算和数据的处理;数据处理逻辑部分的功能是对资料库中的数据进行查询修改和更新等。在两层模式的Client/Server结构中,显示逻辑部分和事务处理逻辑部分均被放在客户端,数据处理逻辑部分和资料库被放在伺服器端。这样就使得客户端变得很“胖”,成为胖客户机,而伺服器端的任务相对较轻,成为瘦伺服器。
这种传统的Client/Server结构比较适合于在小规模、用户数较少(≤100)、单一资料库且有安全性和快速保障的区域网路环境下运行,所以得到了广泛的套用。但随着套用系统的大型化,以及用户对系统性能要求的不断提高,两层模式(2-Tier)的Client/Server结构越来越满足不了用户需求。这主要体现在程式开发量大、系统维护困难、客户机负担过重、成本增加及系统的安全性难以保障等方面

缺点

C/S结构的优点是能充分发挥客户端PC的处理能力,很多工作可以在客户端处理后再提交给伺服器。对应的优点就是客户端回响速度快。缺点主要有以下几个
只适用于区域网路。而随着网际网路的飞速发展,移动办公和分散式办公越来越普及,这需要我们的系统具有扩展性。这种方式远程访问需要专门的技术,同时要对系统进行专门的设计来处理分散式的数据。
客户端需要安装专用的客户端软体。首先涉及到安装的工作量,其次任何一台电脑出问题,如病毒、硬体损坏,都需要进行安装或维护。特别是有很多分部或专卖店的情况,不是工作量的问题,而是路程的问题。还有,系统软体升级时,每一台客户机需要重新安装,其维护和升级成本非常高。
对客户端的作业系统一般也会有限制。可能适应于Win98, 但不能用于win2000或Windows XP。或者不适用于微软新的作业系统等等,更不用说Linux、Unix等。

优势劣势

(1)套用伺服器运行数据负荷较轻。最简单的C/S体系结构的资料库套用由两部分组成,即客户应用程式和资料库伺服器程式。二者可分别称为前台程式与后台程式。运行资料库伺服器程式的机器,也称为套用伺服器。一旦伺服器程式被启动,就随时等待回响客户程式发来的请求;客户应用程式运行在用户自己的电脑上,对应于资料库伺服器,可称为客户电脑,当需要对资料库中的数据进行任何操作时,客户程式就自动地寻找伺服器程式,并向其发出请求,伺服器程式根据预定的规则作出应答,送回结果,套用伺服器运行数据负荷较轻。
(2)数据的储存管理功能较为透明。在资料库套用中,数据的储存管理功能,是由伺服器程式和客户应用程式分别独立进行的,前台套用可以违反的规则,并且通常把那些不同的(不管是已知还是未知的)运行数据,在伺服器程式中不集中实现,例如访问者的许可权,编号可以重複、必须有客户才能建立定单这样的规则。所有这些,对于工作在前台程式上的最终用户,是“透明”的,他们无须过问(通常也无法干涉)背后的过程就可以完成自己的一切工作。在客户伺服器架构的套用中,前台程式不是非常“瘦小”,麻烦的事情都交给了伺服器和网路。在C/S体系的下,资料库不能真正成为公共、专业化的仓库,它受到独立的专门管理。
(3)C/S架构的劣势是高昂的维护成本且投资大。首先,採用C/S架构,要选择适当的资料库平台来实现资料库数据的真正“统一”,使分布于两地的数据同步完全交由资料库系统去管理,但逻辑上两地的操作者要直接访问同一个资料库才能有效实现,有这样一些问题,如果需要建立“实时”的数据同步,就必须在两地间建立实时的通讯连线保持两地的资料库伺服器线上运行,网路管理工作人员既要对伺服器维护管理,又要对客户端维护和管理,这需要高昂的投资和複杂的技术支持,维护成本很高,维护任务量大。
其次,传统的C/S结构的软体需要针对不同的作业系统系统开发不同版本的软体,由于产品的更新换代十分快,代价高和低效率已经不适应工作需要。在JAVA这样的跨平台语言出现之后,B/S架构更是猛烈冲击C/S,并对其形成威胁和挑战。

技术比较

C/S结构软体(即客户机/伺服器模式)分为客户机和伺服器两层,客户机不是毫无运算能力的输入输出设备,而是具有了一定的数据处理和数据存储能力,通过把套用软体的计算和数据合理地分配在客户机和伺服器两端,可以有效地降低网路通信量和伺服器运算量。由于伺服器连线个数和数据通信量的限制,这种结构的软体适于在用户数目不多的区域网路内使用。国内的大部分ERP(财务)软体产品即属于此类结构。
B/S(浏览器/伺服器模式)是随着Internet技术的兴起,对C/S结构的一种改进。在这种结构下,软体套用的业务逻辑完全在套用伺服器端实现,用户表现完全在Web伺服器实现,客户端只需浏览器即可行业务处理,是一种全新的软体系统构造技术。这种结构更成为当今套用软体的首选体系结构。e通管理系列产品即属于此类结构。

安全性

由于C/S结构软体的数据分布特性,客户端所发生的火灾、盗抢、地震、病毒、黑客等都成了可怕的数据杀手。另外,对于集团级的异地软体套用,C/S结构的软体必须在各地安装多个伺服器,并在多个伺服器之间进行数据同步。如此一来,每个数据点上的数据安全都影响了整个套用的数据安全。所以,对于集团级的大型套用来讲,C/S结构软体的安全性是令人无法接受的。对于B/S结构的软体来讲,由于其数据集中存放于总部的资料库伺服器,客户端不保存任何业务数据和资料库连线信息,也无需进行什幺数据同步,所以这些安全问题也就自然不存在了。

一致性

在C/S结构软体的解决方案里,对于异地经营的大型集团都採用各地安装区域级伺服器,然后再进行数据同步的模式。这些伺服器每天必须同步完毕之后,总部才可得到最终的数据。由于局部网路故障造成个别资料库不能同步不说,即使同步上来,各伺服器也不是一个时点上的数据,数据永远无法一致,不能用于决策。对于B/S结构的软体来讲,其数据是集中存放的,客户端发生的每一笔业务单据都直接进入到中央资料库,不存在数据一致性的问题。

实时性

在集团级套用里,C/S结构不可能随时随地看到当前业务的发生情况,看到的都是事后数据;而B/S结构则不同,它可以实时看到当前发生的所有业务,方便了快速决策,有效地避免企业损失

溯源

由于B/S结构的数据是集中存放的,所以总公司可以直接追溯到各级分支机构(分公司、门店)的原始业务单据,也就是说看到的结果可溯源。大部分C/S结构的软体则不同,为了减少数据通信量,仅仅上传中间报表数据,在总部不可能查到各分支机构(分公司、门店)的原始单据。

回响及时

企业的业务流程、业务模式不是一成不变的,随着企业不断发展,必然会不断调整。软体供应商提供的软体也不是完美无缺的,所以,对已经部署的软体产品进行维护、升级是正常的。C/S结构软体,由于其套用是分布的,需要对每一个使用节点进行程式安装,所以,即使非常小的程式缺陷都需要很长的重新部署时间,重新部署时,为了保证各程式版本的一致性,必须暂停一切业务进行更新(即“休克更新”),其服务回响时间基本不可忍受。而B/S结构的软体不同,其套用都集中于总部伺服器上,各套用结点并没有任何程式,一个地方更新则全部应用程式更新,可以做到快速服务回响。

套用限制

C/S结构软体仅适用于区域网路内部用户或宽频用户(1兆以上);而我们的B/S结构软体可以适用于任何网路结构(包括33.6K拨号入网方式),特别适于宽频不能到达的地方(例如迪信通集团的某些分公司,仅靠电话上网即可正常使用软体系统)。

运用比较

管理软体是为企业服务的,企业选用管理软体不仅要从技术上考虑,还要从商业运用方面来考虑,下文将从商业运用的角度对两种结构的软体进行比较。

投入成本

B/S结构软体一般只有初期一次性投入成本。对于集团来讲,有利于软体项目控制和避免IT黑洞,而C/S结构的软体则不同,随着套用範围的扩大,投资会连绵不绝。

硬体保护

在对已有硬体投资的保护方面,两种结构也是完全不同的。当套用範围扩大,系统负载上升时,C/S结构软体的一般解决方案是购买更高级的中央伺服器,原伺服器放弃不用,这是由于C/S软体的两层结构造成的,这类软体的伺服器程式必须部署在一台计算机上;而B/S结构(如e通管理系列)则不同,随着伺服器负载的增加,可以平滑地增加伺服器的个数并建立集群伺服器系统,然后在各个伺服器之间做负载均衡。有效地保护了原有硬体投资。

企业扩张

对于成长中的企业,快速扩张是它的显着特点。例如迪信通公司,每年都有新的配送中心成立,每月都有新的门店开张。套用软体的快速部署,是企业快速扩张的必要保障。对于C/S结构的软体来讲,由于必须同时安装伺服器和客户端、建设机房、招聘专业管理人员等,所以无法适应企业快速扩张的特点。而B/S结构软体,只需一次安装,以后只需设立账号培训即可。
其次,随着软体套用的扩张,对系统维护人才的需求有可能成为企业快速扩张的制约瓶颈。如果企业开店上百家,对计算机专业人才的需求就将是企业面临的巨大挑战之一。
抛开人力成本不说,一个企业要招到这幺多的专业人才并且留住他们也是不可能的。所以,採用C/S结构软体必然会制约企业未来的发展。另外,大多数C/S结构的软体都是通过ODBC直接连到资料库的,安全性差不说,其用户数也是受限的。每个连到资料库的用户都会保持一个ODBC连线,都会一直占用中央伺服器的资源,对中央伺服器的要求非常高,使得用户扩充受到极大的限制。而B/S结构软体则不同,所有的用户都是通过一个JDBC连线缓冲池连线到资料库的,用户并不保持对资料库的连线,用户数基本上是无限的。
从以上的分析可以看出,B/S结构的管理软体有着C/S结构软体无法比拟的优势。而从国外的发展趋势来看,也验证了这一点。国外大型企业管理软体要幺已经是B/S结构的,要幺正在经历从C/S到B/S结构的转变。从国内诸多软体厂商积极投入开发B/S结构软体的趋势来看,B/S结构的大型管理软体势必在将来的几年内占据管理软体领域的主导地位。

本文由'犹含云'发布,不代表演示站立场,转载/删除联系作者,如需删除请-> 关于侵权处理说明