解讀SOA平臺---概念分析

什麼叫SOA平臺?-----概念分析
----- SOA,有些人認爲等同於“世界應用計算平臺”World application computing platform。


        SOA:現階段不同的SOA概念有一個共同的關注點,SOA就是能夠通過Web服務優勢,來解決企業環境平臺的兼容性,並且注入了不同組織之間的交互的願望,敏捷性與跨平臺性。很多的概念都認爲:SOA體系結構是一個簡單的Web服務集成。這是一個普遍而又危險的認識。因爲這些概念的誤解,導致了很多組織認爲,爲了實應SOA這種潮流,只需要加快Web服務平臺的開發。


        從邏輯的角度上看,爲了解決一個大的問題能被更好的架構,執行和管理,這應該把這個大的問題分解成一系列更小的,相關的子問題。然後再把這些小片段組合起來,從而解決問題。而SOA這一術語就代表着這樣的一個模型:自動化邏輯(商業邏輯)被分解成更小的、各自獨立的邏輯單元。這些邏輯單元依據一定的策略組合成商業自動化邏輯,並且這些單元是分佈式的。


          SOA鼓勵各個邏輯單元自治、獨立,但各自之間又不孤立存在。這些邏輯單元要符合能獨立的完成進化,進化過程不影響其他的邏輯單元,並且還要保持足夠的公用化和標準化。在SOA中,這種的邏輯單元就叫做Services。


         SOA中的Services如何關聯:services可以被其他的services或其他程序利用。這種服務之間的應用,是基於相互理解的基礎之上,這種理解就要通過services descriptions來描述。描述文件中描述了服務的名稱,服務所要求的數據,處理後所返回的數據。


         爲了服務之間能夠實現一些有意義的事情,它們之間就要交換信息。在SOA中就稱爲messages。服務之間通過提供服務描述,基於框架通過messages進行交流。這和以產基於消息的框架相類似,但是SOA的三個核心部件:services,descriptions,messages的設計是不一樣的。SOA它有自己的設計原則。


        SOA也是一門方法論,類似於面向對象的設計,它也有自己的一些原則:
1) 松偶合性。服務之間要求最小的依賴性,只要求它們之間能夠相互知曉。
2) Service Contract。服務之間支持統一的通信協議,可以通過一個服務描述文件來定義。
3) 自治性。服務完全控制它所封裝的邏輯,也就是說服務在它自身所統治的範圍內,在執行時不會依賴於其他的服務。
4) 抽象化。除了service contract中所描述的,services對外隱藏了它的所有邏輯。
5) 重用性。商業邏輯被分成各個小的services,目的就是爲了促進重用。
6) 可組裝性。Services集能相互協作,能被組裝成一個合成的services.
7) 無狀態性。Services還應被要求來管理狀態信息,因爲狀態信息的保存,會阻礙松耦合。Services在激活時,應最大限度地處於無狀態。
8) 可發現性。服務進行配置後,對外可通過一定的發現機制來發現該服務。
           這些原則是不可或缺的,Web Services技術集爲我們提供了設計Services的平臺。
          但是這些原則中,有幾組可能存在混淆:
1) 重用性(Reusablility)與composability(可組裝性)
2) 自治性(autonomy)與無狀態性(statelessness)
3) 松偶合與use of a service contract 
        其實重用性是指:當邏輯單元被封裝到service中,能被多個service requestor所使用,就能認爲是可重用。它建立在上面提到的多個原則的基礎之上,如:服務的無狀態性它最大限度地讓激活體在外部執行service的邏輯單元。而可組裝性之所以可行,就是因爲service能夠重用。
Service contract:是服務的metadata表現出來的。它使規則、條件標準化,使得外部的requestor能夠與service交互。其實認真體會一下,上面的三組關係,應該很容易分辨出他們的關係與聯繫。


SOA概念的一些誤解:
1) 應用Web Services的程序就是面向服務(SO)。SOA依賴於不同的抽象模型,任何形式的分佈式體系結構都可以歸類成SO。
2) SOA只是對Web Services的重新定義的市場概念。SOA不是一個由媒體或者某個市場部門發明的,它是一個合法的建立在相關技術術語之上。它表述了基於獨特原則之上的分佈式系統。SOA只是應用一些技術集來實現SOA服務的原則。這候選些技術平臺目前選用的是Web Services而以。
3) SOA只是對Web Services實現分佈式計算的市場術語。
4) SOA簡化了分佈式計算。


建立SOA系統中所要防範的要點:
1) 建立的SOA如同傳統的分佈式體系結構。這就會引發如下問題:大量的RPC類型的服務描述文件;沒有充分利用WS-*規範的物性;對Services中功能劃分不合理;創建不可組裝的services;進一步加大了同步通信模式的鴻溝;創建異質非標準化的services。
2) 非標準化的SOA。
3) 沒有創建移植計劃。
4) 沒有以XML做爲基礎體系結構
5) 沒有明白SOA的性能要求
6) 沒有明白SOA的安全要求
7) 沒有關心產品平臺和標準的發展

 

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