チーム開発のためのオープンな統合プラットフォーム「Jazz」
Eclipseは、エディター、コンパイラー、デバッガーなど開発者がこれまで別々に利用していたツール群を1つの環境に統合したプラットフォームを提供することによって開発者個人の生産性を向上させてくれました。Jazzでは開発者である個人個人が、チーム開発を行う場合に必要となるソースコードの共有、ビルド、変更や作業のトラッキングやコントロールといった開発プロセスの要素までも1つの環境に統合するオープンなプラットフォームを提供しようとしています。
Jazzプロジェクトの成果として2009年2月27日に日本語を含む13ヶ国語に対応したRational Team Concert V1.0.1.1が公開されました。
Jazzプロジェクトのチーフ・アーキテクトは、エリック・ガンマです。エリック・ガンマと言えば、デザイン・パターンの著者、Eclipseの開発メンバーとして有名です。エリック・ガンマは、これまでの講演の中で、Eclipse開発で得た教訓がJazzプロジェクトに活かされていると言っています。すなわち、Eclipseという成功した大規模なチーム開発のベストプラクティスが詰め込まれた成果がRational Team Concertなのです。
Rational Team Concertのアーキテクチャは、下図のようにアプリケーションサーバーとEclipse、Visual Studio .NET、Webブラウザのクライアントというインターネット環境のオープンなアーキテクチャを採用しています。
今回の記事では、日本語にも対応したRational Team Concert V1.0.1.1(以下、RTC)のダウンロードとインストール手順を紹介したいと思います。RTCは開発者3名までなら、無料で使用することができます。まず、全体の流れを示します。
- RTCのダウンロード
- RTCのインストール
- サーバーのセットアップ
- ユーザーの作成
- プロジェクトの作成
- クライアントのセットアップ
- Eclipseプロジェクトの共有
RTCのダウンロード
RTCのインストーラーは、jazz.netのサイトからを入手できます。入手にはユーザー登録(登録は無料)が必要です。
ユーザー登録は、jazz.netサイトから[Register now!]のリンクをクリックして登録してください。
ユーザー登録後、ログインしたらページ上部の[Downloads]からたどって、Rational Team Concertのダウンロード・ページに行きます(ここでは「1.0.1.1」)。
RTCには、サポートする開発者人数に合わせて、10人までのExpress-C、50人までのExpress、250人までのStandardの3つのエディションがあります。今回は、無償版のRTC Express-Cのファイル(約577MB)をダウンロードします。下図に示したExpress-Cの[Download]をクリックしてください。Express-Cでは、3名のクライアント・アクセス・ライセンスが含まれています。無償でお使いいただけるのは開発者3名までで、4名以上の場合はクライアント・アクセス・ライセンスを追加で購入いただく必要があります。
RTCのインストール
RTC Express-Cのインストールは、ダウンロードしたZIPファイルを任意のディレクトリーに展開するだけで完了です。今回はCドライブのルートに展開します。ZIPファイルを展開すると以下のようなjazzディレクトリーの下に5つのディレクトリーからなる構造になります。
- server: Jazz TEAM Server
- client: RTCクライアント
- buildsystem: スケジュール・ビルド可能なビルドエンジン
- scmtools: コマンドラインからリポジトリーにアクセスするコマンドを提供
- repotools: リポジトリーのバックアップやリストアなどのコマンドを提供
サーバーのセットアップ
インストールが完了したら、次はサーバーのセットアップです。Jazz チーム・サーバーを起動するには、C:\jazz\server\server.startup.batを実行します。コマンド・プロンプトが立ち上がって、以下の画面のように、最後の行に「情報メッセージ Server Startup in XXXXX ms」が表示されたらサーバーの起動が完了です(XXXXXは環境によって値が変わります)。停止するときは、C: \jazz\server\server.shutdown.batを実行します。
サーバーが起動したらJazz TEAM SERVER SETUP ウィザードを使ってサーバーの設定を行います。セットアップはブラウザから行うことができます。
ブラウザを起動して、URLに「https://localhost:9443/jazz/setup
」を入力します。
以下のログイン画面で、ユーザーIDとパスワードの両方に大文字でADMINを入力し、[ログイン]ボタンをクリックします。
Jazz TEAM SERVER SETUPページで、[ファースト・パス・セットアップ]をクリックします。利用するデータベースを変更したり、メールによる通知機能を設定したりする場合は、[カスタム・セットアップ]を選ぶことができます。
[ファースト・パス・セットアップ]を選択すると、[4.ユーザー・レジストリーのセットアップ]になります。まずは、使用するユーザー・レジストリーのタイプを選択します。今回はデフォルトの[Tomcatユーザー・データベース]を選択します。
次に管理者アカウントを作成します。デフォルトの管理アカウントADMINは、使用不可にして自分の管理アカウントを作成します。今回は、ユーザーIDとパスワードをtaroで作成します。入力情報は、ユーザーID、名前、パスワード、Eメール・アドレスです。
管理アカウントにも開発者ライセンスを付与する場合は、チェックを入れます。RTC Express-Cは、3名までの開発者ライセンスが同梱されています。
[次へ]をクリックすると、次の画面が表示され、サーバーのセットアップは完了です。
ユーザーの作成
RTC Express-Cでは3名までのクライアント・アクセス・ライセンスが含まれているので追加で2名のユーザーjiroとhanaを追加します。上記画面で、[ユーザーの作成]をクリックするとRTCのユーザー管理の画面が表示されます。チーム開発用のプロジェクトを作成することもできますが、こちらは後で行います。
[ユーザーの作成]をクリックするとユーザー作成画面が表示されます。入力情報は、ユーザーID、名前、パスワード、Eメール・アドレスです。オプションで顔写真を登録できます。それからユーザーにクライアント・アクセス・ライセンスを設定します。これを忘れるとユーザーのリポジトリーへの書き込み権限が設定されません。[保存]ボタンを押すと、ユーザーIDと同じデフォルトのパスワードが設定されたユーザーが作成されます。今回は、jiroとhanaを追加で作成します。
ユーザーの作成が完了すると次のような画面になっているはずです。
プロジェクトの作成
チーム開発用にプロジェクトを作成するにはユーザー管理画面から[プロジェクト・エリア管理]をクリックしてプロジェクト・エリア管理に移動します。
作成作業に入る前に、今回作成するプロジェクトの構造を確認します。RTCでは、プロジェクト・エリア内に複数のチーム・エリアを階層的に定義することが可能です。RTCではチーム・メンバーで共有する成果物、作業項目、変更依頼などの情報をリソースと呼び、リソースはプロジェクトではなくチームに関連付けられ管理されます。今回は、HelloJazzWorldプロジェクトに1つのHelloJazzWorldチームが含まれており、開発プロセスはScrumに従って、スクラム・マスターのtaroとチーム・メンバーのjiroとhanaの3名とします。
それでは、[プロジェクト・エリアの作成]をクリックしてHelloJazzWorldプロジェクトを作成してみましょう。プロジェクト・エリアの作成画面が表示されますが、プロセス・テンプレートが見つかりませんという表示があります。RTCではあらかじめいくつかの開発プロセス・テンプレートを提供しています。初めてプロジェクトを作成する場合は、プロセス・テンプレートを準備する必要があります。[定義済みプロセス・テンプレートのデプロイ]リンクをクリックして定義済みテンプレートを準備します。
テンプレートの準備が完了すると使用可能なプロセス・テンプレートが一覧表示され選択できるようになります。今回はプロジェクト名:HelloJazzWorld、テンプレート:Scrum、メンバー:taroを追加し、[保存]をクリックします。
これでプロジェクト・エリアが作成されました。同時にプロジェクト・エリア内に同じ名前のチーム・エリアが作成されています。チームにメンバーを登録することによって、チームのリソースへのアクセスを管理することができます。
チーム・エリアの階層から[HelloJazzWorldチーム]のリンクをクリックしてチーム・エリアを表示し、メンバーを登録してみましょう。メンバーの[追加]のリンクをクリックします。ユーザーの選択ダイアログが表示されますので、右上の[すべて表示]をクリックしてすべてのユーザーを表示させます。jiro、hanaを選択して[追加およびクローズ]をクリックします。
次のようにメンバーにtaroに加えてjiro, hana の2名の名前が追加されます。さらに各メンバーに役割を定義します。今回は開発プロセスにスクラム・テンプレートを選択しましたので、Scrumマスターにtaro、チーム・メンバーにjiroとhanaを指定します。図のように[プロセスの役割]アイコンをクリックします。
プロセスの役割の編集ダイアログが表示されるのでそれぞれ指定します。
それぞれプロセスの役割を指定すると次のようになります。
メンバーを登録したらメンバーにチームへの参加の招待をEメールで通知することができます。今回はサーバーのセットアップでEメールによる通知は設定していませんので、Eメールによる通知は行わないことにします。しかし、Eメールに添付されるJazz TEAM SERVERのチーム・エリアへのアクセスに必要な情報を利用することによってRTCクライアントの設定が簡単になりますので、そちらを利用してみましょう。[チームへの参加の招待]アイコンをクリックします。
次のようなチームへの参加の招待用のEメールの編集画面が表示されます。チームの招待を構成するプロパティにある5つのプロパティをテキスト・ファイルなどに3名分保存しておくと後でRTCのクライアントのセットアップが簡単になります。
以上でサーバーのセットアップは一旦完了です。次にクライアントのセットアップを行います。
クライアントのセットアップ
RTCクライアントの起動ファイルは、C:\jazz\client\eclipseディレクトリーのTeamConcert.exeです。このファイルをダブル・クリックするとRTCクライアントが起動します。
RTCクライアントはEclipse 3.3のプラグインとして提供されています。RTCクライアントには、他にVisual Studio .NET用、System iやz用などさまざまなプラットフォームに対応したクライアントが用意されています。
[ワークスペースの選択]のダイアログが表示されますので、ユーザーtaro用に「C:\Documents and Settings\Rational\workspace\taro」と入力して、[OK]を選択します。
すると、 RTCクライアントの起動画面が表示されます。この画面からチュートリアルやヘルプが閲覧できますが、ここでは上に並んだアイコンの一番右の[ワークベンチ]アイコンをクリックし、ワークベンチを開きます。
こちらの画面が開いたらRTCクライアントの起動は完了です。
チームへの参加
RTCクライアントが起動しましたが、Jazz TEAM SERVERとはまだ繋がっていません。
まず、Jazzリポジトリーへ接続します。始めてRTCを起動してワークベンチを開くと、チーム成果物ビューに次のようなリンクかガイドされています。
ここで先ほど保存しておいたチームの招待を構成するプロパティを利用してサーバーにアクセスします。[チームの招待を受諾]のリンクをクリックするとチームの招待を受諾ダイアログが表示されます。今回は、保存していたtaroのプロパティを貼り付けると以下の図のようになります。
[終了]をクリックするとログインのダイアログが表示されますので。パスワードを入力し[OK]をクリックしてください。
下記のような接続証明書の問題が表示された場合は「受け入れる」を選択してください。
ログインが完了すると画面左のチーム成果物ビューにはリポジトリー接続とHelloJazzWorldプロジェクトが表示され、画面右には、プロジェクト・エリア・エディターが表示されます。
画面右下にはtaroがHelloJazzWorldプロジェクト・エリアにおいてプロジェクトを開始するに当たって必要なワークアイテムの一覧表示のビューが表示されます。
初期状態では、まだ一覧表示されてませんので、[自分に割当てられた項目(未完了)]をクリックすると、次のようなワークアイテムの一覧が表示されます。
jiroとhanaについても同様の手順でクライアントのセットアップを行います。ただし、今回は、3つのクライアントを同じマシン上で立ち上げることになりますので、[ワークスペースの選択]では、それぞれ以下のワークスペースを定義して[OK]をクリックします。
jiro: C:\Documents and Settings\Rational\workspace\jiro
hana: C:\Documents and Settings\Rational\workspace\hana
間違ってtaro用のワークスペースを選択しないようにしてください。
Eclipseプロジェクトの共有
実際に開発するEclipseのJavaプロジェクトを準備します。Javaプロジェクトの準備はtaroが行いソースファイルの開発は、jiroとhanaが担当するとします。EclipseのプロジェクトとRTCのプロジェクトは同じプロジェクトという名前が付いていますが別のものですので誤解しないでください。
[ファイル]-[新規] -[Javaプロジェクト]を選択して、プロジェクト名を「HelloJazzWorld」とします。この時点では、taroのワークスペース上にJavaプロジェクトができただけで、jiroやhanaと共有していません。共有するにはHelloJazzWorldを選択してコンテキスト・メニューから[チーム] -[プロジェクトの共用]を選択します。プロジェクト共用ダイアログが表示されるので、Jazzソース管理を選択して[次へ]をクリックします。
Jazzでプロジェクトを共用ダイアログで、デフォルト・コンポーネントを選択して、[終了]をクリックします。これで、jiroやhanaとHelloJazzWorld Javaプロジェクトを共有できるようになります。
[終了]をクリックすると保留中の変更ビューが表示され、リポジトリーに保存される候補が右矢印で表示されます。[発信するすべてのベースラインおよび変更セットの提出]アイコンをクリックすると、「すべて提出」の確認画面が表示されますので、OKをクリックし、リポジトリーに登録します。
提出が完了するとパッケージ・エクスプローラーのアイコンにオレンジ色の円柱が表示され、リポジトリーで管理されていることを示します。
jiroのRTCクライアントに切り替えるとチーム成果物ビューにtaroと同じHelloJazzWorldプロジェクト・エリアが表示されています。
次に共有されたJavaプロジェクトにアクセスします。チーム成果物ビューで、マイ・リポジトリー・ワークスペースを選択して、コンテキスト・メニューから[新規] -[リポジトリー・ワークスペース]を選択します。
新規リポジトリー・ワークスペースのダイアログが表示されますので、ストリームを使用したフローからHelloJazzWorldチームストリームを選択して[次へ]をクリックしてください。
リポジトリー・ワークスペースにjiroと分かるように適当に名前をつけて[終了]をクリックしてください。
リポジトリー・ワークスペースにEclipseプロジェクトをロードするか聞いてくるのでEclipseプロジェクトの検索およびロードを選択して、[終了]をクリックします。
Javaパースペクティブに切り替えてパッケージ・エクスプローラーを見ると次のようにtaroが共有したHelloJazzWorldプロジェクトが共有されているのが分かります。
ユーザーhanaについても同様に行います。
これで成果物をチームで共有するというチーム開発のための最低限の環境は整いました。実際に、jiroがコードを作成してhanaと共有できることを確認しましょう。
まず、jiroの環境で、demo.HelloJazzWorld.javaを作成します。するとパッケージ・エクスプローラーのアイコンの背景がオレンジ色に変わって変更があったことが表示されます。
また、保留中の変更ビューで、ファイルが新規作成、あるいは変更されているがチェックインされていないという意味で未解決の変更があることが表示されます。ここで、ビューの右上の[すべての保留中のローカル変更のチェックイン]アイコンをクリックします。
コメントを入力とリポジトリーへの発信をするように指示してきます。
コメントとして「jiro 新規登録」と入力後、[発信するすべてのベースラインおよび変更セットの提出]アイコンをクリックしjiroの変更を他のチーム・メンバーと共有します。
jiroがリポジトリーに変更を発信してしばらくすると、hanaの保留中の変更ビューにリポジトリーに新しい変更があることが通知されます。[着信]を展開するとjiroが新規登録したことが分かります。
さらに展開して、HelloJazzWorld.javaをダブル・クリックして中身を確認し、自分の環境に適用するかどうかを判断することができます。
中身を確認後、[着信するすべてのベースラインおよび変更セットの受諾]アイコンをクリックするとhanaのパッケージ・エクスプローラーにjiroが作成したdemo.HelloJazzWorld.javaが表示されています。
まとめ
ここまでで、RTCのダウンロードからチーム・メンバーでEclipseのJavaプロジェクトを共有するところまでの手順を紹介しました。
- RTCのダウンロード
- RTCのインストール
- サーバーのセットアップ
- ユーザーの作成
- プロジェクトの作成
- クライアントのセットアップ
- Eclipseプロジェクトの共有
他にもプロジェクトの計画を立てる、タスクを作成する、タスクをメンバーにアサインする、タスクや変更をトラッキングする、プロセスをコントロールする、コードをビルドする、プロジェクトの情報を可視化するなどさまざまな機能があります。ここまででチーム開発の最低限の環境が整いました。
次回以降、数回に分けてそれぞれの機能についても紹介したいと思います。