構建跨廣域網Base CC/CQ整合開發平臺
轉自:http://www.ibm.com/developerworks/cn/rational/r-cn-ccrcbasecccq/index.html
Rational ClearCase 和 Rational ClearQuest 是 IBM Rational 家族產品中的核心成員,而二者的整合,將變更請求和配置管理物件有機的聯絡在一起,既保證了產品的質量又極大地提高了開發效率。ClearCase Remote Client(簡稱CCRC),是 IBM Rational 推出的能夠滿足廣域網環境下資源配置管理的需要,並涵蓋了大部分 ClearCase 客戶端功能的強大工具。而 ClearCase 中心化快取管理的特性是 CCRC 上 Base ClearCase 與 ClearQuest 整合的基礎。
因此,本文將詳述如何利用中心化快取管理的特性,使用 CCRC 構建跨廣域網的 Base ClearCase 與 ClearQuest 整合開發平臺,希望能夠給企業部署 ClearCase 與 ClearQuest 整合開發平臺,提供一定的參考。
1. Base ClearCase 與 ClearQuest 整合簡介
Base ClearCase 與 ClearQuest 整合,簡稱 Base CC/CQ 整合,是 ClearQuest 中的變更請求(Change Requests)關聯到一個或多個 ClearCase 中元素(Element)的某一分支(Branch)的版本(Version)上。
Base CC/CQ 整合的方式有兩種,一種是在開發人員的客戶終端安裝了 ClearQuest 客戶機元件的情況下,通過本地 ClearQuest 介面訪問資料庫的方式實現整合;第二種方式是通過 CQ Web(ClearQuest Web)整合介面實現,它使用 ClearQuest Web Server 上提供的基於 WEB 的介面訪問資料庫的方式,開發人員使用該方式整合無需在自己的客戶終端上安裝 ClearQuest 客戶機元件。而 Base CC/CQ 整合的部署和配置方式也有兩種,一種是本地方式(Local Server),它使用本地預設目錄中的配置檔案 config.pl 和 cqcc_launch 指令碼以及其他程式碼檔案進行整合操作;另外一種方式是集中方式(Central Server),它是將配置檔案 config.pl 和 cqcc_launch 指令碼以及其他程式碼檔案統一存放在一個目錄裡,當進行整合操作時,ClearCase 就會使用該目錄中的配置檔案,指令碼以及其他整合所需要的程式碼檔案,而不是使用本地預設目錄中的檔案,從而提高了安全性和可維護性,因此,本文推薦使用該方式來構建廣域網上 Base CC/CQ 整合開發環境。
基礎的 Base CC/CQ 整合環境的構建以及操作範例,讀者可以參考 developerworks 文章“Base ClearCase 與 ClearQuest 的整合”。而 ClearCase 的另外一種應用方式 UCM(Unified Change Management),它是一種基於活動的變更管理流程,並且它是基於 Base ClearCase 的管理流程演變而來的。UCM ClearCase 與 ClearQuest 整合的相關資訊讀者可以參考 developerworks 文章“UCM ClearCase 與 ClearQuest 的整合”。
ClearCase 遠端客戶端軟體(ClearCase Remote Client),簡稱 CCRC,是一種優化的基於 Eclipse 的使用者介面。它通過 HTTP 協議與伺服器進行互動,並涵蓋了大部分本地 ClearCase 客戶端的功能,因此能夠用於廣域網環境下資源的配置管理,為使用者提供了一種使用 ClearCase 服務的便捷方式,受到了眾多業界人士的青睞。如圖 1 所示,開發人員可以在廣域網的環境中,使用 CCRC 來訪問 ClearCase 伺服器進行配置管理工作。
IBM Rational 為了能夠更好的實現 ClearCase 在 CCRC 上 Base CC/CQ 整合的功能,特別在 ClearCase V7.0.1 及其後續發行版本 7.1(含補丁)增加了中心化快取管理(Centralized Cache Management)的特性。如果開發人員使用 V7.0.1 之前版本的 ClearCase 進行 Base CC/CQ 整合操作,在該操作過程中產生的會話資訊檔案及快取檔案都會存放在開發人員自己的本地目錄中,這樣的儲存方式既不利於 ClearCase 管理員的統一管理,同時也不利於這些資訊檔案的資料管理以及後期的維護工作。而中心化快取管理的特性彌補了這一缺陷,它將這些存放在各個開發人員本地目錄裡的資訊檔案,都統一存放在一個公共的共享目錄中,既方便了 ClearCase 管理員的統一管理又提高了產品的安全性和可維護性,同時也為構建跨廣域網的 Base CC/CQ 整合開發環境提供了前提。而這一特性主要體現在核心配置檔案 config.pl 的引數 CQCC_CACHE_ROOT 上,本文將會在 5.3.4 節詳細介紹該引數的配置方法。
下面本文將具體介紹如何通過 CQ Web 整合介面、並採用 Central Server(集中方式)的配置方式,使用 CCRC 構建廣域網環境下的 Base CC/CQ 整合解決方案。
圖 2 是一個典型的使用單一站點的 ClearCase/ClearQuest 整合環境拓撲結構圖。為了能夠實現 Base CC/CQ 整合的功能,企業還需要在內部網路中加入 CC/CQ Integration Server 來管理 Base CC/CQ 整合,從圖中可以看出開發人員可以使用 CCRC 在廣域網的環境中,通過訪問 ClearCase 伺服器來進行整合環境下的配置管理工作。
為了滿足中大型企業開發需求,可以採用跨廣域網、多站點、分散式的 Base CC/CQ 整合開發環境,如圖 3 所示。
機器名稱 | 角色描述 | 作業系統 |
CC/CQ Integration Server (簡稱 CCCQ_server) |
|
Windows |
CC Web Server |
|
Windows 或 Unix/Linux |
CC VOB/ Registry/Multisite Server |
|
Unix/Linux |
CC VIEW Server |
|
Windows 或 Unix/Linux |
CQ Web Server |
|
Windows 或 Unix/Linux |
CQ Multiste Server |
|
Windows 或 Unix/Linux |
CQ DB Server |
|
Windows 或 Unix/Linux |
CCRC |
|
Windows 或 Unix/Linux |
Client |
|
Windows 或 Unix/Linux |
表 1 列出了圖 2、圖 3 中各類機器在執行環境中承擔的角色描述以及推薦使用的作業系統型別。但有兩點值得注意的地方:
- 伺服器上 ClearCase 產品的安裝需要使用 V7.0.1 或者更高的版本 V7.1,而 ClearQuest 的安裝也必須使用與 ClearCase 相同版本的產品。如果 CQ Web Server 選擇安裝在 Unix 機器上,那麼還需要在一臺 Windows 機器(推薦使用 CC/CQ Integration Server)上安裝 ClearQuest 及其管理工具,需要使用該機器上的 ClearQuest 維護工具(Maintenance Tool)來建立模式庫及使用者庫,以及 ClearQuest Designer 為 ClearQuest 模式庫應用 ClearCase 的軟體包,使 ClearQuest 具有和 ClearCase 整合的功能。
- 如果搭建如圖 3 所示多站點的 Base CC/CQ 整合開發環境,ClearCase 和 ClearQuest 都需要搭建成多站點環境,並且 ClearCase 只能與本站點的 ClearQuest 進行整合。
配置整合環境的第一步需要在 CC/CQ Integration Server 上建立兩個共享目錄,一個共享目錄(\\ CCCQ_server \cqcc_central_dir)是用於儲存使用者在進行 Base CC/CQ 整合操作時生成的所有資訊檔案,該共享目錄名將會用於配置檔案 config.pl 中的引數 CQCC_CACHE_ROOT,並且 ClearCase 管理員需要配置該共享目錄的許可權,限制每個使用者只能修改本使用者目錄下檔案的許可權,而管理員自己可擁有所有許可權,以保證整合資料的安全性;另一個共享目錄用於集中方式(Central Server)的工作目錄(\\CCCQ_server\CQCC_config_dir),存放所有 Base CC/CQ 整合的指令碼檔案及配置檔案,它需要把
\lib\CQCC 目錄下的所有檔案和\bin\cqcc_launch 指令碼檔案都拷貝到該目錄下,而該共享目錄名稱會在安裝 VOB 觸發器時用到(是指 ClearCase 的安裝目錄,例如在 Windows 機器上安裝 ClearCase 後,它的預設安裝目錄為 C:\Program Files\Rational\ClearCase),並且 ClearCase 管理員也需要配置該共享目錄的許可權,限制每個使用者對該目錄的寫許可權,而管理員自己擁有所有許可權,以保證配置資料的安全性。 5.2 在 ClearCase VOB 上安裝觸發器(Triggers)
Base CC/CQ 整合主要是應用了針對 cleartool 工具中的 checkin,checkout 和 uncheckout 操作的觸發器,觸發器的安裝與配置需要在 Windows 端進行,而 CC VOB Server 一般使用 Unix/Linux 機器,所以首先需要使用 Region Synchronizer 工具同步 Unix 與 Windows 機器上的 ClearCase Regions,然後才能在 Windows 端的整合配置工具(ClearQuest Integration Configuration)中看到 Unix 機器上的 VOB。接著在 Windows 機器上,點選“開始 -> 程式 -> IBM Rational -> IBM Rational ClearCase -> Administration ->Integrations->ClearQuest Integration Configuration”。這時出現如下圖 4 所示的對話方塊。在“ClearQuest - ClearCase Integration – Configuration”對話方塊中,可以看到所有在 CC VOB Server 上的 VOB,選中需要安裝整合觸發器的 VOB,如圖 4 所示對名為“testvob01”的 VOB 安裝 Checkout 和 Checkin 的觸發器,選擇 V2 版本的觸發器,並且在 Path 中填寫“\\CCCQ_server\CQCC_config_dir\CQCC\config.pl”,同時選中 "Use trigger scripts in Path directory",表明將會採用集中方式(Central Server)並使用“\\CCCQ_server\CQCC_config_dir \CQCC\”目錄下的整合配置檔案和指令碼檔案來進行整合操作。
圖 4. 整合配置圖
核心檔案 config.pl 的配置工作在 Base CC/CQ 整合的操作中起到非常重要的作用。而為了能夠實現在 CCRC 上 Base CC/CQ 整合的功能,在該檔案中新增了一些新的引數,同時還需要設定一些其他重要的引數,下面將逐個進行說明。
5.3.1 指定 CQ Web Server
&SetConfigParm("CQCC_SERVER", "
");
本文采用 CQ Web 整合介面進行整合,因此需要在該引數中指明 CQ Web Server 的主機名或者 IP 地址,並且使用的預設埠是 80,如果 CQ Web Server 使用其他埠,需要在該引數指出,示例如下:
&SetConfigParm("CQCC_SERVER", "hostname:8080");
5.3.2 指定採用的整合方式
&SetConfigParm("CQCC_CQWEB_ONLY", "TRUE");
設定該引數為 TRUE 表明選擇 CQ Web 整合介面作為整合方式。
5.3.3 指定一個資料庫集合(DBSET)
&SetConfigParm("CQCC_WEB_DATABASE_SET", "
");
本文采用 CQ Web 整合介面進行整合,所以需要設定 CQCC_WEB_DATABASE_SET 引數來指定一個模式(schema)的儲存空間。
5.3.4 指定中心化快取管理的目錄
&SetConfigParm("CQCC_CACHE_ROOT", "
");
該引數是為 CCRC 上 Base CC/CQ 整合的功能而特別增加的,因此,必須在進行整合操作前對該項進行設定,並且該根目錄需要提前建立好,該要點可參考 5.1 節。
如果為該引數設定的中心化快取管理的目錄在 Windows 機器上,那麼需要遵循 UNC 格式,示例如下:
\\\\WindowsHost\\cqcc_server_dir
如果為該引數設定的中心化快取管理的目錄在 Unix/Linux 機器上,那麼就需要使用如下形式:
/net/unixHost/var/tmp/cqcc_server_dir
而且該引數可以靈活配置來解決跨平臺的問題,示例如下:
use Config; # At top of config file with other “use” commands ... &SetConfigParm("CQCC_CACHE_ROOT", ($Config::Config{osname} eq “MSWin32") ? “\\\\WindowsHost\\cqcc_server_dir” : “/net/unixHost/var/tmp/cqcc_server_dir");
如果核心配置檔案 config.pl 即要用於本地的 ClearCase 客戶端整合又要用於 CCRC 上的整合,而對於本地客戶端的整合又不需要使用中心化的配置管理,可以使用如下方法進行設定:
if (defined $ENV{ATRIA_WEB_CLEARPROMPT}) { &SetConfigParm("CQCC_CACHE_ROOT", "central-directory-path"); }
在設定了該引數以後,開發人員進行 Base CC/CQ 整合操作時,產生的快取資訊檔案和其他的整合資訊檔案,都會存放在該中心化快取目錄
中,而不是存放在開發人員本地的目錄中,設定它的好處就在於將所有的整合資訊放在了一起,方便 ClearCase 管理員管理的同時又提高了管理的效率和增強了產品的可靠性。該目錄結構在 Windows 機器上顯示如下: central-directory-path\username\hostname\session.id\.name.seriesID
5.3.5 中心化快取管理的高階引數配置
&SetConfigParm("CQCC_CACHE_MGMT", "
");
進行 Base CC/CQ 整合操作時,ClearCase 會對快取管理目錄
下的舊快取檔案進行定時清理,而這一行為可以通過該引數的設定來進行調整,表 2 中列出了可以進行調整的引數項,但該引數並不是必須要設定的。
表 2. 快取管理的高階參數列
名稱 描述 CM_CLEAN_HRS 每隔幾小時觸發器去清理一次不用的快取檔案和會話檔案,其預設值為 4。 CM_CQSESSION_STALE_MINS 多少分鐘後 ClearQuest Web 會話檔案可以認為是舊檔案並適當刪除,其預設值是 30。 CM_LOCK_BREAK_MINS 多少分鐘後競爭的程式可以打斷操作鎖以避免死鎖情況的發生,其預設值是 5。 CM_LOCK_WARNING_MINS 讓使用者知道正在等待競爭鎖之前需要等待的分鐘數。預設值是 1,如果該引數的值比 CM_LOCK_BREAK_MINS 大,也不會通知使用者。 CM_STALE_HRS 幾小時後快取檔案可以被認為是舊檔案並可以適當刪除,其預設值是 8。 CM_WIN_UNIX 如果需要通過 Windows 客戶端訪問存放在 Unix/Linux 機器上的中心化快取管理目錄,需要設定 CM_WIN_UNIX 為 TRUE,其預設值為 FALSE。
一個具體的例項如下:
&SetConfigParm("CQCC_CACHE_MGMT", "CM_CLEAN_HRS=2,CM_STALE_HRS=4");
該語句指明瞭在中心化快取目錄中的快取檔案在 4 小時可以認為是舊檔案,並且每隔兩小時觸發器去清理一次不用的快取檔案和會話檔案。
5.3.6 多站點整合環境的配置
- 在圖 3 所示的多站點 Base CC/CQ 整合環境中,除了要配置上面提到的引數外,還需要增加另外兩項引數的配置。
- 5.3.6.1 啟用多站點環境引數
&SetConfigParm("CQCC_MULTISITE", "TRUE");
要實現多站點環境下 Base CC/CQ 的整合必須配置此引數為 TRUE。
- 5.3.6.2 指定站點名稱
&SetConfigParm("CQCC_REPLICA_NAME", "
");
該引數需要設定站點的名稱,示例如下:
&SetConfigParm("CQCC_REPLICA_NAME", "SITEA");
對於多站點的環境還有如下兩項引數需要注意:
&SetConfigParm("CQCC_DATABASE_SET", "
"); &SetConfigParm("CQCC_WEB_DATABASE_SET", " ");
如果在單站點整合環境的基礎上部署多站點的整合環境,並且繼續使用舊的資料庫集合(DBSET),那麼該資料庫集合的名稱在部署了多站點的環境後會改變,則以上兩項引數項也需要相應的改變。
啟用中心化快取管理時,快取管理器(cache manager)可以手動的或自動的監控未被處理的與 ClearQuest 的關聯項,和清理快取管理目錄中舊的檔案和目錄。快取管理器程式在 Windows 上的位置是
\config\scheduler\tasks\cqcc_cache_mgr.bat ,在 UNIX /Linux 上的位置是/config/scheduler/tasks/cqcc_cache_mgr.pl 。5.4.1 快取管理器命令的使用方法
以下是一個快取管理器命令的使用例項:
cqcc_cache_mgr -vob \vob01 –cqlogin cqadmin:password -cqbatch_post_mins 40 –nolog
該命令中使用到的命令引數說明如下:
表 3. 快取管理命令參數列
引數名稱 描述 -vob 該引數告訴快取管理器去處理的 VOB 名稱。 -cqlogin name:encrypted_password 該引數提供了連線 ClearQuest 時需要用到的使用者名稱和加密密碼。 -cqbatch_post_mins 該引數告訴快取管理器去處理那些壽命長於多少分鐘的未被處理的 ClearQuest 關聯項;其預設值是 60 分鐘,最小值是 3 分鐘,最大值是 6000 分鐘。 -nolog 該引數指定了命令的輸出資訊輸出到命令列而不寫入日誌檔案。
使用者可以使用命令“cqcc_cache_mgr -help”來檢視更多命令引數的具體使用方法。除了可以用命令列來使用快取管理器管理中心化快取管理的目錄檔案外,也可以使用 ClearCase scheduler 來週期性地執行快取管理器的命令。
5.4.2 檢視快取管理器的日誌檔案
5.4.2.1 檢視快取管理器日誌檔案的方法
1. 使用 log browser 檢視
點選“開始 -> 程式 -> IBM Rational -> IBM Rational ClearCase -> Administration -> Log Browser”,快取管理器的日誌檔案在 Server Logs 下面可以找到。
2. 使用命令列檢視
cleartool getlog cqcc_cache_mgr
5.4.2.2 快取管理器日誌檔案(cqcc_cache_mgr.log)的存放位置
Windows: cchome-dir\var\log\ Unix/Linux: /var/adm/rational/clearcase/log/
下面以 Windows 機器上安裝的 CCRC 進行 Base CC/CQ 整合的例項進行介紹。
開發人員在 CCRC 上進行 Base CC/CQ 整合操作,首先需要建立一個 Base View,接著還需要指明連線哪一個站點的 ClearCase 伺服器,並裝載(load)安裝了整合觸發器的 VOB,如圖 5 所示,然後在該 VOB 中選中檔案 file1.txt,點選右鍵,選擇 checkout 操作。如果是首次進行操作,需要輸入連線 ClearQuest 的使用者名稱及密碼。
圖 5. 輸入使用者名稱
圖 6. 輸入使用者密碼
連線 ClearQuest 成功後,就會出現 ClearQuest 關聯選單視窗,使用者可以根據自己的需要進行選擇,通常情況下選擇“Query – Select from ClearQuest query…”進行條件查詢,點選 OK,出現查詢結果視窗。
圖 7. 關聯選單視窗
在圖 8 的查詢結果視窗選中需要關聯的 ClearQuest 的一條記錄,接著點選 OK。
圖 8. 查詢結果視窗
然後又回到 ClearQuest 關聯選單視窗,如圖 9 所示,點選 OK 即可完成整合操作。
圖 9. 確認關聯結果
最後使用 ClearQuest 客戶端檢視關聯結果。
圖 10. ClearQuest 端的關聯結果
從圖 10 可以看出,開發人員在 CCRC 的環境下進行 Base CC/CQ 整合操作後,ClearQuest 端顯示的關聯結果檔名稱,與使用 ClearCase 客戶端進行整合操作後的結果不同,使用 ClearCase 客戶端整合的檔案路徑較長幷包括了 View 的資訊,而使用 CCRC 進行整合時不包括檔案路徑的 View 資訊,這是因為使用 CCRC 建立的 View 路徑資訊較長,如果在 ClearQuest 端顯示了所有的資訊,使用者在 ClearQuest 中檢視整合結果時,可能需要拖動滾動條才能看清楚檔案的版本資訊;並且在 Windows 上的檔案和 Unix 上的顯示的方式也不同,以一個檔案路徑為“long-view-name\myvob\dir1\file.1”的檔案為例,在 ClearQuest 端關聯結果如下:
Windows: “M:\ccweb\myvob\dir1\file.1” Unix: “/myvob/dir1/file.1”
本文主要介紹瞭如何利用中心化快取管理的特性、使用 CCRC,並採用 CQ Web 整合介面和 Central Server(集中方式)的配置方式,構建跨廣域網的 Base ClearCase 與 ClearQuest 的整合開發平臺。該 Base CC/CQ 整合平臺的解決方案能夠方便 ClearCase 管理員的統一管理並提高了產品的安全性和可維護性。希望通過本文,能夠給企業構建 ClearCase/ClearQuest 的整合開發平臺,提供一定的參考。
來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/14780914/viewspace-626031/,如需轉載,請註明出處,否則將追究法律責任。
相關文章
- cordova + vue cli構建跨平臺應用Vue
- 使用Electron構建跨平臺的桌面應用
- JetBrains Rider for mac(跨平臺.NET IDE整合開發)AIIDEMac
- 跨平臺.NET IDE整合開發:JetBrains Rider for macIDEAIMac
- 使用VSCode和CMake構建跨平臺的C/C++開發環境VSCodeC++開發環境
- 跨平臺開發框架的大旗框架
- 跨平臺開發框架 Lynx 初探框架
- QT6跨平臺開發QT
- 微軟借力.NET開源跨平臺支援,佈局物聯網平臺開發微軟
- 構建dubbo分散式平臺-maven構建ant-framework核心程式碼Base封裝分散式MavenFramework封裝
- 廣域網SDN架構架構
- Electron構建跨平臺應用Mac/Windows/LinuxMacWindowsLinux
- (九) 構建dubbo分散式平臺-maven構建ant-framework核心程式碼Base封裝分散式MavenFramework封裝
- 00-跨平臺開發之FlutterFlutter
- APP跨平臺開發技術分析APP
- 跨平臺開發Flutter初體驗Flutter
- 移動跨平臺開發深度解析
- 跨平臺開發技術簡介!
- hybird跨平臺移動app開發APP
- c++跨平臺開發經驗C++
- Dart Editor——跨平臺的開發工具Dart
- MAUI中構建跨平臺原生控制元件實現UI控制元件
- 藉助Unity AR Foundation構建跨平臺AR應用Unity
- 跨平臺的C/C++整合開發環境 CLion 2022C++開發環境
- 簡訊平臺。軟體開發。網站建設。網站
- 快速構建企業級應用的開發平臺
- 專門為Go開發構建的跨平臺IDE:GoLand 2021 mac中文版IDEGoLandMac
- MediaPipe - 跨平臺機器學習應用開發框架API機器學習框架
- 使用c++開發跨平臺的程式C++
- 跨平臺開發時代的 (再次) 到來?
- 使用 Vagrant 打造跨平臺開發環境開發環境
- 邁步進入跨平臺開發時代
- 使用wxdindows開發跨平臺的介面(轉)
- 敏捷開發框架的開發運用之大資料平臺的構建敏捷框架大資料
- 思否開源專案推介丨Remax:使用 React 構建跨平臺小程式REMReact
- 跨平臺.NET IDE整合開發:JetBrains Rider for mac啟用版IDEAIMac
- Android與iOS/WP8跨平臺整合設計與開發_專欄AndroidiOS
- DSW:面向AI研發的整合開發平臺AI