# HG changeset patch # User Yu Taninari # Date 1312801555 -32400 # Node ID 71096d59d9eb882b6c6d4eb911f8ec32a700cded # Parent 8adf2865dee4f24fc9a1b7b6755ca646227b9d62 update yuu-jssst.pdf diff -r 8adf2865dee4 -r 71096d59d9eb yuu-jssst.pdf Binary file yuu-jssst.pdf has changed diff -r 8adf2865dee4 -r 71096d59d9eb yuu-jssst.tex --- a/yuu-jssst.tex Mon Aug 08 19:46:59 2011 +0900 +++ b/yuu-jssst.tex Mon Aug 08 20:05:55 2011 +0900 @@ -1,79 +1,75 @@ % Sample file for the use of compsoft style file. % -%\documentclass[T]{compsoft} -\documentclass[K,L]{compsoft} -% -% その他の optional argument については,compsoft.sty の旧版を -% 参照のこと. +\documentclass[T]{compsoft} % Preamble % -% 「コンピュータソフトウェア」誌に掲載される論文の場合,次で -% 巻数,号数,開始ページ,終了ページを指定する. -\volNoPp{27}{0}{1}{5} +% $B!V%3%s%T%e!<%?%=%U%H%&%'%"!W;o$K7G:\$5$l$kO@J8$N>l9g!$l9g!$%o!<%/%7%g%C%WL>$r;XDj$9$k!%(B +% \suisen{$B%o!<%/%7%g%C%WL>(B} -% 特集の場合,特集のタイトルを与える. -% \tokushu{特集のタイトル} +% $BFC=8$N>l9g!$FC=8$N%?%$%H%k$rM?$($k!%(B +% \tokushu{$BFC=8$N%?%$%H%k(B} -% 大会論文の場合,\taikai で開催年を指定する.ここで指定した年から -% 大会の回数は計算される. -% \taikai{2009} +% $BBg2qO@J8$N>l9g!$(B\taikai $B$G3+:EG/$r;XDj$9$k!%$3$3$G;XDj$7$?G/$+$i(B +% $BBg2q$N2s?t$O7W;;$5$l$k!%(B +\taikai{2011} -% ここに,使用するパッケージを列挙する. +% $B$3$3$K!$;HMQ$9$k%Q%C%1!<%8$rNs5s$9$k!%(B \usepackage[dvips]{graphics} -% ユーザが定義したマクロなどはここに置く.ただし学会誌のスタイルの -% 再定義は原則として避けること. +% $B%f!<%6$,Dj5A$7$?%^%/%m$J$I$O$3$3$KCV$/!%$?$@$73X2q;o$N%9%?%$%k$N(B +% $B:FDj5A$O86B'$H$7$FHr$1$k$3$H!%(B \begin{document} -% 論文のタイトル -\title{VNCを用いた授業用画面共有システムの設計と実装} +% $BO@J8$N%?%$%H%k(B +\title{VNC$B$rMQ$$$?l9g!$@+$HL>$N4V$K$OH>3Q%9%Z!<%9$rF~$l!$(B +% $BJ#?t$NCxk(B $B?.9/(B % -% ここにタイトルの英訳を書く +% $B$3$3$K%?%$%H%k$N1QLu$r=q$/(B % \ejtitle{Design and implementation of Screen Sharing System with VNC for lecture} % -% ここに著者英文表記 (英文の場合は和文表記) および -% 所属 (和文および英文) を書く. -% 複数著者の所属はまとめてよい. +% $B$3$3$KCxl9g$OOBJ8I=5-(B) $B$*$h$S(B +% $B=jB0(B ($BOBJ8$*$h$S1QJ8(B) $B$r=q$/!%(B +% $BJ#?tCxpJs9)3X2J(B $BJBNs?.Mj8&5f<<(B}% {Dept.\ of The Department of Information Engineering, University of Ryukyus Concurrency Reliance Laboratory} -%\shozoku{Kazunori Ueda}{早稲田大学理工学部情報学科}% +%\shozoku{Kazunori Ueda}{$BAa0pEDBg3XM}9)3XIt>pJs3X2J(B}% %{Dept.\ of Information and Computer Science, Waseda University} % -% 出典情報は \shutten とすれば出力される. +% $B=PE5>pJs$O(B \shutten $B$H$9$l$P=PNO$5$l$k!%(B \shutten % -% 受付年月日,記事カテゴリなどは自動的に生成される. +% $B!$5SCm$KF~$l$k$b$N$,$"$l$P!$(B\note $B$K5-=R$9$k!%(B +%\note{$BK\%,%$%I$O!$5l%9%?%$%k%U%!%$%k$H$H$b$KG[I[$5$l$F$$$?(B +%\texttt{sample.tex}$B$r$b$H$KH/E8$5$;$?$b$N$G$"$k!%(B} } % -% 和文アブストラクト +% $BOBJ8%"%V%9%H%i%/%H(B \Jabstract{% -各クライアントをTree型に接続し, 親が配信したデータをリレーさせることで分散VNCアプリケーションを実装した. -通常のVNCでは配信者へ負荷が集中する設計となっている. 例えば, 大学の講義等でVNCを用いて画面共有を行った時, クライアントの増加に比例して配信者への負荷が増えてしまう. -この問題を解決する為に, Tree構造にクライアントを接続させ, Topのクライアントから子供へデータを送ることでスケーラビリティを持たせた. -その結果, クライアントの数を増やしてもサーバ側への負荷を抑えることができた. -また, VNC Refrectorとの性能比較も行う. +$B3F%/%i%$%"%s%H$r(BTree$B7?$K@\B3$7(B, $B?F$,G[?.$7$?%G!<%?$r%j%l!<$5$;$k$3$H$GJ,;6(BVNC$B%"%W%j%1!<%7%g%s$ro$N(BVNC$B$G$OG[?.l9g$K$OI,MW$J$7(B) %\Eabstract{% %This documentation describes the new version of the %\texttt{compsoft.sty} document style file. @@ -83,67 +79,67 @@ % \maketitle -\section{はじめに} - 普段授業を行う際、プロジェクタなどを使って授業を進めている。しかし、後ろの席から見えにくいなどの不便を感じることがよくある。授業をうけている生徒の手元にパソコンがあるならば、そこに先生のスライドを表示して授業を進めれば後ろの席に座っても手元に画面があるので見えづらいという問題は解消される。 - VNC(画面共有)を使えば、スライドを生徒の手元の画面に表示することができる。しかし、多人数の生徒が先生のパソコンに同時に接続してしまうと処理性能が落ちて授業の進行に画面がついていかなくなってしまう。この問題は一つのパソコンに多人数が繋がいるときに起こる問題である。 - 本論文では、多人数で画面共有ができるようにクライアントをツリー構造に接続させ、上から順番にデータを流していくという方法で新しいVNCの設計・実装を行う。 +\section{$B$O$8$a$K(B} +$B!!IaCJC$5$l$k!#(B +$B!!(BVNC$B!J2hLL6&M-!K$r;H$($P!"%9%i%$%I$r@8EL$Ne$+$i=gHV$K%G!<%?$rN.$7$F$$$/$H$$$&J}K!$G?7$7$$(BVNC$B$N@_7W!&u$K7R$,$C$F$$$/$h$&$Ku$K7R$,$C$F$$$k$N$G!"?F%N!<%I$,Mn$A$k$H;R%N!<%I$b0l=o$KMn$A$F$7$^$&!#$=$3$G!"(Btree$B$N:F9=@.$,I,MW$K$J$k!#(B \begin{enumerate} - \item 親ノードが落ちた際に、子ノードの中で一番若い番号の子ノードがトップに対して自分の親ノードが落ちたことを報告する。(親ノードの番号を知らせる) - \item トップは木の番号が一番大きいノードに対して1で報告を受けた親ノードの代わりになるように命令を出す。$\\$ - \item 親ノードがいなくなった子ノードたちはトップに対して、2で新しく繋がった親ノードのIPアドレスを教えてもらいそのアドレスに対して接続をおこなう。 -上記の構成の場合、一つのノードが落ちた場合に再接続を行うノードは2分木の場合3ノードである。 - \end{enumerate} + \item $B?F%N!<%I$,Mn$A$?:]$K!";R%N!<%I$NCf$G0lHVe5-$N9=@.$N>l9g!"0l$D$N%N!<%I$,Mn$A$?>l9g$K:F@\B3$r9T$&%N!<%I$O#2J,LZ$N>l9g#3%N!<%I$G$"$k!#(B +$B!!(B\end{enumerate} \begin{figure}[tb] \begin{center} \scalebox{0.80}{\includegraphics{fig/reconnection.eps}} \end{center} -\caption{1番の木が落ちたときの再接続の処理(TはTOP)} +\caption{$B#1HV$NLZ$,Mn$A$?$H$-$N:F@\B3$N=hM}(B(T$B$O(BTOP)} \label{figure:splaying} \end{figure} -\section{java.util.zip.deflaterのバグ} -VNCで扱うRfb Protocolには、使えるエンコーディングのタイプとしてZRLE(Zlib Run-Length Encoding)がある。 -ZRLEはZlib圧縮されたデータを内包する。 -deflaterはプリセット辞書をもち、Zlib圧縮されたデータはその辞書を用いて解凍が行われる。 -辞書はで更新されることもあるのでZlib圧縮されたデータを解凍する為には辞書のデータも受け取る必要がある。 -しかし、JavaにはこのZlibの辞書を相手へ書きだす(flush)する機能が無い。 -元々のZlibの規約にはこの辞書をflushする機能があったがJavaには実装されていなかった。 -これはJava.util.zip.deflaterのバグである。 +\section{java.util.zip.deflater$B$N%P%0(B} +VNC$B$G07$&(BRfb Protocol$B$K$O!";H$($k%(%s%3!<%G%#%s%0$N%?%$%W$H$7$F(BZRLE(Zlib Run-Length Encoding)$B$,$"$k!#(B +ZRLE$B$O(BZlib$B05=L$5$l$?%G!<%?$rFbJq$9$k!#(B +deflater$B$O%W%j%;%C%H<-=q$r$b$A!"(BZlib$B05=L$5$l$?%G!<%?$O$=$N<-=q$rMQ$$$F2rE`$,9T$o$l$k!#(B +$B<-=q$O$G99?7$5$l$k$3$H$b$"$k$N$G(BZlib$B05=L$5$l$?%G!<%?$r2rE`$9$k0Y$K$O<-=q$N%G!<%?$b$7$F:G8e$K(Bfinish() +$B$r$$$l$k$3$H$G=i$a$+$i%G!<%?$rFI$s$G$$$J$/$F$b2rE`$r9T$($k$h$&$K$7$?!#(B +$B$3$N%(%s%3!<%I$O(BZRLEE$B%(%s%3!<%I$HDj5A$7$?!#(B +$B0lEY(BZRLEE$B%(%s%3!<%I$KJQ49$7$F$7$^$($P!"$=$N%G!<%?$r$=$N$^$^N.$9$@$1$GNI$$!#(B +$B$h$C$FJQ49$O(BTop Proxy$B$,9T$&0l2s$@$1$G$9$`!#(B +$B$?$@$7!"(Bdeflater$B$G$OA02s$^$G$NDL?.$GF@$?<-=q$r%/%j%"$7$J$$$H$$$1$J$$$?$a!"(BClient$BB&$G$OKh2s(B +deflater$B$O?7$7$$$b$N$r;H$&$3$H$K$J$k!#(B +ZRLEE$B$O%/%i%$%"%s%HB&$,BP1~$7$F$$$J$1$l$P$J$i$J$$$H$$$&LdBj$,$"$k!#(B -\section{ZRLEとZRLEEのデータ圧縮率の比較} -ZRLEとZRLEEを用いて通信を行う場合、データ量にどれくらいの差がでたのかを図2に示す。 -図2は1920 * 1080の画面の全描画にかかるデータ量を測った結果を示した図である。ZRLEEの方がデータ量が少なくですんでいる。 -これは、ZRLEのデータの中にはdeflaterが持つ辞書のデータを更新しようとするため -1つのBufferedUpdateのたびに辞書を送信するはずのZRLEEが優っているのは、VNCが +\section{ZRLE$B$H(BZRLEE$B$N%G!<%?05=LN($NHf3S(B} +ZRLE$B$H(BZRLEE$B$rMQ$$$FDL?.$r9T$&>l9g!"%G!<%?NL$K$I$l$/$i$$$N:9$,$G$?$N$+$r?^(B2$B$K<($9!#(B +$B?^(B2$B$O(B1920 * 1080$B$N2hLL$NA4IA2h$K$+$+$k%G!<%?NL$rB,$C$?7k2L$r<($7$??^$G$"$k!#(BZRLEE$B$NJ}$,%G!<%?NL$,>/$J$/$G$9$s$G$$$k!#(B +$B$3$l$O!"(BZRLE$B$N%G!<%?$NCf$K$O(Bdeflater$B$,;}$D<-=q$N%G!<%?$r99?7$7$h$&$H$9$k$?$a(B +1$B$D$N(BBufferedUpdate$B$N$?$S$K<-=q$rAw?.$9$k$O$:$N(BZRLEE$B$,M%$C$F$$$k$N$O!"(BVNC$B$,(B -これは、VNCではZlibで圧縮されたデータを解凍する際に、持っていた解凍の為の辞書がそこまで役に立たないことを示している。 +$B$3$l$O!"(BVNC$B$G$O(BZlib$B$G05=L$5$l$?%G!<%?$r2rE`$9$k:]$K!";}$C$F$$$?2rE`$N0Y$N<-=q$,$=$3$^$GLr$KN)$?$J$$$3$H$r<($7$F$$$k!#(B ZRLE @@ -163,19 +159,19 @@ -\section{参考文献の参照} +\section{$B;29MJ88%$N;2>H(B} -\section{参考文献リスト} +\section{$B;29MJ88%%j%9%H(B} -\section{謝辞} +\section{$B