Mercurial > hg > Papers > 2015 > nozomi-sigos
diff paper/chapter3.tex @ 1:e13be99f69b6
can't view graphix correct place
author | Nozomi Teruya <e125769@ie.u-ryukyu.ac.jp> |
---|---|
date | Tue, 05 May 2015 16:37:38 +0900 |
parents | 0127effb8fcd |
children | 4a7fa91ef60a |
line wrap: on
line diff
--- a/paper/chapter3.tex Tue May 05 15:36:41 2015 +0900 +++ b/paper/chapter3.tex Tue May 05 16:37:38 2015 +0900 @@ -1,8 +1,8 @@ -\chapter{Aliceの新機能} \label{chapter:chapter3} +\section{Aliceの新機能} 水族館の例題によって、Aliceを用いて分散プログラムを記述可能であることを確認した。 次に実用的なアプリケーションであるTreeVNCをAlice上で実装することで、Aliceに必要な機能を洗い出した。 -\section{Dynamic Topologyへの対応} +\subsection{Dynamic Topologyへの対応} 第2章で示したように分散フレームワークAliceはTopology Fileを読み込むことでTopologyを構成する。 つまり、予め参加するノードの台数が決まっている必要がある。また、Topologyに全ノードが参加するまでアプリケーションが起動しない。 @@ -10,7 +10,7 @@ そこで、AliceにDynamic Topology Managerを追加した。 Dynamic Topologyの場合は、新しくTopology Nodeがアプリケーションに参加するたびにTopology ManagerからTopology Nodeに対して、接続すべきTopology Nodeの情報がputされ接続処理が順次行われる。 -\section{Keep Alive} +\subsection{Keep Alive} ノード間の通信は、Remote DSMに対してputやpeekを行うことでのみ発生する。アプリケーション次第では長時間通信が行われない可能性がある。通信が行われない間にRemote DSMとの接続が切れた場合、次の通信が行われるまで切断を発見することができない。また、接続状態ではあるが問題が発生し、応答に時間がかかる場合も考えられる。 以上の問題を検知するためにアプリケーションではKeep Aliveという、定期的にheart beatを送り生存確認を行う機能を持つことが望ましい。そこで、Alice自体にKeep Aliveの機能を実装した。 @@ -76,7 +76,7 @@ ClosedEventCodeSegmentを継承したCode Segmentに、Input Data Segmentを追加記述する事ができる。 その際は、もちろんInput Data Segmentが全て揃うまでCode Segmentは実行されない。 -\section{Topologyの再構成} +\subsection{Topologyの再構成} ノードは永続的にアプリケーションに参加し続ける訳ではない。目的を果たすとアプリケーションから離脱する。 Topology次第では、アプリケーションに支障をきたす。 例えば、AliceVNCは木構造であるため、子ノードを持つノードがアプリケーションから離脱した場合、その子ノードに対してデータを送信することができなくなる。 @@ -124,7 +124,7 @@ \item お互いにRemote DSMの名前を贈り合い、Remote DSMが利用可能になる。 \end{enumerate} -\section{再接続の処理} +\subsection{再接続の処理} MMORPGでは、試合の最中に障害などによりサーバーから離脱したユーザーが、試合が終わるまでに再びサーバーに接続してきた場合に、再びその試合に参加できるような再接続の処理が用意されている。 分散にアプリケーションでは、MMORPGの例のように再接続してきたノードに対して通常の処理とは別の処理を行わせたい場合がある。そこで、Aliceに再接続してきたノードに、任意のCode Segmentを実行できる機能を追加した。ユーザーはconfigにCode Segmentを継承したClassを登録することで、再接続時に実行されるCode Segmentを指定することができる。 @@ -133,7 +133,7 @@ \lstinputlisting[label=src:StartAquarium, caption=再接続に実行するCode Segmentの登録方法]{source/StartAquariumFX.java} \end{table} -\section{Multicast Data Segment} +\subsection{Multicast Data Segment} TreeVNCには、Multicastを利用して起動しているTreeVNCのRoot Nodeの情報の一覧にして表示する接続先自動検索システムという機能がある。この機能によりTreeVNCの起動の際にIPアドレスを入力する手間を省くことができる。 現在のAliceは起動時にTopology ManagerのIPアドレスを入力する必要があり、TreeVNCの接続先自動検索機能が必要と考えられる。 @@ -179,4 +179,6 @@ \begin{table}[htbp] \lstinputlisting[label=src:Receivemessage, caption=multicast DSMに対してsetKeyを行う]{source/ReceiveTask.java} -\end{table} \ No newline at end of file +\end{table} + +\subsection{圧縮機能} \ No newline at end of file