SOA是一種面向服務(wù)的軟件系統(tǒng)架構(gòu)而非某種技術(shù),它是在傳統(tǒng)的業(yè)務(wù)層與數(shù)據(jù)層之間添加一個獨(dú)立的服務(wù)層。在服務(wù)層中,SOA將不同的功能單元稱為服務(wù),并通過對這些服務(wù)之間定義良好接口的方式將它們聯(lián)系起來,從而可以根據(jù) *** 和應(yīng)用對系統(tǒng)耦合粒度的要求進(jìn)行分布式部署、組合和應(yīng)用。SOA服務(wù)的提供者與服務(wù)的使用者并不一定在一臺計算機(jī)上。SOA的接口定義是語言和平臺中立的,它可以獨(dú)立于實(shí)現(xiàn)服務(wù)的軟硬件平臺和編程語言,這就使得在不同的服務(wù)器、操作系統(tǒng)和應(yīng)用系統(tǒng)中,可以通過一種統(tǒng)一通用的方式進(jìn)行交互。
在SOA中,服務(wù)是最關(guān)鍵的概念,它是一個黑盒封裝的可執(zhí)行原子,提供的功能只能通過已經(jīng)發(fā)布的接口進(jìn)行訪問。此外,服務(wù)還可以通過聚合的方式,構(gòu)成粒度更大的服務(wù)。SOA模型中存在三種基本角色,即服務(wù)的提供者、服務(wù)注冊目錄和服務(wù)的消費(fèi)者,它們通過發(fā)布、査找和調(diào)用實(shí)現(xiàn)相互聯(lián)系。
服務(wù)提供者是被訪問服務(wù)的運(yùn)行平臺,它是一個可以通過 *** 被訪問到的實(shí)體對象,接受來自服務(wù)消費(fèi)者的請求,并根據(jù)請求攜帶的參數(shù),向服務(wù)消費(fèi)者提供服務(wù)。服務(wù)消費(fèi)者是需要使用特定功能的用戶,它可以是在任意硬件設(shè)備上的服務(wù)請求者,如計箅機(jī)、平板電腦、智能手機(jī)等。但在SOA中,服務(wù)提供者與服務(wù)消費(fèi)者并不是直連的,它們之間需要服務(wù)注冊目錄作為中介,當(dāng)服務(wù)提供者建立一個服務(wù)后,將服務(wù)發(fā)布到注冊目錄中,而服務(wù)的消費(fèi)者通過査找目錄,來獲取服務(wù)描述,從而與服務(wù)提供者進(jìn)行綁定并發(fā)送請求,以獲取所需要的功能或數(shù)據(jù)。因此,SOA在本質(zhì)上又被稱為“服務(wù)的 *** ”。
Web服務(wù)的實(shí)現(xiàn)技術(shù)主要有兩種,即簡單對象訪問協(xié)議和表示性狀態(tài)轉(zhuǎn)換,它們均有各自的適應(yīng)范圍。例如,對應(yīng)用的可靠性和安全性要求較高,且服務(wù)的提供者與消費(fèi)者之間的信息交換格式要一致,并且應(yīng)用是有狀態(tài)的,可以使用SOAP;如果希望服務(wù)能被任何瀏覽器支持和更好地使用異步 JavaScript和XML(asynchronousJavaScriptandXML,AJAX)對象,需要完全無狀態(tài)的操作(這種操作往往只需要一步執(zhí)行),可以選擇REST。目前已有不少WebGIS軟件能夠完全支持兩種不同的Web服務(wù)實(shí)現(xiàn)技術(shù),可實(shí)現(xiàn)不同規(guī)模的GIS應(yīng)用,尤其是目前流行的基于富客戶端的mashup應(yīng)用,通過REST服務(wù)是一種很好的選擇。

添加微信好友, 獲取更多信息
復(fù)制微信號
基于SOA,許多GIS廠商和開源聯(lián)盟早已發(fā)布了多款不同應(yīng)用 規(guī)模的GIS服務(wù)器產(chǎn)品以構(gòu)建WebGIS應(yīng)用,這些GIS服務(wù)器都是通過GIS服務(wù)的方式,向客戶端發(fā)布基于Web服務(wù)的GIS數(shù)據(jù)和GIS功能等服務(wù)。在SOA中的Service GIS主要由三部分組成,即數(shù)據(jù)層、服務(wù)層和客戶層。數(shù)據(jù)層主要由各種關(guān)系型數(shù)據(jù)庫管理系統(tǒng)存儲的空間數(shù)據(jù)和文件型空間數(shù)據(jù)組成,雖然目前關(guān)系數(shù)據(jù)庫幾乎可以存儲所有的空間數(shù)據(jù)(包括地理元數(shù)據(jù)和地理語義數(shù)據(jù)),但仍然存在直接使用文件型數(shù)據(jù)的可能性(如影像數(shù)據(jù)、三維模型數(shù)據(jù)等)。
服務(wù)層主要由GIS服務(wù)器和Web服務(wù)器組成,GIS服務(wù)器負(fù)責(zé)訪問GIS層中的數(shù)據(jù)以提供各種動態(tài)的GIS服務(wù),并通過Web服務(wù)器將服務(wù)內(nèi)容反饋給客戶層。為了提高WebGIS應(yīng)用的訪問速度,目前較為流行的是通過專門的地圖切片工具,將那些更新頻率較低的地圖,以一定比例尺和圖片尺寸切割為靜態(tài)的地圖圖片文件(jpg或png等),這些圖片由于名稱固定,可以在客戶端、網(wǎng)關(guān)、 *** 服務(wù)器上形成緩存數(shù)據(jù),從而達(dá)到訪問數(shù)量越多訪問速度越快的效果。這些數(shù)據(jù)可以存放在專門的瓦片服務(wù)器上,通過Web服務(wù)器進(jìn)行訪問。
SOA中的客戶端是多種多樣的,在硬件上,可以是個人計算機(jī)、平板電腦或智能手機(jī)等設(shè)備,也可以是各種嵌人式設(shè)備;在軟件上,可以是通過JavaScript、Flex或SilverLight等富互聯(lián)網(wǎng)應(yīng)用技術(shù)構(gòu)成的富客戶端應(yīng)用,也可以是服務(wù)器端客戶端或傳統(tǒng)組件式客戶端(COM或.NET代碼編寫)。服務(wù)器端與客戶端之間是完全獨(dú)立的,服務(wù)器端的任何變化,只要服務(wù)接口沒有發(fā)生變化,客戶端就無須為此重新編寫代碼。
總體而言,基于SOA的Service GIS類型應(yīng)用,為客戶端提供了豐富的、功能強(qiáng)大的、松散耦合的GIS功能,提高了GIS訪問的速度和性能,降低了進(jìn)入GIS的門檻,使GIS發(fā)展到了一個新的高度。
來源:開源地理空間基金會中文分會
來源鏈接:https://www.osgeo.cn/post/14507
本站聲明:網(wǎng)站內(nèi)容來源于 *** ,如有侵權(quán),請聯(lián)系我們,我們將及時處理。