1、?arcims的體系結(jié)構(gòu)?
?
??
當(dāng)你安裝完arcims軟件以后,已經(jīng)包括了上圖中的ArcIMS應(yīng)用服務(wù)器,ArcIMS空間服務(wù)器兩個(gè)中間件。當(dāng)然還有Monitor,
Tasker;工具軟件admin,author;各種連接器servlet,javaconnector的代碼等。
?? 大家可以看到,arcXML在應(yīng)用服務(wù)器和空間服務(wù)器之間傳遞。所以空間服務(wù)器是這些中間件中壓力最大的。
?? 表現(xiàn)層:html,applet,ocx控件。也可以是c/s的任何桌面程序。
?? 業(yè)務(wù)邏輯層:arcims的應(yīng)用服務(wù)器和空間服務(wù)器是arcims軟件自帶的。
Arcims
的servlet連接器必須與web服務(wù)器(iis,tomcat…)綁定。而javaconnector支持http,tcp-ip等多種協(xié)議。可選擇
的與web服務(wù)器綁定,但ims的admin軟件必須有web服務(wù)器才能運(yùn)行,另外arcims中的圖片也是個(gè)url,也需要web服務(wù)器。所以web服
務(wù)器是各種連接器的容器。
?? 數(shù)據(jù)存儲(chǔ)層:arcims支持的文件,或arcsde空間數(shù)據(jù)引擎等。
Arcims應(yīng)用服務(wù)器:管理虛擬服務(wù)器,地圖服務(wù)(admin配置的),連接器請(qǐng)求線程管理等。連接器調(diào)用它,它在調(diào)用空間服務(wù)器。一個(gè)應(yīng)用服務(wù)器可以連接多個(gè)空間服務(wù)器。
Arcims
空間服務(wù)器:把矢量書(shū)生成圖片,或做空間分析,查詢等。Arcims的核心。還好我們不要關(guān)注具體算法等。開(kāi)源gis,mapxtreme,super
map等也就這部分沒(méi)arcims強(qiáng)。但空間服務(wù)器與別的組件的協(xié)議是arcxml。雖然arcxml規(guī)范比較全面,但這個(gè)高度的松散偶合也給
arcims的復(fù)雜開(kāi)發(fā)帶來(lái)些局限性。以后我會(huì)提到。
2、?arcXml的重要性
因?yàn)楦憔幊痰娜瞬皇堑乩韺W(xué)專家、矢量數(shù)據(jù)結(jié)構(gòu)專家、圖象技術(shù)專家。至少不能共同關(guān)注這好些技術(shù)。所以arcXml規(guī)范的定義是極其重要的。也可以讓外行人開(kāi)發(fā)專業(yè)的程序。這叫好比VML.SVG標(biāo)簽語(yǔ)言一樣,如果你不懂?dāng)?shù)學(xué)算法,不可能畫(huà)一個(gè)橢圓。
以前我也說(shuō)過(guò),如果你掌握了arcxml,那你就基本知道arcims能做什么,能實(shí)現(xiàn)什么功能。至于做的好壞,那看你的行業(yè)知識(shí)、編程能力了。
3、?Introduction to ArcXML
上面說(shuō)了一堆廢話,現(xiàn)在看看arcXML到底是什么。
ArcXML
是為了與arcIMS空間服務(wù)器通信而定義的協(xié)議。而arcIMS空間服務(wù)器是arcims的核心,它把地圖和數(shù)據(jù)打包成適當(dāng)?shù)母袷剑l(fā)送到它的客戶端
(arcIMS應(yīng)用服務(wù)器)。要懂a(chǎn)rcxml,首先必須知道怎么樣配置文件,建立arcims服務(wù),請(qǐng)求和響應(yīng),以及怎么與空間服務(wù)器結(jié)合。
?
1、?建立一個(gè)axl為擴(kuò)展名的配置文件。(xml格式)
2、?用 ArcIMS Administrator 建立并啟動(dòng) ArcIMS Service
3、?接受請(qǐng)求
4、?響應(yīng)請(qǐng)求
4、?arcims核心(ArcIMS Spatial)
? arcIMS 空間服務(wù)器是arcims的核心。Arcims軟件也可以分布式部署ArcIMS Spatial.關(guān)于詳細(xì)部署可以看arcims安裝文檔。有時(shí)間我寫(xiě)篇專門講講。如果是正版軟件,你可以讓esri公司來(lái)干這個(gè)事。
(1)?傳輸時(shí)間:接器的選擇會(huì)影響
(2)?排隊(duì)時(shí)間:以多建立虛擬服務(wù)器來(lái)解決。
(3)?渲染時(shí)間:比較費(fèi)事,可以分布式部署空間服務(wù)器來(lái)解決)
(4)?查詢時(shí)間:數(shù)據(jù)庫(kù)調(diào)優(yōu),arcsde調(diào)優(yōu)。(有時(shí)間再討論)
5、?servletconnector與javaconnector的區(qū)別
arcims開(kāi)發(fā)經(jīng)驗(yàn)總結(jié)
arcIMS 客戶端 連接器的選擇
以前文章我也簡(jiǎn)單說(shuō)了說(shuō)。
用圖表來(lái)分析。
Servletconnector:
?
上
圖表示了servlet連接器的結(jié)構(gòu)。注意,用這種連接器,把從arcims返回的arcxml直接傳遞給了瀏覽器,瀏覽器用字符串拆分技術(shù)或dom技術(shù)
來(lái)解析這個(gè)復(fù)雜的xml串。(還好htmlview的模板提供了這些代碼,不過(guò)用javascript拆分字符串,沒(méi)用dom標(biāo)準(zhǔn))
??? 每次請(qǐng)求的arcxml字符串是很大的,arcxml包含的有些信息對(duì)用戶是沒(méi)用的,所以在web服務(wù)器與瀏覽器之間,浪費(fèi)了許多帶寬,對(duì)于二次開(kāi)發(fā)人員,難度也加大不少。
javaconnector:
?
使用javascnnector ,瀏覽器與web服務(wù)器之間傳輸?shù)膮f(xié)議由二次開(kāi)發(fā)人員定義,這可能會(huì)加大編程難度,但隨著ajax技術(shù)的成熟,開(kāi)源框架dwr,json等的完善,這部分工作會(huì)越來(lái)越簡(jiǎn)單。
但javaconnector
引來(lái)一個(gè)問(wèn)題,它的Map
java對(duì)象不是線程安全的,而這個(gè)對(duì)象的初始化比較費(fèi)時(shí)間。它和jdbc中的數(shù)據(jù)庫(kù)連接差不多。針對(duì)這個(gè)對(duì)象寫(xiě)了個(gè)Map池,從我們項(xiàng)目運(yùn)行的情況看,
效果還不錯(cuò)。如果用javaconnector,對(duì)java編程需要一定的基礎(chǔ)。
6、?業(yè)務(wù)的復(fù)雜度決定我們應(yīng)該用哪種連接器
如
果你只是想簡(jiǎn)單的發(fā)布地圖,htmlview就可以滿足你的需求。如果有復(fù)雜的業(yè)務(wù),gisporal定制,權(quán)限管理,那你用htmlview會(huì)讓你面臨
災(zāi)難。我選擇javaconnector. Using_ActiveX_Connector, Using_NETLink也有文檔。
但你要做大型,高性能的webgis,j2ee必定是受選,unix,arcims在j2ee的積累,arcims很多程序使用java實(shí)現(xiàn)的。(另外
arcinfo最早是在unix命令行形式運(yùn)行的)。
A、?java語(yǔ)言比javascript高級(jí)多了。Htmlview大多數(shù)用javascritp實(shí)現(xiàn)。
B、?跨瀏覽器的支持。噩夢(mèng)吧。
C、?ajax技術(shù)的成熟,客戶端與服務(wù)器端交互容易多了。
D、?webgis無(wú)刷新更新數(shù)據(jù)是必須的,那必須下載足夠多的數(shù)據(jù)。安全性是個(gè)問(wèn)題。
E、?權(quán)限判斷,業(yè)務(wù)定制等用javascript實(shí)現(xiàn)簡(jiǎn)直是噩夢(mèng)。
???
7、?webgis開(kāi)發(fā)人員的感想
開(kāi)
發(fā)webgis系統(tǒng),對(duì)程序員的要求太高了,可是工資水平一直很低,行業(yè)極其不成熟,國(guó)內(nèi)也沒(méi)什么發(fā)展前途,讓我好多次有想法轉(zhuǎn)行專門做j2ee去,但還
是堅(jiān)持下來(lái)了。國(guó)內(nèi)這幫搞gis的都是學(xué)院派出生,相對(duì)編程能力,計(jì)算機(jī)應(yīng)用水平比較差,對(duì)it行業(yè)市場(chǎng)把握能力也較差,被別人搶的先機(jī)。現(xiàn)在以
google牽頭各大搜索引擎都提供的 地圖服務(wù),另外國(guó)內(nèi) edushi等又有一批仿三維的地圖服務(wù)出現(xiàn),讓我看到一思希望。做傳統(tǒng)gis
的公司該收復(fù)失地的,畢竟我們是有優(yōu)勢(shì)的。
參考:
arcxmlguide.htm
arcims性能優(yōu)化和調(diào)整? 許曉輝
如果有時(shí)間可以到http://www.gisempire.com/bbs/index.asp?boardid=23去溜達(dá)溜達(dá),那里有很多朋友需要幫助。呵呵。
另外在gis帝國(guó)你也可以了解很多GIS的現(xiàn)狀。
許曉輝現(xiàn)在應(yīng)該是高手了,呵呵。很懷念2003年的時(shí)候一起研究ArcIMS3.1的那段時(shí)間。
以后ArcIMS需要多向你請(qǐng)教。
我感覺(jué)我開(kāi)始入門了
我安裝的ArcIMS里面的JAVAview等自帶的范例 沒(méi)有 請(qǐng)問(wèn)是什么原因啊??
是安裝那出了問(wèn)題嗎?
請(qǐng)幫幫我 急啊
如果有ArcIMS實(shí)驗(yàn)教程的資料幫幫忙發(fā)點(diǎn)我或介紹哈
小弟 畢業(yè)設(shè)計(jì)做的是基于ArcIMS 信息發(fā)布系統(tǒng)55555