C/S与B/S架构本质上是一种技术实现架构,这与前边说的软件架构并不完全是一种维度。但是从软件架构的角度上讲,C/S与B/S架构在软件架构的发展历史上又是绕不过去的。
下面讲的这些东西,真是挺没有意思的,大家捏着鼻子看吧。
C/S是Client/Server的简称,是指客户机/服务器模式。C/S结构通常采取两层架构,也有三层架构。
客户端包含一个或多个在用户的电脑上运行的程序,负责完成与用户的交互操作。C/S架构是一种胖客户端架构,客户端需要实现绝大多数的业务逻辑和界面展示。这种架构中,作为客户端的部分需要承受很大的压力,因为显示逻辑和事务处理都包含在其中。
服务器端负责数据的管理,常见的有两种:一种是数据库服务器端,客户端通过数据库连接访问数据库服务器端的数据;另一种是Socket服务器端,客户端程序通过Socket与服务端程序通信,服务端程序。服务端程序则可能连接数据库,这种模式也被称为CS三层模式。
C/S架构在技术上成熟,它的主要优点是:
1、交互性强、界面和操作可以很丰富。
2、具有安全的存取模式,可以方便的实现多层认证。
3、响应速度快、利于处理大量数据。
4、在本机运行,能够直接对底层硬件进行操作。
C/S架构的主要缺点是:
1、缺少通用性,系统维护、升级需要重新设计和开发,增加了维护和管理的难度。
2、由于客户端由专用的语言写成,跨平台能力较差。必须重新开发,才能在不同系统平台下运行。
3、限于小型的局域网中使用。
4、程序只有安装才可使用,因此不适合面向不确定用户群的场景。
B/S是Browser/Serve的简称,是指浏览器/服务器模式。B/S是随着Internet技术的兴起而兴起的。B/S架构中,显示逻辑交给了Web浏览器,业务处理逻辑集中在后台的应用服务器上,避免了庞大的胖客户端,减少了客户端的压力。因为客户端包含的逻辑很少,因此也被称为瘦客户端。
B/S架构的优点:
1、客户端无需安装,只要有Web浏览器就可以进行运行。
2、BS架构可以直接放在广域网上,通过一定的权限控制实现多客户访问的目的,交互性较强。
3、BS架构无需升级多个客户端,升级服务器即可。
B/S架构的缺点:
1、尽管浏览器也有一定的标准,但在浏览器的兼容性是每一个B/S开发者要面临的挑战。相信大家都深有体现,尤其向那些在年还在作IE6适配的同志们致敬。
2、表现能力无法完全达到C/S的程度,且受安全机制的影响无法控制一些本地资源。
3、在用户操作的响应速度和安全性上需要付出更多的设计成本。
4、B/S架构交互基于请求-响应模式,通常需要浏览器端发起刷新才能更新数据,即使采用Ajax也只是一定程度的缓解,并没有完全解决实时通信的问题。
早期,很多B/S架构系统为了实现推送技术,所用的技术都是轮询。轮询是指由浏览器每隔一段时间(如每秒)向服务器发出HTTP请求,然后服务器返回最新的数据给客户端。这种传统的模式带来很明显的缺点,即浏览器需要不断的向服务器发出请求,然而HTTP请求与回复可能会包含较长的头部,其中真正有效的数据可能只是很小的一部分,所以这样会消耗很多带宽资源。在这种情况下,HTML5定义了WebSocket协议,能更好的节省服务器资源和带宽,并且能够更实时地进行通讯。WebSocket是HTML5开始提供的一种在单个TCP连接上进行全双工通讯的协议。浏览器和服务器只需要完成一次握手,两者之间就直接可以创建持久性的连接,并进行双向数据传输。
预览时标签不可点收录于话题#个上一篇下一篇