深入淺出 ArcGIS Server 10.1 新架構

在 2012 年 6 月的互動國際數位新產品發表會上,本公司技術服務處針對最新版 ArcGIS 10.1 各產品線的十大重點特色,快速的帶領大家預覽新版本的重大變革...(下載簡報),而本文希望將更進一步較為深入說明 ArcGIS Server 10.1 版本在架構上的轉變。Esri 總裁 Jack 在今年的 7 月 Esri 使用者大會上提到「GIS 正在演變成一個全新的平台:雲端地理資訊系統 (Cloud GIS),而 Esri 正在將 GIS 往雲端上移動...(連結影片)」。Esri 長期以來每年投注 20% 以上的營收在研發上,持續關注發展符合未來趨勢的產品,因此在這次新產品 ArcGIS Server 的架構上,我們也看見了 10.1 版本提供了更多支援雲端平台建構的特性,而對於一般中小型企業或組織內的管理者而言,新的架構在建構容錯機制與設定管理上更是方便迅速,讓我們一起來一窺新版本在架構上的重要特性。
 

 

 

 以站台(SITE)為架構單位,簡化安裝設定程序


圖 1. ArcGIS Server 10 與 10.1 版本架構比較示意圖

 

如上圖在 10.0 版以前,ArcGIS Server 的運作方式主要是透過 SOM (Server Object Manager) 與 SOC (Server Object Container) 角色合作搭配完成,兩者缺一不可,SOM 就像部門主管,專門接收從 Web 伺服器傳來的使用者需求,然後將任務分配給轄下有空檔的部屬 (SOC) 來執行空間運算處理工作,SOM 與 SOC 可以依不同需求情境採用分散式安裝佈署在不同機器上,設定程序會較為複雜些;然而在 ArcGIS Server 10.1 新版本的安裝程序簡化非常多,架構上也不再區分 SOM 或 SOC 角色,每一台機器的安裝內容都是完整的 ArcGIS Server 功能,每一個 ArcGIS Server 就是一個可以獨立運作的站台 (Site),並且內建提供網站伺服器 (Web Server),可以直接透過預設的 6080 通訊埠來存取 GIS 服務或進行管理作業。如下圖 2 管理者可使用瀏覽器登入 Web 管理介面線上進行站台設定,並且可自行加入、移除、啟用或停止站台中安裝有 ArcGIS Server 的任何一台機器 (以下我們將稱呼每一台安裝有 ArcGIS Server 的機器為節點)。

 


圖 2. ArcGIS Server Manager 網站式管理介面 (10.1版)

 

<top>

 

 高彈性的資源運用,線上快速隨需調控

 

企業或組織內部的 GIS 運算需求有可能會隨不同情境而需擴張或縮減,例如防災單位可能在突發的災害發生期間需要大量提供地圖服務或空間分析演算,因此我們就可以運用 10.1 版本以站台 (Site) 為架構單元的特性,建置可隨需調動的高可用性容錯備援機制。在平常需求量少期間,我們可以僅開啟一台機器來維持平常作業,而在高用量期間,就可以將多台已安裝好 ArcGIS Server 的實體或虛擬裝置啟用,加入同一站台組成聯盟來服務大量的需求;在多節點佈署的情境下,即使有節點臨時故障無法提供服務,其他的節點也會馬上接手提供服務。

 


圖 3. ArcGIS Server 10.1 多節點佈署方案範例 [註1]

 

而在這個架構機制的背後,每一個站台 (Site) 都需要有一個秘密基地放置站台共用的檔案,並且凡是加入站台的節點的服務帳戶都必須有權限來存取,其內容主要包含兩大類:

  1. 組態儲存區 (Configuration Store):放置 ArcGIS Server 站台、節點、安全性與資料來源註冊資訊等重要的設定檔案,採用 JSON 格式儲存。
  2. 伺服器目錄區 (Server Directories):儲存快取地圖 (Cache)、地理處理工作暫存檔 (Job)、服務輸出暫存檔 (Output)、系統資訊檔案 (System)。

 


圖 4. Server Directories 目錄設定畫面

 

<top>

 

 運用叢集(Cluster)作為邏輯單位,有效平衡資源運用

 

在上述之多節點佈署情境中,ArcGIS Server 節點可再分類群組成一種邏輯單元,叫做叢集 (Cluster),而每一個叢集可以依設定來執行某些特定組合的服務,如下圖 5,一個站台 (Site) 中共有三個 ArcGIS Server 節點,管理者建立了兩個叢集:叢集A僅含一個節點,專門執行處理時間較短的地圖服務 (Map Service),而叢集B則擁有兩個節點的運算能力,處理較為耗費資源的地理處理服務 (Geoprocessing Service),透過這樣的方式,即使是重量級的地理處理服務已經將資源用光,也不會導致多數使用者需要瀏覽查詢的地圖服務因等待資源分派而中斷服務。

 


圖 5. ArcGIS Server10.1 服務叢集 (Cluster) 範例畫面

 

叢集機制讓管理者可以平衡、隔離、指派資源給特定的服務使用,而更能夠有效的運用資源。10.1 版在安裝完畢完成站台設定後,預設會自動建立一個叫做「default」的服務叢集 (Cluster),管理者可以透過管理介面線上直接設定叢集與節點,而發布者在進行服務發布流程工作時,則可指派服務使用的叢集資源。(如圖 6、圖 7)

 


圖 6. 叢集 (Cluster) 管理設定畫面

 


圖 7. 發布服務時設定叢集畫面

 


 關於通訊埠 
 
ArcGIS Server預設會運用到以下幾個通訊埠,因此要記得設定防火牆打開這些通訊埠以避免被擋住而無法運作。

 

  • HTTP port 6080:預設ArcGIS Server提供各種服務通訊使用。
  • HTTPS port 6443:如果啟用SSL則預設通訊採用6443。
  • Ports 4000-4003:在多節點佈署情境時,各節點之間溝通會使用這四個通訊埠。
  • Ports 4004以上:叢集(Cluster)使用,預設叢集會使用4004,之後每建立一個新的叢集就會往上增加一個埠號。

 

 

<top>

 

 運用 Web Adapter 強化架構安全性

 

在多節點佈署環境中 (如圖 3),每一台 GIS Server 都有一個內建的網站伺服器以預設 6080Port 來提供服務,然而每一台節點的主機名稱不同, 因此我們可以運用 10.1 新版提供的 ArcGIS Web Adapter 作為整個站台 GIS Server Site 對外提供服務的集中入口存取點,並可以使用標準的 HTTP (S) 通訊埠來提供服務,除此以外使用 Web Adapter 可以增強整體架構之安全性,其優點如下:

 


圖 8. ArcGIS Web Adapter 增強架構安全性

 

  1. 可隱藏 ArcGIS Server 預設通訊端口 6080 與 /arcgis/ 網站目錄,外部連接僅能由標準 HTTP (s) 通訊埠存取服務,例如以下轉換範例:
    原始服務URL:http://ags101a:6080/arcgis/rest/services
    經轉換後URL:http://ags101a:80/hello/rest/services 
  2. 可隔離外部使用者直接存取管理站台或目錄,而內部管理者仍可以連線至內建站台進行管理。Web Adapter預設不允許讓外部連線可以存取 ArcGIS Server 之管理目錄包含如下 URL 範例:
    Server Manger:http://ags101a:6080/arcgis/manager
    Administrator Directory:http://ags101a:6080/arcgis/admin
  3. 可阻擋一般使用者用 ArcGIS for Desktop 軟體建立管理者或發布者連線。
  4. 安裝在 IIS 上時可結合 Microsoft Active Directory 進行整合式的 Windows 認證。

基於上述優點,在正式的運作環境中,即使您僅安裝一台 ArcGIS Server 仍強烈建議您安裝 Web Adapter 來增強整體安全性。

 


圖 9. ArcGIS Web Adapter 管理設定畫面

 

<top>

 

 更成熟完善的安全性機制

 

新版的 ArcGIS Server 在安全性上提供多種控管機制,確保服務可正常安全的運作:

1. 新型態的角色與權限:在新版中有 4 種類型的使用角色

(1)超級使用者 (Primary Site Administrator Account):一個站台只有一位,為最高權限者,請注意請不要和ArcGIS Server Account (服務帳號) 混淆。
(2)管理者 (Administrator):系統管理者可以進行各種站台、節點等全面性之管理任務。
(3)發布者 (Publisher):服務發布者,可建立服務,刪除服務或製作快取地圖等服務相關之管理工作。
(4)使用者 (User):僅能依照服務的授權設定來使用服務。

 


圖 10. ArcGIS Server 管理介面群組設定畫面

 

2.多元化組合的認證授權方式:主要提供以下四種認證方法

(1)ArcGIS Server 內建 (Built-in)
(2)整合 LDAP 伺服器
(3)整合 Windows AD 伺服器
(4)用戶自訂型

內建認證方式為安裝 ArcGIS Server 的預設方式,設定上較為簡單,由 ArcGIS Server 儲存管理與進行使用者認證授權,而 (2) ~ (3) 則可整合企業內部既有之安全性控管機制 (LDAP、AD Server或其他),提供較高等級的安全性。

 

<top>

 

 開放 Administrator API,可自動化執行管理任務!

 

除了繼承自前版 ArcGIS Server 在伺服器端提供了 ArcGIS Server REST API 與 SOAP Web Service 讓開發者可以存取伺服器端的服務外,Esri 在 10.1 版本額外提供了一組特別的「Administrator API」,這個 API 使用 RESTful 架構,開發者可以使用例如 Python, Java, JavaScript, PowerShell, C#, Ruby, Perl 等程式語言呼叫 Web Service 來進行各種伺服器管理任務,管理者可以透過程式化 Script 來自動化執行管理工作,包含管理站台 (Site)、節點 (Machine)、叢集 (Cluster)、資料來源 (Data)、安全性 (Security)、各式服務發布與狀態監控 (Service)、日誌紀錄 (Log) 等等各種管理工作。

如果您有興趣進一步了解,可在伺服器安裝完畢後,使用瀏覽器連線到 http://{hostname}:6080/arcgis/admin 查看 Administrator API Reference 提供那些功能。(如圖 11)
 


圖 11. ArcGIS Server 10.1 Administrator Directory 畫面

 

<top>

 

 總結

 

綜整本次新版架構上的功能特色配合 Administrator API 的開放,新版的 ArcGIS Server10.1 在架構上具備以下優勢:

  1. 透過擴充節點 (Machine) 加入叢集 (Cluster) 邏輯單位的方式,可快速提供 GIS 運算的共享資源池 (Pool),只要基礎架構上的硬體資源足夠,可隨意快速的擴展或縮減。
  2. 2.運用 Administrator API,可實現自動化資源管理,更可進一步開發管理介面,使用者可依其需求進行自助式資源調配,或者可量測資源使用狀況進行成本核算,支援發展雲端平台所需之特性功能。
  3. ArcGIS Server 採用公開標準化的網路服務架構與通訊方式與,並提供各種用戶端 (包含 Web、Desktop、Mobile) 應用程式開發工具,可廣泛的支援提供多元化的網路用戶端存取。

基於以上之架構優勢,對於希望發展 GIS 私有雲端平台之大型組織或是需要具備快速容錯備援機制的中小型企業,ArcGIS Server 都會是您最佳的選擇。

 

<top>

 

 

互動國際‧技術服務處‧聞臻真