版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡介
1、 PAGE 31 -面向服務(wù)的架構(gòu)(SOA)是一種組織信息處理的方法。各系統(tǒng)為協(xié)同工作在各方面達(dá)成了協(xié)議,SOA通過減少這些協(xié)議的數(shù)量,能夠降低信息系統(tǒng)互操作性的成本。如果SOA能得到大范圍的應(yīng)用,系統(tǒng)將呈現(xiàn)與現(xiàn)在截然不同的前景,這就好比當(dāng)今貨運(yùn)行業(yè)有別于集裝箱出現(xiàn)前的貨運(yùn)業(yè)時(shí)代一般。然而,目前的應(yīng)用方式卻導(dǎo)致了額外的開支卻并未體現(xiàn)出這些互操作性的優(yōu)勢(shì)。將適用于數(shù)據(jù)庫時(shí)代的范式應(yīng)用于SOA中,會(huì)招致反效果,往往是愚蠢的,有時(shí)甚至是十分危險(xiǎn)的設(shè)計(jì)。這些模式必須由新的思想和行為方式所替代,以確保SOA朝著接口更簡單、IT方案更優(yōu)化以及項(xiàng)目更可控的方向發(fā)展。這一點(diǎn)可以通過遵守以下十大戒條來實(shí)現(xiàn)。引言
2、:SOA的的潛在影響面向服務(wù)的架構(gòu)構(gòu)(SOA)是一種組織織信息處理的的方法。這種種方法以服務(wù)務(wù)的形式描述述所有交互活活動(dòng),服務(wù)請(qǐng)請(qǐng)求者請(qǐng)求代代理完成某些些處理,代理理確保處理得得以完成并將將處理結(jié)果反反饋給服務(wù)請(qǐng)請(qǐng)求者。這種種思維方式可可以應(yīng)用于業(yè)業(yè)務(wù)級(jí)別,以以描述各組織織機(jī)構(gòu)之間的的交互;應(yīng)用用于功能級(jí)別別,以描述組組成業(yè)務(wù)流程程的活動(dòng)的交交互方式;應(yīng)應(yīng)用到信息系系統(tǒng)級(jí)別,以以描述系統(tǒng)及及系統(tǒng)各部分分的交互方式式。每個(gè)級(jí)別別的準(zhǔn)則都是是相同的:代代理完成所需需工作的方式式與請(qǐng)求者無無關(guān),乃至與與是否完全自自動(dòng)、完全人人工亦或兩者者兼具都無關(guān)關(guān)系。哪怕代代理將部分或或者甚至全部部工作外包給給其
3、他代理完完成也與請(qǐng)求求者無關(guān)。所所有請(qǐng)求者所所需關(guān)注的是是與代理就以以下方面達(dá)成成一致:請(qǐng)求求及響應(yīng)應(yīng)該該如何制定,以以及服務(wù)的效效果如何。SOA被大肆宣宣揚(yáng)為一種具具有巨大潛力力的范式,能能夠降低系統(tǒng)統(tǒng)發(fā)展、測(cè)試試及維護(hù)的成成本。特別需需要指出的是是,SOA承承諾可以通過過大幅度減少少達(dá)成協(xié)議的的因素的數(shù)量量,從而降低低信息系統(tǒng)各各模塊協(xié)同工工作的成本。采采用SOA,諸諸如像計(jì)算平平臺(tái)和數(shù)據(jù)格格式之間的差差別造成的系系統(tǒng)間通信屏屏障會(huì)較采用用早期的范式式要少得多。這這使得更大范范圍上的協(xié)作作變得可能,因因?yàn)樗鼫p少了了障礙,使系系統(tǒng)設(shè)計(jì)師們們不必被強(qiáng)行行要求相互達(dá)達(dá)成一致,就就此而言,也也使得
4、系統(tǒng)配配置員之間不不必被強(qiáng)行要要求達(dá)成一致致。如果這種種承諾可以實(shí)實(shí)現(xiàn),其結(jié)果果將會(huì)是革命命性的。就像像汽車改變了了城市區(qū)域形形態(tài),集裝箱箱運(yùn)輸革新了了貨運(yùn)行業(yè),以以及交易費(fèi)用用的降低發(fā)展展了現(xiàn)代自由由市場(chǎng)經(jīng)濟(jì),SSOA將開啟啟新的合作模模式。當(dāng)SOOA主導(dǎo)我們們應(yīng)用IT的的方式,系統(tǒng)統(tǒng)前景將與今今日迥然不同同,好比圍繞繞汽車來設(shè)計(jì)計(jì)規(guī)劃的城市市和圍繞火車車來設(shè)計(jì)規(guī)劃劃的城市截然然不同一般。對(duì)對(duì)我們之中那那些思維受限限于目前技術(shù)術(shù)的人來說,SSOA可以產(chǎn)產(chǎn)生多大的不不同是難以想想象的。然而而SOA所提提供的靈活性性優(yōu)勢(shì)就好比比汽車勝過火火車一樣:即即便火車可以以被制造跑得得和汽車一樣樣快,火車
5、還還是絕不可能能像汽車那樣樣提供門到門門的運(yùn)輸服務(wù)務(wù)。把火車站站安置在每個(gè)個(gè)車道的盡頭頭,亦或甚至至把鐵軌鋪設(shè)設(shè)在每條道路路上都是根本本不現(xiàn)實(shí)的。為何此影響尚未未實(shí)現(xiàn)為獲取新范式帶帶來的好處,我我們必須好好好利用其所能能提供的各種種新的可能性性。遺憾的是是,目前圍繞繞SOA的言言過其實(shí)的宣宣傳對(duì)這些可可能性的提及及是言之甚少少。大部分討討論似乎都關(guān)關(guān)注于如何利利用SOA幫幫助單獨(dú)信息息系統(tǒng)更快速速地開發(fā)。然然而,這并非非SOA所能能創(chuàng)造的最大大價(jià)值之處。事事實(shí)上,SOOA是否真正正能夠改進(jìn)以以往的方法,即即各個(gè)功能點(diǎn)點(diǎn)通過某一共共同的數(shù)據(jù)池池(通常是以以數(shù)據(jù)庫的方方式實(shí)現(xiàn))來來實(shí)現(xiàn)交互,還還存
6、在爭(zhēng)議。使使用SOA來來構(gòu)建單獨(dú)、孤孤立的信息系系統(tǒng)就像使用用集裝箱在加加工廠附近搬搬運(yùn)貨物一樣樣:當(dāng)然,它它限定了內(nèi)部部物流的順序序和組織,但但是集裝箱更更多的是擋了了道路而非提提供幫助。SSOA使信息息系統(tǒng)間達(dá)到到更好的互操操作性,就像像集裝箱促使使了運(yùn)輸商之之間的互操作作性一樣。那那是一種重要要優(yōu)勢(shì),因?yàn)闉閺男枨蟠_定定到信息系統(tǒng)統(tǒng)可操作之間間的時(shí)間周期期通常很大程程度上是由互互操作性決定定的。要使某某一信息系統(tǒng)統(tǒng)能夠與其操操作環(huán)境中的的其他系統(tǒng)一一起工作,那那將會(huì)花費(fèi)比比重新構(gòu)建這這樣一個(gè)系統(tǒng)統(tǒng)更多的時(shí)間間和精力。關(guān)注于SOA在在信息系統(tǒng)內(nèi)內(nèi)部而非各系系統(tǒng)之間的使使用是情況更更加惡化的征
7、征兆:因?yàn)榭纯雌饋鞸OAA是一種全新新的處理我們們一直以來所所做的事情的的方式,我們們無法直接獲獲取它所帶來來的收益。SSOA概念和和技術(shù)正為目目前的系統(tǒng)開開發(fā)范式所利利用。這些范范式還是數(shù)據(jù)據(jù)庫時(shí)代的開開發(fā)產(chǎn)物,同同時(shí)也帶有數(shù)數(shù)據(jù)庫技術(shù)的的一些限制。在在這些限制下下應(yīng)用SOAA將會(huì)導(dǎo)致額額外的開支,而而不能獲得額額外的收益。然然而,這些“數(shù)據(jù)庫化”的范式是如如此普遍和有有害以至于我我們常常忽略略了它們對(duì)我我們的思維影影響有多大。它它們是如此根根深蒂固,以以至于我們會(huì)會(huì)不自覺將其其視作常理。遺遺憾的是,這這樣通常招致致相反效果,常常常是愚蠢的的,有時(shí)甚至至是相當(dāng)危險(xiǎn)險(xiǎn)的。它們導(dǎo)導(dǎo)致了一種不不好
8、的方案,這這種方案集合合了數(shù)據(jù)庫時(shí)時(shí)代的缺點(diǎn)以以及SOA不不好的一面,而而又不能體現(xiàn)現(xiàn)SOA必定定提供的優(yōu)點(diǎn)點(diǎn)。需要改變什么SOA范式有其其自身的常識(shí)識(shí)守則,較之之?dāng)?shù)據(jù)庫范式式的守則截然然不同?;颈窘渎捎惺?xiàng)項(xiàng)。前五項(xiàng)關(guān)關(guān)于如何簡化化事物,使其其比數(shù)據(jù)庫化化的范式要求求更加簡化從堅(jiān)持要要點(diǎn)意義上更更加簡化。如如果我們以此此種方式簡化化事物,同一一問題的不同同解決方案相相互間協(xié)作的的可能性將大大大提升。接接下來的四項(xiàng)項(xiàng)關(guān)于使ITT解決方案優(yōu)優(yōu)于同等數(shù)據(jù)據(jù)庫解決方案案,這是通過過阻止那些戴戴著有色眼鏡鏡、慣于數(shù)據(jù)據(jù)庫思維方式式的人開發(fā)出出無效解決方方案來實(shí)現(xiàn)的的。最后一項(xiàng)項(xiàng)關(guān)于如何使使IT更可控
9、控,尤其是組組織系統(tǒng)開發(fā)發(fā)以降低項(xiàng)目目復(fù)雜度和風(fēng)風(fēng)險(xiǎn)。SOAA使這些成為為了可能同樣也是必必須的因?yàn)樗屪尭嗟墓δ苣芙桓冻蔀榛A(chǔ)架構(gòu)。簡化之理論在高空雜技表演演中,高效的的合作的基礎(chǔ)礎(chǔ)是每個(gè)空中中飛人演員完完全默契地配配合,對(duì)方會(huì)會(huì)及時(shí)地在每每個(gè)時(shí)點(diǎn)出現(xiàn)現(xiàn)。一些空中中飛人演員非非常自信,他他們經(jīng)常蒙著著眼進(jìn)行表演演。他們能夠夠接到彼此正正因?yàn)樗麄兇_確定在某個(gè)特特定時(shí)刻對(duì)方方只可能出現(xiàn)現(xiàn)在一個(gè)可能能位置。成功應(yīng)用SOAA以達(dá)到最大大化的協(xié)作性性與高空雜技技表演非常相相似?;ゲ僮髯餍砸箨P(guān)于于如何進(jìn)行交交流的解決方方案從數(shù)以百百萬計(jì)減少到到只有一個(gè),交交互雙方都可可以依賴該方方案。這并不不意味
10、著其他他方案有問題題:這好比我我們既可以靠靠左行駛也可可以靠右行駛駛,但重要的的是我們必須須都靠同一邊邊行駛。當(dāng)只有一方執(zhí)行行服務(wù),一方方接受服務(wù)時(shí)時(shí),只要雙方方協(xié)議好,具具體使用哪種種方案其實(shí)并并沒有太大區(qū)區(qū)別。雙方中中任一方的特特異性可以決決定最終方案案,無需做更更多的溝通努努力。畢竟,無無論使用哪種種方案,這些些特異性總要要被處理。但但是如果是多多方請(qǐng)求服務(wù)務(wù)或者多方執(zhí)執(zhí)行服務(wù),那那將呈現(xiàn)不一一樣的情景。此此時(shí)使通信方方案精簡非常常重要,如此此,各方必須須處理各自的的特異性,無無需面對(duì)另一一方。將信息通信與外外科移植手術(shù)術(shù)對(duì)比很能說說明問題。成成功的移植手手術(shù),要將一一個(gè)人身上的的器官移
11、植到到另一個(gè)人身身上,要求該該移植器官必必須在多方面面與接收者匹匹配,而其中中大部分匹配配因素與該器器官的生物功功能無關(guān)。換換句話說,被被移植的器官官必須和接受受者本身有相相同的特征。因因此,我們的的器官不能像像拼搭樂高積積木一樣隨便便被移植。目目前的信息通通信恰恰如此此。當(dāng)一個(gè)信信息系統(tǒng)為另另一個(gè)系統(tǒng)提提供服務(wù)時(shí),它它們必須在很很多方面達(dá)成成一致。它們們必須使用相相同的詞匯(元數(shù)據(jù))、相相同的由一方方調(diào)用而另一一方執(zhí)行的功功能集、對(duì)于于每個(gè)功能請(qǐng)請(qǐng)求應(yīng)答數(shù)據(jù)據(jù)內(nèi)容的相同同期望、相同同的編碼系統(tǒng)統(tǒng)、相同的技技術(shù)通訊協(xié)議議、相同的用用于信息傳遞遞的尋址模式式、兼容的可可預(yù)期的響應(yīng)應(yīng)速率、兼容容的
12、確保消息息不被丟失的的技術(shù)、兼容容的認(rèn)證機(jī)制制以確保雙方方安全通信而而不是與冒名名者通信、兼兼容的加密技技術(shù)以及密鑰鑰管理以確保保消息不被竊竊聽或者篡改改等等。為了了促進(jìn)互操作作性,必須確確保參與各方方從彼此獨(dú)立立制定各自標(biāo)標(biāo)準(zhǔn)變?yōu)樾纬沙杉嫒莸臉?biāo)準(zhǔn)準(zhǔn)規(guī)范。只有有當(dāng)一些非常常嚴(yán)謹(jǐn)?shù)囊?guī)則則得到遵守時(shí)時(shí)這才有實(shí)現(xiàn)現(xiàn)的可能,接接口才能減至至精要。如此此一來特異性性將無容身之之地。嚴(yán)謹(jǐn)?shù)囊?guī)則都關(guān)關(guān)注于如何使使得服務(wù)接口口更為簡單。我我們規(guī)定的越越少,爭(zhēng)議的的余地就越小小。1.不了解你不不需要了解的的你不需要去了解解的東西不會(huì)會(huì)傷害到你SOA范式的本本質(zhì)在于使得得合作各方或或系統(tǒng)之間達(dá)達(dá)成最少限度度的協(xié)議
13、卻可可以實(shí)現(xiàn)最大大程度的合作作。這是一種種巨大的優(yōu)勢(shì)勢(shì),因?yàn)槿魏魏文悴恍枰肆私獾臇|西既既不需要被測(cè)測(cè)試也不需要要被維護(hù)。你你不需要去了了解的東西不不會(huì)傷害到你你。假設(shè)400%的系統(tǒng)開開發(fā)成本用于于測(cè)試上,而而高達(dá)80%的信息系統(tǒng)統(tǒng)生命周期的的成本被花費(fèi)費(fèi)到了系統(tǒng)維維護(hù)階段,任任何SOA范范式讓你無需需了解的東西西都代表了你你能節(jié)省的金金錢。元數(shù)據(jù)你最不需要了解解的就是結(jié)構(gòu)構(gòu)、含義以及及容許值這些元數(shù)據(jù)據(jù)不會(huì)被系系統(tǒng)中篩選、排排序或執(zhí)行計(jì)計(jì)算的邏輯使使用的數(shù)據(jù)。你你并不需要去去了解這些,因因?yàn)镾OA技技術(shù)使得數(shù)據(jù)據(jù)和元數(shù)據(jù)同同時(shí)出現(xiàn)。你你的系統(tǒng)可以以實(shí)時(shí)解讀元元數(shù)據(jù),所以以如果你要做做的僅僅是
14、獲獲取、呈現(xiàn)或或傳送相應(yīng)的的數(shù)據(jù),你完完全不需要為為系統(tǒng)構(gòu)建元元數(shù)據(jù)知識(shí)。在在有相當(dāng)精密密的表示(ppresenntatioon)功能的的幫助下,它它甚至可以為為用戶實(shí)現(xiàn)各各種各樣特定定的篩選及計(jì)計(jì)算,且只使使用與已有數(shù)數(shù)據(jù)同時(shí)提供供的元數(shù)據(jù),而而不是內(nèi)部構(gòu)構(gòu)建元數(shù)據(jù)。通過解讀數(shù)據(jù)相相應(yīng)的元數(shù)據(jù)據(jù),而不是把把元數(shù)據(jù)構(gòu)建建到系統(tǒng)中,你你的系統(tǒng)不需需要隨元數(shù)據(jù)據(jù)的改變而改改變。需要改改變的僅僅是是源系統(tǒng)。想想想如果遵守守該守則,你你能在開發(fā)、測(cè)測(cè)試和維護(hù)上上節(jié)省多少金金錢!記住,在在兩個(gè)系統(tǒng)上上做更改,平平均來說,其其復(fù)雜度是在在單個(gè)系統(tǒng)做做更改的四倍倍,因?yàn)槠渲兄邪怂杏懈鞣降膮f(xié)作作。對(duì)于很
15、多面對(duì)客客戶的系統(tǒng)來來說,表示以以及特定篩選選功能基本是是其主要的功功能。這些系系統(tǒng)只針對(duì)最最基本的客戶戶數(shù)據(jù)要求內(nèi)內(nèi)部構(gòu)建元數(shù)數(shù)據(jù)。這并不不包括當(dāng)前或或過去的訂單單、客戶通訊訊錄、照片、信信函以及任何何可用于展示示的其他數(shù)據(jù)據(jù),所有這些些數(shù)據(jù)都可以以用一種不需需要這些數(shù)據(jù)據(jù)本質(zhì)相關(guān)知知識(shí)的方式進(jìn)進(jìn)行表示,內(nèi)內(nèi)建于系統(tǒng)中中。技術(shù)許多你不需要了了解的事情是是與技術(shù)相關(guān)關(guān)的。有了SSOA,你不不需要了解你你正在接口的的系統(tǒng)是否采采用“軟件即服務(wù)務(wù)”(Softtware-as-asservicce),不需需要了解實(shí)施施該系統(tǒng)的計(jì)計(jì)算機(jī)安放在在何處,是哪哪種類型的計(jì)計(jì)算機(jī)或者運(yùn)運(yùn)行于何種操操作系統(tǒng),防
16、防火墻是如何何配置,使用用的是哪種數(shù)數(shù)據(jù)庫管理系系統(tǒng),亦或可可以使用哪種種交易管理系系統(tǒng)。其他你你不需要了解解的事情是與與你所通信的的系統(tǒng)內(nèi)部相相關(guān)的。尤其其是,你不需需要去了解任任何用于內(nèi)部部數(shù)據(jù)存儲(chǔ)的的元數(shù)據(jù),因因?yàn)槿魏纹渌到y(tǒng)需要同同XSD一致致的轉(zhuǎn)換都是是其自身的問問題,而不是是你的。即便如此,使用用SOA進(jìn)行行通信的各方方必須達(dá)成一一致的技術(shù)相相關(guān)的標(biāo)準(zhǔn)還還有很多選擇擇。特別是有有很多與Weeb服務(wù)相關(guān)關(guān)的那些標(biāo)準(zhǔn)準(zhǔn),SOA從從業(yè)者將其統(tǒng)統(tǒng)稱為WS-*標(biāo)準(zhǔn)(*指可以使用用很多可能的的標(biāo)簽替換)。在一定程程度上,這些些標(biāo)準(zhǔn)提出得得很恰當(dāng),因因?yàn)镾OA社社區(qū)并沒有滿滿足于不去了了解它不
17、需要要了解的東西西;本文這個(gè)個(gè)白皮書給出出了一些指導(dǎo)導(dǎo)以期降低由由這些標(biāo)準(zhǔn)引引起的問題的的影響。遵守守這些指導(dǎo),SSOA需要的的先期協(xié)議將將比其他方法法要少得多。設(shè)計(jì)穩(wěn)定的接口口如果想獲取SOOA提供的種種種好處,不不去了解你不不需要了解的的東西會(huì)成為為你的習(xí)慣。請(qǐng)請(qǐng)銘記這點(diǎn)!比如說,當(dāng)當(dāng)設(shè)計(jì)一個(gè)訂訂貨服務(wù)時(shí),請(qǐng)請(qǐng)記住服務(wù)請(qǐng)請(qǐng)求者只需要要知道,當(dāng)他他需要貨物的的時(shí)候該貨物物是否會(huì)有貨貨,而不需要要去了解當(dāng)前前的庫存量。如如果你的程序序調(diào)用某一安安全服務(wù)以判判斷請(qǐng)求活動(dòng)動(dòng)是否被授權(quán)權(quán),不要在系系統(tǒng)內(nèi)構(gòu)建任任何超過其所所需服務(wù)工作作的知識(shí)。例例如,如果安安全服務(wù)需要要使用輸入到到程序的安全全證書,
18、唯一一必須做的就就是傳遞該證證書!對(duì)你來來說,它們只只是被封裝在在輸入消息中中的單個(gè)數(shù)據(jù)據(jù)項(xiàng)。該證書書是否是格式式完整的XMML也不要去去驗(yàn)證。如果果,由于某些些只有那些負(fù)負(fù)責(zé)安全的小小鬼知道的原原因,他們選選擇了違背標(biāo)標(biāo)準(zhǔn)的SOAA操作或?qū)ψC證書進(jìn)行了加加密,那么這這是他們的問問題,不是你你的。如果他他們改變了任任何與證書相相關(guān)的東西,你你的程序不應(yīng)應(yīng)該為此做任任何改變或調(diào)調(diào)整。任何你你不需要了解解的東西不會(huì)會(huì)傷害到你。當(dāng)當(dāng)然了,除非非你硬要去了了解它,在這這種情況下如如果你們不想想在SOA上上浪費(fèi)時(shí)間的的話,其他人人可能最好離離遠(yuǎn)點(diǎn)兒。不去了解那些你你不需要了解解的東西可能能比你想象的的要
19、難。如果果你開發(fā)專門門用于與你通通信的信息系系統(tǒng)的信息檢檢索服務(wù),你你的思路已經(jīng)經(jīng)不對(duì)了,因因?yàn)槟阋呀?jīng)把把其他系統(tǒng)的的知識(shí)歸并到到系統(tǒng)中了。需需求中的任何何更改將會(huì)迫迫使雙方系統(tǒng)統(tǒng)都作出更改改。通常來講講,比較好的的方式是采用用數(shù)量有限的的檢索服務(wù)暴暴露系統(tǒng)數(shù)據(jù)據(jù),當(dāng)檢索服服務(wù)結(jié)合在一一起使用時(shí),它它們涵蓋了所所有相關(guān)服務(wù)務(wù)的信息檢索索需求。例如如,某個(gè)產(chǎn)品品數(shù)據(jù)庫可能能通過好幾個(gè)個(gè)服務(wù)分別暴暴露出去:一一個(gè)簡單的僅僅包含編碼、描描述、部門以以及產(chǎn)品定價(jià)價(jià)的服務(wù)、一一個(gè)暴露出所所有該產(chǎn)品財(cái)財(cái)務(wù)方面信息息的服務(wù),以以及一個(gè)暴露露出所有該產(chǎn)產(chǎn)品物流方面面信息的服務(wù)務(wù)。許多系統(tǒng)統(tǒng)僅需簡單服服務(wù)即可得
20、到到滿足,大部部分只需要部部分?jǐn)?shù)據(jù)而非非全部,或財(cái)財(cái)務(wù)或物流的的服務(wù),而有有一些兩者都都需要,但此此外沒有任何何一個(gè)需要特特別接口的系系統(tǒng)。這種工工作方式被稱稱為麥當(dāng)勞方方式:客戶從從標(biāo)準(zhǔn)產(chǎn)品中中搭配出自己己需要的產(chǎn)品品。支持這種種方式并不困困難,因?yàn)椴徊还茉鯓幽愣级夹枰@些服服務(wù)去支持面面向客戶的程程序。你甚至至可以用這種種方式來支持持非常特別的的信息需求,因因?yàn)槟切┎恍栊枰臄?shù)據(jù)可可以在消費(fèi)前前就過濾掉。如如果不想在巨巨無霸漢堡中中放小黃瓜,扔扔掉它就可以以了!這種方方式的基本思思路是提供過過多的信息要要比提供過少少的信息遇到到的問題少,因因?yàn)榻邮辗较迪到y(tǒng)可以很容容易通過程序序過濾掉不需需
21、要的信息,但但是如果缺少少信息那就麻麻煩了。不去了解你不需需要了解的東東西也會(huì)使得得為支持業(yè)務(wù)務(wù)流程所需的的信息交互大大大簡化。在在SOA的范范式中,當(dāng)你你請(qǐng)求另一個(gè)個(gè)代理為你做做一些事,那那就是你所需需要做的全部部。你不需要要為代理提供供可能有助于于完成任務(wù)的的或者是其必必需的額外信信息。在點(diǎn)菜菜時(shí),確保有有用于這道菜菜的原料是廚廚師的職責(zé)。你你說出想要的的東西,然后后就可以靜候候佳音了。反反過來,代理理會(huì)使用信息息檢索服務(wù)來來向你咨詢所所有信息,但但是檢索什么么、何時(shí)檢索索以及從何檢檢索,這些問問題都應(yīng)該由由他來決定,你你無須去了解解,更不用將將該知識(shí)歸并并至你的系統(tǒng)統(tǒng)中。這樣,在在他那一
22、端的的更改幾乎不不需要你這邊邊作出更改。比比如說,如果果他決定停止止維護(hù)對(duì)你數(shù)數(shù)據(jù)的拷貝,你你什么更改都都不需要做。當(dāng)然,不去了解解你不需要了了解的事情確確實(shí)會(huì)導(dǎo)致效效率低下。原原本只需要一一次交換即可可實(shí)現(xiàn)的操作作現(xiàn)在將需要要多個(gè)步驟。麥麥當(dāng)勞方式常常常會(huì)導(dǎo)致原原本一個(gè)服務(wù)務(wù)即可滿足卻卻提供了多個(gè)個(gè)服務(wù)的情況況,另一邊卻卻還在檢索信信息,而這些些信息又常常常是冗余而非非十分必要??偪倳?huì)出現(xiàn)一些些情形,可以以通過好的商商業(yè)意識(shí)來優(yōu)優(yōu)化這些通信信模式。也會(huì)會(huì)有很多場(chǎng)合合你會(huì)想要優(yōu)優(yōu)化用戶接口口,那也只是是因?yàn)楫?dāng)前的的表示設(shè)備并并不擅長提供供給用戶吸引引人的界面。但但是在你優(yōu)化化之前,請(qǐng)考考慮你會(huì)
23、失去去什么樣的靈靈活性。另外外絕不要想去去優(yōu)化那些尚尚未穩(wěn)定的功功能需求。2.不要了解你你還不能了解解的事情為時(shí)過早的規(guī)范范凍結(jié)數(shù)據(jù)庫范式中,一一個(gè)真正的難難題在于:它它要求在你還還未足夠了解解并有能力去去確定數(shù)據(jù)的的具體結(jié)構(gòu)前前,就去做這這件事。因?yàn)闉樗鼈兒鲆暳肆艘粋€(gè)生活中中簡單的事實(shí)實(shí):只有當(dāng)用用戶看到他們們不想看到的的東西時(shí),他他們才知道其其真正想要的的是什么。其工作原理是這這樣:一旦完完成了數(shù)據(jù)結(jié)結(jié)構(gòu)的設(shè)計(jì),任任何后續(xù)修改改都會(huì)引起雜雜亂的數(shù)據(jù)庫庫轉(zhuǎn)換,除此此之外每個(gè)訪訪問該數(shù)據(jù)庫庫的系統(tǒng)也會(huì)會(huì)改變。所有有這些改變必必須都協(xié)調(diào)好好,當(dāng)所有對(duì)對(duì)數(shù)據(jù)庫的操操作都限制在在單個(gè)系統(tǒng)時(shí)時(shí)候,這種
24、協(xié)協(xié)調(diào)是很困難難的,但如果果有多個(gè)系統(tǒng)統(tǒng)都在操作,那那就更難了,尤尤其是:如果果其中有些系系統(tǒng)被不受你你控制的參與與方管理的時(shí)時(shí)候。事實(shí)上上,在系統(tǒng)開開發(fā)階段做這這些更改就已已經(jīng)很成問題題了。其后果果是,數(shù)據(jù)庫庫設(shè)計(jì)早在系系統(tǒng)開發(fā)階段段就被凍結(jié),然然后數(shù)據(jù)分析析師們?cè)偃ソ呓吡π拚@些些設(shè)計(jì)?,F(xiàn)在的問題是數(shù)數(shù)據(jù)分析師們們面臨著不可可能完成的工工作。他們必必須在用戶理理解這個(gè)設(shè)計(jì)計(jì)(且不說贊贊賞這個(gè)設(shè)計(jì)計(jì)實(shí)際應(yīng)用如如何)前就確確定該設(shè)計(jì)。只只有在過了很很久之后系統(tǒng)已經(jīng)構(gòu)構(gòu)建好之后用戶才能能對(duì)該系統(tǒng)有有所體會(huì)并對(duì)對(duì)其是否滿足足自己的需求求作出評(píng)估。如如果此時(shí)發(fā)現(xiàn)現(xiàn)數(shù)據(jù)結(jié)構(gòu)上上有任何大問問題,要想修修
25、復(fù)就太晚了了。SOA原型法你可能會(huì)問:“SOA是怎怎么個(gè)不同尋尋常呢?”說到底,難難道SOA不不像數(shù)據(jù)庫范范式那樣一樣樣需要結(jié)構(gòu)化化數(shù)據(jù)嗎?這這個(gè)問題的簡簡單答案:不不管請(qǐng)求數(shù)據(jù)據(jù)時(shí),被人工工代理處理還還是被自動(dòng)化化系統(tǒng)處理,SSOA都是管管用的,并且且就算數(shù)據(jù)沒沒有被最優(yōu)結(jié)結(jié)構(gòu)化,人們們還是可以解解讀它。比如如說,用戶可可以判斷信件件是否正在被被發(fā)送至另一一個(gè)國家,無無論信件的地地址是用行一一、行二、行行三和行四來來表示的,而而信息系統(tǒng)需需要至少“國家”來作為數(shù)據(jù)據(jù)結(jié)構(gòu)可識(shí)別別的一部分。仔細(xì)回答這個(gè)問問題就包括了了對(duì)SOA原原型法的討論論,這種討論論包括以下幾幾方面:識(shí)別將被構(gòu)建到到系統(tǒng)中的
26、元元數(shù)據(jù)。把它它放在主命名名空間中,用用傳統(tǒng)方式根根據(jù)其結(jié)構(gòu)把把數(shù)據(jù)存儲(chǔ)到到數(shù)據(jù)庫管理理系統(tǒng)(DBBMS)。例例如,用戶信信息,這個(gè)元元數(shù)據(jù)可能由由用戶ID和和用戶名構(gòu)成成。因?yàn)檫@個(gè)個(gè)元數(shù)據(jù)被構(gòu)構(gòu)建到系統(tǒng)中中,所以為了了使用這些字字段而把邏輯輯也構(gòu)建到系系統(tǒng)中是完全全有可能的,比比如通過用戶戶ID檢索記記錄并基于用用戶名排序和和篩選記錄。對(duì)每一條數(shù)據(jù)庫庫記錄,把不不包含在主命命名空間的所所有數(shù)據(jù)放到到一個(gè)單獨(dú)的的XML字符符串中,該字字符串作為一一個(gè)單獨(dú)的字字段添加到數(shù)數(shù)據(jù)庫記錄中中。對(duì)每個(gè)XXML字符串串,構(gòu)建一個(gè)個(gè)二級(jí)命名空空間,開發(fā)XXSD,同時(shí)時(shí)添加一個(gè)單單獨(dú)數(shù)據(jù)項(xiàng)到到主命名空間間。對(duì)
27、用戶記記錄的初步實(shí)實(shí)現(xiàn)來說,這這個(gè)字符串可可能包括地址址行一、行二二、行三和行行四的元數(shù)據(jù)據(jù)。用戶記錄錄本身的XSSD將會(huì)包括括三個(gè)字段的的元數(shù)據(jù):用用戶ID、用用戶名和以XXML字符串串包括的附加加的用戶相關(guān)關(guān)數(shù)據(jù)。附加加用戶數(shù)據(jù)的的XSD包括括每條地址行行的元數(shù)據(jù)。使用基于XSDD的邏輯來為為數(shù)據(jù)庫記錄錄的各相關(guān)層層次獲取及展展示所有數(shù)據(jù)據(jù),這可以通通過給每個(gè)XXML字符串串(包含對(duì)主主記錄的字符符串)增加一一個(gè)標(biāo)準(zhǔn)驗(yàn)證證服務(wù)來實(shí)現(xiàn)現(xiàn)。如有可能能,利用某種種工具來產(chǎn)生生使用XSDD的接口而不不要自己去編編程。該工具具必須使用二二級(jí)XML字字符串所包含含的元數(shù)據(jù)來來將其解包,并并且必須同時(shí)時(shí)
28、使用主、次次兩級(jí)XSDD的邏輯來獲獲取新記錄。其其結(jié)果就是一一個(gè)可運(yùn)行的的原型,用戶戶可用以評(píng)估估預(yù)期使用的的系統(tǒng)。要盡量適應(yīng)和修修改基于XSSD的邏輯以以及驗(yàn)證服務(wù)務(wù)直到用戶對(duì)對(duì)系統(tǒng)滿意為為止。就拿用用戶記錄來說說,一個(gè)新的的針對(duì)字符串串的XSD可可包括以下元元數(shù)據(jù):街道道地址、郵編編、縣市、以以及國家。使使用舊XSDD存儲(chǔ)的數(shù)據(jù)據(jù)仍會(huì)正確顯顯示,所以無無需立即將其其轉(zhuǎn)換。而使使用新XSDD將會(huì)獲取新新的記錄。一旦用戶和你確確信元數(shù)據(jù)已已經(jīng)穩(wěn)定了,那那么請(qǐng)考慮把把數(shù)據(jù)遷移到到傳統(tǒng)的數(shù)據(jù)據(jù)結(jié)構(gòu)和主命命名空間。當(dāng)然,SOA原原型法并不總總是必要的。當(dāng)當(dāng)需求受限于于如此多的不不確定性時(shí),請(qǐng)請(qǐng)使用原
29、型法法,這樣先做做原型然后再再將其穩(wěn)定比比較經(jīng)濟(jì)。但但是請(qǐng)記住這這個(gè)肯定要比比數(shù)據(jù)庫化原原型法要簡單單的多。在數(shù)數(shù)據(jù)庫化的時(shí)時(shí)代,原型法法只是可有可可無,但是在在SOA的時(shí)時(shí)代,它便是是家常便飯。不不要將設(shè)計(jì)細(xì)細(xì)節(jié)固定,除除非你確定它它們是正確的的;就是這么么簡單。3.除了要求的的不要多做產(chǎn)品驅(qū)動(dòng)的服務(wù)務(wù)分解SOA主要的優(yōu)優(yōu)勢(shì)就是它是是一個(gè)能被轉(zhuǎn)轉(zhuǎn)化成技術(shù)的的業(yè)務(wù)概念,不不像數(shù)據(jù)庫世世界里那樣,技技術(shù)概念總想想試圖跟上業(yè)業(yè)務(wù)的步伐。在在SOA中,每每個(gè)服務(wù)必須須明確地增加加價(jià)值,不只只是在抽象意意義層面上,而而更具體地要要針對(duì)那些調(diào)調(diào)用方而言。發(fā)發(fā)生的一切之之所以這樣發(fā)發(fā)生了,是因因?yàn)榉?wù)請(qǐng)求
30、求者要求其如如此。通過不不實(shí)現(xiàn)任何服服務(wù)請(qǐng)求者沒沒有明確要求求的東西,服服務(wù)可以被限限定在它們的的核心功能上上。如果SOOA中所有的的參與者都積積極這樣去做做,那么將會(huì)會(huì)使互操作性性大大增加。SOA中最高層層次的服務(wù)是是業(yè)務(wù)交易:某個(gè)客戶下下了一個(gè)貨物物或服務(wù)的訂訂單除非訂單單被供應(yīng)商拒拒絕否則這就就開始了一個(gè)個(gè)訂單交付。在在SOA范式式中,任何從從接受訂單到到訂單交付之之間所發(fā)生的的都可以也應(yīng)應(yīng)該以服務(wù)的的形式實(shí)現(xiàn)。為為實(shí)現(xiàn)訂單交交付而要求的的每個(gè)中間產(chǎn)產(chǎn)品或狀態(tài),供供應(yīng)商會(huì)要求求某些人或某某些組織機(jī)構(gòu)構(gòu)不一定是是供應(yīng)商內(nèi)部部的組織來執(zhí)行交付付。然后這些些中間服務(wù)自自身又可以分分解成多個(gè)服服
31、務(wù),一直到到增加價(jià)值的的基本組織層層面。層次服務(wù)分解是是SOA范式式中非常重要要的一部分,因因?yàn)樗狗?wù)務(wù)交付通過服服務(wù)水平協(xié)議議的方式管理理。它可以確確保每個(gè)服務(wù)務(wù)都有專人負(fù)負(fù)責(zé),并且服服務(wù)消費(fèi)者們們知道他們會(huì)會(huì)得到什么。通用的中間產(chǎn)品品和通用的服服務(wù)服務(wù)分解都是關(guān)關(guān)于產(chǎn)品的。只只有當(dāng)組成服服務(wù)的那些子子服務(wù)不能立立即執(zhí)行時(shí)流流程才會(huì)出現(xiàn)現(xiàn)。例如,如如果決定是否否接受客戶訂訂單的服務(wù)要要求:先執(zhí)行行判斷訂單價(jià)價(jià)值的子服務(wù)務(wù),再執(zhí)行確確定客戶信用用狀態(tài)的子服服務(wù),那么實(shí)實(shí)現(xiàn)該服務(wù)就就包含了一個(gè)個(gè)流程。每個(gè)個(gè)這樣的流程程只與一個(gè)服服務(wù)相關(guān)。如如果你發(fā)現(xiàn)有有個(gè)流程不僅僅限于單個(gè)這這樣的服務(wù),那那么
32、你很有可可能是忘了把把客戶的初始始需求建模為為服務(wù)了。有可能出現(xiàn)這樣樣的情況,相相同的中間產(chǎn)產(chǎn)品當(dāng)然還有有相同的服務(wù)務(wù)可能會(huì)被被不同的高級(jí)級(jí)別產(chǎn)品需要要。比如,那那些要求明顯顯區(qū)分交付過過程的商品,在在中間產(chǎn)品的的環(huán)節(jié),其中中的差別一般般來說幾乎微微乎其微,中中間產(chǎn)品其實(shí)實(shí)也是由客戶戶來支付為了從客戶戶那里賺取利利潤,我們需需要金額、日日期以及讓我我們可以冠冕冕堂皇地向客客戶要求支付付的條款,實(shí)實(shí)際是什么則則并不用去理理會(huì)。在這種種情況下,正正常的基準(zhǔn)是是如果存在通通用的中間產(chǎn)產(chǎn)品,那么它它應(yīng)該由單個(gè)個(gè)服務(wù)來實(shí)現(xiàn)現(xiàn),而這個(gè)服服務(wù)能夠被多多個(gè)高級(jí)別的的服務(wù)調(diào)用。這種服務(wù)只有結(jié)結(jié)果是重要的的不是開
33、始始因?yàn)槭占瘜?duì)交付服務(wù)務(wù)有用的信息息是服務(wù)本身身的一部分,而而不是請(qǐng)求服服務(wù)源頭的一一部分。需要要注意的是:是否需要單單個(gè)服務(wù)是由由業(yè)務(wù)決定的的,和信息技技術(shù)沒有任何何關(guān)系。如果果不管是現(xiàn)在在還是相關(guān)的的未來,交付付相同的中間間產(chǎn)品都是切切實(shí)有用的,那那么就應(yīng)該有有單個(gè)服務(wù)。除除非在現(xiàn)在或或相關(guān)的未來來有商業(yè)力量量發(fā)揮作用使使中間產(chǎn)品發(fā)發(fā)生結(jié)構(gòu)性分分化,那我們們最好不要為為每組需求分分別提供相應(yīng)應(yīng)服務(wù)。然而而事實(shí)偏偏相相反。在SOOA,事物是是由相同走向向不同,而在在數(shù)據(jù)庫化的的方法中,事事物則是由不不同走向相同同。帶有多種行為的的通用服務(wù)你可能會(huì)問,如如果需要兩種種完全不同的的行為而你只只
34、為其提供一一種服務(wù),這這樣做的意義義何在呢?難難道我們還在在被同樣困擾擾數(shù)據(jù)庫世界界的“一刀切”做法限制?比如,如果果我們出售兩兩種類型的產(chǎn)產(chǎn)品,其中一一種使用固定定價(jià)格而另一一種則根據(jù)某某些復(fù)雜的公公式計(jì)算出變變動(dòng)價(jià)格,為為什么不用兩兩種結(jié)算服務(wù)務(wù),為每種特特定的產(chǎn)品各各訂制一種呢呢?這些問題很好,但但問錯(cuò)了地方方。它們是好好問題,那是是因?yàn)槿魏尾徊荒艹浞謶?yīng)對(duì)對(duì)發(fā)生在問題題域內(nèi)變化的的設(shè)計(jì)方法注注定會(huì)失敗。但但是它們問在在了錯(cuò)誤的地地方,這是因因?yàn)楦鶕?jù)問題題域中的變化化來調(diào)整方案案的靈活性應(yīng)應(yīng)該構(gòu)建到服服務(wù)中,而不不是圍繞著服服務(wù)來構(gòu)建。就就拿結(jié)算服務(wù)務(wù)來說,每次次調(diào)用一種方方法時(shí),它應(yīng)應(yīng)該
35、決定這兩兩種算法應(yīng)該該使用哪一種種。那樣的話話,如果引入入第三種結(jié)算算算法,那么么只有結(jié)算服服務(wù)需要去做做調(diào)整。請(qǐng)注注意這并不意意味著結(jié)算服服務(wù)必須被設(shè)設(shè)計(jì)成某種“萬能”機(jī)器;它同同樣可以很好好地為每個(gè)算算法分別調(diào)用用相應(yīng)的子服服務(wù)。這種選選擇介于多功功能解決方案案和包含不同同組件的框架架之間是一種可可以根據(jù)服務(wù)務(wù)來決定的選選擇,因?yàn)樗恍枰环?wù)請(qǐng)求者知知道。在SOOA中,這種種選擇更常見見,但目前的的做法則常常常導(dǎo)致產(chǎn)生框框架解決方案案,因?yàn)樾枰喙δ芊桨赴傅母杏X在很很大程度上是是由于不能從從那些需要執(zhí)執(zhí)行的信息里里識(shí)別出服務(wù)務(wù)請(qǐng)求造成的的。這種需要要高素質(zhì)專家家來實(shí)現(xiàn)的帶帶有如此多
36、參參數(shù)的以一應(yīng)應(yīng)十的多功能能方案的日子子不會(huì)長久了了。堅(jiān)持要點(diǎn)流程驅(qū)動(dòng)方法也也可以使我們們分清我們是是代表服務(wù)請(qǐng)請(qǐng)求者做事還還是為自己做做事。以服務(wù)務(wù)請(qǐng)求者身份份做的事應(yīng)該該作為服務(wù)的的一部分來執(zhí)執(zhí)行,而其余余的就不應(yīng)該該了。通過這這種區(qū)分,我我們可以讓服服務(wù)盡可能簡簡單,這樣可可以在不需要要改變各式各各樣其他東西西的情況下替替換掉該服務(wù)務(wù)。舉例來說說,我們會(huì)生生產(chǎn)產(chǎn)品來滿滿足外部服務(wù)務(wù)請(qǐng)求,但是是維護(hù)簿記系系統(tǒng)是為了滿滿足我們自己己的需求,而而不是請(qǐng)求者者的。如果要要開發(fā)一項(xiàng)服服務(wù)將客戶訂訂單轉(zhuǎn)變成制制造活動(dòng)及賬賬目簿記,那那么只要我們們實(shí)現(xiàn)一個(gè)新新的簿記系統(tǒng)統(tǒng),我們就要要去修改一次次這個(gè)服
37、務(wù)。這這聽起來似乎乎還不是太糟糟糕,但試想想一下所有事事情都是為我我們自己而做做,那就太糟糟糕了。包含含最新數(shù)據(jù)的的數(shù)據(jù)倉庫的的簿記、日志志、儲(chǔ)存、員員工績效數(shù)據(jù)據(jù)的維護(hù):所所有這些及其其他事情一般般都由系統(tǒng)完完成,這些系系統(tǒng)隨組織機(jī)機(jī)構(gòu)和時(shí)間的的不同而不同同,因此在業(yè)業(yè)務(wù)服務(wù)中包包含這些知識(shí)識(shí)會(huì)降低互操操作性,增加加了用其他系系統(tǒng)來實(shí)現(xiàn)服服務(wù)替換的難難度。我們可可以通過產(chǎn)生生通知的方式式來避免此類類問題,即:如果對(duì)這些些功能很重要要的事情發(fā)生生了,就發(fā)出出通知,然后后它們可以使使用通用服務(wù)務(wù)檢索處理事事件所需的信信息。另一類不應(yīng)作為為服務(wù)一部分分執(zhí)行的業(yè)務(wù)務(wù)活動(dòng)包括那那些一旦服務(wù)務(wù)請(qǐng)求被撤銷
38、銷就無法逆轉(zhuǎn)轉(zhuǎn)的活動(dòng)。通通常來說,這這類活動(dòng)包括括諸如因客戶戶訂貨導(dǎo)致庫庫存量低于補(bǔ)補(bǔ)貨水平從而而需要訂購補(bǔ)補(bǔ)給、注冊(cè)新新用戶以及更更新現(xiàn)有用戶戶信息。這些些活動(dòng)是整個(gè)個(gè)流程中的各各個(gè)步驟,應(yīng)應(yīng)使用單獨(dú)的的服務(wù)一一執(zhí)執(zhí)行。當(dāng)然,這種思維維方式可以與與數(shù)據(jù)庫范式式緊密結(jié)合。但但并不是其所所特有的,因因?yàn)樗cSOOA有關(guān)。結(jié)結(jié)果是,許多多SOA的實(shí)實(shí)現(xiàn)與數(shù)據(jù)庫庫化的思維方方式背道而馳馳,而正是這這種思維方式式激發(fā)了他們們以自下而上上的方式識(shí)別別服務(wù),而非非SOA的自自上而下方式式。在自下而而上方式中,原原本一開始為為某個(gè)問題開開發(fā)的服務(wù)也也可以為其他他問題復(fù)用,這這多虧了設(shè)計(jì)計(jì)它的人對(duì)于于如何更廣
39、泛泛地應(yīng)用做了了認(rèn)真的思考考。SOA中中,在多個(gè)上上下文中使用用某個(gè)服務(wù)是是縝密設(shè)計(jì)的的結(jié)果,而不不是靠直覺,并并且從設(shè)計(jì)之之初就將所有有那些上下文文都考慮了進(jìn)進(jìn)來。說到復(fù)復(fù)用某一服務(wù)務(wù)來交付某一一通用的中間間產(chǎn)品就好比比說重復(fù)使用用前門進(jìn)入房房子,不管那那扇門是通向向客廳、廚房房,還是衛(wèi)生生間。你能想想象廚房設(shè)計(jì)計(jì)師說:“真妙!那家家伙設(shè)計(jì)的室室外通向客廳廳的入口正好好可以被我用用來作為通向向廚房的室外外入口!”嗎?任何談?wù)務(wù)摗皬?fù)用”(如復(fù)用支支付服務(wù))的的人都還沒有有實(shí)現(xiàn)它。請(qǐng)請(qǐng)注意,這并并不是錯(cuò)誤的的,只是有點(diǎn)點(diǎn)奇怪和沒有有什么啟發(fā)性性罷了。服務(wù)遵從業(yè)務(wù)采用SOA方式式思考問題的的一個(gè)結(jié)
40、果就就是SOA會(huì)會(huì)使得服務(wù)依依據(jù)其業(yè)務(wù)意意義而非機(jī)械械的實(shí)現(xiàn)來表表述。例如,名名為增加用戶戶記錄的服務(wù)務(wù)是數(shù)據(jù)庫化化的,而名為為注冊(cè)新用戶戶的服務(wù)就是是SOA的,即即便這兩個(gè)服服務(wù)做的事情情完全一樣。我我們對(duì)服務(wù)的的命名十分重重要,因?yàn)樗嬖V我們是是誰在請(qǐng)求該該服務(wù),以及及為什么他要要請(qǐng)求這項(xiàng)服服務(wù)。在這個(gè)個(gè)特定的例子子中,SOAA自上而下的的方法會(huì)得到到一個(gè)結(jié)論,那那就是業(yè)務(wù)流流程需要一個(gè)個(gè)有效的用戶戶注冊(cè)服務(wù),該該服務(wù)通過修修改現(xiàn)存的注注冊(cè)服務(wù)(如如果有的話)來完成,而而不是重新自自動(dòng)創(chuàng)建一個(gè)個(gè)新的。在SSOA中,這這是用戶注冊(cè)冊(cè)服務(wù)的責(zé)任任,而數(shù)據(jù)庫庫化的方法卻卻會(huì)把這個(gè)責(zé)責(zé)任推到服務(wù)
41、務(wù)請(qǐng)求者身上上。類似地,SSOA注冊(cè)用用戶服務(wù)自身身會(huì)決定用戶戶ID是什么么,而數(shù)據(jù)庫庫化的服務(wù)可可能就會(huì)干脆脆讓服務(wù)請(qǐng)求求者做這個(gè)決決定。匯聚到單個(gè)方案案總的看來,SOOA由上至下下的思維方式式使得很多設(shè)設(shè)計(jì)決策只存存在一個(gè)選項(xiàng)項(xiàng),而數(shù)據(jù)庫庫化的思考者者會(huì)把該選項(xiàng)項(xiàng)僅僅看作眾眾多可選方案案之一。這是是SOA很重重要的一個(gè)優(yōu)優(yōu)勢(shì),考慮到到SOA是以以互操作性為為導(dǎo)向的,而而互操作性要要求我們行車車時(shí)都在同一一邊行駛而不不用去和我們們碰到的每輛輛車去交涉。那那些忽視這點(diǎn)點(diǎn)的人比如通過主主張Web服服務(wù)只是眾多多實(shí)現(xiàn)跨系統(tǒng)統(tǒng)邊界SOAA的一種方式式能夠一直成成功的機(jī)會(huì)和和那些只考慮慮下一步的棋棋手
42、差不多。誠誠然,總是有有比Web服服務(wù)更簡單的的方法去連接接兩個(gè)系統(tǒng),但但是為了讓呼呼叫中心或輸輸出管理設(shè)施施能使用相同同數(shù)據(jù)你會(huì)怎怎么做?為了了確保數(shù)據(jù)倉倉庫能夠在你你把事件從一一個(gè)系統(tǒng)轉(zhuǎn)換換到另一個(gè)系系統(tǒng)時(shí)得到通通知,或者事事件一發(fā)生便便能及時(shí)通知知你的客戶,你你又會(huì)怎么做做呢?在SOOA的世界里里,數(shù)據(jù)和事事件必須在多多個(gè)系統(tǒng)中可可用,而Weeb服務(wù)是能能夠確保在低低投資和低維維護(hù)成本的前前提下達(dá)到這這一效果的最最有效的方法法。存在這一明顯差差異的一個(gè)領(lǐng)領(lǐng)域就是電子子數(shù)據(jù)交換(EDI)。傳傳統(tǒng)的電子數(shù)數(shù)據(jù)交換(EEDI)技術(shù)術(shù)旨在確定組組織之間通信信可能需要的的信息,并為為該信息定義義詞
43、匯。那和和定義某一特特定的信息交交互不是一回回事。比如,你你可以使用相相同的EDII報(bào)文來下訂訂單、查詢其其進(jìn)展以及修修改它。兩個(gè)個(gè)組織想通過過這些規(guī)范進(jìn)進(jìn)行通信必須須坐下來一起起就這一詞匯匯的使用方式式達(dá)成一致。SSOA分離了了這些關(guān)注點(diǎn)點(diǎn):詞匯由命命名空間來處處理,而這些些命名空間可可能會(huì)被多個(gè)個(gè)服務(wù)使用,每每個(gè)服務(wù)有各各自特定的目目的?!癝OA由上至至下方式導(dǎo)致致更具體的結(jié)結(jié)論”的另一領(lǐng)域域是這樣一個(gè)個(gè)問題:是什什么筑起了一一個(gè)編排過的的流程邊界。通通常,這個(gè)問問題會(huì)引起無無休止的爭(zhēng)論論。比如,采采用輸出管理理服務(wù)給客戶戶發(fā)送確認(rèn)信信息是否應(yīng)被被編排為用戶戶流程的一部部分,如果是是的話,
44、它應(yīng)應(yīng)該采用即發(fā)發(fā)即棄(fiire-annd-forrget)的的方式處理還還是應(yīng)該由輸輸出管理服務(wù)務(wù)來報(bào)告動(dòng)作作成功完成?按SOA的的話講,所有有這些東西都都是用戶意圖圖的一部分,因因此都應(yīng)該被被編排的。其其他一些行為為,比如考慮慮到新用戶訂訂單的更新數(shù)數(shù)據(jù)倉庫或者者更新總分類類,很顯然都都不是用戶意意圖的一部分分,不應(yīng)該包包含在流程編編排中,哪怕怕它們是同一一方執(zhí)行的。4.不要自己做做瑣事通用功能業(yè)務(wù)服務(wù)應(yīng)該只只包含特定于于該服務(wù)的那那些功能邏輯輯。它應(yīng)該把把其他功能都都委托出去。那那樣的話,服服務(wù)自身就可可以盡可能簡簡單。這使得得設(shè)計(jì)、測(cè)試試以及替換服服務(wù),如有必必要的話,更更容易。這是
45、是個(gè)基本的數(shù)數(shù)學(xué)知識(shí):新新軟件模塊需需要匹配的因因素越多,那那么同價(jià)位下下的成品軟件件(COTSS)的共性越越少,而且若若恰好有個(gè)方方案可用時(shí)它它也會(huì)更貴。如如果可以將這這些非特定功功能委托給標(biāo)標(biāo)準(zhǔn)服務(wù),那那么就可以降降低需要匹配配的因素個(gè)數(shù)數(shù)。服務(wù)可以代勞的的首要任務(wù)是是瑣事:都是是些“家務(wù)事”而非真正業(yè)業(yè)務(wù)相關(guān)的功功能。這些瑣瑣事天生就是是普遍的,換換句話說完成成這些瑣事的的方式并不是是為支持業(yè)務(wù)務(wù)上下文的服服務(wù)量身定制制的。通用用戶接口當(dāng)你得知信息系系統(tǒng)最不應(yīng)該該做的一大瑣瑣事就是管理理用戶體驗(yàn)時(shí)時(shí)你可能會(huì)覺覺得驚訝。這這是一個(gè)通用用的功能,應(yīng)應(yīng)該盡可能的的采用標(biāo)準(zhǔn)工工具來處理。用用戶體
46、驗(yàn)包括括用戶可以選選擇要執(zhí)行工工作項(xiàng)的工作作列表,工作作項(xiàng)執(zhí)行的工工具比如通過過啟動(dòng)一個(gè)用用戶界面(如如果有的話)來關(guān)閉已完完成的工作項(xiàng)項(xiàng)。它包含了了用戶有可能能執(zhí)行的交易易甄選,輸入入信息屏幕的的表示一般是從從XSD生成成以及使用用和交易相對(duì)對(duì)應(yīng)的標(biāo)準(zhǔn)驗(yàn)驗(yàn)證服務(wù)進(jìn)行行驗(yàn)證。它包包括了保持當(dāng)當(dāng)前用戶上下下文環(huán)境,這這樣他就無需需再次輸入當(dāng)當(dāng)前的客戶、產(chǎn)產(chǎn)品、項(xiàng)目、流流程實(shí)例或者者其他任何東東西,而是可可以使用這些些默認(rèn)值或者者在必要時(shí)候候重寫它們。它它包括了和當(dāng)當(dāng)前用戶上下下文環(huán)境相關(guān)關(guān)的所有文檔檔的介紹。它它包含了用戶戶可能需要作作出響應(yīng)的提提示對(duì)話框。所有這些東西都都可以使用無無需包含任何
47、何業(yè)務(wù)知識(shí)的的工具實(shí)現(xiàn)??偪偟膩碚f,給給用戶提供一一個(gè)統(tǒng)一、包包含所有東西西的環(huán)境遠(yuǎn)比比為某個(gè)特定定行為而優(yōu)化化的用戶界面面要好。如果果有業(yè)務(wù)案例例違背了這一一原則,請(qǐng)至至少記住這點(diǎn)點(diǎn):在穩(wěn)定用用戶界之前,不不要去優(yōu)化它它。典型通用功能其他的瑣事還包包括,但并不不僅限于以下下幾個(gè)方面:安全:建立服務(wù)務(wù)請(qǐng)求者身份份和訪問權(quán)限限。通知:確認(rèn)某一一業(yè)務(wù)事件應(yīng)應(yīng)通知哪些人人。這包括了了維護(hù)基于此此的事件訂閱閱。輸出管理:在線線下進(jìn)行信息息通信,而不不是作為一種種服務(wù)響應(yīng)。典典型例子就是是當(dāng)客戶請(qǐng)求求必須被正式式確認(rèn)時(shí),比比如使用電子子郵件來確認(rèn)認(rèn)你剛剛通過過瀏覽器所做做的網(wǎng)上采購購。對(duì)那些主主動(dòng)提供的
48、消消息也是需要要的,比如每每月的賬單。輸輸出管理必須須決定通過哪哪條渠道去發(fā)發(fā)送信息,以以及使用哪個(gè)個(gè)地址來發(fā)送送。它應(yīng)該把把消息轉(zhuǎn)換成成接收方能夠夠接收的格式式,發(fā)送消息息,并把消息息添加到歸檔檔文檔。輸出出管理包括維維護(hù)那些被用用來將數(shù)據(jù)轉(zhuǎn)轉(zhuǎn)換成用戶可可理解消息的的模板,以及及潛在接收者者的地址和渠渠道偏好。數(shù)據(jù)轉(zhuǎn)換:把數(shù)數(shù)據(jù)從一種格格式轉(zhuǎn)換為另另一個(gè),把獨(dú)獨(dú)立的各個(gè)服服務(wù)打包為一一個(gè)服務(wù)用麥當(dāng)勞的的說法,開心心樂園餐以及分解拆拆包,將服務(wù)務(wù)請(qǐng)求拆分成成適用于不同同人群的各個(gè)個(gè)獨(dú)立請(qǐng)求,匯匯集各個(gè)回應(yīng)應(yīng),排隊(duì)及出出列,或協(xié)議議轉(zhuǎn)換。流程編排:編排排某一流程,以以確保按適當(dāng)當(dāng)順序且僅相相關(guān)時(shí)
49、來執(zhí)行行那些組成流流程的服務(wù),確確保快要逾期期時(shí)發(fā)送告警警信息,以及及確保因輔助助信息或者逾逾期打斷從而而引起的新流流程分支被啟啟用。歸檔管理:維護(hù)護(hù)及訪問相關(guān)關(guān)的歸檔信息息。這些可能能是虛擬的檔檔案,從某種種意義上是展展現(xiàn)給用戶的的信息,當(dāng)他他需要某個(gè)檔檔案時(shí)可以使使用查詢來檢檢索。對(duì)那些些從數(shù)據(jù)庫中中抽取的內(nèi)容容,這被認(rèn)為為是正常的,但但是沒有特殊殊理由不對(duì)文文檔使用相同同的方法。在在某些情況下下應(yīng)使用設(shè)備備來特別增加加指派文檔至至檔案中。記錄管理:維護(hù)護(hù)那些不允許許被更改的信信息。至下而上敘述這些實(shí)現(xiàn)瑣事的的服務(wù)不能形形成業(yè)務(wù)服務(wù)務(wù)層次的部分分。不能使用用自上而下的的方式去設(shè)計(jì)計(jì)它們,因
50、為為這些服務(wù)都都沒有所謂的的“上”。對(duì)這樣的的服務(wù),使用用旨在實(shí)現(xiàn)最最大程度重用用的自下而上上的方法會(huì)更更適合。這使使得從這個(gè)階階段起就能夠夠?qū)崿F(xiàn)服務(wù)的的優(yōu)勝劣汰。采用數(shù)據(jù)庫化的的方法,很少少能夠?qū)嶋H把把次等通用功功能用更好的的替換,因?yàn)闉檫@要求修改改所有使用該該方法的應(yīng)用用。使用SOOA則不同,這這種替換很簡簡單,前提是是已經(jīng)應(yīng)用了了“不去了解你你不需要了解解的事情”這條規(guī)則,包包括其推論:服務(wù)請(qǐng)求不不應(yīng)該包含超超過指定該請(qǐng)請(qǐng)求必要信息息之外的其他他信息,而且且服務(wù)本身應(yīng)應(yīng)該在需要時(shí)時(shí)主動(dòng)要求更更多信息。如如授權(quán)服務(wù),該該服務(wù)由某應(yīng)應(yīng)用調(diào)用,旨旨在決定是否否允許某特定定用戶在某客客戶數(shù)據(jù)上執(zhí)
51、執(zhí)行某項(xiàng)功能能比如說:“我們的雇員員Donalld Jonnes是否被被授權(quán)可以訪訪問Acmee Widggets ccompanny公司相關(guān)關(guān)的財(cái)務(wù)數(shù)據(jù)據(jù)?”。服務(wù)的簡簡單版本可能能具備處理某某些特定情況況的能力,在在此特定情形形下可以通過過使用雇員功功能對(duì)應(yīng)表來來回答這些問問題。稍微復(fù)復(fù)雜一點(diǎn)的版版本可能會(huì)識(shí)識(shí)別出Donnald JJones屬屬于某個(gè)或多多個(gè)組的成員員,除了個(gè)人人權(quán)限外還擁擁有該組的權(quán)權(quán)限。再更近近一步,授權(quán)權(quán)服務(wù)可能會(huì)會(huì)使用用戶證證書去區(qū)別雇雇員和客戶,并并允許客戶只只能夠訪問他他們自己的數(shù)數(shù)據(jù)。一個(gè)完完善的版本可可能會(huì)使用標(biāo)標(biāo)準(zhǔn)化的服務(wù)務(wù)去調(diào)用業(yè)務(wù)務(wù)流程管理系系統(tǒng)或者
52、項(xiàng)目目管理系統(tǒng),詢?cè)儐朌onaald Joones是否否已經(jīng)被賦予予了任何我們們和Acmee Widggets交易易相關(guān)的職責(zé)責(zé)。更好的做做法是,授權(quán)權(quán)服務(wù)會(huì)記錄錄請(qǐng)求和應(yīng)答答的日志,而而簡單的版本本不會(huì)這樣做做。組織可以以從一個(gè)服務(wù)務(wù)的版本切換換到另一個(gè)而而無需對(duì)調(diào)用用服務(wù)的應(yīng)用用做任何改變變。也有可能設(shè)計(jì)出出根據(jù)操作必必需的條件自自動(dòng)配置自己己的通用服務(wù)務(wù)。例如,授授權(quán)服務(wù)可以以檢查是否有有服務(wù)可以告告知它員工對(duì)對(duì)某些特定客客戶有職責(zé),并并在該服務(wù)不不可用的情況況下決定只使使用個(gè)人還是是群組的訪問問權(quán)限。用這這種方式,服服務(wù)可以在很很多組織之間間復(fù)用。5.不要在測(cè)試試上自尋煩惱惱為什么SO
53、A更更容易測(cè)試對(duì)SOA缺點(diǎn)的的一種看法是是測(cè)試?yán)щy。這這種看法完全全不恰當(dāng),原原因有很多。首先,在SOAA中使用元數(shù)數(shù)據(jù)可以避免免錯(cuò)誤被植入入到系統(tǒng)中??煽梢栽谠獢?shù)據(jù)據(jù)層次就對(duì)系系統(tǒng)進(jìn)行驗(yàn)證證,例如,保保證所有需要要處理的數(shù)據(jù)據(jù)在使用前就就被匯總并校校驗(yàn)。在整個(gè)個(gè)業(yè)務(wù)流程范范圍內(nèi)都可以以實(shí)現(xiàn)這點(diǎn)。當(dāng)當(dāng)你可以驗(yàn)證證設(shè)計(jì)的時(shí)候候就不要測(cè)試試整個(gè)系統(tǒng)。其次,幾乎所有有測(cè)試,包括括所有系統(tǒng)集集成測(cè)試,一一旦測(cè)試基準(zhǔn)準(zhǔn)被建立后都都可以自動(dòng)完完成。但是,需需要一些前提提條件。表現(xiàn)現(xiàn)層和業(yè)務(wù)執(zhí)執(zhí)行層必須被被嚴(yán)格的區(qū)分分。好在這是是使用SOAA的一種很自自然的方式。對(duì)對(duì)所有輸入,都都應(yīng)該存在相相應(yīng)的XSDD。
54、使用該XXSD,可以以生成測(cè)試記記錄。同理,也也可以生成帶帶有預(yù)期輸出出結(jié)果的測(cè)試試記錄。在測(cè)測(cè)試過程中,不不能產(chǎn)生可以以證明系統(tǒng)運(yùn)運(yùn)行正常的任任何輸出地方方,必須在測(cè)測(cè)試腳本中添添加專門為此此生成的附加加輸出的查詢?cè)冋Z句。當(dāng)測(cè)測(cè)試開始運(yùn)行行時(shí),測(cè)試記記錄被一條條條輸入系統(tǒng),然然后輸出的結(jié)結(jié)果自動(dòng)和期期望的結(jié)果進(jìn)進(jìn)行對(duì)比。這這會(huì)產(chǎn)生一個(gè)個(gè)異常列表,其其中每項(xiàng)都應(yīng)應(yīng)仔細(xì)考慮。測(cè)測(cè)試可以按需需進(jìn)行。自然然,測(cè)試的結(jié)結(jié)果可能取決決于存積在數(shù)數(shù)據(jù)庫中的數(shù)數(shù)據(jù),所以這這點(diǎn)需要進(jìn)行行彌補(bǔ)。而且且,系統(tǒng)不可可表現(xiàn)出時(shí)間間相關(guān)的行為為。系統(tǒng)必須須有能力響應(yīng)應(yīng)每隔一段時(shí)時(shí)間(它對(duì)自自動(dòng)化測(cè)試序序列更適合)就產(chǎn)生
55、的事事件,而不是是花上一周時(shí)時(shí)間去等待某某個(gè)基于時(shí)間間的觸發(fā)器被被觸發(fā)。用戶戶界面的測(cè)試試應(yīng)該單獨(dú)進(jìn)進(jìn)行,而且永永遠(yuǎn)不在集成成測(cè)試中使用用。第三,SOA的的設(shè)計(jì)趨向于于產(chǎn)生更加健健壯的系統(tǒng):系統(tǒng)出錯(cuò)的的機(jī)會(huì)更少。SSOA減少了了信息系統(tǒng)為為了協(xié)同工作作而需要達(dá)成成協(xié)議的因素素?cái)?shù)量,這樣樣一來,導(dǎo)致致在某關(guān)鍵因因素上產(chǎn)生分分歧的設(shè)計(jì)錯(cuò)錯(cuò)誤的概率也也減少了。就就算真的出錯(cuò)錯(cuò),也能夠在在造成損害之之前檢測(cè)到。使使用SOA,消消息在被處理理前會(huì)被驗(yàn)證證,這樣可以以判斷消息是是否格式正確確、是否符合合相應(yīng)的XSSD。可行性測(cè)試最后,作為數(shù)據(jù)據(jù)庫時(shí)代特有有的產(chǎn)物測(cè)試環(huán)境和和生產(chǎn)環(huán)境必必須嚴(yán)格區(qū)分分,從此不
56、再再需要了,而而且有時(shí)候這這也是不適合合的。這是很很有可能的,這這是因?yàn)槲覀儌儾辉賹?shí)際進(jìn)進(jìn)行系統(tǒng)測(cè)試試了,而是對(duì)對(duì)測(cè)試通路和和信息處理的的方式進(jìn)行測(cè)測(cè)試。SOAA提供了三重重安全的、有有效區(qū)分測(cè)試試消息和生產(chǎn)產(chǎn)消息的方法法。除了被封封裝好的消息息,其他每個(gè)個(gè)消息自身和和相應(yīng)的命名名空間都包含含版本號(hào)。而而且每個(gè)消息息都包含一個(gè)個(gè)標(biāo)簽用以指指示它是用于于測(cè)試還是生生產(chǎn)。所需的的只是一個(gè)SSOA網(wǎng)關(guān),它它存在于防火火墻內(nèi)部,對(duì)對(duì)每條進(jìn)入消消息進(jìn)行如下下處理:校驗(yàn)消息以確定定其是否與一一個(gè)已知XSSD的版本相相符(被封裝裝好的消息除除外)。使用我們對(duì)相應(yīng)應(yīng)XSD的副副本對(duì)消息進(jìn)進(jìn)行校驗(yàn),以以確定其是
57、否否有效。如果消息用于生生產(chǎn)的,就驗(yàn)驗(yàn)證消息版本本號(hào)是否被允允許用于生產(chǎn)產(chǎn)。只有這樣樣,消息才能能夠被傳遞到到生產(chǎn)系統(tǒng)。其其他所謂的“生產(chǎn)”消息都會(huì)被被拒絕。如果消息用于測(cè)測(cè)試,消息可可能會(huì)被傳遞遞到指定的測(cè)測(cè)試版系統(tǒng)。在在特殊情況下下,消息如果果只是用來做做數(shù)據(jù)檢索,那那也有可能被被傳遞到生產(chǎn)產(chǎn)系統(tǒng)。只有在消息被完完全測(cè)試過后后,生產(chǎn)版本本的注冊(cè)庫和和XSD才能能得以更新。這樣的處理方法法不僅僅只是是三重安全的的,而且使得得消息的路由由能以一種合合乎實(shí)際的方方式得到測(cè)試試。這也大大大降低了從測(cè)測(cè)試系統(tǒng)切換換到生產(chǎn)系統(tǒng)統(tǒng)時(shí)重新進(jìn)行行配置的需求求。因?yàn)檫@種種重新配置天天生就是不可可測(cè)試的,常常常
58、成為錯(cuò)誤誤的根源。發(fā)發(fā)布經(jīng)理只能能通過在半夜夜或者周末發(fā)發(fā)布新的版本本軟件來彌補(bǔ)補(bǔ)這類錯(cuò)誤;這樣,就算算新版本出現(xiàn)現(xiàn)了任何錯(cuò)誤誤,也可以在在有人發(fā)現(xiàn)錯(cuò)錯(cuò)誤之前恢復(fù)復(fù)到老版本。但但如果這樣的的變化影響到到了其他組織織那就沒有辦辦法這樣操作作了。SOAA發(fā)布管理要要簡單得多!我們對(duì)于SOAA測(cè)試的一般般認(rèn)識(shí)是時(shí)候候該改變了。SSOA是能夠夠把測(cè)試需求求和設(shè)置測(cè)試試的工作減少少到最低的一一種方案。它它能使重要測(cè)測(cè)試更自動(dòng)化化的完成,結(jié)結(jié)果也更好。完善之理論SOA使得信息息系統(tǒng)的開發(fā)發(fā)和部署能夠夠比使用數(shù)據(jù)據(jù)庫化的方法法支持更為豐豐富的用戶體體驗(yàn)。這樣的的系統(tǒng)能夠涵涵蓋更多的信信息格式、更更廣的行為集
59、集合,其行為為上也可以達(dá)達(dá)到更高層次次的統(tǒng)一和一一致以及更加加可靠,不管管是從客戶還還是從組織內(nèi)內(nèi)關(guān)注合規(guī)的的人員的觀點(diǎn)點(diǎn)來衡量。然然而,要想獲獲得這些好處處需要我們跟跟已有的數(shù)據(jù)據(jù)庫方法實(shí)踐踐說再見。6.始終信守你你的諾言為什么數(shù)據(jù)庫不不能一直信守守諾言接收一個(gè)服務(wù)請(qǐng)請(qǐng)求的動(dòng)作是是通過定義一一個(gè)承諾,即即向請(qǐng)求者承承諾服務(wù)請(qǐng)求求會(huì)被執(zhí)行,來來確定的。這這種執(zhí)行定義義了一個(gè)流程程,其至少包包含一個(gè)步驟驟,但通常是是多個(gè)步驟。數(shù)據(jù)庫化的思考考和流程不能能融洽相處。從從它們各自的的本質(zhì)來看,數(shù)數(shù)據(jù)庫就像是是一個(gè)個(gè)孤島島。而孤島會(huì)會(huì)促使偏狹地地思考問題:任何孤島之之外的東西都都不重要??煽梢酝ㄟ^數(shù)據(jù)
60、據(jù)庫中的事務(wù)務(wù)概念來形象象地解釋這個(gè)個(gè)問題:某個(gè)個(gè)工作單元把把數(shù)據(jù)庫從一一種一致性狀狀態(tài)轉(zhuǎn)移到另另一個(gè)。在一一些特殊的情情況下,該概概念可能會(huì)被被擴(kuò)展到多個(gè)個(gè)數(shù)據(jù)庫,雖雖然可以通過過兩階段提交交技術(shù)來做,但但這也有局限限性。邏輯一一致性可能需需要貫穿整個(gè)個(gè)業(yè)務(wù)流程得得以維護(hù),而而不只是恰好好在某個(gè)時(shí)刻刻;需要在信信息改變波及及的所有地方方去維護(hù),其其中不僅包括括數(shù)據(jù)庫還有有流程管理系系統(tǒng)、信息以以及發(fā)送和接接受信息的人人工代理,而而這一切從數(shù)數(shù)據(jù)庫世界的的觀點(diǎn)看來是是完全陌生的的。SOA交易概念念對(duì)數(shù)據(jù)庫世界陌陌生的東西對(duì)對(duì)與SOA來來說卻是再自自然不過了。業(yè)業(yè)務(wù)交易實(shí)現(xiàn)它的一一般是一個(gè)流流程
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫網(wǎng)僅提供信息存儲(chǔ)空間,僅對(duì)用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對(duì)用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對(duì)任何下載內(nèi)容負(fù)責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請(qǐng)與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對(duì)自己和他人造成任何形式的傷害或損失。
最新文檔
- 《大學(xué)英語聽力應(yīng)用教程(第1冊(cè))》課件-Unit 7 Live Longer
- 合伙人股權(quán)轉(zhuǎn)讓合同書
- 統(tǒng)計(jì)局聘用合同
- 鐵路機(jī)務(wù)段合同樣板
- 提前解除合同會(huì)議紀(jì)要
- 《骨質(zhì)疏松的診治》課件
- 2025年雅安貨運(yùn)從業(yè)資格模擬考試
- 2025年安徽貨運(yùn)從業(yè)資格證考試模擬試題
- 第3課 盛唐氣象
- 醫(yī)藥新風(fēng)系統(tǒng)施工協(xié)議
- 海洋水產(chǎn)養(yǎng)殖碳足跡評(píng)估與減緩策略
- 數(shù)字媒體藝術(shù)課件
- 海洋科普趣味知識(shí)講座
- 靜脈輸液操作課件
- 安全生產(chǎn)培訓(xùn)(完整版)課件
- 【瑞幸咖啡財(cái)務(wù)分析報(bào)告(附財(cái)務(wù)報(bào)表)5300字(論文)】
- 三傻大鬧寶萊塢課件
- 護(hù)理科普作品
- 國家OTC藥品目錄(全部品種)
- 社會(huì)主義發(fā)展簡史智慧樹知到課后章節(jié)答案2023年下北方工業(yè)大學(xué)
- Android課程設(shè)計(jì)報(bào)告
評(píng)論
0/150
提交評(píng)論