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

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