客户机/服务器(即C/S,Client/Server)结构是一种广泛流行的分布式计算软件体系结构,经历了三种结构的演化:两层分布式表现结构、两层分布式数据结构和N层分布式数据和应用结构。
C/S软件体系结构是基于资源不对等并要实现共享而提出来的,它定义了工作站如何与服务器相连,以实现数据和应用分布到多个处理机上。C/S体系结构有三个主要组成部分:数据库服务器、客户应用程序和网络。C/S 结构示意图如下图所示:

服务器端的任务包括:
(1)数据库安全性的要求。
(2)数据库访问并发性的控制。
(3)数据库前端的客户应用程序的全局数据完整性规则。
(4)数据库的备份与恢复。
客户端的任务包括:
(1)提供用户与数据库交互的界面。
(2)向数据库服务器提交用户请求并接收来自数据库服务器的信息。
(3)利用客户应用程序对存在于客户端的数据执行应用逻辑要求。
C/S结构的一般处理流程如下图所示。

三层C/S结构就是在客户端与数据库之间加入了一个中间层,又称为组件层,也就是应用程序将业务规则、数据访问、合法性校验等工作放到了中间层进行处理,通常情况下,客户端不直接与数据库进行交互。如下图所示,一个典型的三层结构中,应用服务器将用户与数据隔开。

C/S 架构也可以看做是胖客户端架构。因为客户端需要实现绝大多数的业务逻辑和界面展示。这种架构中,作为客户端的部分需要承受很大的压力,因为显示逻辑和事务处理都包含在其中,通过与数据库的交互(通常是SQL或存储过程的实现)来达到持久化数据,以此满足实际项目的需要。
优点:
C/S架构的界面和操作可以很丰富。
安全性能可以很容易保证,实现多层认证也不难。
由于只有一层交互,因此响应速度较快。
缺点:
适用面窄,通常用于局域网中。
用户群固定。由于程序需要安装才可使用,因此不适合面向一些不可知的用户。
维护成本高,发生一次升级,则所有客户端的程序都需要改变。

