W3C高管談萬維網的技術基因與進化方向
原創萬維網(World Wide Web)自誕生以來,已經過去17個年頭了。這17年來,它改變了許多,而且從技術上看,改變仍在繼續著——它所提供的服務在變,它被使用的方式也在變。與此同時,由于它擁有如此之多的變化,以至于人們就“萬維網到底提供了什么”這一問題莫衷一是。因此,筆者決定挑選一些最具代表性的萬維網發展方向,來談一談它們的動向。
W3C全球辦事處主管Klaus Birkenbihl先生
◆無處不在的萬維網——移動Web(Mobile Web)
◆人人可用的萬維網——無障礙的Web(Accessible Web)
◆包含結構化信息的萬維網——語義Web(Semantic Web)
◆參與和溝通的萬維網——收藏、博客、論壇
◆作為服務的萬維網——富Web應用
◆適合業務的萬維網——Web服務
◆適合媒體的萬維網——Web上的視頻和語音
以上這些方向應當基于一組共同的技術與標準,只有這樣,不同方面的功能能夠彼此互操作。有一些縱向問題是上述大部分發展方向所共有的,而且往往易受不同文化視角的影響。
◆Web上的隱私
◆Web上的安全和信任
◆知識產權問題
◆內容分類與評價
◆Web的無障礙性
在此,我們不將介紹關于隱私、知識產權及內容分類等方面的不同觀點——它們屬于政治性和社會性問題。Web技術會朝著對給定社會與政治環境有益的方向發展。本文講到的大部分標準和技術是W3C(萬維網之父Tim Berners-Lee于1994年創立的機構)已經或正在制定的。
地基
萬維網(Web)的成功歸因于三項基本技術:
◆HTML:一套支持超文本(包含超鏈接的文本)的通用語法
◆URL:一種定位文檔(或其中片段)的機制,以及在HTML文檔中定義超鏈接的方法
◆HTTP:一種在客戶端(通常是瀏覽器)與服務器之間發送請求和響應的協議
這些技術使人們可以方便地瀏覽Web上的文檔——用戶擁有圖形用戶界面,而且可以通過鏈接從一個文檔跳轉到另一個文檔。
這種由文檔構成的Web很快便受到其自身成功因素的牽絆。Web擁有的文檔數量已經相當驚人了,而且還不斷有大量來自數據庫的信息被搬到Web上,商品價目表、航班時刻表等都要延伸到Web上。從短期來看,只需要腳本技術(服務端和客戶端)以及CGI等動態網頁技術就夠了。不過,一種更具結構化和系統化的解決方案也是需要的。因此,我們需要對這三種基本技術加以泛化和擴展。就文檔與數據的結構化來講,需要引入XML信息集和RDF圖這兩個概念。
XML信息集(XML Information Set)是對HTML概念的泛化(雖然語法上更嚴格一點)。跟HTML一樣,XML也是通過包含具名節點(named node)的樹(tree)來表達文檔或其他實體的結構的。HTML使用的是一套預先定義好的節點名稱和語法約束規則,而XML信息集里則不包含這些約束——引入具體的約束,將形成新的數據結構或標記語言。事實上,現在有各種各樣用于不同用途的XML語言。與XML有關的一些支撐技術包括:
◆XML名稱空間(namespace)是一種分離標簽空間的機制
◆XML Schema用于定義約束,從而定義新的XML語言
◆XQuery/XPath用于遍歷或查詢XML文檔
◆XML Base用于處理相對URL(relative URL)
◆XPointer用于引用XML文檔或其中的片段
◆DOM是一個處理XML的抽象接口
XML是基于一種“由簡單實體來構建復雜實體”的思想,而RDF圖(RDF graph)是想通過“描述與其他實體的關系”來定義實體。RDF圖由三元組(triple)組成,每個三元組都具有<主體, 謂詞, 客體>的形式。其中,主體(subject)(一個資源)是你要定義的事物, 謂詞(predicate)定義關系(屬性),客體(object) (一個資源)是與主體具備這種關系的事物。三元組中的客體(甚至謂詞)可以作為另一個三元組的主體。由此,我們可以構造出一個巨大的關系網絡。源于數學或邏輯的屬性(property)(如“派生自”,“蘊含”等)為在RDF圖上進行復雜的查詢與推理奠定了基礎。跟XML一樣,RDF也伴隨有一組相關技術:
◆RDFS是一種模式語言(schema language),它定義了一套用以給資源(比如Class、Literal、Datatype等)和屬性(比如subClassOf、subPropertyOf、domain、range等)賦予意義的詞匯集。這就給表達集合或邏輯相關的屬性開啟了標準的大門。OWL是對RDFS的補充和擴展。
◆SPARQL是用于RDF的查詢語言。
盡管XML與RDF在信息組織上的思想不同(一個是層次化的,一個是關系化的),但它們并非完全不相干。RDF/XML是一種專門用于表示(序列化)RDF圖的XML語言,雖然它的人類可讀性不算最好。另外,RDF里的基本數據類型也都來自XML Schema。
除上述介紹的技術,還有一系列所謂的Web架構原則,它們指出了應當如何運用這些技術來構建Web應用。
基礎
我們希望Web是統一的。這一崇高目標具有幾點意義。首先,它意味著所有人都可以通過各類設備、使用他們所熟悉的語言來訪問Web。當然,這是有其局限性的(比如,本文作者可能永遠無法看懂一篇用中文寫的微生物學文章)。這其實并不意外,令人驚訝的是,我們只需遵循少許原則即可取得相當程度的統一。這些原則所涉領域包括:無障礙性(accessibility)、設備獨立性(device independence)和國際化(internationalization)。
W3C制定了與此相關的部分標準。最終,我們提煉出了一些基本原則:
◆有標準應竭力采納
◆表示信息時增添一些冗余
◆適當地結構化信息,可辨別地呈現之
◆內容與表示相分離
有些技術是實現以上原則的共同需要。將內容與表示相分離的頁面,不但可以輕松適應各種設備,而且容易滿足無障礙性方面的需求。在文檔里給一幅建筑物圖片增添附加文本,不但有助于盲人用戶理解圖片內容,還可以幫助那些從沒見過此建筑的用戶了解此建筑或便于他們在搜索引擎里搜索。為文本提供多種語言的版本,可令其被更廣泛的讀者閱讀。采用標準化的字符集有助于進行機器翻譯,等等。
Web統一的意義還遠不止這些。比如,一個無障礙性做得好的網站通常更易于被搜索。(或者,如Karsten M.Self在《蜘蛛恐懼癥》里所說的:“無論從哪一點看,Google都像個盲人用戶。一個身價上億的盲人用戶有著幾千萬個朋友,每一個朋友都全神貫注地聽他講每一個詞。我覺得,Google在構建無障礙網站方面,應該比美國殘疾人法案(ADA)還更有影響力”)總之,注重無障礙性、設備無關性和國際化(一個非常受歡迎的特性)將非常有助于提升網站的易用性和價值。
#p#
支柱
Web擁有這么多優秀的技術和知識,它能給我們帶來哪些期許呢?每一項技術的出現都是為了使我們可以更簡單地做事,它應當減少我們為達到目標所需花費的工作量。Web作為一種一般性的信息技術,它具有廣泛的應用領域。與別的信息技術不同的是,Web是在全球范圍提供應用的。寬帶連接以及近乎無限的存儲與計算能力,加上互操作技術,為多媒體和巨型數據庫敞開了天地。業務模型不斷浮現,殺手級應用不時涌出。Web對社交網絡、隱私、共享知識與智力、管理知識產權、參與決策處理、思想和產品的市場化、長尾(long tail)效應等均產生了巨大的影響。
我們看到了Web技術與移動電話技術的結合。數字移動電話于九十年代前期進入公眾視線,Web也出現在同一時期。從那以后,移動電話市場的增長速度甚至超過了因特網的發展。在許多發展中國家,移動電話對經濟起著至關重要的作用?,F在,幾乎每部移動電話都可以上網。于是,這兩種技術結合起來了。
另一方面,有些問題仍舊一籌莫展:搜索經常令人頭痛,釣魚網站和瀏覽器安全漏洞給用戶造成威脅,自動翻譯還遠不能真正幫助用戶理解一門他完全不懂的語言。看來,還存在不少有待解決和研究的事情,還有許多技術、社會和政治上的決策有待做出。
下面給出了一個對現有及研制中技術的分類:
Web技術
如果只是構建Web應用,那么采用純HTML就可以了。與之相對的另一種應用,是諸如辦公軟件、圖片處理、視頻音頻、復雜圖像、數學或化學講稿軟件之類的功能完善的應用。通過插件和編程語言解釋器,你可以把幾乎所有桌面內容或處理搬到Web上。有不少技術為此提供支持。有些是標準化的技術,有些是私有技術;有些是“開放的”(比如提供開放源碼),有些是“封閉的”。
這里面,有一些非常重要的技術與標準是由W3C提供、并且是免費和對所有人開放的。其中最廣為使用就是HTML。它為嵌入遵循其他標準的對象(用于處理圖像、視頻、音頻等)提供了標準手段。無論好壞,W3C目前正致力于兩種HTML標準化的工作:HTML 5和XHTML 2。我們不打算詳細描述這兩種標準,對于它們,我們只是簡單地概括如下:
◆XHTML 2的著眼點是在HTML里更好利用XML的優勢。與此同時,人們希望擯棄那些可被更好的方式所替代的元素。它的另一設計目標是希望與其它技術或需求(復合文檔、語義Web、無障礙性)集成。
◆HTML 5更關注于推動現有HTML(HTML 4或XHTML 1)。它盡管支持XML,但并不依賴于XML。早前HTML版本的向上兼容十分重要。
的確,這兩種HTML在目標和原則上都有些重疊,但它們在設計目標上是有顯著差異的。
為了能夠實現HTML或XML文檔的內容與表現相分離,于是出現了CSS技術。它提供了一種靈活定義各元素在文檔里如何表現的方式。CSS是一項非常強大的技術,在它的幫助下,Web設計者可令網頁適應各種設備或屏幕尺寸。XSL是一種比CSS更具一般性的方法。它不僅可以格式化已有文檔,還可以對文檔內容進行轉換。這樣,就可以重組、壓縮或擴展文檔里的元素了。
為了允許網頁用戶反饋信息(如訂購一個商品,或參加一場活動),可以在HTML文檔里嵌入表單。表單(form)是在HTML標準里定義的。XForms是一種更為強大(而且在XML領域受到良好整合)的表單技術,所有XML語言都支持它。
SVG是一種功能強大的用于圖像的XML語言。它支持基于向量的二維圖形(而不是基于像素的圖像),可以在沒有任何質量損失的條件下對圖像進行放大和縮小。SVG還支持基于向量的動畫?,F在許多瀏覽器都支持或部分支持SVG。
如前所述,(X)HTML里可以嵌入非(X)HTML對象。這些對象通常以XML文檔的形式存在(如SVG或數學標記語言MathML),它們或者是通過鏈接來引用,或者是通過一個獨立的名稱空間直接包含進來。 一般來說,除非你要進行用戶交互或動畫同步,否則這樣就可以了。有一系列復合文檔標準(WICD,CDF)還在制定當中,這些標準將使得采用不同技術的文檔片斷可以更好的集成。
Web可以作為復雜應用的平臺,特別是在強大的編程語言和接口的幫助下。所以我們可以看到很多基于Web技術的applets、widgets和應用。在CDF、XML、DOM(以及DOM事件)、XForms、XHTML和SVG等技術的支持下,游戲、地圖、圖像處理和全部辦公套件都可以基于瀏覽器實現。
要制作一個包含來自各處的媒體的演示片,可以采用SMIL。SMIL于1998年發布,它是一種基于XML的、用以在時間和空間上控制媒體的語言。
語義Web
在Web上尋找信息仍不是一件輕松的事?,F在有許許多多的搜索引擎:基于文本的,基于主題目錄的,還有一些專用搜索引擎(比如搜索最低價格的)等等??墒牵钦业綄iT的數據庫,否則搜索“明年四月在柏林舉辦的所有音樂活動”還是一件很困難的事。之所以困難,是因為Web文檔通常不會按搜索引擎可理解的方式來陳述“這是關于一個四月份的活動”的。當人類用戶閱讀此網頁時,可以輕松得出結論,可搜索引擎不行。搜索引擎讀到“四月”這個詞時,不會知道有個活動將在該月舉辦,它甚至不知道這是關于一個活動的網頁,也不知道這是一個什么“活動”。
要解決此問題,我們得把知識“告訴”計算機。我們可以對我們所討論的多個事物定義關系。我們必須設法告訴計算機,“音樂是一種表演藝術”,“表演藝術是一種藝術”以及“所有音樂都有持續時間”;我們還要告訴計算機,“音樂可以現場表演”,“現場表演是一種活動”,“每場活動都具有開始時間”等等。其次,我們需要一種方式來告訴計算機,某則數據(比方說開始時間)是多少。另外,我們要能夠指定這個開始時間是隸屬于哪場活動的。
前面我們提到過,RDF是一種可以定義關系的語言。不過,為了能夠為計算機所用,我們還需要一種唯一命名資源(resource)和屬性(property)的方式——這正是URL派上用場的地方。URL創建了唯一標識Web文檔的方式。不過,在技術上,URL并非只能指向網頁。若取消這一限定,我們便得到URI,RDF用它來唯一標識資源(resource)和屬性(property)。
屬性也是資源,因此我們對屬性也可以作出陳述(statement)。例如,我們可以定義一個叫“isSubClassOf”的屬性,那么如果“car isSubClassOf vehicles”而且“myCar isMemberOf car”,我們便可得知“myCar isMemberOf vehicles”。這讓我們可以利用邏輯從已有陳述中推導出新的陳述。定義屬性含義的RDF詞匯集(和規則)有多種。除最簡單的RDFS意外,OWL標準定義了三種不同級別的詞匯集:OWL,OWL Lite,OWL DL和OWL Full。各級別的OWL在關系的定義和推導上具有不同的選擇。你可以采用相應的算法來進行推導(不過對于OWL Full,算法能否在給定時間內得出結論是未知的)。
這些技術對Web意味著什么呢?我們可以設想這樣一個“覆蓋Web(overlay Web)”:每一個活動的開始日期,除了具有代表其自身的日期以外,還引用一個它所從屬的活動;該活動不僅是一個演出,而且還是一個音樂演出。RDFa標準用于在XHTML文檔里嵌入RDF陳述(statement)。
除了搜索,Web上還出現了鏈接數據(linked data)應用:mashup。盡管它現在一般基于私有API,旨在從一處獲取數據、并將之與別處的數據合并,但采用語義Web技術來鏈接數據將令mashup的構建與維護簡單許多。
鏈接數據的另一個應用是FOAF項目。它提供了用以描述人的RDF詞匯。比如每個人都可以描述自己認識哪些人,這樣人與人之間便建立起連接。有些社交網絡應用就是基于FOAF的。
除了RDF,還有一項技術也被用于鏈接數據,那就是微格式(microformat)。微格式利用(X)HTML里的“class”屬性來表明一個HTML元素包含一些數據。為支持互操作,微格式需進行集中管理。microformats.org上列出了現有的各種微格式。
Web服務
Web服務不太關注瀏覽方面,而是更關注于網絡環境下軟件應用之間的互操作。有一套標準專門用于實現這種互操作,并令各應用以松耦合的方式來完成復雜操作。Web服務在電子商務中扮演著重要作用。在業務步驟之間用XML來傳遞數據,是一項令人心動的技術,它有將部分業務流程自動化的潛力。所以,我們可以在這一領域看到許多概念和熱門詞匯(EAI、ESB、MOM、SOA),它們最終都是基于Web服務的。要使用Web服務,需滿足以下需求:
◆需要一個在應用間交換消息的協議
◆需要一種對服務和消息進行尋址的機制
◆需要按機器可讀的方式來描述服務
◆也許要應用策略來控制服務的使用
有些標準滿足了Web服務的以上需求:
◆SOAP規定了與服務通信時所采用消息的格式
◆WS-Addressing描述了如何對Web服務和消息進行尋址
◆WSDL語言用于描述一個服務的功能以及它接受/發送的消息。另外,還有一個用于對WSDL進行語義標注的標準,叫SAWSDL。它支持用本體(ontology)來表達Web服務的語義。
◆Web服務策略規范定義了一種為服務的使用指定策略的方法
移動Web
移動Web的特點是,客戶端設備(如移動電話)在連接性、帶寬和處理能力上有比較受限。所以,移動Web標準就是要支持移動設備瀏覽Web,并且為之提供較好的體驗。移動Web標準關注于以下方面:
◆縮減現有標準,以適應移動設備的限制
◆制定針對網頁制作者(及制作工具廠商)的設計準則,以確保網站對移動設備友好
◆允許服務器了解客戶端能力
XHTML Basic、SVG Tiny、SVG Basic、SMIL mobile、XForms Basic以及CSS mobile都是為滿足移動設備的需要而提出標準。為了讓服務器能夠根據移動設備(或運行于其上的瀏覽器)的能力發送相應的內容,服務器需要能夠了解設備的能力。DDR Simple API是一個可供服務器查詢設備能力的設備描述庫。
移動性的另一方面是,用戶可以利用位置感知(location awareness)技術的優勢?,F在許多移動設備都內置有全球定位的功能。為了令服務可以利用這一信息,Geolocation API規范的制定工作已經開始了。
語音通信
有人可能想知道訪問Web的最低要求是什么。用一個老式電話機可以嗎?因為很多信息都是通過電話來分發和傳播的,所以,提出如何令Web技術支持電話是一個相當自然的問題。使用過自動語音服務的人都知道,語音友好性在提升用戶體驗方面有很大的空間。為了支持更好的(半)自動化語音通信,已經有標準在制定之中了,它們涉及以下方面:
◆VoiceXML用于定義對話框架。它是一種用來從用戶收集信息、且具備腳本能力的XML語言。VoiceXML標記根據用戶的響應來控制對話流。
◆有兩個面向語音的標準支持VoiceXML。SSML是一個用于輔助合成語音生成的XML語言。SRGS用于支持為語音識別定義語法規范。
CCXML為電話呼叫控制提供支持,而且可與VoiceXML這樣的對話系統聯合使用。EMMA是一種 XML語言,用于描述同時接受自多個通道(如語音、手寫、鍵盤等)的輸入。
隱私與安全
Web改變了我們生活的很多方面。一個最具爭議的改變就是我們的隱私。我們在使用Web的過程中泄漏了許多個人數據、個人喜好及偏好等等。每當我們在網上提問,或者在網站上注冊用戶時,我們都在透露我們的個人信息。用戶不知道這些用戶信息將被收集起來作何用途。為保護公民權益,政府已經發布了隱私法。不過,由于因特網的跨國界特性,這些法案通常不適用于網絡環境。這個問題不是光靠技術可以解決的。人們得慎重對待自己的隱私數據,另外我們必須尋找可被社會接受且技術上可實現的新的隱私模式。
P3P是一種按機器可讀的方式描述隱私策略的標準。比如,它允許公司按用戶代理(如Web瀏覽器)可理解的方式發布自己的隱私策略。由于無法貫徹策略,因此P3P適合于“當用戶信任策略發布網站”的情形——這通常也是業務往來的前提。有些瀏覽器(如IE6或更新版本)采用服務器提供的P3P信息來支持用戶控制cookie的使用。
有些機構是我們所信任的。不過我們如何確定我們所信任的銀行網站是不是冒牌的呢?我們可以在Web上萬無一失地傳輸機密數據嗎?銀行可以確信你的轉帳請求真的來自于你嗎?如何確信該請求在途中沒有被篡改過?
這些不單單是Web上才有的問題。數學——尤其是數論——為我們提供了解決許多此類問題的加密手段。因特網協議支持的TLS/SSL可利用上述手段來傳輸數據。要在文檔或數據級運用這些技術,仍有一些顯著問題有待解決。XML Encryption、XML Signature和XML Key Management是三種相關技術,它們支持對XML文檔片斷應用一些知名的加密方法,例如對一個SOAP消息的主體進行數字簽名。
關于如何評價或告知用戶它們所處環境的安全上下文的工作仍在進行之中。最終,該項工作是要充分利用證書、加密、網站動態性等服務器提供的信息。這將使得用戶可以在做出信任決策時更好地理解一個網站的安全上下文。
盡管該領域已經取得一些發展,但關于隱私和安全仍有不少問題有待解決。
#p#
樓頂
網站和殺手級應用
所有這些技術與標準都不是目標,而是通向目標的手段,而且目前都還不夠完善。隨著帶寬和計算能力的不斷增長,它們使得Web成為人們可以充分發揮其創造性來交易、討論、傳播想法或建立關系的場所。在過去的17年里,Web已經將因特網從少數人的玩具變成了一個強大的基礎設施(infrastructure)——它由無數的個人、商人、新聞工作者、藝術家、科學家等構成。Google、Yahoo、Flickr、Ebay、Youtube、Myspace、Wikipedia、Mozilla等僅僅是一小部分代表。
不過還有很多問題需要想法、技術方案、標準或社會協商來解決?,F在,一方面網站、Blog、Wiki、商店以及新奇應用等在不斷進步,另一方面標準與技術也在工作之中。W3C提供了一個平臺,供廠商、開發者和用戶來改善Web的支架。
縮略語
ADA——Americans with Disabilities Act/美國殘疾人法案
API——Application Programming Interface/應用編程接口
CCXML——(Voice Browser) Call Control XML/(聲音瀏覽器)呼叫控制XML
CDF——Compound Document Formats/復合文檔格式
CGI——Common Gateway Interface/公共網關接口
DDR——Device Description Repositories/設備描述庫
EAI——Enterprise Application Integration/企業應用集成
EMMA——Extensible MultiModal Annotation markup language/可擴展多模式標注標記語言
ESB——Enterprise Service Bus/企業服務總線
FOAF——Friend of a Friend/朋友的朋友
MathML——Mathematical Markup Language/數學標記語言
MOM——Message Oriented Middleware/面向消息的中間件
OWL——Web Ontology Language/Web本體語言
P3P——Platform for Privacy Preferences/隱私偏好平臺
RDF——Resource Description Framework/資源描述框架
RDF/XML——采用XML語法的RDF
RDFS——RDF Schema/RDF模式
RDFa——RDF in attributes
SAWSDL——Semantic Annotations for WSDL/WSDL語義標注
SMIL——Synchronized Multimedia Integration Language/同步的多媒體集成語言
SOAP——Simple Object Access Protocol/簡單對象訪問協議(完整寫法易造成誤解,很少使用)
SPARQL——SPARQL Protocol and RDF Query Language/SPARQL協議和RDF查詢
SRGS——Speech Recognition Grammar Specification/語音識別語法規范
SSML——Speech Synthesis Markup Language/語音合成標記語言
SVG——Scalable Vector Graphics/可伸縮向量圖形
TLS/SSL——Transport Layer Security / Secure Sockets Layer 傳輸層安全/安全套接層
URI——Uniform Resource Identifier/統一資源標識符
URL——Uniform Resource Locator/統一資源定位符
VoiceXML——Voice Extensible Markup Language/語音可擴展標記語言
W3C——World Wide Web Consortium/國際萬維網聯盟
WICD——Web Integration Compound Document/Web集成復合文檔
WSDL——Web Service Description Language/Web服務描述語言
XForms——代表下一代表單的XML應用
XHTML——Extensible Hypertext Markup Language/可擴展超文本標記語言
XML——Extensible Markup Language/超文本標記語言
參考資料
W3C技術棧:http://www.w3.org/2004/10/RecsFigure.png
關于W3C技術:http://www.w3.org/Consortium/technology
W3C技術報告和標準文檔:http://www.w3.org/TR/
關于W3C活動:http://www.w3.org/Consortium/activities
作者簡介:
Klaus Birkenbihl(中文名岳林):現任W3C全球辦事處主管。曾是歐洲科學研究網(EARN)創始成員,歷任歐洲科學研究網德國副主管、德國科學研究網(DFN)執行委員會成員和因特網協會(Internet Society)德國分會主席。
【編輯推薦】