Rational Asset Manager 中可複用資產的生命週期及策略管理

myattitude發表於2010-08-03
閆 哲, 軟體工程師, IBM
漆 馳, 高階軟體工程師, IBM
付 夷山, 軟體工程師, IBM

簡介: 

雖然業界湧現出各種軟體方法,可複用資產一直是系統架構師和專案管理者非常重視的因素之一,因而建立一個高質量的可複用資產庫被視為提高軟體開發效率的有效手段。IBM Rational Asset Manager(RAM)提供了強大的資產管理能力,可以實現資產的建立、提交、稽核、檢索等管理操作,便於資產的分發和複用。RAM 符合 OMG RAS 規範,最新的7.2.0.2版本提供了生命週期管理功能,進入 RAM 的資產需要經過相關人員的稽核,並根據狀態實施相應的動作;結合策略機制,以相比 Asset Type 更加靈活的約束方式,來保證資產的完整性。

本文介紹 IBM Rational Asset Manager(RAM)中的生命週期和策略管理,通過例項展示如何結合策略定製生命週期例項,從而有效保證可複用資產的完整性,文章還探討了通過 Rational Team Concert(RTC)擴充套件生命週期和策略的高階話題。

背景介紹

在業務日益複雜的今天,如何快速開發滿足業務需求的高質量應用系統,成為軟體開發廠商成敗的關鍵,而建立可複用資產庫被視為提高軟體開發效率的有效手段。在此之上基於資產進行開發,以最大化利用投資,加速軟體開發,降低成本。資產是相關製品的集合,為特定問題提供解決方案,它可以通過變化點進行定製,以達到複用的目的。為了更好的開發和複用資產,OMG 定義了可複用資產規範 Reusable Asset Specification,對軟體資產的結構、內容和描述進行了規約。資產中的製品可以是各種型別,比如模型、設計文件、構件、框架、web 服務、測試計劃、測試指令碼等,它們都是與解決某問題相關的。

資產需要進行管理,這包括採用適當形式描述資產,利用儲存庫來儲存資產,資產的提交、審批、釋出等生命週期管理,提供搜尋和消費資產功能等。IBM Rational Asset Manager 正是這樣一款產品,它幫助企業建立、修改、監管、搜尋、複用各種軟體資產,目前最新版本是 7.2.0.2。RAM 支援 OMG RAS 規範,可以對資產的各種標準資訊進行管理。

RAS 規範

Reusable Asset Specification 是 OMG 關於可複用資產的標準,當前版本是 2.2。RAS 對資產的規約可分為 Core RAS 和 Profile 兩部分。Core RAS 規約資產的基礎元素,Profile 針對特定領域描述擴充套件部分,只有基於 Core RAS 的 Profile 才能建立例項加以使用,RAM 的元模型相當於擴充套件 Profile。

下圖描述了 Core RAS 的基本元素(摘自 RAS 標準)。Classification 給出用於資產分類和上下文相關的描述,如 RAM 中資產的 ID、名稱、版本、日期、狀態等。Solution 列出資產包含的製品,在 RAM 中可以包含檔案、資料夾和 URL。Usage 描述安裝、定製、使用資產時的規則。相關資產描述資產之間的關係,RAM 中可以使用內建關係,也可以自定義關係。


圖 1. Core RAS 的基本元素
圖 1 Core RAS 的基本元素

RAS 是對可複用資產的規約,它並不涉及資產的開發和釋出過程。RAM 作為資產管理工具,除了記錄和管理資產的標準資訊之外,還管理資產的評審過程,通過生命週期管理,更新資產的狀態,最終釋出為可以被複用的資產。

RAS 還描述了 RAS 儲存庫服務,它提供 HTTP 介面,支援資產的搜尋、瀏覽和獲取操作。外部應用可以向該服務提交請求,獲得滿足條件的 ras 描述,進而分析資產的資訊及所包含製品,如下圖所示(摘自 RAS 標準)。RAM 將這種服務進行封裝,釋出為 Web Service 服務,提供了資產的增刪改查以及資產庫配置等功能。


圖 2. RAS 儲存庫服務
圖 2 RAS 儲存庫服務 

定義生命週期及其策略

RAM 對資產的管理包括其生命週期管理(Lifecycle),在早期版本中稱為評審過程(Review Process)。通過定義生命週期,管理資產的各種狀態以及狀態之間的遷移動作,這些動作一般是由參與者對資產進行稽核之後做出的。在這裡,生命週期看上去就像一個狀態機,但它比狀態機更復雜,除了狀態和變遷之外,還可以定義策略(Policy)、條件以及參與者。RAM 內建了 Simple、Standard、Business Solution 等多個生命週期模板,在社群中可以使用這些模板建立特定的生命週期例項,當提交資產時,就會按照符合條件的生命週期例項進行管理了。

這裡列出 RAM 中的兩個生命週期模板以供參考。


圖 3. RAM 的 Simple 模板
圖 3 RAM 的 Simple 模板

圖 3 是 RAM 的簡單模板,包含兩個狀態“已提交”和“已批准”,它們之間可以通過“釋出”、“恢復”完成狀態變遷。


圖 4. RAM 的 Standard 模板:
圖 4 RAM 的 Standard 模板:

圖 4 是 RAM 的標準模板,包含“草稿”、“評審”、“目前狀態”、“已批准”四個狀態,它們之間可以通過“稽核”、“提交”、“批准”、“恢復”等完成狀態變遷。

從以上示例可以發現,生命週期模板只是提供了簡單的狀態機模型,更多的細節還需要在生命週期例項中定製。下圖描述了一個基於 Simple 模板的生命週期例項。在該例項中,通過條件指明生命週期作用於型別為 Bundle 的資產之上,通過在狀態上定義策略來規範資產的完整性,通過變遷條件確保資產滿足策略。


圖 5. 基於 Simple 模板的生命週期例項
圖 5 基於 Simple 模板的生命週期例項

這裡的策略跟 SOA 治理中的策略類似,即當滿足約束條件時將執行特定動作。動作一般是對資產的操作,並非必填項,當沒有定義動作時整個策略簡化為條件驗證。策略和生命週期結合在一起,可以大大提高後者的表達能力。如果把策略簡單看作條件驗證,那麼它跟資產型別規約有很多相似之處,比如都可以規範資產包含什麼樣的製品,資產需要有什麼屬性,資產之間具有什麼關係。但兩者之間也有明顯不同,主要體現在下表中。


表 1. 策略和資產型別約束的對比

策略 資產型別約束
前提條件 無需定義資產型別 需要定義資產型別
作用結果:提交資產 當不滿足時也可以提交資產 當不滿足時無法提交資產
作用結果:提示 當不滿足時給出警告 當不滿足時提示錯誤
作用域 資產型別或者基於術語的分類 資產型別
作用時機 靈活應用於生命週期的各種狀態 從提交資產開始

RAM 中內建了多種策略,包括製品驗證、屬性驗證、關係驗證、追加製品、修改所有者等。我們這裡以關係驗證為例簡單介紹。該策略要求被測資產存在與某一資產型別的某種關係,例如 Bundle 資產包含模型資產。在該策略作用下,當提交 Bundle 資產時如果沒有包含模型資產,則給出警告資訊。但是單憑策略無法限制對資產的操作,於是結合生命週期給出完整的約束。

回到上文中的生命週期例項,在初始狀態上新增關係驗證策略,檢測並提示滿足關係約束;然後定義變遷條件,限制只有滿足策略才能進入下一狀態。這樣 Bundle 資產既可以提交,又能保證經過審批後符合約束條件。

擴充套件生命週期模板與自定義策略

RAM 提供多種介面,為了自定義生命週期模板,可以使用 Rational Team Concert Eclipse 客戶端,也可以通過 RAM API。下圖展示了 RAM 的內部結構及其與外部應用的互動方式。其中最常用的方式是使用者通過瀏覽器訪問 Web 管理控制檯,或者二次開發應用呼叫 Web 服務介面,這可以完成大部分的管理操作。對於複雜的功能擴充套件(如評審過程和策略),RAM 預留了擴充套件點,開發人員可以開發 java 擴充套件應用,通過 Web 介面整合進來。此外,RAM 針對可定製的生命週期資源,還提供了 Jazz 儲存庫及其應用,允許外部將 RAM 看作一個開發交付環境,擴充套件的生命週期可以直接被 RAM 使用。


圖 6. RAM 與外部應用的互動示意圖
圖 6 RAM 與外部應用的互動示意圖

IBM Rational Team Concert (RTC) 是構建在 IBM Rational 面向軟體交付技術的下一代協作平臺 Jazz 平臺上的第一個商用產品、一個協作式的軟體開發環境。RAM 提供了一個 jazz 儲存庫,允許開發人員連線到 RAM Lifecycle 專案區,從而進行生命週期擴充套件。RAM 的儲存庫路徑為 http://:/jazz/,這可以在 RAM 控制檯的管理 / 配置中找到。連線後就可以在 Process Configuration 中新增新的 Workflow 過程了。下圖展示了在 RTC 中 Simple Asset Workflow 的設定,通過狀態、操作、過渡等定義了一個完整的生命週期過程。


圖 7. 通過 RTC 客戶端定製生命週期模板
圖 7 通過 RTC 客戶端定製生命週期模板

檢視圖 7 大圖

RAM 還可以通過外掛擴充套件的方式,開發自定義評審過程。不過它是 RAM 早先版本的擴充套件方法,在最新版本中推薦使用 RTC 方式擴充套件生命週期模板。

而策略的擴充套件還需要通過外掛擴充套件來完成。RAM 提供了基類 PolicyGovernor 和 AssetPolicy,PolicyGovenor 對若干策略(Policy)進行管理,AssetPolicy 定義如何執行策略,針對 Asset 內容驗證其結果。策略開發程式碼可以參考 RAM Web 應用路徑下的 SampleGovernor.jar 檔案。同時 RAM 控制檯提供了整合該擴充套件應用的途徑,可以在“管理 / 自定義擴充套件”中將其註冊,隨後應用在某生命週期例項中。

總結

RAM 中的生命週期,既可以保證經過評審的資產具有正確的狀態,又可以根據業務需要進行定製,同時藉助 RTC 客戶端的管理方式增加了擴充套件的便利性。在此基礎上,通過策略的引入,以更加靈活的方式驗證業務規則,有效保證資產的完整性,使得經過評審的資產更好的得到複用。

RAM 提供了比較豐富的生命週期模板和策略,因此在具體業務應用中,建議首先考慮使用現有生命週期及策略,如有必要再進行擴充套件。而後通過 RAM 控制檯為資產設計生命週期例項,它直接作用於進入 RAM 中的資產,應結合業務需求和技術概念綜合考慮。完成 RAM 社群的配置後,就可以釋出和管理資產了,一般可以通過控制檯或者 API 呼叫來進行。

原文連結:http://www.ibm.com/developerworks/cn/rational/r-cn-ramreuseassetlifecycle/index.html

來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/14780914/viewspace-670098/,如需轉載,請註明出處,否則將追究法律責任。

相關文章