第二章 文獻回顧
本研究利用混搭技術開發 WebGIS 應用系統,由網路結構為始探討 Web 1.0 轉型至 Web 2.0,資料的提供由網站轉型為平台,網路使用者也是資料提供者。資料在 Web2.0 時代的傳 遞透過目前主流的交換格式為 XML,另一發展主流為輕量化檔案傳輸格式-JSON。
WebGIS 開發技術演進,在本章 2.3 節進行論述。2.4 節討論 GDAS 與 GLS,為 OGC 正 在提倡的服務標準,利用空間 ID 連結屬性,成為具有屬性圖徵的資料,GDAS 與 GLS 標準 應用為 HTML 展示屬性資料、以 XML 傳遞屬性資料與其他 GDAS 連結,達成空間資料分享 目的。
2.1 Web2.0 2.1.1 Web 2.0 緣起
Web 2.0 是 O’Reilly 公司與 MediaLive 公司在 2004 年一場會議中提出的名詞。1990 年代 網際網路以.com 為主,在網路泡沫化之際,存活下來與發展良好的公司在資料的處理模式有 共通點,是網路使用者的知識及資料越形重要。網路公司也從獨自擁有資料的大公司轉型成 網路使用者參與資料提供的整合平台。以前網路使用者要發行資料,必須自己架設網站才能 分享,現在只要在社群網站(Yahoo,Google,MySpace 等)申請帳號,就能開始寫自己的 Blog。
Web 2.0 不是新技術,是當代網際網路技術的總稱,包含了群眾參與和傳輸技術的演進。
在圖 2-1 內容中,列出符合 Web 2.0 的標準,具備其中一些標準就可以稱為 Web 2.0 概念的網 站。
圖 2- 1 Web2.0 示意圖 依 O’Reilly 建議,Web 2.0 應該要有以下特徵(2005):
1. 以網際網路為平台:網站變成一個資訊整合平台,不是單一的資訊提供者,例如 Blog 提供商。
2. 使用集體智慧:利用使用者的資料與互信編輯網路內容,如維基百科(Wikipedia),
或拍賣網站,建立買賣互評機制,以評價作為網路消費參考資訊。
3. 數據是下一個「Intel Inside」:網路世界,擁有最多資料,代表更多營業商機。Google 以混搭方式讓使用者能簡單的將資料展示到網路上,數據的增加量快速。
4. 網路程式不停更新:網路使用者以瀏覽器上網,網頁的動態程式語言包括 ASP、JSP、
PHP 等,或是利用外掛(Plug-in)如 Flash,Silverlight 等,軟體的更新都在背後的腳本中,
軟體無時不刻在更新,只要使用者按下更新網頁,就得到新版本的網頁及服務。
5. 輕量化程式模型:以 XML 撰寫的資料存取協定如 RSS,Atom,有限定的架構,網 路資料在固定規範中撰寫,用意是快速讀取。網路傳輸協定如 REST(REpresentational State Transfer)及 SOAP(Simple Object Access Protocal),讓 Web Service 有共通的傳輸協定,
在同一語言下網路程式可互相叫用,加速資料傳遞。另一類傳輸技術如 Ajax,可更新部 分新資料,大幅減少資料重複傳遞。
6. 軟體超越單一設備:在不同平台能使用相同的服務,O’Reilly 提出一個範例-iTunes。
使用者用個人電腦連結到 iTunes 購買音樂,或使用 iPhone,iPod,iPad,都能連到同一 個網路平台,讓購買方式超越設備。
7. 豐富的用戶體驗:動態網頁語言 DHTML、文件物件模型(DOM,Document Object Model)、XML、XmlHTTPRequest,JavaScript 等技術綜合為 Ajax 非同步傳輸技術,讓 網路能更快速的傳遞內容。另一部分是使用者的參與,像 Skype,使用者提供一部分頻
常用的 Feed 格式有 RSS(Really Simple Syndication)與 Atom(Atom syndication format)兩種,
使用者在網站訂閱這類 Feed 就可透過閱讀器觀看最新的綱要。
RSS 是 XML 的延伸應用,設計架構必須符合 XML 的規範,但 RSS 有限定標籤以利程 式讀取,不能自訂標籤定義。Atom 是基於 RSS 設計經驗後,規定更為嚴謹的 XML 格式,
例如 RSS 標籤<description>能描述全文或摘要;Atom 分類較嚴謹,利用<summary>描述摘要、
<content>描述內文。
2.2 Ajax
Ajax 全名是 Asynchronous JavaScript And XML,指的是非同步傳輸技術,首見於 2005 年 2 月,由 Jesse James Garrett 提出。運用在網頁架構,以往網路資料的處理方式是伺服器必 須處理整個網頁的內容,再回傳給使用者,此類方式造成未更新的資料也重複回傳,造成流 量浪費。Ajax 的處理方式是:將網頁中需要更新的部分傳給伺服器來處理。如 Google Suggest,
使用者鍵入部分資訊就開始在伺服器搜尋可能的資料,將可能的結果顯示。另一個應用例就 是 Google Map,移動及放大縮小即時進行,不需要重新整理網頁。提升了網頁的回應速度與
互動性。
2.2.1 Ajax 的規範與傳統網路傳輸型態比較 Ajax 規範有以下幾點:
1. 用 W3C 規範的 CSS 和 XTML 來定義網頁外觀。
2. 使用 DOM 來定義網頁元素,及 DHTML 呈現動態內容。
3. 用 XMLHttpRequest 或 XMLHTTP(微軟 Internet Explorer 的 ActiveX 物件)來解析與 處理非同步資料。
4. 使用 XML 進行資料交換,使用 XSLT 來轉換 XML 格式資料。
5. 用 JavaScript 控制前述的內容。
傳統網路應用圖 2-2 與 Ajax 架構圖 2-3 比較可見 Ajax 在傳統瀏覽器與伺服器間,還多 了一個處理 Ajax 訊息的引擎,安裝在瀏覽器端。Ajax 運作週期如下:
1. 對瀏覽器輸入資訊,輸入文字,按下按鈕,或是拖曳滑鼠。
2. 輸入的指令會轉換成 JavaScript 物件或函式,呼叫相關的程序傳給 Ajax 引擎。
3. Ajax 引擎對伺服器發出 XMLHttpRequest,在處理新的 XMLHttpRequest 時,
JavaScript 的函式呼叫已經開始回傳,這種過程就是非同步傳遞。而 Ajax 引擎得到伺服 器的 HttpResponse 時,Ajax 引擎會呼叫對應的函式在瀏覽器使用者介面反應。
圖 2- 2 傳統網路架構(Garrett, 2005)
圖 2- 3 Ajax 網路架構(Garrett, 2005) 2.2.2 Ajax 優缺點與處理方式
Ajax 的優點能在不更新整個頁面的前提下提供資料,對於使用者而言,更新部分的內容,
不需重整整個網頁能讓等待的時間大幅降低,增加瀏覽時的效率;對於網站業者,更新部分 的內容能避免多次傳送幾乎相同的內容給使用者,降低網站伺服器負擔。
Ajax 的缺點有以下二點:
1. 由於 Ajax 包括樣式控制表(CSS)、文件物件模型(DOM)及 JavaScript,目前各瀏覽器 商支援程度不盡相同,程式設計可能要先解決不同瀏覽器間相容性,而不是處理程式本 身。為解決此問題,有業者專門開發通用的 Ajax 函式庫或架構,開發商會先針對各個瀏 覽器測試,確保開發的功能在各瀏覽器都能運作,使用者或開發商再利用通用函式庫撰 寫網頁程式,讓各瀏覽器皆能正常作用,例如 jQuery 函式庫。
2. Ajax 一次只更新一部分資料,沒有「上一頁」,「下一頁」的概念,目前有一些 JavaScript Library 有開發此類功能函式庫,如 RSH(Really Simple History)及 jQuery。或在網頁開發 時,利用 iFrame 隱藏框架記錄最近幾次瀏覽資訊,或使用錨點(網址中的#符號)記錄前幾 次瀏覽的狀態,以實現上下頁功能。
2.2.3 Ajax 資料傳遞方式
非同步傳遞方法涉及資料交換,資料交換以通用標準語言傳遞,例如 XML 與 JSON,利 用程序解譯資料以 DOM 物件存取,以便進行存取解析。以下對 DOM 與 XML、JSON 此二 種交換格式作介紹:
1. DOM:文件物件模型(Document Object Model,DOM),為跨平台與跨語言的界面,
動態網頁中每個標籤相當於一個節點,這些節點由下往上對應到整份網頁文件,有著樹 狀的結構,如圖 2-4 所示。
圖 2- 4 HTML 文件的 DOM 結構樹(W3C)
DOM是動態網頁的基礎,目前Cartagen(http://cartagen.org/)利用HTML5 技術,將地物視 為物件,伺服器利用GeoJSON格式將所有地物呈現於地圖上,使用者瀏覽器利用 GSS(Geographic Style Sheet) 繪製地物樣式,採用此種方式能讓使用者端電腦進行地物繪 圖,而不需透過網站伺服器將地物上色,降低伺服器負擔。Catagen.org展現如下圖 2-5 所示。
圖 2- 5 DOM 型態的 WebGIS-Catagen.org
圖上的黑色單元是一個物件,能對此物件進行透明度調整,下載地物資料操作。
Cartagen.org 的出現顯示 WebGIS 在 HTML5 時代有可能發展為 DOM 型態。
2. XML:XML(eXtensible Markup Language),可擴展標示語言。1.0 標準在 1998 年推 出,1.0 標準在 2008 年修訂為第五版,1.1 標準在 2006 年修訂為第二版。XML 定義資料 與資料結構的方式,目的在不同系統與應用程式之間交換資料,XML 資料標籤的內容由 使用者自行定義。XML 有以下優點:簡單易讀、資料互通跨平台、具擴充性及容易被搜 尋(蔡利國,2006)。
XML 架構包含敘述 XML 資料的 XSD(XML Schema Defination)、控制 XML 顯示樣式的 XSL(eXtensible Stylesheet Language),與聲明轉換規則的 XSLT(eXtensible Stylesheet Language Transformations)。XML 文件範例如圖 2-6 所示:
圖 2- 6 XML 資料範例(廖信彥,2007)
其中<?xml version=”1.0” encoding=”UTF-8”>是一份宣告,指定版本為 1.0 版,使用語言 為 UTF-8。XML 為巢狀語言,開始標籤如<供應商>必須配對結尾標籤</供應商>。
XML 描述資料表的資料紀錄,描述 XML 文件類型與結構的敘述為 XSD。下圖 2- 7 為 XSD 檔案,描述供應商資料架構。
圖 2- 7 XSD 資料範例(廖信彥,2007)
XSD 定義 XML 檔案標籤的結構描述,例如欄位名稱(供應商、聯絡人),資料型態(nvarchar),
資料長度(maxLength)等。使用結構描述,能保證匯入其他資料庫的 XML 檔案,與原本 檔案的資料定義架構一致。
XSL 負責展示 XML 文件的樣式部分。設定資料顯示的字體、顏色、大小,瀏覽器展示。
XSLT 譯為可延伸樣式表語言轉換,提供了轉換的基準,讓 XML 文件在轉檔過程提供參 考,例如轉檔至 HTML 文件、RTF 文件,讓其他應用程式讀取辨識。
3. JSON:JavaScript Object Notation,是輕量級資料交換語言,首見於 1999 年,在 JavaScript 標準提出的資料格式。JSON 與 XML 相比,在於 JSON 不需要巢狀的標籤包 覆資料,資料量小,讀取較 XML 快。
JSON 資料結構如下圖 2-8 所示,物件(object)以大括號『{}』包覆;相同的物件歸類為 同一陣列(array),以中括號『[]』包覆;物件成員以『”欄位名稱(字串)”:” 屬性(值或字 串)”』紀錄,物件與物件間,以逗號『,』隔開。
圖 2- 8 JSON 資料(廖信彥,2007)
JSON 呼叫方式以 eval 函數將 JSON 資料傳換為物件,這樣的作法可能有風險,因為惡 意程式碼可寫在 JSON 檔案中,不經過評估直接解譯可能讓網站遭受攻擊,目前的處理 方式是利用 JSON 官網提供的轉譯器,將資料先進行安全性判斷,確定安全再繼續解譯 資料內容。
2.3 WebGIS
WebGIS 是透過網路讓使用者可以在網際網路(Internet)及內部網路(Intranet)中獲取、儲存、
整合、處理、分析及展示地理位置相關的資料,在客戶端(Client)使用而不需購買任何商業的 GIS 付費軟體(Painho et al, 2001),WebGIS 概念如圖 2-9 所示:
圖 2- 9 WebGIS 架構示意圖(Painho et al, 2001) WebGIS 與傳統單機 GIS 相比,具有以下優點(翁維瓏,2001):
1. 更廣泛的使用層面:使用者只要進入同一個 WebGIS 平台,背後的資料可能來自不 同的伺服器。分散式的概念讓地理資料的聚合及增加資料更為方便。
2. 平台獨立性:使用通用的 Web 瀏覽器,或在瀏覽器加上外掛,就能使用 GIS 資料,
2. 平台獨立性:使用通用的 Web 瀏覽器,或在瀏覽器加上外掛,就能使用 GIS 資料,