Date: Sat, 20 Sep 1997 19:54:43 +0900 From: Java Conference Subject: JavaGrandprix:予選通過通知 1997年9月20日 中所 武司、松本 光由 殿 Javaに関する技術・応用・表現大賞'97 審査委員会 委員長 井田 昌之 技術部門長 松岡 聡 Java大賞'97技術部門への応募、真にありがとうございます。 さて、貴殿の応募作品である TI2950 M-base:モデリング&シミュレーションツール は、厳正な審査の上、技術部門の予選を見事に通過されました。
業務の専門家が自ら業務モデルを構築することがそのまま情報システムの構築につながるような分散オブジェクト指向設計技法を開発した.本技法では,このようなエンドユ−ザコンピュ−ティング実現のために,プログラミングの概念を排した新しいパラダイムとして,
・A domain model ≡ a computation model (業務モデルと計算モデルの一致)
・Analysis ≡ design ≡ programming (分析,設計,プログラミングの一体化)
という基本コンセプトを設定している.現在,ワークフローシステムやグループウェアに代表される分散オフィスシステムを本技法に基づいてエンドユーザ主導で開発するための開発環境M-baseを研究開発している.今回,その主要ツールとして,モデリング&シミュレーションツールとスクリプト言語の処理系をJava言語を用いて開発した.
モデリング&シミュレーションツールは,オブジェクト指向概念に基づく分散協調型モデルを用いて業務モデルの動的ふるまいを表現するものである.アイコン操作を基本としたビジュアルな機能を用いて,外部インタフェース,オブジェクト間の動的なふるまい,個々のオブジェクトの内部処理の順にモデリングを行ない,その基本的な動作をシミュレーションによって確認することにより,エンドユーザ主導の開発を可能にしている.
スクリプト言語では,Java言語サブセットを基本としながらメッセージの送受信方式に特徴を持たせた.すなわち,オブジェクト間の協調作業のための業務の委託方法に柔軟性を持たせるために,オブジェクト間の交信は複数のメッセージの列からなるメッセージセット単位で行う方式を考案した.本機能により,本来メッセージの流れを管理する立場のオブジェクトがそのメッセージの流れ全体をメッセージセットとして指定することができるようになった.さらに,オブジェクトをネットワーク上の任意のノードで稼働させる機能をもたせ,分散システムの構築を容易にしている.
これらのツールは一体化して利用でき,ビジュアルなモデリングによってスクリプト言語プログラムの大半を自動生成できるようにしている.
図1: M-baseのモデリングプロセス
図2: M-baseの開発環境(外側)とアプリケーション・アーキテクチャ(内側)
モデルはアプリケーションに固有の処理を行う本体である.動的モデル(ドメインモデル)に対応するOAMの部分をモデリング&シミュレーションツールを用いて作成する.静的モデル(設計モデル)に対応するCDMの部分をスクリプト言語を用いて作成する.
ユーザインタフェースはそのアプリケーションのユーザとの対話処理部分であり,モデルと独立させることにより,クライアント/サーバシステムや3層アーキテクチャなどのシステム構成,およびクライアント端末のマルチプラットフォーム化が容易になる.その構築ツールとしてUIビルダがある.
コンポーネントウェアには分野に共通の基本部品と特定業務分野向きの部品がある.後者が充実してくるとエンドユーザによるアプリケーション構築が容易になる.このようなコンポーネント化を支援するためにコンポーネントビルダを用意する.共通プラットフォームはミドルウェアと基本ソフトウェアの部分で,オープンシステムや部品の流通の観点からは特に分散オブジェクト管理機能が重要である.
モデリング&シミュレーションツールは,主にマウス操作により動的モデルを構築するツールである.動的モデルは,オブジェクトとメッセージパッシングで構成される.システムの動的モデルをアイコン表示などで視覚的に判りやすく表し,かつ,オブジェクト指向の概念を素直に表現できるようにしている.
既存のビジュアルプログラミングツールでも,オブジェクト間をリンクで結んでアプリケーションを構築していくものがある.しかし,これらのツールでは データベースからデータを検索し,その結果の表を作成したり,さらにそれをグラフ表示するといった典型的な処理には向いているが,非定型の業務をモデル化の段階から支援してアプリケーションを構築するようにはなっていない.
我々が開発したツールでは,オブジェクト指向概念に基づく分散協調型モデルを用いて業務モデルの動的な振舞いを表現できるようにした.
本システムで目標としているエンドユーザ自身による開発,保守の例題として,次のような会議開催業務を自動化するアプリケーションを想定し,実際の開発手順にしたがってモデリング&シミュレーション技法を説明する.
まずはじめにシステムの利用方法を明確にするために,OOSEなどに見られる手法と同様の一般的な手法をとる.すなわち,システムの利用者(アクタ)を抽出し,各々の外部入力から開始される機能概要(ユースケース)を記述する.
会議開催システムでは,会議開催者と会議参加者が利用者であり,会議の予約,変更,取消の機能が存在し,それぞれの機能概要を記述することになる.また,入出力メッセージについては,会議の予約を例にとると「会議室名と日時を指定する」といったものになる.
次に,各シナリオに対するシステムの動的な振舞い,即ち,インスタンスベースのメッセージのやりとりをモデリングしていく.個々の業務を擬人化した各々のオブジェクトに1つずつ割り当てることにより,メタファベースのモデル化を行う.実世界と同じように一つのオブジェクトに複数の業務を割り当てることも可能であるが,柔軟性と保守性を重視して「1オブジェクト1業務」の割り当てを原則とした.
この事例では,事務局オブジェクト,会議室管理オブジェクト,備品管理オブジェクト,個人オブジェクトという4種類のオブジェクトを導入した.図3に示すように,これらのオブジェクトをアイコンにより表示し,メッセージをアイコン間を結んでいる線により表示している.また,メッセージに付けられている番号はメッセージパッシングされる順番を示している.この順番はメッセージ変換列を表現するために用いる.これに基づき,直列や並列の処理を表現し,スクリプト言語のメッセージセットを生成する.
図3: 動的モデルの作成画面
基本的には,図4に示すようなウィンドウを用いて,メンバの決定,メソッドの意味定義の記述,メソッド内部のスクリプティングの3ステップでオブジェクトの詳細を決めていく.特にメソッドの意味定義は,エンドユーザがシミュレーションによる動作確認を行なう時に有用である.
図4: オブジェクトの詳細化
シミュレーションは,作成した業務フローの基本的な動作の確認のために行なう.このシミュレーション時にメソッドが起動されるたびにメソッドの意味定義を表示することで,視覚的にわかりやすくなる.システムが動作を開始すると,起動されたメソッドの定義内容が事象トレース図上に表示されていくので,オブジェクト間通信の全体のシーケンスを見渡すことが可能である.図5がその例であり,事務局オブジェクトの会議の予約の処理の中で,会議室管理オブジェクトと,備品管理オブジェクトにメッセージを送り,現在,備品の予約処理を行なっているところである.実行済みの業務フローは,太い線で表示する.
モデリング段階で作成されたオブジェクトとメッセージ変換列から自動生成されたスクリプトはインタプリタにより実行され,その途中経過が視覚的に表示されている.このインタプリタはモデリング&シミュレーションツールと独立して動作するので,アプリケーション運用時はインタプリタのみの実行になる.
図5: イベントトレース図を用いたシミュレーション画面
「モデリング&シミュレーション」を支援するアプリケーション開発環境のツールをJavaを用いて実現し,業務の動的な振舞いをモデリングすることでアプリケーションを構築することが実現可能であることを確認した.