




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