1.SOA并非純粹的技術(shù)性方法
如果得以成功執(zhí)行,服務(wù)導(dǎo)向架構(gòu)(SOA)并非只是一個(gè)技術(shù)性架構(gòu),理解這一點(diǎn)是非常重要。SOA范例旨在于對(duì)商業(yè)流程進(jìn)行建模,這些商業(yè)流程并不能總是得到技術(shù)組件的直接支持。最終,服務(wù)可能由技術(shù)組件執(zhí)行,但是商業(yè)流程本身要比支持它們的這些服務(wù)重要得多。
作為一種技術(shù),SOA是一個(gè)工具,雖然這種技術(shù)本身沒(méi)有提供直接的價(jià)值,但是與EJB或者.NET組件相比,SOA是一種更為廉價(jià)的代碼行服務(wù)開(kāi)發(fā)方式。另外,SOA應(yīng)被當(dāng)作是其它利益的實(shí)現(xiàn)者,比如改進(jìn)更廣泛的再利用,提高對(duì)商業(yè)流程的響應(yīng)性以及與使商業(yè)流程保持更好協(xié)調(diào)性。
2.SOA不一定意味著網(wǎng)絡(luò)服務(wù)
很多技術(shù)人員對(duì)SOA存在這樣一種誤解,認(rèn)為SOA意味著必需使用網(wǎng)絡(luò)服務(wù)。雖然網(wǎng)絡(luò)服務(wù)可作為SOA策略的一部分,但它并不是必需的部分。服務(wù)的定義可以基于除HTTP以外的其它標(biāo)準(zhǔn)。和具體的實(shí)現(xiàn)技術(shù)相比,關(guān)注商業(yè)流程和服務(wù)的需求更為重要。通常,服務(wù)的環(huán)境將有助于決定其執(zhí)行方式。
例如,對(duì)于包含了關(guān)鍵商業(yè)事務(wù)的服務(wù)而言,使用網(wǎng)絡(luò)服務(wù)是不利的,因?yàn)槲覀儫o(wú)法通過(guò)SOAP/HTTP協(xié)議來(lái)保證交易。而且,很多服務(wù)可能需要異步操作,在這種情況下,基于隊(duì)列和通道的消息系統(tǒng)可能是進(jìn)行提供服務(wù)的最佳方式。當(dāng)然,有效負(fù)載和界面依然可以使用XML來(lái)定義。
3.可以使用現(xiàn)有架構(gòu)建立SOA
很多組織對(duì)于SOA可以使用現(xiàn)行架構(gòu)來(lái)建立感到非常驚訝,例如,.NET和J2EE平臺(tái)都可為網(wǎng)絡(luò)服務(wù)開(kāi)發(fā)、XML解析與生成,以及與MSMQ和JMS這類(lèi)消息系統(tǒng)進(jìn)行通信提供支持。
SOA堆棧常常缺乏流程管理層或自動(dòng)化層面。不過(guò),許多公司現(xiàn)在已經(jīng)在企業(yè)應(yīng)用集成 (EAI)工具上進(jìn)行了投資,很多EAI工具能夠提供流程自動(dòng)化和管理層功能,它們可以從現(xiàn)有的應(yīng)用程序或在.NET和J2EE平臺(tái)上建立的應(yīng)用程序中對(duì)服務(wù)進(jìn)行訪問(wèn)。
4.SOA是一種(從組件、對(duì)象等)進(jìn)化而來(lái)的方法
服務(wù)導(dǎo)向架構(gòu)并不是一種全新的解決方案;相反,SOA是技術(shù)與架構(gòu)的自然進(jìn)化。系統(tǒng)架構(gòu)一直在不斷進(jìn)步,與商業(yè)保持高度一致。系統(tǒng)設(shè)計(jì)師與商家很早就認(rèn)識(shí)到將技術(shù)與商業(yè)流程相協(xié)調(diào)的重要性,包括充分應(yīng)用并合理化技術(shù)資源,以及為商業(yè)提供更好的支持。
SOA也在一定程度上源于早已有之的企業(yè)架構(gòu)理論。企業(yè)架構(gòu)對(duì)技術(shù)進(jìn)行評(píng)估,但是更重要的是,它關(guān)注整個(gè)企業(yè)和全部的商業(yè)流程并提供了做出技術(shù)決策的背景信息。SOA工具則融合了互聯(lián)網(wǎng)技術(shù),如HTTP和XML,以及綜合技術(shù),如消息總線、轉(zhuǎn)譯技術(shù)和連接技術(shù)。
5.流程自動(dòng)化是SOA的關(guān)鍵優(yōu)勢(shì)
許多組織和技術(shù)專(zhuān)家錯(cuò)誤地關(guān)注服務(wù)架構(gòu)內(nèi)的服務(wù)實(shí)現(xiàn)與交付,不幸的是,他們沒(méi)有抓住重點(diǎn),SOA的真正價(jià)值體現(xiàn)在它是一個(gè)商業(yè)自動(dòng)化工具。最終,軟件和系統(tǒng)將會(huì)提高商業(yè)或組織的效率,這可以根據(jù)組織執(zhí)行的活動(dòng)或者流程來(lái)定義。因此SOA不應(yīng)將焦點(diǎn)放在服務(wù)上,而應(yīng)放在流程以及流程的改進(jìn)上。
當(dāng)然,我們也需要服務(wù)為流程提供支持。但是對(duì)于提高效率和改進(jìn)流程的目標(biāo)而言,它們是次要的,服務(wù)本身的價(jià)值有限。
6.SOA架構(gòu)可能高度復(fù)雜
從某一角度看,SOA架構(gòu)可以相當(dāng)簡(jiǎn)單。例如,開(kāi)發(fā)一個(gè)商業(yè)流程并確定所需的服務(wù),這種要求就合理而直接。但是,要在數(shù)據(jù)和服務(wù)之間進(jìn)行平衡,并實(shí)現(xiàn)有意義的目標(biāo)則要復(fù)雜得多。
例如,假設(shè)有這樣一種情況:用戶(hù)使用訂單服務(wù)在系統(tǒng)中下訂單。這是相當(dāng)簡(jiǎn)單的操作。但是如果您希望將訂單上的數(shù)據(jù)和來(lái)自其它服務(wù)的數(shù)據(jù)關(guān)聯(lián)起來(lái)呢?如果所有的服務(wù)共享同一個(gè)數(shù)據(jù)源,這時(shí)您可以跳過(guò)服務(wù)層,并生成報(bào)告。但是,如果一些數(shù)據(jù)屬于本地服務(wù),一些數(shù)據(jù)屬于原有的主機(jī)系統(tǒng),并且另外一些數(shù)據(jù)屬于商業(yè)應(yīng)用程序(比如SAP),將這些數(shù)據(jù)集成在一起將會(huì)特別復(fù)雜。
7.SOA需要深入了解商業(yè)數(shù)據(jù)
因?yàn)镾OA關(guān)注于商業(yè)流程,因此理解這些與流程密切相關(guān)的數(shù)據(jù)至關(guān)重要。例如,一個(gè)訂單流程會(huì)包含很多重要的數(shù)據(jù)項(xiàng),比如訂單、客戶(hù)、運(yùn)輸信息、發(fā)票、付款和收據(jù);更重要的是必須以一種標(biāo)準(zhǔn)的方式來(lái)記錄這些數(shù)據(jù),從而使流程中的每項(xiàng)服務(wù)都能以同樣的方式理解這些數(shù)據(jù)。
對(duì)于現(xiàn)在擁有信息架構(gòu)的組織而言,這并不是一個(gè)大問(wèn)題。但如果大型組織沒(méi)有信息架構(gòu)或者信息架構(gòu)支持有限,這一問(wèn)題會(huì)導(dǎo)致實(shí)施過(guò)程中的長(zhǎng)時(shí)間中斷。因?yàn)榇笮推髽I(yè)通常擁有的數(shù)據(jù)多種多樣,所以一般建議他們采用進(jìn)化的方式來(lái)定義信息架構(gòu),即與“大爆炸”方式相反的方法。這意味著不必花費(fèi)四年的時(shí)間來(lái)定義數(shù)據(jù)模型,而只需要在開(kāi)發(fā)服務(wù)過(guò)程中花費(fèi)少量時(shí)間來(lái)定義與那些服務(wù)相關(guān)的數(shù)據(jù)。這樣,在執(zhí)行每項(xiàng)服務(wù)或者流程時(shí),就可以發(fā)展相關(guān)的信息架構(gòu)來(lái)包含必需的數(shù)據(jù)項(xiàng)。
8.服務(wù)可簡(jiǎn)單可復(fù)合
定義服務(wù)可能是一個(gè)艱巨的任務(wù)。在某些情況下,我們很清楚需要哪些服務(wù);很多時(shí)候,服務(wù)相當(dāng)簡(jiǎn)單。例如一個(gè)查找客戶(hù)的服務(wù),可能需要使用一些標(biāo)準(zhǔn)來(lái)查找用戶(hù)并為服務(wù)的使用者提供標(biāo)準(zhǔn)化的客戶(hù)記錄。
然而,服務(wù)也可以復(fù)合形式存在。這意味著“超級(jí)服務(wù)”可以提供一個(gè)標(biāo)準(zhǔn)的界面,就像我們剛才查找客戶(hù)的服務(wù)所提供的那樣。在前面的例子中,暗指所有的客戶(hù)信息都存儲(chǔ)在同一個(gè)資料庫(kù)中,所以很容易進(jìn)行查找。但如果一些客戶(hù)資料存放在大型主機(jī)中,一部分存放在SAP中,一部分存放在其它應(yīng)用程序中,而另外一部分存放在Oracle數(shù)據(jù)庫(kù)中呢?讓我們假定在每一種系統(tǒng)上已經(jīng)建立了查找服務(wù)的界面。換句話(huà)說(shuō),我們擁有在大型主機(jī)、SAP、其他的應(yīng)用程序和Oracle數(shù)據(jù)庫(kù)上查找客戶(hù)的服務(wù)。我們新的查找客戶(hù)的服務(wù)可以使用所有這些現(xiàn)有的服務(wù)來(lái)查找客戶(hù)。現(xiàn)在,因?yàn)槲覀兊姆⻊?wù)要調(diào)用其它服務(wù),它變成一個(gè)復(fù)合式的服務(wù)。當(dāng)一個(gè)自動(dòng)化流程模型自己成為一項(xiàng)服務(wù)時(shí),也會(huì)建立復(fù)合式服務(wù)。
9.SOA的自動(dòng)化可能有很多層面
自動(dòng)化可以發(fā)生在不同的層面,這是服務(wù)架構(gòu)經(jīng)常被忽視的一個(gè)特點(diǎn)。很多SOA架構(gòu)的錯(cuò)誤在于只看到某一個(gè)層面的自動(dòng)化,然而,在一個(gè)SOA解決方案中,自動(dòng)化至少可以應(yīng)用到兩個(gè)關(guān)鍵領(lǐng)域。
第一個(gè)也是最明顯領(lǐng)域的是商業(yè)流程層,在設(shè)計(jì)流程的時(shí)候,其中的步驟已經(jīng)進(jìn)行了連接并形成自動(dòng)化。因?yàn)檫@些流程通常是基于日常商業(yè)活動(dòng),往往與人類(lèi)的交互活動(dòng)有關(guān)。在人類(lèi)交互流程中實(shí)現(xiàn)自動(dòng)化是一個(gè)重要的自動(dòng)化層面。
另外一個(gè)重要的自動(dòng)化層面是沒(méi)有人參與的系統(tǒng)交互層,過(guò)去幾年來(lái),集成工具已經(jīng)應(yīng)用到這一領(lǐng)域。通過(guò)對(duì)系統(tǒng)間任務(wù)進(jìn)行自動(dòng)化,往往可以提高流程的總體效率。
在這些層面上使用不同的工具也是很重要,應(yīng)該對(duì)人類(lèi)交互、程序或系統(tǒng)間的交互區(qū)別考慮,從而采取不同的策略。
10.服務(wù)應(yīng)當(dāng)遵循相同的界面標(biāo)準(zhǔn)(包括協(xié)議和數(shù)據(jù))
使用標(biāo)準(zhǔn)化的方法進(jìn)行通訊對(duì)于服務(wù)而言非常重要。在SOA世界中,通訊由兩個(gè)組件構(gòu)成。一個(gè)是服務(wù)進(jìn)行通信的網(wǎng)絡(luò)協(xié)議,就好比是人們每天使用的通訊媒介一樣,例如,如果您想和老板通訊,最好搞清楚老板喜歡接電話(huà)還是電子郵件。
第二個(gè)組件是通訊的數(shù)據(jù)或者語(yǔ)言,一旦您同意將HTTP或者JMS作為通訊機(jī)制,就等于確定了您交流的語(yǔ)言,例如,您的老板說(shuō)法語(yǔ)而您說(shuō)英語(yǔ),可能就會(huì)造成通訊困難。在服務(wù)領(lǐng)域,通常使用XML作為語(yǔ)言,但這并沒(méi)有提供足夠的信息。必需對(duì)服務(wù)需要的數(shù)據(jù)進(jìn)行清晰定義并達(dá)成一致,這樣服務(wù)提供商與服務(wù)用戶(hù)就能進(jìn)行有效的通訊。
11.可以將服務(wù)外包
服務(wù)的另外一個(gè)優(yōu)點(diǎn)就是它們不必作為整體組件購(gòu)買(mǎi),不必在內(nèi)部進(jìn)行管理,也不必從頭進(jìn)行開(kāi)發(fā)。相反,可以將服務(wù)外包。這意味著在您需要一項(xiàng)服務(wù)向政府部門(mén)提交法規(guī)遵從文件時(shí),您不必自己建立這項(xiàng)服務(wù)。各類(lèi)公司為幾乎每個(gè)產(chǎn)業(yè)部門(mén)提供各種服務(wù)。利用服務(wù)外包,您可以將主要精力放在與最重要的SOA策略——流程——上面。
外包方式的一個(gè)不足之處在于,如果您的競(jìng)爭(zhēng)對(duì)手使用了同樣的服務(wù),您可能會(huì)喪失一些競(jìng)爭(zhēng)優(yōu)勢(shì)。
另外一個(gè)需要考慮的問(wèn)題是性能,這依賴(lài)于很多因素,主要包括網(wǎng)絡(luò)連接性、可用性和反應(yīng)時(shí)間。采用外部網(wǎng)絡(luò)的服務(wù)可能會(huì)使您商業(yè)流程的性能降級(jí)。
12.服務(wù)可以在現(xiàn)有的系統(tǒng)和軟件基礎(chǔ)上建立
許多組織誤認(rèn)為SOA方式?jīng)]有考慮到原有系統(tǒng),如大型主機(jī)應(yīng)用程序。實(shí)際上,SOA的一個(gè)最強(qiáng)大的價(jià)值就在于它允許組織重新利用大型主機(jī)和其它原有資產(chǎn),這一點(diǎn)尤其重要,因?yàn)楹诵纳虡I(yè)邏輯和核心商業(yè)數(shù)據(jù)通常保存在私有的原有系統(tǒng)中。通過(guò)服務(wù)來(lái)訪問(wèn)核心商業(yè)邏輯和數(shù)據(jù),可以立即在自動(dòng)化流程模型中重新利用這些資產(chǎn)。
當(dāng)然,大型主機(jī)并不是唯一的原有數(shù)據(jù)源。微型計(jì)算機(jī)系統(tǒng),如AS/400、VAX和HP3000等等,都可以以各種方式提供服務(wù)。很多工具都可以幫助與這些所有權(quán)系統(tǒng)進(jìn)行通訊,并將它們的信息作為標(biāo)準(zhǔn)化的服務(wù)來(lái)傳遞。
13.性能是SOA系統(tǒng)的關(guān)鍵
盡管SOA為一個(gè)組織提供了很多利益,包括協(xié)調(diào)技術(shù)與商業(yè),增強(qiáng)靈活性等;它與性能有著密切的關(guān)系。因?yàn)樵诘湫偷腟OA環(huán)境中,應(yīng)用程序往往被高度細(xì)分,而程序之間的數(shù)據(jù)關(guān)聯(lián)也很緩慢,在決策支持和報(bào)告系統(tǒng)中特別需要考慮這一點(diǎn),以往這些系統(tǒng)只依賴(lài)少量數(shù)據(jù)源。
性能最大化的關(guān)鍵在于了解應(yīng)用程序和系統(tǒng)性能在何處對(duì)于商業(yè)最重要。構(gòu)建一個(gè)高性能的系統(tǒng)來(lái)支持一個(gè)并不需要它的商業(yè)流程是無(wú)益的。一旦確定關(guān)鍵流程,您只需要在有必要的地方改進(jìn)并提升性能就行了。
14.SOA以四個(gè)組件為基礎(chǔ)
一個(gè)成功的SOA交付計(jì)劃有四個(gè)組件。第一個(gè)組件是定義商業(yè)流程,需要哪些服務(wù)來(lái)支持它們,以及哪些數(shù)據(jù)與它們相關(guān)。這是關(guān)于SOA的商業(yè)分析。
第二個(gè)組件是SOA的架構(gòu)和模式,這是一組描述如何定義與實(shí)現(xiàn)服務(wù)的規(guī)則,指定通用的交付與使用模式,并制訂開(kāi)發(fā)服務(wù)需要遵循的原則與標(biāo)準(zhǔn)。
第三個(gè)組件是SOA的基礎(chǔ)結(jié)構(gòu),這包括網(wǎng)絡(luò)、服務(wù)器、存儲(chǔ)設(shè)備、消息工具、整合工具以及流程自動(dòng)化工具等等,它們支持服務(wù)與商業(yè)流程的開(kāi)發(fā)與交付。
第四個(gè)組件是SOA的開(kāi)發(fā)計(jì)劃。該計(jì)劃確定了服務(wù)開(kāi)發(fā)與流程實(shí)現(xiàn)的先后次序,并且指導(dǎo)形成新服務(wù)與新流程項(xiàng)目。
15.建立SOA可能相當(dāng)麻煩
盡管SOA是一個(gè)進(jìn)化性技術(shù),盡管在SOA領(lǐng)域已經(jīng)具備相當(dāng)豐富的知識(shí)儲(chǔ)備,但由于各種原因,建立SOA仍然相當(dāng)麻煩。最主要的原因在于SOA和其它變革一樣:它需要大量的溝通與社會(huì)化,使組織為變革做好準(zhǔn)備。
在克服了變革的困難之后,還可能有其它技術(shù)性問(wèn)題。這些問(wèn)題包括建立適當(dāng)?shù)姆⻊?wù)交付和使用模式、培訓(xùn)技術(shù)開(kāi)發(fā)團(tuán)隊(duì)、以及為支持SOA開(kāi)發(fā)模式對(duì)組織進(jìn)行的可能的結(jié)構(gòu)變化。盡管SOA的技術(shù)組件可以在隔離的環(huán)境下進(jìn)行測(cè)試和驗(yàn)證,SOA依然是一個(gè)全企業(yè)參與的方法,因而需要付出更多的努力來(lái)規(guī)劃服務(wù)架構(gòu)的控制與管理。
核心關(guān)注:拓步ERP系統(tǒng)平臺(tái)是覆蓋了眾多的業(yè)務(wù)領(lǐng)域、行業(yè)應(yīng)用,蘊(yùn)涵了豐富的ERP管理思想,集成了ERP軟件業(yè)務(wù)管理理念,功能涉及供應(yīng)鏈、成本、制造、CRM、HR等眾多業(yè)務(wù)領(lǐng)域的管理,全面涵蓋了企業(yè)關(guān)注ERP管理系統(tǒng)的核心領(lǐng)域,是眾多中小企業(yè)信息化建設(shè)首選的ERP管理軟件信賴(lài)品牌。
轉(zhuǎn)載請(qǐng)注明出處:拓步ERP資訊網(wǎng)http://www.ezxoed.cn/
本文標(biāo)題:理解SOA概念及其潛在優(yōu)點(diǎn)
本文網(wǎng)址:http://www.ezxoed.cn/html/consultation/10839324380.html