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