日韩黑丝制服一区视频播放|日韩欧美人妻丝袜视频在线观看|九九影院一级蜜桃|亚洲中文在线导航|青草草视频在线观看|婷婷五月色伊人网站|日本一区二区在线|国产AV一二三四区毛片|正在播放久草视频|亚洲色图精品一区

分享

Web開(kāi)發(fā)技術(shù)發(fā)展史話(huà)

 ekylin 2006-08-13

    討論Web開(kāi)發(fā)技術(shù)的歷史,當(dāng)然要先說(shuō)說(shuō)Web的起源。眾所周知,Web這個(gè)Internet上最熱門(mén)的應(yīng)用架構(gòu)是由Tim Berners-Lee發(fā)明的。Web的前身是1980年Tim Berners-Lee負(fù)責(zé)的Enquire(Enquire Within Upon Everything的簡(jiǎn)稱(chēng))項(xiàng)目。1990年11月,第一個(gè)Web服務(wù)器nxoc01.cern.ch開(kāi)始運(yùn)行,Tim Berners-Lee在自己編寫(xiě)的圖形化Web瀏覽器"WorldWideWeb"上看到了最早的Web頁(yè)面。1991年,CERN(European Particle Physics Laboratory)正式發(fā)布了Web技術(shù)標(biāo)準(zhǔn)。目前,與Web相關(guān)的各種技術(shù)標(biāo)準(zhǔn)都由著名的W3C組織(World Wide Web Consortium)管理和維護(hù)。


   從技術(shù)層面看,Web架構(gòu)的精華有三處:用超文本技術(shù)(HTML)實(shí)現(xiàn)信息與信息的連接;用統(tǒng)一資源定位技術(shù)(URI)實(shí)現(xiàn)全球信息的精確定位;用新的應(yīng)用層協(xié)議(HTTP)實(shí)現(xiàn)分布式的信息共享。這三個(gè)特點(diǎn)無(wú)一不與信息的分發(fā)、獲取和利用有關(guān)。其實(shí),Tim Berners-Lee早就明確無(wú)誤地告訴我們:"Web是一個(gè)抽象的(假想的)信息空間。"也就是說(shuō),作為Internet上的一種應(yīng)用架構(gòu),Web的首要任務(wù)就是向人們提供信息和信息服務(wù)。

   很可惜,在Web應(yīng)用日新月異的今天,許多搞技術(shù)的人似乎已經(jīng)忘記了Web架構(gòu)的設(shè)計(jì)初衷。他們?cè)谧约洪_(kāi)發(fā)的網(wǎng)站或Web應(yīng)用中大肆堆砌各種所謂的"先進(jìn)"技術(shù),但最終用戶(hù)能夠在這些網(wǎng)站或應(yīng)用中獲得的有價(jià)值信息卻寥寥無(wú)幾。這個(gè)問(wèn)題絕不像評(píng)論者常說(shuō)的"有路無(wú)車(chē)"或"信息匱乏"那么簡(jiǎn)單。一個(gè)Web開(kāi)發(fā)者倘若忘記了Web技術(shù)的最終目標(biāo)是提供信息和信息服務(wù),他的愚蠢程度就絲毫不亞于一個(gè)在足球場(chǎng)上只知道賣(mài)弄技巧,卻忘記了射門(mén)得分的大牌球星。從這個(gè)角度來(lái)說(shuō),評(píng)價(jià)一種Web開(kāi)發(fā)技術(shù)優(yōu)劣的標(biāo)準(zhǔn)只有一個(gè),那就是看這種技術(shù)能否在最恰當(dāng)?shù)臅r(shí)間和最恰當(dāng)?shù)牡攸c(diǎn),以最恰當(dāng)?shù)姆绞?,為最需要信息的人提供最恰?dāng)?shù)男畔⒎?wù)。

  客戶(hù)端技術(shù)的萌芽和演進(jìn)

   Web是一種典型的分布式應(yīng)用架構(gòu)。Web應(yīng)用中的每一次信息交換都要涉及到客戶(hù)端和服務(wù)端兩個(gè)層面。因此,Web開(kāi)發(fā)技術(shù)大體上也可以被分為客戶(hù)端技術(shù)和服務(wù)端技術(shù)兩大類(lèi)。我們先來(lái)談?wù)効蛻?hù)端技術(shù)的萌芽和演進(jìn)過(guò)程。

   Web客戶(hù)端的主要任務(wù)是展現(xiàn)信息內(nèi)容,而HTML語(yǔ)言則是信息展現(xiàn)的最有效載體之一。作為一種實(shí)用的超文本語(yǔ)言,HTML的歷史最早可以追溯到上世紀(jì)四十年代。1945年,Vannevar Bush在一篇文章中闡述了文本和文本之間通過(guò)超級(jí)鏈接相互關(guān)聯(lián)的思想,并在文中給出了一種能實(shí)現(xiàn)信息關(guān)聯(lián)的計(jì)算機(jī)Memex的設(shè)計(jì)方案。Doug Engelbart等人則在1960年前后,對(duì)信息關(guān)聯(lián)技術(shù)做了最早的實(shí)驗(yàn)。與此同時(shí),Ted Nelson正式將這種信息關(guān)聯(lián)技術(shù)命名為超文本(Hypertext)技術(shù)。1969年,IBM的Charles Goldfarb發(fā)明了可用于描述超文本信息的GML(Generalized Markup Language)語(yǔ)言。1978到1986年間,在A(yíng)NSI等組織的努力下,GML語(yǔ)言進(jìn)一步發(fā)展成為著名的SGML語(yǔ)言標(biāo)準(zhǔn)。當(dāng)Tim Berners-Lee和他的同事們?cè)?989年試圖創(chuàng)建一個(gè)基于超文本的分布式應(yīng)用系統(tǒng)時(shí),Tim Berners-Lee意識(shí)到,SGML是描述超文本信息的一個(gè)上佳方案,但美中不足的是,SGML過(guò)于復(fù)雜,不利于信息的傳遞和解析。于是,Tim Berners-Lee對(duì)SGML語(yǔ)言做了大刀闊斧的簡(jiǎn)化和完善。1990年,第一個(gè)圖形化的Web瀏覽器"WorldWideWeb"終于可以使用一種為Web度身定制的語(yǔ)言--HTML來(lái)展現(xiàn)超文本信息了。

   最初的HTML語(yǔ)言只能在瀏覽器中展現(xiàn)靜態(tài)的文本或圖像信息,這滿(mǎn)足不了人們對(duì)信息豐富性和多樣性的強(qiáng)烈需求--這件事情最終的結(jié)果是,由靜態(tài)技術(shù)向動(dòng)態(tài)技術(shù)的轉(zhuǎn)變成為了Web客戶(hù)端技術(shù)演進(jìn)的永恒定律。

   能存儲(chǔ)、展現(xiàn)二維動(dòng)畫(huà)的GIF圖像格式早在1989年就已發(fā)展成熟。Web出現(xiàn)后,GIF第一次為HTML頁(yè)面引入了動(dòng)感元素。但更大的變革來(lái)源于1995年Java語(yǔ)言的問(wèn)世。Java語(yǔ)言天生就具備的平臺(tái)無(wú)關(guān)的特點(diǎn),讓人們一下子找到了在瀏覽器中開(kāi)發(fā)動(dòng)態(tài)應(yīng)用的捷徑。1996年,著名的Netscape瀏覽器在其2.0版中增加了對(duì)JavaApplets和Javascript的支持。Netscape的冤家對(duì)頭,Microsoft的IE 3.0也在這一年開(kāi)始支持Java技術(shù)?,F(xiàn)在,喜歡動(dòng)畫(huà)、喜歡交互操作、喜歡客戶(hù)端應(yīng)用的開(kāi)發(fā)人員可以用Java或Javascript語(yǔ)言隨心所欲地豐富HTML頁(yè)面的功能了。順便說(shuō)一句,Javascript語(yǔ)言在所有客戶(hù)端開(kāi)發(fā)技術(shù)中占有非常獨(dú)特的地位:它是一種以腳本方式運(yùn)行的,簡(jiǎn)化了的Java語(yǔ)言,這也是腳本技術(shù)第一次在Web世界里嶄露頭角。為了用純Microsoft的技術(shù)與Javascript抗衡,Microsoft還為1996年的IE 3.0設(shè)計(jì)了另一種后來(lái)也聲名顯赫的腳本語(yǔ)言--VBscript語(yǔ)言。

   真正讓HTML頁(yè)面又酷又炫、動(dòng)感無(wú)限的是CSS(Cascading Style Sheets)和DHTML(Dynamic HTML)技術(shù)。1996年底,W3C提出了CSS的建議標(biāo)準(zhǔn),同年,IE 3.0引入了對(duì)CSS的支持。CSS大大提高了開(kāi)發(fā)者對(duì)信息展現(xiàn)格式的控制能力。1997年的Netscape 4.0不但支持CSS,而且增加了許多Netscape公司自定義的動(dòng)態(tài)HTML標(biāo)記,這些標(biāo)記在CSS的基礎(chǔ)上,讓HTML頁(yè)面中的各種要素"活動(dòng)"了起來(lái)。1997年,Microsoft發(fā)布了IE 4.0,并將動(dòng)態(tài)HTML標(biāo)記、CSS和動(dòng)態(tài)對(duì)象模型(DHTML Object Model)發(fā)展成了一套完整、實(shí)用、高效的客戶(hù)端開(kāi)發(fā)技術(shù)體系,Microsoft稱(chēng)其為DHTML。同樣是實(shí)現(xiàn)HTML頁(yè)面的動(dòng)態(tài)效果,DHTML技術(shù)無(wú)需啟動(dòng)Java虛擬機(jī)或其他腳本環(huán)境,可以在瀏覽器的支持下,獲得更好的展現(xiàn)效果和更高的執(zhí)行效率。今天,已經(jīng)很少有哪個(gè)HTML頁(yè)面的開(kāi)發(fā)者還會(huì)對(duì)CSS和DHTML技術(shù)視而不見(jiàn)了。

   為了在HTML頁(yè)面中實(shí)現(xiàn)音頻、視頻等更為復(fù)雜的多媒體應(yīng)用,1996年的Netscape 2.0成功地引入了對(duì)QuickTime插件的支持,插件這種開(kāi)發(fā)方式也迅速風(fēng)靡了瀏覽器的世界。在Windows平臺(tái)上,Microsoft將客戶(hù)端應(yīng)用集成的賭注押到了1990年代中期剛剛問(wèn)世的COM和ActiveX身上。1996年,IE 3.0正式支持在HTML頁(yè)面中插入ActiveX控件的功能,這為其他廠(chǎng)商擴(kuò)展Web客戶(hù)端的信息展現(xiàn)方式開(kāi)辟了一條自由之路。1999年,Realplayer插件先后在Netscape和IE瀏覽器中取得了成功,與此同時(shí),Microsoft自己的媒體播放插件Media Player也被預(yù)裝到了各種Windows版本之中。同樣值得紀(jì)念的還有Flash插件的橫空出世:1990年代初期,Jonathan Gay在FutureWave公司開(kāi)發(fā)了一種名為Future Splash Animator的二維矢量動(dòng)畫(huà)展示工具,1996年,Macromedia公司收購(gòu)了FutureWave,并將Jonathan Gay的發(fā)明改名為我們熟悉的Flash。從此,F(xiàn)lash動(dòng)畫(huà)成了Web開(kāi)發(fā)者表現(xiàn)自我、展示個(gè)性的最佳方式。

   除了編寫(xiě)HTML頁(yè)面之外,客戶(hù)端應(yīng)用的開(kāi)發(fā)者還可以利用一些成熟的技術(shù)將瀏覽器的功能添加到自己的應(yīng)用程序中。從1992年開(kāi)始,W3C就免費(fèi)向開(kāi)發(fā)者提供libwww開(kāi)發(fā)庫(kù)。借助libwww,我們可以自己編寫(xiě)Web瀏覽器和Web搜索工具,也可以分析、編輯或顯示HTML頁(yè)面。1999年,Microsoft在IE 5.0中引入的HTAs(HTML Applications)技術(shù)則允許我們直接將HTML頁(yè)面轉(zhuǎn)換為一個(gè)真正的應(yīng)用程序。從1997年的IE 4.0開(kāi)始,Microsoft為開(kāi)發(fā)者提供了WebBrowser控件和其他相關(guān)的COM接口,允許程序員在自己的程序中直接嵌入瀏覽器窗口,或調(diào)用各種瀏覽器的功能,如分析或編輯HTML頁(yè)面等。Windows 98及其后的Windows操作系統(tǒng)甚至還利用WSH(Windows script Host)技術(shù)將原本只在瀏覽器中運(yùn)行的Javascript、VBscript變成了可以在WIN32環(huán)境下使用的通用腳本語(yǔ)言,這大概也可算作我們對(duì)Web客戶(hù)端開(kāi)發(fā)技術(shù)的一種巧妙利用吧。

  服務(wù)端技術(shù)的成熟與發(fā)展

   與客戶(hù)端技術(shù)從靜態(tài)向動(dòng)態(tài)的演進(jìn)過(guò)程類(lèi)似,Web服務(wù)端的開(kāi)發(fā)技術(shù)也是由靜態(tài)向動(dòng)態(tài)逐漸發(fā)展、完善起來(lái)的。

   最早的Web服務(wù)器簡(jiǎn)單地響應(yīng)瀏覽器發(fā)來(lái)的HTTP請(qǐng)求,并將存儲(chǔ)在服務(wù)器上的HTML文件返回給瀏覽器。一種名為SSI(Server Side Includes)的技術(shù)可以讓W(xué)eb服務(wù)器在返回HTML文件前,更新HTML文件的某些內(nèi)容,但其功能非常有限。第一種真正使服務(wù)器能根據(jù)運(yùn)行時(shí)的具體情況,動(dòng)態(tài)生成HTML頁(yè)面的技術(shù)是大名鼎鼎的CGI(Common Gateway Interface)技術(shù)。1993年,CGI 1.0的標(biāo)準(zhǔn)草案由NCSA(National Center for Supercomputing Applications)提出,1995年,NCSA開(kāi)始制定CGI 1.1標(biāo)準(zhǔn),1997年,CGI 1.2也被納入了議事日程。CGI技術(shù)允許服務(wù)端的應(yīng)用程序根據(jù)客戶(hù)端的請(qǐng)求,動(dòng)態(tài)生成HTML頁(yè)面,這使客戶(hù)端和服務(wù)端的動(dòng)態(tài)信息交換成為了可能。隨著CGI技術(shù)的普及,聊天室、論壇、電子商務(wù)、信息查詢(xún)、全文檢索等各式各樣的Web應(yīng)用蓬勃興起,人們終于可以享受到信息檢索、信息交換、信息處理等更為便捷的信息服務(wù)了。

   早期的CGI程序大多是編譯后的可執(zhí)行程序,其編程語(yǔ)言可以是C、C++、Pascal等任何通用的程序設(shè)計(jì)語(yǔ)言。為了簡(jiǎn)化CGI程序的修改、編譯和發(fā)布過(guò)程,人們開(kāi)始探尋用腳本語(yǔ)言實(shí)現(xiàn)CGI應(yīng)用的可行方式。在此方面,不能不提的是Larry Wall于1987年發(fā)明的Perl語(yǔ)言。Perl結(jié)合了C語(yǔ)言的高效以及sh、awk等腳本語(yǔ)言的便捷,似乎天生就適用于CGI程序的編寫(xiě)。1995年,第一個(gè)用Perl寫(xiě)成的CGI程序問(wèn)世。很快,Perl在CGI編程領(lǐng)域的風(fēng)頭就蓋過(guò)了它的前輩C語(yǔ)言。隨后,Python等著名的腳本語(yǔ)言也陸續(xù)加入了CGI編程語(yǔ)言的行列。

   1994年,Rasmus Lerdorf發(fā)明了專(zhuān)用于Web服務(wù)端編程的PHP(Personal Home Page Tools)語(yǔ)言。與以往的CGI程序不同,PHP語(yǔ)言將HTML代碼和PHP指令合成為完整的服務(wù)端動(dòng)態(tài)頁(yè)面,Web應(yīng)用的開(kāi)發(fā)者可以用一種更加簡(jiǎn)便、快捷的方式實(shí)現(xiàn)動(dòng)態(tài)Web功能。1996年,Microsoft借鑒PHP的思想,在其Web服務(wù)器IIS 3.0中引入了ASP技術(shù)。ASP使用的腳本語(yǔ)言是我們熟悉的VBscript和Javascript。借助Microsoft Visual Studio等開(kāi)發(fā)工具在市場(chǎng)上的成功,ASP迅速成為了Windows系統(tǒng)下Web服務(wù)端的主流開(kāi)發(fā)技術(shù)。當(dāng)然,以Sun公司為首的Java陣營(yíng)也不會(huì)示弱。1997年,Servlet技術(shù)問(wèn)世,1998年,JSP技術(shù)誕生。Servlet和JSP的組合(還可以加上JavaBean技術(shù))讓Java開(kāi)發(fā)者同時(shí)擁有了類(lèi)似CGI程序的集中處理功能和類(lèi)似PHP的HTML嵌入功能,此外,Java的運(yùn)行時(shí)編譯技術(shù)也大大提高了Servlet和JSP的執(zhí)行效率--這也正是Servlet和JSP被后來(lái)的J2EE平臺(tái)吸納為核心技術(shù)的原因之一。

    兩種重要的企業(yè)開(kāi)發(fā)平臺(tái)

   Web服務(wù)端開(kāi)發(fā)技術(shù)的完善使開(kāi)發(fā)復(fù)雜的Web應(yīng)用成為了可能。在此起彼伏的電子商務(wù)大潮中,為了適應(yīng)企業(yè)級(jí)應(yīng)用開(kāi)發(fā)的各種復(fù)雜需求,為了給最終用戶(hù)提供更可靠、更完善的信息服務(wù),兩個(gè)最重要的企業(yè)級(jí)開(kāi)發(fā)平臺(tái)--J2EE和.NET在2000年前后分別誕生于Java和Windows陣營(yíng),它們隨即就在企業(yè)級(jí)Web開(kāi)發(fā)領(lǐng)域展開(kāi)了你死我活的拼爭(zhēng)。平臺(tái)之爭(zhēng)讓整個(gè)Web世界在最近的幾年里不得安寧,但從某種意義上說(shuō),也正是這種針?shù)h相對(duì)的競(jìng)爭(zhēng)關(guān)系促使了Web開(kāi)發(fā)技術(shù)以前所未有的速度提高和躍進(jìn)。

   J2EE是純粹基于Java的解決方案。1998年,Sun發(fā)布了EJB 1.0標(biāo)準(zhǔn)。EJB為企業(yè)級(jí)應(yīng)用中必不可少的數(shù)據(jù)封裝、事務(wù)處理、交易控制等功能提供了良好的技術(shù)基礎(chǔ)。至此,J2EE平臺(tái)的三大核心技術(shù)Servlet、JSP和EJB都已先后問(wèn)世。1999年,Sun正式發(fā)布了J2EE的第一個(gè)版本。緊接著,遵循J2EE標(biāo)準(zhǔn),為企業(yè)級(jí)應(yīng)用提供支撐平臺(tái)的各類(lèi)應(yīng)用服務(wù)軟件爭(zhēng)先恐后地涌現(xiàn)了出來(lái)。IBM的WebSphere、BEA的WebLogic都是這一領(lǐng)域里最為成功的商業(yè)軟件平臺(tái)。隨著開(kāi)源運(yùn)動(dòng)的興起,JBoss等開(kāi)源世界里的應(yīng)用服務(wù)新秀也吸引了許多用戶(hù)的注意力。到2003年時(shí),Sun的J2EE版本已經(jīng)升級(jí)到了1.4版,其中三個(gè)關(guān)鍵組件的版本也演進(jìn)到了Servlet 2.4、JSP 2.0和EJB 2.1。至此,J2EE體系及相關(guān)的軟件產(chǎn)品已經(jīng)成為了Web服務(wù)端開(kāi)發(fā)的一個(gè)強(qiáng)有力的支撐環(huán)境。

   和J2EE不同的是,Microsoft的.NET平臺(tái)是一個(gè)強(qiáng)調(diào)多語(yǔ)言間交互的通用運(yùn)行環(huán)境。盡管.NET的設(shè)計(jì)者試圖以.NET平臺(tái)作為絕大多數(shù)Windows應(yīng)用的首選運(yùn)行環(huán)境,但.NET首先吸引的卻是Web開(kāi)發(fā)者的目光。2001年,ECMA通過(guò)了Microsoft提交的C#語(yǔ)言和CLI標(biāo)準(zhǔn),這兩個(gè)技術(shù)標(biāo)準(zhǔn)構(gòu)成了.NET平臺(tái)的基石,它們也于2003年成為了ISO的國(guó)際標(biāo)準(zhǔn)。2002年,Microsoft正式發(fā)布.NET Framework和Visual Studio .NET開(kāi)發(fā)環(huán)境。早在.NET發(fā)布之前,就已經(jīng)有許多Windows平臺(tái)的Web開(kāi)發(fā)者迫不及待地利用Beta版本開(kāi)發(fā)Web應(yīng)用了。這大概是因?yàn)椋?NET平臺(tái)及相關(guān)的開(kāi)發(fā)環(huán)境不但為Web服務(wù)端應(yīng)用提供了一個(gè)支持多種語(yǔ)言的、通用的運(yùn)行平臺(tái),而且還引入了ASP.NET這樣一種全新的Web開(kāi)發(fā)技術(shù)。ASP.NET超越了ASP的局限,可以使用VB.NET、C#等編譯型語(yǔ)言,支持Web Form、.NET Server Control、ADO.NET等高級(jí)特性??陀^(guān)地講,.NET平臺(tái),尤其是.NET平臺(tái)中的ASP.NET的確不失為Web開(kāi)發(fā)技術(shù)在Windows平臺(tái)上的一個(gè)集大成者。

  XML語(yǔ)言及相關(guān)技術(shù)

   如果說(shuō)HTML語(yǔ)言給Web世界賦予了無(wú)限生機(jī)的話(huà),那么,XML語(yǔ)言的出現(xiàn)大概就可以算成是Web的一次新生了。按照Tim Berners-Lee的說(shuō)法,Web是一個(gè)"信息空間"。HTML語(yǔ)言具有較強(qiáng)的表現(xiàn)力,但也存在結(jié)構(gòu)過(guò)于靈活、語(yǔ)法不規(guī)范的弱點(diǎn)。當(dāng)信息都以HTML語(yǔ)言的面貌出現(xiàn)時(shí),Web這個(gè)信息空間是雜亂無(wú)章、沒(méi)有秩序的。為了讓W(xué)eb世界里的所有信息都有章可循、有法可依,我們需要一種更為規(guī)范、更能夠體現(xiàn)信息特點(diǎn)的語(yǔ)言。

   1996年,W3C在SGML語(yǔ)言的基礎(chǔ)上,提出了XML(Extensible Markup Language)語(yǔ)言草案。1998年,W3C正式發(fā)布了XML 1.0標(biāo)準(zhǔn)。XML語(yǔ)言對(duì)信息的格式和表達(dá)方法做了最大程度的規(guī)范,應(yīng)用軟件可以按照統(tǒng)一的方式處理所有XML信息。這樣一來(lái),信息在整個(gè)Web世界里的共享和交換就有了技術(shù)上的保障。HTML語(yǔ)言關(guān)心的是信息的表現(xiàn)形式,而XML語(yǔ)言關(guān)心的是信息本身的格式和數(shù)據(jù)內(nèi)容。從這個(gè)意義上說(shuō),XML語(yǔ)言不但可以將客戶(hù)端的信息展現(xiàn)技術(shù)提高到一個(gè)新的層次,而且可以顯著提高服務(wù)端的信息獲取、生成、發(fā)布和共享能力。為了將XML信息轉(zhuǎn)換為HTML等不同的信息展現(xiàn)形式,1999年,W3C制定出了XSLT標(biāo)準(zhǔn)。同一年,IE 5.0增加了對(duì)XML和XSLT的支持。

   現(xiàn)在,網(wǎng)站的開(kāi)發(fā)者可以直接使用XML語(yǔ)言發(fā)布信息了。針對(duì)不同的應(yīng)用領(lǐng)域,人們還制定了許多專(zhuān)門(mén)的XML規(guī)范。例如,2001年W3C發(fā)布的SVG(Scalable Vector Graphics)1.0標(biāo)準(zhǔn)就是一種用XML語(yǔ)言表達(dá)的、全新的二維矢量圖形格式。開(kāi)發(fā)者可以用SVG格式描述大多數(shù)已有的Flash動(dòng)畫(huà)。與Flash格式相比,符合XML標(biāo)準(zhǔn)的SVG格式顯然更有利于信息交換和共享。

   Web本身就是一個(gè)最大的分布式應(yīng)用系統(tǒng)。對(duì)于分布式開(kāi)發(fā)而言,XML技術(shù)也大有用武之地。一個(gè)明顯的事實(shí)是,如果能讓分布式應(yīng)用借助XML格式交換信息,那么,以往橫亙?cè)诜植际郊軜?gòu)上的信息交換難題也就迎刃而解了。1999年,W3C和相關(guān)的企業(yè)開(kāi)始討論設(shè)計(jì)基于XML的通信協(xié)議,2000年,W3C發(fā)布SOAP(Simple Object Access Protocol)協(xié)議的1.1版。人們把利用SOAP協(xié)議傳遞XML信息的分布式應(yīng)用模型稱(chēng)為Web Service。2001年,W3C發(fā)布了WSDL(Web Services Description Language)協(xié)議的1.1版。SOAP協(xié)議和WSDL協(xié)議共同構(gòu)成了Web Service的基礎(chǔ)。隨后,J2EE和.NET這兩大企業(yè)級(jí)開(kāi)發(fā)平臺(tái)先后實(shí)現(xiàn)了Web Service,并將其視為平臺(tái)的一項(xiàng)核心功能。

   Web Service對(duì)于Web開(kāi)發(fā)者的重要意義在于,當(dāng)我們需要在不同的服務(wù)端、不同的客戶(hù)端乃至不同的應(yīng)用類(lèi)型、不同的計(jì)算設(shè)備之間傳遞信息的時(shí)候,以往的分布式開(kāi)發(fā)技術(shù)或者因?yàn)檫m應(yīng)性不強(qiáng),或者因?yàn)閿U(kuò)展能力不足,都難以滿(mǎn)足現(xiàn)代Web開(kāi)發(fā)的需要,而Web Service正好填補(bǔ)了這一空白。

  Web開(kāi)發(fā)框架和應(yīng)用模型

   2000年以后,隨著Web應(yīng)用的日益復(fù)雜,人們逐漸意識(shí)到,單純依靠某種技術(shù)多半無(wú)法達(dá)到快速開(kāi)發(fā)、快速驗(yàn)證和快速部署的最佳境界。研究者開(kāi)始嘗試著將已有的Web開(kāi)發(fā)技術(shù)綜合起來(lái),形成完整的開(kāi)發(fā)框架或應(yīng)用模型,并以此來(lái)滿(mǎn)足各種復(fù)雜的應(yīng)用需求。

   Microsoft在客戶(hù)端的技術(shù)集成方面走在了最前面。1998年時(shí)Microsoft推出的Windows 98就可以在桌面上集成Web頁(yè)面,這實(shí)際上是將資源管理器和Web瀏覽器的功能有效地結(jié)合了起來(lái)。2000年后,Microsoft陸續(xù)推出了MSN Explorer和與之相關(guān)的MSN在線(xiàn)服務(wù)。這一應(yīng)用模型將Web瀏覽、視頻點(diǎn)播、郵件處理、網(wǎng)上游戲、在線(xiàn)聊天等許多種用戶(hù)常用的Web功能集成在了一個(gè)統(tǒng)一的界面中。從信息利用的角度看,MSN試圖讓用戶(hù)在一個(gè)最舒適的環(huán)境中獲取足夠的信息,這種努力的確值得人們稱(chēng)道。另一個(gè)與客戶(hù)端技術(shù)集成相關(guān)的例子是搜索引擎Google在2003年展示給大家的Google工具欄功能。雖然Google工具欄有炒作和廣告的嫌疑,但安裝Google工具欄之后的IE瀏覽器將信息瀏覽和信息檢索有機(jī)地結(jié)合了起來(lái),這種小小的功能改進(jìn)確實(shí)是對(duì)用戶(hù)的體貼和幫助。

   在Web服務(wù)端,2000年以后出現(xiàn)了幾種主要的技術(shù)融合方式。首先,越來(lái)越多的Web開(kāi)發(fā)環(huán)境開(kāi)始支持MVC(Model-View-Contorller)的設(shè)計(jì)模型,為開(kāi)發(fā)者提供了全套的開(kāi)發(fā)框架。實(shí)際上,J2EE和.NET平臺(tái)本身就是這種開(kāi)發(fā)框架的典型代表。其次,門(mén)戶(hù)服務(wù)(Portal Server)和Web內(nèi)容管理(Web Content Management)在最近幾年里成為了應(yīng)用集成的重點(diǎn)模型。這兩種應(yīng)用模型可以直接為開(kāi)發(fā)者或最終用戶(hù)提供構(gòu)建Web應(yīng)用的高級(jí)平臺(tái),可以讓W(xué)eb開(kāi)發(fā)和信息發(fā)布工作大為簡(jiǎn)化。在商業(yè)軟件領(lǐng)域,這一類(lèi)應(yīng)用的例子包括Microsoft的SharePoint、IBM的WebSphere Portal、FileNet的Web Content Manager等等。開(kāi)源項(xiàng)目在Web開(kāi)發(fā)框架和應(yīng)用模型方面表現(xiàn)得非常積極,Struts、Jetspeed、jPortlet、Cocoon、Lenya、XOOPS等都是開(kāi)源世界里與MVC開(kāi)發(fā)框架、門(mén)戶(hù)服務(wù)和Web內(nèi)容管理相關(guān)的優(yōu)秀解決方案。

   當(dāng)然,技術(shù)集成絕不等于技術(shù)堆砌。一些Web站點(diǎn)和Web應(yīng)用的開(kāi)發(fā)者把XML語(yǔ)言、MVC框架等時(shí)髦技術(shù)拼湊起來(lái),卻不管它們是否能適應(yīng)具體的應(yīng)用環(huán)境,結(jié)果,他們的系統(tǒng)要么運(yùn)行效率低下,要么功能殘缺不全。反之,一個(gè)值得注意的事實(shí)是,像新浪、搜狐或網(wǎng)易這樣的門(mén)戶(hù)網(wǎng)站,在他們的信息發(fā)布頁(yè)面(如新聞頁(yè)面)里,盡管信息內(nèi)容時(shí)刻都在刷新,但Web服務(wù)器上存放的始終都是靜態(tài)的HTML頁(yè)面。這種"落后技術(shù)"的優(yōu)點(diǎn)是,在大量并發(fā)訪(fǎng)問(wèn)的情況下,門(mén)戶(hù)網(wǎng)站的響應(yīng)速度仍然很快。深入到技術(shù)層面,我們通常會(huì)驚訝地發(fā)現(xiàn),這些網(wǎng)站使用的大多是自行研發(fā)的Web內(nèi)容管理系統(tǒng)。當(dāng)網(wǎng)站的內(nèi)容編輯提交新的信息時(shí),系統(tǒng)會(huì)自動(dòng)將信息轉(zhuǎn)換為HTML格式,發(fā)布到Web服務(wù)器集群的每一個(gè)結(jié)點(diǎn)上。在新浪網(wǎng)的一個(gè)角落里,我們可以找到"新浪網(wǎng)站發(fā)布系統(tǒng)"的研發(fā)歷程:

  V 1.0(1997):基于文件的版本,實(shí)現(xiàn)新聞首頁(yè)、正文和專(zhuān)題的發(fā)布。
  V 1.1(1998/12):采用數(shù)據(jù)庫(kù)后臺(tái)、實(shí)現(xiàn)跨服務(wù)器發(fā)布,自動(dòng)化程度高。
  V 2.0(1999/3):創(chuàng)立模版和域的全新概念,奠定了該系列的基本設(shè)計(jì)思路。
  V 2.1(1999/9):增加周邊模塊,如搜索、自動(dòng)采集。
  V 3.0(2000/1):優(yōu)化傳輸方式,增加相關(guān)新聞和評(píng)論。
  V 3C(2000/6):V3.0的編譯版,也是商業(yè)版的原型。
  V 3.1(2000/7):優(yōu)化數(shù)據(jù)庫(kù)結(jié)構(gòu),采用內(nèi)存CACHE大幅提速,增加了集中監(jiān)控功能。
  V 3.1C(2000/8):商業(yè)用測(cè)試版本。
  V 3.2(正在制作中):重點(diǎn)解決備份系統(tǒng)的自動(dòng)化切換,在機(jī)制上實(shí)現(xiàn)永不宕機(jī)。

  這一份有趣的歷史記錄再一次印證了我關(guān)于Web開(kāi)發(fā)技術(shù)的基本觀(guān)點(diǎn):一種技術(shù)只要能為用戶(hù)提供高水平的信息服務(wù),它就是最好、最先進(jìn)的技術(shù)。

   Web開(kāi)發(fā)技術(shù)的未來(lái)

  所有人都在關(guān)心Web的發(fā)展前景,所有人都想知道十年以后的Web會(huì)長(zhǎng)成什么樣子。要回答這些問(wèn)題,沒(méi)有誰(shuí)比W3C更有權(quán)威了。W3C明確地告訴我們,Web的未來(lái)是語(yǔ)義化的Web(Semantic Web)。今天的Web可以自如地生成、傳遞和展現(xiàn)各式各樣的信息,但它還只是一個(gè)信息的"容器",很難揭示出信息本身的內(nèi)容和特性。與此相對(duì)的是,未來(lái)的語(yǔ)義化Web是一種懂得信息內(nèi)容的Web,是真正的"信息管理員"。

  從技術(shù)角度看,XML語(yǔ)言統(tǒng)一了信息的表達(dá)方式,但這離揭示信息內(nèi)容的目標(biāo)還相距甚遠(yuǎn)。1998年,W3C和一些研究機(jī)構(gòu)開(kāi)始對(duì)元數(shù)據(jù)(Metadata)進(jìn)行研究。元數(shù)據(jù)是描述數(shù)據(jù)的數(shù)據(jù),可以揭示信息的內(nèi)容特性。1999年,NetScape提出的RSS(Rich Site Summary)建議標(biāo)準(zhǔn)是用元數(shù)據(jù)技術(shù)描述新聞等信息內(nèi)容的第一次嘗試。1999年,W3C的研究小組提出了RDF(Resource Description Framework)標(biāo)準(zhǔn)草案。RDF在XML語(yǔ)法的基礎(chǔ)上,規(guī)定了元數(shù)據(jù)的存儲(chǔ)結(jié)構(gòu)和相關(guān)的技術(shù)標(biāo)準(zhǔn)。使用RDF語(yǔ)言,我們可以用統(tǒng)一的、可交換的格式揭示出信息本身的各種特性。2001年,W3C又開(kāi)始著手制定OWL(OWL Web Ontology Language)標(biāo)準(zhǔn)。OWL語(yǔ)言也是一種符合XML標(biāo)準(zhǔn)的語(yǔ)言,它比RDF又前進(jìn)了一步,可以更加深入、細(xì)致地描述信息內(nèi)容。在RDF和OWL語(yǔ)言的幫助下,我們能讓W(xué)eb上的信息內(nèi)容變得更容易理解、更便于交換和共享。2003年,W3C成立了語(yǔ)義化Web Service研究小組(Semantic Web Services Interest Group),研究在Web Service中加入語(yǔ)義技術(shù)的相關(guān)問(wèn)題。2004年2月,W3C宣布RDF和OWL標(biāo)準(zhǔn)正式成為W3C的建議方案,這標(biāo)志著語(yǔ)義化Web的大廈已經(jīng)破土動(dòng)工。

  隨著語(yǔ)義化Web的誕生和發(fā)展,Web開(kāi)發(fā)技術(shù)也必將經(jīng)歷更為重大的變革??梢灶A(yù)見(jiàn)的是,在未來(lái)的幾年里,還會(huì)有許多新的開(kāi)發(fā)技術(shù)或開(kāi)發(fā)平臺(tái)出現(xiàn)。從靜態(tài)技術(shù)到動(dòng)態(tài)技術(shù),從開(kāi)發(fā)平臺(tái)到應(yīng)用模型,從傳統(tǒng)Web到語(yǔ)義化Web……為了讓更多的人獲得更有價(jià)值的信息服務(wù),Web開(kāi)發(fā)者們也許還會(huì)經(jīng)歷一次又一次的技術(shù)浪潮,還會(huì)面臨更為嚴(yán)峻的技術(shù)挑戰(zhàn),但這和信息共享的最高目標(biāo)相比,又算得了什么呢?

    本站是提供個(gè)人知識(shí)管理的網(wǎng)絡(luò)存儲(chǔ)空間,所有內(nèi)容均由用戶(hù)發(fā)布,不代表本站觀(guān)點(diǎn)。請(qǐng)注意甄別內(nèi)容中的聯(lián)系方式、誘導(dǎo)購(gòu)買(mǎi)等信息,謹(jǐn)防詐騙。如發(fā)現(xiàn)有害或侵權(quán)內(nèi)容,請(qǐng)點(diǎn)擊一鍵舉報(bào)。
    轉(zhuǎn)藏 分享 獻(xiàn)花(0

    0條評(píng)論

    發(fā)表

    請(qǐng)遵守用戶(hù) 評(píng)論公約

    類(lèi)似文章 更多