用於實現 Web 服務的 SOA 編程模型,第 10 部分: SOA 用戶角色

引言

每一個組織都有差異。它具備自身的文化、結構、技術實力和資產。但不少組織都在被相似的問題所困擾: html

  • 如何改進客戶服務和適應其不斷變化的需求
  • 如何實現低成本高效益
  • 如何與客戶、合做夥伴、競爭對手和供應商進行協做

解決這些問題要求進行變動,而若是組織變動,支持它的 IT 系統也必須變動。 web

有 大量文章都對使用 SOA 管理 IT 系統中的變動的價值進行了討論。SOA 要求每一個 IT 應用程序採用定義良好的接口來表示其支持的業務功能。這些接口(或服務)提供了 IT 功能目錄,能夠在須要時調用這些功能。能夠直接在應用程序間調用,也能夠經過工做流應用程序或經過企業服務總線(Enterprise Service Bus,ESB)進行調用。若是處理得當,面向服務的方法將容許組織以能貼切地反映組織需求的靈活方式來設計 IT 系統的結構,並將其鏈接到一塊兒。 數據庫

本文將說明組織如何着手引入 SOA。考慮到組織之間的差別,本文將根據用戶角色來對此過程加以說明。用戶角色是組織中典型職位的特徵描述。用戶角色並不必定就至關於一我的。一我的或一個團隊可能擔任一個用戶角色。一樣,一我的也能夠擔任多個角色。 編程

根據用戶角色,咱們能夠描述職責在組織內的分佈狀況、須要進行溝通和決策的地方以及所涉及的技能類型。經過這種方式,組織能夠計劃如何進行人員部署,以根據特定於其組織的工做量分配這些角色。 後端

本文以一個簡單場景爲例,在此場景中,組織決定使用 SOA 做爲新的 IT 解決方案。文中經過用戶角色描述了組織如何建立和運行面向服務的解決方案。咱們按照如下主題對全文進行劃分: 服務器

回頁首 架構

簡單集成場景

圖 1 顯示了本文中使用的場景。儘管此場景很是簡單,但仍然說明了 SOA 的不少特徵。 編程語言

因爲歷史的緣由,該組織一半的客戶數據存儲在一個 IT 系統中,而另外一半存儲在另外一個 IT 系統中。這兩個系統獨立進行操做。咱們計劃要建立單個客戶數據服務。當應用程序調用此服務時,服務會將請求路由到恰當的後端系統。 工具

通過一段時間後,客戶數據的位置可能會改變或添加來自其餘系統的數據,所以該解決方案要求具備靈活的實現。每一個後端系統都提供了用於提取其所屬數據的服務。ESB 中運行的一箇中介爲從公共服務路由到相應後端的服務提供支持。 測試

圖 1. 簡單集成場景
簡單集成場景

下面的部分描述用戶角色如何一塊兒工做,以設計、開發和運行此解決方案。

回頁首

將用戶角色投入工做

建立集成服務接口涉及到選擇恰當的方法並隨後進行解決方案開發和部署,而後運行解決方案。此過程經過面向服務的控制協調各項工做。這些階段與 SOA 生命週期的建模、裝配、運行和管理相對應。

下面各節描述在各個階段所涉及到的角色以及其從事的工做。

選擇方法

新解決方案的需求不會從任何地方本身冒出來。企業架構師、業務分析人員和系統分析人員就是對這些需求進行標識、肯定優先級並將其分組爲項目的角色。

企業架構師
企業架構師負責組織的技術策略,是 SOA 遠景的負責人,主張有策略地思考,有戰術地行動。企業架構師不會想將大型項目「撕裂」和替代現有系統,而但願採用持續推出小的加強功能,以逐步遷移到所需的結構。

業務分析人員
業務分析人員尋找提升業務績效的方法。這可能涉及到更改人員工做方式、其所使用的工具和過程或支持它們的 IT 系統。在此場景中,業務分析人員認爲有機會向客戶提供新服務。這須要對 IT 系統進行更改,所以業務分析人員與系統分析人員一塊兒分析支持此新服務的可行性。

系統分析人員
系統分析人員將業務需求轉換爲對 IT 系統的要求。

與業務分析人員交流以後,系統分析人員認識到,這個新服務要求採用一致的方式訪問組 織的客戶數據。目前這個數據駐留在兩個系統中,每一個系統的接口和數據格式都不一樣。建立新客戶數據存儲庫是一項開銷太大的選項,由於會對現有系統形成影響。 所以,在與企業架構師進行了討論後,系統分析人員建議爲客戶數據使用一個公共服務接口。在這個接口中,請求將被路由到現有系統。

此方法提供了所需的靈活性,未來能夠在不更改新客戶服務應用程序的狀況下將兩個客戶數據系統合併,由於公共客戶數據服務將調用應用程序與此實現細節分離開了。

系統分析人員給出的新服務的 IT 解決方案包含足夠的細節,組織能夠據此進行業務決策,以肯定是否投資新 IT 解決方案。若是認爲須要進行新投資,則會組成一個項目團隊來開發此解決方案。

開發解決方案

IT 解決方案要求混合使用硬件、軟件、應用程序和配置。本文將重點討論解決方案的軟件方面。

軟件架構師
軟件架構師負責將所需的功能劃分爲組成軟件解決方案的組件。此人處理現有系統使用的規範和標準,並肯定須要在何處編寫加強功能或新組件。

軟件架構師從企業架構師處獲取指導信息,以確保項目的體系結構與 IT 策略的總方向一致。解決方案的需求來自系統分析人員。

在此場景中,公共客戶數據服務的出現將新解決方案分紅了兩半:

  1. 向客戶提供新功能的應用程序代碼,稱爲公共客戶數據服務。
  2. 將公共客戶數據服務請求路由到相應的後端系統。

軟 件架構師選擇使用 Java 2 Platform Enterprise Edition (J2EE) 應用程序來實現新應用程序代碼。在公共客戶數據服務後,系統架構師爲每一個後端系統定義一個服務接口(爲了清楚定義這些系統調用的方式),並指定一個 ESB 中介映射兩個服務接口級別間的請求和應答。

開發人員
開發人員設計和實現解決方案的各個部分,一般具備專門針對某個平臺、編程語言和/或業務領域的專業技能。如下開發人員類型一般會參加面向服務的解決方案的構建活動。

  • 應用程序開發人員: 應用程序開發人員瞭解解決方案的業務領域,負責實現執行業務相關功能的應用程序代碼——在本例中爲調用公共客戶數據服務的新 J2EE 應用程序。應用程序開發人員須要瞭解其應用程序開發環境(如 J2EE)以及如何從這些環境內調用服務。他們以軟件架構師或另外一個開發人員提供的服務接口規範爲基礎開展工做。
  • 組件開發人員:組件開發人員開發稱爲組件 的自包含代碼塊。這些組件設計爲可在多個應用程序中重用。在此場景中,組件開發人員能夠爲公共客戶數據服務編寫中介代碼。
  • 集成開發人員: 集成開發人員負責經過配置組件並將其連接到一塊兒來構建服務。這些組件能夠由組件開發人員編寫,或做爲 ESB 產品的一部分提供。集成開發人員一般對集成技術和模式有很好的理解,但其編程技能卻較爲有限。若是集成場景要求使用複雜編程邏輯,集成開發人員將與組件開 發人員合做,爲集成建立新組件。

測試工程師
測試會在基於 SOA 的解決方案中的不少級別進行。每一個解決方案組件須要獨立測試,以確保其行爲正確。而後,重點轉向論證各個部分正確集成。大型解決方案或複雜解決方案要求特別注意是否能平穩地過渡到生產環境中。

  • 測試架構師:測試架構師指定如何測試解決方案,並標識獨立測試的解決方案部分所需的其餘代碼。測試架構師能夠將服務接口出現的位置做爲插入測試代碼的地方,以測試如下方面:
    • 調用服務接口的組件能夠對全部類型的數據作出響應。
    • 實現服務接口的組件能夠處理全部類型的請求。

在 此場景中,測試架構師可利用公共客戶數據服務組件來簡化測試新 J2EE 應用程序所需的運行時環境。經過指定公共客戶數據服務的基於 J2EE 的實現來管理測試客戶數據,新應用程序能夠在 J2EE 測試環境內進行全面的功能測試,從而縮短這個新代碼的最大部分的開發週期。

  • 測試實現人員: 測試實現人員將編寫額外的測試代碼,運行測試驗證解決方案,而後將錯誤報告給相應的開發人員,並對修正後的代碼進行測試。測試實現人員將參與項目的多個階 段,檢查各個組件的正確性、執行組件組的集成測試,並在部署期間測試解決方案是否已能夠投入生產環境了。例如,是否能夠啓動、中止、備份及在系統失敗後恢 復和進行維護?

部署解決方案

從開發角度認爲解決方案已完成且正常工做後,組織須要進行更改,以採用此解決方案,併爲其提供支持。這要求同時在業務層和 IT 層進行準備和規劃。

業務操做管理人員
業務操做管理人員運行採用新業務服務的全部或部分業務,包括對其所屬的組織進行相應設置來使用新解決方案。因爲面向服務的項目一般將業務各個部分鏈接到一 起,因此業務操做管理人員要和其餘業務操做管理人員協做,以確保其過程互補。對於此項目,業務操做管理人員要進行檢查,以確保對用戶數據的收集和使用採用 了相同的策略,從而保證不會意外地違反與現有客戶的隱私協議。

彈性工程師
彈性工程師負責確保在須要時新解決方案可用。這包括,確保峯值負載時的可用性、不斷變化的業務活動期間的可用性和在故障(小故障、大故障或全面出現故障)後的可用性。

在面向服務的環境中,解決方案須要具備端到端的彈性。這包括確保後端系統能夠處理新服務經過調用公共客戶數據服務在其上增長的負載。這些現有系統還須要在新服務須要時可以爲可用狀態。所以,彈性工程師可能須要增長現有系統的容量,並相應更改其操做過程。

IT 管理員
IT 管理員對支持軟件解決方案的 IT 基礎結構進行配置。在此場景中,IT 管理員將配置 IBM WebSphere® Application Server 集羣來支持新 J2EE 應用程序。他們將爲應用程序和服務集成(Service Integration,SI)總線設置 IBM DB2® 數據庫服務器,以支持公共客戶數據服務接口和中介。最後,他們將爲適配器配置服務器環境,該適配器鏈接到一個現有後端系統,這就提供了版本部署人員在其上 添加解決方案組件的平臺。

版本部署人員
版本部署人員在生產環境中配置解決方案的組件。這包括安裝解決方案組件和使用其操做所需的資源(如數據庫表和隊列)對其進行配置。在某些狀況下,版本部署人員須要現有系統中定義的其餘資源,如用戶 ID。一般,版本部署人員與 IT 管理員協做對系統進行定義。

當解決方案的全部組件就緒後,測試實現人員就可進行測試來確保全部組件都能正常工做。解決方案就能夠投入生產使用了。

在生產環境中運行解決方案

不少 IT 部門都鼓勵其員工專門鑽研特定的技術或應用程序。不過,面向服務的解決方案集成了不少技術。

在生產中,成功是以解決方案的端到端可用性爲標準測定的。所以,操做過程要據此進行範圍劃定。面向服務的解決方案要求具備各類技能和多方面知識的人員進行協做。此外,與業務的聯繫也變得更加劇要。這一點可經過如下三個角色說明。

服務水平管理人員
服務水平管理人員與業務操做管理人員就新解決方案的服務水平達成一致。服務水平管理人員的知識須要涵蓋解決方案中使用的所有技術,包括支持公共客戶數據服務的現有系統。

IT 操做人員
IT 操做人員監視系統,並執行平常操做,如備份操做。當公共客戶數據服務就緒後,須要對每一個現有系統的客戶數據的備份進行同步,以支持在系統故障後一致地還原客戶數據。

事故分析人員
事故分析人員對 IT 系統的意外錯誤和警報進行調查。爲了追蹤丟失的客戶數據更新,可能須要事故分析人員檢查 J2EE 和現有後端系統上的診斷信息。

面向服務的控制

最後,須要適當的控制,以確保在恰當的時候能以不干擾現有操做爲前提重用 IT 資產。企業架構師全面負責此事項,並將一些工做委派給專門角色。

變動控制管理人員
變動控制管理人員負責批准全部生產系統的變動。這包括新服務的使用,由於,即便新服務不要求對實現進行更改,也會影響服務上的負載。

變動控制管理人員與 IT 部門的其餘專家一塊兒協做,驗證更改是否成功。例如,變動控制管理人員將和彈性管理人員進行覈實,以確保新解決方案不會影響現有後端系統。變動控制管理人員確保 IT 操做人員能夠監視新解決方案,並確保配備瞭解決方案所需的常規過程。

資產管理人員
資產管理人員負責維護組織的可重用 IT 資產。這包括開發、維護並向全部恰當的項目提供這些資產。

公共客戶數據服務中的 IT 資產包括服務接口定義、接口上使用的任何數據類型以及中介組件。資產管理人員要確保這些資產採用恰當的標準開發(包括文檔),而後存儲在資產存儲庫中。

對於後續的項目,資產管理人員將對設計進行復查,以確保沒有忽略任何重用機會。

回頁首

總結與結束語

面向服務的方法容許組織集成和重用其現有 IT 資產。這就改變了組織中人員的交互方式,從而促進在整個組織中採用更爲一致的方法。本文經過用戶角色對在組織中支持和使用 IT 系統的各類技能和職責進行了描述,並說明了這些角色如何在面向服務的環境中進行協做。

相關文章
相關標籤/搜索