• 沒有找到結果。

第二章    文獻探討

2.3  差分編碼簡介

立 政 治 大 學

N a tio na

l C h engchi U ni ve rs it y

11

GeoJSON 的特性,可透過上表各個型態的結構進行觀察,除了 Value 中的座標外,

Object 的重複性並不高,以圖 2.4 為例,左邊地圖呈現一條 LineString 的地理資料,而 右邊相對應產生的GeoJSON 內容中,可發現座標值佔有相當大的比例,因此後續本研 究在設計壓縮技術時,將以Value 的座標特性來定義壓縮規則。

圖2.4:GeoJSON 範例[46]

2.3 差分編碼簡介

在科學應用、工程以及數學,希臘字母中的差分編碼(Δ)通常用來表示「轉換變數」,

差分編碼(Delta encoding)又稱差分壓縮法(Delta compression),是以相鄰資料間的差異值 來替代原始資料,亦即僅儲存差異值以達到壓縮的目的。如陳仁德一文[5]指出,在現今 的網路下,檔案的內容在很多的時候會被複製、修改、刪減,甚至將多個檔案內容組成 一個新的檔案,檔案間相似度高,因此,用戶端不須要取得整個目標檔案,只要取得差 異值,即可大幅減少資料量。James J. Hunt 等[15]一文提到差分編碼除了減少資料量,

也能縮減儲存空間與網路頻寬。

本研究的實驗資料採用世界通用的WGS84 經緯度格式,參考孫志堅對座標系統研 析,台灣地區大約在東經120-122˚,北緯 22-25˚30' [8],若縮小以地區性來看,台北地 區約東經120˚與北緯 22˚範圍,所以座標「度」單位皆相同,「分與秒」則視精確度而定,

因此從度單位來看,座標差異不大,適合利用差分編碼來進行壓縮。

‧ 國

立 政 治 大 學

N a tio na

l C h engchi U ni ve rs it y

12

差分編碼的原理,是取得相鄰資料的差異值,且差異值的結果趨近於零或小於零,

因此將差分編碼應用在空間座標資料時,可省去浮點數之整數位,因而縮小座標的字串 長度。由於地理資料的文件格式,包含大量標籤及龐大空間座標資料,因此參考Jihong 研究[26][17]提出使用差分編碼演算法壓縮大量的浮點數座標,本研究整理如下:

假設每組座標p 代表i (x , y ) ,共有 n 組座標,且 i 介於 0 到 n-1 之間,將這一串的座標i i 集合表示成P,差分編碼為Δp ,因此我們僅要儲存差分編碼後的座標集合即可,其表i 示式如下:

i i 1 i

0 1 n-1 0 0 n-2

Δp p p

P= {p , p , ...p } P={p , Δp , ...Δp }

下圖2.5 為簡單的差分編碼範例,從「 23.08909, 23.08907, 23.10279, 23.10308,

23.07901 ……」的資料串中,經由差分編碼後儲存「 23.08909, 0.00002, 0.01372, 0.00029, -0.02407 ……」。然而浮點數經由差分編碼後,雖然數值部份減少,但由於小數點與尾 數間有許多零值,使得字串長度縮減不大,因此若能改善零值的問題,即能達到縮減字 串長度的結果。

圖2.5:差分編碼範例 2.4 HTTP 與 GZIP 壓縮

從IBM 技術網路上針對 HTTP 壓縮與加速網路傳遞一文介紹[47],HTTP 壓縮是為 了改善頁面解析時間長短問題。因此,當HTTP 收到需要傳遞到用戶端的資料時,會進 行資料的讀取,而處理速度取決於下列三個重要因素:

1. 網路或應用程式伺服器產生內容的能力,即伺服器的效能,本研究的應用程式伺服 器是由Apache 網頁伺服器與 PHP 程式實作。

‧ 國

立 政 治 大 學

N a tio na

l C h engchi U ni ve rs it y

13

2. 網路的頻寬。

3. 資料內容的檔案大小。

對使用者而言,網頁呈現的速度即代表整體效能的良莠,提昇網路效能最簡單的方 式,當然可透過提昇伺服器硬體設備或是增加網路頻寬,加速資料傳遞的速度,但相對 的,此舉隱含更多成本的增加。因此在伺服器至網際網路的連結過程中,如何減少資料 內容的檔案大小,才是最具成本效益的控制方法。若假設我們在回應用戶端資料時,先 進行「HTTP 壓縮」,就能改善頁面的下載速度,且HTTP 要求的時間也會加快,從 Timothy J. McLaughlin 關於 HTTP 壓縮帶來的效益一文的測試報告[22]可以得知,壓縮後的網 頁,要求人數即使增加,回應的時間仍比未壓縮前還要來的短,如圖2.6 與圖 2.7 所示。

圖2.6:檢索 Yahoo 網頁之壓縮效能圖[22]

圖2.7:檢索 eBay 網頁之壓縮效能圖[23]

‧ 國

立 政 治 大 學

N a tio na

l C h engchi U ni ve rs it y

14

從過去HTTP 壓縮的方法中,由 Jean-loup Gailly 和 Mark Adler 所創建的免費軟體 GZIP,是最常用且普遍使用的壓縮技術。 GZIP 主要是結合 1977 年 Jacob Ziv 與 Abraham Lempel 提出的 LZ77 壓縮[20]與 David Huffman 1952 年提出 Huffman[14]這兩個方法而 來,其中LZ77 作法是將處理過的字串資料編譯成字典,並將處理中的各種字串以指向 字典中相對的指標;而Huffman 使用建立的字典來減少 LZ77 找相符的字元所花費的匹 配時間,進而改善LZ77 效能問題。

Ekrem 一文同樣對 GZIP 與其他兩種常用的的壓縮工具比較與測試[33],如圖 2.8 所示,GZIP 在壓縮率與其他兩種差異不大,但是在壓縮與解壓縮的時間來看,GZIP 明 顯效能較高,因此綜觀上述文獻分析,本研究選擇以GZIP 作為 HTTP 壓縮的主要方法,

在壓縮率相當但壓縮效率較佳的結果來看,GZIP 可以滿足本研究所重視的「效能」條 件。

圖2.8:GZIP 壓縮測試結果[33]

2.5 資料傳輸驗證

由於本研究對GeoJSON 資料壓縮的編解碼過程,可能因為網路異常使得編碼資料 傳遞到用戶端發生中斷或者內容改變,因而影響資料在用戶端解碼的正確性,尤其本研 究應用差分編碼壓縮,每個數值間皆環環相扣,不能容許數值在網路上出現錯誤,在實

‧ 國

立 政 治 大 學

N a tio na

l C h engchi U ni ve rs it y

15

驗中雖然無法掌握網路狀態與異常現象的情況,但我們可以透過檢查的機制,來確保資 料傳遞前後,用戶端及伺服器間資料內容一致與正確性。

從相關文獻得到,常見的錯誤檢查方法如下:

1. 封包檢查:

從網路通訊針對錯誤檢查的文獻中得知[10],封包檢查的原理為,當資料要傳送出 去的時候,發送端會對資料進行一個校驗的動作,當接收端收到封包之後﹐會再對 資料進行校驗﹐再比對傳送層的協定中 TCP 或 UDP 檔頭上的校驗值(checksum) 是否一致。若結果不一致則認為資料已損毀﹐並要求對方重送。而UDP 的 checksum 計算較為複雜,並且容易發生資料遺失的問題,且應用上較不易,而TCP 雖然較 UTP 的傳輸可靠,但是計算與傳輸的時間較長。

2. 雜湊值驗證:

原理為,將傳輸的訊息經由雜驗計算產生檢查碼(checksum),最常見為「單向雜湊 函數」(one-way hash function) ,首先解釋何謂「單向函數」與「雜湊函數」。若我 們有一串訊息m,我們可以很容易用函數 h 來計算 h(m),無法反推回原訊息 m,則 h()函數即稱為-單向函數。而雜湊函數簡單來說,會把一個變動長度的字串轉換成 固定長度的字串,我們稱此字串為雜湊。

相關的應用如S. Bakhtiari 便利用「雜湊函數」來進行電子郵件傳輸的錯誤檢查[12],

以確認接收端的雜湊值是否與發送端相等,來決定是否儲存郵件或要求重新發送。

IBM 開發論壇一文[30]將相同包裝編碼後的檔案佈署在不同環境中,並透過「雜湊 值驗證」每一個經過編碼並包裝成的檔案是否相同。

由於封包檢查需要網路通訊的背景知識,因此在應用上較不易,而雜湊值驗證的方 法較為簡單,只需使用雜湊函數計算出雜湊值即可達到驗證的目的,因此本研究希望用 最簡單的方法達到錯誤檢查的目的。

擇」的效能評估一文[9],以 MD5(Message-Digest Algorithm 5,MD 5)的整體運算及回應 效能比其他演算法佳,因此研究採用MD5 作為資料驗證碼的計算方法。

‧ 國

立 政 治 大 學

N a tio na

l C h engchi U ni ve rs it y

17

圖2.9:MD5 雜湊演算法流程[25]

2.6 開放式原始碼 Web GIS 平台簡介

目前有許多開放免費地圖與程式設計資源的網路地圖服務,其中又以Google Maps 及Open Layers 普遍受各大軟體或學術領域應用,除了可提供使用者製作網路地圖,並 且可以免費使用地圖圖資,讓使用者能客製化地理影像圖資,包括衛星影像、航照圖或 早期地圖掃描影像等。

Google Maps 是由 Google 公司提供的電子地圖服務[36],能提供傳統向量地圖及衛 星照片,其特點為透過Google Maps 提供的組件化 API,讓使用者得以自行利用或與其 他的網路服務整合應用,然而Google Maps 在實務操作上是有限制的提供服務,對於圖 徵的數量及未壓縮檔案的大小均有設限,因此無法完全滿足本研究的要求。

Open Layers 是一個完全開放 JavaScript 原始碼的地圖服務[43],是由 MetaCarta 開 發了初步的版本,且它的所有環境都是透過JavaScript 產生,包括地圖資料、繪圖等,

它可連結多種地圖的圖層,如微軟bing 地圖、Google Maps、Yahoo 地圖及 ESRI 地圖等;

‧ 國

立 政 治 大 學

N a tio na

l C h engchi U ni ve rs it y

18

在使用上,Open Layers 沒有開發限制與付費政策問題,所有程式元件均完全開放且免 費提供使用者應用,對於許多想要節省成本的開發團隊而言,Open Layers 是個非常適 合的網路平台服務,其簡易呈現畫面如圖2.10 所示。本研究綜合考量網路地圖軟體的使 用成本及限制後,將選擇採用Open Layers 作為研究的網路平台。

圖2.10:OpenLayers 範例畫面

‧ 國

立 政 治 大 學

N a tio na

l C h engchi U ni ve rs it y

19

隨著Web GIS 應用層面逐漸擴張,資料的內容豐富度也隨之提昇,面對瞬息萬變的 資料,促使資訊系統與技術推陳出新,運用簡單、快速且有效率的方法來處理龐大的資 料,GeoJSON 技術也在此環境下應運而生。在第二章回顧其他地理資料交換格式,以 及對GeoJSON 的初步了解,每種格式都能有不同的 Web GIS 應用效益,然而 GeoJSON 在Web GIS 解讀過程中,簡化了格式翻譯的流程,加上簡單的內容結構,讓系統讀取與 執行效能優於其他格式,這也是本研究期待GeoJSON 能有更多的應用與發展空間原因。

本章之重點在於討論壓縮技術之設計與檢查機制流程的規劃,再於第四章進一步判 斷壓縮技術的效益與正確性。以下,3.1 節先介紹本研究實驗的系統架構;3.2 節介紹研 究的工具與資料處理的流程;3.3 節是將輸出的 GeoJSON 格式套用在本研究設計的壓縮 技術,以比較浮點式編碼與差分編碼二者的壓縮率,並評估HTTP 壓縮對於改善資料傳 遞時間的效益;3.4 節是將壓縮技術應用於不同條件下進行實驗,包括不同壓縮組合及 不同型態資料對壓縮率的影響;3.5 節是針對壓縮技術套用後,在無法預知可能發生網 路傳輸問題下,設計一套資料傳輸檢查機制,以確保資料的正確性與一致性。

本章之重點在於討論壓縮技術之設計與檢查機制流程的規劃,再於第四章進一步判 斷壓縮技術的效益與正確性。以下,3.1 節先介紹本研究實驗的系統架構;3.2 節介紹研 究的工具與資料處理的流程;3.3 節是將輸出的 GeoJSON 格式套用在本研究設計的壓縮 技術,以比較浮點式編碼與差分編碼二者的壓縮率,並評估HTTP 壓縮對於改善資料傳 遞時間的效益;3.4 節是將壓縮技術應用於不同條件下進行實驗,包括不同壓縮組合及 不同型態資料對壓縮率的影響;3.5 節是針對壓縮技術套用後,在無法預知可能發生網 路傳輸問題下,設計一套資料傳輸檢查機制,以確保資料的正確性與一致性。