??xml version="1.0" encoding="utf-8" standalone="yes"?>亚洲男女内射在线播放,无码国产亚洲日韩国精品视频一区二区三区 ,亚洲国产美女精品久久久久http://www.tkk7.com/skyctr/category/24660.html.net全程独家赞助zh-cnTue, 07 Aug 2007 11:29:40 GMTTue, 07 Aug 2007 11:29:40 GMT60再谈.三层C/Sl构?qing)其应用开?/title><link>http://www.tkk7.com/skyctr/articles/csai.html</link><dc:creator>天然</dc:creator><author>天然</author><pubDate>Tue, 07 Aug 2007 03:05:00 GMT</pubDate><guid>http://www.tkk7.com/skyctr/articles/csai.html</guid><wfw:comment>http://www.tkk7.com/skyctr/comments/134895.html</wfw:comment><comments>http://www.tkk7.com/skyctr/articles/csai.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.tkk7.com/skyctr/comments/commentRss/134895.html</wfw:commentRss><trackback:ping>http://www.tkk7.com/skyctr/services/trackbacks/134895.html</trackback:ping><description><![CDATA[<h3><font color=#ff0000>  </font><strong>一、三层C/S的基本硬件结?/strong> </h3> <p class=main>  传统的二层C/Sl构存在以下几个局?1它是单一服务器且以局域网Z心的,所以难以扩展至大型企业q域|或Internet;2受限于供应商;3软、硬件的l合?qing)集成能力有?4难以理大量的客h。因?三层C/Sl构应运而生?</p> <p class=main>  三层C/Sl构是将应用功能分成表示层、功能层和数据层三部分。其解决Ҏ(gu)?对这三层q行明确分割,q在逻辑上其独立。原来的数据层作为DBMS已经独立出来,所以关键是要将表示层和功能层分L各自独立的程?q且q要使这两层间的接口z明了?</p> <p class=main>  上qC层功能装载到g的方法基本上有三U?如图1所C?。其中表C层配置在客h?而数据层配置在服务器中?/p> <div align=center> <p><img height=244 src="http://tech.csai.cn/sa/images/3f_cstobs.jpg" width=410> </p> <p><img height=323 src="http://tech.csai.cn/sa/images/3f_yykf.jpg" width=476> </p> </div> <p class=main align=center>  一般情冉|只将表示层配|在客户Z,如图1(1)或图1(2)所C。如果像?(3)所C的那样q功能层也放在客h?与二层C/Sl构相比,其程序的可维护性要好得?但是 其他问题q未得到解决。客h的负荷太?其业务处理所需的数据要从服务器传给客户?所以系l的性能Ҏ(gu)变坏?</p> <p class=main>  如果功能层和数据层分别攑֜不同的服务器?如图1(2)所C?,则服务器和服务器之间也要q行数据传送。但?׃在这UŞ态中三层是分别放在各自不同的gpȝ??所以灵zL很?能够适应客户机数目的增加和处理负L(fng)变动。例?在追加新业务处理?可以相应增加装蝲功能层的服务器。因?pȝ规模大q种形态的优点p显著?</p> <p class=main>  值得注意的是:三层C/Sl构各层间的通信效率若不?即分配l各层的g能力很强,其作为整体来说也达不到所要求的性能。此?设计时必L重考虑三层间的通信Ҏ(gu)、通信频度?qing)数据量。这和提高各层的独立性一h三层C/Sl构的关键问题?</p> <p class=main><font color=#ff0000>  </font><strong>二、三层C/S的功?/strong> </p> <p class=main>  1. 表示?</p> <p class=main>  表示层是应用的用h口部?它担负着用户与应用间的对话功能。它用于查用户从键盘{输入的数据,昄应用输出的数据。ؓ(f)使用戯直观地进行操?一般要使用囑Ş用户接口(GUI),操作单、易学易用。在变更用户接口?只需改写昄控制和数据检查程?而不影响其他两层。检查的内容也只限于数据的Ş式和值的范围,不包括有关业务本w的处理逻辑?</p> <p class=main>  囑Ş界面的结构是不固定的,q便于以后能灉|地进行变更。例?在一个窗口中不是攑օ几个功能,而是按功能分割窗?以便使每个窗口的功能z单U。在q层的程序开发中主要是用可视化~程工具?</p> <p class=main>  2. 功能?</p> <p class=main>  功能层相当于应用的本?它是具体的业务处理逻辑地编入程序中。例?在制作订购合同的时要计算合同金额,按照定好的格式配|数据、打印订购合?而处理所需的数据则要从表示层或数据层取得。表C层和功能层之间的数据交往要尽可能z。例?用户索数据时,要设法将有关索要求的信息一ơ传送给功能?参见?),而由功能层处理过的检索结果数据也一ơ传送给表示层。在应用设计?一定要避免"q行一ơ业务处?在表C层和功能层间进行多几次数据交换"的笨拙设计?</p> <p class=main>  通常,在功能层中包含有:认用户对应用和数据库存取权限的功能以及(qing)记录pȝ处理日志的功能。这层的E序多半是用可视化编E工具开发的,也有使用COBOL和C语言的?/p> <p class=main>  3. 数据?</p> <p class=main>  数据层就是DBMS,负责理Ҏ(gu)据库数据的读写。DBMS必须能迅速执行大量数据的更新和检索。现在的L是关pL据库理pȝ(RDBMS)。因?一般从功能层传送到数据层的要求大都使用SQL语言?</p> <p class=main><font color=#ff0000>  </font><strong>三、三层C/Sl构的优?/strong> </p> <p class=main>  1. h灉|的硬件系l构?</p> <p class=main>  对于各个层可以选择与其处理负荷和处理特性相适应的硬件。这是一个与pȝ可羃放性直接相关的问题。例?最初用一台Unix工作站作为服务器,数据层和功能层都配|在q台服务器上。随着业务的发?用户数和数据量逐渐增加,q时可以将Unix工作站作为功能层的专用服务器,另外q加一C用于数据层的服务器。若业务q一步扩?用户数进一步增?则可以l增加功能层的服务器数目,用以分割数据库。清晰、合理地分割三层l构q其独?可以使系l构成的变更非常单。因?被分成三层的应用基本上不需要修正?</p> <p class=main>  2. 提高E序的可l护?</p> <p class=main>  三层C/Sl构?应用的各层可以ƈ行开?各层也可以选择各自最适合的开发语a?</p> <p class=main>  3. 利于变更和维护应用技术规?</p> <p class=main>  因ؓ(f)是按层分割功?所以各个程序的处理逻辑变得十分单?</p> <p class=main>  4. q行严密的安全管?</p> <p class=main>  关键的应用,用户的识别和存取权限讑֮愈重要。在三层C/Sl构?识别用户的机构是按层来构{的,对应用和数据的存取权限也可以按层q行讑֮。例?即外部的入侵者突破了表示层的安全防线,若在功能层中备有另外的安全机?pȝ也可以阻止入侵者进入其他部分。  </p> <p class=main>  此外,pȝ理?可支持异U数据库,有很高的可用性?</p> <p class=main><font color=#ff0000>  </font><strong>四、三层C/S应用的开?/strong> </p> <p class=main>  三层C/S应用的开发必遵从以下原?保护已有投资;降低应用pȝ的风? 满当前的迫切需?考虑未来的发展规划?</p> <p class=main>  开发出的三层C/S应用pȝ必须?功能丰富且具有高可用?功能要能跨应用系l?pȝ要能跨^台运行?</p> <p class=main>  国BEApȝ有限公司产品计划和战略副总裁Jeri Edwards奛_,按下qCU三层C/S应用pȝ的典型开发类?分别举例介绍了他们的开发目标、开发过E、开发成果及(qing)l验体会(x)。新建应用系l类?Greenfield),如英国劳工局的劳动力市场pȝ;提升已有pȝ性能cd(Turbocharger),如Apple公司的AppleOrder Globalpȝ;l合集成已有pȝcd(Integrator),如AT&T的Zenith应用pȝ。Jeri Edwards奛_Ҏ(gu)三层C/S应用pȝ的开发经验和教训,ȝZ实现C/S应用pȝ?黄金10原则" : </p> <p class=main>  (1) 量化项?佉K目易于管理。应快v一个初始系l?q尽早投入运行。当目规模较大?可以其分割成由更小开发组担负的子目?</p> <p class=main>  (2) 要把_֊花在设计上。首先要d弄清"需? ,然后建立一个原?以便试设计中的"薄弱"环节。后来增加的Ҏ(gu)或部g要保证与pȝl构兼容?</p> <p class=main>  (3) 要奉?拿来M"。近?可供选购的市售C/S产品很多,要坚?能买׃,为我所?的原则。必要时,买来后可对系l加以修?其中既包括基部g也包括应用?</p> <p class=main>  (4) 严格遵守业界标准?</p> <p class=main>  (5) 采用TP监控器或对象事务处理理?(Object Transaction Manager ,OTM)?</p> <p class=main>  (6) 要@序渐q。及(qing)时得到用L(fng)反馈;保证目各部分的良好衔接;?qing)早解决接口问?以保证项目进展协?坚持"边分?边设?边编?Ҏ(gu)?的原则?</p> <p class=main>  (7) 在应用开发过E中,不可忽视pȝ理?</p> <p class=main>  (8) 反复试,包括用户信Q试、基准测试、系l测试、性能试、系l集成测试、坚固性测试、服务交付测试等?</p> <p class=main>  (9) 制定合理的工E进度?</p> <p class=main>  (10) 制定完善的系l拓展计?包括用户的培训和技术支持、高效的Y件装载、已有数据和pȝ的^滑迁UR?</p> <p class=main><font color=#ff0000>  </font><strong>五、三层C/S应用中的核心</strong> </p> <p class=main>  每个C/S环境,从最的LAN环境到超U网l环?都用某UŞ式的中间件。实际上,无论客户Z时给服务器发送请?也无论它何时应用存取数据库文?都有某种形式的中间g传递C/S链\,用以消除通信协议、数据库查询语言、应用逻辑与操作系l之间潜在的不兼定w题。中间g是C/S环境中最重要的部件。所谓中间g是一个用API定义的Y件层,是具有强大通信能力和良好可扩展性的分布式Y件管理框架。它的功能是在客h和服务器或者服务器和服务器之间传送高U通信,客h和服务器群有机?_合"h。其工作程?在客h里的应用E序需要驻留网l上某个服务器的数据或服务时,搜烦此数据的C/S应用E序需讉K中间件系l?该系l将查找数据源或服务,q在发送应用程序请求后重新打包响应,其传送回应用E序?</p> <p class=main>  TP监控器在中间件技术中扮演着来重要的角色,特别是在三层C/Spȝ中。据Standish Group的调?TP监控器是q两q信息业界最热门的技术之一?996q有57%的关键应用是构筑在TP监控器上的。TP监控器擅长提供事务性语?允许q境速度和可靠性进行编E。作ZU中间g,TP监控器提供一U用于编写分布式应用E序的API,它通常包含一l强大的理工具。TP监控器是一个高性能、高q行性、多用户的快速响应Y件运行环?它能有效地管理大量的q发d,q而提高系l资源的利用率。如果采用TP监控?pȝL资可节约30%以上,开发周期可~短40%?0%。大多数投入应用的三层应用系l都配备有一套事务处理监控系l?BEA TUXEDO是目前应用最q泛的事务处理监控系l?</p> <p class=main>  BEA TUXEDO是用于分布计的中间件基l构,它开攑ּ应用pȝh高可~放性、高灉|性和高可l护性。它不仅h分布式交易处理和应用间报文通信的功?而且h一pd极其完善的服?可帮助企业徏立和q行应用pȝ,使开发h员能够徏立跨多个^台、数据库和操作系l的应用E序。这?可以灉|选配操作q_以充分适应应用环境。它h以下特点:</p> <p class=main>  1、支持多UYgq_。完全符合Open Group的X/Open标准,支持TCP/IP协议,支持包括Unix、Windows NT、AS/400和大型机专用pȝ在内?0多个gq_和操作系l?</p> <p class=main>  2、结构开放、灵zR模块结构以高E序接口ATMI(Application-to-Transaction Manager Interface)Z?有丰富的ATMI函数可供调用?</p> <p class=main>  3、开攄联机事务处理。可提供诸如事务性语义、透明的二D式提交、事务记录及(qing)分布事务处理理l构{功能?</p> <p class=main>  4、与DCE的结合。通过一套工具和E序?实现了与Open Groupl织的分布计环境DCE的有机结合?</p> <p class=main>  5、功能丰?包括:应用理;事g代理;通过鉴别服务、授权服务和数据加密服务,为客h供安全保?对COBOL语言的支?应用动态调节、负载^衡等保证高可靠性的功能{?</p> <p class=main><font color=#ff0000>  </font><strong>六、三层C/Sl构的应用现?/strong> </p> <p class=main>  目前,用三层C/Sl构开发的应用q不太多,但其数量的确在逐日增加。图3昄了北运行的应用开发Ş态。三层C/S型应用的比例1995q占5%,1997q增加到7.8%,预计?999q将?2.9%。二层C/S型应用和在原有系l上附加GUI型的应用,是被定位为向三层C/S型{化的q度形态。就当前来说,q种形态的比例要比三层C/S?且要持箋一D|间。那?什么情况下应采用三层C/S?据Gartner Group的调查表?h下述特点的应 用应考虑采用三层C/S?</p> <p class=main>  1、应用的服务或种c超q?0? </p> <p class=main>  2、应用是用不同语a~写? </p> <p class=main>  3、两个以上的异构数据??个不同的DBMS?个DBMS?个文件系l? </p> <p class=main>  4、应用的生命周期过3q? </p> <p class=main>  5、高工作负荷,例如每天过5万个事务处理或在同一pȝ讉K同一数据库的q发用户数超q?00? </p> <p class=main>  6、有臛_重要的应用内部通信,包括像电(sh)子数据交?EDI)q类企业的内部通信?</p> <p class=main>  从传l的L/l端型应用到三层C/S?要考虑旉和费用问?有的场合q不适合,需要@序渐q?/p> <img src ="http://www.tkk7.com/skyctr/aggbug/134895.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.tkk7.com/skyctr/" target="_blank">天然</a> 2007-08-07 11:05 <a href="http://www.tkk7.com/skyctr/articles/csai.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>谈谈三层l构开发的理解http://www.tkk7.com/skyctr/articles/baidu_zexyang.html天然天然Tue, 07 Aug 2007 02:59:00 GMThttp://www.tkk7.com/skyctr/articles/baidu_zexyang.htmlhttp://www.tkk7.com/skyctr/comments/134893.htmlhttp://www.tkk7.com/skyctr/articles/baidu_zexyang.html#Feedback0http://www.tkk7.com/skyctr/comments/commentRss/134893.htmlhttp://www.tkk7.com/skyctr/services/trackbacks/134893.html

谈谈三层l构开发的理解

一?nbsp;    前言
最q几个网友在讨论E序设计中的分层设计Q反响非常激烈。大家对此非常感兴趣Q且仁者见仁,见智。不怎么P他们的看法代表了他们对程序的理解Q是他们实践l验的ȝQ是宝贵的。今天,q里我们且不评论他们的见解正与?q里我只谈谈我对分层的看?希望能v到抛砖引玉的作用?br>二?nbsp;    三层架构开发简?/strong>
a)         什么是三层
首先Q谈一下什么是三层架构Q所谓的三层开发就是将整个业务应用划分C层Q业务逻辑层―数据访问层Q数据库{,有的q要l一些,明确地将客户端的表示层、业务逻辑讉K、和数据讉K?qing)数据库讉K划分出来Q十分有利于pȝ的开发,l护、部|和扩展?br>软g要分层,其实ȝ一句话Q是Z实现“高内聚、低耦合”。采?#8220;分而治?#8221;的思想Q把问题划分开来各个解冻I易于控制Q易于g展,易于分配资源?br>

                                    ?.三层l构C意?br>表示层:(x)负责直接跟用戯行交互,一般也是指我们的前台Q用于数据录入,数据昄{。它不应该做太多的工作。表C嘛Q也意味着只做与外观显C相关的工作。不属于他的工作他不用管也不该管?br>业务逻辑层:(x)用于做一些有效性验证的工作。以更好的保证程序运行的健壮性。如数据的有效性判断。不允许为的地方是否输入了空字符Ԍ该输入Email的,格式是否正确{,数据cd的合法性判断,该是整型的地方当然不能接受字W串了,数据库操作是否合法,如字D长度的有效性判断。sql防注入的问题Q用L(fng)权限的合法性判断等Q通过以上的诸多判断以军_是否操作l向后传递。尽量保证程序的正常q行
数据讉K层:(x)֐思义Q就是用于专门跟数据库进行交互。对数据的添加,删除Q修改,昄{。需要强调的是所有的数据对象只在q一层被引用Q如System.Data。SqlClient{,除数据层之外的Q何地斚w不应该出现这L(fng)应用?br>ASP.NET可以使用.NETq_快速方便的部v三层架构。ASP.NET革命性的变化是在|页中也使用Z事g的处理,可以指定处理的后C码文Ӟ可以使用C#,VB,J#作ؓ(f)后台代码的语a?NET中可以方便的实现lg的装配,后台代码通过命名控g可以方便的用自己定义的lg。显C层攑֜ASPX面中,数据库操作和逻辑层用lg来实玎ͼq样很方便的实C三层架构?br>?br>b)         Z么用三?/strong>
那么我们Z么要使用分层开发呢Q它有什么独特的优势呢?

     .NET开发^Cؓ(f)我们做开发提供了强大的技术支持,使我们的开发变得非怾P高效。通过code behind的强大支持,我们可以页面设计和代码设计有效的分,代码~写Q页面设计同时进行。这比古老的asp那种插入式编写要q速多了,Html归aspxQ代码归aspx.csQ看h倒也蛮清晰的Q也没发现有什么不妥的地方
的确Q光从功能实现的基础来说我们已经做得很好了,其对于一个简单的应用来说Q代码量不是很多的情况下Q这U一层结构开发完全够用了Q没有必要搞得那么复杂。但是对一个复杂的大型pȝ来说q样的设计的~陷很严重?下面?x)具体介l,分层开发其实也是ؓ(f)大型pȝ服务?,。在开发过E中我们?x)不停把代码到处复制Q以实现一些相似的功能。同L(fng)代码Z么要写那么多ơ?不但使程序变得冗长,更不利于l护Q一个小的修改或许?x)L?qing)很多页面。稍微不留神׃(x)D异常的生。ɽE序不能正常q行。最主要的面向对象的思想没有得到丝毫的体玎ͼ打着面向对象的幌子却依然走着面向q程的老\?br>
     意识到这L(fng)问题Q我开始将E序中一些公用的处理E序写成公共Ҏ(gu)装在类中,供其它程序调用。象一些功能型的代码集合,数据库操作,如同SqlHelper那样Ҏ(gu)据操作进行合理封装,把sql语句Q参数列表作为参敎ͼ在数据库操作q程中,只要传入相应的参数就可以完成特定的数据操作,q就是我一开始的数据讉K层,再不用每ơ操作数据库旉写那些重复性的数据库操作代码。在新的应用开发中Q数据访问层可以直接拿来用。面向对象的三大Ҏ(gu)之一的封装性在q里得到了很好的体现。似乎找C面向对象的感觉,代码量较以前有了很大的减,而且修改的时候也比较方便。这下应该可以了吧?

      试问一下,如果有一天数据库供应商发生了变化Q因为数据量的增加,数据库有access变成了sql serverQ这下麻烦大了,原来的数据访问层失效了,数据操作对象发生了变化,且页面中涉及(qing)数据对象的地方也要进行修改,因ؓ(f)原来可能?x)用OleDbDataReader对象数据传递给昄面Q现在都得换成SqlDataReader对象Qsql和access支持的数据类型也不一_(d)在显C数据时q行的数据{换可能也要进行修攏V由sql向access的{换所做的修改?x)更多。还有一U情况,因ؓ(f)某种需要,我们要把Web形式的项目改造成windows应用Q这时牵涉的修改有多大呢Q如果在你的aspx.cs中放了很多处理代码,或者还有一部分代码存在于aspx中呢windows应用中可没有aspx阿,是不是整个系l需要重新来做了Q这都是设计不合理惹的祸。再者,是分布式的情况Q现在的设计也无法做到。也意味着Q以上的设计充其量只能算打闹?br>不知道我的解释是否让你体?x)了C一些一层开发模式下的缺陷了呢?你是否碰到过q样的情况呢Q幸q的是,多层开发架构的出现很有效的解决了这L(fng)问题。通过程序架构进行合理的分层Q将极大的提高程序的通用性?br>
     三层中,各个层之间的分工是很明确的,面向对象吗,像一个公怸的部门一P每个部门的分工是不一L(fng)Q是哪个部门的Q务就有哪个部门完成,对应的,各个部门的维护工作也有各自完成且不会(x)影响其它的部门,臛_影响不是很大Q否则就只能说明分层q不合理。各个层之间通过有效的协作来完成pȝ的高效运行。表C层是用来做接?昄数据的工作,它要通过与其它层的协作来完成用户的请求,在这一层不该放太多的代码。逻辑层就是用来做数据有效性判断的Q前面已l说q了Q数据层是用来完成底层数据交互的。表C层׃该去实现逻辑层的功能Q当然我们会(x)在客L(fng)对用L(fng)输入做一些判断,但服务器端,验证q要做。用户完全可以绕q客L(fng)验证不是吗?现在我们在看上面说的问题Q数据库发生了改变,我们只需要修Ҏ(gu)据访问层Q其它的地方我们都不用去,q里我們֐于借助自定义数据实体来负责层与层之间的数据交互Q我们把数据填充到自定义实体中,使用自定义实体的好处请参考我上面的两关于自定义实体的介l的文章。通过数据讉K层来完全装数据供应商,使数据访问层对其它层完全透明Q这样将数据库改变带来的修改完全限定在数据访问层内。我们可以借助一些模式来设计一个通用的数据访问层Q这样即使数据库发生改变Q我们只要修改一下配|就可以L搞定。对于开发^台的改变也变得很Ҏ(gu)Q不是windowsq是webQ变化的只是界面而已Q也是所谓的表示层,它的内核没有变,相当于我们重作一个壳。表C层的代码是很少的,所以修Ҏ(gu)很有限的Q其它两层也不要修改可以迅速做到webE序向windowsE序的过渡?br>你体?x)到三层的优势了吗?当然多层设计q有很多优秀的地方,我只是介l了其中的一部分。下面引入我所理解的三层的概念?br>c)         我的三层l构?/span>
那么怎么才能写出一个比较好的三层结构呢Q下面说说我在程序设计中采用的做法,当然q里谈的只是我对三层的理解,不一定准。欢q拍砖。呵?br>        E序设计q求的是代码的通用性,可移植性,可维护性、功能扩展。怎么才能做到q些呢?q需要我们大量的实践l验做支撑。对面向对象思想的深入了解才能做到。个得优U的多层结构的设计肯定要先_N模式设计,不过遗憾的是Ҏ(gu)式设计研I好长一D|_(d)依然没能领略到它的精髓,研究模式设计真的很过瘑֓?br>

以上是我在层序设计中所使用的分层示意图?br>Web层:(x)也就是表C层Q它负责响应用户的请求,对于q一层越薄越好,一般不应该写太多代码,或者ؓ(f)了页面显C的需要做量的代码。大量的处理工作都交l其它的层去完成。就好比传递员Q只负责接受Qƈ请求向后传递,具体怎么做它不用?br>
Common层:(x)q里用来装一些常用的功能性代码,主要用来为其它层服务的。还有存放一些自定义实体cd和自定义实体cd集合。用于各层次之间数据交互的蝲体。如UserQUserCollectionQ关于自定义实体q里׃展开了,如果pȝ复杂的话q一层应该比较厚实,包括下面的BLL层也是如此?br>BLL层:(x)是逻辑层,用来Ҏ(gu)据进行有效性验证,牉|到对敏感数据的操作都需要经q这里做判断Q然后才能决定操作是否合法?br>
Dal层:(x)数据讉K层;装Ҏ(gu)据库的操作。我们可以做一个通用的数据访问层Q下ơ开发的时候,可以直接拿q来用。很爽的。有一点从q里传进来、传出去的数据都用自定义实体代替Q这样就可以实现数据讉K层对其它层的完全透明。这里封装所有于数据库相关的代码Q包括sql语句Q存储过E等?br>
分层的思\说完了,在多人开发系l的q程中,可以按层来划分dQ只要设计的时候把接口定义好,开发h员就可以同时开发。而且不会(x)发生冲突Q做前台的hҎ(gu)׃需要知道数据库l构是什么,该怎么L找,更新Q删除数据,他直观调用响应的Ҏ(gu)可以了。数据访问层的h也不需要知道前台发生了什么,定义好与其它层交互的接口Q规定好参数p。各个层都一P做好自己的工作就可以了,只要能做到对其它层的完全透明。这样就可以修攚w定在一个比较小的范围内?br>
但各个层具体的代码该怎么l织Q我惌p看个人的造诣了,要开发出高性能Q可扩展的代码就需要结合模式设计的思想Q通过代码l构的科学、合理的设计方能在日后的l护q程中游刃有余?br>
三?nbsp;    ȝ

1)       从开发角度和应用角度来看Q三层架构比双层或单层结构都有更大的优势。三层结构适合体开发,每h可以有不同的分工Q协同工作效率倍增。开发双层或单层应用Ӟ每个开发h员都应对pȝ有较q理解Q能力要求很高,开发三层应用时Q则可以l合多方面的人才Q只需数人对pȝ全面了解Q从一定程度工降低了开发的隑ֺ

2)       三层架构可以更好的支持分布式计算环境。逻辑层的应用E序可以有多个机器上q行Q充分利用网l的计算功能。分布式计算的潜力巨大,q比升CPU有效。美国h曑ֈ用分式计解密,几个月就破解了据U永q都破不了的密码

3)       也是三层架构的最大优Ҏ(gu)它的安全性。用L(fng)只能通过逻辑层来讉K数据层,减少了入口点Q把很多危险的系l功能都屏蔽?br>


天然 2007-08-07 10:59 发表评论
]]>
վ֩ģ壺 AV뾫Ʒ| Ůһ | ɫ͵͵ɫݺ99| Ʒ1024Ƶ| Ƶ߹ۿƵ| 2018Ƶѹۿ| ޾ƷӰԺþþþþ| ѵɫƵ| 456˳ӰԺ߹| ѹۿһëƬ| ĻƵ| ޹avӰ| þ99׾Ʒ| þ޾ƷVA| þþþþþƷο| ޾Ʒվ| ˳߹ۿվƵ| ޾ƷƵѹۿ| AVһȾþ| ѾƷպȾþ| AVһ | 99߹߲ѹۿ| ޾ƷŮɫ| ŮƵȫ| һһһƬѸ| ޹ŮaaaëƬ| ߹ۿĶ | ŮһͰһһƵ | þþƷѴƬƬ| רȷӰ| ѸԴվ߹ۿ| ˳ƵƵ| ɫͼУ԰ɫ| һëƬ߲| ѿjŽŮjѿ| ۺվ| gv޹gvո| 99߾ƷƵž| ߹ۿѹۿַ| ޹һ| һëƬѲ|