view prepaper/finalPre.tex @ 22:71e9e221b0a3

Update
author Tatsuki IHA <e125716@ie.u-ryukyu.ac.jp>
date Wed, 17 Feb 2016 03:03:01 +0900
parents 020367fa53bc
children 01831426db98
line wrap: on
line source

\documentclass[twocolumn,twoside,9.5pt]{jarticle}
\usepackage[dvipdfmx]{graphicx}
\usepackage{picins}
\usepackage{fancyhdr}
\usepackage{url}
%\pagestyle{fancy}
\lhead{\parpic{\includegraphics[height=1zw,keepaspectratio,bb=0 0 251 246]{pic/emblem-bitmap.pdf}}琉球大学主催 工学部情報工学科 卒業研究発表会}
\rhead{}
\cfoot{}

\setlength{\topmargin}{-1in \addtolength{\topmargin}{15mm}}
\setlength{\headheight}{0mm}
\setlength{\headsep}{5mm}
\setlength{\oddsidemargin}{-1in \addtolength{\oddsidemargin}{11mm}}
\setlength{\evensidemargin}{-1in \addtolength{\evensidemargin}{21mm}}
\setlength{\textwidth}{181mm}
\setlength{\textheight}{261mm}
\setlength{\footskip}{0mm}
\pagestyle{empty}

\input{dummy.tex}
\begin{document}
\title{有線 LAN 上のPC画面配信システム TreeVNC の改良}
\author{125716B 氏名 {伊波}{立樹} 指導教員 : 河野 真治}
\date{}
\maketitle
\thispagestyle{fancy} 

\section{Abstract}
Screen sharing system TreeVNC multicast high resolution PC screen using tree structured network over client's PCs.
Copying costs are balanced among these PC instead of centralize heavy costs on a VNC server.
It also possible to change screen server dynamically without changing display cables.
TreeVNC is useful in a lecture which contains 40-60 students or small seminar.

本研究ではTreeVNCの改良として、NATへの対応、 マルチディスプレイへの対応等のリファクタリングを行うとともに、TreeVNC 有用性を示すために画像データの遅延時間計測を行った。

\section{画面配信システムTreeVNC}

\section{NAT への対応}
遠隔地からでもゼミや授業に参加できるよう、 NATを越えたネットワークから TreeVNC への接続を可能にした。

図\ref{fig:directConnection} にNATを越えたネットワークからの接続を示す。
別ネットワークからTreeVNCに参加する際、 直接配信側のネットワークの Root Node に接続を行う。
この接続を Direct Connection と呼ぶ。

Direct Connection した Node はそのネットワークの Root Node になる。 
そのネットワークの他の Node はそのネットワークの Root Node に接続し、木構造を生成する。

配信側の Root Node は Direct Connection で接続された Root Node に対して Framebuffer Update で 画像データを送信する。
Framebuffer Update が送信された Root Node は そのネットワークの Node に対して Framebuffer Update を送信する。

これにより、NATを越えたネットワークの画面共有が可能となる。

\begin{figure}[htbp]
    \begin{center}
        \includegraphics[width=80mm]{./pic/directConnection.pdf}
        \caption{遠隔地 Node からの接続}
        \label{fig:directConnection}
    \end{center}
\end{figure}

\section{マルチディスプレイ対応}
画面配信側のPCがマルチディスプレイの場合、 VNC サーバーからは複数の画面全体の画像データが送信されてしまう。

授業やゼミ等でTreeVNCを使用する場合、複数画面の表示は必要ない。
そこで、画面を共有する際、ディスプレイを選択させ、画面共有を行う機能を追加した。

ディスプレイの情報は個々のクライアントでしか取得ができない。
そのため、配信側は画面の切替を行う際に、ディスプレイを選択し、そのディスプレイの左上と右下の座標を取得する。
その座標を Root Node への画面切り替えを要求する SERVER\_CHANGE\_REQUEST メッセージに付加させる。 
Root Node は 配信側の VNC サーバー に画像データを要求する FRAMEBUFFER\_UPDATE\_REPLY メッセージに送信された座標を付加する。 
VNC サーバーは要求された座標内の画像データを FRAMEBUFFER\_UPDATE メッセージで Root Node に送信する。 
これにより、一画面のみの表示が可能となる。

図\ref{fig:multidisplay} は Display1 のみを画面共有する例を示している。

\begin{figure}[htbp]
    \begin{center}
        \includegraphics[width=70mm]{./pic/shareScreenToMultiDisplay.pdf}
    \end{center}
    \caption{マルチディスプレイへの対応}
    \label{fig:multidisplay}
\end{figure}

\section{画面切り替えの安定化}
画面切り替えを行う際、 配信中の画面を停止した後に画面の切り替え処理を実行していた。
しかし、 切り替え先の VNC サーバーへの接続に時間がかかったり、 切り替え先の設定ミスなどで画面の切替がスムーズに行えない場合があった。

そこで、 画面切り替えを行う際に新しく切り替え用のスレッドを生成し処理する変更を行った。
Root Node は SERVER\_CHANGE\_REQUEST を受け取ると、 配信状態を維持したまま、画面切り替え用に新しくスレッドを生成する。
切り替え用のスレッドは切り替えに必要なデータの設定、 VNC サーバー への接続など通常の切り替え処理を実行する。
切り替えが完了した後に、 現在配信中の画面を停止し、画面の切替を行う。
切り替え用のスレッドを用意することで、配信状況を維持したままスムーズな画面切り替えが可能になった。

\section{クライアントへのエラー通知}
TreeVNC には接続しているクライアントへのエラーの通知を行うことが出来なかった。
そのため、 画面切り替えを行う際に切り替え先が VNC サーバーの共有設定をしていない場合 Root Node に接続エラーのダイアログが表示されるという実装になっており、切り替えを行ったクライアントには通知されていなかった。

この問題を解決するために新しくERROR\_ANNOUNCE というメッセージを追加した。
図\ref{fig:errorAnnounce} は Node3 に対してエラー通知を行っている例を示している。
ERROR\_ANNOUNCE メッセージは Root Nodeから木構造を辿りながら末端の Node に通信を行うメッセージで、エラー通知したいクライアントの Node Nuber と エラー内容の文字列を付加して送信する。
付加した Node Number に一致する Node がメッセージを受け取ると、 付加されたエラーの文字列をダイアログで表示する。
エラー通知用のメッセージを追加することで、 各々のクライアントに対して通知を行うことが可能になった。

\begin{figure}[htbp]
    \begin{center}
        \includegraphics[scale=0.5]{./pic/errorAnnounce.pdf}
    \end{center}
    \caption{ERROR\_ANNOUNCE メッセージの挙動}
    \label{fig:errorAnnounce}
\end{figure}

\section{TreeVNC の評価}

\section{今後の課題}

\nocite{*}
\bibliographystyle{junsrt}
\bibliography{reference}
\end{document}