- 企業級Web開發實戰
- 雨虹等編著
- 11646字
- 2018-12-27 14:19:35
1.1 Web 2.0 介紹
在介紹Web 2.0之前,還是讓我們從Web的發展歷史開始說起吧。
1.1.1 Web的發展歷史
1.1.1.1 從無到有
Web是一種典型的分布式應用架構。Web應用中的每一次信息交換都要涉及客戶端和服務器端兩個層面。因此,Web開發技術大體上也可以被分為客戶端技術和服務器端技術兩大類。我們先來談談客戶端技術的萌芽和演進過程。
Web客戶端的主要任務是展現信息內容,而HTML語言則是信息展現的最有效載體之一。作為一種實用的超文本語言,HTML的歷史最早可以追溯到20世紀40年代。
1945年,Vannevar Bush在一篇文章中闡述了文本和文本之間通過超級鏈接相互關聯的思想,并在文中給出了一種能實現信息關聯的計算機Memex的設計方案。Doug Engelbart等人則在1960年前后,對信息關聯技術做了最早的實驗。與此同時,Ted Nelson正式將這種信息關聯技術命名為超文本(Hypertext)技術。
1969年,IBM的Charles Goldfarb發明了可用于描述超文本信息的GML(Generalized Markup Language)語言。1978到1986年間,在ANSI等組織的努力下,GML語言進一步發展成為著名的標準通用標記語言(Standard Generalized Markup Language,SGML)。
1989年,歐洲粒子物理研究所(European Council for Nuclear Research,CERN)的Tim Berners-Lee意識到,與其簡單地引用其他人的工作,為什么不干脆鏈接呢?讀一篇文章時,科學家可以打開所引用的文章。超文本(Hypertext)當時相當流行,并利用了他先前在文檔和文本處理方面的研究成果。Tim Berners-Lee同時感到SGML是描述超文本信息的一個上佳方案,但美中不足的是SGML過于復雜,不利于信息的傳遞和解析。于是,Tim Berners-Lee對SGML語言做了大刀闊斧的簡化和完善,提出了SGML的一個子集,稱為超文本標記語言(HyperText Markup Language,HTML)。TimBerners-Lee不僅創建了一個稱為超文本傳輸協議(HyperText Transfer Protocol,HTTP)的簡單協議,還發明了第一個Web瀏覽器,叫做WorldWideWeb。Tim Berners-Lee提出的HTML獲得巨大的應用,他本人也由此獲得了“互聯網之父”的稱號。
1.1.1.2 Web 1.0 發展概述
在HTML提出之后,Web獲得了飛快的發展,下面從服務器端和客戶端兩個方面說起。
1. 客戶端Web的發展
最初的HTML語言只能在瀏覽器中展現靜態的文本或圖像信息,這滿足不了人們對信息豐富性和多樣性的強烈需求——這件事情最終的結果是,由靜態技術向動態技術的轉變成為了Web客戶端技術演進的永恒定律。
能存儲、展現二維動畫的GIF圖像格式早在1989年就已發展成熟。Web出現后,GIF第一次為HTML頁面引入了動感元素。但更大的變革來源于1995年Java語言的問世。Java語言天生就具備的平臺無關的特點,讓人們一下子找到了在瀏覽器中開發動態應用的捷徑。1996 年,著名的Netscape瀏覽器在其2.0 版中增加了對Java Applet和JavaScript的支持。Netscape的競爭對手,Microsoft的IE 3.0瀏覽器也在這一年開始支持Java技術?,F在,開發人員可以用Java和JavaScript語言開發豐富HTML頁面的功能了。順便說一句,JavaScript語言在所有客戶端開發技術中占有非常獨特的地位:它是一種以腳本方式運行的、簡化了的Java語言,這也是腳本技術第一次在Web世界里嶄露頭角。為了用Microsoft的技術與JavaScript抗衡,Microsoft還為1996年的IE 3.0設計了另一種后來也聲名顯赫的腳本語言——VBScript語言。
真正讓HTML頁面表現更加豐富和強大的,則是CSS(Cascading Style Sheets)和DHTML(Dynamic HTML)技術。1996年年底,W3C提出了CSS的建議標準,同年,IE 3.0引入了對CSS的支持。CSS大大提高了開發者對信息展現格式的控制能力。1997年的Netscape 4.0不但支持CSS,而且增加了許多Netscape公司自定義的動態HTML標記,這些標記在CSS的基礎上,讓HTML頁面中的各種要素相互交互。1997年,Microsoft發布了IE 4.0,并將動態HTML標記、CSS和動態對象模型(DHTML Object Model)發展成了一套完整、實用、高效的客戶端開發技術體系,Microsoft稱其為DHTML。同樣是實現HTML頁面的動態效果,DHTML技術無須啟動Java虛擬機或其他腳本環境,可以在瀏覽器的支持下,獲得更好的展現效果和更高的執行效率。
為了在HTML頁面中實現音頻、視頻等更為復雜的多媒體應用,1996年的Netscape 2.0成功地引入了對QuickTime插件的支持,插件這種開發方式也迅速風靡了瀏覽器的世界。在Windows平臺上,Microsoft將客戶端應用集中在了20世紀90年代中期剛剛問世的COM和ActiveX身上。1996年,IE 3.0正式支持在HTML頁面中插入ActiveX控件的功能,這為其他廠商擴展Web客戶端的信息展現方式開辟了一條自由之路。1999年,RealPlayer插件先后在Netscape和IE瀏覽器中取得了成功,與此同時,Microsoft將媒體播放軟件Media Player也被預裝到了各種Windows版本之中。同樣值得紀念的還有Flash插件的橫空出世:20世紀90年代初期,Jonathan Gay在FutureWave公司開發了一種名為Future Splash Animator的二維矢量動畫展示工具,1996年,Macromedia公司收購了FutureWave,并將Jonathan Gay的發明改名為我們熟悉的Flash。從此,Flash動畫成了Web開發者表現自我、展示個性的最佳方式。
除了編寫HTML頁面之外,客戶端應用的開發者還可以利用一些成熟的技術將瀏覽器的功能添加到自己的應用程序中。從1992年開始,W3C就免費向開發者提供libwww開發庫。借助libwww,我們可以自己編寫Web瀏覽器和Web搜索工具,也可以分析、編輯或顯示HTML頁面。1999年,Microsoft在IE 5.0中引入的HTAs(HTML Applications)技術則允許我們直接將HTML頁面轉換為一個真正的應用程序。從1997 年的IE 4.0 開始,Microsoft為開發者提供了WebBrowser控件和其他相關的COM接口,允許程序員在自己的程序中直接嵌入瀏覽器窗口,或調用各種瀏覽器的功能,如分析或編輯HTML頁面等。Windows 98及其后的Windows操作系統甚至還利用WSH(Windows Script Host)技術將原本只在瀏覽器中運行的JavaScript、VBScript變成了可以在Win32環境下使用的通用腳本語言,這些都極大地擴展和增強了Web客戶端開發技術。
2. 服務器端技術的成熟與發展
與客戶端技術從靜態向動態的演進過程類似,Web服務器端的開發技術也是由靜態向動態逐漸發展、完善起來的。
最早的Web服務器簡單地響應瀏覽器發來的HTTP請求,并將存儲在服務器上的HTML文件返回給瀏覽器。一種名為SSI(Server Side Includes)的技術可以讓Web服務器在返回HTML文件前,更新HTML文件的某些內容,但其功能非常有限。第一種真正使服務器能根據運行時的具體情況,動態生成HTML頁面的技術是大名鼎鼎的CGI(Common Gateway Interface)技術。1993年,CGI 1.0的標準草案由NCSA(National Center for Supercomputing Applications)提出;1995年,NCSA開始制定CGI 1.1標準;1997年,CGI 1.2也被納入了議事日程。CGI技術允許服務器端的應用程序根據客戶端的請求,動態生成HTML頁面,這使客戶端和服務器端的動態信息交換成為了可能。隨著CGI技術的普及,聊天室、論壇、電子商務、信息查詢、全文檢索等各式各樣的Web應用蓬勃興起,人們可以享受到信息檢索、信息交換、信息處理等更為便捷的信息服務。
早期的CGI程序大多是編譯后的可執行程序,其編程語言可以是C、C++、Pascal等任何通用的程序設計語言。為了簡化CGI程序的修改、編譯和發布過程,人們開始探尋用腳本語言實現CGI應用的可行方式。在此方面,不能不提的是Larry Wall于1987年發明的Perl語言。Perl結合了C語言的高效,以及sh、awk等腳本語言的便捷,似乎天生就適用于CGI程序的編寫。1995年,第一個用Perl寫成的CGI程序問世。很快,Perl在CGI編程領域的風頭就蓋過了它的前輩C語言。隨后,Python等著名的腳本語言也陸續加入了CGI編程語言的行列。
1994年,Rasmus Lerdorf發明了專用于Web服務器端編程的PHP(Personal Home Page Tools)語言。與以往的CGI程序不同,PHP語言將HTML代碼和PHP指令合成為完整的服務器端動態頁面,Web應用的開發者可以用一種更加簡便、快捷的方式實現動態Web功能。
1996年,Microsoft借鑒PHP的思想,在其Web服務器IIS 3.0中引入了ASP技術,ASP使用的腳本語言是我們熟悉的VBScript和JavaScript。借助Microsoft Visual Studio等開發工具在市場上的成功,ASP迅速成為了Windows系統下Web服務器端的主流開發技術。
在此期間,以Sun公司為首的Java陣營在這種潮流中也陸續推出了一些新的技術。1997年,Servlet技術問世;1998年,JSP技術誕生。Servlet和JSP的組合(還可以加上JavaBean技術)讓Java開發者同時擁有了類似CGI程序的集中處理功能和類似PHP的HTML嵌入功能。此外,Java的運行時編譯技術也大大提高了Servlet和JSP的執行效率——這也正是Servlet和JSP被后來的J2EE平臺吸納為核心技術的原因之一。
Web服務器端開發技術的完善使開發復雜的Web應用成為了可能。在此起彼伏的電子商務大潮中,為了適應企業級應用開發的各種復雜需求,為了給最終用戶提供更可靠、更完善的信息服務,兩個最重要的企業級開發平臺——J2EE和.Net在2000年前后分別誕生,它們隨即就在企業級Web開發領域展開激烈的競爭。這種競爭關系促使了Web開發技術以前所未有的速度在提高和躍進。
J2EE是純粹基于Java的解決方案。1998年,Sun發布了EJB 1.0標準,EJB為企業級應用中必不可少的數據封裝、事務處理、交易控制等功能提供了良好的技術基礎。至此,J2EE平臺的三大核心技術Servlet、JSP和EJB都已先后問世。1999年,Sun正式發布了J2EE的第一個版本。緊接著,遵循J2EE標準,為企業級應用提供支撐平臺的各類應用服務軟件爭先恐后地涌現出來。IBM的WebSphere、BEA的WebLogic都是這一領域里極為成功的商業軟件平臺。隨著開源運動的興起,JBoss等開源世界里的應用服務新秀也吸引了許多用戶的注意力。到2003年時,Sun的J2EE版本已經升級到了1.4版,其中3個關鍵組件的版本也演進到了Servlet 2.4、JSP 2.0和EJB 2.1。至此,J2EE體系及相關的軟件產品已經成為了Web服務器端開發的一個強有力的支撐環境。
和J2EE不同的是,Microsoft的.Net平臺是一個強調多語言間交互的通用運行環境。盡管.Net的設計者試圖以.Net平臺作為絕大多數Windows應用的首選運行環境,但.Net首先吸引的卻是Web開發者的目光。2001年,ECMA通過了Microsoft提交的C#語言和CLI標準,這兩個技術標準構成了.Net平臺的基石,它們也于2003年成為了ISO的國際標準。2002年,Microsoft正式發布.Net Framework和Visual Studio .Net開發環境。早在.Net發布之前,就已經有許多Windows平臺的Web開發者迫不及待地利用Beta版本開發Web應用了。這大概是因為,.Net平臺及相關的開發環境不但為Web服務器端應用提供了一個支持多種語言的、通用的運行平臺,而且還引入了ASP.Net這樣一種全新的Web開發技術。ASP.Net超越了ASP的局限,可以使用VB.Net、C#等編譯型語言,支持Web Form、.Net Server Control、ADO.Net等高級特性。客觀地講,.Net平臺,尤其是.Net平臺中的ASP.Net,為Web開發技術在Windows平臺上發展提供了良好的平臺基礎。
1.1.1.3 從Web 1.0到Web 2.0
Web 2.0是相對Web 1.0的新的一類互聯網應用的統稱。由Web 1.0單純地通過網絡瀏覽器瀏覽HTML網頁模式向內容更豐富、聯系性更強、工具性更強的Web 2.0互聯網模式的發展已經成為互聯網新的發展趨勢。Web 1.0與Web 2.0在互聯網應用經過一段時間發展之后,理念上產生了差異。這種差異的核心并不復雜,最簡單的說法就是以信息為中心,還是以人為中心。具體一點說,Web 1.0是以信息為中心,是人與信息的關系;Web 2.0是以人為中心,是人與人的關系。Web 1.0的主要特點在于用戶通過瀏覽器獲取信息,Web 2.0則更注重用戶的交互作用,用戶既是網站內容的消費者(瀏覽者),也是網站內容的制造者。
Web 1.0到Web 2.0的轉變,具體地說,從模式上是單純的“讀”向“寫”、“共同建設”發展;從基本構成單元上,是由“網頁”向“發表/記錄的信息”發展;從工具上,是由互聯網瀏覽器向各類瀏覽器、RSS閱讀器等內容發展;從運行機制上,由“Client Server”向“Web Services”轉變;作者則由程序員等專業人士向全部普通用戶發展。
目前Web 2.0還沒有一個明確的概念,目前一個比較清晰的定義是這樣定義Web 2.0的:
“Web 2.0是以Flickr、Craigslist、Linkedin、Tribes、Ryze、Friendster、Del.icio.us、43Things.com等網站為代表,以Blog、TAG、SNS、RSS、WIKI等應用為核心,依據六度分隔、XML、Ajax等新理論和技術實現的互聯網新一代模式?!?/p>
雖然Web 2.0的定義模糊,不過一個普遍的特征是與使用者互動性更高。另一項特征是Aajx技術的應用,使得前端Web應用可以和后端數據庫互動,將XML信息重新整理、重組再顯示到網頁上。這也使得新一代的網站應用必須兼顧使用者經驗及信息與商業流程。
如果Netscape可以稱為Web 1.0的前驅,那么Google幾乎可以肯定是Web 2.0的旗手,只要看看他們的首次公開上市是如何地揭示了各自的時代就清楚了。所以我們就從這兩個公司和其定位的差別入手。
Netscape以傳統的軟件摹本來勾勒其理念“互聯網作為平臺”:他們的旗艦產品是互聯網瀏覽器,一個桌面應用程序。同時,他們的戰略是利用他們在瀏覽器市場的統治地位,來為其昂貴的服務器產品建立起市場。從理論上講,在瀏覽器中控制顯示內容和程序的標準,賦予了Netscape一種市場支配力,如同微軟公司在個人計算機市場上所享受的一樣。
最終,瀏覽器和網絡服務器都變成了“日用品”,同時價值鏈條也向上移動到了在互聯網平臺上傳遞的服務。
作為對比,Google則以天生的網絡應用程序的角色問世,它從不出售或者打包其程序,而是以服務的方式來傳遞??蛻魝冎苯踊蜷g接地為其所使用的服務向Google付費。原有軟件工業缺陷蕩然無存,沒有了定期的軟件發布,只需要持續地改善;沒有了許可證或銷售,只需要使用;沒有了為了讓用戶在其設備上運行軟件而不得不進行的平臺遷移,只需要搭建宏大的、由眾多個人計算機組成的、可伸縮的網絡,其上運行開源操作系統,及其自行研制的應用程序和工具,而公司之外的任何人則永遠無法接觸到這些東西。
雖然Netscape和Google都可以被描述為軟件公司,但顯然Netscape可以歸到Lotus、Microsoft、Oracle、SAP,以及其他發源于20世紀80年代軟件革命的那些公司所組成的軟件世界。
而Google的同伴們,則是像eBay、Amazon、Napster乃至DoubleClick和Akamai這樣的互聯網公司。這些互聯網公司的興起,標志著Web 2.0正式走上了Web歷史舞臺。
1.1.1.4 Web 2.0 特征
如前所述,Web 2.0并不是一個具體的事物,而是一個階段,是促成這個階段的各種技術和相關的產品服務的一個稱呼。所以,我們無法說,Web 2.0是什么;但是可以說,哪些是Web 2.0。
WikiPedia的Web 2.0條目下列出了這些條件(引自維基百科):
■ CSS和語義相關的XHTML標記;
■ Ajax技術;
■ Syndication of data in RSS/ATOM;
■ Aggregation of RSS/ATOM data;
■ 簡潔而有意義的URL;
■ 支持發布為Web log;
■ RESTian(preferred)或者XML WebService API;
■ 一些社會性網絡元素。
必須具備的要素有:
■ 網站應該能夠讓用戶把數據在網站系統內外倒騰;
■ 用戶在網站系統內擁有自己的數據;
■ 完全基于Web,所有的功能都能通過瀏覽器完成。
雖然這只是一家之言,不過,對于其中談到的幾個要素,大家還是公認的。
■ 基于RSS/ATOM/RDF/FOAF等XML數據的同步、聚合和遷移。
■ 社會性因素。內容跟著人走,內容又能夠被用戶自由地組合,也就是說,用戶能夠自由地借助內容媒介,創建起一個個的社群,發生各種社會性的(網絡)行為。此外還有標簽,以及建立在開放標簽系統之上的Folksonomy。
■ 開放API。目前Amazon、Flickr、Google map等都開放了API,可以利用這些API快速建立各種Web 2.0應用。
上面這些內容中,主要包括兩條:微內容和用戶個體。除了這兩條最基本的外,還可以考慮社群內的分享,以及提供API,如圖1-1所示。

圖1-1 Web 2.0
■ 微內容:英文是microcontent。用戶所生產的任何數據都算是微內容,比如一個Blog、評論、圖片、收藏的書簽、喜好的音樂列表、想要做的事情、想要去的地方、新的朋友等。這些微內容,充斥著我們的生活、工作和學習,它的數量、重要性,還有我們對它的依賴,這些都是Web 2.0重要的數據基礎。我們每天都生產眾多的微內容,也消費著同樣多的微內容。對于Web 2.0來說,對微內容的重新發現和利用,如何幫助用戶管理、維護、存儲、分享、轉移微內容,就成了關鍵。
■ 用戶個體。對于Web 1.0的典型產品/服務來說,用戶沒有具體的面貌、個性,它只是一個模糊的群體的代名詞而已。但是對于Web 2.0的產品和服務來說,用戶是個實實在在的人。Web 2.0所服務的,是具體的人,而不是一個如同幽靈般的概念。并且,這個人的具體性,會因為服務本身而不斷地充實起來。如何為這個具體的個體服務,是Web 2.0設計的起點。
因此,可以被稱作Web 2.0的產品/服務將是這樣的:
■ 服務于用戶個體的微內容的收集、創建、發布、管理、分享、合作、維護等的平臺。
■ 微內容的XML表現、微內容的聚合、微內容的遷移、社會性關系的維護、界面的易用性等,以及是否開源、參與、個人價值、草根、合作等。
歸納起來,Web 2.0與Web 1.0的區別就在于:“Web 1.0天天談門戶,Web 2.0談個人化;Web 1.0談內容,Web 2.0談應用;Web 1.0談商業模式,Web 2.0談服務;Web 1.0談密閉、大而全,Web 2.0大家談開放、談聯合;Web 1.0談網站中心化,Web 2.0談個人中心化;Web 1.0談一對一,Web 2.0談社會性網絡?!?/p>
1.1.1.5 未來趨勢與Web 3.0
所有人都在關心Web的發展前景,所有人都想知道10年以后的Web會成長成什么樣子。要回答這些問題,沒有誰比W3C更有權威了。W3C明確地告訴我們:Web的未來是語義化的Web(Semantic Web)。今天的Web可以方便地生成、傳遞和展現各式各樣的信息,但它還只是一個信息的“容器”,很難揭示出信息本身的內容和特性。與此相對的是,未來的語義化Web是一種懂得信息內容的Web,是真正的“信息管理員”。
從技術角度看,XML語言統一了信息的表達方式,但這離揭示信息內容的目標還相距甚遠。1998年,W3C和一些研究機構開始對元數據(Metadata)進行研究。元數據是描述數據的數據,可以揭示信息的內容特性。1999年,Netscape提出的RSS(Rich Site Summary)建議標準是用元數據技術描述新聞等信息內容的第一次嘗試。1999年,W3C的研究小組提出了RDF(Resource Description Framework)標準草案。RDF在XML語法的基礎上,規定了元數據的存儲結構和相關的技術標準。使用RDF語言,我們可以用統一的、可交換的格式揭示出信息本身的各種特性。2001年,W3C又開始著手制定OWL(Web Ontology Language)標準。OWL語言也是一種符合XML標準的語言,它比RDF又前進了一步,可以更加深入、細致地描述信息內容。在RDF和OWL語言的幫助下,我們能讓Web上的信息內容變得更容易理解,更便于交換和共享。2003年,W3C成立了語義化Web Service研究小組(Semantic Web Services Interest Group),研究在Web Service中加入語義技術的相關問題。2004年2月,W3C宣布RDF和OWL標準正式成為W3C的建議方案,這標志著語義化Web的研究正式開始。
隨著語義化Web的誕生和發展,Web開發技術也必將經歷更為重大的變革??梢灶A見的是,在未來的幾年里,還會有許多新的開發技術或開發平臺出現。從靜態技術到動態技術,從開發平臺到應用模型,從傳統Web到語義化Web……為了讓更多的人獲得更有價值的信息服務,Web開發者們也許還會經歷一次又一次的技術浪潮,還會面臨更為嚴峻的技術挑戰,但這一切都是為了互聯網的根本目的即信息共享服務的。
1.1.2 Web 2.0相關技術
1.1.2.1 XML語言及相關技術
如果說HTML語言給Web世界賦予了無限生機的話,那么,XML語言的出現可以算成是Web的又一次革命。按照Tim Berners-Lee的說法,Web是一個“信息空間”。HTML語言具有較強的表現力,但也存在結構過于靈活、語法不規范的弱點。當信息都以HTML語言的面貌出現時,Web這個信息空間是雜亂無章、沒有秩序的。為了讓Web世界里的所有信息都有章可循、有法可依,就需要一種更為規范、更能夠體現信息特點的語言。
1996年,W3C在SGML語言的基礎上,提出了XML(Extensible Markup Language)語言草案。1998年,W3C正式發布了XML 1.0標準。XML語言對信息的格式和表達方法做了最大程度的規范,應用軟件可以按照統一的方式處理所有XML信息。這樣,信息在整個Web世界里的共享和交換就有了技術上的保障。HTML語言關心的是信息的表現形式,而XML語言關心的是信息本身的格式和數據內容。從這個意義上說,XML語言不但可以將客戶端的信息展現技術提高到一個新的層次,而且可以顯著提高服務端的信息獲取、生成、發布和共享能力。為了將XML信息轉換為HTML等不同的信息展現形式,1999年,W3C制定出了XSLT標準。同一年,IE 5.0增加了對XML和XSLT的支持。
現在,網站的開發者可以直接使用XML語言發布信息了。針對不同的應用領域,人們還制定了許多專門的XML規范。例如,2001年W3C發布的SVG(Scalable Vector Graphics)1.0標準就是一種用XML語言表達的、全新的二維矢量圖形格式。開發者可以用SVG格式描述大多數已有的Flash動畫。與Flash格式相比,符合XML標準的SVG格式顯然更有利于信息交換和共享。
Web本身就是一個最大的分布式應用系統。對于分布式開發而言,XML技術也大有用武之地。一個明顯的事實是,如果能讓分布式應用借助XML格式交換信息,那么,以往橫亙在分布式架構上的信息交換難題也就迎刃而解了。1999年,W3C和相關的企業開始討論設計基于XML的通信協議。2000年,W3C發布SOAP(Simple Object Access Protocol)協議的1.1版。利用SOAP協議傳遞XML信息的分布式應用模型就是Web Service。2001年,W3C發布了WSDL(Web Services Description Language)協議的1.1版。SOAP協議和WSDL協議共同構成了Web Service的基礎。隨后,J2EE和.Net這兩大企業級開發平臺先后實現了Web Service,并將其視為平臺的一項核心功能。
Web Service對于Web開發者的重要意義在于,當需要在不同的服務器端、不同的客戶端乃至不同的應用類型、不同的計算設備之間傳遞信息時,以往的分布式開發技術或者因為適應性不強,或者因為擴展能力不足,都難以滿足現代Web開發的需要,而Web Service正好填補了這一空白。
1.1.2.2 Ajax技術
基于XML的異步JavaScript,簡稱Ajax,是當前Web發展(稱為Web 2.0)中的一個重要技術。這個術語源自描述從基于網頁的Web應用到基于數據的應用的轉換。在基于數據的應用中,用戶需求的數據如聯系人列表,可以從獨立于實際網頁的服務器端取得并且可以被動態地寫入網頁中,這極大得地提高了緩慢的Web應用體驗,使之像桌面應用一樣具有良好的交互性。
Ajax的最大特色在于用戶體驗。在使應用更快響應和創新的過程中,定義Web應用的規則正在被重寫,例如用戶通常希望每一次按鈕點擊會導致幾秒的延遲和屏幕刷新,但Ajax正在打破這種長時間的狀況。因此用戶需要重新體驗按鈕點擊的響應了。
可用性是Ajax令人激動的地方,而且已經產生了幾種新穎的技術。其中最引人注目的是一種稱為“黃色隱出”的技術,它在數據更新之前將用戶界面變為黃色,更新完成后立刻恢復原來的顏色。Ajax開發人員將用戶從Web應用,的負載中解放出來;小心地利用Ajax提供的豐富接口,Ajax開發人員就可以開發像桌面應用一樣的Web應用。
1.1.2.3 Blog
Blog的全名應該是Web log,后來縮寫為Blog。Blog是一個易于使用的網站,你可以在其中迅速發布想法、與他人交流或從事其他活動,所有這一切都是免費的。Blogger就是寫Blog的人。從理解上講,博客是“一種表達個人思想、網絡鏈接、內容,按照時間順序排列,并且不斷更新的出版方式”。簡單地說,Blogger是一類人,這類人習慣于在網上寫日記。
關于Blog/Blogger的中文名稱,其實有很多爭論,有稱為“博客”,也有稱為“網志”,中國臺灣還有稱之為“部落格/部落客”?,F在基本統一為“博客”,其中根據博客內容的不同,又有博客、播客之分,博客強調文字性,而播客則強調視頻。
博客是繼E-mail、BBS、ICQ之后出現的第4種網絡交流方式,代表著新的生活方式和新的工作方式,更代表著新的學習方式。通過博客,讓自己學到很多,讓別人學到更多。
1.1.2.4 RSS
RSS是站點用來和其他站點之間共享內容的一種簡易方式(也叫聚合內容)的技術。最初源自瀏覽器“新聞頻道”的技術,現在通常被用于新聞和其他按順序排列的網站,例如Blog。但是RSS沒有一個統一的名稱,下面是RSS的縮寫。
■ Really Simple Syndication(真正簡易的聚合)
■ Rich Site Summary(豐富的站點摘要)
■ RDF Site Summary(RDF站點摘要)
利用RSS,我們可以:
(1)訂閱Blog(在Blog上,你可以訂閱自己工作中所需的技術文章;也可以訂閱與自己有共同愛好的作者的日志??傊?,Blog上你對什么感興趣你就可以訂什么)。
(2)訂閱新聞(無論是奇聞怪事、明星消息、體壇風云,只要你想知道的,都可以訂閱)
通過RSS,我們可以訂閱最新的新聞消息,這些新聞具有如下特點:
■ 沒有廣告或者圖片來影響對標題或者文章概要的閱讀。
■ RSS閱讀器自動更新定制的網站內容,保持新聞的及時性。
■ 用戶可以加入多個定制的RSS提要,從多個來源搜集新聞整合到單個數據流中。
(3)擴大了網站內容的傳播面,也增加了網站訪問量,因為訪問者調閱的RSS文件和瀏覽的網頁,都是從網站服務器上下載的。
■ RSS文件的網址是固定不變的,網站可以隨時改變其中的內容。RSS內容一旦更新,瀏覽者看到的內容也隨即更新了。
1.1.2.5 Tag
Tag(標簽)是一種更為靈活、有趣的分類方式,你可以為每篇日志、每個帖子或者每張圖片等添加一個或多個Tag(標簽),你可以看到網站上所有和你使用了相同Tag的內容,由此和他人產生更多的聯系。Tag體現了群體的力量,使得內容之間的相關性和用戶之間的交互性大大增強。
比如,你在一篇日志上添加了“讀書”和“Tag”兩個標簽,就能通過這兩個Tag看到和你有相同興趣的其他日志。同樣,如果你給自己的網絡書簽貼上不同標簽,那么,在下一次去尋找時,會輕易找到自己想要的信息。
那么,如果我貼了Tag,能產生什么效果呢?首先,信息將會條理化;其次,當積累了一定數量的Tag之后,你會發現自己最關心的話題。Google的“我的搜索歷史”功能就采用了標簽,你的每次搜索關鍵詞都可以成為Tag,之后,你會了解自己這一天在關心什么。
當然,你也可以看到有哪些人和自己使用了一樣的Tag(標簽),進而找到和自己志趣相投的人。
1.1.2.6 WiKi
WiKi概念的發明人是Ward Cunningham,該詞來源于夏威夷語的“wee kee wee kee”,原本是“快點快點”(quick)的意思。
WiKi——一種多人協作的寫作工具。WiKi站點可以由多人(甚至任何訪問者)維護,每個人都可以發表自己的意見,或者對共同的主題進行擴展或者探討。
WiKi指一種超文本系統,這種超文本系統支持面向社群的協作式寫作,同時也包括一組支持這種寫作的輔助工具。有人認為,WiKi系統屬于一種人類知識網格系統,我們可以在Web的基礎上對WiKi文本進行瀏覽、創建、更改,而且創建、更改、發布的代價遠比HTML文本小;同時WiKi系統還支持面向社群的協作式寫作,為協作式寫作提供必要幫助;WiKi的寫作者自然構成了一個社群,WiKi系統為這個社群提供簡單的交流工具。與其他超文本系統相比,WiKi有使用方便及開放的特點,所以WiKi系統可以幫助我們在一個社群內共享某領域的知識。
WiKi最適合做百科全書、知識庫、整理某一個領域的知識等知識型站點,幾個分在不同地區的人利用WiKi協同工作共同寫一本書等。WiKi技術已經被較好地應用在百科全書、手冊/FAQ編寫、專題知識庫方面。WiKipedia,中文名稱為“維基百科”,是目前基于WiKi的全球最大的自由的網絡百科全書,是一個自由、免費、內容開放的百科全書協作計劃,參與者來自世界各地,并且其內容和規模都已經超過了《大英百科全書》。WiKi具有如下特點:
(1)使用方便
■ 維護快捷:快速創建、存取、更改超文本頁面(這也是為什幺叫作“wiki wiki”的原因)。
■ 格式簡單:用簡單的格式標記來取代HTML的復雜格式標記(類似所見即所得的風格)。
■ 鏈接方便:通過簡單標記,直接以關鍵字名來建立鏈接(頁面、外部鏈接、圖像等)。
■ 命名平易:關鍵字名就是頁面名稱,并且被置于一個單層、平直的名空間中。
(2)有組織
■ 自組織的:同頁面的內容一樣,整個超文本的組織結構也是可以修改、演化的。
■ 可匯聚的:系統內多個內容重復的頁面可以被匯聚于其中的某個上,相應的鏈接結構也隨之改變。
(3)可增長
■ 可增長:頁面的鏈接目標可以尚未存在,通過單擊鏈接,可以創建這些頁面,從而使系統得到增長。
■ 修訂歷史:記錄頁面的修訂歷史,頁面的各個版本都可以被獲取。
(4)開放性
■ 開放的:社群的成員可以任意創建、修改、刪除頁面。
■ 可觀察:系統內頁面的變動可以被訪問者觀察到。
1.1.2.7 網摘
“網摘”又名“網頁書簽”,起源于一家叫做Del.icio.us的美國網站自2003年開始提供的一項叫做“社會化書簽”(Social Bookmarks)的網絡服務,網友們稱之為“美味書簽”(Delicious在英文中的意思就是“美味的、有趣的”)。
1.1.2.8 SNS
SNS是英文Social Networking Service的縮寫,直譯就是“社交網絡服務”。SNS是Web 2.0體系下的一個技術應用架構。SNS基于六度分隔理論運作,這個理論的通俗解釋是:“在人脈網絡中,要結識任何一位陌生的朋友,中間最多只要通過6位朋友就可以達到目的。”放在Web 2.0的背景下,每個用戶都擁有自己的Blog、社會化書簽。用戶通過Tag 、RSS或者IM、郵件等方式連接到一起,按照六度分隔理論,每個個體的社交圈都不斷放大,最后成為一個大型網絡,這就是SNS。
1.1.3 SOA與Web 2.0
讓Web作為機器之間、應用程序之間相互交流協作的平臺,就必須在Web中傳遞程序和數據,而使得這種傳遞成為可能的技術體系,我們稱為Web服務。隨著Web 2.0的崛起,Ajax帶來了客戶端體驗的劃時代進步,而被稱為REST的新的Web應用架構,實現了HTTP風格Web服務的文藝復興。Web 2.0時代的Web服務是這樣的:完全符合Web標準,充分利用HTTP協議的特點,通過REST風格暴露服務,支持Ajax/RIA異步數據傳輸和界面刷新機制,使用Syndication機制推送數據,以XML表達豐富的、具有初步語義信息的數據,并可方便地被mash-up。SOA的潤滑油企業應用就是支撐企業運營的軟件系統。純粹從編程技術上來看,企業應用的開發通常是平淡無奇的,既沒有高超的算法,也不涉及精妙的底層炫技,然而企業應用之難卻是業界公認的。企業應用需求多變,業務邏輯復雜,工期緊張,對分布性、整合、性能、可靠性和可監管性要求甚高,構成企業應用之難的根本原因。然而,當前我們采用的基于構件的軟件思想與業務層面距離過大,各技術流派之間難以整合,這些偶發復雜性加劇了企業應用的難度。SOA正是試圖從這兩方面來降低企業應用開發和運維的復雜性。首先,SOA以服務為基礎。這一概念既可以作為描述業務的元素和語言,也可以在技術空間得到直接的表達,從而成為溝通業務與技術的橋梁,也緩解了技術與業務之間“阻抗不匹配”的困難,使得IT能夠隨業務需求靈活應變。其次,SOA通過標準化的、跨平臺的技術規范,使得運行在不同地點、不同環境中的服務能夠被統一調配組裝,從而在業務流程上實現整合。Web 2.0的技術浪潮給SOA帶來一些新的思路。Web是天生的標準化、高效、高度可擴展的分布式文檔系統,通過Ajax/RIA表現出豐富的人機交互界面。mash-up是構建組合應用簡單而理想的方式,而且mash-up所生成的新應用本身可以作為XML數據源而成為新組合應用的基礎,這些都與SOA的目標驚人的一致。能否將Web 2.0的技術根據SOA的需求加以整合改造,從而形成一個輕量級的SOA技術棧呢?這是一個很自然,同時又令人心馳神往的境界。APP(ATOM Publish Protocol)協議已經具備了豐富的數據操作能力,XQuery語言也已經成為W3C正式標準,有人提出要給REST架構添加一個類似WSDL的服務契約描述協議,也有一些企業正在研制完整的Web Oriented Architecture技術棧,將Web技術引入企業IT領域。Web 1.0給企業應用帶來的變化是巨大的,所謂B/S模型現在已經成為企業應用的絕對主流。但是從根本上講,Web 1.0沒有觸及到企業應用的核心問題,只是給企業應用安裝了一副臉面。能夠深刻改變企業IT的是SOA,而Web 2.0又恰好與SOA形成默契的搭檔。所以,Web 2.0不但將成為企業應用的新面孔,而且成為SOA的潤滑劑,會深入到SOA當中,深刻改變企業應用的開發思路。這部分關于SOA的具體技術內容,我們將在后續的系列叢書中進行專門的介紹。
- Hands-On Deep Learning with Apache Spark
- Hands-On Internet of Things with MQTT
- 中文版Photoshop CS5數碼照片處理完全自學一本通
- Dreamweaver CS3網頁設計與網站建設詳解
- 程序設計語言與編譯
- Windows XP中文版應用基礎
- 電腦上網直通車
- C語言開發技術詳解
- 工業控制系統測試與評價技術
- 菜鳥起飛系統安裝與重裝
- Excel 2007技巧大全
- Mastering Game Development with Unreal Engine 4(Second Edition)
- 工業機器人維護與保養
- 生物3D打?。簭尼t療輔具制造到細胞打印
- 機器人剛柔耦合動力學