# HG changeset patch # User oc # Date 1414486784 -32400 # Node ID b59646b8471aae966b6f44662e738c70f8f4afd8 # Parent 57a52fb8840eecd2a840c4f6e2ab6a81c9fa1447 update diff -r 57a52fb8840e -r b59646b8471a .report.tex.swp Binary file .report.tex.swp has changed diff -r 57a52fb8840e -r b59646b8471a pic/MultiNetworkTree.bb --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/pic/MultiNetworkTree.bb Tue Oct 28 17:59:44 2014 +0900 @@ -0,0 +1,5 @@ +%%Title: ./MultiNetworkTree.pdf +%%Creator: extractbb 20140317 +%%BoundingBox: 38 653 392 795 +%%CreationDate: Tue Oct 28 17:17:57 2014 + diff -r 57a52fb8840e -r b59646b8471a pic/MultiNetworkTree.pdf Binary file pic/MultiNetworkTree.pdf has changed diff -r 57a52fb8840e -r b59646b8471a pic/TreeVNC.bb --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/pic/TreeVNC.bb Tue Oct 28 17:59:44 2014 +0900 @@ -0,0 +1,5 @@ +%%Title: ./TreeVNC.pdf +%%Creator: extractbb 20140317 +%%BoundingBox: 35 639 211 795 +%%CreationDate: Tue Oct 28 17:17:54 2014 + diff -r 57a52fb8840e -r b59646b8471a pic/TreeVNC.pdf Binary file pic/TreeVNC.pdf has changed diff -r 57a52fb8840e -r b59646b8471a report.aux --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/report.aux Tue Oct 28 17:59:44 2014 +0900 @@ -0,0 +1,22 @@ +\relax +\@writefile{toc}{\contentsline {section}{\numberline {1}はじめに}{1}} +\@writefile{toc}{\contentsline {section}{\numberline {2}VNCとは}{1}} +\@writefile{toc}{\contentsline {section}{\numberline {3}TreeVNCとは}{1}} +\newlabel{fig:figure1}{{3}{1}} +\@writefile{lof}{\contentsline {figure}{\numberline {1}{\ignorespaces TreeVNCの図}}{1}} +\@writefile{toc}{\contentsline {section}{\numberline {4}TreeVNCのデバッグ}{1}} +\@writefile{toc}{\contentsline {subsection}{\numberline {4.1}port番号の変更}{1}} +\@writefile{toc}{\contentsline {subsection}{\numberline {4.2}Treeの構成の変更}{1}} +\bibcite{1}{1} +\@writefile{lof}{\contentsline {figure}{\numberline {2}{\ignorespaces マルチネットワークに対応したTreeVNCの図}}{2}} +\newlabel{fig:figure2}{{2}{2}} +\@writefile{toc}{\contentsline {subsection}{\numberline {4.3}ホスト切り替え時の挙動の修正}{2}} +\@writefile{toc}{\contentsline {subsection}{\numberline {4.4}子nodeの再接続時の挙動の修正}{2}} +\@writefile{toc}{\contentsline {subsection}{\numberline {4.5}CheckDelayの再実装}{2}} +\@writefile{toc}{\contentsline {section}{\numberline {5}まとめ}{2}} +\@writefile{toc}{\contentsline {section}{\numberline {6}今後の課題}{2}} +\@writefile{toc}{\contentsline {subsection}{\numberline {6.1}画像データの遅延}{2}} +\@writefile{toc}{\contentsline {subsection}{\numberline {6.2}エラーハンドリング}{2}} +\@writefile{toc}{\contentsline {subsection}{\numberline {6.3}音声データの共有}{2}} +\@writefile{toc}{\contentsline {subsection}{\numberline {6.4}解像度の変更}{2}} +\@writefile{toc}{\contentsline {subsection}{\numberline {6.5}画面の大きさを共有する側で変更できる}{2}} diff -r 57a52fb8840e -r b59646b8471a report.dvi Binary file report.dvi has changed diff -r 57a52fb8840e -r b59646b8471a report.log --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/report.log Tue Oct 28 17:59:44 2014 +0900 @@ -0,0 +1,181 @@ +This is e-pTeX, Version 3.14159265-p3.5-130605-2.6 (utf8.euc) (TeX Live 2014) (preloaded format=platex 2014.10.23) 28 OCT 2014 17:58 +entering extended mode + restricted \write18 enabled. + %&-line parsing enabled. +**report.tex +(./report.tex +pLaTeX2e <2006/11/10> (based on LaTeX2e <2014/05/01> patch level 0) +Babel <3.9k> and hyphenation patterns for 78 languages loaded. +(/usr/local/texlive/2014/texmf-dist/tex/platex/base/jarticle.cls +Document Class: jarticle 2006/06/27 v1.6 Standard pLaTeX class +\c@@paper=\count81 +(/usr/local/texlive/2014/texmf-dist/tex/platex/base/jsize10.clo +File: jsize10.clo 2006/06/27 v1.6 Standard pLaTeX file (size option) +) +\c@part=\count82 +\c@section=\count83 +\c@subsection=\count84 +\c@subsubsection=\count85 +\c@paragraph=\count86 +\c@subparagraph=\count87 +\c@figure=\count88 +\c@table=\count89 +\abovecaptionskip=\skip41 +\belowcaptionskip=\skip42 +\symmincho=\mathgroup4 +LaTeX Font Info: Overwriting symbol font `mincho' in version `bold' +(Font) JY1/mc/m/n --> JY1/gt/m/n on input line 601. +\toclineskip=\dimen118 +\@lnumwidth=\dimen119 +\bibindent=\dimen120 +\heisei=\count90 +) +(/usr/local/texlive/2014/texmf-dist/tex/latex/graphics/graphicx.sty +Package: graphicx 2014/04/25 v1.0g Enhanced LaTeX Graphics (DPC,SPQR) + +(/usr/local/texlive/2014/texmf-dist/tex/latex/graphics/keyval.sty +Package: keyval 2014/05/08 v1.15 key=value parser (DPC) +\KV@toks@=\toks15 +) +(/usr/local/texlive/2014/texmf-dist/tex/latex/graphics/graphics.sty +Package: graphics 2009/02/05 v1.0o Standard LaTeX Graphics (DPC,SPQR) + +(/usr/local/texlive/2014/texmf-dist/tex/latex/graphics/trig.sty +Package: trig 1999/03/16 v1.09 sin cos tan (DPC) +) +(/usr/local/texlive/2014/texmf-dist/tex/latex/latexconfig/graphics.cfg +File: graphics.cfg 2010/04/23 v1.9 graphics configuration of TeX Live +) +Package graphics Info: Driver file: dvips.def on input line 91. + +(/usr/local/texlive/2014/texmf-dist/tex/latex/graphics/dvips.def +File: dvips.def 2014/04/23 v3.0j Driver-dependant file (DPC,SPQR) +)) +\Gin@req@height=\dimen121 +\Gin@req@width=\dimen122 +) +(./picins.sty Option `picins' Version 3.0 Sep. 1992, TH Darmstadt/HRZ +\@BILD=\box41 +\@TEXT=\box42 +\d@breite=\dimen123 +\d@hoehe=\dimen124 +\d@xoff=\dimen125 +\d@yoff=\dimen126 +\d@shad=\dimen127 +\d@dash=\dimen128 +\d@boxl=\dimen129 +\d@pichskip=\dimen130 +\d@tmp=\dimen131 +\d@tmpa=\dimen132 +\d@bskip=\dimen133 +\hsiz@=\dimen134 +\p@getot@l=\dimen135 +\c@breite=\count91 +\c@hoehe=\count92 +\c@xoff=\count93 +\c@yoff=\count94 +\c@pos=\count95 +\c@shad=\count96 +\c@dash=\count97 +\c@boxl=\count98 +\c@zeilen=\count99 +\@changemode=\count100 +\c@piccaption=\count101 +\c@piccaptionpos=\count102 +\c@picpos=\count103 +\c@whole=\count104 +\c@half=\count105 +\c@tmp=\count106 +\c@tmpa=\count107 +\c@tmpb=\count108 +\c@tmpc=\count109 +\c@tmpd=\count110 +\d@leftskip=\skip43 +\ptoti=\dimen136 +\ptotii=\dimen137 +\env@box=\box43 +\d@envdp=\dimen138 +\c@hsize=\count111 +\c@envdp=\count112 +\d@envb=\dimen139 +) +(/usr/local/texlive/2014/texmf-dist/tex/latex/fancyhdr/fancyhdr.sty +\fancy@headwidth=\skip44 +\f@ncyO@elh=\skip45 +\f@ncyO@erh=\skip46 +\f@ncyO@olh=\skip47 +\f@ncyO@orh=\skip48 +\f@ncyO@elf=\skip49 +\f@ncyO@erf=\skip50 +\f@ncyO@olf=\skip51 +\f@ncyO@orf=\skip52 +) + +LaTeX Warning: Unused global option(s): + [9.5pt]. + +(./report.aux) +\openout1 = `report.aux'. + +LaTeX Font Info: Checking defaults for OML/cmm/m/it on input line 20. +LaTeX Font Info: ... okay on input line 20. +LaTeX Font Info: Checking defaults for T1/cmr/m/n on input line 20. +LaTeX Font Info: ... okay on input line 20. +LaTeX Font Info: Checking defaults for OT1/cmr/m/n on input line 20. +LaTeX Font Info: ... okay on input line 20. +LaTeX Font Info: Checking defaults for OMS/cmsy/m/n on input line 20. +LaTeX Font Info: ... okay on input line 20. +LaTeX Font Info: Checking defaults for OMX/cmex/m/n on input line 20. +LaTeX Font Info: ... okay on input line 20. +LaTeX Font Info: Checking defaults for U/cmr/m/n on input line 20. +LaTeX Font Info: ... okay on input line 20. +LaTeX Font Info: Checking defaults for JY1/mc/m/n on input line 20. +LaTeX Font Info: ... okay on input line 20. +LaTeX Font Info: Checking defaults for JT1/mc/m/n on input line 20. +LaTeX Font Info: ... okay on input line 20. +LaTeX Font Info: External font `cmex10' loaded for size +(Font) <12> on input line 24. +LaTeX Font Info: External font `cmex10' loaded for size +(Font) <8> on input line 24. +LaTeX Font Info: External font `cmex10' loaded for size +(Font) <6> on input line 24. +LaTeX Font Info: Font shape `JT1/mc/bx/n' in size <14.4> not available +(Font) Font shape `JT1/gt/m/n' tried instead on input line 27. +LaTeX Font Info: Font shape `JY1/mc/bx/n' in size <14.4> not available +(Font) Font shape `JY1/gt/m/n' tried instead on input line 27. +File: pic/TreeVNC.pdf Graphic file (type eps) + + +LaTeX Warning: `!h' float specifier changed to `!ht'. + +LaTeX Font Info: Font shape `JT1/mc/bx/n' in size <12> not available +(Font) Font shape `JT1/gt/m/n' tried instead on input line 75. +LaTeX Font Info: Font shape `JY1/mc/bx/n' in size <12> not available +(Font) Font shape `JY1/gt/m/n' tried instead on input line 75. +File: pic/MultiNetworkTree.pdf Graphic file (type eps) + + +LaTeX Warning: `!h' float specifier changed to `!ht'. + +File: pic/emblem-bitmap.pdf Graphic file (type eps) + + +Package Fancyhdr Warning: \headheight is too small (0.0pt): + Make it at least 20.37784pt. + We now make it that large for the rest of the document. + This may cause the page layout to be inconsistent, however. + +[1 + + +] [2] (./report.aux) ) +Here is how much of TeX's memory you used: + 844 strings out of 493807 + 9494 string characters out of 6151950 + 73447 words of memory out of 5000000 + 4352 multiletter control sequences out of 15000+600000 + 13408 words of font info for 52 fonts, out of 8000000 for 9000 + 929 hyphenation exceptions out of 8191 + 25i,15n,43p,317b,366s stack positions out of 5000i,500n,10000p,200000b,80000s + +Output written on report.dvi (2 pages, 12660 bytes). diff -r 57a52fb8840e -r b59646b8471a report.pdf Binary file report.pdf has changed diff -r 57a52fb8840e -r b59646b8471a report.tex --- a/report.tex Tue Oct 28 10:31:10 2014 +0900 +++ b/report.tex Tue Oct 28 17:59:44 2014 +0900 @@ -27,104 +27,152 @@ \section{はじめに} % TreeVNCが作られた理由 -普段授業を行う際、プロジェクタを使用し授業を進めることが多い。この場合、後ろの席から見えにくく、不便を感じることがよくある。そこで、手元のパソコンに画面を出力することによって、この問題は解消される。ゼミ等の発表者が入れ替わる場合には、画面の切り替えをスムーズに行えることで、そこでかかる手間を省くことが出来る。 - -% 従来の画面共有システムVNCでは、多人数で接続すると画面データ提供側にアクセスが集中し、処理性能が落ちてしまい授業の進行についていかなくなってしまう。画面表示の切り替えの際も、VNCを一度切断し、発表者の画面に接続をし直す必要が出てくる。 +普段授業を行う際、プロジェクタを使用し授業を進めることが多い。この場合、後ろの席から見えにくく、不便に感じる。そこで、VNCを使用し手元のパソコンに画面を出力することによって、この問題は解消される。 +従来の画面共有システムVNCでは、多人数で接続すると画像データ提供側にアクセスが集中し、処理性能が低下してしまい授業の進行についていかなくなってしまう。画面表示の切り替えの際も、VNCを一度切断し、発表者の画面に接続をし直す必要が出てくる。 % 先行研究 -本研究室の卒業生である谷成雄氏が、授業やゼミ向けの画面共有システムであるTreeVNCを開発した。TreeVNCは、クライアントをツリー構造に接続させ、その上から順番にデータを流していくという方法を取り、アクセスを分散させ処理性能が落ちることを防いでいる。画面を切り替える際もボタンひとつで済む様に設計されていて、再接続をする必要がない。 +本研究室では、授業やゼミ向けの画面共有システムであるTreeVNCの開発を行っている。TreeVNCは、クライアントをツリー状に接続させ、その上から順番にデータを流していくという方法を取り、アクセスを分散させ処理性能の低下を防いでいる。画面を切り替える際もボタンひとつで済む様に設計されていて、再接続をする必要がない。 % 現在のTreeVNCの問題 -現在のTreeVNCでは、発表内容を画面上でみることは出来るが、遠隔で授業やプレゼンを聴講することができない。 - - % 新たに実装を行うとかいうことを書いていく - - -本研究では、TreeVNCに新たな機能の実装を行う。 -発表者の声が聴きとりづらい、遠隔から聴講することができないといった問題を解決したい。 - -そして、参加者同士のコミュニケーションの質を高めたい。 - - -\section{VNCとは} -\section{TreeVNCの実装内容} - - -\section{デバッグリファクタしてきたこと} -機能向上のためTreeVNCをデバッグし、大幅な変更を加えた。 - - - \subsection{port番号の構造を変更した} - TreeVNCに接続しているnodeすべてがport番号を保持するように設計し直した。nodeがTreeVNCに接続する際に、使用されていないport番号を探し、そのport番号を保持する。 - TreeVNCには、子nodeからrootへと送信するmessageがある(Screen Change Request, lost Parent等)。今まではこれらmessageを、nodeからrootへ直接messageを送信していた。その際、node側では送信専用・root側では受信専用のportを固定の番号で開き、使用していた。 - 今回設計し直したことによって、messageのやり取りの際、余計な通信経路を作る必要がなくあった。そして、port番号が重複してしまうことがなくなったので、パソコン1台でTreeVNCを複数立ち上げることが出来るようになった。 - - - \subsection{有線と無線でtreeが構成するように変更した} - - 有線と無線で違う木構造を形成するように設計し直した。 - - 無線での接続の場合、有線と比べてデータの受け渡しの速度が落ちる。 - 有線nodeと無線nodeを同じ木構造に接続すると、無線のnodeがデータ送受信のボトルネックになってしまう可能性がある。 - - TreeVNCは、rootがnodeListというリストを持って木構造を管理している。 - 有線と無線で違う木構造を形成する場合、このnodeListをネットワークインターフェース毎に作成しておく。 - 新しいnodeを接続する場合、nodeのネットワークインターフェースを取得し、どのnodeListに登録されるかを決める。 - こうすることによって、有線と無線で別の木構造を形成することが出来る。 +本研究では、プレゼンテーションを快適に聴講できること、参加者同士が充分なコミュニケーションを取れることを目的として、TreeVNCに新たな機能の実装を行う。 - \subsection{ビデオフィードバックを消した} - 自分の画面を共有した時、viewerを閉じるようにした。 +\section{VNCとは} +VNC(Virtual Network Computing)は、RFBプロトコルを使用し遠隔操作を行うリモートデスクトップソフトである。VNCはサーバ側とクライアント(ビューア)側に分かれていて、サーバを起動し、クライアントがサーバに接続を行い遠隔操作を可能にする。 + + +\section{TreeVNCとは} +TreeVNCは、TightVNCのjava版のビューアを元に +作成された画面共有システムである。 +従来のVNCとは違って、接続に来たクライアント +をツリー状に接続させ、上からデータを流していく。 +この方法を使用しアクセスを分散させ、 +多人数でも性能を低下せずに、画面共有を行うことができる。 +接続しているクライアントがボタンひとつで +ホストになることができ、画面切り替えのために +再接続する必要がない。 + +\begin{figure}[!h] + \begin{center} + \includegraphics[width=3cm, bb=0 0 172 156]{pic/TreeVNC.pdf} +% \includegraphics[width=3cm]{pic/TreeVNC.pdf} +% \includegraphics[width=3cm, bb=0 0 251 246]{pic/emblem-bitmap.pdf} + \end{center} + \label{fig:figure1} + \caption{TreeVNCの図} +\end{figure} + + +% TreeVNCの接続方法の図を入れる + + +\section{TreeVNCのデバッグ} +機能向上のためTreeVNCをデバッグし、大幅な変更を加えた。 + - 自分の画面を共有した時にviewerを閉じていないと、ビデオフィードバックが起こり、その画面が他ユーザに共有されてしまう。今までだとviewerを最小化する必要があった。 + \subsection{port番号の変更} + TreeVNCに接続しているnodeすべてがport番号を保持するように設計し直した。 + nodeがTreeVNCに接続する際に使用されていないport番号を探し、そのport番号を保持する。 + TreeVNCには、子nodeからrootへと送信するmessageがある(Screen Change Request, lost Parent等)。 + 今まではこれらmessageを、nodeからrootへ直接messageを送信していた。 + その際、node側では送信専用・root側では受信専用のportを固定の番号で開き、使用していた。 + + 今回設計し直したことによって、 + messageのやり取りの際の、余計な通信経路を削除した。 + そして、port番号が重複することなく、 + パソコン1台でTreeVNCを複数立ち上げることができるようになった。 + + + \subsection{Treeの構成の変更} + + 有線と無線で別の木構造を形成するように設計し直した。 + + 無線での接続の場合、有線と比べてデータの受け渡しの速度が低下する。 + 有線nodeと無線nodeを同じ木構造に接続すると、 + 無線のnodeがデータ送受信のボトルネックになってしまう可能性がある。 + + TreeVNCは、rootがnodeListというリストを持って木構造を管理している。 + 有線と無線で違う木構造を形成する場合、 + このnodeListをネットワークインターフェース毎に作成しておく。 + 新しいnodeを接続する場合、nodeのネットワークインターフェースを取得し、 + どのnodeListに登録されるかを決める。 + こうすることによって、有線と無線で別の木構造を形成することができる。 + +\begin{figure}[!h] + \begin{center} + \includegraphics[clip, width=5cm, bb=0 0 353 142]{pic/MultiNetworkTree.pdf} + \end{center} + \caption{マルチネットワークに対応したTreeVNCの図} + \label{fig:figure2} +\end{figure} - \subsection{子nodeの再接続時に落ちるバグを取った} - lostparent時、nodeの再接続が必要となる場合がある。死んだ親nodeとの接続は切れており、新しい親nodeとの再接続を行う。その際、ReceiverTaskスレッドという画面データを受け取るスレッドが動作したままであった。そのため、再接続時に画面データがずれ、エラーが起こっていた。接続時には一度ReceiverTaskスレッドを止め、接続が確立した際にスレッドを立ち上げるという処理を追加した。 + \subsection{ホスト切り替え時の挙動の修正} + ホストを切り替える際にviewerを閉じる様、設計した。 + また、元のホストでは、viewerが立ち上がる様にした。 + viewerを閉じていないと、ビデオフィードバックが起こり、 + その結果が他のユーザに共有されてしまう。今までだと手動でviewerを最小化する必要があった。 + + + + \subsection{子nodeの再接続時の挙動の修正} + 親nodeとの接続が切れた場合、接続していたnodeは再接続が必要となる。 + その際、画像データを受け取るスレッドが動作したままであった。 + そのため、再接続時に画像データの整合性が取れなくなり、エラーが生じる。 + この問題を解決するために、再接続をする際に一度スレッドを停止し、 + 親nodeとの通信が確立した際に立ち上げる処理を追加した。 - \subsection{checkDelayの再実装} - checkDelayでは、木構造を伝ったデータの受け渡しの速度を計測するための実装である。 - 画面データの送信は、構成された木構造を伝って行われている。画面データは生成された木を下ってnodeに到達し、nodeはそのデータを使って画面に画像データを出力している。checkDelayをその画像データと共にnodeに送信し、受信したnodeは木を登ってrootへとcheckDelayReplyを返信するように実装した。checkDelayを送信した時間と、checkDelayReplyを受信した時間を2で割ることによって、木を伝う速度がわかる。 - このcheckDelayを利用し、木構造の段数毎の遅延の発生を測定、そして今後のデバッグ作業にも役立てていく。 + \subsection{CheckDelayの再実装} + CheckDelayを使用し、データの受け渡しの速度を計測を行う。 + rootがCheckDelayを、画像データと共にnodeに送信し、 + 受信したnodeは、CheckDelayReplyをrootへ返信するよう実装した。 + CheckDelayを送信した時間と、CheckDelayReplyを受信した時間から、 + root - node間のデータ通信の速度を判定することができる。 + + + + +\section{まとめ} + + - \subsection{細かいデバッグ作業} - 使われていないメソッドを削除する、メソッドを適切な名前に変更する、デバッグ時にどのスレッドが動いているのかがわかるように各スレッドに名前を付ける等といった、細かいデバッグ作業を行った。 +\section{今後の課題} + \subsection{画像データの遅延} + 全画像データの書き換えが立て続けに起こってしまった場合、データの受け渡し処理で遅延が発生する。 + 解決策として、クライアント側で最新のデータのみを出力するといった実装を行う。 -\section{新しいこと} -これから実装する予定である、TreeVNCの新しい機能を以下に記述する。 + \subsection{エラーハンドリング} + clientで起こったエラーメッセージがroot側に表示されてしまうという問題がある。 + どのclientのエラーかを検出した後、そのclientのIDを取得し、木構造を下に辿ってエラーメッセージを含むデータをclientに送信する。下へと降る際、各nodeでIDの確認をし、一致した箇所でエラーメッセージを出力するような実装を行う。 + + +%\section{新機能の実装} +%%参加者同士の充分なコミュニケーションを提供するために、以下の機能が考えられる。 +%TreeVNCを使用し、参加者が充分なコミュニケーションを行うために、以下の機能が考えられる。 \subsection{音声データの共有} - TreeVNCに、画像データと共に音声データを追加する。この機能を追加することによって、遠隔からでもプレゼンや授業に参加出来る。 + TreeVNCに、画像データと共に音声データを追加する。この機能を追加することによって、遠隔からでもプレゼンテーションや授業に参加できる。 - \subsection{画面の大きさを固定する} - 画面の大きさを画面共有する側で指定出来るようにする。 - 現在のTreeVNCは、画面データ全体を送信している。これでは共有する人によって画面サイズが違い、発表者毎に表示する大きさを手元で変えなければならない。 - 画面サイズをHDサイズ(1920x1080)に固定すれば、この手間を省くことが出来る。 + \subsection{解像度の変更} + 現在のTreeVNCは、画像データ全体を送信している。これでは共有する画面によってサイズが違い、発表者毎に表示する大きさを手元で変更しなければならない。 + 画面サイズをHDサイズ(1920x1080)に固定すれば、この手間を省くことができる。 \subsection{画面の大きさを共有する側で変更できる} - どの画面を共有するのかを共有する側で指定出来るようにする。マルチディスプレイを共有する場合、2つの画面が共有されてしまい、本来共有する必要のないデータまで送信することになる。 - 共有する側に枠を用意し、この枠の大きさの画面データを共有するといった実装を考えている。 + どの画面を共有するのかを、ホスト側で指定できるようにする。マルチディスプレイを共有する場合、2つの画面が共有されてしまい、本来共有する必要のないデータまで送信することになる。 + ホストが枠を指定し、枠の大きさの画像データを共有する機能を追加する。 -\section{今後の課題} - \subsection{大きいデータを送ってしまうとデータが詰まってしまう} - 全画面書き換えが立て続けに起こってしまった場合、データの受け渡し処理で遅延が発生する。 - 解決策として、VNCServerから一定以上のデータが連続して送られてくる場合、いくつかのデータは無視し、その中で最新のデータのみを出力するといった実装を行う。 - \subsection{errorメッセージがroot側に出力されてしまう} - clientで起こったエラーがroot側に表示されてしまうという問題がある。 - どのclientのエラーかを検出した後は、そのclientのIDを取得し、木構造を下へと降りる。 - 下へと降る間に、IDが一致したnodeでそのerrorを出力するような実装を行う。 \begin{thebibliography}{9}