發佈日期: 5 則留言

Web2.0:過去,現在及未來

本篇文章主要在介紹Web的發展歷史,目前技術上的發展情況,以及未來的景象。

Web
在有Internet的時候,歐洲高能物理實驗室(CERN)的研究員Tim Berners-Lee,在1989~1991的時候,參考了TCP及DNS,設計了HyperText(超本文),以及HTML(HyperText Markup Language)及用來傳輸HTML的HTTP(HyperText Transfer Protocol)。他也設計了第一套HTTP伺服器NCSA Httpd,在NextStep系統上的第一套瀏覽器WorldWideWeb,以及世界上第一個網站 http://info.cern.ch/ 。隨後,他創立了W3C(WWW Consortium)組織來開發及建立WWW上的協定及共通標準。

從網頁到Web應用程式
名稱 網頁 Web應用程式

瀏覽器 IE Firefox,IE

表現層
(資料格式) HTML XML,XHTML

樣式表 CSS XSLT,CSS

動態呈現 DHTML Ajax
(Javascript+HTML DOM)

連結方式 超連結 1. Web Services
2. RSS, Atom
3. 有意義的超連結

邏輯層 不使用(靜態網頁)Javascript***, Perl, PHP, ASP PHP, Perl, Ruby, Python
Asp.Net, JSP

資料層 不使用, 檔案型資料庫 MySQL, PostgreSQL , MSSQL

Ajax*:還是使用Javascript的技術,只是結合XML來做非同步的傳輸。與以往的Web應用程式比較起來,Ajax的使用讓部分運算集中在用戶端,而結合Javascript特效,能夠有更多彈性來創造不同的使用者介面。

連結方式**:這邊是拿Web之間連結資源的方式作比較,以往是靜態的超連結。而現在是Web應用程式,所以能夠進行1. 主動性的連接,也就是透過SOAP來交換資料。2. 被動性地將應用程式資料變成以XML為基礎的協定,來讓其他應用程式透過URL取得。3. 透過即時改寫URL或是良好的設計來達成簡單且有意義的超連結。

Javascript***:在許多伺服器端程式還沒有出現的時候,最早是使用Javascript最為最基本的程式,當時也被稱做DHTML。在PHP還沒有真正達到廣泛應用的時候,當時是使用Perl及檔案型資料庫作為邏輯層及資料層,常見的應用程式就是聊天室及留言板。

而在資料庫系統引進之後,也因為伺服器端的程式語言,得以讓這些Web應用程式可以利用資料庫完全地記錄狀態及資料,其中最熱門的是PHP。後來瀏覽器的功能提升,加上與Javascript與XML的結合後成為Ajax,讓現在的Web應用程式更能與使用者互動。這些技術刺激了許多和Web相關的技術成長。大約在2004年開始,和Web相關的應用程式越來越風行。網頁不再是網頁,會明確地被稱做Web應用程式。而不管是既有的網路服務,或是Web應用程式,都有服務提供者進行整合。

網路泡沫化
然而,為何會有網路泡沫化一詞產生?在那之後,有一些商業公司發現這個相當快速的資訊傳播平台,便開始著手建構電子商務,嘗試利用Web快捷的特性降低成本。起頭的公司賺進大把鈔票,加上雜誌以及媒體的渲染,使得投資人紛紛認為這是一塊大餅,開始瘋狂投資。這個情況,就如同台灣的珍珠奶茶以及蛋塔效應一樣,投資者沒有創意的跟進,沒顧及使用者需求的後果,就是導致倒閉及併購。目前真正能夠活下來的,也就是真正有做到瞭解並服務使用者的網路公司。

Web 2.0
由於上述Web技術的演進,以及應用程式服務化的觀念,產生了許多與眾不同的網站。對於Web應用程式服務最出色的就是Google、Yahoo。這些網站都本來就具備一些特點,也讓他們能夠存活到現在。在2005/09/30,由Tim O'Reilly所發表的「What Is Web 2.0」統整了這些網站的特色,而定義了Web 2.0這個名詞。

但是我想我必須澄清,在Web上使用軟體版本號碼也只是一個表徵,讓使用者知道現在他們天天用瀏覽器所看見的是新一代的Web。但事實上Web一直都在演進,也像是一直都在換版本,並沒有真正軟體版本的概念。而我認為Web 2.0是走向Semantic Web的一個中間必經之路,不管O'Reilly有沒有提出這樣的名詞,你都已經在使用了。有些對於Web 2.0較批評的文章甚至說,或許很多新一代的家電都可以開始掛上版本號碼,如電腦2.0,冷氣機2.0…等等,但是你並不會真的對冷氣機說那是冷氣機2.0。

就 O'Reilly的文章內容,Web 2.0包含以下觀念: 
 

  • 目的是在於提高人與人之間的互動性,連結性。
  • 以Ajax, Javascript特效,站在使用者的觀感,讓使用者有與以往瀏覽靜態網頁不同的經驗。
  • 建立良好的資料輸入平台,讓使用者可以輕易地累積資料。
  • 利用群眾的力量,可以輕易地開發群眾想要的應用程式,也符合開放原始碼精神。
而對於是否會泡沫化,文章中也認為能夠稱做是Web 2.0的商業公司會符合: 
 
  • 強調使用者也是開發者
  • 利用集體智慧來瞭解使用者需求
  • 儲存的是獨特的領域資料,也包括經由創意而產生的資料
  • 輕量級(Lightweight)的使用者介面,開發模式,商業模式
  • 賣的是服務而不是軟體,也因為上述幾點所以有高成本效益
這是一個很理想的狀況。但實際上,從Wikipedia對於Web 2.0的現況所做的解釋看起來,卻完全不是這樣一回事。一些相當知名的服務公司如同Flickr,開始走向被併購的路線。一些對Web 2.0的負面報導也越來越多,讓投資人謹慎地評估風險,而不再像以往泡沫化的時代一味地砸下重金。我想這與眾多國內商業週刊,網路媒體與業者大肆利用Web 2.0的名稱試圖吸引使用者投入其陣營是截然不同的情況。

新一代的軟體使用經驗:Web應用程式
我想從2004年以後,也就是早在Web 2.0這個名詞提出來之前,Web應用程式的出現帶來了另一種不同的軟體使用經驗。使用者不再需要安裝龐大的軟體套件,利用瀏覽器就可以使用。而Web本身的目的也在於加速人與人之間的溝通,所以任何的溝通平台也可以同時建立在此應用程式中。形成了應用程式與服務的彈性整合,也帶動了使用者之間的交流而形成社群,這是以往的視窗應用程式無法做到的。經由社群的力量,Web應用程式本來就不需要太擔心無法瞭解使用者的需求,而可以快速的改進。

就軟體規格上而言,Web應用程式應該要擁有主動與其他Web應用程式通訊的能力,不管經由Web Services或是其他方式。Web應用程式也應該要提供許多整合性,統計性的服務,而這些透過運算出來的資料,也應該要變成能夠被其他應用程式存取的資料。使用者輸入的創意資料,應該可以透過可以輕易解讀的文字格式匯出給使用者自行備份。

Semantic Web
Tim Burners-Lee接下來要做的研究就是Semantic Web(語意Web)。Semantic Web是一個最終的夢想,所有現存於Web上的資料,要變成是電腦可以分析與「理解」的資料,然後便可以真正為人類服務,解答問題。而實際上許多目前正在Web上所使用的技術,其實都是為了走向Semantic Web而研發的。

目前大部分存在在Web上的資料,是無法被電腦已共通,程式化的方式進行存取的。例如說你寫一個網頁,但是這個網頁的內容是跟啥有關係,往往也只有看網頁的人才看得懂,然後來分類整理。舉個例子,在XHTML還沒推動的時候,就採用 這個標籤來對該HTML資料進行註解。如此網頁就變成一種有「屬性」的物件資料,而此物件資料還可以被取得及分析。

HTML這樣子非嚴謹文件結構的時代已經過去,因為無法讓程式根據共通的規範來分析文件。目前W3C首推XHTML,目的就是將以往的HTML,使用與XML相同的規範撰寫。例如說,標籤應該使用close tag( 或是 ),屬性也不能只是寫屬性名稱而不加上值,應該使用selected="selected"這樣的方式。一旦大量的資料照著這樣的累積起來,加上良好開發的程式介面,就可以開發出可以分析這些資料的程式。

而目前Web的發展,和Semantic Web有關連的目的就是開發出良好的介面讓使用者可以輕易地累積資料,也因此發展出Wiki及Blog這兩種快速發佈資料的方式。

這些大量的資料,在建構的時候並沒有任何關連,但是真正對人類有意義的資料,是經過定義化,分析整理並且可以快速擷取的資料。W3C目前已經開發出Resource Description Framework (RDF) 及 Web Ontology Language (OWL)來明確地定義「知識」,讓資料之間,或是知識對資料產生關連性。良好格式的知識可以關連到現有的任何一個Web上的資料,並且被程式使用。

而在那個時候,Google或許就不存在了,取而代之的代表這整個世界的知識庫。這樣的知識庫,可以讓你輸入一個簡單的問題,你就可以得到你應該要知道的答案。

結論
Web發展到現在已經15年,眾多的技術,複雜的觀念及理論,多元化的商業行為,群眾的言論及力量,讓使用Web的人們眼花撩亂。可是不管Web怎樣發展,唯一的目的就是給人類使用,讓電腦去處理例行性的工作,而人類可以將時間花在創意上。2004年許多Web的應用,如Wikipedia,對全人類是有重大的影響的。而Web 2.0的觀念,在隔年也掀起許多話題。這些現象都代表著現在已經不是網頁的時代,也不是視窗應用程式的時代,而是Web應用程式的時代。

在〈Web2.0:過去,現在及未來〉中有 5 則留言

  1. 有個CASE想找你研究一下!

    你知道XOOPS有一個XLANGUAGE模組嗎!可以切換語言的!

    如果請妳將模組修改成為在切換語言同時可以切換佈景..不知道您需要的費用大約為多少~

    最近有個客戶有這方面的需求!我在考慮是否可以用XOOPS的XLANGUAGE來解決客戶的問題!

    麻煩妳評估一下了~謝謝

     

  2. 基本上這是不太可能的事情,因為兩者的架構與用途根本是八竿子打不著。

    而且呢,XLANGUAGE這模組也不完全是切換語言用的,我研究過這例子,XLANGUAGE要實現中英日三種語言的切換且文字內容都要一樣只是語言不同的話,你也必須使用[tag]中英日語言要顯示的內容[/tag]去包夾那文字,那意味著資料庫會爆增,如果在加上使用了UTF-8編碼,中英日內容代表著資料庫同時爆增至少五倍以上。

    以前我的作法是,同時架設中英日三個網站,三個網站個別維護內容,反正都是要輸入的,同一個網站或三個網站,根本沒差了而且基於使用者來說,至少三個網站都能完全實現三種語言的完全版。

  3. 其實這方法我有想過!不過會員資料庫整合部分呢?

    如果沒有辦法將三個會員資料庫整合起來!那客戶一定也不接受這樣的提案!!

    麻煩您評估一下可行性了~謝謝!

  4. 我居然到現在才發現這一篇快一年而我都沒回覆的留言啊………………囧

    基本上你說的這個問題,是個值得研究的問題,有一個看來很蠢而過程龐雜,事實上我卻覺得是蠻好用的解決方案,你參考一下。

    在Mysql上開一個資料庫,將三套XOOPS都裝在這同一個資料庫內,當然,資料表前綴要各自設定以免造成混亂,然後,選其中一套的user資料表,把牠的前綴另外改一個比較特殊的,其他兩套的user表刪除,留下那一個準備整合三個網站會員資料用。

    接下來,最龐雜繁複的工作開始了,你得打開這三套XOOPS的所有原始碼,找出裡面有關呼叫會員資料表的那幾條程式碼,直接改掉換成你後來留下的那個特別設定的user資料表的命名,就是讓程式直接依照你所設定的資料表名稱去強制呼叫,繞過在Config檔內的預設設定。

    這樣,應該就可以讓三套XOOPS同時共用整合一個會員系統了,但是當然,這只是我認為應該可行的假設,本身並沒有實地去做過,而這樣子的設定對於config有沒有影響,我不得而知,如果你有時間有興趣,不妨試試看。

  5. 抱歉.這問題已經在10個月前獲得解決了…

    還是很感謝您遲來的解答…..

發佈留言

發佈留言必須填寫的電子郵件地址不會公開。