Client/Server随想

liujunsong 2002-05-28 02:11:00
漫谈

第一个题目:Client/Server
有人可能要问,"什么,你要给我们讲Client/Server,是不是太小瞧我们了?"
不是的,我先讲Client/Server是因为我认为这是一个非常重要的概念,而且很不幸,许多人对于这个基本概念的理解是错误的,狭隘的,而在这一点上的理解错误会在以后的其他技术学习中被不断扩大,最后造成非常大的误解,所以先要开始讲Client/Server.

首先要明确一个概念,我们谈的Client/Server,而不用中文的客户机/服务器这样的译名,是考虑到一旦采用中文的译名,其中就隐含了是两台机器的意思,这样就把一个概念偷换了.

问题: Client/Server来说是什么呢?
它并不单纯是一个计算机的术语,而是一个从生活中借来的术语.Client就是中文中的客户,用户,使用者,而Server就是和client相对应的东西,Client和Server之间的关系是一种服务的提供方,和服务的使用方之间的关系,这种关系是生活中普遍存在的关系.例如,我们去银行取钱,我们就是银行的Client,而银行作为一个整体是我们的Server.为我们提供服务的是银行的一套系统,而不仅仅是某一个具体的工作人员.这种关系,就是Client和Server之间的关系.Client/Server就是利用这种关系作为基础而构成的系统.
Client/Server是一种关系,一种提供服务和使用服务的关系.Client和Server相互依存而存在,没有Client,也就无所谓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的概念理解错了.
...全文
33 2 打赏 收藏 转发到动态 举报
写回复
用AI写文章
2 条回复
切换为时间正序
请发表友善的回复…
发表回复
mycode 2002-05-28
  • 打赏
  • 举报
回复
讲述得很好,很清晰。
只是深度不够,只举出了Web Service一种例子.
还有很多从C/S上发展出来的例子。
yihua_cai 2002-05-28
  • 打赏
  • 举报
回复
恩,有道理。你的理解已经提高到了抽象层次,分析的很好。
学习!

1,265

社区成员

发帖
与我相关
我的任务
社区描述
软件工程/管理 管理版
社区管理员
  • 研发管理社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧