19-客户端服务器架构
2.17 客户端/服务器架构
本书有多处论及客户端/服务器应用程序的设计和实现。
客户端/服务器应用由两个组件进程组成。
- 客户端:向服务器发送请求消息,请求服务器执行某些服务。
- 服务器:分析客户端的请求,执行相应的动作,然后,向客户端回发响应消息。
有时,服务器与客户端之间可能需要就一次服务而进行多次交互。
客户端应用通常与用户打交道,而服务器应用则提供对某些共享资源的访问。一般说来,都是众多客户端进程与为数不多的一个或几个服务器端进程进行通信。
客户端和服务器既可以驻留于同一台计算机上,也可以位于联网的不同计算机上。客户端和服务器使用2.10节所讨论的IPC机制来实现彼此通信。
服务器可以提供各种服务,如下所示。
- 提供对数据库或其他共享信息资源的访问。
- 提供对远程文件的跨网访问。
- 对某些商业逻辑进行封装。
- 提供对共享硬件资源的访问(比如,打印机)。
- 提供WWW服务。
将某项服务封装于单独的服务器应用中,这一做法原因很多,举例如下。
- 效率:较之于在本地的每台计算上提供相同资源,在服务器应用管理之下提供资源的一份实例,则要节约许多。
- 控制、协调和安全:由于资源(尤其是信息资源)的统一存放,服务器既可以协调对资源的访问(例如,两个客户端不能同时更新同一信息),还可以保护资源安全,令其只对特定客户端开放。
- 在异构环境中运行:在网络中,客户端和服务器应用所运行的硬件平台和操作系统可以不同。