KONOEコラボレーション

KONOEコラボレーションは現在いくつかの大学・研究機関からのメンバーで 構成されています。

そして時々ワークショップを行ないながら開発を進めています。ここでは 開発の進め方について見ていきます。

KONOEの研究開発に含まれる作業として、

  1. 開発環境の整備
  2. システムを構成するクラスライブラリの用意
  3. 標準的なアプリケーションの用意
  4. ソースやドキュメントの管理サーバの用意と運用
があげられます。この章ではそれぞれの課題を整理していきます。

1.開発環境の整備

これまでに見てきたように、ユーザインターフェース部分をJavaで、それ以外を C++で記述するという方針をとりあえず採用することにします。

機種独立を主要な設計思想に掲げているので、特にGUI部分の問題から Javaを選択しているわけですが、同時にサーバ側も様々な機械で同じソースを 利用する努力をします。そのため、出来るだけC++の標準的なコードで記述 される必要があります。

開発自身は任意の機械で行なうことは可能ですが、そのコードが 実行可能な環境を出来るだけ広く取る必要があります。Javaに関しては

  1. アプレットとして実行可能な部分
  2. Javaインタープリタ、Just-In-Timeコンパイラが必要な部分
がありえます。前者はNETSCAPEなどのブラウザが走る環境という意味で 自動的に広く確保できますが、後者はJDKもしくは互換の環境が必要と なります。このことから対象となる機械が一定制限されます。ただし、 アプレットはかなりの機能がJavaアプリケーションに比べると制限されます。 例えば通信相手が限定されたり、ファイル入出力が禁止されたりです。 KONOEでは、あくまでもマンマシンに限定した部分をJavaに依存する ことで、この部分をアプレットとして実装できるように努力します。

C++については標準的なものとしてATT版とg++について開発の 対象と考えます。

開発に関わる研究機関はワークステーションもしくはPC上に 上記の環境を出来るだけ早く整備することとします。

1.1.開発プラットホーム

現在開発プラットホームとして検討しているものは次のとおり です。まず計算機としては、 が、手元にあってインストールが可能なものです。また、OSとしては、 といったUNIX(互換)システムを対象とすることを考えています。GUIの フロントエンドとしてはWindows95もJavaアプリケーションを走らせる ことが出来るという意味で対象となります。

データ収集用のハードウエアとしては

を対象とすることを考えています。

2.クラスライブラリ

Javaのクラスライブラリはパッケージとして、C++についてはヘッダー ファイルとオブジェクトライブラリとして提供されます。もちろんそれぞれの ソースとドキュメントはプロジェクトサーバ上におかれてメンテナンスされる ことになります。

かなり広範囲に及ぶクラスの準備が必要であり、分業による開発となり ますが、相互に関係する部分も当然出てくるので、クラス設計については議論が 必要です。そのためのメーリングリストを用意します。そこでの議論を踏まえ、 仕様を決定したものをHTMLとして公開しコーディングにかかります。

仕様の記述についてはRational Roseなどのツールの利用も検討します。 Booch法によるクラス定義の記述などももちいるつもりです。

ある程度完了したコードについてはプロジェクトサーバにアップロードされ、 コラボレーション内でベータテストを行ない、機能を確認したうえで匿名FTPでの 公開とします。

2.1.コーディングコンベンションについて

全体としては非常に大規模なソフトウエアシステムになります。 そのためにいくつかのコンベンションを考慮する必要があります。例えば こういった問題も議論していく必要があります。また、色々な計算機で 動くことを考え、できるだけ互換性の高いコードを書く注意が必要です。

2.2.ソースコードのバージョン管理について

クラスライブラリの製作が続くとバージョン管理が重要な仕事に なります。管理のための体制と方針が必要です。くわしくは こちらを ご覧下さい。

現在、konoe.kek.jp 上で試験的に CVS を導入しています。 これに関しては、こちらをご覧下さい。

3.アプリケーションテンプレート

3で解説したような標準的なアプリケーションを構成して公開します。 アプレットについてはhttpサーバより提供します。C++によるアプリケーションは ソースコードとMakefileなどのキットとして、一部の機種についてはバイナリも 含めて提供することになります。

アプリケーションについても多くの数のものが必要になり、それらは (アプリケーション)クラスとして定義されます。このことからも分業は当然 必要で、クラスライブラリと同様の開発過程が必要となります。

アプリケーションについてはランタイムのコンフィギュレーション操作 によりカスタマイズ可能な範囲と、アプリケーションクラスのオーバーライドに よるカスタマイズを要求するものとがありえます。できるだけ前者の領域を広く 取ることが望ましいわけですが、そのためには実際的な評価が必要です。 コラボレーション内でそれぞれの興味・観点から評価を行なう必要があります。

4.プロジェクトサーバ

この研究開発が大学間共同研究として行なわれるため、すでに見たように 様々なネットワークサービスを利用して作業が進められることになります。 列挙すると
  1. メーリングリスト
  2. WWW(HTTP)
  3. FTP
  4. コードマネージメント
等を運用する必要があり、利用者の登録など実務的な作業も多くなります。

ある意味ではサーバを舞台に開発が進められることになるので出来るだけ 速やかに立ち上げる必要があります。また、このサーバの上で開発が行なえる よう、必要な言語システムなどを導入する必要があります。これは予算も関係する ので、現在は検討課題です。

また、VMEやCAMACといった特別のハードウエアを利用するための デバイスドライバーの導入や開発が必要になります。これはサーバが全てを カバーするというわけには行きません。サーバにはそれらをシミュレート する仮想的なデバイスをインストールする必要はあるかも知れません。

5.開発日程

3年前には次のように書きました。

「基本的に1年間をめどに完成を目指します。と書きましたが、 最初の一年は全体の概要の把握とクラスライブラリの準備に 使われてしまいました。改訂したスケジュール目標を次のように 設定します。
  1. 環境整備・サーバ立ち上げ・クラス設計 ('97-1から'97-3)
  2. クラスライブラリ開発 ('97-6から'98-6)
  3. アプリケーションテンプレート開発 ('97-12から'98-10)
  4. ベータテスト ('98-3から'98-10)
  5. ドキュメント整備・公開準備 ('98-6から'98-12)
程度の日程で開発を行なっていきます。作業の性格からそれぞれの間に かなりのオーバーラップが必要であると思われます。

遠隔での共同作業になるわけですが、適当な時期にワークショップを行ない、 理解を確認する作業も必要となると思われます。

98年末にバージョン1.0のリリースを目標とします。その後のバージョン アップ作業などは当然必要になりますが、ここでは触れません。リリース後の サポートやアップグレードなどの体制はその時点で検討することになると 思われます。」

その後、クラスライブラリの開発を中心に続けてきました。ビームテストなども 経て、ライブラリとしてはかなり充実してきましたがまだ不完全なカテゴリーが あります。引き続き開発を続ける必要があります。

また、それらを用いて構成するテンプレートとなるプログラム群については 公式にKONOEの産物とするものがありません。バージョン1とするべきパッケージには もちろんそれらが必要で、その開発について考える必要があります。その意味で 2001年夏を目標に最後の追い込みをかけていきたいと思います。

目次へ 前章へ


[collaboration/collaboration.html] Last Modified : 13-Mar-2001.

KONOEコラボレーション konoe-req@konoe.kek.jp