
我为什么要转载这片文章,原因一写的还不错,原因二正在与自己开发的软件体系做比较(在开发之初都没有细心考虑过我的软件要使用什么架构,我仅仅以更低资源更高效率为基准目标去探究开发,就这样到软件彻底开发完后再回想这个问题时觉得很有趣。假如我当时就给自己的软件体系选好架构到最后会是什么样子。我为什么没有这么做好多人或许觉得古怪;因为他们认为做软件必定先选好架构;我想告知他们的我是一个第一次开发软件的门外人)
在一次约谈中,有个人问我的我的软件是什么架构是B/S仍是C/S,我茫然我只能告知他都不是,然后他茫然(或许他觉得这个世界上一切软件无非便是B/S或C/S)。现在我要静下来细细的想这个问题,我应该对我的体系整体架构写个介绍,真的有必要!
在写之前,我先看了这篇文章,先转载。然后写自己的C/D软件架构(我自己起的姓名不知道准不精确)好了,下一篇即是我的C/D软件架构介绍(至少有人问我我能够告知他我的软件架构就什么姓名)有兴趣能够去了解。
一、什么是C/S和B/S
要想对“C/S”和“B/S”技能开展变化有所了解,首要必须搞清楚三个问题。
第一、什么是C/S结构。
C/S(Client/Server)结构,即我们熟知的客户机和服务器结构。它是软件体系体系结构,经过它能够充分利用两头硬件环境的优势,将任务合理分配到Client端和Server端来完成,下降了体系的通讯开支。现在大多数使用软件系
统都是Client/Server形式的两层结构,因为现在的软件使用体系正在向分布式的Web使用开展,Web和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)。
Internet技能的鼓起,对C/S结构的一种变化或许改进的结构。在这种结构下,用户作业界面是经过WWW浏览器来完成,很少部分业务逻辑在前端
(Browser)完成,可是首要业务逻辑在服务器端(Server)完成,构成所谓三层3-tier结构。这样就大大简化了客户端电脑载荷,减轻了体系保护与晋级的本钱和作业量,下降了用户的总体本钱(TCO)。
以现在的技能看,局域网树立B/S结构的网络应
用,并经过Internet/Intranet形式下数据库使用,相对易于把握、本钱也是较低的。它是一次性到位的开发,能完成不同的人员,从不同的地
点,以不同的接入办法(比如LAN,WAN,Internet/Intranet等)拜访和操作共同的数据库;它能有用地保护数据渠道和办理拜访权限,服
务器数据库也很安全。特别是在JAVA这样的跨渠道言语呈现之后,B/S架构办理软件更是便利、便利、高效。
用,并经过Internet/Intranet形式下数据库使用,相对易于把握、本钱也是较低的。它是一次性到位的开发,能完成不同的人员,从不同的地
点,以不同的接入办法(比如LAN,WAN,Internet/Intranet等)拜访和操作共同的数据库;它能有用地保护数据渠道和办理拜访权限,服
务器数据库也很安全。特别是在JAVA这样的跨渠道言语呈现之后,B/S架构办理软件更是便利、便利、高效。
第三、办理软件干流技能。
办理软件技能的干流技能与办理思维相同,也阅历了三个开展时期。首要,界面技能从上世纪DOS字符界面到Windows图形界面(或图形用户界面GUI),直至Browser浏览器界面三个不同的开展时期。其次,今天一切电脑的
浏览器界面,不只直观和易于使用,更首要的是依据浏览器渠道的任何使用软件其风格都是相同的,使用人对操作训练的要求不高,而且软件可操作性强,易于识
别;再者,渠道体系结构也从曩昔单用户开展到今天的文件/服务器(F/S)体系、客户机/服务器(C/S)体系和浏览器/服务器(B/S)体系。
浏览器界面,不只直观和易于使用,更首要的是依据浏览器渠道的任何使用软件其风格都是相同的,使用人对操作训练的要求不高,而且软件可操作性强,易于识
别;再者,渠道体系结构也从曩昔单用户开展到今天的文件/服务器(F/S)体系、客户机/服务器(C/S)体系和浏览器/服务器(B/S)体系。
二、C/S和B/S之比较
C/S和B/S是当今世界开发形式技能架构的两大干流技能。C/S是美国Borland公司
最早研发,B/S是美国微软公司研发。现在,这两项技能以被世界各国所掌握,国内公司以C/S和B/S技能开宣布产品也许多。这两种技能都有自己必定的市
场份额和客户群,各家企业都说自己的办理软件架构技能功用强大、先进、便利,都能举出各自的客户集体,都有一大群文人墨客为自己摇旗呐喊,广告满天飞,可
谓仁者见仁,智者见智。
最早研发,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并不是处于绝对的统治位置。现在的趋势是凡使用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等信息流向的变化,更象交易中心