初步理解client/server

来源:互联网 发布:网络免费赚钱项目 编辑:程序博客网 时间:2024/06/04 17:56

什么是client/server模式?

zhangdelie | 浏览 19111 次
推荐于2016-03-03 15:46:52最佳答案
有人可能要问,"什么,你要给我们讲Client/Server,是不是太小瞧我们了?"
不是的,我先讲Client/Server是因为我认为这是一个非常重要的概念,而且很不幸,许多人对于这个

基本概念的理解是错误的,狭隘的,而在这一点上的理解错误会在以后的其他技术学习中被不断扩大,

最后造成非常大的误解,所以先要开始讲Client/Server.

首先要明确一个概念,我们谈的Client/Server,而不用中文的客户机/服务器这样的译名,是考虑到一

旦采用中文的译名,其中就隐含了是两台机器的意思,这样就把一个概念偷换了.

问题: Client/Server来说是什么呢?
它并不单纯是一个计算机的术语,而是一个从生活中借来的术语.Client就是中文中的客户,用户,使

用者,而Server就是和client相对应的东西,Client和Server之间的关系是一种服务的提供方,和服务

的使用方之间的关系,这种关系是生活中普遍存在的关系.例如,我们去银行取钱,我们就是银行的Cli

ent,而银行作为一个整体是我们的Server.为我们提供服务的是银行的一套系统,而不仅仅是某一个

具体的工作人员.这种关系,就是Client和Server之间的关系.Client/Server就是利用这种关系作为

基础而构成的系统.
Client/Server是一种关系,一种提供服务和使用服务的关系.Client和Server相互依存而存在,没有C

lient,也就无所谓Server,没有Server,也就无所谓Client,两者是辨证的统一,是同一个事物的两个

方面.
当我们把Client和Server组合在一起作为一个系统时,就形成Client/Server系统,在计算机领域里,

当我们把一部分程序定义为使用者时,这部分程序就是Client,另一部分程序定义为提供者时,那部分

程序就是Server,计算机里的Client/Server系统就是某一部分程序充当服务的使用者,另外一部分程

序充当服务的提供者这样而构成的系统.举例说明:
操作系统和硬件系统之间的关系,就是Client与Server之间的关系.操作系统作为Client来调用硬件

系统所提供的功能.硬件系统是Server,操作系统是Client.
应用软件与操作系统之间的关系,就是Client与Server之间的关系,他们之间所提供的服务,叫做操作

系统的SDK或者API.
客户端应用软件和数据库服务器软件之间的关系,也是Client和Server之间的关系,他们之间的服务,

是数据库系统所提供的数据服务,而调用这一服务的方式,是SQL语言.

按照这个思路来考虑,会发现几乎所有的两者之间的关系都带有Client/Server的影子,但是由于文化

的差异,我们在理解Client/Server之间的关系时,会存在一些误区,下面一一进行讨论.

问题: Client与Server那个更重要呢?
这个问题其实是不存在的一个问题,是一个伪问题.在一个Client/Server系统中,Client和Server只

是两种不同的角色而已,它们之间的关系是相互独立,相互依存,相互需要,所以谈不上那个重要,那个

不重要,两者同样重要,它们之间的关系是协作的关系,合作的关系,而不是控制的关系.任何一个出现

问题,都会造成系统的失败,所以两者都重要.

理解了什么是Client,什么是Server,那么现在非常流行的Web Service就很好理解了,只不过是把这

种服务用Web的方式表现出来而已.至于那句口号"软件就是服务",用英文来描述"Software is

service",不也就一点也不难理解了嘛.

几乎所有的一切软件之间的关系,都可以理解成为Client/Server这样的关系,无论它们以数据服务的

形式出现,以文件服务的形式出现,以邮件服务的形式出现,以Web页面形式出现,以应用程序服务形式

出现,究其本质,仍然逃不出Client/Server这个大模式.

我们现在理解许多新概念理解不了,根本的原因就是把Client/Server的概念理解错了.
原创粉丝点击