annotate chapter3.tex @ 1:dc17ac172c7d

add thesis in production.
author oc
date Sun, 08 Feb 2015 17:45:46 +0900
parents
children 63ae5aaa2a7a
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
rev   line source
1
dc17ac172c7d add thesis in production.
oc
parents:
diff changeset
1 \chapter{TreeVNC のリファクタリング}
dc17ac172c7d add thesis in production.
oc
parents:
diff changeset
2
dc17ac172c7d add thesis in production.
oc
parents:
diff changeset
3 \section{動的な port 番号の指定}
dc17ac172c7d add thesis in production.
oc
parents:
diff changeset
4 TreeVNCは複雑な分散アルゴリズムを用いたシステムであり、
dc17ac172c7d add thesis in production.
oc
parents:
diff changeset
5 デバッグを行う環境を整える必要がある。
dc17ac172c7d add thesis in production.
oc
parents:
diff changeset
6
dc17ac172c7d add thesis in production.
oc
parents:
diff changeset
7 従来のTreeVNCでは、固定port番号を複数利用していた。
dc17ac172c7d add thesis in production.
oc
parents:
diff changeset
8 port番号は一意なので、1台で複数のTreeVNCを立ち上げることができない。
dc17ac172c7d add thesis in production.
oc
parents:
diff changeset
9
dc17ac172c7d add thesis in production.
oc
parents:
diff changeset
10 動的にport番号を割り当てることで、
dc17ac172c7d add thesis in production.
oc
parents:
diff changeset
11 1つのnodeに対して複数のTreeVNCを起動することを可能にした。
dc17ac172c7d add thesis in production.
oc
parents:
diff changeset
12 最低限のソケットポートを開けることによって、
dc17ac172c7d add thesis in production.
oc
parents:
diff changeset
13 メモリの使用量を抑えることにも繋がる。
dc17ac172c7d add thesis in production.
oc
parents:
diff changeset
14
dc17ac172c7d add thesis in production.
oc
parents:
diff changeset
15 % messageの説明にportにどんな関係があるのかあとから
dc17ac172c7d add thesis in production.
oc
parents:
diff changeset
16 以前は固定port番号を使用しmessageの通信を行っていたが、
dc17ac172c7d add thesis in production.
oc
parents:
diff changeset
17 一意なportを割り当てられているnodeが通信を行うことによって、
dc17ac172c7d add thesis in production.
oc
parents:
diff changeset
18 どのport番号が使用されているかを意識する必要がなくなった。
dc17ac172c7d add thesis in production.
oc
parents:
diff changeset
19
dc17ac172c7d add thesis in production.
oc
parents:
diff changeset
20
dc17ac172c7d add thesis in production.
oc
parents:
diff changeset
21 \section{ホスト切り替え時の挙動の修正}
dc17ac172c7d add thesis in production.
oc
parents:
diff changeset
22 画面の切り替えを行う際、新しいホスト側の画面に生じた
dc17ac172c7d add thesis in production.
oc
parents:
diff changeset
23 ビデオフィードバックが他のユーザに配信されてしまう問題があった。
dc17ac172c7d add thesis in production.
oc
parents:
diff changeset
24
dc17ac172c7d add thesis in production.
oc
parents:
diff changeset
25 ホストの切り替えの際、
dc17ac172c7d add thesis in production.
oc
parents:
diff changeset
26 新しいホスト側のviewerを閉じることで問題を解決した。
dc17ac172c7d add thesis in production.
oc
parents:
diff changeset
27
dc17ac172c7d add thesis in production.
oc
parents:
diff changeset
28
dc17ac172c7d add thesis in production.
oc
parents:
diff changeset
29 \newpage
dc17ac172c7d add thesis in production.
oc
parents:
diff changeset
30
dc17ac172c7d add thesis in production.
oc
parents:
diff changeset
31
dc17ac172c7d add thesis in production.
oc
parents:
diff changeset
32 \section{Tree の構成の変更}
dc17ac172c7d add thesis in production.
oc
parents:
diff changeset
33
dc17ac172c7d add thesis in production.
oc
parents:
diff changeset
34 従来のTreeVNCは、クライアントの接続する木構造が単一であった。
dc17ac172c7d add thesis in production.
oc
parents:
diff changeset
35 そのため、ネットワークインターフェースが違うクライアントが
dc17ac172c7d add thesis in production.
oc
parents:
diff changeset
36 同じ木に混在している状況が生じた。
dc17ac172c7d add thesis in production.
oc
parents:
diff changeset
37
dc17ac172c7d add thesis in production.
oc
parents:
diff changeset
38 速度の遅いクライアントが木に存在すると、
dc17ac172c7d add thesis in production.
oc
parents:
diff changeset
39 そのクライアント以下の通信速度が遅くなってしまう。
dc17ac172c7d add thesis in production.
oc
parents:
diff changeset
40
dc17ac172c7d add thesis in production.
oc
parents:
diff changeset
41 この問題を解決するために、
dc17ac172c7d add thesis in production.
oc
parents:
diff changeset
42 図\ref{fig:multinetworktree}の様に、ネットワークインターフェース別に
dc17ac172c7d add thesis in production.
oc
parents:
diff changeset
43 木構造を形成するように設計した。
dc17ac172c7d add thesis in production.
oc
parents:
diff changeset
44
dc17ac172c7d add thesis in production.
oc
parents:
diff changeset
45 TreeVNCは、rootがnodeListというリストを保持し、木構造を管理している。
dc17ac172c7d add thesis in production.
oc
parents:
diff changeset
46 複数のネットワークインターフェースで木構造を形成する場合、
dc17ac172c7d add thesis in production.
oc
parents:
diff changeset
47 このnodeListをネットワークインターフェース毎に作成しておく。
dc17ac172c7d add thesis in production.
oc
parents:
diff changeset
48 新しいnodeを接続する際、nodeのネットワークインターフェースを取得し、
dc17ac172c7d add thesis in production.
oc
parents:
diff changeset
49 どのnodeListに登録されるかが決まる。
dc17ac172c7d add thesis in production.
oc
parents:
diff changeset
50 こうすることによって、TreeVNCを複数のネットワークインターフェイス別に
dc17ac172c7d add thesis in production.
oc
parents:
diff changeset
51 木構造を構成することができる。
dc17ac172c7d add thesis in production.
oc
parents:
diff changeset
52
dc17ac172c7d add thesis in production.
oc
parents:
diff changeset
53 \begin{figure}[htpd]
dc17ac172c7d add thesis in production.
oc
parents:
diff changeset
54 \begin{center}
dc17ac172c7d add thesis in production.
oc
parents:
diff changeset
55 \includegraphics[scale=0.4]{./images/chapter3/MultiNetworkTree.pdf}
dc17ac172c7d add thesis in production.
oc
parents:
diff changeset
56 \end{center}
dc17ac172c7d add thesis in production.
oc
parents:
diff changeset
57 \caption{Multi Network Tree}
dc17ac172c7d add thesis in production.
oc
parents:
diff changeset
58 \label{fig:multinetworktree}
dc17ac172c7d add thesis in production.
oc
parents:
diff changeset
59 \end{figure}
dc17ac172c7d add thesis in production.
oc
parents:
diff changeset
60
dc17ac172c7d add thesis in production.
oc
parents:
diff changeset
61
dc17ac172c7d add thesis in production.
oc
parents:
diff changeset
62 \section{切断時の検知方法の変更}
dc17ac172c7d add thesis in production.
oc
parents:
diff changeset
63
dc17ac172c7d add thesis in production.
oc
parents:
diff changeset
64 lostParent\ref{fig:lostparent} を lostChild\ref{fig:lostchild1} へ。
dc17ac172c7d add thesis in production.
oc
parents:
diff changeset
65 lostChild の接続切り替えの図\ref{fig:lostchild2}
dc17ac172c7d add thesis in production.
oc
parents:
diff changeset
66
dc17ac172c7d add thesis in production.
oc
parents:
diff changeset
67 \begin{figure}[htpd]
dc17ac172c7d add thesis in production.
oc
parents:
diff changeset
68 \begin{center}
dc17ac172c7d add thesis in production.
oc
parents:
diff changeset
69 \includegraphics[scale=0.4]{./images/chapter3/lostParent.pdf}
dc17ac172c7d add thesis in production.
oc
parents:
diff changeset
70 \end{center}
dc17ac172c7d add thesis in production.
oc
parents:
diff changeset
71 \caption{lostParent}
dc17ac172c7d add thesis in production.
oc
parents:
diff changeset
72 \label{fig:lostparent}
dc17ac172c7d add thesis in production.
oc
parents:
diff changeset
73 \end{figure}
dc17ac172c7d add thesis in production.
oc
parents:
diff changeset
74
dc17ac172c7d add thesis in production.
oc
parents:
diff changeset
75 \begin{figure}[htpd]
dc17ac172c7d add thesis in production.
oc
parents:
diff changeset
76 \begin{center}
dc17ac172c7d add thesis in production.
oc
parents:
diff changeset
77 \includegraphics[scale=0.4]{./images/chapter3/lostChild1.pdf}
dc17ac172c7d add thesis in production.
oc
parents:
diff changeset
78 \end{center}
dc17ac172c7d add thesis in production.
oc
parents:
diff changeset
79 \caption{lostChild1}
dc17ac172c7d add thesis in production.
oc
parents:
diff changeset
80 \label{fig:lostchild1}
dc17ac172c7d add thesis in production.
oc
parents:
diff changeset
81 \end{figure}
dc17ac172c7d add thesis in production.
oc
parents:
diff changeset
82
dc17ac172c7d add thesis in production.
oc
parents:
diff changeset
83 \begin{figure}[htpd]
dc17ac172c7d add thesis in production.
oc
parents:
diff changeset
84 \begin{center}
dc17ac172c7d add thesis in production.
oc
parents:
diff changeset
85 \includegraphics[scale=0.4]{./images/chapter3/lostChild2.pdf}
dc17ac172c7d add thesis in production.
oc
parents:
diff changeset
86 \end{center}
dc17ac172c7d add thesis in production.
oc
parents:
diff changeset
87 \caption{lostChild2}
dc17ac172c7d add thesis in production.
oc
parents:
diff changeset
88 \label{fig:lostchild2}
dc17ac172c7d add thesis in production.
oc
parents:
diff changeset
89 \end{figure}
dc17ac172c7d add thesis in production.
oc
parents:
diff changeset
90