# HG changeset patch # User riono # Date 1620217801 -32400 # Node ID bf75742d85e4f6aca8d51a182528b565732623c8 # Parent ddfb4ce43a83a9a4da8b7f7cd29d346a92232867 update chapter topologyManager diff -r ddfb4ce43a83 -r bf75742d85e4 Paper/riono-sigos.pdf Binary file Paper/riono-sigos.pdf has changed diff -r ddfb4ce43a83 -r bf75742d85e4 Paper/riono-sigos.tex --- a/Paper/riono-sigos.tex Wed May 05 20:50:28 2021 +0900 +++ b/Paper/riono-sigos.tex Wed May 05 21:30:01 2021 +0900 @@ -11,7 +11,7 @@ -\usepackage[dvips]{graphicx} +\usepackage[dvipdfmx]{graphicx} \usepackage{latexsym} \usepackage{url} \usepackage{listings} @@ -68,7 +68,7 @@ \begin{abstract} FPSやMMORPGなどのゲームにおける通信方式には、クライアントサーバ方式とp2p方式の2つが考えられる。しかし、クライアントの負荷軽減やチート対策などを理由にクライアントサーバ方式が主流である。データの同期にはサーバを経由するため低速である。 そこで本研究室で開発している分散フレームワークChristieを用いることで、高速かつ、安全に、データの同期を行いたいと考えた。 -本研究ではChrisiteをゲームエンジンUnityに対応するため、C\#への書き換えを行う。 +本研究ではChristieをゲームエンジンUnityに対応するため、C\#への書き換えを行う。 \end{abstract} @@ -96,15 +96,15 @@ -\section{Chrisite のC\#への書き換えについて} -Chrisite はAlice というプロジェクトで開発が行われていた。しかしAlice には様々な問題点があった。 +\section{Christie のC\#への書き換えについて} +Christie はAlice というプロジェクトで開発が行われていた。しかしAlice には様々な問題点があった。 \section{Christieの基礎概念} -Chrisiteは当研究室で開発している分散通信フレームワークである。同じく当研究室で開発している GearsOSのファイルシステムに組み込まれる予定があるため、GearsOSを構成する言語 Continuation based Cと似た概念を持っている。 Chrisiteに存在する概念として以下のようなものがある。 +Christieは当研究室で開発している分散通信フレームワークである。同じく当研究室で開発している GearsOSのファイルシステムに組み込まれる予定があるため、GearsOSを構成する言語 Continuation based Cと似た概念を持っている。 Christieに存在する概念として以下のようなものがある。 \begin{itemize} %箇条書き \item CodeGear @@ -113,7 +113,7 @@ \item DataGearManager \end{itemize} -以下はjava版のChrisiteについて解説を行う。 +以下はjava版のChristieについて解説を行う。 CodeGearはクラスやスレッドに相当する。 DataGearは変数データに相当し、CodeGear内でannotationを用いて変数データを取得する。CodeGear内に記述した全てのDataGearの中にデータが格納された際に、初めてそのCodeGearが実行されるという仕組みになっている。 CodeGearManagerはノードであり、CodeGear、DataGear、DataGearManagerを管理する。 @@ -131,11 +131,20 @@ \section{TopologyManager} -TopologyManager とは、Chrisite 上でのNetwork Topologyを形成するために参加を表明したノード、TopologyNode に名前を与え、必要があればNode 同士の配線も自動で行う機能である。TopologyManager のTopologyの形成方法として、静的Topology と動的Topology の2つがある。静的Topology は +TopologyManager とは、Christie 上でのNetwork Topologyを形成するために参加を表明したノード、TopologyNode に名前を与え、必要があればNode 同士の配線も自動で行う機能である。TopologyManager のTopologyの形成方法として、静的Topology と動的Topology の2つがある。静的Topology はCode \ref{code:ring} のようなdot ファイルを与えることで、Node の関係を図 \ref{fig:ring} のように構築できる。静的Topology はdot ファイルのNode 数と同等のTopologyNode があって初めて、CodeGear が実行される。 + +\lstinputlisting[caption=ring.dot, label=code:ring]{src/ring.dot} +\begin{figure}[htp] %PDF +\begin{center} +\includegraphics[width=8cm]{fig/ring.pdf} +\caption{Code \ref{code:ring} の図示} +\label{fig:ring} +\end{center} +\end{figure} \section{プログラムの例} -Code \ref{code:javaSHW} 、Code \ref{code:javaHWC} 、Code \ref{code:javaFHW} はChrisite の機能を使用してhello world を出力する例題である。 +Code \ref{code:javaSHW} 、Code \ref{code:javaHWC} 、Code \ref{code:javaFHW} はChristie の機能を使用してhello world を出力する例題である。 \lstinputlisting[caption=java StartHelloWorld, label=code:javaSHW]{src/StartHelloWorld.java} \lstinputlisting[caption=java HelloWorldCodeGear, label=code:javaHWC]{src/HelloWorldCodeGear.java}