【第22期】观点:IT 行业加班,到底有没有价值?

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

原创 2016年08月29日 19:39:35

一、背景介绍

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

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

二、优缺点比较

1.   C/S优缺点

(1) 优点:

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

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

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

操作界面漂亮、形式多样,可以充分满足客户自身的个性化要求

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

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

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

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

 

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

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

(2) 缺点:

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

 

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

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

尽管一些中间语言,如java.net通过虚拟机可以解决运行平台的差异性,但涉及到Native相关的组件,仍然需要考虑平台差异性,典型的如各种解码器,第三方组件需要区分x86x64版本。

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

发生一次升级,则所有客户端的程序都需要更新。

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

l  用户群固定,适用面窄

通常不适合面向一些不可知的用户,因此适用面窄,通常用于局域网。

2.   B/S优缺点

1)优点:

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

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

业务扩展简单方便,通过增加网页即可增加服务器功能

 

l 维护简单方便,只需要改变网页,即可实现所有用户的同步更新

这是BS架构非常突出的一个优点。

l 开发简单,共享性强

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

2)缺点:

l 个性化特点明显降低,无法实现具有个性化的功能要求

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

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

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

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

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

为了提高使用体验,通常会采用动态刷新网页的方式,给服务器带来一定的压力(通过AjaxWebSocket在一定程度上可以缓解这方面的问题)。

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

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

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

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

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

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

浏览器作为界面展示的平台和脚本语言的执行环境,它无法超越浏览器所能支持的功能特性。ActiveXFlashJava Servlet都是为了扩展功能曾经使用的技术,但是因为兼容性、安全性等方面的问题,已经基本被淘汰。

3.   对比分析

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



 



C/S



B/S


开发


开发难度



对开发人员要求较高;



开发门槛低;


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


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



功能/交互能力



自主性强;


交互方式更丰富;



依赖于浏览器;


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



部署



安装



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



只要部署服务器



升级



所有客户端都要升级



只需更新服务器



运行



操作系统/类型



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



只要有兼容的浏览器即可



性能



最大化利用终端性能



性能相对较低



维护



 



要求高



方便



 



个性化需求



单独更新客户端



不支持



安全性



 



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



需要花费精力设计

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

采用何种架构,需要对软件需求进行细致的了解,最终来确定使用的架构,不能单纯的追求技术的先进性。而未来发展趋势,是将B/SC/S的优势完美的结合起来,既能以B/S的方式发布运行,又能同时具有C/S极强的可操作性。

版权声明:本文为博主原创文章,未经博主允许不得转载。 举报

相关文章推荐

BS架构和CS架构的优缺点

1、CS、BS架构定义   CS(Client/Server):客户端----服务器结构。C/S结构在技术上很成熟,它的主要特点是交互性强、具有安全的存取模式、网络通信量低、响应速度快、利于处理大...

网络编程三要素

1、什么是网络编程? 网络编程:使用编程语言实现多台计算机的通信。 2、网络编程三大要素。 (1)IP地址:网络中每一台计算机的唯一标识,通过IP地址找到指定的计算机。 (2)端口:用于标识进程的逻辑...

MVC架构

1、MVC简介   MVC模式(Model-View-Controller)是软件工程中的一种软件架构模式,最早为Trygve Reenskaug 提出,为施乐帕罗奥多研究中心(Xe...

如何用Excel画出一幅漂亮的甘特图?

假如我要做成甘特图的是如图中表: 选中表内内容,单击插入栏,选择图示图标,点开之后选择堆积图。会出现下图所示红方框内的图: 选择上面红色圆形框内样式,图如下: 下一步,图表工具,设计...

C/S与B/S的区别

C/S是Client/Server的缩写。客户端需要安装专用的客户端软件。       B/S是Brower/Server的缩写。客户机上只要安装一个浏览器。在这种结构下,用户界面完全通过WWW浏览...

简述C/S和B/S模式的区别

C/S模式: 客户端/服务器模式 工作原理: Client向Server提交一个请求;Server则使用一些方法处理这个请求,并将效果返回给ClientB/S结构: Browser/Serve...

你知道C/S和B/S两种架构有什么区别吗?

2006_photo12 C/S和B/S,是再普通不过的两种软件架构方式,都可以进行同样的业务处理,甚至也可以用相同的方式实现共同的逻辑。既然如此,为何还要区分彼此呢?那我们就来看看二者的区...

C/S架构与B/S架构的不同

一、C/S架构 1. C/S架构及其背景 C/S架构是一种比较早的软件架构,主要应用于局域网内。在这之前经历了集中计算模式,随着计算机网络的进步与发展,尤其是可视化工具的应用,出现过两层C...

B/S 开发和 C/S开发的区别

导读:每天都从应用中心下载很多软件安装尝试,在自己的电脑上也装了很多软件,但是,就出现了一个问题,好比QQ,为什么有了APP,还要有网站应用呢?由此,结合到自己的学习,就衍生出一个问题:C/S 开发就...

C/S和B/S架构的区别

C/S,顾名思义就是Client/Server(客户端/服务器)架构,通过将任务合理的分配在客户端和服务器端,降低系统的通信开销,充分利用两边硬件环境的优势; B/S架构,顾名思义就是Browser...
收藏助手
不良信息举报
您举报文章:深度学习:神经网络中的前向传播和反向传播算法推导
举报原因:
原因补充:

(最多只允许输入30个字)