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