ervice),通過(guò)服務(wù)間定義良好的接口和契約(contract)聯(lián)系起來(lái)。接口采用中立的方式定義,獨(dú)立于具體實(shí)現(xiàn)服務(wù)的硬件平臺(tái)、操作系統(tǒng)和編程語(yǔ)言,使得構(gòu)建在這樣的系統(tǒng)中的服務(wù)可以使用統(tǒng)一和標(biāo)準(zhǔn)的方式進(jìn)行通信。這種具有中立的接口定義(沒(méi)有強(qiáng)制綁定到特定的實(shí)現(xiàn)上)的特征稱為服務(wù)之間的松耦合。
從這個(gè)定義中,我們看到下面兩點(diǎn):
·軟件系統(tǒng)架構(gòu): SOA不是一種語(yǔ)言,也不是一種具體的技術(shù),更不是一種產(chǎn)品,而是一種軟件系統(tǒng)架構(gòu),它嘗試給出在特定環(huán)境下推薦采用的一種架構(gòu),從這個(gè)角度上來(lái)說(shuō),它其實(shí)更像一種架構(gòu)模式(Pattern),是一種理念架構(gòu),是人們面向應(yīng)用服務(wù)的解決方案框架。
·服務(wù)(service)是整個(gè)SOA實(shí)現(xiàn)的核心。SOA架構(gòu)的基本元素是服務(wù),SOA 指定一組實(shí)體(服務(wù)提供者、服務(wù)消費(fèi)者、服務(wù)注冊(cè)表、服務(wù)條款、服務(wù)代理和服務(wù)契約),這些實(shí)體詳細(xì)說(shuō)明了如何提供和消費(fèi)服務(wù)。遵循 SOA 觀點(diǎn)的系統(tǒng)必須要有服務(wù),這些服務(wù)是可互操作的、獨(dú)立的、模塊化的、位置明確的、松耦合的并且可以通過(guò)網(wǎng)絡(luò)查找其地址。
2.SOA三種角色的關(guān)系
服務(wù)是一個(gè)自包含的、無(wú)狀態(tài)(stateless)的實(shí)體,可以由多個(gè)組件組成。它通過(guò)事先定義的界面響應(yīng)服務(wù)請(qǐng)求。它也可以執(zhí)行諸如編輯和處理事務(wù)(transaction)等離散性任務(wù)。服務(wù)本身并不依賴于其他函數(shù)和過(guò)程的狀態(tài)。用什么技術(shù)實(shí)現(xiàn)服務(wù),并不在其定義中加以限制。
服務(wù)提供者(service provider)提供符合契約(contract)的服務(wù),并將它們發(fā)布到服務(wù)代理。 服務(wù)請(qǐng)求者(service consumer)也叫服務(wù)使用者,它發(fā)現(xiàn)并調(diào)用其他的軟件服務(wù)來(lái)提供商業(yè)解決方案。從概念上來(lái)說(shuō),SOA 本質(zhì)上是將網(wǎng)絡(luò)、傳輸協(xié)議和安全細(xì)節(jié)留給特定的實(shí)現(xiàn)來(lái)處理。服務(wù)請(qǐng)求者通常稱為客戶端,但是,也可以是終端用戶應(yīng)用程序或別的服務(wù)。
服務(wù)代理者(service broker)作為儲(chǔ)存庫(kù)、電話黃頁(yè)或票據(jù)交換所,產(chǎn)生由服務(wù)提供者發(fā)布的軟件接口。
這三種 SOA 參與者:服務(wù)提供者、服務(wù)代理者以及服務(wù)請(qǐng)求者通過(guò) 3 個(gè)基本操作:發(fā)布(publish)、查找(find)、綁定(bind)相互作用。服務(wù)提供者向服務(wù)代理者發(fā)布服務(wù)。服務(wù)請(qǐng)求者通過(guò)服務(wù)代理者查找所需的服務(wù),并綁定到這些服務(wù)上。服務(wù)提供者和服務(wù)請(qǐng)求者之間可以交互。 所謂服務(wù)的無(wú)狀態(tài),是指服務(wù)不依賴于任何事先設(shè)定的條件,是狀態(tài)無(wú)關(guān)的(state-free)。在SOA架構(gòu)中,一個(gè)服務(wù)不會(huì)依賴于其他服務(wù)的狀態(tài)。它們從客戶端接受服務(wù)請(qǐng)求。因?yàn)榉?wù)是無(wú)狀態(tài)的,它們可以被編排(orchestrated)和序列化(sequenced)成多個(gè)序列 (有時(shí)還采用流水線機(jī)制) ,以執(zhí)行商業(yè)邏輯。編排指的是序列化服務(wù)并提供數(shù)據(jù)處理邏輯。但不包括數(shù)據(jù)的展現(xiàn)功能。 3.SOA特征
基于上面討論,我們給出SOA的下面一些特征:
·服務(wù)的封裝(encapsulation)。將服務(wù)封裝成用于業(yè)務(wù)流程的可重用組件的應(yīng)用程序函數(shù)。它提供信息或簡(jiǎn)化業(yè)務(wù)數(shù)據(jù)從一個(gè)有效的、一致的狀態(tài)向另一個(gè)狀態(tài)的轉(zhuǎn)變。封裝隱藏了復(fù)雜性。服務(wù)的API保持不變,使得用戶遠(yuǎn)離具體實(shí)施上的變更。
·服務(wù)的重用(reuse)。服務(wù)的可重用性設(shè)計(jì)顯著地降低了成本。為了實(shí)現(xiàn)可重用性,服務(wù)只工作在特定處理過(guò)程的上下文(context)中,獨(dú)立于底層實(shí)現(xiàn)和客戶需求的變更。
·服務(wù)的互操作(interoperability)?;ゲ僮鞑⒉皇且粋€(gè)新概念。在CORBA、DCOM、web&n
項(xiàng)目經(jīng)理勝任力免費(fèi)測(cè)評(píng)PMQ上線啦!快來(lái)測(cè)測(cè)你排多少名吧~
http://m.opto-elec.com.cn/pmqhd/index.html