diff paper/chapter3.tex @ 17:675939a7f983

change experiment picture
author sugi
date Fri, 23 Jan 2015 16:43:48 +0900
parents b9b3f2241ab4
children fd43827452ad
line wrap: on
line diff
--- a/paper/chapter3.tex	Sun Jan 18 00:23:22 2015 +0900
+++ b/paper/chapter3.tex	Fri Jan 23 16:43:48 2015 +0900
@@ -75,13 +75,13 @@
 heartbeatは、Node AからNode Bに一方向に送られる訳ではなく、Node BからNode Aにも送られている。
 
 \section{切断時の処理}
-DataBaseではデータ更新の際にトランザクション処理に障害が起こった場合、DataBase側でトランザクション処理開始前に戻すロールバックという処理が行われる。
+MMORPGでは、試合の最中にサーバーからユーザーが切断された場合、自動的にユーザーが操作するキャラクターをゲーム開始時の位置に戻すという処理が実行される。
 同様にTreeVNCでは切断を検知した場合、LostParentというメッセージがトップノードに対して送信される。
 
 以上の例のように、アプリケーションはノードの切断に対する処理を用意したい場合がある。
 しかし、Aliceを用いたアプリケーションの場合、アプリケーション側で検知するのは難しい。
 切断自体は、Remote Data Segmentに対してwriteまたはreadを行った際に出るExceptionにより判断することができる。
-だが、I/O の処理はCode Segmentを実行するThreadで行われない。専用のI/O Threadによって行われるため、Code Segment内でExceptionを捕まえられず、例外として処理することができない。
+だが、I/O の処理はCode Segmentを実行するThreadで行われない。専用のI/O Threadによって行われるため、Code Segment内でExceptionを捕まえられず、例外処理を行なうことができない。
 
 そこで、Aliceが切断を検知した際に、任意のCode Segmentを実行できる機能 (ClosedEventManager)を追加した。
 ユーザはClosedEventManagerにCode Segmentを登録することで、切断時の処理として実行するCode Segmentを指定できる。
@@ -106,7 +106,6 @@
 
 図 \ref{fig:TopologyFIx}、 \ref{fig:TopologyFIx2}、\ref{fig:TopologyFIx3}はTopologyの再構成をコラボレーションダイアグラムで表したものである。
 
-%コラボレーションダイアグラム図の挿入
 \begin{figure}[htbp]
 \begin{center}
 \includegraphics[width=120mm]{images/TopologyFIx.pdf}
@@ -147,6 +146,13 @@
 \end{enumerate}
 
 \section{再接続の処理}
+MMORPGでは、試合の最中に障害などによりサーバーから離脱したユーザーが、試合が終わるまでに再びサーバーに接続してきた場合に、再びその試合に参加できるような再接続の処理が用意されている。
+
+分散にアプリケーションでは、MMORPGの例のように再接続してきたノードに対して通常の処理とは別の処理を行わせたい場合がある。そこで、Aliceに再接続してきたノードに、任意のCode Segmentを実行できる機能を追加した。ユーザーはconfigにCode Segmentを継承したClassを登録することで、再接続時に実行されるCode Segmentを指定することができる。
+
+\begin{table}[htbp]
+\lstinputlisting[label=src:StartAquarium, caption=再接続に実行するCode Segmentの登録方法]{source/StartAquariumFX.java}
+\end{table}
 
 \section{Multicast Data Segment}
 TreeVNCには、Multicastを利用して起動しているTreeVNCのRoot Nodeの情報の一覧にして表示する接続先自動検索システムという機能がある。この機能によりTreeVNCの起動の際にIPアドレスを入力する手間を省くことができる。