天天躁日日躁狠狠躁AV麻豆-天天躁人人躁人人躁狂躁-天天澡夜夜澡人人澡-天天影视香色欲综合网-国产成人女人在线视频观看-国产成人女人视频在线观看

[觀點] RIA是三層應(yīng)用體系的二次革命

  RIA(Rich InterNET Application)為何而產(chǎn)生,它的意義何在?流行的說法是:為Web應(yīng)用提供豐富的操作體驗,提高系統(tǒng)的友好性云云。這種看法不能說錯,但是我希望從另一個角度來理解:為什么說RIA的出現(xiàn)是歷史的必然,以及RIA對于多層應(yīng)用的意義究竟是什么。

  我們回頭來看一看程序分層結(jié)構(gòu)發(fā)展的歷史。早期的程序是沒有什么分層的概念的,包括界面、邏輯和數(shù)據(jù)在內(nèi)的所有內(nèi)容全部編譯到單一的執(zhí)行文件中,如下圖所示:

  隨著應(yīng)用程序的發(fā)展,對數(shù)據(jù)管理的需求越來越強烈,于是數(shù)據(jù)庫出現(xiàn)了。從而數(shù)據(jù)這一部分從應(yīng)用程序中剝離,成為獨立于編程語言而單獨發(fā)展的分支。數(shù)據(jù)庫的獨立發(fā)展是客戶/服務(wù)器(C/S)體系結(jié)構(gòu)的前提和必要條件,從此應(yīng)用程序發(fā)展為下圖所示的兩層結(jié)構(gòu):

  數(shù)據(jù)庫與應(yīng)用程序的分離,應(yīng)用程序從單層過度到兩層,是分層體系發(fā)展歷史上的一個重大的里程碑——我個人把它叫做“應(yīng)用程序的第一次社會大分工”。

  想當然耳,有了第一次就會再有第二次。促成第二次社會大分工的是Web的蓬勃發(fā)展,HTML成為發(fā)布應(yīng)用界面的標準手段,表現(xiàn)層從邏輯層分離出來,兩層結(jié)構(gòu)進化為三層結(jié)構(gòu):

  第二次社會大分工已經(jīng)發(fā)生,三層應(yīng)用成為標準,那么是不是我們這個歷史時代已經(jīng)結(jié)束了呢?接下來是不是應(yīng)該開始期待四層結(jié)構(gòu)的到來呢?我說不是,三層結(jié)構(gòu)還沒有發(fā)展到頭,革命尚未成功,同志仍需努力。

  還有什么任務(wù)還沒有完成呢?在回答這個問題之前,請你先考慮這樣一個問題,多層體系的本質(zhì)特性是什么?當然不同的人對這個問題會有不同的理解,就我而言,最基礎(chǔ)的觀點是:一個應(yīng)用究竟是不是多層應(yīng)用,要看它的每一層是不是具有獨立可替換性。換句話說,把應(yīng)用程序中的一層完全替換為其他實現(xiàn),對其他層(理論上)完全沒有影響,或者(實際上)只有很小的影響,這個應(yīng)用才能稱為多層應(yīng)用,否則就是偽多層應(yīng)用。如果在層與層之間存在嚴重的耦合,那么分層就沒有一點意義了。千萬別掛著三層的羊頭,賣著兩層或單層的狗肉(盡管狗肉不見得不好)。

  讓我們從這個觀點來考察第一次社會大分工的結(jié)果。不妨問問以下幾個問題:

  1. 如果把應(yīng)用邏輯層從Java換成C#(或者其他語言,看你的實際情況),程序還能跑嗎?數(shù)據(jù)庫需要改變嗎?

  回答:能。數(shù)據(jù)庫不用修改。

  2. 如果把數(shù)據(jù)庫從Oracle換成Mysql(或其他數(shù)據(jù)庫,同上),程序還能跑嗎?邏輯層需要改變嗎?

答:如果程序沒有依賴于某個數(shù)據(jù)庫獨有的特性,就沒有問題。通常需要對數(shù)據(jù)庫驅(qū)動程序和連接信息作一些修改,對于配置良好的應(yīng)用程序,這些修改是很小的。

  從這些問題我們可以認為,兩層結(jié)構(gòu)的這一次社會大分工是非常成功、非常徹底的,數(shù)據(jù)庫和編程語言基本上已經(jīng)完全解耦,數(shù)據(jù)庫不再依賴于編程語言,編程語言也不再依賴數(shù)據(jù)庫。同時我要強調(diào)一點,之所以能夠進行這樣完全的解耦,主要功勞在于標準化的數(shù)據(jù)庫查詢語言——SQL的存在。試想如果每種數(shù)據(jù)庫都有自己的一套完全不兼容的API會怎樣?那樣任何一個程序都會綁死在特定的數(shù)據(jù)庫上,根本談不上什么分層。

  現(xiàn)在再來看一看三層的情況,同樣有如下問題:

  如果把業(yè)務(wù)邏輯層從C#切換到Java,表現(xiàn)層需要修改嗎?

  問題來了。這種情況下何止是需要修改,所有的ASP.NET Server Control全部廢掉了,除了用JSP重寫一遍以外,別無他法。這種問題對于Java來說更加嚴重,因為Java表現(xiàn)層框架可以說是山頭林立,每個框架都有自己的一套語法機制,換個框架基本上就意味著推倒重來。這也是Java社區(qū)為什么從前幾年就開始推崇“無侵入”設(shè)計理念的重要原因——切換的代價太大了。

  基于此種現(xiàn)狀可以得出結(jié)論:相對于第一次大分工來說,三層應(yīng)用這一次分工是不完全、不徹底的。像ASP.NET或JSF,甚至包括ROR的RHTML,這些使用服務(wù)器生成技術(shù)的框架只能叫做偽三層應(yīng)用,因為表現(xiàn)層被綁死在了特定的后端技術(shù)上,根本沒有脫離后端平臺獲得重用的機會。在這些框架里,表現(xiàn)層只能算是應(yīng)用邏輯層的附庸,還談不上是獨立的一個層。

  第二次大分工還沒有完成,三層應(yīng)用還不算完整,那么誰來發(fā)起二次革命,完成未竟的事業(yè)呢?這就引出了我在標題提出的觀點:RIA將完成三層體系的二次革命。

  我不想再重復(fù)RIA有哪些好處、帶來什么體驗之類老生常談,只想說從歷史發(fā)展來看,RIA的出現(xiàn)是時代使然,它的出現(xiàn)將補上三層結(jié)構(gòu)最后那缺失的一部分。從RIA技術(shù)發(fā)展的現(xiàn)狀也可以清楚的看到這種趨勢:所有現(xiàn)代RIA技術(shù),包括Flash/Flex、Silverlight、Ajax、Curl等等,它們的一個基本的共同點就是不依賴于特定的后臺技術(shù),可以和任何服務(wù)端搭配使用。甚至可以說,不具備此特點的技術(shù)不應(yīng)當稱之為RIA。(當然,各種RIA技術(shù)或多或少還是有一定平臺傾向,但做到平臺無關(guān)性不再是一個困難的目標)此外我在前面也說過,多層技術(shù)的發(fā)展有賴于層與層之間的標準接口,這種趨勢現(xiàn)在也已經(jīng)非常明顯。XML-RPC、SOAP、JSON、REST各種技術(shù)的不斷涌現(xiàn),無不是順應(yīng)歷史的要求,力圖解決接口標準的問題,為三層結(jié)構(gòu)的最終實現(xiàn)奠定必要的物質(zhì)基礎(chǔ)。

  Ajax是略微特殊的一個案例。盡管也稱之為RIA,但相較Flex和Silverlight這樣完整的解決方案,許多Ajax框架還是不太容易脫離服務(wù)端生成技術(shù)。OPOA(One Page, One Application)的概念多年前就已經(jīng)出現(xiàn),其核心思想就是不要再讓服務(wù)器參與頁面生成,在瀏覽器中利用Javascript來構(gòu)造一個完整的應(yīng)用。但現(xiàn)狀來看,用Ajax實現(xiàn)OPOA在許多實例中仍然有很大難度,Ajax在所有RIA方案中對后臺的依賴性是最大的一個。不過HTML/CSS/Javascript仍然在不斷進步,利用一些尚未標準化的技術(shù)(如Google Gears)也能解決大多數(shù)問題,Ajax的前景應(yīng)當還是值得期待的。

  歷史大勢,浩浩蕩蕩,順之者昌,逆之者亡。表現(xiàn)層脫離后臺技術(shù)的桎梏,自由獨立地發(fā)展,這已經(jīng)是確定不移的趨勢。試圖將表現(xiàn)層綁定在后臺實現(xiàn)上的技術(shù)(典型代表ASP.NET和JSF),盡管在設(shè)計上極盡精妙,終究是背離歷史發(fā)展方向的,有如再賢明的君主也無法掩蓋集權(quán)專制的弊端。唯有RIA,相信將會“道路越走越寬闊”。

it知識庫[觀點] RIA是三層應(yīng)用體系的二次革命,轉(zhuǎn)載需保留來源!

鄭重聲明:本文版權(quán)歸原作者所有,轉(zhuǎn)載文章僅為傳播更多信息之目的,如作者信息標記有誤,請第一時間聯(lián)系我們修改或刪除,多謝。

主站蜘蛛池模板: 热热久久超碰精品中文字幕 | 中字幕久久久人妻熟女天美传媒 | aa级毛片毛片免费观看久 | 一本道高清不卡v免费费 | 99精品视频免费在线观看 | 女人爽到高潮嗷嗷叫视频 | 无码任你躁久久久久久老妇双奶 | 99久久精品免费看国产一区二区三区 | 99视频精品免视3 | 亚洲无遮挡 | 国产成人精品免费视频大全办公室 | 国产成人免费 | qovd伦理| 黄得让人湿的片段 | 国产亚洲精品线视频在线 | 漂亮的保姆5电影免费观看完整版中文 | 亚洲AV久久久噜噜噜久久 | 再插深点嗯好大好爽 | 久久国产精品免费A片蜜芽 久久国产精品萌白酱免费 久久国产精品麻豆AV影视 | 百性阁论坛首页 | 一二三四在线视频社区 | 高清无码中文字幕在线观看视频 | 麻豆国产精品AV色拍综合 | 3acg同人漫画禁图h | 亚洲国产精品日本无码网站 | 99九九精品视频 | 伊人久久大香线蕉电影院 | 日本超A大片在线观看 | 少妇连续高潮抽搐痉挛昏厥 | 王晶经典三级 | 男女啪啪久久精品亚洲A | 色姊姊真舒服 | 男人把女人桶到爽免费看视频 | 97在线视频免费观看97 | 国产做国产爱免费视频 | 男的插曲女的下面免费APP | 最近中文字幕MV高清在线 | 日韩爽爽影院在线播放 | 艳妇臀荡乳欲伦岳TXT下载 | 99热久久精品国产一区二区 | 1313久久国产午夜精品理论片 |