SOA中間件展望:前景廣闊 現(xiàn)實(shí)問題重重
2008-4-7 15:40:00 來源:物流天下 編輯:56885 關(guān)注度:摘要:... ...
一定要選擇SOA的中間件?
中間件是什么?可以說中間件是一類軟件產(chǎn)品,又可以進(jìn)一步把它劃分為應(yīng)用服務(wù)器、消息中間件、交易中間件、門戶服務(wù)器和工作流系統(tǒng)等多個類別,不同的中間件解決不同的問題。SOA是什么?SOA是一種軟件系統(tǒng)提供功能的架構(gòu)式樣。組成這樣的一個架構(gòu),需要有服務(wù)的請求者、服務(wù)的提供者、以及服務(wù)的描述者,其中,服務(wù)的請求者、提供者要遵循相同的規(guī)范和標(biāo)準(zhǔn),才能實(shí)現(xiàn)基于互聯(lián)網(wǎng)的調(diào)用,描述者則要把這些服務(wù)描述清楚,使請求者能夠了解服務(wù)是做什么的、到那里去找,如何訪問一個服務(wù),這是一個支持松偶合的技術(shù)架構(gòu)。要說一個是產(chǎn)品,一個是架構(gòu),兩者結(jié)合在一起,即所謂符合或者支持SOA架構(gòu)的中間件產(chǎn)品,或者干脆稱自己是SOA架構(gòu)的中間件產(chǎn)品,這意味著什么?對于用戶而言,在采購中間件產(chǎn)品的時候,是否一定要購買這樣產(chǎn)品呢?
先來看所謂SOA架構(gòu)的中間件產(chǎn)品的含義,為此,我求教了相關(guān)中間件廠商,含義無外乎兩個:一個是說采用這種中間件產(chǎn)品可以很好的構(gòu)建SOA的應(yīng)用;再有就是采用這種中間件產(chǎn)品開發(fā)出來的應(yīng)用,將很容易被整合進(jìn)SOA架構(gòu)。兩者的含義都差不多,就是其應(yīng)用很容易實(shí)現(xiàn)SOA。業(yè)內(nèi)人士指出,所謂SOA架構(gòu)中間件并不十分的準(zhǔn)確,因?yàn)檫@里中間件的提法太籠統(tǒng)了。
前面說過,中間件可以分為7大類,其中有些產(chǎn)品,如應(yīng)用服務(wù)器、門戶中間件、一些新的工作流系統(tǒng)等,與互聯(lián)網(wǎng)關(guān)系密切,本身就支持Web服務(wù)的封裝,基于它們開發(fā)的應(yīng)用的功能很容易就能封裝成Web服務(wù),支持SOA;但是對于消息中間件、交易中間件等,來談?wù)揝OA,其意義就不大了。
總體看來,所謂SOA架構(gòu)的中間件,無非就是要表明,廠商提供的中間件產(chǎn)品對于SOA有很好的考慮,而SOA還是針對應(yīng)用而言。 SOA概念的提出是為了解決動態(tài)的B2B應(yīng)用整合的問題。這里不妨看一個理論中關(guān)于物流行業(yè)的例子。物流涉及倉儲、運(yùn)輸、車輛等幾個環(huán)節(jié),如果這些環(huán)節(jié)相應(yīng)的信息系統(tǒng)所提供的功能服務(wù)都能夠以Web服務(wù)的方式提交出來,那么相互的調(diào)用就會非常容易,很容易實(shí)現(xiàn)動態(tài)的B2B整合。
哪怕你沒有自己的倉庫、車輛,同樣可以利用這些服務(wù),構(gòu)建全新的物流商業(yè)模式,提供靈活的商業(yè)服務(wù),成為一個第三方、第四方物流企業(yè)。對于企業(yè)而言也是這樣,我們看一些成功的企業(yè),如Cisco,對于上下游的合作伙伴,具有很高的信息化的要求。以分銷代理為例,Cisco已經(jīng)不接受傳統(tǒng)的下單方式,其總代理必須通過電子商務(wù)的方式定購產(chǎn)品。Cisco所采用的系統(tǒng)是SAP的,這就要求上下游的合作伙伴也必須采用SAP的系統(tǒng),否則系統(tǒng)就無法對接,這就是現(xiàn)實(shí)的情況。
如果各家ERP廠商能夠按照SOA的觀念,遵循標(biāo)準(zhǔn)化的規(guī)范,把服務(wù)以標(biāo)準(zhǔn)的方式提交、展現(xiàn)出來,那么,這樣的限制就不復(fù)存在,SOA的價值在于跨越了不同應(yīng)用系統(tǒng)、不同技術(shù)的整合,這種整合改變現(xiàn)有的商業(yè)模型。
SOA描繪了一個無比美妙的未來,也是擁有一定的現(xiàn)實(shí)基礎(chǔ),SOA與現(xiàn)今流行的Web服務(wù)緊密聯(lián)系在一起。Web服務(wù)是一項(xiàng)技術(shù),其規(guī)范包括WSDL、SOAP、UDDI。Web服務(wù)由WSDL描述,通過UDDI發(fā)現(xiàn),并通過SOAP去訪問。Web服務(wù)提供了技術(shù),而SOA則提供了應(yīng)用這種技術(shù)的框架,是一個非常好的思路,因此得到了軟件業(yè)界普遍的認(rèn)可。
中間件對于Web應(yīng)用具有簡化和幫助其相互連接、相互訪問的作用。從理論上講,基于Web服務(wù)的中間件將會給應(yīng)用軟件的開發(fā)、部署、應(yīng)用方式帶來革命性變化,因?yàn)閃eb服務(wù)的出現(xiàn),使各應(yīng)用組件之間能夠以松偶合和標(biāo)準(zhǔn)的方式連接,突破了傳統(tǒng)的基于某廠商特定技術(shù)、某一種特定技術(shù)的方式。目前,幾乎所有新的中間件類型、新的中間件產(chǎn)品都支持Web服務(wù),可以基于它們實(shí)現(xiàn)SOA架構(gòu)的應(yīng)用。正因?yàn)槿绱耍藗儗⒅虚g件視為實(shí)現(xiàn)SOA架構(gòu)的理想平臺。憑借這種天然的聯(lián)系,中間件搭車SOA也是一個增加曝光率的明智擇。從技術(shù)視野上來看,如果中間件產(chǎn)品沒有考慮SOA是短視的,在技術(shù)跟隨上顯得行動緩慢。
未來前景廣闊 現(xiàn)實(shí)問題重重
按照Gartner等權(quán)威機(jī)構(gòu)的預(yù)測,作為一種面向未來的構(gòu)想,SOA到成為現(xiàn)實(shí)的主流架構(gòu)顯然還有很長路要走,甚至可能要用5~10年的時間。對于現(xiàn)實(shí)的意義而言,SOA有什么價值嗎?
對于廠商而言,應(yīng)該密切注意技術(shù)的發(fā)展潮流,加緊技術(shù)的跟蹤與研發(fā),待時機(jī)成熟,隨時推出產(chǎn)品和方案。對于用戶而言,如果你具有很強(qiáng)的技術(shù)背景和開發(fā)實(shí)力,也可以嘗試著進(jìn)行一些概念的驗(yàn)證和實(shí)踐,以期進(jìn)一步熟悉和了解SOA的架構(gòu)。相對而言,在企業(yè)的內(nèi)部驗(yàn)證SOA容易一些,你可以把一些應(yīng)用封裝為Web服務(wù),自己作為這些服務(wù)的提供者和使用者,在企業(yè)內(nèi)部使用這些服務(wù)創(chuàng)造新的價值,從這個意義來說,這個時候的用戶,已經(jīng)成為技術(shù)的實(shí)踐者。。
如果企業(yè)打算向外部推廣一些服務(wù),和它的供貨商、分銷商、代理商、客戶等一起來構(gòu)建SOA架構(gòu)的應(yīng)用,就還有很長的路要走。這里有一個實(shí)際的例子。我們知道商業(yè)銀行現(xiàn)在向客戶提供很多代繳固話費(fèi)、手機(jī)費(fèi)、水費(fèi)、電費(fèi)、煤氣費(fèi)等服務(wù),一個省級分行要和幾十個需要收費(fèi)的單位互聯(lián),實(shí)現(xiàn)應(yīng)用的相互訪問。從純技術(shù)的角度看,無疑是基于Web服務(wù)的SOA架構(gòu)應(yīng)用的最佳用武之地。但現(xiàn)實(shí)是,沒有人這么做。因?yàn)樾枰脑熳约旱臉I(yè)務(wù)系統(tǒng),牽涉很多人員和投入。此外,也要安全的問題,效率的問題等,目前還沒于成熟的解決辦法。
早有國外專家指出,SOA作為一個具有發(fā)展前景的應(yīng)用系統(tǒng)架構(gòu),尚存在許多有待改進(jìn)的地方,例如在可靠性、安全性、編制(Orchestration)、遺留系統(tǒng)(Legacy support)支持和語義(Semantics)方面均還存在嚴(yán)重不足。以可靠性為例,在不可否認(rèn)性(non-repudiation)、消息一定會被傳送且僅傳送一次(once-and-only-once delivery)以及事務(wù)撤回(rollback)等問題上, SOA還沒有做好準(zhǔn)備。現(xiàn)有的基于交易中間件、消息中間件的解決方案,較好地滿足了應(yīng)用系統(tǒng)在性能、服務(wù)質(zhì)量和安全性等幾個方面的需求。但在SOA環(huán)境中,其應(yīng)用組件之間是一種松耦合的關(guān)系,要讓一個應(yīng)用軟件的組件,很容易去跟屬于不同應(yīng)用的軟件組件進(jìn)行對話,如何確保這些迥然不同,但又相互連接的系統(tǒng)的效率、可靠性、可控性和安全性,就復(fù)雜得多了,是SOA還沒有最終解決好的問題。這些都影響了SOA的實(shí)際實(shí)施和推廣。
未來的餅 怎么可以解決今天的溫飽
用領(lǐng)先的IT技術(shù)來構(gòu)建企業(yè)的核心競爭能力,這還是目前大多數(shù)用戶的期待。SOA作為一種面向未來的架構(gòu),應(yīng)該得到更多的關(guān)注。但是SOA并不適用于解決所有的問題,也并不是所有的產(chǎn)品都需要支持SOA。對此,我也就這個問題請教了國內(nèi)的中間件廠商。
前面說過,SOA的概念主要來自應(yīng)用的動態(tài)B2B整合。從廠商的反饋來看,目前國內(nèi)用戶整體上還沒有到規(guī)模化的推廣、應(yīng)用基于Web服務(wù)和SOA架構(gòu)發(fā)B2B應(yīng)用的階段,即使是企業(yè)內(nèi)部的應(yīng)用整合SOA適用的情況也不多,僅有的案例其實(shí)際意義也非常有限。企業(yè)是否要部署和應(yīng)用SOA,根本上還是要看業(yè)務(wù)上的需要和要解決的業(yè)務(wù)問題以及要通過IT系統(tǒng)達(dá)到的目的。
在技術(shù)的選擇上,無論是在SOA出現(xiàn)之前、現(xiàn)在、還是SOA之后,最重要的是要看什么技術(shù)和產(chǎn)品能夠最有效、最可靠、最方便地解決用戶的現(xiàn)實(shí)業(yè)務(wù)問題和相關(guān)的技術(shù)問題。能夠把握現(xiàn)在,才能適用未來。從國內(nèi)的應(yīng)用整合實(shí)踐來看,部門內(nèi)部或跨部門的數(shù)據(jù)的整合、一般的應(yīng)用系統(tǒng)的整合還是最主流的需求。針對這些需求,有許多成熟的方法和工具。目前國內(nèi)很多省市都在推動和建設(shè)的企業(yè)信用系統(tǒng),可以很好地驗(yàn)證這一觀點(diǎn)。
建設(shè)企業(yè)信用系統(tǒng)是要把散布在質(zhì)檢、工商、國稅、地稅、銀行等部門的企業(yè)信用數(shù)據(jù)整合起來,進(jìn)行分析、處理和深加工,最終提供一系列的信用產(chǎn)品并為政府部門的管理和決策服務(wù)。因此,需要建一個大的企業(yè)數(shù)據(jù)中心,需要把散布在不同部門中的數(shù)據(jù)匯集起來。其關(guān)鍵的問題就是數(shù)據(jù)的同步問題,需要不斷匯總、更新數(shù)據(jù),而不是簡單的、同步的數(shù)據(jù)查詢。這不是SOA最適合的工作。
金融方面也有類似的例子。例如某銀行在實(shí)現(xiàn)全國集中數(shù)據(jù)處理后,需要把在全國中心產(chǎn)生的交易流水?dāng)?shù)據(jù)按需要下傳給省行和地市行使用,以實(shí)現(xiàn)交易的事后監(jiān)督。要傳的數(shù)據(jù)量比較大,從總行到省分行可以達(dá)到幾個GB的規(guī)模。對這個案例而言,如何實(shí)現(xiàn)高效、可靠的網(wǎng)上傳輸是最關(guān)鍵的問題,是整個的應(yīng)用整合方案的核心。
曾經(jīng)使用過FTP在網(wǎng)上進(jìn)行傳輸,由于缺乏可靠性傳輸和斷點(diǎn)續(xù)傳等保證,實(shí)際效果不好。后來采用了基于消息中間件軟件實(shí)現(xiàn)的海量文件傳輸整合方案,就能夠很好的解決有關(guān)問題。這同樣不適合SOA。從目前來看,國內(nèi)很難找到有實(shí)際意義和一定規(guī)模的SOA應(yīng)用部署。。因此,無論是國內(nèi)廠商還是國外廠商,宣傳的大都還是概念、技術(shù)產(chǎn)品和應(yīng)用方案,鮮有實(shí)際的案例,和實(shí)際案例的詳細(xì)的解析。SOA的現(xiàn)實(shí)意義大打折扣。
毋庸諱言,與國外發(fā)達(dá)國家的企業(yè)相比,國內(nèi)在創(chuàng)新技術(shù)的研發(fā)和投入上仍有教大的差距,但這并不等于說,國內(nèi)企業(yè)在技術(shù)上就一無所長。實(shí)際上,國內(nèi)企業(yè)在技術(shù)的實(shí)踐上還是有很多的經(jīng)驗(yàn)和心得,在這一點(diǎn)上,國內(nèi)外并沒有什么差距。理論的研究再好,也是要與實(shí)際的商業(yè)進(jìn)行結(jié)合才會煥發(fā)出生命力。對于SOA也是如此,沒有人敢保證SOA將來肯定成功。今天所能說是,面向未來發(fā)展,SOA為應(yīng)用的動態(tài)整合提供了一個非常好的思路,一個解決問題的方法。然而目前SOA相關(guān)技術(shù)和應(yīng)用還處于探索和發(fā)展之中,對此一定要有一個清醒的認(rèn)識。
在IT業(yè)內(nèi)有一個口號:以用戶為中心,也就是以用戶的需求為中心。SOA作為一種技術(shù)上的視野,應(yīng)該讓用戶有更多的了解,也可以讓用戶也參與進(jìn)來,我們看到IBM在很多情況下就是這樣做的,這也是一種負(fù)責(zé)任的態(tài)度。在軟件方面,IBM的策略是不做應(yīng)用軟件,只做基礎(chǔ)軟件,通過幫助合作伙伴,為最終用戶提供服務(wù)。
但是我們也看到另外一種情況,SOA作為未來的發(fā)展方向,其本身非常復(fù)雜,而國內(nèi)用戶受應(yīng)用水平的限制,在技術(shù)視野上本不廣闊,讓他們清楚地分辯未來與現(xiàn)實(shí)本就不是一件容易事情,很容易受到輿論的誤導(dǎo)。有些廠商,把SOA作為一種技術(shù)標(biāo)簽加以推廣,其目的只有一個,抬升自己企業(yè)的品牌形象,通過市場手段故意混淆現(xiàn)實(shí)與未來的需求。這就背離了技術(shù)發(fā)展的初衷,是應(yīng)該遭到唾棄和批判。
對于中間件而言,還是要回到用戶的需求上來!與兼顧未來相比,解決用戶現(xiàn)實(shí)的問題同等重要、甚至更為重要。即使是兼顧未來,大多數(shù)國內(nèi)的中間件產(chǎn)品同樣是非常好的選擇!中間件市場上,一個技術(shù)上遙遙領(lǐng)先的巨無霸,其實(shí)并不存在!