如何设计一个安全的DNS架构
在今天的网络环境里,设计DNS (Domain Name System)架构时不再只是简单地考虑满足DNS查询量的要求了。企业需要一个集成的高度安全的DNS架构,安全已成为DNS架构设计中的基本要求。
DNS在今天的企业里不仅仅是一项IT技术,更成为企业核心业务的组成部分。DNS系统将网络域名转换为计算机之间可以沟通的IP地址。如果离开了DNS,物联网之间的沟通将不可能实现,企业基于互联网的业务基本瘫痪。
有几种办法来分类DNS服务器,本文相关的是主DNS服务器和从DNS服务器。主DNS服务器可以被定义为拥有最原始DNS区记录的服务器,而从DNS服务器可以接受从主DNS服务器的DNS区拷贝。有多种原因需要使用从DNS服务器,比如性能或隐藏主服务器等。
你的客户需要使用你的DNS系统访问你的网站。如果没有一个好的DNS架构,你的企业将从互联网上消失。电商公司将无法销售它们的产品和服务。即使是一个经营砖和水泥的普通公司依然需要DNS服务器来推销他们的产品。简而言之,没有了DNS协议就没有了互联网。
当一个企业的产品和服务需求增长时,DNS服务器的负载也会加重。当一个企业的DNS服务器不管是因为合法流量的增长还是遭到DDoS攻击导致的流量增加,当性能达到DNS服务器的极限时,企业首先想到的是增加DNS服务的QPS能力(即每秒查询速度)。
解决这个性能问题的一个办法是为主DNS服务器增加一个更快的从DNS服务器。如果这两台服务器是通过集成方法使用相同的数据库和交互界面,就会工作得更加有效。但如果用两台完全分立的服务器,在备份,回复,报表和管理等基本功能上会导致互操作不一致的问题。为了保护投资,主从DNS服务器有一个统一的交互界面是一个很重要的考虑因素。
解决这个性能问题的另一个办法是在一台均衡负载器后面部署多台DNS服务器。如果所有的服务器都有统一的管理和配置策略,这个方法也会让DNS服务器工作得更好。
当设计一个DNS架构时,不仅仅是根据当前的需求量来设计,更要考虑未来的业务增长。另外重要的一点是,要考虑DNS易受攻击的特性所带来的安全威胁。我们下面将讨论这一点。
现在每天都会发生大量的DNS攻击且增长趋势明显。传统的DNS服务器有多个可以被利用的攻击界面和外部端口,比如80端口和25端口。黑客可以利用这些端口进入到操作系统攻击你的服务器。如果你的DNS服务器不支持分层设计的安全特权,任何用户都有可能获得进入到操作系统级别的账号特权,导致配置更改从而让你的服务器受到攻击。另外传统DNS服务器需要花费大量时间用在人工操作的流程上。
另外一个需要考虑的是保护DNS服务器免受外部攻击。企业的授权DNS服务器是可以从互联网上访问到达的,这就使得这些服务器容易受到外部攻击,比如:DNS洪水和放大,DNS劫持,DNS漏洞等。这些攻击会导致你的DNS服务器停止响应或危害到DNS服务的完整性。同样重要的是,要防止这些已经受到攻击的服务器把自身作为攻击工具去攻击其他的DNS服务器(DNS反射攻击)。DNS反射攻击可以破坏你公司的声誉,影响公司长远财务营收。
尽管你的授权DNS服务器是放在防火墙的后面,但这些针对DNS的攻击是不能被传统防火墙消除的。防火墙在保护应用层免受攻击方面是有先天缺陷的。即使是号称新一代防火墙(NextGen Firewall)也几乎没有覆盖到DNS协议的安全。这些防火墙方案通常是将安全策略扩展覆盖到大量协议上,但却牺牲了覆盖的深度和幅度。
负载均衡器提供了基本的功能来防范DNS Floods。但是黑客有一整套基于DNS的攻击手段攻击你的外部授权服务器,这是负载均衡器无法解决的。举个例子,负载均衡器无法识别恶意的DNS查询,当遇到DDoS攻击时,负载均衡器只能通过使用IP Anycast将负载扩展到多个设备上。仅仅增加负载均衡器已经被证明是低效和高成本的应对DNS攻击的手段。
无论你采用何种防护技术,最重要的是你需要领先攻击者一步。让你的DNS安全防护系统持保持最新的防护状态,跟上威胁的持续进化和攻击形式的不断改变。同样重要的是这些防护策略的更新必须是自动完成,无需手工干预。
通过DNS发生的数据泄露事故也在以令人震惊的速度发生着,现在每天新的恶意软件样本有超过十万种被归类。按照Cisco2014年的安全报告,100%的商业网络里都有恶意软件流向各个网站。
投资在下一代防火墙和入侵检测系统上,看起来可以阻止一些恶意软件和高级持续攻击进入到网络里,但事实并非如此。现在越来越流行将自己的个人设备(BYOD)带入到公司网络中,这让IT环境更加复杂,同时也新的通道让恶意软件进入网络并潜伏下来。
由于恶意软件的增长变得更加复杂和传统防护方法的失灵,导致在一个大型网络中发现恶意软件行为变得几乎不可能。Fast flux, Proxy C&C networks, anonymous TOR和其他的一些高级技术可以轻易地绕开防护的边界。在内部的网络里,一旦恶意软件利用DNS和外部的僵尸网络和命令控制服务器进行通讯,可能会导致企业的敏感数据泄露。
希望对你有帮助,祝你好运!
设计师有设计思维,同样的架构师在开发服务器和软件的时候也有自己的架构思维。
今天,电脑培训http://wwwkmbdqncn/就一起来了解和学习一下,架构师是如何来培养和提高自己的思维能力的,下面就开始今天的主要内容吧。
架构的本质是管理复杂性,抽象、分层、分治和演化思维是架构师征服复杂性的四种根本性武器。
掌握了抽象、分层、分治和演化这四种基本的武器,你可以设计小到一个类,一个模块,一个子系统,或者一个中型的系统,也可以大到一个公司的基础平台架构,微服务架构,技术体系架构,甚至是组织架构,业务架构等等。
架构设计不是静态的,而是动态演化的。
只有能够不断应对环境变化的系统,才是有生命力的系统。
所以即使你掌握了抽象、分层和分治这三种基本思维,仍然需要演化式思维,在设计的同时,借助反馈和进化的力量推动架构的持续演进。
架构师在关注技术,开发应用的同时,需要定期梳理自己的架构设计思维,积累时间长了,你看待世界事物的方式会发生根本性变化,你会发现我们生活其中的世界,其实也是在抽象、分层、分治和演化的基础上构建起来的。
另外架构设计思维的形成,会对你的系统架构设计能力产生重大影响。
可以说对抽象、分层、分治和演化掌握的深度和灵活应用的水平,直接决定架构师所能解决问题域的复杂性和规模大小,是区分普通应用型架构师和平台型/系统型架构师的一个分水岭。
良好的架构设计思维的培养,离不开工作中大量高质量项目的实战锻炼,然后是平时的学习、思考和提炼总结。
另外,基本的架构设计思维,其实在我们大学计算机课程(比如数据结构和算法)中可以找到影子,只不过当时以学习为主,问题域比较小和理想化。
所以大学教育其实非常重要,基本的架构设计思维在那个时候就已经埋下种子,后面工程实践中进一步消化和应用,随着经验的积累,我们能够解决的问题域复杂性和规模逐渐变大,但基本的武器还是抽象、分层和分治等思维。
初始阶段的网站架构
大型网站都是从小型网站发展而来,网站架构也是一样,是从小型网站架构逐步演化而来,小型网站最开始没有太多人访问,只需要一台服务器就绰绰有余,这时的网站架构如图。
应用程序,数据库,文件等所有的资源都在一台服务器上。通常服务器操作系统使用Linux,应用程序使用PHP开发,然后部署在Apache上,数据库使用MySql,汇集各种开源软件及一台廉价服务器就可以开始网站的发展之路了。
应用服务和数据服务分离
随着网站业务的发展,一台服务器逐渐不能满足需求:越来越多的用户访问导致性能越来越差,越来越多的数据导致存储空间不足,这时就需要将应用和数据分离,应用和数据分离后整个网站使用三台服务器:应用服务器,文件服务器和数据库服务器,如下图所示,这三台服务器对硬件资源的要求各不相同,应用服务器需要处理大量的业务逻辑,因此需要更快更强大的CPU,数据库服务器需要快速磁盘检索和数据缓存,因此需要更快的硬盘和更大的内存,文件服务器需要储存大量用户上传的文件,因此需要更大的硬盘。
应用和数据分离后,不同特性的服务器承担不同的服务角色,网站的并发处理能力和数据存储空间得到了很大改善,支持网站业务进一步发展,但是随着用户逐渐增多,网站又一次面临挑战:数据库压力太大导致访问延迟,进而影响整个网站的性能,用户体验受到影响,这时需要对网站架构进一步优化。
使用缓存改善网站性能
网站访问特点和现实世界的财富分配一样遵循二八定律:80%的业务访问集中在20%的数据上。淘宝买家浏览的商品集中在少部分成交数多、评价良好的商品上;百度搜索关键词集中在少部分热门词汇上;经常登录的用户才会发微博、看微博,而这部分用户也只占总用户数目的一小部分。
既然大部分的业务访问集中在,那么如果把这一小部分数据缓存在内存中,就可以减少数据库的访问压力。网站使用的缓存分为两种:缓存在应用服务器上的本地缓存和缓存在专门的分布式缓存服务器上的远程缓存。本地缓存的访问速度更快一些,但是受应用服务器内存限制,其缓存数量有限,而且会出现和应用程序争用内存的情况。远程分布式可以使用集群的方式,部署大内存的服务器作为专门的缓存服务器,可以在理论上做到不受内存容量限制的缓存服务。
使用缓存后,数据访问压力得到有效缓解,但是单一应用服务器能够处理的请求连接有限,在网站的访问高峰期,应用服务器会成为整个网站的瓶颈。
使用应用服务器集群改善网站的并发处理能力
使用集群是网站解决高并发,海量问题的常用手段,当一台服务器的处理能力、储存空间不足时,不要企图去换更强大的服务器,对大型网站而言,不管多么强大的服务器,都满足不了网站持续增长的业务需求,这种情况下,更恰当的做法是增加一台服务器分担原有服务器的访问及存储压力。
对网站而言,只要能通过一台服务器的方式改善负载压力,就可以以同样的方式持续增加服务器不断改善系统性能,从而实现系统的可伸缩性,应用服务器实现集群是网站可伸缩集群架构设计中较为简单成熟的一种。如下图所示。
通过负载均衡调度服务器,可将来自用户浏览器的请求分发到应用服务器集群中的任何一台服务器上,如果有更多的用户,就在集群中加入更多的应用服务器,使应用服务器的负载压力不在成为网站的瓶颈。
数据库读写分离
网站使用缓存后,大部分数据操作访问都可以不通过数据库就能完成,但是仍有一部分读操作,(缓存访问不命中、缓存过期)和全部的写操作,需要访问数据库,在网站的用户达到一定规模后,数据库因为负载压力过高而成为网站的瓶颈。
目前大部分的主流数据库都提供主从热备功能,通过配置两台数据库主从关系,可以将一台数据库服务器的数据更新同步到另一台服务器上。网站利用数据库的这一功能,实现数据库读写分离,从而改善数据库负载压力。
应用服务器在写数据的时候,访问主数据库,主数据库通过主从复制机制将数据更新同步到从数据库,这样当应用服务器读数据的时候,就可以通过从数据库或得数据。为了便于应用程序访问读写分离后的数据库,通常在应用服务器端使用专门的数据访问模块,使数据库读写分离时对应用透明。
使用反向代理和CDN加速网站响应
CDN和反向代理的基本原理都是缓存,区别在于CDN部署在网络提供商的机房,是用户在请求网站服务时,可以从距离自己最近的网路提供商机房获取数据;而反向代理则部署在网站的中心机房,当用户请求到达中心机房后,首先访问的服务器是反向代理服务器,如果反向代理服务器中缓存着用户请求的资源,就将其直接给用户。
使用分布式文件系统和分布式数据库系统
分布式数据库是网站数据库拆分的最后手段,只有在单表数据规模非常庞大的时候才使用,不到万不得以时,网站更常用的数据库拆分手段是业务分库,将不同业务的数据库部署在不同的物理服务器上。
使用NOSQL和搜索引擎
对于海量数据的查询,我们使用nosql数据库加上搜索引擎可以达到更好的性能。并不是所有的数据都要放在关系型数据中。常用的NOSQL有mongodb和redis,搜索引擎有lucene。
业务拆分
随着业务进一步扩展,应用程序变得非常臃肿,这时我们需要将应用程序进行业务拆分,如百度分为新闻、网页、等业务。每个业务应用负责相对独立的业务运作。业务之间通过消息进行通信或者同享数据库来实现
分布式服务
这时我们发现各个业务应用都会使用到一些基本的业务服务,例如用户服务、订单服务、支付服务、安全服务,这些服务是支撑各业务应用的基本要素。我们将这些服务抽取出来利用分部式服务框架搭建分布式服务。淘宝的Dubbo是一个不错的选择
数据拷贝,环境切换,内存分配,锁竞争。
因为这四种会有数据拷贝,有环境切换,有内存分配,有锁竞争,会很影响服务器的性能,严重时会导致服务器崩溃。
服务器,指在网络环境中或在具有客户,服务器结构的分布式管理环境中,为客户的请求提供服务的节点计算机,或指在该计算机上运行的,用于管理资源并为用户提供服务的计算机软件。
首先说windows和Linux系统在企业的服务器中都是有使用的,关于一个企业是选择windows作为服务器系统还是Linux作为服务器系统还是要看企业对于服务器的需求和一些技术上的需要。
1、简要说一下windows系统和Linux系统。
windows系统相信大家都不陌生,现在大家基本上使用的都是以windows操作系统为主,而服务器上使用的windows操作系统一般指的的是windows的服务器版本系统:windows server 系列。windows server系列也有很多的版本,如windows server2003、windows server 2008等。这些服务器版本的windows和普通windows版本的不同在于其是根据服务器需求进行开发的,如支持更大的内存、支持一些服务器的策略设置、支持服务器集群等,这些功能都是针对服务器的功能,总之windows server版本就是一个适合服务器的操作系统版本,其功能大多都是针对服务器的。再说一下Linux系统,Linux是一套免费使用和自由传播的类Unix操作系统,是一个基于POSIX和UNIX的多用户、多任务、支持多线程和多CPU的操作系统。它能运行主要的UNIX工具软件、应用程序和网络协议。它支持32位和64位硬件。Linux继承了Unix以网络为核心的设计思想,是一个性能稳定的多用户网络操作系统。以上是专业的解释,简单说Linux是一个免费的操作系统,其也是非常的好的支持服务器环境,且其不太适合图形化操作更适合命令行操作,而windows server是收费的系统,且其主要的还是图形化操作方式。
2、公司选择什么系统之性能和易用性。
因为Linux是开源的操作系统,其功能可以自己定义和修改,且其没有图形化界面,总而言之Linux的一些特性使得Linux的效率要比windows高且其使用起来更加灵活,因为Linux的严格的用户权限管理机制使得Linux更加安全。虽然windows的图形界面会在一定的程度上降低windows的性能,但是图形化的界面也为windows带来了操作简单方便的特点,且大家都是使用windows出身,那么 windows server系统的操作学起来要比Linux简单的多。总结:个人认为Linux比windows server的性能更好,而windows server比Linux有更好的易用性。
3、公司选择什么系统之用途和技术搭配和成本。
关于服务器的用途决定了其安装什么操作系统,比如公司需要搭建一台服务器进行系统网络和局域网的域管理,那么此时应该使用的当然是windows server操作系统。在比如公司的需要对外发布一个web网站,公司决定使用aspnet作为网站后台,我们都知道aspnet的最好组合是windows server + IIS +sqlserver数据库,那么此时公司的机房服务器也可能要安装windows server 系统,而我们要发布一个php的网站,那么我们也都知道php的最佳运行环境是lamp即Linux+Apache+mysql数据库+php,此时可能我们需要的采用Linux作为操作系统。
再说一下成本,Linux的是开元不收费的系统,而windows server是收费的操作系统,但是公司请一个Linux的运维管理员的成本要高于windows server的管理员,这些问题都是公司需要考虑平衡的,毕竟公司要考虑公司的利益。
最后,以上就是个人对于公司选择什么操作系统作为服务器操作系统的一些看法,也可能有很多其他的因素影响着这个选择,以上只是个人的一些看法和其中的一些因素。
第一、什么是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等信息流向的变化,更象交易中心
0条评论