KONOE第一回ワークショップでの議論の内容(案)

1997年5月16-17日に開催されるKONOE第一回ワークショップで議論する 内容は次のとおりです。最初に計画の概要を議論し、続いてその 進め方を考えます。具体的にはクラスライブラリの準備が最も大きな 作業になるので、それに続いてクラスライブラリについて議論します。 二日めの作業は具体的にクラス定義を実際にやってみます。メソッドの 準備はそれらのクラス定義に基づいてそれぞれの分担で夏にかけて 行なわれ、次のワークショップで突き合わせることになります。

1.概要説明

まず、KONOEの目標とするところを明確にします。

1.1.全体構想

KONOEの全体構想として、 などを強調しています。その上で、 といったモデルでシステムを設計します。この中では、オブジェクト通信を 含むオブジェクト入出力が非常に重要な役割を果たします。それらを含め こういった実装方法の妥当性について検討します。

1.2.C++の検討

基本的にKONOEはC++で記述されるものとします。Javaによる部分はユーザ インターフェースに限定します。それにより、Javaのアプレットをフロント エンドに利用できるようになります。

C++自身はかなり安定してきています。g++などを含め、多くの処理系が 様々な計算機に対して提供されています。

1.3.Javaの検討

Javaアプレットとしてユーザインターフェースのフロントエンドを実装 します。サーバ側の機能をJavaアプリケーションとして記述することも 可能ですが、システムサービスを実装するためにはネーティブの呼出しが 必要であり、その結果CやC++が必要になります。そのため、できるだけ 単純にシステムを構成するためにもC++を選ぶことにします。

Javaアプレットとしてフロントエンドを実装するのは、それがWWWブラウザを 通して起動可能であり、また、KONOEの様々な文書や情報サービスがWWWを 通して提供されることから、出来るだけユーザフレンドリーな環境を実現 するためにとられた方法です。

一方で、KEK安さん、山形大坂本さんらのJavaによるDAQのアクティビティも あります。そこではnativeインターフェースを用いて全体をJavaで構成する 手法が取られています。それとの関係を考えておく必要もあると思われます。

1.4.プラットフォームの選択

開発の対象とするプラットフォームについて考えておく必要があります。 言語処理系を含むソフトウエア、インターフェースを含むハードウエアについて サーバ側とクライアント側について検討する必要があります。

まず、ソフトウエアですが、基本的にUNIXを考えています。ハードウエアと 関連しますが、実際に利用可能ないろいろなUNIX(および互換システム)を どの程度の範囲までカバーするか。特に問題になるのはシステムサービスの 互換性ですが、それについてはいくつくらいのバージョンを用意する必要が あるのかということまで。あと、POSIXをどう考えるか。Windows95やNTは 当面はクライアントに限定してよいか。

ハードウエアについてはDAQソースとなるVMEインターフェース関係のものを 含め、業界で多く使われているいろいろなものをカバーする必要があります。 PCについてはUNIX系のOSのものを対象とします。

2.開発の進め方

2.1.年次計画

目標としてはこの一年でなんらかの動く形のものを、オブジェクト指向技術の 特徴であるRapid Prototypingによって実現したいと考えています。 具体的な日程についてつめられるところは議論したいと考えています。

2.2.人員配置

基本的にクラスライブラリ構築がもっとも大きな仕事になるわけで、それを 4つのパッケージに分割して準備します。 パッケージはいくつものカテゴリーから構成されます。参加者にはこの4つの ワークグループにはいっていただいて、それぞれ議論をしながらすすめて いただきたいと考えています。

2.3.産物の公開

アルファリリースでは、クラス定義など仕様部分での変更がありえることを 前提に、試用をお願いします。ベータリリースでは仕様については確定し、 実装の修正のためのバグレポートをお願いします。公式版リリースはその あと、可能なバグ修正と、ドキュメントの整備のうえでおこなうことになる でしょう。

イメージの公開や、インストールサポートなどkonoeサーバを一台用意し、 ftpやhttpによって提供します。そのための計算機について、KEKの資源を 利用させていただくことについて検討する必要があります。

2.4.他のプロジェクトとの関係

一つには、KONOEではすべてのクラスライブラリを自前で用意し、他の クラスライブラリなどは(Java標準を除いて)利用しないという立場を とっています。この立場の妥当性について確認が必要です。

他のオブジェクト指向技術を用いたアクティビティとの関係についても 考える必要があります。それらが用意したクラスライブラリとの関係に ついて。

3.クラスライブラリ

3.1.クラスカテゴリー

KONOEではクラスを4つのパッケージに分けて開発します。その分類の 方法と、それぞれのパッケージが含むべきクラスカテゴリー、そして それぞれのカテゴリーに含まれるべきクラスを議論していく必要が あります。これについては、パッケージの分類を確認したあと、それぞれ パッケージ毎のワークグループに別れて作業を行ないます。

クラスカテゴリーの中では、オブジェクトパーシステンシーをどのように 扱うかがもっとも重要な議論になります。ネットワーク分散であることから 必然的に交換されるオブジェクトはパーシステントであることが要求されます。 これをどのように実装するかを考える必要があります。また、これは システム全体で使われるフィーチャーなので、よく考えて設計される 必要があります。

3.2.コンベンション

開発にあたって、コンベンションを考える必要があります。これには など、色々考えられると思います。これまでの例えばGENAT4などの経験を 聞いてみたいです。

3.3.ドキュメンテーション

クラスを定義していく場合、それらの説明文を同時に用意していくことを 追及します。どちらかというと説明文を先に用意し、それにしたがって メソッドを記述していくのかも知れません。

標準的な様式を考えたいと思います。基本的にHTMLで記述されることに なります。例えばJavaのAPIの解説のように。

Rational Roseのようなツールを用いてクラスの間の関係などをグラフィカルに 表示することも考えたほうがよいかと思われます。ツールの利用について議論 しましょう。

3.4.作業分担

今回のワークショップでは実際にパッケージ単位に別れてクラス定義の作業を 行ないたいと考えています。それぞれのワークグループにシニアスタッフと 若いメンバーを割り当てて行きます。

4.分科会

クラスライブラリーパッケージ毎に別れて作業します。 といった作業を行ないます。

4.1.システム階層

オブジェクト交換、オブジェクト入出力をどのように扱うかが一番重要な問題に なると思われます。

4.2.データ収集部

仮想的なデータ読みだしをどのように実現するか。実際のどういったハードウエアに 対応していくかなど議論する必要があります。

4.3.データ解析部

標準的な機能としてどこまで用意をするか。GUIとの関係をどうするか。

4.4.ユーザインターフェース部

GUIとサーバとの関係をどのような形で実現するか。オブジェクト交換を JavaとC++でどのようにスムーズに開発するか。ネーティブをどこまで 採用するか。

5.全体会

5.1.作業報告

クラスライブラリーパッケージワークグループの報告を聞きます。

5.2.次回ワークショップまでの課題

次回ワークショップでは、KONOEのいくつかのプロセスを動かすことを 目標に、クラスライブラリーを書きためていくことになります。 などを継続して行ない、夏休みのどこかの1週に合宿形式でワークショップを 開きたいと考えています。



[activity/outline_may97.html] Last Modified : 15-May-1997.

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