研究概要 |
分散型のソフトウェアを開発する際に,分散処理とアプリケーションロジックを合わせて開発することは,アプリケーションロジックと分散処理の混同を招き,開発作業を必要以上に複雑にしてしまう.本研究では,アプリケーションロジックと分散処理の分離が可能なような分散システムのアーキテクチャを提案し,それに基づく分散システム開発の手法を提案した.さらに,その分散化手法を実現するためのツールを開発した. 分散処理には,アプリケーションによらない共通の処理と,アプリケーションごとに開発が必要な個別の処理がある.本研究では,共通な処理はフレームワークとしてまとめアプリケーションごとに開発しなくても済むようにし,また,アプリケーション固有の処理は,フレームワークのホットスポットとして開発者が追加あるいはフレームワークの機能を変更できるようにし,開発者の負担を軽減させることに成功した.また,追加する分散処理については,分散処理のスペシャリストが自分で開発できるのと同時に,準備された部品の中から選択しても使用することができるようなシステムのアーキテクチャを採用している.現在,我々のシステムにおいて,開発者が機能を追加できるホットスポットは,ネットワーク処理やスレッド制御,例外処理,オブジェクト配置機能である.いくつかの典型的なスケジューリングを行うための部品や,リモートメソッド呼び出しに関係する例外を他の例外に変換する部品などを用意してあり,開発者が自ら開発しなくても既存の部品をシステムに組み込むだけで分散処理が実現できる. 研究は,分散システムの開発に広く使用されているJava言語を対象として行った.現時点までで,ツールのおおまかな実装は完了し,クライアント・サーバ型,ピア・ツー・ピア型並びにグリッド型の分散システムを我々の手法を用いて開発できるようになった.
|