對SOA的初步瞭解

 一)     什麼是SOA?

 

面向服務的架構SOA(service-oriented architecture)是一個IT架構思維是一個以服務組件的方式能解決信息孤島的問題的一個方法它將應用程序的不同功能單元(稱爲服務)通過這些服務之間定義良好的接口和契約聯繫起來。接口是採用中立的方式進行定義的,它應該獨立於實現服務的硬件平臺、操作系統和編程語言。這使得構建在各種這樣的系統中的服務可以以一種統一和通用的方式進行交互。

這些服務是自包含的,具有定義良好的接口,允許這些服務的用戶——稱爲客戶機或使用者——瞭解如何與其進行交互。從技術角度而言,SOA 帶來了“鬆散耦合”的應用程序組件,在此類組件中,代碼不一定綁定到某個特定的數據庫(甚至不一定綁定到特定的基礎設施)。正是得益於這個鬆散耦合特性,才使得能夠將服務組合爲各種應用程序。這樣還大幅度提高了代碼重用率,可以在增加功能的同時減少工作量。由於服務和訪問服務的客戶機並未彼此綁定,因此可以完全替換用於處理訂單的服務,下訂單的客戶機-服務將永遠不會知道這個更改。所有交互都是基於“服務契約”進行的;服務契約用於定義服務提供者和客戶機之間的交互。通常,您將通過創建“基於消息的”系統來實現此目標。

  從業務的角度來說,面向服務的體系結構的重點在於開發能幫助您完成業務任務的技術,而不是通過技術約束來規定您的行動。例如,銷售過程(製造、運輸和收到貨款)可能會涉及數十個步驟和若干不同的數據庫和計算機系統。但就其實質而言,此過程包含一系列人工活動,例如:

  ﹡銷售人員找到潛在客戶

  ﹡客戶訂購產品

  ﹡生產部門製造產品

  ﹡生產部門發出產品

  ﹡收款部門開具產品帳單

  ﹡客戶支付產品貨款

  面向服務的體系結構基於這些實際活動或業務服務進行組織,而不是形成公司所維護的不同的信息豎井 (Silo)。通過實現 SOA,可以帶來大量好處,包括以下各個方面:

  ﹡更高的業務和 IT 一致性

  ﹡基於組件的系統

  ﹡鬆散耦合的組件和系統

  ﹡基於網絡的基礎設施,允許分散於各地且採用不同技術的資源協同工作

  ﹡動態構建的按需應用程序

  ﹡更高的代碼重用率

  ﹡更好地標準化整個企業內的流程

  ﹡更易於集中企業控制

 

二)     SOA的發展

 

1標準中立是SOA發展的基礎

  對於任何用戶而言,他們都希望能有一個統一的標準,以提高技術的經濟性,這就是標準的價值所在,在SOA領域也是一樣。可以說,用戶業務是隨時變化的。因此基於開放標準的解決方案對他們來說至關重要,這樣可以廣泛兼容現有系統,併爲快速響應未來的業務變化打下堅實的基礎。

  而最新的針對SOA的技術規範OSGi,它是一個非常成熟的Java平臺技術,在該平臺上,所有的技術都可以使用。OSGi在滿足企業當前IT需求方面潛能巨大,它所包含的分發平臺、編程模型和運行時環境,使它在構建SOA應用方面具有重大優勢,可以爲企業的IT系統創造一個良性的生態環境。事實上,通過OSGi可以幫助企業解決非常複雜的部署問題。目前用OSGi來做企業應用,應該說技術上的瓶頸已經不多了,只是怎麼去充分的發揮OSGi的優勢,這是有一定的挑戰的。

  此外,在分佈式系統上,SCA雖是一種選擇,但它只能解決SOA的部分問題。事實上,SCA規範是於20073月被正式提交至OASIS的一項以標準的形式進行推動SOA技術規範,雖然與OSGi一樣,SCA規範是中立的,但在幫助企業更輕鬆地創建新IT資產,以及改造現有的IT資產方面它只能部分地解決SOA面臨的問題。

 

2分佈式是SOA的發展方向

  在部署和使用可共享和重複使用服務方面,分佈式SOA架構是最爲簡單、易行的途徑。CIO要想對SOA建立正確的認識,首先必須認識到,從概念上講SOA是一種分佈式的架構。

  很長一段時間以來,我們都把IT認爲是一個集中式的體系,如大型主機和C/SB/S時代,但是這種模式是有侷限性的。實際上,分佈式的IT系統更高效。這一點上,我們可以參考一下互聯網,由於採用了分佈式的體系,互聯網效率非常高,可擴展性也非常好。

  SOA在本質上就是一種分佈式架構。作爲SOA的核心要素之一,服務的目的是要實現與另一項服務的遠程通信,尤其是要實現數據互享。用戶部署SOA架構的目的也是要改變IT系統的構建方式,由原來建立專有的單一應用變爲建立更爲高級和整合的應用,這種應用的顯著特點就是充分利用已有的、可以共享和重複使用的功能,也就是服務。

  與集中式的SOA架構相比,分佈式SOA架構能更好地應對不斷變化的技術和業務環境。比如,與過去流行的EAI(企業應用集成)方式相似,集中式的SOA由於在項目建設之初,需要先建立一個集中的控制點(如消息總線),哪怕是再小的項目也是如此,這往往會提高項目門檻,抑制用戶部署SOA的積極性,特別是中小企業用戶。

  而分佈式SOA沒有集中的控制點,允許客戶按照自己的計劃漸進地部署服務,比如一次部署一兩個服務,在未來根據具體的業務需要,再爲系統擴容。

在部署和使用可共享和重複使用的服務方面,分佈式SOA架構更簡單易行,從而對目前業界普遍認同的漸進式的部署提供了更好的支持,同時,具備更強的部署靈活性、適應性和可維護性。

  現在很多成功案例都是通過分步式、基於標準的途徑實現的。其中,瑞士信貸集團是全球最早成功實施SOA的企業之一,他們就選擇了漸進的分佈式演進方法。該集團根據應用系統的發展情況,不斷調整SOA的使用規模,從非常小的局部開始,最後再擴展到整個系統的應用,不斷向大規模SOA演進,從而獲得了很大的靈活性。如今,瑞士信貸的生產環境中有1500多個服務,日處理量達到500萬筆。由於採用了SOA的技術架構,使系統的總開發和集成成本下降了73%,同時實現了70%的服務重用。漸進式實施的目的很明顯,就是要降低客戶實現SOA的成本。

  對於分佈式SOA在中國的應用前景,由於中國市場中存在大批新興的企業,因此,在企業內部建立新的體系,中國企業更有能力轉到分佈式架構方面。 
發佈了20 篇原創文章 · 獲贊 0 · 訪問量 4萬+
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章