\chapter{序論}
\pagenumbering{arabic}

\section{研究背景と目的}
スマートフォンやタブレット端末の普及率が年々増加している。それに伴いインターネット利用者数も増加しており、ネットワーク上のサービスの利用者の増加は必至である。従って、サービスには、信頼性とスケーラビリティーが要求される。
ここでいう信頼性は定められた環境下で安定して期待しされた動作を行うことをさす。スケーラビリティーはサービスの利用者が増大した場合、メモリ等のリソースを追加するだけでサービスを維持できる性能をさす。また、CPUが発熱の問題からマルチコアが主流になっているため、プログラムには並列性も求められる。
しかし、これら全てをもつ分散プログラムをユーザーが一から記述することは容易ではない。

そこで本研究室ではデータをData Segment、タスクをCode Segmentという単位で分割して記述する並列分散フレームワークAliceの開発を行っている。AliceはJavaで実装され、ノード間の通信のためのAPIが提供されている。また、オーバーレイネットワークを自動的に構成するTopology Managerという機能を持つため、分散プログラムのシュミレーションを行うことができる。

Aliceが分散プログラムを記述する能力を有することは確認された。だが、実用的な分散プログラムを作成するためには動的なトポロジー、つまりノードの切断や再接続に対応しなければならない。また、プログラムによっては切断や再接続等の状態に対応した処理を行いたい場合がある。

本研究では、Aliceに動的なトポロジーを管理構成する機能とAliceのComputationの制御を行うMeta Computationを実装した。
プログラムにAliceの制御を行うメタプログラムを記述することにより切断や再接続の状況に応じた処理を元のコードを変更することなく再接続、切断時の処理を指定することができる。また、Aliceの実行速度の改善を並列処理と分散処理の両方の観点から行い、その改効果を計測した。さらにTreeVNCとTreeVNCをAliceを用いて実装したAliceVNCの比較をコードの観点から評価を行った。

\section{論文の構成}
