采用开源方案的优势--从搭建WebGIS系统说起
【幾個月前寫的,原發(fā)于newsmth.net,現(xiàn)轉(zhuǎn)到我的blog】
去年做了一個方案,SuperMap + Sqlserver 2000,配置都配置了好幾天,還去SuperMap公司培訓(xùn)了兩天,搭建的Demo還有問題。后來就把這項(xiàng)需求給去掉了(要花錢買軟件,還有開發(fā)成本,實(shí)際用途也不大)
最近又做一個類似的方案,這次的指導(dǎo)思想是盡量用開源實(shí)現(xiàn)。調(diào)研了兩天,確定下幾個成熟的GIS開源軟件,Geotools,GeoServer,不過都是用Java寫的,GeoTools甚至有8年多的歷史了。.net下的開源GIS還很爛。心想就改用Java吧,于是惡補(bǔ)Java,搭建環(huán)境,第二天搭建好了。先是搭建Tomcat+GeoTools+PostgreSql/postgis,運(yùn)行成功c/s的Demo,心想應(yīng)該b/s的Demo也沒太大的區(qū)別,于是鉆進(jìn)Geotools API里面狂翻。最后琢磨答案應(yīng)該在GeoServer里面。一陣研究發(fā)現(xiàn),GeoServer把GeoTools包裝起來了,提供web map的web service,即WMS(一項(xiàng)opengis 規(guī)范)。數(shù)據(jù)源也狂容易配置。心中大喜。這樣一來又可以用習(xí)慣的c#進(jìn)行開發(fā)了。于是架構(gòu)出來了:數(shù)據(jù)庫用postgresql/postgis,免費(fèi),且對GIS支持特別好。GIS中間層用GeoServer,提供WMS服務(wù)。應(yīng)用層開發(fā)一個控件,對WMS服務(wù)進(jìn)行包裝,一切都OK了。唯一的開發(fā)工作就是開發(fā)一個操作地圖的Web控件。所采用的一切東東如果采用商業(yè)軟件,可能需要幾萬到幾十萬元。很重要的是GIS系統(tǒng)往往一次訪問的計算量很大,所以可以考慮采用一大堆爛機(jī)器來個Cluster,這時如果用商業(yè)軟件,嘿嘿......。另一個提高性能的方法是對地圖對象做緩存,這個技術(shù)上很復(fù)雜。開源的話,可以很方便的根據(jù)自己的需求定制緩存策略。商業(yè)軟件辦不到。
感想:
1,采用開源軟件可省錢。這只是開源的一個優(yōu)勢,開源還有其它優(yōu)勢,這些優(yōu)勢有時甚至比免費(fèi)更重要。
2,在某些情況下開源軟件的學(xué)習(xí)成本要低于商業(yè)軟件。這里前提是某些情況。開源軟件中的垃圾很多,優(yōu)秀的也不少。這些優(yōu)秀的軟件一般都秉承一個主要的原則,就是KISS(keep it simple, stupid)。理解這一點(diǎn)了,開源軟件學(xué)期來就很簡單了。比如上面的Geotools,它主要干的事情就是進(jìn)行通用的GIS運(yùn)算。GeoServer干的事情就是把GIS數(shù)據(jù)源包裝成WebService,按照規(guī)范發(fā)布。postgis就是存儲GIS數(shù)據(jù)。很簡單。而商業(yè)軟件一般集成了非常多的很少用到的功能,學(xué)起來難以抓住重點(diǎn),學(xué)習(xí)成本可能更高。開源軟件實(shí)在高不定就可以刨代碼。
3,視野要開闊。.net的經(jīng)常看看java那邊有什么東東,看看怎么能夠利用上,能夠削減成本,提高效率。
4,開源軟件的可定制性。適當(dāng)采用開源軟件可以使架構(gòu)柔性化。以偶這個事為例。難點(diǎn)在于提高性能(還沒看到幾個Web-GIS性能好的)。有很很多種方案可選擇。第一,可以搞一堆爛機(jī)器,每個上跑一個postgresql/postgis + apache + geoserver ,采用負(fù)載均衡 ,這樣要花錢,主要是硬件的錢。第二,可以將緩存放在數(shù)據(jù)庫和geoserver之間(可能已經(jīng)有開源實(shí)現(xiàn)了)。第三,可以修改geoserver,加上我喜歡的緩存機(jī)制。第四,可以將緩存放在.net 那邊。架構(gòu)非常靈活。
5,在設(shè)計.net方案的時候考慮開源軟件,有時能夠獲得意想不到的好處。
總結(jié)
以上是生活随笔為你收集整理的采用开源方案的优势--从搭建WebGIS系统说起的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: [转]关于父亲的故事
- 下一篇: 《高新技术企业知识产权管理》阅读笔记