CIO如何避開(kāi)SOA部署中的陷阱?
企業(yè)用戶(hù)對(duì)SOA認(rèn)識(shí)上還存在誤區(qū),在這樣的狀況下部署SOA,可能會(huì)把企業(yè)的業(yè)務(wù)帶入歧途,了解本文中的6個(gè)問(wèn)題,或許可幫助CIO避開(kāi)SOA部署中的陷阱。
圍繞服務(wù)導(dǎo)向架構(gòu)(Service Oriented Architecture,SOA),企業(yè)用戶(hù)存在各種各樣模糊的認(rèn)識(shí),這些模糊認(rèn)識(shí)很可能將企業(yè)的SOA項(xiàng)目引入誤區(qū)?!缎畔⒅芸犯鶕?jù)調(diào)研、訪(fǎng)談以及專(zhuān)家意見(jiàn),整理出較為中立客觀的分析及看法,供企業(yè)用戶(hù)在了解SOA時(shí)加以參考,以更明晰的思路決定自己的SOA部署計(jì)劃。
1. 為什么不同的人對(duì)SOA有不同的解釋?zhuān)?/strong>
SOA 的定義取決于你在組織業(yè)務(wù)中的角色。
對(duì)于業(yè)務(wù)執(zhí)行人員,SOA創(chuàng)建了企業(yè)希望向其客戶(hù)和合作伙伴或組織的其他部分公開(kāi)的一組服務(wù)。對(duì)于IT架構(gòu)師,SOA是一種體系結(jié)構(gòu)樣式,此樣式至少需要有服務(wù)提供者、請(qǐng)求者和服務(wù)描述。對(duì)于程序員,SOA是一個(gè)由標(biāo)準(zhǔn)、工具和Web服務(wù)等技術(shù)加以補(bǔ)充的編程模型。
當(dāng)然,企業(yè)信息技術(shù)系統(tǒng)及流程管理人員之所以存在似是而非的SOA概念,還可能因?yàn)檐浖S商沒(méi)有向企業(yè)用戶(hù)解釋清楚SOA的含義。比如,SOA中的服務(wù)(Service)并非我們理解的傳統(tǒng)企業(yè)服務(wù),而是軟件開(kāi)發(fā)的專(zhuān)業(yè)用語(yǔ),指技術(shù)層面的、細(xì)顆粒度的功能模塊,還遠(yuǎn)未達(dá)到與企業(yè)業(yè)務(wù)流程直接對(duì)應(yīng)的程度。軟件廠商在強(qiáng)調(diào)SOA給企業(yè)帶來(lái)巨大商業(yè)價(jià)值的同時(shí),并沒(méi)有具體闡釋這一點(diǎn)。
2. 業(yè)務(wù)流程管理(BPM)和SOA是何關(guān)系?
BPM與SOA既可以單獨(dú)部署,也可以組合使用。
如果企業(yè)的IT系統(tǒng)比較簡(jiǎn)單,企業(yè)規(guī)模比較小,用同樣的一組IT人員就可以控制所有IT系統(tǒng),那么,部署一個(gè)不使用SOA的BPM套件,就可以獲得快速創(chuàng)建、執(zhí)行和監(jiān)控/管理業(yè)務(wù)流程的能力,而不必部署SOA。但是,如果BPM套件由一個(gè)IT小組部署,而同時(shí)使用來(lái)自另一個(gè)IT小組的系統(tǒng)服務(wù),那么SOA就可以幫上忙了。
如果企業(yè)的IT系統(tǒng)足夠復(fù)雜,可以考慮將BPM和SOA組合使用,通常在SOA上實(shí)施BPM解決方案可以獲得更大的業(yè)務(wù)靈活性。如果BPM項(xiàng)目達(dá)到一定的范圍和規(guī)模時(shí)效果才能顯現(xiàn),最好先開(kāi)發(fā)出BPM,而將SOA組件留待以后考慮。
最好一開(kāi)始就讓業(yè)務(wù)流程團(tuán)隊(duì)和IT架構(gòu)團(tuán)隊(duì)保持持續(xù)良好溝通,針對(duì)未來(lái)進(jìn)行可行性規(guī)劃。例如,BPM套件本身應(yīng)該能夠提供豐富的連通性,以便無(wú)需全面應(yīng)用完善的SOA來(lái)使得BPM運(yùn)行,不要讓BPM與SOA成為互不連通的兩套系統(tǒng)。
3. “瀑布式”開(kāi)發(fā)與迭代式開(kāi)發(fā)哪個(gè)適合SOA?
企業(yè)部署SOA最好是通過(guò)迭代模型來(lái)實(shí)現(xiàn)。
迭代模型將標(biāo)識(shí)一組對(duì)業(yè)務(wù)非常關(guān)鍵且價(jià)值高的功能來(lái)進(jìn)行服務(wù)支持工作。此模型可隨后供后續(xù)服務(wù)支持項(xiàng)目和活動(dòng)使用。如果采用傳統(tǒng)應(yīng)用程序開(kāi)發(fā)時(shí)使用的“瀑布式”開(kāi)發(fā)方法部署SOA,可能導(dǎo)致創(chuàng)建僅能部署一次的服務(wù),而無(wú)法在以后對(duì)其進(jìn)行重用。
使用迭代式開(kāi)發(fā)部署SOA,可通過(guò)允許組織逐步納入到系統(tǒng)中,從而減少出現(xiàn)業(yè)務(wù)故障的風(fēng)險(xiǎn)。同時(shí),任何組織接受和容納更改的能力都是有限的,迭代式開(kāi)發(fā)可確保引入新的流程和系統(tǒng)帶來(lái)的更改非常適應(yīng)企業(yè)的容量,且不會(huì)在企業(yè)中引起大的混亂。
同時(shí),在SOA中,新功能并不一定總是僅受單個(gè)業(yè)務(wù)部門(mén)(Line Of Business,LOB)的約束,需要考慮很多跨組織的依賴(lài)關(guān)系,迭代式開(kāi)發(fā)也有助于解決跨組織的協(xié)調(diào)。
4. Web服務(wù)與SOA是一樣的嗎?
Web服務(wù)僅僅是目前最流行的SOA實(shí)現(xiàn)技術(shù),但并非可以用于開(kāi)發(fā)SOA的唯一技術(shù)。
SOA與Web服務(wù)(Web Service)的數(shù)量無(wú)關(guān)。對(duì)于SOA來(lái)說(shuō),真正有價(jià)值的是對(duì)于Web服務(wù)的再利用而不是Web服務(wù)本身。即使將所有信息技術(shù)系統(tǒng)都用Web服務(wù)實(shí)現(xiàn),也不見(jiàn)得就等于部署了SOA。有些企業(yè)使用了太多的Web服務(wù)來(lái)做同樣的IT服務(wù),結(jié)果部署SOA的效果非常差。將Web服務(wù)等同于SOA,很容易發(fā)生在一些希望快速實(shí)現(xiàn)SOA但是并未真正理解SOA的企業(yè)身上。
很多SOA項(xiàng)目都涉及到集成遺留數(shù)據(jù),此類(lèi)數(shù)據(jù)包含在使用MQSeries和CORBA(Common Object Request Broker Architecture)等“舊”技術(shù)的系統(tǒng)中。其中的許多技術(shù)都已針對(duì)SOA進(jìn)行了調(diào)整,不管有沒(méi)有Web服務(wù)都可使用。事實(shí)上,企業(yè)可以只使用MQSeries、CORBA甚至遠(yuǎn)程過(guò)程調(diào)用(Remote Procedure Call,RPC)技術(shù)就能實(shí)現(xiàn)SOA。
5. 所有應(yīng)用程序或環(huán)境都適合部署SOA嗎?
不是所有的應(yīng)用環(huán)境都適合部署SOA,很多情況下,部署SOA的效果可能會(huì)適得其反。
SOA可以根據(jù)需求通過(guò)網(wǎng)絡(luò)對(duì)各種應(yīng)用組件進(jìn)行分布式部署、組合和使用,從而滿(mǎn)足用戶(hù)統(tǒng)一服務(wù)界面、快速部署新業(yè)務(wù)等需求。但是,如果企業(yè)的IT系統(tǒng)并不復(fù)雜,系統(tǒng)基本上都建立在同一架構(gòu)上,整合系統(tǒng)并不困難,那么實(shí)施SOA并不能給企業(yè)帶來(lái)太多好處,反而可能會(huì)帶來(lái)負(fù)面影響。
專(zhuān)家認(rèn)為,針對(duì)某些應(yīng)用程序或IT環(huán)境,SOA可能并不值得推薦。比如,不需要組件或者應(yīng)用集成的、獨(dú)立的、非分布式的應(yīng)用程序;應(yīng)用范圍非常狹小或者生命周期短的應(yīng)用程序;建立在同一架構(gòu)上的應(yīng)用程序環(huán)境等等。對(duì)于一些企業(yè)來(lái)說(shuō),采用了單一廠商的技術(shù)和產(chǎn)品,擁有同一架構(gòu)的IT環(huán)境,就不需要那么急迫地實(shí)施SOA,或者實(shí)施的效果并不是很明顯。
有些企業(yè)很多年前就已經(jīng)成形了業(yè)務(wù)支撐系統(tǒng),雖然經(jīng)過(guò)了很多次修修補(bǔ)補(bǔ),但都一直在正常運(yùn)作。專(zhuān)業(yè)人士認(rèn)為,這種結(jié)構(gòu)老、補(bǔ)丁多、又肩負(fù)重任的系統(tǒng),與其用SOA動(dòng)大手術(shù),還不如等這種系統(tǒng)壽終正寢,重新開(kāi)發(fā)符合SOA架構(gòu)的新系統(tǒng),進(jìn)行自然淘汰比較好。
6. 企業(yè)應(yīng)該如何著手部署SOA?
部署SOA應(yīng)該制定明確的路線(xiàn)圖,循序漸進(jìn)。
企業(yè)部署SOA時(shí)最好先制訂一個(gè)清晰的路線(xiàn)圖,然后從單個(gè)應(yīng)用程序開(kāi)始構(gòu)建SOA架構(gòu),可以先從比較簡(jiǎn)單的應(yīng)用開(kāi)始。這樣,企業(yè)可以在做出全面部署SOA之前先衡量投資回報(bào)率,并在出現(xiàn)大的問(wèn)題之前積累足夠的經(jīng)驗(yàn)。
當(dāng)企業(yè)計(jì)劃部署SOA項(xiàng)目時(shí),CIO要注意各種細(xì)節(jié),比如,供應(yīng)商提供的軟件是否支持Web服務(wù)和SOA;開(kāi)發(fā)某些應(yīng)用程序時(shí),該應(yīng)用是否要支持其他業(yè)務(wù)需求;哪些應(yīng)用需要嵌入對(duì)Web服務(wù)的支持等。如果企業(yè)大規(guī)模部署SOA,還需要建立企業(yè)服務(wù)總線(xiàn)(ESB),通過(guò)ESB提供服務(wù)請(qǐng)求。當(dāng)然ESB的建立也需要一個(gè)過(guò)程,CIO必須注意部署節(jié)奏。
盡管目前已經(jīng)可以找到很多關(guān)于SOA的知識(shí),但部署SOA仍然非常困難。其中最直接的原因在于SOA需要企業(yè)部門(mén)之間的高度溝通,而且要求整個(gè)企業(yè)都為變革做好準(zhǔn)備。變化帶來(lái)的問(wèn)題解決之后,可能又會(huì)出現(xiàn)技術(shù)問(wèn)題。因此,企業(yè)部署SOA需要提前做好各種各樣的準(zhǔn)備,并且有長(zhǎng)期的詳細(xì)計(jì)劃安排。
- 面料成本該如何核算?2017-10-19
- 紡織業(yè)信息化之路如何走?2017-10-24
- 主要軟件生產(chǎn)國(guó)和地區(qū)如何發(fā)展軟件產(chǎn)業(yè)2017-10-30
- 如何保證ERP在上線(xiàn)后運(yùn)營(yíng)穩(wěn)定?2017-11-07
- 如何運(yùn)用ERP進(jìn)行生產(chǎn)管理?2018-01-12