changeset 25:3bf32fc6dab1

add images
author riono <e165729@ie.u-ryukyu.ac.jp>
date Wed, 02 Feb 2022 18:10:34 +0900
parents 1323b7d93190
children 905ebcf50755
files Paper/chapter/1-Christie.tex Paper/chapter/2-RewriteCS.tex Paper/images/SendPackt.graffle Paper/images/SendPackt.pdf Paper/master_paper.pdf
diffstat 5 files changed, 26 insertions(+), 17 deletions(-) [+]
line wrap: on
line diff
--- a/Paper/chapter/1-Christie.tex	Wed Feb 02 10:14:18 2022 +0900
+++ b/Paper/chapter/1-Christie.tex	Wed Feb 02 18:10:34 2022 +0900
@@ -223,8 +223,4 @@
 送信されたTakeコマンドを受け取ったLocalDGMは、要求されたDGがあればReplyコマンドを生成して送り返す。
 もしDGがなければ、Remoteから来たコマンドもLocalの場合と同様にLocalDGMのwaitListに格納される。
 
-Replyコマンドを受け取るとRemoteDGMhはwaitListに入っていたコマンドを解決し、待ち合わせが完了する。
-
-
-\section{TopologyManager}
-
+Replyコマンドを受け取るとRemoteDGMhはwaitListに入っていたコマンドを解決し、待ち合わせが完了する
--- a/Paper/chapter/2-RewriteCS.tex	Wed Feb 02 10:14:18 2022 +0900
+++ b/Paper/chapter/2-RewriteCS.tex	Wed Feb 02 18:10:34 2022 +0900
@@ -97,33 +97,46 @@
 Christie SharpではCodeGearの処理で使用していたThreadPoolと同様にTaskへの書き換えを行った。
 
 \section{MessagePackの変更}
-Christieではデータを他Nodeに送信する際に、MessagePackを使用してデータを圧縮し、送信を行っている。
+Christieではデータを他Nodeに送信する際に、MessagePackを使用してデータをSerializeし、送信を行っている。
 Chrisiteで使用しているMessagePackはmsgpack java 0.6.12を使用しており、現在はサポートされていない。
 そのためJavaでサポート対象となっているmsgpack java 0.7.x以上のMEssagePakckとは記述方法が異なっている。
 ソースコード\ref{src:JavaMspackExample}はChristieで使用してるmsgpack java 0.6.12の使用例である。
 
 \lstinputlisting[label=src:JavaMspackExample, caption=JavaにおけるMessagePackの使用例]{src/java/MessagePackExample.java}
 
-MessagePackを使用するには、圧縮を行うクラスに対して明示的に@Message annotationを付ける必要がある。
-これにより、クラス内で宣言したpublic変数が圧縮の対象となる。
-ソースコード\ref{src:JavaMspackExample}の14 - 18行目は圧縮解凍を行う例である。
-MessagePackインスタンスを作成後、writeメソッドを使用することで引数に渡したオブジェクトをbyte[]型に圧縮できる。
-解凍にはreadメソッドを使用し、引数として圧縮されたbyte[]型と解凍対象のクラスを渡すことで解凍できる。
+MessagePackを使用するには、Serializeを行うクラスに対して明示的に@Message annotationを付ける必要がある。
+これにより、クラス内で宣言したpublic変数がエンコードの対象となる。
+ソースコード\ref{src:JavaMspackExample}の14 - 18行目はSerialize/Deserializeを行う例である。
+MessagePackインスタンスを作成後、writeメソッドを使用することで引数に渡したオブジェクトをbyte[]型にSerializeできる。
+Deserializeにはreadメソッドを使用し、引数としてSerializeされたbyte[]型とDeserialize対象のクラスを渡すことでデコードできる。
  
 
-C\#のMessagePackは複数存在しており、msgpack java 0.6.12とほぼ同様の記述方法を採っているMessagePack CSharpを選択した。
+C\#のMessagePackは複数存在しており、msgpack java 0.6.12とほぼ同様の記述方法を採っているMessagePack CSharp 2.3.85を選択した。
 
 \newpage
 
 \lstinputlisting[label=src:CSMspackExample, caption=C\#におけるMessagePackの使用例]{src/cs/MessagePackExample.cs}
-MessagePack CSharpではmsgpack javaと同様にクラスに対して圧縮を行うため、\ref{src:CSMspackExample}の1行目でMessageObject attributeを追加している。
-また、圧縮する変数に対してkeyを設定することができ、indexesとしてのintやstringをkeyとして指定することができる。
+MessagePack CSharpではmsgpack javaと同様にクラスに対してSerializeを行うため、\ref{src:CSMspackExample}の1行目でMessageObject attributeを追加している。
+また、Serializeする変数に対してkeyを設定することができ、indexesとしてのintやstringをkeyとして指定することができる。
 
-データの圧縮にはMessagePackSerializer.Serializeメソッドを使用し、引数として渡したオブジェクトをbyte[]型に圧縮変換する。
-解凍にはMessagePackSerializer.Deserializeメソッドを使用する。Deserializeメソッドはジェネリスク関数であるため、<>内に解凍対象のクラスを指定する。
+データのSerializeにはMessagePackSerializer.Serializeメソッドを使用し、引数として渡したオブジェクトをbyte[]型にSerializeする。
+DeserializeにはMessagePackSerializer.Deserializeメソッドを使用する。Deserializeメソッドはジェネリスク関数であるため、<>内にDeserialize対象のクラスを指定する。
 ソースコード\ref{src:CSMspackExample}の22行目ではjson展開の例であり、変数それぞれにkeyを指定していることで展開可能となっている。
 
-\section{送信データの修正}
+\section{送信パケットの修正}
+MessagePackのバージョンを更新した影響により、Remote nodeにデータを送信するパケットの形式を変更する必要がある。
+図\ref{fig:SendPackt}はChristieと、Chrisite Sharpにおける送信パケットの構成である。
+msgpack javaではreadメソッドの引数にClass$<$T$>$を渡すことでデコード可能であり、RemoteMessageのDeserializeにデータ長を指定する必要はない。
+DGはジェネリスクで記述しており毎回デコードするクラスが異なるため、デコードの際にデータ長を必要としている。
 
 
+しかしMessagePack CSharpでは、DeserializeメソッドにClass$<$T$>$を渡してデコードすることができないため、データ長も付属させてデータを送信する。
+それぞれのSizeのデータ長はintで指定しているが、MessagePackでSerializeした際に最大で5byteになる。
 
+\begin{figure}[htb]
+  \begin{center}
+    \includegraphics[width=150mm]{images/SendPackt.pdf}
+  \end{center}
+  \caption{送信パケットの構成}
+  \label{fig:SendPackt}
+\end{figure}
\ No newline at end of file
Binary file Paper/images/SendPackt.graffle has changed
Binary file Paper/images/SendPackt.pdf has changed
Binary file Paper/master_paper.pdf has changed