SOA是一種面向服務的軟件系統架構而非某種技術,它是在傳統的業務層與數據層之間添加一個獨立的服務層。在服務層中,SOA將不同的功能單元稱為服務,并通過對這些服務之間定義良好接口的方式將它們聯系起來,從而可以根據 *** 和應用對系統耦合粒度的要求進行分布式部署、組合和應用。SOA服務的提供者與服務的使用者并不一定在一臺計算機上。SOA的接口定義是語言和平臺中立的,它可以獨立于實現服務的軟硬件平臺和編程語言,這就使得在不同的服務器、操作系統和應用系統中,可以通過一種統一通用的方式進行交互。
在SOA中,服務是最關鍵的概念,它是一個黑盒封裝的可執行原子,提供的功能只能通過已經發布的接口進行訪問。此外,服務還可以通過聚合的方式,構成粒度更大的服務。SOA模型中存在三種基本角色,即服務的提供者、服務注冊目錄和服務的消費者,它們通過發布、査找和調用實現相互聯系。
服務提供者是被訪問服務的運行平臺,它是一個可以通過 *** 被訪問到的實體對象,接受來自服務消費者的請求,并根據請求攜帶的參數,向服務消費者提供服務。服務消費者是需要使用特定功能的用戶,它可以是在任意硬件設備上的服務請求者,如計箅機、平板電腦、智能手機等。但在SOA中,服務提供者與服務消費者并不是直連的,它們之間需要服務注冊目錄作為中介,當服務提供者建立一個服務后,將服務發布到注冊目錄中,而服務的消費者通過査找目錄,來獲取服務描述,從而與服務提供者進行綁定并發送請求,以獲取所需要的功能或數據。因此,SOA在本質上又被稱為“服務的 *** ”。
Web服務的實現技術主要有兩種,即簡單對象訪問協議和表示性狀態轉換,它們均有各自的適應范圍。例如,對應用的可靠性和安全性要求較高,且服務的提供者與消費者之間的信息交換格式要一致,并且應用是有狀態的,可以使用SOAP;如果希望服務能被任何瀏覽器支持和更好地使用異步 JavaScript和XML(asynchronousJavaScriptandXML,AJAX)對象,需要完全無狀態的操作(這種操作往往只需要一步執行),可以選擇REST。目前已有不少WebGIS軟件能夠完全支持兩種不同的Web服務實現技術,可實現不同規模的GIS應用,尤其是目前流行的基于富客戶端的mashup應用,通過REST服務是一種很好的選擇。
添加微信好友, 獲取更多信息
復制微信號
基于SOA,許多GIS廠商和開源聯盟早已發布了多款不同應用 規模的GIS服務器產品以構建WebGIS應用,這些GIS服務器都是通過GIS服務的方式,向客戶端發布基于Web服務的GIS數據和GIS功能等服務。在SOA中的Service GIS主要由三部分組成,即數據層、服務層和客戶層。數據層主要由各種關系型數據庫管理系統存儲的空間數據和文件型空間數據組成,雖然目前關系數據庫幾乎可以存儲所有的空間數據(包括地理元數據和地理語義數據),但仍然存在直接使用文件型數據的可能性(如影像數據、三維模型數據等)。
服務層主要由GIS服務器和Web服務器組成,GIS服務器負責訪問GIS層中的數據以提供各種動態的GIS服務,并通過Web服務器將服務內容反饋給客戶層。為了提高WebGIS應用的訪問速度,目前較為流行的是通過專門的地圖切片工具,將那些更新頻率較低的地圖,以一定比例尺和圖片尺寸切割為靜態的地圖圖片文件(jpg或png等),這些圖片由于名稱固定,可以在客戶端、網關、 *** 服務器上形成緩存數據,從而達到訪問數量越多訪問速度越快的效果。這些數據可以存放在專門的瓦片服務器上,通過Web服務器進行訪問。
SOA中的客戶端是多種多樣的,在硬件上,可以是個人計算機、平板電腦或智能手機等設備,也可以是各種嵌人式設備;在軟件上,可以是通過JavaScript、Flex或SilverLight等富互聯網應用技術構成的富客戶端應用,也可以是服務器端客戶端或傳統組件式客戶端(COM或.NET代碼編寫)。服務器端與客戶端之間是完全獨立的,服務器端的任何變化,只要服務接口沒有發生變化,客戶端就無須為此重新編寫代碼。
總體而言,基于SOA的Service GIS類型應用,為客戶端提供了豐富的、功能強大的、松散耦合的GIS功能,提高了GIS訪問的速度和性能,降低了進入GIS的門檻,使GIS發展到了一個新的高度。
來源:開源地理空間基金會中文分會
來源鏈接:https://www.osgeo.cn/post/14507
本站聲明:網站內容來源于 *** ,如有侵權,請聯系我們,我們將及時處理。