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