使用 RAM 富客戶端進行資產工程設計

myattitude發表於2009-07-07

轉自:developerworks

作者:Harry T Pendergrass, 軟體工程師, IBM
Eoin Lane, 高階方案工程師, IBM, Software Group

RAM 富客戶端是 Eclipse 豐富功能的擴充套件,開發人員使用該產品可以向遠端儲存庫快速收集和上傳或者從中定位和下載與軟體相關的資產。在本文中,我們將概述使用 Rational Asset Manager (RAM) 進行基於資產的工程設計方法,並提供一些詳細的示例,向您展示如何通過功能齊全的 RAM 富客戶端利用此資產儲存庫。

引言

本文的目的是向讀者介紹 RAM 富客戶端如何適用於 RAM 框架,在何處可以找到它,以及應如何使用。下面的案例說明了在軟體開發過程中能夠及時訪問資產的重要性。這與基於資產的開發的整體概念密切相關,尤其是在 SOA 的上下文中。

我過著令人陶醉的生活,我和我妻子一塊駕車上班。從我們的住所到工作地點波士頓劍橋驅車大約有 40 分鐘的路程。在這段寶貴的時間裡我們一路暢談各自的工作。因此,在上週的一天,我圍繞資產可消費性對映向她解釋了我的一些想法。我的妻子不容易聽進去我的高談闊論,並告訴我她對這些觀點不感興趣。為了向她解釋,我給她打了個開車的比方,因為我們都是車手。

我坐在車上開車,就處於司機這樣一個上下文中,我需要了解與司機相關的資訊和工具,如我的車速、發動機狀況、天氣情況、GPS 裝置、路況,包括具體路段的限速(如本車上下文)等。在駕駛上下文中,我需要了解與司機相關的內容,如我需要能夠使用這些資產。

作為軟體開發人員或協作顧問,我又處在另一個特定的上下文中。現在,該上下文由專案的範圍以及該特定專案的功能性和非功能性需求確定。此上下文還可以對映到內容,以便更好地執行我的工作。例如,在保險專案上,可能圍繞建立理賠系統有一個功能性需求。這裡可以對映功能性需求,以便重用軟體資產,如理賠系統的保險 UML 模型。另一方面,非功能性需求(如事務理賠系統)可以對映到其他型別的可重用軟體資產(如軟體模式資產),以幫助我進行一致的體系結構決策。

現在的問題是,我們如何自動執行此上下文以進行內容對映,並以一致的方式開發軟體,從而更好地實現可重用資產(如模型和模式)的可重用性?

資產墓地

我一直愛看的一部電影是 Sergio Leone 執導的義大利風格美國西部經典電影:《黃金三鏢客》。這部電影吸引人的地方是它的劇情簡單;故事的核心是尋找寶藏,其中刻畫了三種人物性格,即善、惡、醜,他們尋找同盟的黃金。其中他們知道財富的位置,這些財富與墓地中的屍體埋葬在一起,只有他們聯合的智慧才能引導他們找到戰利品。在這部電影快結束的時候,這個“醜陋的”人物叫 Tuco(由 Eli Wallach 扮演)到達了這個墓地,這是電影院中最激動人心的時刻,並且伴隨著令人難忘的背景音樂,他開始瘋狂地雜亂無章地搜尋 Arch Stanton 墓場。

這個場面給人印象最深的是墓地的巨大場面——看上去有兩千多個墓地,環繞排列著。Tuco 在 Sad Hill 中心開始挖起來,那裡的墓穴年代最早,並且按照他的方式最初從同心圓開始。但是當他對這個巨大的任務感到失望時,他的搜尋很快變得更加雜亂。最後,當一個個墳墓從他眼前閃過,他突然來到 Arch Stanton 的墓地,發現沒有任何金子。的確,那裡只存放了一具腐爛的屍體。

今天,這個故事在我以前參與的每個 IT 專案中重複著,其中包括我自己帶領的 IBM 團隊。這裡應注意,我們的團隊分佈在不同的地理位置,因此,儘管我們可以定期電話交談,但是我們沒有機會面對面地溝通。團隊中我的一個好朋友兼同事(我們叫他 Bob)曾是一項工程的負責人,為加利福尼亞的汽車消費者進行第一次 SOA 服務註冊。消費者對服務註冊的一個要求是必須在某個指定的期限內完成。在未通知 Bob 的情況下,我們小組按照另一個合約處理了幾年前的一個非常類似的問題。我們認識到此工作的重要性,並圍繞該工作建立了許多資產。這些資產的形式滿足請求程式端快取模式的寬泛分類要求,這是我們建立模式規範、模式實現和模式文件(包括 dW 文章、flash 電影和詳細案例研究)的快取模式。在我的主頁上可以找到所有這些模式資產文章和其他相關模式資產文章的完整列表。

Bob 不瞭解我們以前這方面的資產工作,認為我一定會圍繞他自已的儲存庫墓地轉來轉去,他完成了任何其他優秀架構師應該做的工作,他從頭開始,並對資產重新設計,與我們兩年前的做法完全一樣。

與 Tuco 拼命地搜尋 Sad Hill 獲取同盟的黃金一樣,Bob 也面臨相同的困境,事實上,我親歷過我們涉及的每個 IT 合約和軟體專案面臨進退兩難的情況。我敢說,此困境不是專門對於 IT,而且您會發現幾乎每個人都會遇到此問題,範圍包括從工程師構建火箭將人類送上火星到律師為專利申請起草宣告。那麼我們應如何提供正確的資產和內容來幫助解決手邊特定背景下的問題呢?換句話說,我們如何自動操作從上下文到內容的對映方法,從而為我們的構架師,工程師,以及律師們建議最好的資產?

RAM 讓您絕處逢生

IBM Rational® Asset Manager (RAM) 可以解決以下問題:使企業中分散的資產更具價值。RAM 是稱為“可重用資產規範”(Reusable Asset Specification) 的標準規範的實現。RAS 是 OMG 規範,由 IBM 和其他公司內部開發。RAS 可以為以下內容定義格式:描述性後設資料、分類後設資料、資產的用法後設資料,以及內容的佈局和內容後設資料。

IBM 旗艦型建模產品 Rational Software Architect 6.0(Rational Rose 功能完備的繼承者)是實現 RAS 規範的第一款 IBM 產品。在該實現中,它支援工作組和本地儲存庫儲存,但不支援任何可伸縮性企業儲存庫。不過,可重用資產的收集、儲存和使用問題實質上是企業問題。小規模重用並不困難,不需要優秀工具的支援。

為解決此問題,IBM 設計了名為 Rational Asset Manager (RAM) 的支援企業的資產儲存庫。RAM 在誕生時就設計為訪問企業級儲存庫。

RAM 的詳細資訊

儲存庫資料儲存在 DB2 或 Oracle 資料庫中。web 應用程式執行在 Websphere Application Server 或 Tomcat 中。使用當今大多數瀏覽器可以檢視 web 客戶端。RAM 富客戶端執行在任何基於 Eclipse 的 IDE 中。這些都是 RAM 的體系結構元件。

在 RAS 規範中,用 UML 表示 RAS 元模型。資產是最高階別的物件。它包含許多部分:解決方案、分類和用法。解決方案包含資產中包括的實際檔案和資料夾的層次結構。每個檔案和資料夾由規範中稱為“構件”的內容表示。

構件就像資產中的內容原子。構件對應於資產中實際包含的檔案、資料夾、專案或一些特定項。如果我們再次考慮一下《黃金三鏢客》,並且將 Sad Hill 上的墓地作為單個資產,則可以將每個墓碑表示為單個構件。

規範允許定義由引用指定的構件,這意味著該構件只能被引用,而不能包含在存檔中。RAM 工具尚不支援這種型別的構件,但是在本文的稍後部分中,我們將討論一種機制,來模擬作為 URL 引用的構件。





回頁首


富客戶端需求

RAM 富客戶端可以與 Eclipse 整合。通過該整合,富客戶端可合併特定於 Eclipse 的概念(專案、外掛和功能)。因此,富客戶端意味著可以打包比 Web 客戶端更復雜的、以開發人員為中心的資產。這會促進與軟體開發關聯的資產的收集和使用。





回頁首


RAM 富客戶端的使用

下面提供了有關如何獲取 RAM 副本(包括富客戶端)的資訊。下面是 RAM 中軟體開發資產的使用者案例

  1. 收集 Java 資產:開發人員可以在 Eclipse 中建立 Java 專案。將這些專案打包成富客戶端中的資產。開發人員可以將此資產分為適當的類別,並新增任何所需的標籤。開發人員然後將此資產提交到儲存庫。
  2. 搜尋資產:開發人員可以在儲存庫中搜尋特定類別的資產、特定的標籤或關鍵字。與 Tuco 通過 Nob Hill 上的墓誌進行搜尋相比,通過分類搜尋資產的隨意性小。通過資產的分級組織,搜尋特定於開發人員任務的資產非常簡單。標籤是篩選搜尋結果的附加維度。可以在資產中以及該資產包含的構件中搜尋關鍵字。開發人員執行搜尋後,該工具將結果集返回到搜尋結果檢視中。
  3. 使用資產:在儲存庫中找到所需的 Java 資產後,開發人員可以將該資產下載到工作區,並將其內建。開發人員可以向 Java 資產新增功能。
  4. 更新現有資產:將功能新增到 Java 資產後,開發人員可以通過這些更改來更新儲存庫中的資產。





回頁首


RAM 富客戶端入門

要開始探索 RAM 富客戶端,請首先檢視一下作為 Eclipse 中資產管理透檢視的組成部分的檢視。

Eclipse 中資產管理透檢視的檢視

RAM 富客戶端的核心部分有三個檢視。當使用者開啟 Eclipse 中的資產管理透檢視時,這些檢視在預設情況下是可視的。它們分別是 Asset Explorer 檢視、Repository Explorer 檢視和 Search Results 檢視。Asset Explorer 將顯示在 Eclipse 工作區中建立或下載到該工作區的所有資產。Repository Explorer 可以顯示指向已經在工作區中建立的 RAM 儲存庫的連線。顧名思義,搜尋結果檢視可顯示對任何 RAM 儲存庫執行的搜尋結果。請參見下圖。


圖 1. RAM 富客戶端檢視
RAM 富客戶端檢視

連線到儲存庫

建立或下載資產之前,您需要向 RAM 伺服器新增連線。可以轉到 My Repositories 檢視,右鍵單擊並選擇 New Repository Connection。New Asset Repository Repository Connection 嚮導將彈出。在 Name、URL、User Name 和 Password 屬性欄位中,分別填寫名稱、URL、使用者名稱和密碼。


圖 2. 新建儲存庫連線嚮導
新建儲存庫連線嚮導

建立資產:新建資產嚮導

您可以使用以下選單建立新的資產:File => New => Asset Management => Asset。建立新資產的最簡單方法是使用新建資產嚮導。在 Asset Explorer 檢視中右鍵單擊,然後選擇 New => Asset。新建資產嚮導將彈出,如下所示。

下一步是確定和描述資產的名稱、簡短描述、版本、社群等。


圖 3. 資產建立嚮導的第一個頁面
資產建立嚮導的第一個頁面

然後在下一個螢幕中,需要對資產進行分類。對資產分類是資產建立者最重要的任務之一。分類可以將儲存庫從隨機集合(類似 Sad Hill 上的墓穴)轉換為容易搜尋的儲存庫。它是用於儲存庫的 Dewey Decimal 系統。展開類別,並選中適用的類別。請注意,資產分類法(即分類)是基於 RAM 儲存庫的配置填充的。由於配置和管理企業分類法通常是管理員的任務,所以您無法在 RAM 富客戶端中新增或修改這些分類法。如果希望新增或修改分類法,則需要以管理員身份登入,並使用 RAM Web 客戶端。


圖 4. 資產建立嚮導的類別頁
資產建立嚮導的類別頁

完成資產的分類後,下面需要確定資產的內容。您可以拾取作為當前工作區一部分的任何構件(檔案、資料夾、專案等)。


圖 5. 資產建立嚮導的內容頁
資產建立嚮導的內容頁

最後,單擊 Finish 後,該工具將在本地工作區中建立資產。請注意,此時資產尚不在儲存庫中。

建立資產後,將顯示資產編輯器。該編輯器包含一個將執行提交的按鈕。不需要選擇儲存庫,因為資產已經與特定的儲存庫關聯。資訊模型儲存在儲存庫中,因此,建立資產並對其分類需要儲存庫關聯。


圖 6. 資產編輯器的常規頁(顯示提交按鈕)
資產編輯器的常規頁(顯示提交按鈕)




回頁首


結束語

由於軟體開發更多地移向工程師原則,所以基於工程的資產將成為此轉換的關鍵促成因素。軟體工具(如 RAM),特別是 RAM 富客戶端將支援此轉換,並在將來會提供更可靠的可重用解決方案。在下一篇文章中,我們將介紹對一致的軟體工程、軟體模式資產至關重要的特定資產型別。在使用 RAM 富客戶端時,我們將詳細介紹如何使用用法模式和最佳做法,例如,使用特定的軟體模式資產和請求程式端快取。


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

相關文章