發表于 2004年10月30日 1:27 PM?,當然現在感受不一樣了,但還是保持原味吧.

搬家自http://blog.csdn.net/zkjbeyond/?比較老的內容了

幸在arcims mapxtreme兩大平臺上做過開發,談談個人感受

?? 拋開arcgis9 的 arcgis Server.先說arcIms開發。(以Image Services為例,ArcMap Image Services我估計在arcgis9中,著重在arcGIS Server體現)

??? arcIms的核心是AcrXML,也可以說是圍繞著ArcXML進行的開發,如果熟悉了ArcXML,估計關于arcIms的開發就掌握了60%. 象htmlview,javaconnect,Activex等各種連接,只是對ArcXML的一個封裝。

? ArcIMS服務器,其實相當于一個webservice.我們輸入一定格式的參數,他處理后就返回相應的結果。而這個格式就是ArcXML。(其實 ArcXML還是ims的配置文件,由author生成。)ARCXML包括內容豐富,還在不斷增強。 我們常用的請求為Using GET_IMAGE and IMAGE with Image Services,Using GET_FEATURES and FEATURES 分別得到圖象和屬性值。
?
???? 對于我們二次開發來說,我們只是不斷的組合請求的ArcXML,得到我們想要的結果。然后顯示這些結果。 我把這個開發過程分為 GIS業務應用 和 WEB編程。 比如:北京工交網: 其實就是組合了幾個ARCXML ,然后顯示出來。IT公司WEB編程肯定沒問題,所以現在GIS行業焦點在如何最大的挖掘需求,挖掘行業應用。如何把行業需求用GIS軟件提供的功能表達 出來。(難?。。┳髁藘赡闓IS,做的基本都是放大,縮小。業務上,在中國政府機構,公司很難提出什么應用來。(急需一些標準)。估計以后是個方向。(我 要有錢,專門做GIS應用行業標準
?
?? 我較喜歡htmlview, 用他可以作出很漂亮的界面(有段時間我認為做GIS和做美工性質一樣)。很多工作在客戶端。但安全性低,都用javascript實現。至于 javaConnect等,更符合OOP,但是1、因為webGIS系統有很多狀態,比如地圖的比例,活動層的選擇等要保持,要保持這些狀態,必須把這些 放到緩沖中,那對于大用戶量來說,性能是個大問題。2、javaconnect和mapxtreme很類似, 改變地圖要刷新MAP對象,把MAP對象放到SESSION中。(急劇影響性能,訪問量大了) 所以狀態要保持,對web服務器也是個挑戰。對很酷的地圖操作也是個挑戰。3、個人覺得javaconnector類庫的設計好象不是面向開發人員的,完 全以地理分類的概念分組,打包。(package??Map對象應該分成幾個對象,弄的太復雜了,對不同的請求,有些屬性是空的。)
現在我正在研究用javaconnector開發高性能ims webGIS)

在ArcGIS9 中,ESRI公司有了新的webGIS編程模型,地理分析可以在web上實現(當然IMS還有),主要針對J2ee 和 .Net平臺。 新內容有 1、由arcgis?? Server管理AO對象 2、可以遠程調用這些AO對象3、有個ArcObject Develop FrameWork(ADF) 和 運行時,支持J2ee,.net平臺,可以開發webgis.4、webservice,EJB支持
看了一下 文檔,焦點在對象的遠程調用 和 對象狀態的保持 兩方面。 第一點,性能問題,沒用過,但估計懸, 但AO對象強大的功能通過遠程對象訪問搬到web上來了,值得期待。 第二點:對象狀態保持, 和mapxtreme一樣,有對象池了概念。和EJB的有狀態bean 無狀態Bean類似。和有狀態Bean一樣,對象狀態保持問題好象解決的不好。但gis大多為有狀態對象。麻煩啊。狀態保持方案 好象有? shallowly stateful application 和 deeply stateful Web application。需要很大的編程技巧。 個人感覺,.net在這開發還好。J2ee的JSF不知道什么時候能成熟啊。