什麼是SOA ?

越來越多的客戶在問,如何通過採取財務上無可非議的漸進步驟,打造當今隨需應變業務環境所需的敏捷 IT 基礎設施,從而提高業務流程的靈活性。通過採用面向服務架構(SOA),公司具備實現業務靈活性所需的技能、軟件和經驗。

  SOA(Service-Oriented Architecture)既服務導向架構,是指爲了解決在inernet環境下業務集成的需要,通過連接能完成特定任務的獨立功能實現的一種軟件系統架構。該定義的學術味道較濃,但其核心思想並不難理解:讓應用不受限於技術,讓企業輕鬆應對商業服務變化和發展的需要。目前,SOA的實現手段主要包括:Web Serice(網絡服務)、CORBA和JINI等。

 據Gartner Group預測,到2008年,SOA將成爲佔有絕對優勢的軟件工程實踐方法,它將很可能結束傳統的整體軟件體系架構長達40年的統治地位,屆時將有70%的企業在進行IT建設時會轉向SOA。因此Gartner建議,主流企業現在就應該在理解和應用SOA開發技能方面進行投資,但實際情況又如何呢?到目前爲止,絕大部分企業客戶還處於計劃或早期實施階段,它們仍在等待從廠商那裏獲得更多的Web服務工具和平臺。

爲何需要 SOA?
  面向服務架構(SOA)是一種應用框架,它着眼於日常的業務應用,並將它們劃分爲單獨的業務功能和流程,即所謂的服務。SOA 使用戶可以構建、部署和整合這些服務,且無需依賴應用程序及其運行計算平臺,從而提高業務流程的靈活性。這種業務靈活性可使企業加快發展速度,降低總體擁有成本,改善對及時、準確信息的訪問。SOA 有助於實現更多的資產重用、更輕鬆的管理和更快的開發與部署。在當今的業務環境中,變化是毫無疑問的,因此快速響應客戶需求、市場機遇和外部威脅的敏捷性比以往任何時候都更顯重要。

各種企業都認識到組件化、模塊化、互操作和可伸縮基礎設施的價值:

  • 組件化:利用標準化的應用程序和資源服務接口
  • 互操作:實現應用程序和/或資源之間的輕鬆信息交換
  • 模塊化:混合搭配、添加刪除、業務流程與基礎設施
  • 可伸縮:從現有資源起步,隨需添加其他資源

爲何選擇 IBM?
  雖然"SOA"一詞是在 20 世紀 90 年代中期出現的,但在該詞誕生以前,華羅庚軟件基地早已在幫助客戶向面向服務的方法轉型。只有華羅庚軟件基地具有在每一層面履行 SOA 承諾的真實經驗、產品和服務深度。無論您是新手還是具有多年 SOA 經驗的老手,也無論您是喜歡自己動手還是喜歡獲得更多幫助,華羅庚軟件基地都可幫助您加快 SOA 採用的步伐,提高靈活性,從而使您的企業更具競爭力。您完全可以將我們作爲您的 SOA 嚮導。我們已經幫助了許多公司,我們同樣也可以幫助您。

華羅庚軟件基地在十年前已實現SOA,它可以幫助您:

  • 瞭解 SOA 如何幫助實現業務目標
  • 創建一份詳細的 SOA 計劃
  • 完善和實施該計劃
  • 確保您的 SOA 符合業務需求和性能要求

  不管您處在 SOA 採用進程中的哪一步,也不管您的未來 SOA 計劃可能需要什麼,華羅庚軟件基地都能幫您一步步地實施 SOA 解決方案,並確保每一步都能帶來回報。華羅庚軟件基地具有欠經考驗的 SOA 經驗、實用的軟件和服務,並深刻了解您在選擇 IT 供應商時想要了解的業務。

SOA 業務整合採用模型
查看更多精彩圖片

連接:確保不同應用程序和系統之間可靠而靈活的信息流
整合:整合框架支持異構環境中的互操作性--掃除擺在 web 服務和非 web 服務方法所支持的整合架構前的障礙

自動化:編排業務和 IT 流程,使 IT 和業務目標保持一致,增加收入,控制成本
優化:一種整體方法,它通過使戰略和運營目標與業務活動保持協調統一以及爲 IT 服務提供支持來實現企業轉型與管理

SOA 治理框架
  SOA 在本質上是一種分佈式的架構方法,因此其治理需求比集中式環境更顯重要。要獲得必需的業務和技術適應能力,企業需要適當的功能、資產和流程。SOA 環境的治理目標就是要確保在這些功能、資產和流程中實現面向服務的戰略。

業務驅動的 SOA
  許多企業現在都在着手開發面向服務架構,但結果可能是大多數企業的實施都不太盡如人意。大多數企業實際關注的目標範圍都比較窄,它們過於關注技術,而對業務服務的關注不足。

業務驅動的 SOA 2--如何管理 SOA 過程
  面向服務的業務是一種連續的服務結構--"企業網"。這在任何一個急於求成、好高騖遠、挑戰性強的大項目中都是絕對不可能實現的,因爲它是通過一個連續的中小項目流逐漸實現的。

改變下一代的應用架構


  SOA原本三個普普通通的英文字母,但是排列到了一起卻是當今IT屆紅得發燙的“主角”—Service Oriented Architecture(面向服務架構)。

  這個早在1996年就由Gartner提出的“預言”,在廠商和媒體的推波助瀾下,8年之後突然重生,火爆異常。

  但是我們發現,即使在8年之後,這個概念在中國用戶當中的認識還是比較模糊的。在一次SOA的技術講座上,記者身邊坐着中國移動管理業務流程的項目經理孫慶偉,他向筆者抱怨還是聽得不太明白,同時他的第一問題就是:在中國有用戶了嗎?當得知還沒有全面實施的用戶的時候,失望之情溢於言表。而方正奧德計算機系統有限公司業務諮詢總監紀鍾斷言SOA在中國還是一個概念……

  究竟SOA是什麼?是什麼樣的魔力讓各家軟件廠商對SOA趨之若騖呢?

  打破信息孤島的根本之道

  以前企業是以應用爲中心來構建自己的IT系統的。從IT技術的角度來看,任何一個應用都具備三要素,即業務界面(Interface)、業務邏輯(Logical)、數據(Data)。如果是以應用爲中心去開發一個應用,我們只要在這三個層次選擇不同的工具和產品就可以了。譬如做一個人事系統,數據庫我們可以選擇甲骨文的,界面可以採用Web瀏覽器等等。通過這種方式,可以構建很多的業務應用系統,譬如人事系統、倉庫管理系統、ERP系統等等。然而我們很快發現,大多數的業務和服務不是在一個應用系統內就可以完成的。譬如下一個訂單,很可能是要涉及企業的客戶管理系統、倉庫管理系統、ERP管理系統等。而這些應用系統由於開發的時間不同,採用的開發工具不同,一個業務請求很難有效地調用所有的應用系統。用簡單的語言來表述,這些已有應用系統是孤立的,也就是我們常說的“信息孤島”。

  在以前解決企業內部信息系統“信息孤島”的問題通常是採用EAI(企業應用整合)的方式。爲了保證所有的應用能夠互通互用,每一個應用都需要一個EAI Server來對應。打個簡單的比方,EAI Server就好像一個“翻譯”一樣讓每兩個應用之間可以對話,可以互相調用。但是我們發現這種方式存在很大的問題。由於每兩個應用之間必須用EAI來整合,當一個企業只有兩個應用的時候需要一個“翻譯”,當企業有三個應用需要互通的時候需要三個“翻譯”,當有四個應用的時候就需要六個“翻譯”,五個應用互通就需要十個“翻譯”……從邏輯上講,EAI的整合方式是一個基於點對點的整合方式,企業的應用越多,這種邏輯關係就會成級數上漲。儘管從理論上來說,EAI是能夠完成企業應用之間的整合的。然而這樣龐大和複雜的邏輯,體現在實施過程中,就會發現EAI的投入比較高,實施週期也比較長。

  那麼如何從根本上解決所謂的“信息孤島”的問題呢?SOA就應運而生,它不是從每兩個應用之間的互通做起,而是把每個應用看作服務,形成共享。

  因此,SOA對於實現企業資源共享,打破“信息孤島”的步驟就是:

  第一步,把應用和資源轉換成服務(Service);

  第二步,把這些服務變成標準的服務,形成資源的共享。

  從這個意義上講SOA不僅僅是一個技術,而是一個軟件架構。企業的決策者只需要根據企業的策略來制定流程,把應用作爲服務“拿來就用”,而無需考慮底層的集成。這樣就可以實現IT和企業業務之間同步。

  實現彈性IT的必由之路

 
  其實,SOA並不是一個新事物。IT組織已經成功建立並實施SOA應用軟件很多年了,BEA、IBM等廠商看到了它的價值,紛紛跟進。SOA的目標在於讓IT變得更有彈性,以便更快地響應業務單位的需求,實現實時企業(Real Time Enterprise,這是Gartner爲SOA描述的遠景目標)。而BEA的CIO Rhonda早在2001年6月就提出要將BEA的IT基礎架構轉變爲SOA,並且從對整個企業架構的控制能力、提升開發效率、加快開發速度、降低在客戶化和人員技能的投入等方面取得了不錯的成績。

  由於SOA是在計算環境下設計、開發、應用、管理分散的邏輯(服務)單元的一種規範。這就決定了SOA的廣泛性。SOA要求開發者從服務集成的角度來設計應用軟件,即使這麼做的利益不會馬上顯現。SOA要求開發者超越應用軟件來思考,並考慮複用現有的服務,或者檢查如何讓服務被重複利用。SOA鼓勵使用可替代的技術和方法(例如:消息機制),通過把服務聯繫在一起而非編寫新代碼來構架應用。經過適當構架後,這種消息機制的應用允許公司僅通過調整原有服務模式而非被迫進行大規模新的應用代碼的開發,使得在商業環境許可的時間內對變化的市場做出快速的響應。

  SOA也不僅僅是一種開發的方法論,它還包含管理。例如,應用SOA後,管理者可以方便地管理這些搭建在服務平臺上的企業應用,而不是管理單一的應用模塊。其原理是通過分析服務之間的相互調用,SOA使得公司管理人員方便地拿到什麼時候、什麼原因、哪些商業邏輯被執行的數據信息,這樣就幫助了企業管理人員或應用架構師迭代地優化他們的企業業務流程、應用系統。

  SOA的一箇中心思想就是使得企業應用擺脫面向技術的解決方案的束縛,輕鬆應對企業商業服務變化、發展的需要。企業IT架構環境中單個應用程序是無法包容業務用戶的(各種)需求的,即使是一個大型的ERP解決方案,仍然不能滿足這個需求在不斷膨脹、變化的缺口,對市場快速做出反應,商業用戶只能通過不斷開發新應用、擴展現有應用程序來艱難的支撐其現有的業務需求。通過將注意力放在服務上,應用程序能夠集中起來提供更加豐富、目的性更強的商業流程。其結果就是,基於SOA的企業應用系統通常會更加真實地反映出與業務模型的結合。服務是從業務流程的角度來看待技術的——這是從上向下看的。這種角度同一般的從可用技術所驅動的商業視角是相反的。服務的優勢很清楚:它們會同業務流程結合在一起,因此能夠更加精確地表示業務模型、更好地支持業務流程。相反我們可以看到以應用程序爲中心的企業應用模型迫使業務用戶將其能力侷限爲應用程序的能力。

  企業流程(Enterprise Process)是流經企業框架的空氣,它賦予業務模型裏的組件以生命,並更加清晰地定義了它們之間的關係。流程定義了同業務模型進行交互操作的專門方法。例如,會計可能是企業服務系統的一個組件,但是將發票寄給客戶卻是一個業務流程。服務被定義用來支持業務流程,因而貫穿整個流程始終的是:各種服務組件在流程和邏輯實現過程中的裝配操作。理解業務流程是定製服務的關鍵所在。

  傳統的應用集成方法,如點對點集成、企業消息總線或EAI、基於業務流程的集成等,都很複雜、昂貴,並且不靈活。這些集成方法難於快速適應基於企業現代業務變化不斷產生的需求。基於SOA的應用開發和集成可以很好的解決其中的許多問題。SOA 描述了一套完善的開發模式來幫助客戶端應用連接到服務上。這些模式定製了系列機制用於描述服務、通知及發現服務、與服務進行通信。

  不同於傳統的應用集成方法,在 SOA 中,圍繞服務的所有模式都是以基於標準的技術實現的。大部分的通信中間件系統,如 RPC、CORBA,也同樣如此。可是它們的實現都不是很完美的,在權衡交互性以及標準定製的可接受性方面總是存在問題。SOA 試圖排除這些缺陷。因爲幾乎所有的通信中間件系統都有固定的處理模式,如RPC 的功能、CORBA 的對象等。然而,服務既可以定義爲功能,又可同時對外定義爲對象、應用等等。這使得SOA可適應於任何現有系統。

  SOA 幫助企業信息系統遷移到“leave-and-layer”架構之上,這意味着在不用對現有的企業系統做修改的前提下,系統可對外提供 Web Services接口,這是因爲它們已經被可以提供 Web Services接口的應用層做了一層封裝,所以在不用修改現有系統架構的情況下,SOA可以將系統和應用迅速轉換爲服務。

  

  Gartner預計,到2008年,SOA將成爲佔有絕對優勢的軟件工程實踐方法,它將結束傳統的整體軟件體系架構長達40年的統治地位(可能性:70%)。Gartner建議,主流企業現在就應該在理解和應用SOA開發技能方面進行投資。

  

   SOA成功的阻礙

  SOA能成功嗎?這是很多人包括筆者在內提出的疑問。從廠商得到的信息來看大多數企業還是對SOA採用一種觀望的態度。

  如果要成功實施SOA還有很多工作要做。

  第一是安全問題,由於需要事先靈活的策略,很多情況下需要把服務暴露在外,導致企業的安全需求就凸顯出來,特別是那些以Web Services方式構建的SOA應用系統。由於Web Services天生的問題。即使像IBM這樣的廠商也意識到這一點。”SOA可大幅改善業務的靈活性和響應時間,但它必須是一個安全的環境。”。

  第二是標準的問題。SOA的建立是需要封裝的服務具有一個統一的、標準的接口。和基於XML等技術的Web Services所面臨的問題一樣。如果沒有標準接口,實現SOA的理想也就無從談起。

  第三是企業管理的問題。儘管SOA給我們描繪了SOA實施的要求是企業的信息系統相對完善。所有的事情要有嚴格的流程管理。但是從流程管理來看,要涉及到企業內部的利益的重新分配。如果說中國的ERP實施的成功率30%,那麼整合企業中所有的應用成功的機率有是多大呢?從這個意義上講,SOA所面臨的企業內部管理、流程纔是阻擋在SOA面前最大的問題。

  

  SOA與Web Services之間的關係是怎樣的?

  Gartner:Web Services並不一定要轉向SOA,也並非所有的SOA都要基於Web Services,這兩種技術方向之間的關係是非常重要的,並且它們是相互影響的。Web Services將使SOA能夠爲大型機用戶所用;與此同時,SOA的最佳實踐架構將有助於使Web Services獲得成功。

  SOA不是一定需要 Web Services來實現,並且一個基於Web Services開發出來的應用也不代表就是一個基於 SOA 構架應用。Web Services只是服務實現的一個典型,是實現企業 SOA的一個組件(非必需組件)。SOA 爲基於服務的分佈式系統提供了概念上的設計模式。Web Services則是基於標準的、可經濟實惠地實現 SOA的一項技術。

  SOA將IT資源透過服務這樣一個在業務上有重要涵義的概念來提供、共享,把IT與業務的距離更加拉近了一步。服務在涉及的層次上要比組件、函數、流程等更高,而且往往在業務上可以找到與之直接對應的概念或實體,例如報價、訂單。服務打破了IT系統間的藩籬,就像一家公司的各個部門,平常各自扮演特定對內或對外服務的角色,但彼此間如果能有效地通過共通的語言及文字,進行良好的溝通,便能協力達成更大、更高的目標。

 
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章