客户/服务器模型

目录导航

客户/服务器模型概述

1、基本概念

n客户/服务器模型是所有网络应用的基础。客户/服务器分别指参与一次通信的两个 应用实体,客户方主动地发起通信请求,服务器方被动地等待通信的建立。

2、客户软件

任何一个应用程序当需要进行 远程访问时成为客户,这个应用程序也要完成一些本地的计算;

一般运行于用户的个人计算机上;

向服务器主动发起通信请求;

可以访问多个服务器,但一次只能访问一个;

不需要特殊的硬件和复杂的操作系统。

3、 服务器软件

是专用的提供某种服务的特权程序,可以同时处理多个远程客户;

一般在系统启动时被执行,并连续运行以处理多次会话;

被动的等待远程客户发起通信;

需要特殊的硬件和复杂的操作系统。

数据在客户和服务器之间是双向流动的,一般是客户发出请求,服务器给出响应。

4、 服务器软件的 并发性

由于 服务器软件要支持多个客户的同时访问,它必须具备 并发性。 服务器软件为每个新到的客户创建一个进程或 线程来处理和这个客户的通信。服务器方传送层实体使用客户的源 端口号和服务的端口号来确定正确的 服务器软件进程( 线程)。

5、 服务器软件的组成

服务器软件一般分为两部分:一部分用于接受请求并创建新的进程或线程,另一部分用于处理实际的通信过程。

6、客户/服务器之间使用的传送层协议

可以是基于连接的TCP协议,要求建立和释放连接,适用于可靠的交互过程;

也可以是无连接的UDP协议,适用于可靠性要求不高的或实时的交互过程;

同时使用TCP和UDP的服务,有两种 服务器软件的实现或服务器软件同时和TCP、UDP协议交互,不对客户做限制。

7、客户和服务器的交互

1) 支持协议:在INTERNET中,客户和服务器的交互通过使用TCP/IP协议栈来完成。因此,客户和服务器所在的机器要求支持完全的 协议栈。客户/服务器通过 套接字访问传送层服务。

2)多种服务:一台计算机上可以运行多个 服务器软件,但是要求计算机有强大的硬件资源(服务器级别的计算机)和 多任务操作系统(UNIX和WIN95/98/2000/NT)。

3)服务的标识:客户是通过服务的标识来访问某种服务的,比如在INTERNET中,服务是用 端口号来标识,UNIX在/etc/services文件中定义。 服务器软件启动时将其标识通知传送层实体。

客户/服务器模型的优点:

1.简化了执行体。可以在用户态服务器中构造各种各样的API,而不会有任何冲突或重复;可以很容易地加入新的API。

2.提高了可靠性。每个新的服务运行在内核之外,有自己的存储空间,这样可以免受其他服务的干扰,单个客户的失败不会使操作系统的其余部分崩溃。

3.为应用程序与服务间通过RPC调用进行通信提供了一致的方法,且没有限制其灵活性。函数桩(function stub)把消息传递进程对客户应用程序隐藏起来,函数桩是为了包装RPC调用的一小段代码。当通过一个API访问一个环境子系统或服务时,位于客户端应用程序中的函数桩把调用参数包作为一个消息发送给一个服务器子系统执行。

4.为分布式计算提供了适当的基础。典型地,分布式计算使用客户/服务器模块,通过分布的客户和服务器模块以及客户与服务器间的消息交换实现远程过程调用。对于Windows,本地服务器可以代表本地客户应用程序给远程服务器传递一条消息,客户不需要知道请求是在本地还是在远程得到服务的。实际上,一条请求是在本地还是远程得到服务,可以基于当前负载条件和动态配置的变化而动态变化。

相关百科
返回顶部
产品求购 求购