一、B/S架构
B/S结构(Browser/Server,浏览器/服务器模式),是WEB兴起后的一种网络结构模式,WEB浏览器是客户端最主要的应用软件。这种模式统一了客户端,将系统功能实现的核心部分集中到服务器上,简化了系统的开发、维护和使用。客户机上只要安装一个浏览器(Browser英 ['braʊzə]美 ['braʊzɚ]),如Netscape Navigator或Internet Explorer,服务器安装SQL Server、Oracle、MYSQL等数据库。浏览器通过Web Server 同数据库进行数据交互。
B/S结构图
由于Client/Server结构存在的种种问题,因此人们又在它原有的基础上提出了一种具有三层模式(3-Tier)的应用系统结构浏览器/服务器(Browser/Server)结构。Browser/Server结构是伴随着因特网的兴起,对Client/Server结构的一种改进。从本质上说,Browser/Server结构也是一种Client/Server结构,它可看作是一种由传统的二层模式Client/Server结构发展而来的三层模式Client/Server结构在Web上应用的特例。
Browser/Server结构主要是利用了不断成熟的Web浏览器技术:结合浏览器的多种脚本语言和ActiveX技术,用通用浏览器实现原来需要复杂专用软件才能实现的强大功能,同时节约了开发成本。
B/S最大的优点就是可以在任何地方进行操作而不用安装任何专门的软件,只要有一台能上网的电脑就能使用,
客户端零安装、零维护。系统的扩展非常容易。
B/S结构的使用越来越多,特别是由需求推动了AJAX技术的发展,它的程序也能在
客户端电脑上进行部分处理,从而大大的减轻了
服务器的负担;并增加了交互性,能进行局部实时刷新。
(1)维护和升级方式简单。当前,
软件系统的改进和升级越发频繁,
B/S架构的产品明显体现着更为方便的特性。对一个稍微大一点单位来说,
系统管理人员如果需要在几百甚至上千部电脑之间来回奔跑,效率和工作量是可想而知的,但B/S架构的软件只需要管理
服务器就行了,所有的
客户端只是
浏览器,根本不需要做任何的维护。无论用户的规模有多大,有多少分支机构都不会增加任何维护升级的工作量,所有的操作只需要针对
服务器进行;如果是异地,只需要把服务器连接专网即可,实现
远程维护、升级和共享。所以客户机越来越“瘦”,而
服务器越来越“胖”是将来信息化发展的主流方向。今后,软件升级和维护会越来越容易,而使用起来会越来越简单,这对用户人力、物力、时间、费用的节省是显而易见的,惊人的。因此,维护和升级革命的方式是“瘦”客户机,“胖”
服务器。
(2)成本降低,选择更多。大家都知道windows在
桌面电脑上几乎一统天下,
浏览器成为了标准配置,但在
服务器操作系统上windows并不是处于绝对的统治地位。 当前的趋势是凡使用B/S架构的应用管理软件,只需安装在Linux
服务器上即可,而且安全性高。所以
服务器操作系统的选择是很多的,不管选用哪种操作系统都可以让大部分人使用windows作为桌面电脑操作系统不受影响,这就使得最流行免费的
Linux操作系统快速发展起来,Linux除了操作系统是免费的以外,连数据库也是免费的,这种选择非常盛行。
比如说很多人每天上“新浪”网,只要安装了
浏览器就可以了,并不需要了解“新浪”的
服务器用的是什么
操作系统,而事实上大部分网站确实没有使用windows操作系统,但用户的电脑本身安装的大部分是windows操作系统。
(3)应用服务器运行数据负荷较重。由于B/S架构管理软件只安装在
服务器端(Server)上,
网络管理人员只需要管理服务器就行了,用户界面主要事务逻辑在服务器(Server)端完全通过WWW
浏览器实现,极少部分事务逻辑在前端(Browser)实现,所有的
客户端只有浏览器,网络管理人员只需要做硬件维护。但是,应用服务器运行数据负荷较重,一旦发生服务器“崩溃”等问题,后果不堪设想。因此,许多单位都备有数据库
存储服务器,以防万一。
OA系统
这种OA系统对于Office软件的一个最基本要求就是能嵌入
浏览器。通常OA系统是用Java实现的系统,能通过Applet方式无缝地在
浏览器中运行,同时具有公文模板套用、痕迹保留、公文域、
电子签章等常用功能,能够快速实现该OA系统中的功能替代。
无论是在JSP还是ASP的页面中,都可以通过JavaScript来调用Applet的方法,通过Applet的方法再调用永中集成Office的API来完成对Office的操作。对于基于J2EE架构的OA系统,嵌入和调用永中集成Office更是如鱼得水,十分便捷。
城市消防联网
1、
远程监控系统平台基于J2ee的B/S结构,通过WEB的方式提供人机交互的界面,便于系统
远程维护及升级,便于用户随时随地通过网络登录系统平台。其只需一套中心软硬件设备,且中心设备投资少、
远程维护方便的特点,特别适用于省级或多个地市级的联网,同样也适用在单个地市及行业联网项目中。
2、采用VPN网络系统支撑平台运行,平台为应用系统提供包括:用户
访问控制、信息加密、
身份认证等安全方面的服务,全面保证系统安全。
法安通城市消防远程监控系统图
3、系统具有高可靠性,保证联网单位的在线率及报警信息准确无误的上传。
4、系统具有高稳定性,保证报警
服务器在处理大量报警信息时不死机,能够24小时不间断稳定运行。
5、系统并发可支持100-500路,可承受5000-10000路联网传输设备的联接,满足城市级的消防联网单位数量众多的要求。
6、系统保证可扩展性。在国家政策的支持下消防联网发展很快,系统的规模将越来越大,为了适应消防联网系统的飞速发展,则要求整个系统能在不间断使用的情况下完成系统的升级。我们的产品在设计中,主
服务器及
网络设备采用模块化结构,硬件平台可以积木式拼装。平台产品提供良好的业务类型扩展性和业务规模扩展性,保证系统能快速方便地引入新的硬件和
软件系统,可以随服务内容和业务量的增加动态部署计算机以提高系统处理能力。
7、系统支持开放性与标准化原则。对于消防联网系统来说,开放性与标准化原则十分重要。只有坚持标准化的系统才能保护用户的投资,才能体现良好的可扩展和互操作能力。
J2EE技术是最符合开放性与标准化原则的技术,能最大限度地保护用户投资。以J2EE
应用服务器技术为基础平台建立的广东省东莞市消防联网
远程监控系统,采用开放技术标准,便于与基于不同开发技术实现的各种内外部系统互联互通,另一方面,在产品供应商和技术服务商的选择上也提供了更大的余地。
8、系统实时运行过程中对数据进行
备份,保证数据的安全性和有效性,同时实现系统运行时联网数据
导入导出,不影响系统的实时运行。
9、系统支持用户实时接入。联网用户的接入不影响系统的实时运行。
11、系统完全满足GB50440-2007规范的要求,具备报警受理系统、119报警
终端系统、信息查询系统及用户服务管理系统。
12、前端报警传输设备(NTE-FANT6800)可以与报警控制器采用RS232、RS485、打印机接口、开关量、电压输出等方式连接,
宽带、无线接入传输报警信息。
二、C/S架构
Client/Server结构(C/S结构)是大家熟知的客户机和服务器结构。它是软件系统体系结构,通过它可以充分利用两端硬件环境的优势,将任务合理分配到Client端和Server端来实现,降低了系统的通讯开销。目前大多数应用软件系统都是Client/Server形式的两层结构,由于现在的软件应用系统正在向分布式的Web应用发展,Web和Client/Server 应用都可以进行同样的业务处理,应用不同的模块共享逻辑组件;因此,内部的和外部的用户都可以访问新的和现有的应用系统,通过现有应用系统中的逻辑可以扩展出新的应用系统。这也就是目前应用系统的发展方向。
C/S又称Client/Server或客户/服务器模式。服务器通常采用高性能的PC、工作站或
小型机,并采用大型
数据库系统,如ORACLE、SYBASE、InfORMix或 SQL Server。
客户端需要安装专用的客户端
软件。
传统的
C/S体系结构虽然采用的是开放模式,但这只是系统开发一级的开放性,在特定的应用中无论是Client端还是Server端都还需要特定的
软件支持。由于没能提供用户真正期望的开放环境,C/S结构的
软件需要针对不同的
操作系统系统开发不同版本的软件, 加之产品的更新换代十分快,已经很难适应百台电脑以上局域网用户同时使用。而且代价高, 效率低。
Client/Server结构是20世纪80年代末提出的。这种结构的系统把较复杂的计算和管理任务交给网络上的高档机器——服务器,而把一些频繁与用户打交道的任务交给前端较简单的计算机—客户机。通过这种方式,将任务合理分配到客户端和服务器端,既充分利用了两端硬件环境的优势,又实现了网络上信息资源的共享。由于这种结构比较适于局域网运行环境,因此逐渐得到了广泛的应用。
在Client/Server结构的系统中,应用程序分为客户端和服务器端两大部分。客户端部分为每个用户所专有,而服务器端部分则由多个用户共享其信息与功能。客户端部分通常负责执行前台功能,如管理用户接口、数据处理和报告请求等;而服务器端部分执行后台服务,如管理共享外设、控制对共享数据库的操作等。这种体系结构由多台计算机构成,它们有机地结合在一起,协同完成整个系统的应用,从而达到系统中软、硬件资源最大限度的利用。
任何一个应用系统,不管是简单的单机系统还是复杂的网络系统,都由3个部分组成:显示逻辑部分(表示层)、事务处理逻辑部分(功能层)和数据处理逻辑部分(数据层)。显示逻辑部分的功能是与用户进行交互;事务处理逻辑部分的功能是进行具体的运算和数据的处理;数据处理逻辑部分的功能是对数据库中的数据进行查询、修改和更新等。在两层模式的Client/Server结构中,显示逻辑部分和事务处理逻辑部分均被放在客户端,数据处理逻辑部分和数据库被放在服务器端。这样就使得客户端变得很“胖”,成为胖客户机,而服务器端的任务相对较轻,成为瘦服务器。
这种传统的Client/Server结构比较适合于在小规模、用户数较少(≤100)、单一数据库且有安全性和快速性保障的局域网环境下运行,所以得到了广泛的应用。但随着应用系统的大型化,以及用户对系统性能要求的不断提高,两层模式(2-Tier)的Client/Server结构越来越满足不了用户需求。这主要体现在程序开发量大、系统维护困难、客户机负担过重、成本增加及系统的安全性难以保障等方面。
C/S结构的优点是能充分发挥
客户端PC的处理能力,很多工作可以在
客户端处理后再提交给服务器。对应的优点就是
客户端响应速度快。缺点主要有以下几个:
只适用于局域网。而随着互联网的飞速发展,
移动办公和分布式办公越来越普及,这需要我们的系统具有扩展性。这种方式远程访问需要专门的技术,同时要对系统进行专门的设计来处理分布式的数据。
客户端需要安装专用的客户端软件。首先涉及到安装的工作量,其次任何一台电脑出问题,如病毒、硬件损坏,都需要进行安装或维护。特别是有很多分部或专卖店的情况,不是工作量的问题,而是路程的问题。还有,系统
软件升级时,每一台客户机需要重新安装,其维护和升级成本非常高。
对客户端的
操作系统一般也会有限制。可能适应于Win98, 但不能用于win2000或Windows XP。或者不适用于
微软新的
操作系统等等,更不用说Linux、Unix等。
(1)
应用服务器运行数据负荷较轻。最简单的C/S
体系结构的数据库应用由两部分组成,即客户
应用程序和
数据库服务器程序。二者可分别称为前台程序与后台程序。运行
数据库服务器程序的机器,也称为
应用服务器。一旦服务器程序被启动,就随时等待响应客户程序发来的请求;客户
应用程序运行在用户自己的电脑上,对应于
数据库服务器,可称为客户电脑,当需要对数据库中的数据进行任何操作时,客户程序就自动地寻找服务器程序,并向其发出请求,服务器程序根据预定的规则作出应答,送回结果,
应用服务器运行数据负荷较轻。
(2)数据的储存管理功能较为透明。在数据库应用中,数据的储存管理功能,是由服务器程序和客户
应用程序分别独立进行的,前台应用可以违反的规则,并且通常把那些不同的(不管是已知还是未知的)运行数据,在服务器程序中不集中实现,例如访问者的权限,编号可以重复、必须有客户才能建立定单这样的规则。所有这些,对于工作在前台程序上的最终用户,是“透明”的,他们无须过问(通常也无法干涉)背后的过程,就可以完成自己的一切工作。在客户服务器架构的应用中,前台程序不是非常“瘦小”,麻烦的事情都交给了服务器和网络。在C/S体系的下,数据库不能真正成为公共、专业化的仓库,它受到独立的专门管理。
(3)
C/S架构的劣势是高昂的维护成本且投资大。首先,采用C/S架构,要选择适当的数据库平台来实现数据库数据的真正“统一”,使分布于两地的
数据同步完全交由
数据库系统去管理,但逻辑上两地的操作者要直接访问同一个数据库才能有效实现,有这样一些问题,如果需要建立“实时”的数据同步,就必须在两地间建立实时的通讯连接,保持两地的
数据库服务器在线运行,网络管理工作人员既要对服务器维护管理,又要对
客户端维护和管理,这需要高昂的投资和复杂的技术支持,维护成本很高,维护任务量大。
其次,传统的C/S结构的软件需要针对不同的
操作系统系统开发不同版本的软件,由于产品的更新换代十分快,代价高和低效率已经不适应工作需要。在JAVA这样的跨平台语言出现之后,B/S架构更是猛烈冲击C/S,并对其形成威胁和挑战。
三、B/S架构和C/S架构的区别与联系
B/S是Browser/Server的缩写,客户机上只要安装一个
浏览器(Browser),如Netscape Navigator或Internet Explorer,
服务器安装Oracle、Sybase、Informix或 SQL Server等数据库。在这种结构下,用户界面完全通过WWW
浏览器实现,一部分事务逻辑在前端实现,但是主要事务逻辑在
服务器端实现。
浏览器通过Web Server 同数据库进行数据交互。
系统开发中C/S结构(Client/Server)中Client(
客户端)往往可以由 B/S结构(Browser/Server结构)的Browser(
浏览器)及其载体承担,C/S结构的Web应用与B/S结构(Browser/Server结构)具有紧密联系。大系统和复杂系统中,C/S结构和B/S结构的嵌套也很普遍。
原来的Client/Server结构转变成Browser/Server结构后,客户机的压力大大减轻,负荷被均衡地分配给了服务器。由于这种结构不再需要专用的客户端软件,因此也使技术维护人员从繁重的安装、配置和升级等维护工作中解脱了出来,可以把主要精力放在服务器程序的更新工作上。同时,使用Web浏览器作为客户端软件,界面友好,新开发的系统也不需要用户每次都从头学习。而且,这种三层模式,层与层之间相互独立,任何一层的改变都不影响其他层原有的功能,所以可用不同厂家的产品组成性能更佳的系统。总之,三层模式的Browser/Server结构从根本上弥补了传统的二层模式的Client/Server结构的缺陷,是应用系统体系结构中一次深刻的变革。
硬件环境不同:
C/S 一般建立在专用的网络上, 小范围里的网络环境, 局域网之间再通过专门服务器提供连接和数据交换服务. B/S 建立在广域网之上的, 不必是专门的网络硬件环境,例与电话上网, 租用设备. 信息自己管理. 有比C/S更强的适应范围, 一般只要有操作系统和浏览器就行
对安全要求不同 :
C/S 一般面向相对固定的用户群, 对信息安全的控制能力很强. 一般高度机密的信息系统采用C/S 结构适宜. 可以通过B/S发布部分可公开信息.
B/S 建立在广域网之上, 对安全的控制能力相对弱, 面向是不可知的用户群.
对程序架构不同:
C/S 程序可以更加注重流程, 可以对权限多层次校验, 对系统运行速度可以较少考虑.
B/S 对安全以及访问速度的多重的考虑, 建立在需要更加优化的基础之上. 比C/S有更高的要求 B/S结构的程序架构是发展的趋势, 从MS的.Net系列的BizTalk 2000 Exchange 2000等, 全面支持网络的构件搭建的系统. SUN 和IBM推的JavaBean 构件技术等,使 B/S更加成熟.
软件重用不同:
C/S 程序可以不可避免的整体性考虑, 构件的重用性不如在B/S要求下的构件的重用性好.
B/S 对的多重结构,要求构件相对独立的功能. 能够相对较好的重用.就入买来的餐桌可以再利用,而不是做在墙上的石头桌子
系统维护不同 :
系统维护是软件生存周期中,开销大, -------重要
C/S 程序由于整体性, 必须整体考察, 处理出现的问题以及系统升级. 升级难. 可能是再做一个全新的系统
B/S 构件组成,方面构件个别的更换,实现系统的无缝升级. 系统维护开销减到最小.用户从网上自己下载安装就可以实现升级.
处理问题不同:
C/S 程序可以处理用户面固定, 并且在相同区域, 安全要求高需求, 与操作系统相关. 应该都是相同的系统
B/S 建立在广域网上, 面向不同的用户群, 分散地域, 这是C/S无法作到的. 与操作系统平台关系最小.
用户接口不同:
C/S 多是建立的Window平台上,表现方法有限,对程序员普遍要求较高
B/S 建立在浏览器上, 有更加丰富和生动的表现方式与用户交流. 并且大部分难度减低,减低开发成本.
8. 信息流不同
C/S 程序一般是典型的
中央集权的机械式处理,交互性相对低。
B/S 信息流向可变化,B-B B-C B-G等信息、流向的变化,更像交易中心
- C/S架构和B/S架构的概念和区别
C/S 架构 C/S 架构是一种典型的两层架构,其全程是Client/Server,即客户端服务器端架构,其客户端包含一个或多个在用户的电脑上运行的程序,而服务器端有两种,一种是数据库服务器端,客户端 ...
- 向架构师进军--->系统架构设计基础知识
如果你对项目管理.系统架构有兴趣,请加微信订阅号"softjg",加入这个PM.架构师的大家庭 在讲解系统架构设计之前,有必要补充一下架构相关的概念,因此本博文主要讲述架构.架构师 ...
- 系统架构:Web应用架构的新趋势---前端和后端分离的一点想法
最近研究servlet,看书时候书里讲到了c/s架构到b/s架构的演变,讲servlet的书都很老了,现在的b/s架构已经不是几年前的b/s架构,其实b/s架构就是web应用开发,对于这样的架构我们现 ...
- mvc项目架构分享系列之架构搭建初步
mvc项目架构分享系列之架构搭建初步 Contents 系列一[架构概览] 0.项目简介 1.项目解决方案分层方案 2.所用到的技术 3.项目引用关系 系列二[架构搭建初步] 4.项目架构各部分解析 ...
- Asp.net mvc项目架构分享系列之架构概览
Asp.net mvc项目架构分享系列之架构概览 Contents 系列一[架构概览] 0.项目简介 1.项目解决方案分层方案 2.所用到的技术 3.项目引用关系 系列二[架构搭建初步] 4.项目架构 ...
- Asp.net mvc项目架构分享系列之架构搭建初步
copy to:http://www.cnblogs.com/ben121011/p/5014795.html 项目架构各部分解析 Core Models IDAL MSSQLDAL IBLL BLL ...
- TOGAF架构能力框架之架构合同、成熟度模型和架构技能框架
TOGAF架构能力框架之架构合同.成熟度模型和架构技能框架 5. 架构合同 架构合同是在开发团体和赞助者之间关于架构的交付物.质量以及适用目标的联合协议,并且通过有效的架构治理将会促使这些协议的成功施 ...
- 企业架构研究总结(40)——TOGAF架构能力框架之架构合同、成熟度模型和架构技能框架
5. 架构合同 架构合同是在开发团体和赞助者之间关于架构的交付物.质量以及适用目标的联合协议,并且通过有效的架构治理将会促使这些协议的成功施行.通过对合同的管理施行一个治理方法,如下几点将会得到保障: ...
- 企业架构研究总结(39)——TOGAF架构能力框架之架构委员会和架构合规性
3. 架构委员会 正如前面所说,一个用来对架构治理策略的实现进行监督的跨组织的架构委员会是架构治理策略成功的主要要素之一.架构委员会应该能够代表所有主要干系人的需求,并且通常还需要对整个架构的审查及维 ...
- 企业架构研究总结(38)——TOGAF架构能力框架之架构能力建设和架构治理
为了确保架构功能在企业中能够被成功地运用,企业需要通过建立适当的组织结构.流程.角色.责任和技能来实现其自身的企业架构能力,而这也正是TOGAF的架构能力框架(Architecture Capabil ...
随机推荐
- 【BZOJ1926】【SDOI2010】粟粟的书架 [主席树]
粟粟的书架 Time Limit: 30 Sec Memory Limit: 552 MB[Submit][Status][Discuss] Description 幸福幼儿园 B29 班的粟粟是一 ...
- embed标签 阻止点击事件 让父元素处理点击事件
由于规定页面显示的PDF文件要有固定大小,使得页面风格统一 最开始发现了CSS样式pointer-events 写出如下代码,在360急速浏览器急速模式中访问可在点击PDF控件时可跳转页面 <a ...
- Python eval 函数说明
eval(str [,globals [,locals ]]) -- 函数将字符串str当成有效Python表达式来求值,并返回计算结果. 例 : eval('3+4') ==> ...
- 报错注入遇到ERROR 1242 (21000): Subquery returns more than 1 row解决方案
我的SQL语句是这样写的. mysql> select 1,2,3 and updatexml(1,concat(1,(select user from mysql.user),1),1);ER ...
- vue路由-基础
安装 1.直接下载 / CDN https://unpkg.com/vue-router/dist/vue-router.js 在 Vue 后面加载 vue-router,它会自动安装的: <s ...
- 分布式队列Celery
Celery是什么? Celery 是一个由 Python 编写的简单.灵活.可靠的用来处理大量信息的分布式系统,它同时提供操作和维护分布式系统所需的工具. Celery 专注于实时任务处理,支持任务 ...
- copy_from_user分析
前言 copy_from_user函数的目的是从用户空间拷贝数据到内核空间,失败返回没有被拷贝的字节数,成功返回0.它内部的实现当然不仅仅拷贝数据,还需要考虑到传入的用户空间地址是否有效,比如地址是不 ...
- python基础===Sublime Text 3 快捷键
选择类 Ctrl+D 选中光标所占的文本,继续操作则会选中下一个相同的文本. Alt+F3 选中文本按下快捷键,即可一次性选择全部的相同文本进行同时编辑.举个栗子:快速选中并更改所有相同的变量名.函数 ...
- python实战===用python识别图片中的中文
需要安装的模块 PIL pytesseract 需要下载的工具: http://download.csdn.net/download/bo_mask/10196285 因为之前百度云的链接总失效,所以 ...
- python基础===open()文件处理使用介绍
本文转自:Python open()文件处理使用介绍 1. open()语法open(file[, mode[, buffering[, encoding[, errors[, newline[, c ...