作者:Flyingis
本文嚴禁擅自轉載或用于商業目的,如有需要請事先聯系作者:dev.vip#gmail.com
ArcGIS Server是一個發布企業級GIS應用程序的綜合平臺,如果想對ArcGIS Server基礎有更多的了解,可以先看看《ArcGIS Server 體系結構》、ESRI(中國)BBS論壇和ESRI網站。這里及接下來的一系列文章將主要介紹ArcGIS Server開發相關的內容(如不加說明,后文中Server專指ArcGIS Server),由淺入深,充分利用Server的資源來構建我們的企業級應用,同時也可以了解Server的優勢及不足,在實際應用中揚長避短。
進行Server開發之前,我們首先需要了解Server開發的整體架構。下圖(截取自官方文檔)可以看到,Server提供了一系列的應用開發途徑,從 1到4難度逐步增加,當然功能和可定制性也越來越強,我們可以充分利用Server提供的這些資源來構建我們的應用。

Web應用開發
Server為Web應用開發提供了一系列的開發方式,在visual studio 2005中可以直接使用Web Mapping Application template建立應用,它包含了Web ADF框架,是學習Server開發的入口。對照上面的示意圖,可以這樣來理解,如果想使用各種Web控件加上少量代碼來構建Web應用,可以直接使用第一種途徑,這樣的應用比較死板,讓人感覺有點想搭積木,程序員可能沒有任何成就感,好處是開發迅速,適合入門學習或做個簡單的Server演示。如果想在 Common API基礎上,使用各種通用的functionality,通過各種data source類型來定制Web ADF,可以使用第二種開發途徑。如果想使用Common API,并且需要通過Common API調用specific API來定制Web ADF,可以通過第三種途徑來開發。Web應用不能使用第四種途徑。
Web Service開發
Web Service是什么不用再介紹,ArcGIS提供了兩種類型的Web Service創建方法:GIS Web Service和Application Web Service。
GIS Web Service提供了一種將ArcGIS Server Object(Local data source)發布為ArcGIS Server Web Service(Internet data source)的ESRI標準,GIS Web Service不用于開發,通常它們是用來發布信息和提供資源,ArcMap就可以直接使用GIS Web Service的資源而不用進行任何開發,另外Web ADF控件和Common API也可以使用GIS Web Service資源。因為GIS Web Service基于標準web service,它可以作為傳統web service來使用,ArcGIS Server提供了SOAP API進行相關的開發,以后的學習中會使用到。
Application Web Service是基于標準web service建立的應用,使用一種ESRI的data source進行開發。因為web service沒有用戶接口,上圖中途徑一不適合這樣的應用,途徑四是最適合的,因為web service可充分利用ESRI提供的各種data source specific API的所有functionality。
桌面客戶端應用開發
ESRI在桌面客戶端應用中提供了兩種實現GIS功能和服務的方法:ArcGIS Engine和data source specific developer APIs,上圖中只有第四種途徑可用于桌面客戶端應用。
ArcEngine不論是和本地GIS資源交互,還是使用遠程數據資源,都擁有豐富的控件和眾多API,但它在使用和分發之前必須進行授權注冊,而任何data source specific developer APIs都可以在桌面客戶端應用中編程使用。
移動應用開發
移動應用和Web應用、web services比較類似,但它們是為某一個特定的客戶端環境而設計,如PocketPC。Mobile ADF是為移動應用定制的開發框架,通常使用途徑四來進行開發,這樣可以充分利用ArcGIS Server Web services和SOAP API提供的功能。