閆世浩 陳 科
(中國電建集團昆明勘測設計研究院有限公司,云南 昆明 650041)
地理信息是地理數據所蘊含和表達的地理含義,也是與地理環境要素有關的如物質的數量、質量、性質和規律的數字、文字和圖像等的總稱,它至今已有了幾十年的發展,無論是在對它的理論研究上還是在產品的開發和應用上都有著十分顯著的成績。傳統的地理信息系統都有著許多的不足之處,比如說:系統是相對獨立的;進行互相操作的能力比較差;在應用模式上不夠的靈活等等。
傳統地理信息系統在很大程度上影響著地理信息系統的網絡化應用,想要彌補這些傳統地理信息的缺點,就要讓在網絡環境之下的地理信息能夠進行集成應用,從而滿足人們對地理信息的需求,也因此提出了地理信息服務的思想和策略。為了能夠在網絡環境下獲得較為優秀的地理信息服務,就要通過一個良好的軟件架構來管理地理數據、開發服務模塊以及集成服務的交互和應用等等,而較為理想的軟件架構的模型就是SOA,它可以讓地理信息軟件由原來的“系統和功能”轉變成為“服務和應用”。
SOA架構是一種為了能夠起到服務作用而編制出的一種布局,是一個零件組合在一起的模型,它可以將應用程序中那些不同的性能的單位聯系到一起,主要是靠把各種各樣的服務連接在一起的插口還有一些協定。在這之中,把各種服務連接到一起的插口在界說的時候所選擇的方法處在中立的地位的,它應該自立于完成服務的硬件平臺、操作系統和編程語言,那些服務即被建立在系統之中的服務可以進行相互替換,比如說進行統一或是互相通用。
SOA這種為起到服務作用的布局已經不是一個新穎的事物了,它可以說是一種較為古板的用來代替那些面向對象模型模型,在建立一個單獨的服務時,基于SOA架構的系統并不會把用于面向對象的設計排除在外,可是從整體上來看,在進行建立時所用的設計是面向服務的,因為它在建立服務時還思量到了系統之中的對象,所以說盡管SOA架構是基于對象的,但是當我們從整體上來看時SOA所面向的就不是對象了,其中不同之處就是那些將服務連接在一起的插口本身了。
如今的SOA架構已經產生了巨大的變化,它更經常地依靠一些較為嶄新的發展,這些發展都是將能夠拓展和標識的語言作為基礎的,也就是指包含于標準的、通用的標記語言,通過運用靠著XML的語言來描述連接各種服務的插口,服務會被轉到更具動態和更加靈活的連接各種服務的插口系統之中,已經完全不是之前的CORBA之中的連接各種服務的插口描述語言能夠比得上的了。
想要把這種為了服務所編制的布局建立起來,所需要的就不僅僅只是對服務進行敘述了,而是要明白整個應用程序是怎么樣在服務之中進行它的工作流,并且必須要找到各種操作之間的轉換點,也就是指對業務所進行的操作以及對在業務之中運用到的軟件的操作業務的操作。由此可見,SOA架構可以把業務之中的有關商業的流程以及它們所運用的技術流程聯系起來,并且它還能把商業流程和技術流程這兩者之間的關系反映出來。比如說,商業流程是給供應商付款的操作,而技術流程則是對零件數據庫進行更新,由此可見,工作流在SOA的設計中占據著十分重要的地位。
SOA架構有著五個鮮明的特征。第一個就是能夠進行重復的使用,指的就是在建立起一個服務之后能夠把這個服務用在許多個應用以及業務的流程之中;第二個特征是基于消息的系統,請求服務的人到提供服務的人綁定以及服務之間應該是基于消息的系統,也就是松耦合,所以請求服務的人并不需要了解提供服務的人是如何實現的,也就是技術的細節如程序語言等等;第三個就是必須要有明確的連接各種服務的插口,在服務進行相互替換中必須要明確定義,Web服務描述語言是用來描述請求服務的人的要求綁定到提供服務的人的詳情,WSDL,也就是Web服務描述語言中并不包括用服務來實現任何的技術細節,請求服務的人并不明白同意所需要服務究竟是通過哪一種程序設計語言來進行編寫的,對此他們也不關心;第四個特征是對于服務設計并沒有狀態,服務應當是一種自力的、能夠自我包含的請求,在實現服務的過程之中,它并不需要獲取由這個自力的請求帶另一個自力的請求的那種信息或者說是狀態,它并不對其他服務的上下文以及狀態有所依賴,在產生依賴的時候,它們可以定義成為一種模型,例如函數或者是數據的模型等等;最后一個特征就是SOA架構是在開放標準的基礎之上的,目前要實現SOA架構,就要用Web服務的形式來實現。
其實,在SOA架構的基礎上來構建城市地理信息的服務平臺最主要的就是充分地運用那些分布式的網絡環境以及計算機的技術,當然還有通訊技術,用Web服務的方式來提供各種各樣的地理信息服務比如說地圖服務和數據服務等,每一個專業用戶在這個平臺上都能夠在所提供服務的基礎上建立起自己的行業應用。基于SOA的城市地理信息服務平臺能夠采用多種方式,比如說把數據以及服務集中到一起、區分對數據的存儲以及將所提供的服務集中寄來等等。
對于城市的地理信息而言,所具有的一個比較重要的特點就是分布式,一些較為基本的地理信息包含了水系,植被和地貌等等,這些地理信息主要是集中在測繪主管部門,而剩余的那些其它的專業信息如水文,環境以及規劃等則是讓不一樣的部門進行管理和使用的,由此可見,基于SOA的城市地理信息服務平臺想要實現,就可以分布式地進行存儲和發布數據,對服務進行集中地管理,通過服務來共享數據。整個SOA的系統所運用的方式就是是把主節點以及分支節點互相連接在一起,其中有著數據的各個部門或是單位就是分節點,而主節點則是服務管理中心,分節點能夠分別對自己的數據進行存儲和維護,并且通過Web服務的方式來進行數據的使用,主節點進行注冊指的就是所發布的Web服務到管理中心,在這之中主節點則是負責限制以及控制對服務訪問,提供用戶服務的調用。對于那些注冊的用戶,倘若需要就可以查詢自己所需要的服務,只要登錄上中心節點即可,并且能夠調用Web服務來得到自己想要的一些地理信息,還有地圖以及公共平臺所提供的其它功能,然后把自己的應用系統建立起來,慢慢完成在行業中的應用。
在SOA架構的基礎上構建的城市地理信息服務平臺系統的結構是由兩部分組成的:中心節點和分支節點。中心節點就是地理信息公共服務平臺的管理中心,負責進行維護的是有著一定技術力量的單位,它能夠完成地圖服務的注冊、管理、查詢等等,而且它可以提供一些服務如相關各個行業的服務,所用的方式就是Web服務,比如說對服務進行分析等等。基于SOA的城市地理信息服務平臺的分支節點就是數據存儲中心,倘若各個行業的數據管理單位想要將數據進行共享,就可以建立起分節點,并且需要時常對該節點進行維護以及數據的更新,分支節點的功能則比較簡單,其中最主要的功能就是整理或是符號化本單位的專題數據,并且通過如WMS等以OGC制定的服務包的形式來發布,從而能夠讓其它專業以及非專業的用戶使用地圖服務。
在目前,地理信息系統正在向地理信息服務迅速發展,它需要解決在網絡環境下地理信息共享、互操作以及集成應用的問題,滿足地理信息大眾化和社會化的需求。而SOA就是一種較為理想、適合的面向服務的軟件架構模型,它能夠根據需要來對應用組件進行分布式地部署、組合以及使用,能夠十分有效地支撐起地理信息服務的開發和應用。
[1]肖建華.羅名海.《論城市地理信息公共服務平臺建設中的若干問題》.2006.3