CS架构也称为两层架构,客户端与服务端进行通信,服务端替客户端做一些计算。
一些常见的CS架构:
桌面程序和远程数据库之间
浏览器和web服务器之间
手机和服务器之间
FTP客户端和FTP服务器之间
两层架构的优势在早期的CS程序中,桌面程序和数据库服务构成的系统是常见的例子。大部分的逻辑都在桌面程序来完成,所以这种模式也叫做“fat client”模式,如下图:
将大量的逻辑计算都放在客服端对于CS架构来说有一些缺陷,首先,会导致潜在的竞争条件(并行问题)当两个客户端尝试同时更新服务器端的数据库。如果两个客户端应用同时的读取、更细、保存同一个数据,哪个版本的数据应该被保存呢?
fat client模式下的另外一个问题是客户端程序必须安装在每个客户端机器上。相比较过去的人工安装,现在已经是自动安装了,这个有利于进行集中化管理。
上述的缺点正是催生三层或者更多层软件架构的原因。