SOA之三——面向服務的計算環境及面向服務的計算環境的一般特徵

計算環境由計算機、相關的軟件平臺和以及連通這些計算機和相關軟件平臺網絡組成。不同的計算環境有不同的計算風格和編程模型,由一些特定於該計算環境的技術來支撐。
      在面向服務的計算環境(其實更準確的說,是面向服務架構的計算環境)中,系統可以是高度分佈、異構的。它一般包括服務運行時環境(Service Runtime)、服務總線(Service Integration Infrastructure)、服務網關(Service Gateway)、服務註冊庫(Service Registry)和服務組裝引擎(Service Choreography Engine)等。
     其實,服務總線、服務註冊表和業務服務編排都是面向服務架構的基本模式之一。

 面向服務計算環境的組成要素

服務運行時環境提供服務(和服務組件)的部署、運行和管理能力,支持服務編程模型,保證系統的安全和性能等質量要素。
       服務總線提供服務中介的能力,使得服務使用者能夠以技術透明和位置透明的方式來訪問服務。服務註冊庫支持存儲和訪問服務的描述信息,是實現服務中介、管理服務的重要基礎;而服務組裝引擎,則將服務組裝爲服務流程,完成一個業務過程;服務網關用於在不同服務計算環境的邊界進行服務翻譯,比如安全。

面向服務的計算環境是開放的、標準的,由如下圖所示的技術標準協議棧所定義和支持。例如,Transport層的HTTP協議,Service Description層的WSDL,Business Process層的WS-CDL等,與Policy相關的WS-Policy。本書後面的章節將討論所有統稱爲WS-*的標準和協議。面向服務計算環境的標準協議棧

我們知道,面向服務的計算機環境是和傳統的主機模式的計算環境、客戶機-服務器模式的計算環境、基於組件的計算環境、基於分佈式網絡的計算環境和混合Web Service的計算環境區別的,那麼到底什麼纔是面向服務的計算環境呢?

1、看在整個IT生命週期中(包括應用的構建和運營)和各個階段,是否是以服務爲中心的,服務是否爲第一位的核心概念;
       2、IT是否和業務對齊,IT系統是否足夠的靈活,也就是說IT對業務需求和業務需求的變化的響應是否可以達到業務人員的期望;
       3、IT系統本身是否是鬆散耦合的。鬆散耦合是指信息的消費者和信息的提供者之間是否是鬆散耦合的,如果以服務爲中心的話,那其實就是指的是,服務的消費者和服務的提供者之間是否是鬆散耦合的。這包括:在服務契約的設計上,是否通過抽象設計減少了技術依賴性;在服務調用層面上,是否通過Web Service技術保持服務調用的平臺的中立性。
       4、功能的暴露或者說功能的接口是否是粗粒度的。
       5、位置和傳輸協議是否透明。所謂位置的透明,就是指不論服務組件的實際位置URL如何變化,客戶端的調用程序的URL都不需要改變。同理,目前的服務組件如EJB、Web Service、JMS都只能接收特殊的傳輸協議,如EJB只接收RMI的傳輸協議,Web Service只接收SOAP的傳輸協議,JMS組件只接收JMS的傳輸協議。這樣導致客戶端調用這些服務組件時,也必須採用相應的傳輸協議才能調用,一旦組件的傳輸協議改變了,客戶端也必須要修改相應的傳輸協議。這就是傳輸協議的不透明。所謂傳輸協議的透明,就是指不管服務組件的傳輸協議如何變化,客戶端的調用程序的傳輸協議都不需要改變。
       SOA的思想通過服務總線對目前的組件的接口進行進一步的封裝(新的SCA編程模型將可以自由綁定傳輸協議),將能保證服務的位置的透明和傳輸協議的透明。下面兩副圖展示了位置和傳輸協議都是不透明的基於組件的調用方式和基於服務總線技術的傳輸協議和位置透明的調用方式。 目前的位置和傳輸協議都不透明的組件調用方式
                              圖:傳輸協議和位置都不透明的基於組件的調用方式

位置和傳輸協議都透明的調用方式

                      圖:基於服務總線技術的傳輸協議和位置透明的調用方式

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