大規模オンラインシステムや、サーバシステムなどの情報システムは、その一時的な停止でさえも人間生活に大きな影響を与える。本研究の目的は、何らかの理由でハードウェアが停止した場合でも、実行中のソフトウェアを継続実行させる方式を提案し実現することにある。具体的には、ソフトウェアのミラーリングを提唱し、その実現方式について研究を行った。本研究で提唱するソフトウェアのミラーリングとは、一つのソフトウェアの複製を、複数の計算機ハードウェアで同時に実行しておき、それらを常に同じ状態に保っておくことにより、たとえ一台のハードウェアが故障しても、他のハードウェア上でソフトウェアが実行を継続できるメカニズムである。 本研究では、Java言語のオブジェクトに対してミラーリングの機能を実現した。通常ソフトウェアを実行する際には、ローダと呼ばれる基本ソフトウェアが実行対象のソフトウェアをメモリ中へ読み込み実行を開始する。本研究では、1台の計算機でオブジェクトが生成された場合、ミドルウェアが複数の計算機上のローダを連携させることにより、そのオブジェクトの複製を生成するという方式を実現した。また、オブジェクトの複製間の同期をとるためも、このミドルウェアが役割を果たす。例えば、ユーザからの入力が発生した場合、複数の複製が同時に入力処理を行っては、ユーザは同一の内容を複数回、異なる計算機上で入力しなければならなくなる。本研究のミドルウェアは、1台の計算機上での入力を他の計算機へ同時に伝達する等の役割も果たす。このように、ミドルウェアとして実現することにより、ミラーリングをユーザアプリケーションの開発者およびユーザに透過的な形で実現できるという利点が得られ、また、既存のアプリケーションソフトウェアもミラーリングできるという利点が得られた。
|