IBMのエバンジェリストや研究者達が運営するWiki「IBM ソフトウェア・テクノロジー情報」では、クラウドコンピューティングやマッシュアップ、Ajax、Web2.0、アジャイル開発といった製品固有でない、オープンテクノロジーや先進テクノロジーに関する技術情報を提供している。
CodeZineでは、このサイトのオーナーであるIBMソフトウェア・エバンジェリスト 米持幸寿氏と、開発プロセスプラットフォーム『Jazz』、Web2.0セキュリティ、DHTML/Ajaxライブラリーの『Dojoツールキット』、Javaベースのスクリプト言語『Groovy』といった4種の技術のキーマンたちを取材した。この模様を前編・中編・後編の3回に分けてレポートする。
ソフトウェア技術のトレンドは『クラウド』
「IBM ソフトウェア・テクノロジー情報」は、IBMのソフトウェア関連の技術情報を日本のマーケット向けに伝えるミッションを持つチーム『ソフトウェアテクノロジー推進会議』が運営している。サイトオーナーの米持氏は発足の経緯について「今まで、製品の機能などはもちろん紹介してきましたが、テクノロジーの詳細な紹介まではできていませんでした。また、英語でのワールドワイドな情報提供は行っていますが、日本では一部のエンジニアの方しかご覧になっていないと思います。そこで、テクノロジー情報を日本のエンジニアの皆さんにお届けしたいという形で始めました」と語った。
米持氏は、サイトを通じて現在発信しているテクノロジーは、結果的に“Web系”という共通点を持つという。今回話を伺ったJazzも、Web系以外の開発でも利用されるが、中身はWeb 2.0の技術を使っている。Web 2.0セキュリティとDojoツールキットは両者共に、Ajaxを使ってリッチインターネットアプリケーションを実現するための標準化などを行っている『OpenAjaxアライアンス』のアクティビティーであり、GroovyはアジャイルWebアプリケーション開発のためのスクリプト言語である。
この背景として米持氏は、最近流行りの言葉である『クラウド・コンビューティング』を挙げた。サイト自体にコードを操作・実行できる環境があれば、成果物のファイルを持ってサーバにアップするという開発スタイルではなく、ブラウザを使っての開発が可能だ。ソフトウェア開発においていかにコラボレーションし、生産性を向上させるかという観点でデザインされたプラットフォームであるJazzも、サーバ上にプロジェクトを立ち上げれば、Eclipseを使って開発したとしても、そのコードはすべてサーバ上で管理できる。このため、ローカルのPCにコードを保存したり、そのファイルを共有のため転送したりする必要はない。このほか『Lotus Mashups』などの製品もブラウザでクラウドにアクセスしてマッシュアップの設定を行うものだ。IBM社内ではこうした開発環境の構築をすすめており、これが社外のベンダーまで普及すると、クラウドを通じての開発が本格化していくとした。
またIBMでは、開発環境としてのクラウドだけでなく、運用管理向けの『Blue Cloud』というアーキテクチャーも発表し、2008年8月にクラウド基盤の検証を行う設備「IBMクラウド・コンピューティング・センター@Japan」を晴海に開設している。ここでは、従来であればブレードサーバなどを用意し、そこにシステムを作りこむというようなものを、クラウド上で立ち上げ、管理していくことが可能だ。米持氏は、「例えば、大学入試の集計システムの場合、入試の期間しか使われず、1年のほとんどの期間使われなくてもサーバ上には存在しています。これをクラウドで管理すると、設定した期間にだけシステムを稼動させ、利用しない期間はシステムを消すことができるため、コンピュータの総量を減らして、CPUやメモリの使用量を最適化できます」と運用管理面でのクラウド利用の一例を挙げた。
米持氏には、このほかにもIBMで扱うテクノロジーのポリシーなどについて語っていただいた。この詳細は今回のレポートの結びとなる後編(第三回)で紹介したい。続いて、各テクノロジーのキーマンの話を紹介していく。まずは、和田 洋氏にアジャイル開発プロセスのプラットフォームであるJazzについて聞いた。
『Rational Team Concert』を使ったらSubversion+Trac環境には戻れない
Jazzは、Open Commercial Software Developmentと呼ばれる新しい製品の開発スタイルで開発され、コミュニティ・サイトのJazz.netにて開発チーム体制、開発プロセス、反復計画、作業項目、障害、機能拡張要求、成果物、ビルドの状況などが英語で公開されており、和田氏は、「IBM ソフトウェア・テクノロジー情報」上で日本語での補足を行っている。なお、Jazzという名称の製品があるわけではなく、今後『Rational』ブランドの製品がJazzのプラットフォームに基づいてリリースされていく。
Jazzの開発メンバーの多くはEclipseの開発者で、IBMの基礎研究・リサーチのメンバーも入っている。和田氏は「デスクトップを統合するEclipseの次のプラットフォームと思っていただいてもかまいません。これまで開発ツールは、UMLのモデリング、構成管理、変更管理、要求管理、テストなど、開発プロセスの個々の工程向けにより専門的なツールとして開発されていました。それらをさらに有効に活用するために、工程をまたいでツールの連携を密にしていこうという形で進んできました。一方Jazzは、ツールの連携ではなく、視点を変えてチームで開発する際に必要なツールという発想で開発されたものです」と背景について語る。
これまでは、もともとが別々のツールだったので、成果物のフォーマットやフォーマットを保存するリポジトリとの間の通信のやり方などもバラバラ、Eclipseとしてはデスクトップ上に統合されているが、リポジトリは、要求管理のものはデータベースを使ったり、成果物管理は製品固有のもの使っていたりしている。そうなると、スケーラビリティを求められる大規模開発への対応が複雑になる。そこで、現在あるインターネットの技術をうまく利用して構築する考えに至ったという。
これまで開発ツールのフォーマットは、ファイルベースか、データベースかに大別され、ファイルベースの場合は、取り扱いやすいものの、検索などは苦手。一方データベースの場合は、検索は得意だが、リポジトリとしての取り扱いは面倒であった。インターネットの技術を使えば、成果物の場所をURIという形で特定できればいいし、通信はhttpやrss、atomという一般的なものを使える。検索は将来的にはインターネットの検索エンジンの技術を活用する――というように、IBMが独自に作るのではなく、できるだけ標準的なものを活用していくというコンセプトになっている。
また和田氏は「現在のソフトウェアの開発は基本的にマルチベンダーで、ツールもさまざま。要求を出す会社とそれを受ける会社、さらにその外注先があるという構造も多いでしょう。個々の会社さんが持っているツールをうまく繋げるようなテクノロジーを目指しています」とした。
Jazzベースの製品としては、6月にリリースした『Rational Team Concert』がある。これは、アジャイル向けで、かつ拠点が分散している環境をサポートするため、成果物のバージョン管理や、wiki、チャットなどを連携して操作できるよう統合されたチーム開発のためのツールだ。オープンソースの開発で言うと、SubversionとTracをなどを組み合わせて、さらにwikiやチャットも…という環境が一つのパッケージになったものと考えていい。
このツールのベースになっている考え方として、成果物や各種情報などのリソースの場所の表現形式やリソース間の関連の標準化があるという。和田氏は「例えば、要求という成果物があったら、その要求に基づいたテストケースがあるように、各工程には関連性があります。情報の構造を標準化すれば、ツール間でうまく連携できます。少なくとも情報間の関係という所を標準化できれば、後々上流から下流までのトレーサビリティも確立できるでしょう。すでに、Jazzテクノロジーを利用したパートナーがいらっしゃいます。日本では、『TRICHORD』という製品を開発されているチェンジビジョンさんのようなパートナーさんもいます。こうしたパートナーの存在は、Jazzの今後の発展の一つのポイントになるでしょう」と将来の展望を語った。
なお、Rational Team Concertは、Jazz.netでユーザー登録すればダウンロードできる。3種類の製品があるが、10名規模の開発を想定したExpress-Cなら、3ユーザーまで無料で使える。最後に和田氏は、「ダウンロードしてすぐに使えるので、Subversion+Tracの環境より導入が楽だと思います。SubversionやCVSのレポジトリをインポートして、すぐ使える機能もあります。以前Eclipseで開発されていた方で、Rational Team Concertを使った人が『もう以前の環境には戻れない』と言っていました。JAZZ.netは英語なので、今後日本語のチュートリアルを載せていこうと思っています」と、製品に対する自信を覗かせた。
次回の中編では、浦本直彦氏による「Web2.0セキュリティ」と野口雅人氏の「Dojoツールキット」のインタビューをレポートする。