平成9年度 委託研究ソフトウェアの提案

(20) klic と Java のメッセージインターフェースに関する研究

  
研究代表者: 田中 二郎 助教授
筑波大学 電子・情報工学系



[目次]

  1. 研究の背景
  2. 研究の目的
  3. 研究内容
  4. 研究体制/研究方法
  5. 想定されるソフトウェア成果

[研究の背景]

最近、プログラミング言語のビジュアル化が急速に進行しており、こういった ビジュアルなプログラミング言語を用いることにより、グラフィカルなアプリ ケーションを容易に構築することが可能となっている。

並列論理型言語 klic に関しても、klicをGUI(グラフィカルユーザインタフェー ス)に結合させ、 klicで、グラフィカルなアプリケーションを容易に構築しよ うとする試みは、重要であると思われる。

我々も、これまでklicとX window systemとのインタフェース、klicと Tcl/Tk を結合させたシステムであるklitcl(クリティクル)などを試作し、klitclにつ いては、IFSに登録を行なってきた。

今年度は、最近特に注目を集めている「Java」言語に着目し、klicと「Java」 言語のインタフェースを構築したい。「Java」は、オブジェクト指向の言語で あり、 かつ様々な OSで共通に利用できるシステムを提供している。さらに、 GUI の利用を容易にする為に、AWT(Abstract Window Toolkit)を標準で提 供している。このようなことから、Java は、klic のビジュアル環境の構築に 適していると考えられる。しかし、 Java と klic とのメッセージや、データ の受渡しの機構を実現したシステムは、まだ現れていない。そこで、本研究で は、klic と Java のメッセージインターフェースに関して研究を行ない、 klicとJava言語のインタフェース構築を行ないたい。


[研究の目的]

klicとJava言語のメッセージインタフェースを構築することにより、klicユー ザに手軽なビジュアル環境を提供するのが、本研究の目的である。klicとJava 言語の間でのメッセージやデータなどを交換する為の機構としてどのようなも のが求められているかを調べ、それを満たすようなインターフェース機構を構 築する。klic から、Java の AWT の有用な機能を利用したり、逆に、Java か ら klic を呼び出すようなインターフェースの研究を行なう。

我々は、これまで既に、klicとX window systemとのインタフェース、klicと Tcl/Tkを結合させたklitcl(クリティクル)などの開発を行なってきたが、今回 の「klicとJava言語のメッセージインタフェース」もこれらの試みの延長線上 に位置する。

これらとの違いは、Javaの場合、ユーザプログラムを Java アプレットとし て作成し、 klic のユーザインターフェースプログラムを HTML の中に埋め込 むことができるため、WWWブラウザ上から klic プログラムの利用をする事が 可能となる点である。

なお、本研究は一年計画の予定であるが、次年度には状況が許せば、我々が過 去に開発してきたklicとX window systemとのインタフェース、klicと Tcl/Tk とのインタフェースklitcl、本年度に開発するklicとJava言語のメッセージイ ンタフェースの三つに対し、更にシステムのポリシュアップを行ない、klicの 他言語インタフェースとして一挙公開し、併せて資料や例題を整備したいと考 えている。


[研究内容]

本研究では、klic の Java インターフェースの開発を行なう。

klic は、並列論理型言語であり、Java は、オブジェクト指向言語である。よっ て、プログラムの実行体の違いの他にプログラミングパラダイムの論理的構造 の違いがある。そのような2つの言語を、どのように結びつけるかが研究課題 である。

klic と Java という、2つの言語の間でメッセージ交換の方法として、klic と Java の双方に、メッセージ交換の為の機構を用意し、それらをユーザプロ グラムの中で利用する事により、2つの言語間でのメッセージ交換を行なうよ うにする。

今回の研究では、そのメッセージプロトコルを決定し、また、双方の言語でど のようなインターフェースを用意すべきであるかを研究し、実現を目指す。

実際にビジュアルプログラミングシステム等で利用する場合には、klic から、 Java を呼ぶ為の述語として、

   java_new, java_eval, java_event

などを用意し、現在の klic システムの状況を知らせる事を考えている。また、 逆に Java から、klic を呼ぶ際には、

   klic(Goal);

の様な形式で利用する事を考えている。

また、ビジュアルプログラミングシステム以外で、klic で Java の機能を十 分に利用するためにどのようなものが必要であるか、また、klic の機能を十 分に活用し、それを Java で利用するためにはどのような機構が求められるか といった事に関しても、それぞれの言語特長を十分活かせるような、標準的な インターフェースの構築を研究、実現する予定である。


[研究体制/研究方法]

(1) 研究体制

   氏 名 所  属
研究代表者田中二郎電子情報工学系 助教授
研究協力者飯塚和久理工学研究科
研究協力者南雲 淳理工学研究科


(2) 研究の方法

本研究は、田中二郎(筑波大学 電子情報工学系)および、 研究室の学生を中心 に、研究を行なう。


[想定されるソフトウェア成果]

(1)作成されるソフトウェア名称

klic と Java のメッセージインターフェース

(2)そのソフトウェアの機能/役割/特徴

### 機能

klic から Java に対するメッセージを送る述語、逆に Java から、klic を呼 ぶ為のメカニズムを有し、klic と Java のインターフェースを提供する。

### 役割

klic と Java のメッセージインタフェースを利用する事により、Java を klic のフロントエンドとして利用する klic のビジュアルプログラミング環 境の作成を支援する事ができる。また、Java の方から、並列論理型言語 とし ての klic の機能を利用するための機構としての利用も可能となる。

### 特長

klic と Java 間の様々なメッセージやデータのやりとりに関して、より一般 的なインターフェースを提供し、Java の持つ AWT などの機能を用いて、klic の実行をビジュアル化したり、逆に Java からのメッセージを klic に反映さ せるような機構を提供することができる。

また、より一般的な klic と Java のインターフェースとなるような設計を行 うため、将来の拡張に対しても柔軟に対応でき、klic の利用を更に促進する 事ができる。

(3)ソフトウェアの構成/構造

klic 側と、Java 側の双方に、メッセージを送受信する機能を提供する、述語 やオブジェクトを基本構成とする。また、これら klic 側と Java 側の2つの 間を通信する際の、メッセージプロトコルを決定することも、今回の研究の1 つである。

klic 側では、Java との通信を行なう述語を用いて、Java の機能を利用する 事となる。また、Java 側では、klic との通信の為の機能を有するオブジェク トを用意し、それを、インヘリタンスを用いてユーザプログラムで利用するこ とにより、klic とのインターフェースを利用する。

我々の作成するインターフェースと、利用者のユーザプログラムとの関係を図 に示すと、以下のようになる。

    +---- klic -----------------+   +--- Java ------------------+
    |  +- ユーザプログラム -+   |   |   +- ユーザプログラム -+  |
    |  |                    |   |   |   |                    |  |
    |  |                 ###### |   | ######                 |  |
    |  |                 ###################                 |  |
    |  |                 ###### |   | ######                 |  |
    |  |                    |   |   |   |                    |  |
    |  +--------------------+   |   |   +--------------------+  |
    +---------------------------+   +---------------------------+
	     ("#" で示す部分が、我々の作成する部分である)

(4)参考とされたICOTフリーソフトウェアとの関連

ICOT フリーソフトウェアである klic を用いる。
今回作成するソフトウェアは、klic に Java とのメッセージインターフェー スを提供し、klic に付加価値を与えるものである。

(5)使用予定言語および動作環境/必要とされるソフトウェア・パッケージ/ポータビリティなど

klic 及び、Java を使用する。Java は、JDK ver 1.1 を使用する予定である。 これらが動作する環境であれば、我々のソフトウェアは動作する事になる。

(6)ソフトウェアの予想サイズ(新規作成分の行数)

klic 側のプログラムと Java 側のプログラムを合わせて、数Kステップ程度に なるものと予想される。

(7)ソフトウェアの利用形態

klic 側のユーザプログラムと、Java 側のユーザプログラムの中で、我々の作 成するプログラムを利用する事になる。

例えば、klic の中で、ビジュアルな入出力を行ないたい場合は、我々の作成 するソフトウェアを、klic と Java のそれぞれの言語で作成したユーザプロ グラムに組み込み、klic で動作しているメインプログラムのユーザインター フェース機構として Java の機能を利用する事が可能である。

我々の作成するインターフェースを利用することにより、ユーザプログラムを Java アプレットとして作成し、klic のユーザインターフェースプログラムを HTML の中に埋め込み、WWWブラウザ上から klic プログラムの利用をする事も 可能である。

これにより、有用なアプリケーションを klic でサーバプログラムとして動作 させておき、ユーザは、WWWブラウザから、Java アプレットをクライアントプ ログラムとして、動作させるといった事もできるようになる。

この他にも、我々がターゲットとしているビジュアルプログラミングシステム での利用も考えられる。

これは、Java 側に、ビジュアルプログラミングシステムを作成し、プログラ ミングや、プログラムの実行のビジュアル化、デバッグなどの機能をもたせて、 我々の作成するインターフェースを利用して、プログラム内容を klic 側に送 る。その情報を、klic 側で受け取り、送られたプログラムに、実行のビジュ アル化に必要な情報を送信する述語を埋め込んでおき、klic での実行状態を Java 側に伝える機構を作るといったことで実現する事ができる。

この他にも、Java のプログラムの中で、並列論理型言語としての klic を、 Java プログラムの中でサブシステムとして利用するような形態も考えられ、 その中で、2つの言語間のインターフェースとして、我々の作成するソフトウェ アを利用することが考えられる。

このような、さまざまな利用形態が考えられるが、klic に対して Java のイ ンターフェースを作成する事により、klic の利用範囲を拡大し、また、klic の利用環境の改善が期待できる。

(8)添付予定資料

ソフトウェア仕様書、ユーザマニュアルの他に、簡単な利用例題を用意する予 定である。


www-admin@icot.or.jp