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