讓企業(yè)SOA項目更可控之必備十大戒條_第1頁
讓企業(yè)SOA項目更可控之必備十大戒條_第2頁
讓企業(yè)SOA項目更可控之必備十大戒條_第3頁
讓企業(yè)SOA項目更可控之必備十大戒條_第4頁
讓企業(yè)SOA項目更可控之必備十大戒條_第5頁
已閱讀5頁,還剩8頁未讀, 繼續(xù)免費閱讀

下載本文檔

版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進行舉報或認領(lǐng)

文檔簡介

1、PAGE - PAGE 13 -讓企業(yè)SOOA項目更更可控之必必備十大戒戒條面向服務(wù)的的架構(gòu)(SSOA)是是一種組織織信息處理理的方法。各系統(tǒng)為為協(xié)同工作作在各方面面達成了協(xié)協(xié)議,SOOA通過減減少這些協(xié)協(xié)議的數(shù)量量,能夠降降低信息系系統(tǒng)互操作作性的成本本。如果SSOA能得得到大范圍圍的應(yīng)用,系系統(tǒng)將呈現(xiàn)現(xiàn)與現(xiàn)在截截然不同的的前景,這這就好比當當今貨運行行業(yè)有別于于集裝箱出出現(xiàn)前的貨貨運業(yè)時代代一般。然然而,目前前的應(yīng)用方方式卻導(dǎo)致致了額外的的開支卻并并未體現(xiàn)出出這些互操操作性的優(yōu)優(yōu)勢。將適適用于數(shù)據(jù)據(jù)庫時代的的范式應(yīng)用用于SOAA中,會招招致反效果果,往往是是愚蠢的,有有時甚至是是十分危險險

2、的設(shè)計。這些模式式必須由新新的思想和和行為方式式所替代,以以確保SOOA朝著接接口更簡單單、IT方方案更優(yōu)化化以及項目目更可控的的方向發(fā)展展。這一點點可以通過過遵守以下下十大戒條條來實現(xiàn)。引言:SOOA的潛在在影響面向服務(wù)的的架構(gòu)(SSOA)是是一種組織織信息處理理的方法。這種方法法以服務(wù)的的形式描述述所有交互互活動,服服務(wù)請求者者請求代理理完成某些些處理,代代理確保處處理得以完完成并將處處理結(jié)果反反饋給服務(wù)務(wù)請求者。這種思維維方式可以以應(yīng)用于業(yè)業(yè)務(wù)級別,以以描述各組組織機構(gòu)之之間的交互互;應(yīng)用于于功能級別別,以描述述組成業(yè)務(wù)務(wù)流程的活活動的交互互方式;應(yīng)應(yīng)用到信息息系統(tǒng)級別別,以描述述系統(tǒng)及

3、系系統(tǒng)各部分分的交互方方式。每個個級別的準準則都是相相同的:代代理完成所所需工作的的方式與請請求者無關(guān)關(guān),乃至與與是否完全全自動、完完全人工亦亦或兩者兼兼具都無關(guān)關(guān)系。哪怕怕代理將部部分或者甚甚至全部工工作外包給給其他代理理完成也與與請求者無無關(guān)。所有有請求者所所需關(guān)注的的是與代理理就以下方方面達成一一致:請求求及響應(yīng)應(yīng)應(yīng)該如何制制定,以及及服務(wù)的效效果如何。SOA被大大肆宣揚為為一種具有有巨大潛力力的范式,能能夠降低系系統(tǒng)發(fā)展、測試及維維護的成本本。特別需需要指出的的是,SOOA承諾可可以通過大大幅度減少少達成協(xié)議議的因素的的數(shù)量,從從而降低信信息系統(tǒng)各各模塊協(xié)同同工作的成成本。采用用SOA

4、,諸諸如像計算算平臺和數(shù)數(shù)據(jù)格式之之間的差別別造成的系系統(tǒng)間通信信屏障會較較采用早期期的范式要要少得多。這使得更更大范圍上上的協(xié)作變變得可能,因因為它減少少了障礙,使使系統(tǒng)設(shè)計計師們不必必被強行要要求相互達達成一致,就就此而言,也也使得系統(tǒng)統(tǒng)配置員之之間不必被被強行要求求達成一致致。如果這這種承諾可可以實現(xiàn),其其結(jié)果將會會是革命性性的。就像像汽車改變變了城市區(qū)區(qū)域形態(tài),集集裝箱運輸輸革新了貨貨運行業(yè),以以及交易費費用的降低低發(fā)展了現(xiàn)現(xiàn)代自由市市場經(jīng)濟,SSOA將開開啟新的合合作模式。當SOAA主導(dǎo)我們們應(yīng)用ITT的方式,系系統(tǒng)前景將將與今日迥迥然不同,好好比圍繞汽汽車來設(shè)計計規(guī)劃的城城市和圍繞

5、繞火車來設(shè)設(shè)計規(guī)劃的的城市截然然不同一般般。對我們們之中那些些思維受限限于目前技技術(shù)的人來來說,SOOA可以產(chǎn)產(chǎn)生多大的的不同是難難以想象的的。然而SSOA所提提供的靈活活性優(yōu)勢就就好比汽車車勝過火車車一樣:即即便火車可可以被制造造跑得和汽汽車一樣快快,火車還還是絕不可可能像汽車車那樣提供供門到門的的運輸服務(wù)務(wù)。把火車車站安置在在每個車道道的盡頭,亦亦或甚至把把鐵軌鋪設(shè)設(shè)在每條道道路上都是是根本不現(xiàn)現(xiàn)實的。為何此影響響尚未實現(xiàn)現(xiàn)為獲取新范范式帶來的的好處,我我們必須好好好利用其其所能提供供的各種新新的可能性性。遺憾的的是,目前前圍繞SOOA的言過過其實的宣宣傳對這些些可能性的的提及是言言之甚少

6、。大部分討討論似乎都都關(guān)注于如如何利用SSOA幫助助單獨信息息系統(tǒng)更快快速地開發(fā)發(fā)。然而,這這并非SOOA所能創(chuàng)創(chuàng)造的最大大價值之處處。事實上上,SOAA是否真正正能夠改進進以往的方方法,即各各個功能點點通過某一一共同的數(shù)數(shù)據(jù)池(通通常是以數(shù)數(shù)據(jù)庫的方方式實現(xiàn))來實現(xiàn)交交互,還存存在爭議。使用SOOA來構(gòu)建建單獨、孤孤立的信息息系統(tǒng)就像像使用集裝裝箱在加工工廠附近搬搬運貨物一一樣:當然然,它限定定了內(nèi)部物物流的順序序和組織,但但是集裝箱箱更多的是是擋了道路路而非提供供幫助。SSOA使信信息系統(tǒng)間間達到更好好的互操作作性,就像像集裝箱促促使了運輸輸商之間的的互操作性性一樣。那那是一種重重要優(yōu)勢,

7、因因為從需求求確定到信信息系統(tǒng)可可操作之間間的時間周周期通常很很大程度上上是由互操操作性決定定的。要使使某一信息息系統(tǒng)能夠夠與其操作作環(huán)境中的的其他系統(tǒng)統(tǒng)一起工作作,那將會會花費比重重新構(gòu)建這這樣一個系系統(tǒng)更多的的時間和精精力。關(guān)注于SOOA在信息息系統(tǒng)內(nèi)部部而非各系系統(tǒng)之間的的使用是情情況更加惡惡化的征兆兆:因為看看起來SOOA是一種種全新的處處理我們一一直以來所所做的事情情的方式,我我們無法直直接獲取它它所帶來的的收益。SSOA概念念和技術(shù)正正為目前的的系統(tǒng)開發(fā)發(fā)范式所利利用。這些些范式還是是數(shù)據(jù)庫時時代的開發(fā)發(fā)產(chǎn)物,同同時也帶有有數(shù)據(jù)庫技技術(shù)的一些些限制。在在這些限制制下應(yīng)用SSOA將會

8、會導(dǎo)致額外外的開支,而而不能獲得得額外的收收益。然而而,這些“數(shù)據(jù)庫化化”的范式是是如此普遍遍和有害以以至于我們們常常忽略略了它們對對我們的思思維影響有有多大。它它們是如此此根深蒂固固,以至于于我們會不不自覺將其其視作常理理。遺憾的的是,這樣樣通常招致致相反效果果,常常是是愚蠢的,有有時甚至是是相當危險險的。它們們導(dǎo)致了一一種不好的的方案,這這種方案集集合了數(shù)據(jù)據(jù)庫時代的的缺點以及及SOA不不好的一面面,而又不不能體現(xiàn)SSOA必定定提供的優(yōu)優(yōu)點。需要改變什什么SOA范式式有其自身身的常識守守則,較之之數(shù)據(jù)庫范范式的守則則截然不同同。基本戒戒律有十項項。前五項項關(guān)于如何何簡化事物物,使其比比數(shù)據(jù)

9、庫化化的范式要要求更加簡簡化從堅持持要點意義義上更加簡簡化。如果果我們以此此種方式簡簡化事物,同同一問題的的不同解決決方案相互互間協(xié)作的的可能性將將大大提升升。接下來來的四項關(guān)關(guān)于使ITT解決方案案優(yōu)于同等等數(shù)據(jù)庫解解決方案,這這是通過阻阻止那些戴戴著有色眼眼鏡、慣于于數(shù)據(jù)庫思思維方式的的人開發(fā)出出無效解決決方案來實實現(xiàn)的。最最后一項關(guān)關(guān)于如何使使IT更可可控,尤其其是組織系系統(tǒng)開發(fā)以以降低項目目復(fù)雜度和和風險。SSOA使這這些成為了了可能同樣也是是必須的因為它它讓更多的的功能交付付成為基礎(chǔ)礎(chǔ)架構(gòu)。簡化之理論論在高空雜技技表演中,高高效的合作作的基礎(chǔ)是是每個空中中飛人演員員完全默契契地配合,對

10、對方會及時時地在每個個時點出現(xiàn)現(xiàn)。一些空空中飛人演演員非常自自信,他們們經(jīng)常蒙著著眼進行表表演。他們們能夠接到到彼此正因因為他們確確定在某個個特定時刻刻對方只可可能出現(xiàn)在在一個可能能位置。成功應(yīng)用SSOA以達達到最大化化的協(xié)作性性與高空雜雜技表演非非常相似?;ゲ僮餍孕砸箨P(guān)于于如何進行行交流的解解決方案從從數(shù)以百萬萬計減少到到只有一個個,交互雙雙方都可以以依賴該方方案。這并并不意味著著其他方案案有問題:這好比我我們既可以以靠左行駛駛也可以靠靠右行駛,但但重要的是是我們必須須都靠同一一邊行駛。當只有一方方執(zhí)行服務(wù)務(wù),一方接接受服務(wù)時時,只要雙雙方協(xié)議好好,具體使使用哪種方方案其實并并沒有太大大區(qū)

11、別。雙雙方中任一一方的特異異性可以決決定最終方方案,無需需做更多的的溝通努力力。畢竟,無無論使用哪哪種方案,這這些特異性性總要被處處理。但是是如果是多多方請求服服務(wù)或者多多方執(zhí)行服服務(wù),那將將呈現(xiàn)不一一樣的情景景。此時使使通信方案案精簡非常常重要,如如此,各方方必須處理理各自的特特異性,無無需面對另另一方。將信息通信信與外科移移植手術(shù)對對比很能說說明問題。成功的移移植手術(shù),要要將一個人人身上的器器官移植到到另一個人人身上,要要求該移植植器官必須須在多方面面與接收者者匹配,而而其中大部部分匹配因因素與該器器官的生物物功能無關(guān)關(guān)。換句話話說,被移移植的器官官必須和接接受者本身身有相同的的特征。因因

12、此,我們們的器官不不能像拼搭搭樂高積木木一樣隨便便被移植。目前的信信息通信恰恰恰如此。當一個信信息系統(tǒng)為為另一個系系統(tǒng)提供服服務(wù)時,它它們必須在在很多方面面達成一致致。它們必必須使用相相同的詞匯匯(元數(shù)據(jù)據(jù))、相同同的由一方方調(diào)用而另另一方執(zhí)行行的功能集集、對于每每個功能請請求應(yīng)答數(shù)數(shù)據(jù)內(nèi)容的的相同期望望、相同的的編碼系統(tǒng)統(tǒng)、相同的的技術(shù)通訊訊協(xié)議、相相同的用于于信息傳遞遞的尋址模模式、兼容容的可預(yù)期期的響應(yīng)速速率、兼容容的確保消消息不被丟丟失的技術(shù)術(shù)、兼容的的認證機制制以確保雙雙方安全通通信而不是是與冒名者者通信、兼兼容的加密密技術(shù)以及及密鑰管理理以確保消消息不被竊竊聽或者篡篡改等等。為了促

13、進進互操作性性,必須確確保參與各各方從彼此此獨立制定定各自標準準變?yōu)樾纬沙杉嫒莸臉藰藴室?guī)范。只有當一一些非常嚴嚴謹?shù)囊?guī)則則得到遵守守時這才有有實現(xiàn)的可可能,接口口才能減至至精要。如如此一來特特異性將無無容身之地地。嚴謹?shù)囊?guī)則則都關(guān)注于于如何使得得服務(wù)接口口更為簡單單。我們規(guī)規(guī)定的越少少,爭議的的余地就越越小。1.不了解解你不需要要了解的你不需要去去了解的東東西不會傷傷害到你SOA范式式的本質(zhì)在在于使得合合作各方或或系統(tǒng)之間間達成最少少限度的協(xié)協(xié)議卻可以以實現(xiàn)最大大程度的合合作。這是是一種巨大大的優(yōu)勢,因因為任何你你不需要了了解的東西西既不需要要被測試也也不需要被被維護。你你不需要去去了解的東東

14、西不會傷傷害到你。假設(shè)400%的系統(tǒng)統(tǒng)開發(fā)成本本用于測試試上,而高高達80%的信息系系統(tǒng)生命周周期的成本本被花費到到了系統(tǒng)維維護階段,任任何SOAA范式讓你你無需了解解的東西都都代表了你你能節(jié)省的的金錢。元數(shù)據(jù)你最不需要要了解的就就是結(jié)構(gòu)、含義以及及容許值這些元元數(shù)據(jù)不會被系系統(tǒng)中篩選選、排序或或執(zhí)行計算算的邏輯使使用的數(shù)據(jù)據(jù)。你并不不需要去了了解這些,因因為SOAA技術(shù)使得得數(shù)據(jù)和元元數(shù)據(jù)同時時出現(xiàn)。你你的系統(tǒng)可可以實時解解讀元數(shù)據(jù)據(jù),所以如如果你要做做的僅僅是是獲取、呈呈現(xiàn)或傳送送相應(yīng)的數(shù)數(shù)據(jù),你完完全不需要要為系統(tǒng)構(gòu)構(gòu)建元數(shù)據(jù)據(jù)知識。在在有相當精精密的表示示(preesenttatioo

15、n)功能能的幫助下下,它甚至至可以為用用戶實現(xiàn)各各種各樣特特定的篩選選及計算,且且只使用與與已有數(shù)據(jù)據(jù)同時提供供的元數(shù)據(jù)據(jù),而不是是內(nèi)部構(gòu)建建元數(shù)據(jù)。通過解讀數(shù)數(shù)據(jù)相應(yīng)的的元數(shù)據(jù),而而不是把元元數(shù)據(jù)構(gòu)建建到系統(tǒng)中中,你的系系統(tǒng)不需要要隨元數(shù)據(jù)據(jù)的改變而而改變。需需要改變的的僅僅是源源系統(tǒng)。想想想如果遵遵守該守則則,你能在在開發(fā)、測測試和維護護上節(jié)省多多少金錢!記住,在在兩個系統(tǒng)統(tǒng)上做更改改,平均來來說,其復(fù)復(fù)雜度是在在單個系統(tǒng)統(tǒng)做更改的的四倍,因因為其中包包含了所有有各方的協(xié)協(xié)作。對于很多面面對客戶的的系統(tǒng)來說說,表示以以及特定篩篩選功能基基本是其主主要的功能能。這些系系統(tǒng)只針對對最基本的的客

16、戶數(shù)據(jù)據(jù)要求內(nèi)部部構(gòu)建元數(shù)數(shù)據(jù)。這并并不包括當當前或過去去的訂單、客戶通訊訊錄、照片片、信函以以及任何可可用于展示示的其他數(shù)數(shù)據(jù),所有有這些數(shù)據(jù)據(jù)都可以用用一種不需需要這些數(shù)數(shù)據(jù)本質(zhì)相相關(guān)知識的的方式進行行表示,內(nèi)內(nèi)建于系統(tǒng)統(tǒng)中。技術(shù)許多你不需需要了解的的事情是與與技術(shù)相關(guān)關(guān)的。有了了SOA,你你不需要了了解你正在在接口的系系統(tǒng)是否采采用“軟件即服服務(wù)”(Sofftwarre-ass-aseervicce),不不需要了解解實施該系系統(tǒng)的計算算機安放在在何處,是是哪種類型型的計算機機或者運行行于何種操操作系統(tǒng),防防火墻是如如何配置,使使用的是哪哪種數(shù)據(jù)庫庫管理系統(tǒng)統(tǒng),亦或可可以使用哪哪種交易管管

17、理系統(tǒng)。其他你不不需要了解解的事情是是與你所通通信的系統(tǒng)統(tǒng)內(nèi)部相關(guān)關(guān)的。尤其其是,你不不需要去了了解任何用用于內(nèi)部數(shù)數(shù)據(jù)存儲的的元數(shù)據(jù),因因為任何其其他系統(tǒng)需需要同XSSD一致的的轉(zhuǎn)換都是是其自身的的問題,而而不是你的的。即便如此,使使用SOAA進行通信信的各方必必須達成一一致的技術(shù)術(shù)相關(guān)的標標準還有很很多選擇。特別是有有很多與WWeb服務(wù)務(wù)相關(guān)的那那些標準,SSOA從業(yè)業(yè)者將其統(tǒng)統(tǒng)稱為WSS-*標準準(*指可可以使用很很多可能的的標簽替換換)。在一一定程度上上,這些標標準提出得得很恰當,因因為SOAA社區(qū)并沒沒有滿足于于不去了解解它不需要要了解的東東西;本文文這個白皮皮書給出了了一些指導(dǎo)導(dǎo)以

18、期降低低由這些標標準引起的的問題的影影響。遵守守這些指導(dǎo)導(dǎo),SOAA需要的先先期協(xié)議將將比其他方方法要少得得多。設(shè)計穩(wěn)定的的接口如果想獲取取SOA提提供的種種種好處,不不去了解你你不需要了了解的東西西會成為你你的習慣。請銘記這這點!比如如說,當設(shè)設(shè)計一個訂訂貨服務(wù)時時,請記住住服務(wù)請求求者只需要要知道,當當他需要貨貨物的時候候該貨物是是否會有貨貨,而不需需要去了解解當前的庫庫存量。如如果你的程程序調(diào)用某某一安全服服務(wù)以判斷斷請求活動動是否被授授權(quán),不要要在系統(tǒng)內(nèi)內(nèi)構(gòu)建任何何超過其所所需服務(wù)工工作的知識識。例如,如如果安全服服務(wù)需要使使用輸入到到程序的安安全證書,唯唯一必須做做的就是傳傳遞該證書

19、書!對你來來說,它們們只是被封封裝在輸入入消息中的的單個數(shù)據(jù)據(jù)項。該證證書是否是是格式完整整的XMLL也不要去去驗證。如如果,由于于某些只有有那些負責責安全的小小鬼知道的的原因,他他們選擇了了違背標準準的SOAA操作或?qū)ψC書進行行了加密,那那么這是他他們的問題題,不是你你的。如果果他們改變變了任何與與證書相關(guān)關(guān)的東西,你你的程序不不應(yīng)該為此此做任何改改變或調(diào)整整。任何你你不需要了了解的東西西不會傷害害到你。當當然了,除除非你硬要要去了解它它,在這種種情況下如如果你們不不想在SOOA上浪費費時間的話話,其他人人可能最好好離遠點兒兒。不去了解那那些你不需需要了解的的東西可能能比你想象象的要難。如

20、果你開開發(fā)專門用用于與你通通信的信息息系統(tǒng)的信信息檢索服服務(wù),你的的思路已經(jīng)經(jīng)不對了,因因為你已經(jīng)經(jīng)把其他系系統(tǒng)的知識識歸并到系系統(tǒng)中了。需求中的的任何更改改將會迫使使雙方系統(tǒng)統(tǒng)都作出更更改。通常常來講,比比較好的方方式是采用用數(shù)量有限限的檢索服服務(wù)暴露系系統(tǒng)數(shù)據(jù),當當檢索服務(wù)務(wù)結(jié)合在一一起使用時時,它們涵涵蓋了所有有相關(guān)服務(wù)務(wù)的信息檢檢索需求。例如,某某個產(chǎn)品數(shù)數(shù)據(jù)庫可能能通過好幾幾個服務(wù)分分別暴露出出去:一個個簡單的僅僅包含編碼碼、描述、部門以及及產(chǎn)品定價價的服務(wù)、一個暴露露出所有該該產(chǎn)品財務(wù)務(wù)方面信息息的服務(wù),以以及一個暴暴露出所有有該產(chǎn)品物物流方面信信息的服務(wù)務(wù)。許多系系統(tǒng)僅需簡簡單服

21、務(wù)即即可得到滿滿足,大部部分只需要要部分數(shù)據(jù)據(jù)而非全部部,或財務(wù)務(wù)或物流的的服務(wù),而而有一些兩兩者都需要要,但此外外沒有任何何一個需要要特別接口口的系統(tǒng)。這種工作作方式被稱稱為麥當勞勞方式:客客戶從標準準產(chǎn)品中搭搭配出自己己需要的產(chǎn)產(chǎn)品。支持持這種方式式并不困難難,因為不不管怎樣你你都需要這這些服務(wù)去去支持面向向客戶的程程序。你甚甚至可以用用這種方式式來支持非非常特別的的信息需求求,因為那那些不需要要的數(shù)據(jù)可可以在消費費前就過濾濾掉。如果果不想在巨巨無霸漢堡堡中放小黃黃瓜,扔掉掉它就可以以了!這種種方式的基基本思路是是提供過多多的信息要要比提供過過少的信息息遇到的問問題少,因因為接收方方系統(tǒng)可

22、以以很容易通通過程序過過濾掉不需需要的信息息,但是如如果缺少信信息那就麻麻煩了。不去了解你你不需要了了解的東西西也會使得得為支持業(yè)業(yè)務(wù)流程所所需的信息息交互大大大簡化。在在SOA的的范式中,當當你請求另另一個代理理為你做一一些事,那那就是你所所需要做的的全部。你你不需要為為代理提供供可能有助助于完成任任務(wù)的或者者是其必需需的額外信信息。在點點菜時,確確保有用于于這道菜的的原料是廚廚師的職責責。你說出出想要的東東西,然后后就可以靜靜候佳音了了。反過來來,代理會會使用信息息檢索服務(wù)務(wù)來向你咨咨詢所有信信息,但是是檢索什么么、何時檢檢索以及從從何檢索,這這些問題都都應(yīng)該由他他來決定,你你無須去了了解

23、,更不不用將該知知識歸并至至你的系統(tǒng)統(tǒng)中。這樣樣,在他那那一端的更更改幾乎不不需要你這這邊作出更更改。比如如說,如果果他決定停停止維護對對你數(shù)據(jù)的的拷貝,你你什么更改改都不需要要做。當然,不去去了解你不不需要了解解的事情確確實會導(dǎo)致致效率低下下。原本只只需要一次次交換即可可實現(xiàn)的操操作現(xiàn)在將將需要多個個步驟。麥麥當勞方式式常常會導(dǎo)導(dǎo)致原本一一個服務(wù)即即可滿足卻卻提供了多多個服務(wù)的的情況,另另一邊卻還還在檢索信信息,而這這些信息又又常常是冗冗余而非十十分必要??倳霈F(xiàn)現(xiàn)一些情形形,可以通通過好的商商業(yè)意識來來優(yōu)化這些些通信模式式。也會有有很多場合合你會想要要優(yōu)化用戶戶接口,那那也只是因因為當前的

24、的表示設(shè)備備并不擅長長提供給用用戶吸引人人的界面。但是在你你優(yōu)化之前前,請考慮慮你會失去去什么樣的的靈活性。另外絕不不要想去優(yōu)優(yōu)化那些尚尚未穩(wěn)定的的功能需求求。2.不要了了解你還不不能了解的的事情為時過早的的規(guī)范凍結(jié)結(jié)數(shù)據(jù)庫范式式中,一個個真正的難難題在于:它要求在在你還未足足夠了解并并有能力去去確定數(shù)據(jù)據(jù)的具體結(jié)結(jié)構(gòu)前,就就去做這件件事。因為為它們忽視視了一個生生活中簡單單的事實:只有當用用戶看到他他們不想看看到的東西西時,他們們才知道其其真正想要要的是什么么。其工作原理理是這樣:一旦完成成了數(shù)據(jù)結(jié)結(jié)構(gòu)的設(shè)計計,任何后后續(xù)修改都都會引起雜雜亂的數(shù)據(jù)據(jù)庫轉(zhuǎn)換,除除此之外每每個訪問該該數(shù)據(jù)庫的的

25、系統(tǒng)也會會改變。所所有這些改改變必須都都協(xié)調(diào)好,當當所有對數(shù)數(shù)據(jù)庫的操操作都限制制在單個系系統(tǒng)時候,這這種協(xié)調(diào)是是很困難的的,但如果果有多個系系統(tǒng)都在操操作,那就就更難了,尤尤其是:如如果其中有有些系統(tǒng)被被不受你控控制的參與與方管理的的時候。事事實上,在在系統(tǒng)開發(fā)發(fā)階段做這這些更改就就已經(jīng)很成成問題了。其后果是是,數(shù)據(jù)庫庫設(shè)計早在在系統(tǒng)開發(fā)發(fā)階段就被被凍結(jié),然然后數(shù)據(jù)分分析師們再再去竭力修修正這些設(shè)設(shè)計?,F(xiàn)在的問題題是數(shù)據(jù)分分析師們面面臨著不可可能完成的的工作。他他們必須在在用戶理解解這個設(shè)計計(且不說說贊賞這個個設(shè)計實際際應(yīng)用如何何)前就確確定該設(shè)計計。只有在在過了很久久之后系統(tǒng)已經(jīng)經(jīng)構(gòu)建好

26、之之后用戶才才能對該系系統(tǒng)有所體體會并對其其是否滿足足自己的需需求作出評評估。如果果此時發(fā)現(xiàn)現(xiàn)數(shù)據(jù)結(jié)構(gòu)構(gòu)上有任何何大問題,要要想修復(fù)就就太晚了。SOA原型型法你可能會問問:“SOA是是怎么個不不同尋常呢呢?”說到底,難難道SOAA不像數(shù)據(jù)據(jù)庫范式那那樣一樣需需要結(jié)構(gòu)化化數(shù)據(jù)嗎?這個問題題的簡單答答案:不管管請求數(shù)據(jù)據(jù)時,被人人工代理處處理還是被被自動化系系統(tǒng)處理,SSOA都是是管用的,并并且就算數(shù)數(shù)據(jù)沒有被被最優(yōu)結(jié)構(gòu)構(gòu)化,人們們還是可以以解讀它。比如說,用用戶可以判判斷信件是是否正在被被發(fā)送至另另一個國家家,無論信信件的地址址是用行一一、行二、行三和行行四來表示示的,而信信息系統(tǒng)需需要至少“國

27、家”來作為數(shù)數(shù)據(jù)結(jié)構(gòu)可可識別的一一部分。仔細回答這這個問題就就包括了對對SOA原原型法的討討論,這種種討論包括括以下幾方方面:識別將被構(gòu)構(gòu)建到系統(tǒng)統(tǒng)中的元數(shù)數(shù)據(jù)。把它它放在主命命名空間中中,用傳統(tǒng)統(tǒng)方式根據(jù)據(jù)其結(jié)構(gòu)把把數(shù)據(jù)存儲儲到數(shù)據(jù)庫庫管理系統(tǒng)統(tǒng)(DBMMS)。例例如,用戶戶信息,這這個元數(shù)據(jù)據(jù)可能由用用戶ID和和用戶名構(gòu)構(gòu)成。因為為這個元數(shù)數(shù)據(jù)被構(gòu)建建到系統(tǒng)中中,所以為為了使用這這些字段而而把邏輯也也構(gòu)建到系系統(tǒng)中是完完全有可能能的,比如如通過用戶戶ID檢索索記錄并基基于用戶名名排序和篩篩選記錄。對每一條數(shù)數(shù)據(jù)庫記錄錄,把不包包含在主命命名空間的的所有數(shù)據(jù)據(jù)放到一個個單獨的XXML字符符串

28、中,該該字符串作作為一個單單獨的字段段添加到數(shù)數(shù)據(jù)庫記錄錄中。對每每個XMLL字符串,構(gòu)構(gòu)建一個二二級命名空空間,開發(fā)發(fā)XSD,同同時添加一一個單獨數(shù)數(shù)據(jù)項到主主命名空間間。對用戶戶記錄的初初步實現(xiàn)來來說,這個個字符串可可能包括地地址行一、行二、行行三和行四四的元數(shù)據(jù)據(jù)。用戶記記錄本身的的XSD將將會包括三三個字段的的元數(shù)據(jù):用戶IDD、用戶名名和以XMML字符串串包括的附附加的用戶戶相關(guān)數(shù)據(jù)據(jù)。附加用用戶數(shù)據(jù)的的XSD包包括每條地地址行的元元數(shù)據(jù)。使用基于XXSD的邏邏輯來為數(shù)數(shù)據(jù)庫記錄錄的各相關(guān)關(guān)層次獲取取及展示所所有數(shù)據(jù),這這可以通過過給每個XXML字符符串(包含含對主記錄錄的字符串串)

29、增加一一個標準驗驗證服務(wù)來來實現(xiàn)。如如有可能,利利用某種工工具來產(chǎn)生生使用XSSD的接口口而不要自自己去編程程。該工具具必須使用用二級XMML字符串串所包含的的元數(shù)據(jù)來來將其解包包,并且必必須同時使使用主、次次兩級XSSD的邏輯輯來獲取新新記錄。其其結(jié)果就是是一個可運運行的原型型,用戶可可用以評估估預(yù)期使用用的系統(tǒng)。要盡量適應(yīng)應(yīng)和修改基基于XSDD的邏輯以以及驗證服服務(wù)直到用用戶對系統(tǒng)統(tǒng)滿意為止止。就拿用用戶記錄來來說,一個個新的針對對字符串的的XSD可可包括以下下元數(shù)據(jù):街道地址址、郵編、縣市、以以及國家。使用舊XXSD存儲儲的數(shù)據(jù)仍仍會正確顯顯示,所以以無需立即即將其轉(zhuǎn)換換。而使用用新XS

30、DD將會獲取取新的記錄錄。一旦用戶和和你確信元元數(shù)據(jù)已經(jīng)經(jīng)穩(wěn)定了,那那么請考慮慮把數(shù)據(jù)遷遷移到傳統(tǒng)統(tǒng)的數(shù)據(jù)結(jié)結(jié)構(gòu)和主命命名空間。當然,SOOA原型法法并不總是是必要的。當需求受受限于如此此多的不確確定性時,請請使用原型型法,這樣樣先做原型型然后再將將其穩(wěn)定比比較經(jīng)濟。但是請記記住這個肯肯定要比數(shù)數(shù)據(jù)庫化原原型法要簡簡單的多。在數(shù)據(jù)庫庫化的時代代,原型法法只是可有有可無,但但是在SOOA的時代代,它便是是家常便飯飯。不要將將設(shè)計細節(jié)節(jié)固定,除除非你確定定它們是正正確的;就就是這么簡簡單。3.除了要要求的不要要多做產(chǎn)品驅(qū)動的的服務(wù)分解解SOA主要要的優(yōu)勢就就是它是一一個能被轉(zhuǎn)轉(zhuǎn)化成技術(shù)術(shù)的業(yè)務(wù)概概

31、念,不像像數(shù)據(jù)庫世世界里那樣樣,技術(shù)概概念總想試試圖跟上業(yè)業(yè)務(wù)的步伐伐。在SOOA中,每每個服務(wù)必必須明確地地增加價值值,不只是是在抽象意意義層面上上,而更具具體地要針針對那些調(diào)調(diào)用方而言言。發(fā)生的的一切之所所以這樣發(fā)發(fā)生了,是是因為服務(wù)務(wù)請求者要要求其如此此。通過不不實現(xiàn)任何何服務(wù)請求求者沒有明明確要求的的東西,服服務(wù)可以被被限定在它它們的核心心功能上。如果SOOA中所有有的參與者者都積極這這樣去做,那那么將會使使互操作性性大大增加加。SOA中最最高層次的的服務(wù)是業(yè)業(yè)務(wù)交易:某個客戶戶下了一個個貨物或服服務(wù)的訂單單除非訂訂單被供應(yīng)應(yīng)商拒絕否則這這就開始了了一個訂單單交付。在在SOA范范式中,

32、任任何從接受受訂單到訂訂單交付之之間所發(fā)生生的都可以以也應(yīng)該以以服務(wù)的形形式實現(xiàn)。為實現(xiàn)訂訂單交付而而要求的每每個中間產(chǎn)產(chǎn)品或狀態(tài)態(tài),供應(yīng)商商會要求某某些人或某某些組織機機構(gòu)不一定定是供應(yīng)商商內(nèi)部的組組織來執(zhí)行行交付。然然后這些中中間服務(wù)自自身又可以以分解成多多個服務(wù),一一直到增加加價值的基基本組織層層面。層次服務(wù)分分解是SOOA范式中中非常重要要的一部分分,因為它它使服務(wù)交交付通過服服務(wù)水平協(xié)協(xié)議的方式式管理。它它可以確保保每個服務(wù)務(wù)都有專人人負責,并并且服務(wù)消消費者們知知道他們會會得到什么么。通用的中間間產(chǎn)品和通通用的服務(wù)務(wù)服務(wù)分解都都是關(guān)于產(chǎn)產(chǎn)品的。只只有當組成成服務(wù)的那那些子服務(wù)務(wù)不能

33、立即即執(zhí)行時流流程才會出出現(xiàn)。例如如,如果決決定是否接接受客戶訂訂單的服務(wù)務(wù)要求:先先執(zhí)行判斷斷訂單價值值的子服務(wù)務(wù),再執(zhí)行行確定客戶戶信用狀態(tài)態(tài)的子服務(wù)務(wù),那么實實現(xiàn)該服務(wù)務(wù)就包含了了一個流程程。每個這這樣的流程程只與一個個服務(wù)相關(guān)關(guān)。如果你你發(fā)現(xiàn)有個個流程不僅僅限于單個個這樣的服服務(wù),那么么你很有可可能是忘了了把客戶的的初始需求求建模為服服務(wù)了。有可能出現(xiàn)現(xiàn)這樣的情情況,相同同的中間產(chǎn)產(chǎn)品當然還還有相同的的服務(wù)可能會被被不同的高高級別產(chǎn)品品需要。比比如,那些些要求明顯顯區(qū)分交付付過程的商商品,在中中間產(chǎn)品的的環(huán)節(jié),其其中的差別別一般來說說幾乎微乎乎其微,中中間產(chǎn)品其其實也是由由客戶來支支付

34、為了從從客戶那里里賺取利潤潤,我們需需要金額、日期以及及讓我們可可以冠冕堂堂皇地向客客戶要求支支付的條款款,實際是是什么則并并不用去理理會。在這這種情況下下,正常的的基準是如如果存在通通用的中間間產(chǎn)品,那那么它應(yīng)該該由單個服服務(wù)來實現(xiàn)現(xiàn),而這個個服務(wù)能夠夠被多個高高級別的服服務(wù)調(diào)用。這種服務(wù)只只有結(jié)果是是重要的不是開開始因為收收集對交付付服務(wù)有用用的信息是是服務(wù)本身身的一部分分,而不是是請求服務(wù)務(wù)源頭的一一部分。需需要注意的的是:是否否需要單個個服務(wù)是由由業(yè)務(wù)決定定的,和信信息技術(shù)沒沒有任何關(guān)關(guān)系。如果果不管是現(xiàn)現(xiàn)在還是相相關(guān)的未來來,交付相相同的中間間產(chǎn)品都是是切實有用用的,那么么就應(yīng)該有有

35、單個服務(wù)務(wù)。除非在在現(xiàn)在或相相關(guān)的未來來有商業(yè)力力量發(fā)揮作作用使中間間產(chǎn)品發(fā)生生結(jié)構(gòu)性分分化,那我我們最好不不要為每組組需求分別別提供相應(yīng)應(yīng)服務(wù)。然然而事實偏偏偏相反。在SOAA,事物是是由相同走走向不同,而而在數(shù)據(jù)庫庫化的方法法中,事物物則是由不不同走向相相同。帶有多種行行為的通用用服務(wù)你可能會問問,如果需需要兩種完完全不同的的行為而你你只為其提提供一種服服務(wù),這樣樣做的意義義何在呢?難道我們們還在被同同樣困擾數(shù)數(shù)據(jù)庫世界界的“一刀切”做法限制制?比如,如如果我們出出售兩種類類型的產(chǎn)品品,其中一一種使用固固定價格而而另一種則則根據(jù)某些些復(fù)雜的公公式計算出出變動價格格,為什么么不用兩種種結(jié)算服

36、務(wù)務(wù),為每種種特定的產(chǎn)產(chǎn)品各訂制制一種呢?這些問題很很好,但問問錯了地方方。它們是是好問題,那那是因為任任何不能充充分應(yīng)對發(fā)發(fā)生在問題題域內(nèi)變化化的設(shè)計方方法注定會會失敗。但但是它們問問在了錯誤誤的地方,這這是因為根根據(jù)問題域域中的變化化來調(diào)整方方案的靈活活性應(yīng)該構(gòu)構(gòu)建到服務(wù)務(wù)中,而不不是圍繞著著服務(wù)來構(gòu)構(gòu)建。就拿拿結(jié)算服務(wù)務(wù)來說,每每次調(diào)用一一種方法時時,它應(yīng)該該決定這兩兩種算法應(yīng)應(yīng)該使用哪哪一種。那那樣的話,如如果引入第第三種結(jié)算算算法,那那么只有結(jié)結(jié)算服務(wù)需需要去做調(diào)調(diào)整。請注注意這并不不意味著結(jié)結(jié)算服務(wù)必必須被設(shè)計計成某種“萬能”機器;它它同樣可以以很好地為為每個算法法分別調(diào)用用相應(yīng)的

37、子子服務(wù)。這這種選擇介于多多功能解決決方案和包包含不同組組件的框架架之間是一種可可以根據(jù)服服務(wù)來決定定的選擇,因因為它不需需要被服務(wù)務(wù)請求者知知道。在SSOA中,這這種選擇更更常見,但但目前的做做法則常常常導(dǎo)致產(chǎn)生生框架解決決方案,因因為需要多多功能方案案的感覺在在很大程度度上是由于于不能從那那些需要執(zhí)執(zhí)行的信息息里識別出出服務(wù)請求求造成的。這種需要要高素質(zhì)專專家來實現(xiàn)現(xiàn)的帶有如如此多參數(shù)數(shù)的以一應(yīng)應(yīng)十的多功功能方案的的日子不會會長久了。堅持要點流程驅(qū)動方方法也可以以使我們分分清我們是是代表服務(wù)務(wù)請求者做做事還是為為自己做事事。以服務(wù)務(wù)請求者身身份做的事事應(yīng)該作為為服務(wù)的一一部分來執(zhí)執(zhí)行,而其

38、其余的就不不應(yīng)該了。通過這種種區(qū)分,我我們可以讓讓服務(wù)盡可可能簡單,這這樣可以在在不需要改改變各式各各樣其他東東西的情況況下替換掉掉該服務(wù)。舉例來說說,我們會會生產(chǎn)產(chǎn)品品來滿足外外部服務(wù)請請求,但是是維護簿記記系統(tǒng)是為為了滿足我我們自己的的需求,而而不是請求求者的。如如果要開發(fā)發(fā)一項服務(wù)務(wù)將客戶訂訂單轉(zhuǎn)變成成制造活動動及賬目簿簿記,那么么只要我們們實現(xiàn)一個個新的簿記記系統(tǒng),我我們就要去去修改一次次這個服務(wù)務(wù)。這聽起起來似乎還還不是太糟糟糕,但試試想一下所所有事情都都是為我們們自己而做做,那就太太糟糕了。包含最新新數(shù)據(jù)的數(shù)數(shù)據(jù)倉庫的的簿記、日日志、儲存存、員工績績效數(shù)據(jù)的的維護:所所有這些及及其

39、他事情情一般都由由系統(tǒng)完成成,這些系系統(tǒng)隨組織織機構(gòu)和時時間的不同同而不同,因因此在業(yè)務(wù)務(wù)服務(wù)中包包含這些知知識會降低低互操作性性,增加了了用其他系系統(tǒng)來實現(xiàn)現(xiàn)服務(wù)替換換的難度。我們可以以通過產(chǎn)生生通知的方方式來避免免此類問題題,即:如如果對這些些功能很重重要的事情情發(fā)生了,就就發(fā)出通知知,然后它它們可以使使用通用服服務(wù)檢索處處理事件所所需的信息息。另一類不應(yīng)應(yīng)作為服務(wù)務(wù)一部分執(zhí)執(zhí)行的業(yè)務(wù)務(wù)活動包括括那些一旦旦服務(wù)請求求被撤銷就就無法逆轉(zhuǎn)轉(zhuǎn)的活動。通常來說說,這類活活動包括諸諸如因客戶戶訂貨導(dǎo)致致庫存量低低于補貨水水平從而需需要訂購補補給、注冊冊新用戶以以及更新現(xiàn)現(xiàn)有用戶信信息。這些些活動是整

40、整個流程中中的各個步步驟,應(yīng)使使用單獨的的服務(wù)一一一執(zhí)行。當然,這種種思維方式式可以與數(shù)數(shù)據(jù)庫范式式緊密結(jié)合合。但并不不是其所特特有的,因因為它與SSOA有關(guān)關(guān)。結(jié)果是是,許多SSOA的實實現(xiàn)與數(shù)據(jù)據(jù)庫化的思思維方式背背道而馳,而而正是這種種思維方式式激發(fā)了他他們以自下下而上的方方式識別服服務(wù),而非非SOA的的自上而下下方式。在在自下而上上方式中,原原本一開始始為某個問問題開發(fā)的的服務(wù)也可可以為其他他問題復(fù)用用,這多虧虧了設(shè)計它它的人對于于如何更廣廣泛地應(yīng)用用做了認真真的思考。SOA中中,在多個個上下文中中使用某個個服務(wù)是縝縝密設(shè)計的的結(jié)果,而而不是靠直直覺,并且且從設(shè)計之之初就將所所有那些上

41、上下文都考考慮了進來來。說到復(fù)復(fù)用某一服服務(wù)來交付付某一通用用的中間產(chǎn)產(chǎn)品就好比比說重復(fù)使使用前門進進入房子,不不管那扇門門是通向客客廳、廚房房,還是衛(wèi)衛(wèi)生間。你你能想象廚廚房設(shè)計師師說:“真妙!那那家伙設(shè)計計的室外通通向客廳的的入口正好好可以被我我用來作為為通向廚房房的室外入入口!”嗎?任何何談?wù)摗皬?fù)用”(如復(fù)用用支付服務(wù)務(wù))的人都都還沒有實實現(xiàn)它。請請注意,這這并不是錯錯誤的,只只是有點奇奇怪和沒有有什么啟發(fā)發(fā)性罷了。服務(wù)遵從業(yè)業(yè)務(wù)采用SOAA方式思考考問題的一一個結(jié)果就就是SOAA會使得服服務(wù)依據(jù)其其業(yè)務(wù)意義義而非機械械的實現(xiàn)來來表述。例例如,名為為增加用戶戶記錄的服服務(wù)是數(shù)據(jù)據(jù)庫化的,

42、而而名為注冊冊新用戶的的服務(wù)就是是SOA的的,即便這這兩個服務(wù)務(wù)做的事情情完全一樣樣。我們對對服務(wù)的命命名十分重重要,因為為它告訴我我們是誰在在請求該服服務(wù),以及及為什么他他要請求這這項服務(wù)。在這個特特定的例子子中,SOOA自上而而下的方法法會得到一一個結(jié)論,那那就是業(yè)務(wù)務(wù)流程需要要一個有效效的用戶注注冊服務(wù),該該服務(wù)通過過修改現(xiàn)存存的注冊服服務(wù)(如果果有的話)來完成,而而不是重新新自動創(chuàng)建建一個新的的。在SOOA中,這這是用戶注注冊服務(wù)的的責任,而而數(shù)據(jù)庫化化的方法卻卻會把這個個責任推到到服務(wù)請求求者身上。類似地,SSOA注冊冊用戶服務(wù)務(wù)自身會決決定用戶IID是什么么,而數(shù)據(jù)據(jù)庫化的服服務(wù)可

43、能就就會干脆讓讓服務(wù)請求求者做這個個決定。匯聚到單個個方案總的看來,SSOA由上上至下的思思維方式使使得很多設(shè)設(shè)計決策只只存在一個個選項,而而數(shù)據(jù)庫化化的思考者者會把該選選項僅僅看看作眾多可可選方案之之一。這是是SOA很很重要的一一個優(yōu)勢,考考慮到SOOA是以互互操作性為為導(dǎo)向的,而而互操作性性要求我們們行車時都都在同一邊邊行駛而不不用去和我我們碰到的的每輛車去去交涉。那那些忽視這這點的人比如通過過主張Weeb服務(wù)只只是眾多實實現(xiàn)跨系統(tǒng)統(tǒng)邊界SOOA的一種種方式能夠一直直成功的機機會和那些些只考慮下下一步的棋棋手差不多多。誠然,總總是有比WWeb服務(wù)務(wù)更簡單的的方法去連連接兩個系系統(tǒng),但是是為

44、了讓呼呼叫中心或或輸出管理理設(shè)施能使使用相同數(shù)數(shù)據(jù)你會怎怎么做?為為了確保數(shù)數(shù)據(jù)倉庫能能夠在你把把事件從一一個系統(tǒng)轉(zhuǎn)轉(zhuǎn)換到另一一個系統(tǒng)時時得到通知知,或者事事件一發(fā)生生便能及時時通知你的的客戶,你你又會怎么么做呢?在在SOA的的世界里,數(shù)數(shù)據(jù)和事件件必須在多多個系統(tǒng)中中可用,而而Web服服務(wù)是能夠夠確保在低低投資和低低維護成本本的前提下下達到這一一效果的最最有效的方方法。存在這一明明顯差異的的一個領(lǐng)域域就是電子子數(shù)據(jù)交換換(EDII)。傳統(tǒng)統(tǒng)的電子數(shù)數(shù)據(jù)交換(EDI)技術(shù)旨在在確定組織織之間通信信可能需要要的信息,并并為該信息息定義詞匯匯。那和定定義某一特特定的信息息交互不是是一回事。比如,你

45、你可以使用用相同的EEDI報文文來下訂單單、查詢其其進展以及及修改它。兩個組織織想通過這這些規(guī)范進進行通信必必須坐下來來一起就這這一詞匯的的使用方式式達成一致致。SOAA分離了這這些關(guān)注點點:詞匯由由命名空間間來處理,而而這些命名名空間可能能會被多個個服務(wù)使用用,每個服服務(wù)有各自自特定的目目的。“SOA由由上至下方方式導(dǎo)致更更具體的結(jié)結(jié)論”的另一領(lǐng)領(lǐng)域是這樣樣一個問題題:是什么么筑起了一一個編排過過的流程邊邊界。通常常,這個問問題會引起起無休止的的爭論。比比如,采用用輸出管理理服務(wù)給客客戶發(fā)送確確認信息是是否應(yīng)被編編排為用戶戶流程的一一部分,如如果是的話話,它應(yīng)該該采用即發(fā)發(fā)即棄(ffire-

46、and-forgget)的的方式處理理還是應(yīng)該該由輸出管管理服務(wù)來來報告動作作成功完成成?按SOOA的話講講,所有這這些東西都都是用戶意意圖的一部部分,因此此都應(yīng)該被被編排的。其他一些些行為,比比如考慮到到新用戶訂訂單的更新新數(shù)據(jù)倉庫庫或者更新新總分類,很很顯然都不不是用戶意意圖的一部部分,不應(yīng)應(yīng)該包含在在流程編排排中,哪怕怕它們是同同一方執(zhí)行行的。4.不要自自己做瑣事事通用功能業(yè)務(wù)服務(wù)應(yīng)應(yīng)該只包含含特定于該該服務(wù)的那那些功能邏邏輯。它應(yīng)應(yīng)該把其他他功能都委委托出去。那樣的話話,服務(wù)自自身就可以以盡可能簡簡單。這使使得設(shè)計、測試以及及替換服務(wù)務(wù),如有必必要的話,更更容易。這這是個基本本的數(shù)學知

47、知識:新軟軟件模塊需需要匹配的的因素越多多,那么同同價位下的的成品軟件件(COTTS)的共共性越少,而而且若恰好好有個方案案可用時它它也會更貴貴。如果可可以將這些些非特定功功能委托給給標準服務(wù)務(wù),那么就就可以降低低需要匹配配的因素個個數(shù)。服務(wù)可以代代勞的首要要任務(wù)是瑣瑣事:都是是些“家務(wù)事”而非真正正業(yè)務(wù)相關(guān)關(guān)的功能。這些瑣事事天生就是是普遍的,換換句話說完完成這些瑣瑣事的方式式并不是為為支持業(yè)務(wù)務(wù)上下文的的服務(wù)量身身定制的。通用用戶接接口當你得知信信息系統(tǒng)最最不應(yīng)該做做的一大瑣瑣事就是管管理用戶體體驗時你可可能會覺得得驚訝。這這是一個通通用的功能能,應(yīng)該盡盡可能的采采用標準工工具來處理理。用

48、戶體體驗包括用用戶可以選選擇要執(zhí)行行工作項的的工作列表表,工作項項執(zhí)行的工工具比如通通過啟動一一個用戶界界面(如果果有的話)來關(guān)閉已已完成的工工作項。它它包含了用用戶有可能能執(zhí)行的交交易甄選,輸輸入信息屏屏幕的表示示一般是是從XSDD生成以及使用用和交易相相對應(yīng)的標標準驗證服服務(wù)進行驗驗證。它包包括了保持持當前用戶戶上下文環(huán)環(huán)境,這樣樣他就無需需再次輸入入當前的客客戶、產(chǎn)品品、項目、流程實例例或者其他他任何東西西,而是可可以使用這這些默認值值或者在必必要時候重重寫它們。它包括了了和當前用用戶上下文文環(huán)境相關(guān)關(guān)的所有文文檔的介紹紹。它包含含了用戶可可能需要作作出響應(yīng)的的提示對話話框。所有這些東東

49、西都可以以使用無需需包含任何何業(yè)務(wù)知識識的工具實實現(xiàn)??偟牡膩碚f,給給用戶提供供一個統(tǒng)一一、包含所所有東西的的環(huán)境遠比比為某個特特定行為而而優(yōu)化的用用戶界面要要好。如果果有業(yè)務(wù)案案例違背了了這一原則則,請至少少記住這點點:在穩(wěn)定定用戶界之之前,不要要去優(yōu)化它它。典型通用功功能其他的瑣事事還包括,但但并不僅限限于以下幾幾個方面:安全:建立立服務(wù)請求求者身份和和訪問權(quán)限限。通知:確認認某一業(yè)務(wù)務(wù)事件應(yīng)通通知哪些人人。這包括括了維護基基于此的事事件訂閱。輸出管理:在線下進進行信息通通信,而不不是作為一一種服務(wù)響響應(yīng)。典型型例子就是是當客戶請請求必須被被正式確認認時,比如如使用電子子郵件來確確認你剛剛

50、剛通過瀏覽覽器所做的的網(wǎng)上采購購。對那些些主動提供供的消息也也是需要的的,比如每每月的賬單單。輸出管管理必須決決定通過哪哪條渠道去去發(fā)送信息息,以及使使用哪個地地址來發(fā)送送。它應(yīng)該該把消息轉(zhuǎn)轉(zhuǎn)換成接收收方能夠接接收的格式式,發(fā)送消消息,并把把消息添加加到歸檔文文檔。輸出出管理包括括維護那些些被用來將將數(shù)據(jù)轉(zhuǎn)換換成用戶可可理解消息息的模板,以以及潛在接接收者的地地址和渠道道偏好。數(shù)據(jù)轉(zhuǎn)換:把數(shù)據(jù)從從一種格式式轉(zhuǎn)換為另另一個,把把獨立的各各個服務(wù)打打包為一個個服務(wù)用麥當勞勞的說法,開開心樂園餐餐以及分分解拆包,將將服務(wù)請求求拆分成適適用于不同同人群的各各個獨立請請求,匯集集各個回應(yīng)應(yīng),排隊及及出列

51、,或或協(xié)議轉(zhuǎn)換換。流程編排:編排某一一流程,以以確保按適適當順序且且僅相關(guān)時時來執(zhí)行那那些組成流流程的服務(wù)務(wù),確??炜煲馄跁r時發(fā)送告警警信息,以以及確保因因輔助信息息或者逾期期打斷從而而引起的新新流程分支支被啟用。歸檔管理:維護及訪訪問相關(guān)的的歸檔信息息。這些可可能是虛擬擬的檔案,從從某種意義義上是展現(xiàn)現(xiàn)給用戶的的信息,當當他需要某某個檔案時時可以使用用查詢來檢檢索。對那那些從數(shù)據(jù)據(jù)庫中抽取取的內(nèi)容,這這被認為是是正常的,但但是沒有特特殊理由不不對文檔使使用相同的的方法。在在某些情況況下應(yīng)使用用設(shè)備來特特別增加指指派文檔至至檔案中。記錄管理:維護那些些不允許被被更改的信信息。至下而上敘敘述這

52、些實現(xiàn)瑣瑣事的服務(wù)務(wù)不能形成成業(yè)務(wù)服務(wù)務(wù)層次的部部分。不能能使用自上上而下的方方式去設(shè)計計它們,因因為這些服服務(wù)都沒有有所謂的“上”。對這樣樣的服務(wù),使使用旨在實實現(xiàn)最大程程度重用的的自下而上上的方法會會更適合。這使得從從這個階段段起就能夠夠?qū)崿F(xiàn)服務(wù)務(wù)的優(yōu)勝劣劣汰。采用數(shù)據(jù)庫庫化的方法法,很少能能夠?qū)嶋H把把次等通用用功能用更更好的替換換,因為這這要求修改改所有使用用該方法的的應(yīng)用。使使用SOAA則不同,這這種替換很很簡單,前前提是已經(jīng)經(jīng)應(yīng)用了“不去了解解你不需要要了解的事事情”這條規(guī)則則,包括其其推論:服服務(wù)請求不不應(yīng)該包含含超過指定定該請求必必要信息之之外的其他他信息,而而且服務(wù)本本身應(yīng)該在

53、在需要時主主動要求更更多信息。如授權(quán)服服務(wù),該服服務(wù)由某應(yīng)應(yīng)用調(diào)用,旨旨在決定是是否允許某某特定用戶戶在某客戶戶數(shù)據(jù)上執(zhí)執(zhí)行某項功功能比如說說:“我們的雇雇員Donnald Jonees是否被被授權(quán)可以以訪問Accme WWidgeets ccompaany公司司相關(guān)的財財務(wù)數(shù)據(jù)?”。服務(wù)的的簡單版本本可能具備備處理某些些特定情況況的能力,在在此特定情情形下可以以通過使用用雇員功能能對應(yīng)表來來回答這些些問題。稍稍微復(fù)雜一一點的版本本可能會識識別出Doonaldd Jonnes屬于于某個或多多個組的成成員,除了了個人權(quán)限限外還擁有有該組的權(quán)權(quán)限。再更更近一步,授授權(quán)服務(wù)可可能會使用用用戶證書書去

54、區(qū)別雇雇員和客戶戶,并允許許客戶只能能夠訪問他他們自己的的數(shù)據(jù)。一一個完善的的版本可能能會使用標標準化的服服務(wù)去調(diào)用用業(yè)務(wù)流程程管理系統(tǒng)統(tǒng)或者項目目管理系統(tǒng)統(tǒng),詢問DDonalld Joones是是否已經(jīng)被被賦予了任任何我們和和Acmee Widdgetss交易相關(guān)關(guān)的職責。更好的做做法是,授授權(quán)服務(wù)會會記錄請求求和應(yīng)答的的日志,而而簡單的版版本不會這這樣做。組組織可以從從一個服務(wù)務(wù)的版本切切換到另一一個而無需需對調(diào)用服服務(wù)的應(yīng)用用做任何改改變。也有可能設(shè)設(shè)計出根據(jù)據(jù)操作必需需的條件自自動配置自自己的通用用服務(wù)。例例如,授權(quán)權(quán)服務(wù)可以以檢查是否否有服務(wù)可可以告知它它員工對某某些特定客客戶有職責

55、責,并在該該服務(wù)不可可用的情況況下決定只只使用個人人還是群組組的訪問權(quán)權(quán)限。用這這種方式,服服務(wù)可以在在很多組織織之間復(fù)用用。5.不要在在測試上自自尋煩惱為什么SOOA更容易易測試對SOA缺缺點的一種種看法是測測試困難。這種看法法完全不恰恰當,原因因有很多。首先,在SSOA中使使用元數(shù)據(jù)據(jù)可以避免免錯誤被植植入到系統(tǒng)統(tǒng)中。可以以在元數(shù)據(jù)據(jù)層次就對對系統(tǒng)進行行驗證,例例如,保證證所有需要要處理的數(shù)數(shù)據(jù)在使用用前就被匯匯總并校驗驗。在整個個業(yè)務(wù)流程程范圍內(nèi)都都可以實現(xiàn)現(xiàn)這點。當當你可以驗驗證設(shè)計的的時候就不不要測試整整個系統(tǒng)。其次,幾乎乎所有測試試,包括所所有系統(tǒng)集集成測試,一一旦測試基基準被建立

56、立后都可以以自動完成成。但是,需需要一些前前提條件。表現(xiàn)層和和業(yè)務(wù)執(zhí)行行層必須被被嚴格的區(qū)區(qū)分。好在在這是使用用SOA的的一種很自自然的方式式。對所有有輸入,都都應(yīng)該存在在相應(yīng)的XXSD。使使用該XSSD,可以以生成測試試記錄。同同理,也可可以生成帶帶有預(yù)期輸輸出結(jié)果的的測試記錄錄。在測試試過程中,不不能產(chǎn)生可可以證明系系統(tǒng)運行正正常的任何何輸出地方方,必須在在測試腳本本中添加專專門為此生生成的附加加輸出的查查詢語句。當測試開開始運行時時,測試記記錄被一條條條輸入系系統(tǒng),然后后輸出的結(jié)結(jié)果自動和和期望的結(jié)結(jié)果進行對對比。這會會產(chǎn)生一個個異常列表表,其中每每項都應(yīng)仔仔細考慮。測試可以以按需進行行

57、。自然,測測試的結(jié)果果可能取決決于存積在在數(shù)據(jù)庫中中的數(shù)據(jù),所所以這點需需要進行彌彌補。而且且,系統(tǒng)不不可表現(xiàn)出出時間相關(guān)關(guān)的行為。系統(tǒng)必須須有能力響響應(yīng)每隔一一段時間(它對自動動化測試序序列更適合合)就產(chǎn)生生的事件,而而不是花上上一周時間間去等待某某個基于時時間的觸發(fā)發(fā)器被觸發(fā)發(fā)。用戶界界面的測試試應(yīng)該單獨獨進行,而而且永遠不不在集成測測試中使用用。第三,SOOA的設(shè)計計趨向于產(chǎn)產(chǎn)生更加健健壯的系統(tǒng)統(tǒng):系統(tǒng)出出錯的機會會更少。SSOA減少少了信息系系統(tǒng)為了協(xié)協(xié)同工作而而需要達成成協(xié)議的因因素數(shù)量,這這樣一來,導(dǎo)導(dǎo)致在某關(guān)關(guān)鍵因素上上產(chǎn)生分歧歧的設(shè)計錯錯誤的概率率也減少了了。就算真真的出錯,也

58、也能夠在造造成損害之之前檢測到到。使用SSOA,消消息在被處處理前會被被驗證,這這樣可以判判斷消息是是否格式正正確、是否否符合相應(yīng)應(yīng)的XSDD??尚行詼y試試最后,作為為數(shù)據(jù)庫時時代特有的的產(chǎn)物測試環(huán)境境和生產(chǎn)環(huán)環(huán)境必須嚴嚴格區(qū)分,從從此不再需需要了,而而且有時候候這也是不不適合的。這是很有有可能的,這這是因為我我們不再實實際進行系系統(tǒng)測試了了,而是對對測試通路路和信息處處理的方式式進行測試試。SOAA提供了三三重安全的的、有效區(qū)區(qū)分測試消消息和生產(chǎn)產(chǎn)消息的方方法。除了了被封裝好好的消息,其其他每個消消息自身和和相應(yīng)的命命名空間都都包含版本本號。而且且每個消息息都包含一一個標簽用用以指示它它是用

59、于測測試還是生生產(chǎn)。所需需的只是一一個SOAA網(wǎng)關(guān),它它存在于防防火墻內(nèi)部部,對每條條進入消息息進行如下下處理:校驗消息以以確定其是是否與一個個已知XSSD的版本本相符(被被封裝好的的消息除外外)。使用我們對對相應(yīng)XSSD的副本本對消息進進行校驗,以以確定其是是否有效。如果消息用用于生產(chǎn)的的,就驗證證消息版本本號是否被被允許用于于生產(chǎn)。只只有這樣,消消息才能夠夠被傳遞到到生產(chǎn)系統(tǒng)統(tǒng)。其他所所謂的“生產(chǎn)”消息都會會被拒絕。如果消息用用于測試,消消息可能會會被傳遞到到指定的測測試版系統(tǒng)統(tǒng)。在特殊殊情況下,消消息如果只只是用來做做數(shù)據(jù)檢索索,那也有有可能被傳傳遞到生產(chǎn)產(chǎn)系統(tǒng)。只有在消息息被完全測測試

60、過后,生生產(chǎn)版本的的注冊庫和和XSD才才能得以更更新。這樣的處理理方法不僅僅僅只是三三重安全的的,而且使使得消息的的路由能以以一種合乎乎實際的方方式得到測測試。這也也大大降低低了從測試試系統(tǒng)切換換到生產(chǎn)系系統(tǒng)時重新新進行配置置的需求。因為這種種重新配置置天生就是是不可測試試的,常常常成為錯誤誤的根源。發(fā)布經(jīng)理理只能通過過在半夜或或者周末發(fā)發(fā)布新的版版本軟件來來彌補這類類錯誤;這這樣,就算算新版本出出現(xiàn)了任何何錯誤,也也可以在有有人發(fā)現(xiàn)錯錯誤之前恢恢復(fù)到老版版本。但如如果這樣的的變化影響響到了其他他組織那就就沒有辦法法這樣操作作了。SOOA發(fā)布管管理要簡單單得多!我們對于SSOA測試試的一般認認

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
  • 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負責。
  • 6. 下載文件中如有侵權(quán)或不適當內(nèi)容,請與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

評論

0/150

提交評論