ERP之软件系统架构- C/S与B/S区别与简介_erp b/s与c/s架构不一样-程序员宅基地

技术标签: 软件体系架构  Software  ERP体系结构  CS与BS区别  

一、什么是C/S和B/S


要想对“C/S”和“B/S”技术发展变化有所了解,首先必须搞清楚三个问题。


第一、什么是C/S结构。


C/S(Client/Server)结构,即大家熟知的客户机和服务器结构。它是软件系统
体系结构,通过它可以充分利用两端硬件环境的优势,将任务合理分配到Client端和Server端来实现,降低了系统的通讯开销。目前大多数应用软件系
统都是Client/Server形式的两层结构,由于现在的软件应用系统正在向分布式的Web应用发展,Web和Client/Server应用都可以
进行同样的业务处理,应用不同的模块共享逻辑组件;因此,内部的和外部的用户都可以访问新的和现有的应用系统,通过现有应用系统中的逻辑可以扩展出新的应
用系统。这也就是目前应用系统的发展方向。


传统的C/S体系结构虽然采用的是开放模式,但这只是系统开发一级的开放性,在特定的应用中
无论是Client端还是Server端都还需要特定的软件支持。由于没能提供用户真正期望的开放环境,C/S结构的软件需要针对不同的操作系统系统开发
不同版本的软件,加之产品的更新换代十分快,已经很难适应百台电脑以上局域网用户同时使用。而且代价高,效率低。


第二、什么是B/S结构。


B/S(Browser/Server)结构即浏览器和服务器结构。它是随着
Internet技术的兴起,对C/S结构的一种变化或者改进的结构。在这种结构下,用户工作界面是通过WWW浏览器来实现,极少部分事务逻辑在前端
(Browser)实现,但是主要事务逻辑在服务器端(Server)实现,形成所谓三层3-tier结构。这样就大大简化了客户端电脑载荷,减轻了系统维护与升级的成本和工作量,降低了用户的总体成本(TCO)。


以目前的技术看,局域网建立B/S结构的网络应
用,并通过Internet/Intranet模式下数据库应用,相对易于把握、成本也是较低的。它是一次性到位的开发,能实现不同的人员,从不同的地
点,以不同的接入方式(比如LAN,WAN,Internet/Intranet等)访问和操作共同的数据库;它能有效地保护数据平台和管理访问权限,服
务器数据库也很安全。特别是在JAVA这样的跨平台语言出现之后,B/S架构管理软件更是方便、快捷、高效。


第三、管理软件主流技术。


管理软件技术的主流技术与管理思想一样,也经历了三个发展时期。首先,界面技术从上世纪DOS字符界面到Windows图形界面(或图形用户界面GUI),直至Browser浏览器界面三个不同的发展时期。其次,今天所有电脑的
浏览器界面,不仅直观和易于使用,更主要的是基于浏览器平台的任何应用软件其风格都是一样的,使用人对操作培训的要求不高,而且软件可操作性强,易于识
别;再者,平台体系结构也从过去单用户发展到今天的文件/服务器(F/S)体系、客户机/服务器(C/S)体系和浏览器/服务器(B/S)体系。


二、C/S和B/S之比较


C/S和B/S是当今世界开发模式技术架构的两大主流技术。C/S是美国Borland公司
最早研发,B/S是美国微软公司研发。目前,这两项技术以被世界各国所掌握,国内公司以C/S和B/S技术开发出产品也很多。这两种技术都有自己一定的市
场份额和客户群,各家企业都说自己的管理软件架构技术功能强大、先进、方便,都能举出各自的客户群体,都有一大群文人墨客为自己摇旗呐喊,广告满天飞,可
谓仁者见仁,智者见智。


1、C/S架构软件的优势与劣势


(1)、应用服务器运行数据负荷较轻。


最简单的C/S体系结构的数据库应用由两部分组成,即客户应用程序和数据库服务器程序。二者可分别称为前台程序与后台程序。运行数据库服务器程序的机器,也称为应用服务器。一旦服务器程序被启动,就随时等待响应客户程序发来的请求;客户应用程序运行在用户自己的电脑上,对应于数据库服务器,可称为客户电脑,当需要对数据库中的数据进行任何操作时,客户程序就自动地寻找服务器程序,并向其发出请求,服务器程序根据预定的规则作出应答,送回结果,应用服务器运行数据负荷较轻。


(2)、数据的储存管理功能较为透明。


在数据库应用中,数据的储存管理功能,是由服务器程序和客户应用程序分别独立进行的,前台应
用可以违反的规则,并且通常把那些不同的(不管是已知还是未知的)运行数据,在服务器程序中不集中实现,例如访问者的权限,编号可以重复、必须有客户才能
建立定单这样的规则。所有这些,对于工作在前台程序上的最终用户,是“透明”的,他们无须过问(通常也无法干涉)背后的过程,就可以完成自己的一切工作。
在客户服务器架构的应用中,前台程序不是非常“瘦小”,麻烦的事情都交给了服务器和网络。在C/S体系的下,数据库不能真正成为公共、专业化的仓库,它受到独立的专门管理。


(3)、C/S架构的劣势是高昂的维护成本且投资大。


首先,采用C/S架构,要选择适当的数据库平台来实现数据库数据的真正“统一”,使分布于两
地的数据同步完全交由数据库系统去管理,但逻辑上两地的操作者要直接访问同一个数据库才能有效实现,有这样一些问题,如果需要建立“实时”的数据同步,就
必须在两地间建立实时的通讯连接,保持两地的数据库服务器在线运行,网络管理工作人员既要对服务器维护管理,又要对客户端维护和管理,这需要高昂的投资和复杂的技术支持,维护成本很高,维护任务量大。


其次,传统的C/S结构的软件需要针对不同的操作系统系统开发不同版本的软件,由于产品的更新换代十分快,代价高和低效率已经不适应工作需要。在JAVA这样的跨平台语言出现之后,B/S架构更是猛烈冲击C/S,并对其形成威胁和挑战。


2、B/S架构软件的优势与劣势


(1)、维护和升级方式简单。


目前,软件系统的改进和升级越来越频繁,B/S架构的产品明显体现着更为方便的特性。对一个稍微大一点单位来说,系统管理人员如果需要在几百甚至上千部电脑之
间来回奔跑,效率和工作量是可想而知的,但B/S架构的软件只需要管理服务器就行了,所有的客户端只是浏览器,根本不需要做任何的维护。无论用户的规模有
多大,有多少分支机构都不会增加任何维护升级的工作量,所有的操作只需要针对服务器进行;如果是异地,只需要把服务器连接专网即可,实现远程维护、升级和
共享。所以客户机越来越“瘦”,而服务器越来越“胖”是将来信息化发展的主流方向。今后,软件升级和维护会越来越容易,而使用起来会越来越简单,这对用户
人力、物力、时间、费用的节省是显而易见的,惊人的。因此,维护和升级革命的方式是“瘦”客户机,“胖”服务器。


(2)、成本降低,选择更多。


大家都知道windows在桌面电脑上几乎一统天下,浏览器成为了标准配置,但在服务器操作系统上windows并不是处于绝对的统治地位。现在的趋势是凡使用B/S架构的应用管理软件,只需安装在Linux服务器上即可,而且安全性高。所以服务器操作系统的选择是很多的,不管选用那种操作系统都可以让大部分人使用windows作为桌面操作系统电脑不受影响,这就使的最流行免费的Linux操作系统快速发展起来,Linux除了操作系统是免费的以外,连数据库也是免费的,这种选择非常盛行。


比如说很多人每天上“网易”(原文为新浪)网,只要安装了浏览器就可以了,并不需要了解“网易”的服务器用的是什么操作系统,而事实上大部分网站确实没有使用windows操作系统,但用户的电脑本身安装的大部分是windows操作系统。


(3)、应用服务器运行数据负荷较重。


由于B/S架构管理软件只安装在服务器端(Server)上,网络管理人员只需要管理服务器就行了,用户界面主要事务逻辑在服务器(Server)端完全通过WWW浏览器实现,极少部分事务逻辑在前端(Browser)实现,所有的客户端只有浏览器,网络管理人员只需要做硬件维护。但是,应用服务器运行数据负荷较重,一旦发生服务器“崩溃”等问题,后果不堪设想。因此,许多单位都备有数据库存储服务器,以防万一。




3,C/S与B/S区别


Client/Server是建立在局域网的基础上的,Browser/Server是建立在广域网的基础上的。


(1)、硬件环境不同:


C/S一般建立在专用的网络上,小范围里的网络环境,局域网之间再通过专门服务器提供连接和数据交换服务。


B/S建立在广域网之上的,不必是专门的网络硬件环境,例如电话上网,租用设备,信息自己管理,有比C/S更强的适应范围,一般只要有操作系统和浏览器就行。


(2)、对安全要求不同


C/S一般面向相对固定的用户群,对信息安全的控制能力很强。一般高度机密的信息系统采用C/S结构适宜,可以通过B/S发布部分可公开信息。


B/S建立在广域网之上,对安全的控制能力相对弱,面向是不可知的用户群。


(3)、对程序架构不同


C/S程序可以更加注重流程,可以对权限多层次校验,对系统运行速度可以较少考虑。


B/S对安全以及访问速度的多重的考虑,建立在需要更加优化的基础之上。比C/S有更高的要求,B/S结构的程序架构是发展的趋势,从MS的.Net系列的BizTalk2000Exchange2000等,全面支持网络的构件搭建的系统。SUN和IBM推的JavaBean构件技术等,使B/S更加成熟。


(4)、软件重用不同


C/S程序可以不可避免的整体性考虑,构件的重用性不如在B/S要求下的构件的重用性好。


B/S对的多重结构,要求构件相对独立的功能。能够相对较好的重用。就如买来的餐桌可以再利用,而不是做在墙上的石头桌子。


(5)、系统维护不同


系统维护是软件生存周期中,开销大,相当重要


C/S程序由于整体性,必须整体考察,处理出现的问题以及系统升级难,可能是再做一个全新的系统。


B/S构件组成方面构件个别的更换,实现系统的无缝升级。系统维护开销减到最小,用户从网上自己下载安装就可以实现升级。


(6)、处理问题不同


C/S程序可以处理用户面固定,并且在相同区域,安全要求高的需求,与操作系统相关,应该都是相同的系统。


B/S建立在广域网上,面向不同的用户群,分散地域,这是C/S无法作到的,与操作系统平台关系最小。


(7)、用户接口不同


C/S多是建立在Window平台上,表现方法有限,对程序员普遍要求较高。


B/S建立在浏览器上,有更加丰富和生动的表现方式与用户交流,并且大部分难度减低,降低开发成本。


(8)、信息流不同


C/S程序一般是典型的中央集权的机械式处理,交互性相对低。


B/S信息流向可变化,B-B、B-C、B-G等信息流向的变化,更象交易中心。


感谢http://blog.chinaunix.net/uid-10477833-id-2952887.html


版权声明:本文为博主原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。
本文链接:https://blog.csdn.net/lqhed/article/details/53736438

智能推荐

【ci框架】CI框架支持$_GET两种方法_ci框架 获取get参数-程序员宅基地

文章浏览阅读6k次。首先ci框架在2.0以后就支持GET了,所以使用毫无压力!1.使用get传递参数的方法:CI会自动将超过URI的两部分作为参数传给方法。可以去看手册:CI框架中文手册如下:phpddt.com/index.php/Phpddt/func/a/b那么控制器中的方法php代码如下:phpclass Phpddt extends CI_Controller {_ci框架 获取get参数

BFS广度优先搜索算法//宽度优先搜索算法_bfs判断是否处于同一层-程序员宅基地

文章浏览阅读665次。BFS宽度优先搜索算法,又称广度优先搜索,是最简便的图的搜索算法之一,这一算法也是很多重要的图的算法的原型。Dijkstra单源最短路径算法和Prim最小生成树算法都采用了和宽度优先搜索类似的思想。其别名又叫BFS,属于一种盲目搜寻法,目的是系统地展开并检查图中的所有节点,以找寻结果。换句话说,它并不考虑结果的可能位置,彻底地搜索整张图,直到找到结果为止。核心思想是:从初始结点开始,应用算符生成第一层结点,检查目标结点是否在这些后继结点中,若没有,再用产生式规则将所有第一层的结点逐一扩展,得到第二层_bfs判断是否处于同一层

Android自定义View系列之可伸缩的TextView_textellipsizespanutil()' has private access in 'co-程序员宅基地

文章浏览阅读1.2w次,点赞4次,收藏15次。在写博客之前,告诉大家一个消息,我开通了自己的微信公众账号,如果你喜欢我的文章,希望关注我的微信公众号,我会定期与大家分享最新的博客文章,以及移动互联网最新动态。 我的微信公众号:yuanzeyao_android 二维码: 经常访问我博客的同学应该注意到了我的博客大部分是关于分析Android系统原理的,很少涉及应用层的知识,但是想要开发一个用户欢迎的App,没有一个炫酷的UI肯定是不行的,_textellipsizespanutil()' has private access in 'com.shoptemai.utils.textell

Oracle安装配置手册-程序员宅基地

文章浏览阅读108次。关键字:oracle linux 安装 一、前期准备 *FTP客户端软件 *Xmanager *pl/sql dev *11G数据库安装程序,适用于Linux 64位,数据库版本11.2。 二、创建用户组、用户 1)添加用户组: groupadd oinstall groupadd dba 2)添加用户: useradd –g oinstall –G dba –d /ho..._2.为用户oracle指定家目录为/opt/ftp

Android逆向之旅---解析编译之后的AndroidManifest文件格式_编译androidmanifest-程序员宅基地

文章浏览阅读231次。Android逆向之旅---解析编译之后的AndroidManifest文件格式_编译androidmanifest

几种扫描shader效果_scan field shader.-程序员宅基地

文章浏览阅读987次。https://github.com/alpacasking/ScanLine/blob/master/my_demo.gifhttps://github.com/AsehesL/ScanEffect_scan field shader.

随便推点

JS中的静态属性及实例属性_js中构造函数的静态属性-程序员宅基地

文章浏览阅读2.2k次,点赞3次,收藏2次。在回忆怎么判断一个对象是一个数组的方法时,想到了Array.isArray()这个方法,突然有点不理解,这是什么意思,isArray()怎么可以通过Array直接调用,这样的情况很多,比如Object上的方法。看了几篇文章,简单理解是:JS中有“静态属性”和实例属性。function Person(name) {this.name = name}Person.setName = (name..._js中构造函数的静态属性

【Bug】os.environ[‘CUDA_VISIBLE_DEVICES‘]=‘0’指定GPU无法生效解决方案_os.environ['cuda_visible_devices'] = '0-程序员宅基地

文章浏览阅读6.3k次,点赞4次,收藏6次。在利用下面的语句指定GPU为仅为"1",但是用nvidia-smi查看GPU使用时,仍默认为"0"import ioimport osimport timeimport jsonimport cv2import numpy as npfrom flask import Flask, jsonify, requestfrom *** import **** # torch等,举个例子os.environ['CUDA_VISIBLE_DEVICES'] = '1'解决方案:将上述语句放_os.environ['cuda_visible_devices'] = '0

SpringBoot使用@Valid注解校验参数无效_springboot @valid注解不生效-程序员宅基地

文章浏览阅读6.3k次,点赞8次,收藏14次。SpringBoot项目结合Validator进行参数的校验,发现使用@Valid注解无效。@Valid和@RequestBody百度之后,有的说是注解@Valid和@RequestBody一起使用时候,@Valid注解必须在@RequestBody注解之前使用。如下:改成上面之后, 再次测试,发现还是没有校验参数。缺少hibernate的Validator依赖然后继续百度,看到有的文章中引入了javax.validation同时,也引入了hibernate-validator依赖,于是_springboot @valid注解不生效

HDU 1863 畅通工程 prim算法 最小生成树_学习是唯一赶超资本家的的最短路径-程序员宅基地

文章浏览阅读427次。原题: http://acm.hdu.edu.cn/showproblem.php?pid=1863由于只给了一部分路,所以有的地方可能不能连通,我们只需要判断在所有点都被标记完之前是否存在未被标记的点到原点的距离为INF就可以了。参考代码如下:#include"cstdio"#include"iostream"#include"string.h"#define INF 0x7f7f7f7f_学习是唯一赶超资本家的的最短路径

Multisim 中的-Error: Unable to converge during transient analysis. Consider increasing the ABSTOL, VNT-程序员宅基地

文章浏览阅读1.3w次,点赞3次,收藏3次。这种错误的原因通过那个收敛助手是不饿能通过的出现这种结果的原因是没有给定参考点 所以,我们只需要在其中加入地就可以了加入地之后便可以正常运行了..._error: unable to converge during transient analysis. consider increasing the

设计模式(创建型)之工厂方法模式(Factory Method Pattern)_工厂方法(factory method)-程序员宅基地

文章浏览阅读3.4k次。前面介绍了简单工厂模式,在最后代码示例部分展示的程序猿技能工厂类时提到了一个严重的问题。当FactoryCreater中需要引入新对象时需要修改源代码,这违背了“开放封闭原则”,使得具体产品与工厂类之间的耦合度高,严重影响了系统的灵活性和扩展性。_工厂方法(factory method)

推荐文章

热门文章

相关标签