应用架构B/S与C/S优劣比较(一)

1、背景介绍

C/S(Client/Server):客户端/服务器结构。界面表示、事务处理逻辑放在客户端,服务端主要负责数据的存储管理,这就是胖客户端模式。而在三层架构模式下,表示层和少许的事务处理放在客户端,主要的事务处理逻辑放在业务应用服务端,同时数据存储管理仍然为独立的一层。

B/S(Browser/Server):浏览器/服务器结构,界面显示逻辑放在浏览器,事务处理逻辑则在Web Server。极少数的逻辑在前端实现,但主要的事务逻辑在服务器端实现。一般由Browser、Web Server、数据存储Server造成三层架构。

2、优缺点比较
1. C/S优缺点

(1) 优势:

l 能充分发挥客户端PC的处理能力

不少工做能够在客户端处理后在提交给服务器,所以CS客户端的响应速度快。例如,能够在客户端完成20万条数据的排序、内容筛选,函数计算等;显示包含上万节点的关系图。

客户端应用能够利用工做终端的多核CPU、内存、GPU等硬件资源。像AutoCAD、Photoshop、游戏软件客户端等,还会针对显卡进行特殊优化。

l 操做界面漂亮、形式多样,能够充分知足客户自身的个性化要求

客户端应用的自主性更强,客观的讲,浏览器自身就是一个客户端应用。

因此,操做界面漂亮与否应该与所使用的开发语言和框架、设计与开发人员能力、应用开发资源投入等因素密切相关。

客户端应用能够集成第三方软硬件,例如指纹仪、智能卡、加密狗等;可使用扩展屏幕,例如PowerPoint的演讲者模式、大屏显示等。

l CS结构的管理信息系统具备较强的事务处理能力,能实现复杂的业务流程

l 容易保证安全性,程序更注重流程

C/S通常面向相对固定的用户群,能够对权限进行多层次检验,提供了更安全的存取模式。通常高度机密的信息系统采用C/S结构为宜。

(2) 缺点:

l 须要专门的客户端安装程序,分布功能弱,快速部署安装和配置困难

l 兼容性差,须要考虑运行平台,如操做系统版本

针对不一样的平台,须要使用不一样的开发工具开发。操做系统版本(win 7/win 10/Linux)、系统类型(x86/x64)。

尽管一些中间语言,如java、.net经过虚拟机能够解决运行平台的差别性,但涉及到Native相关的组件,仍然须要考虑平台差别性,典型的如各类解码器,第三方组件须要区分x86和x64版本。

l 开发、维护成本较高,须要具备必定专业水准的技术人员才能完成

发生一次升级,则全部客户端的程序都须要更新。

与客户端的形式多样、能够知足客户个性化要求相对应的就是对开发人员的要求也比较高。

l 用户群固定,适用面窄

一般不适合面向一些不可知的用户,所以适用面窄,一般用于局域网。

2. B/S优缺点

(1)优势:

l 分布性强,客户端零维护

只要有网络、浏览器,就能够随时随地进行查询、浏览等业务处理。

l 业务扩展简单方便,经过增长网页便可增长服务器功能

l 维护简单方便,只须要改变网页,便可实现全部用户的同步更新

这是BS架构很是突出的一个优势。

l 开发简单,共享性强

有大量的第三方BS组件和技术,可用于后端开发、前端显示,所以从快速开发角度来看BS模式占有很大的优点。

(2)缺点:

l 个性化特色明显下降,没法实现具备个性化的功能要求

集成诸如指纹仪、摄像头、调用播放器变得困难。

虽然IE浏览器支持ActiveX扩展,可是在兼容性等方面又不尽如人意。

l 在跨浏览器上,BS架构不尽如人意

尤为是在对HTML5的支持上,各主流浏览器都存在或多或少的差别,但随着时间的推移,这种状况将会有很大的改观。

l 请求/响应模式带来的性能问题

为了提升使用体验,一般会采用动态刷新网页的方式,给服务器带来必定的压力(经过Ajax和WebSocket在必定程度上能够缓解这方面的问题)。

浏览器通常只负责界面表示,所以一些业务逻辑必须在服务器上完成,像异常状况处理、数据转换、操做日志等。

l 无状态方式下的会话控制成本

服务器端在保存数据的同时还要保存用户的状态,开发人员要精心设计提交的次序即信息的完整性,而对C/S而言只须要所有完成后提交便可。

l 在速度和安全性上须要花费巨大的设计成本

由于全部的操做是经过请求/响应模式工做,弱安全设计不到位,经过简单修改URL参数、篡改POST字段值就会产生安全性方面的问题。

l 功能弱化,难以实现传统模式下的特殊功能要求

浏览器做为界面展现的平台和脚本语言的执行环境,它没法超越浏览器所能支持的功能特性。ActiveX、Flash、Java Servlet都是为了扩展功能曾经使用的技术,可是由于兼容性、安全性等方面的问题,已经基本被淘汰。

3. 对比分析

从软件开发和运维最关注的方面进行对比:




C/S


B/S



开发

开发难度


对开发人员要求较高;



开发门槛低;


只要考虑浏览器的兼容状况;


须要考虑无状态条件下的会话控制;


功能/交互能力


自主性强;

交互方式更丰富;



依赖于浏览器;

功能弱化,存在没法实现的功能;


部署


安装


必须安装客户端程序;配置部署复杂;


只要部署服务器


升级


全部客户端都要升级


只需更新服务器


运行


操做系统/类型


区分操做系统和运行平台;



只要有兼容的浏览器便可



性能


最大化利用终端性能


性能相对较低


维护



要求高



方便


个性化需求


单独更新客户端


不支持



安全性


相对封闭,但也须要认真设计


须要花费精力设计

综合对比发现,B/S架构胜在开发相对简单,维护简单方便;而C/S架构胜在性能高自主性强。在这些方面,短时间内各自占据着独有的优点。

采用何种架构,须要对软件需求进行细致的了解,最终来肯定使用的架构,不能单纯的追求技术的先进性。而将来发展趋势,是将B/S与C/S的优点完美的结合起来,既能以B/S的方式发布运行,又能同时具备C/S极强的可操做性。
更多技术资讯可关注:gzitcast
相关文章
相关标签/搜索