# HG changeset patch # User ichikitakahiro # Date 1571816116 -32400 # Node ID f0c61d2a3836692c37e544adca9b521dd31badd4 # Parent 0f82d28ad3b3d3cfef653ecb72833405c04817aa last tweak diff -r 0f82d28ad3b3 -r f0c61d2a3836 mid-thesis.pdf Binary file mid-thesis.pdf has changed diff -r 0f82d28ad3b3 -r f0c61d2a3836 mid-thesis.tex --- a/mid-thesis.tex Tue Oct 22 23:06:20 2019 +0900 +++ b/mid-thesis.tex Wed Oct 23 16:35:16 2019 +0900 @@ -54,13 +54,11 @@ \thispagestyle{fancy} \section{複数人によるファイルの同時編集} -情報社会の発展にともないプログラミングを始めとしたIT技術に対する注目が集まっている。特定の場所に赴かずとも仕事を行うことができるリモートワークの増加、互いのいる場所を問わず画面越しに対話が行える遠隔会議、小学校教育の一環にプログラミングを取り組むといった動きがその一例と言える。 - -これらの取り組みをより発展させる方法としてremote editorの開発を行うことにした。プログラミング教育や共同開発に行われる手法としてペアプログラミングが挙げられる。remote editorを実装し、共通のファイルを複数人で同時に操作を可能にすることによりペアプログラミングの効能をより高められると考えた。しかし一人ひとりが使うプログラミングに用いられるエディタは膨大な数が存在する。共同で編集するユーザが環境を合わせる必要なく、自分の慣れ親しんだ環境で編集できるように異なるエディタ間での同期が行えるような機能を実現する。 +情報社会の発展に伴い、特定の場所に赴かずとも仕事を行うことができるリモートワークや、互いのいる場所を問わず画面越しに対話が行える遠隔会議といった取り組みが注目されている。 - 開発するremote editorは異なるマシン上のtext editorを接続し、異なるエディタ間でも通信が行えるよう編集コマンドを統一する共通プロトコルを用いる。接続された一つのマシン上のエディタで編集を行うと、編集位置と内容を逐次、共通の編集コマンドに変換する。変換されたコマンドを接続ネットワークに送信することで遠隔でのテキスト編集を行う。 +これらの取り組みをより発展させる方法としてremote editorの開発を行うことにした。remote editorとは異なるマシン上のtext editorを接続しリアルタイムに同期することでひとつのファイルを複数人で操作するものである。プログラミング教育や共同開発に行われる手法としてペアプログラミングが挙げられる。remote editorを実装し、共通のファイルを複数人で同時に操作を可能にすることによりペアプログラミングの効能をより高められると考えた。しかし一人ひとりが使うプログラミングに用いられるエディタは膨大な数が存在する。共同で編集するユーザが環境を合わせる必要なく、自分の慣れ親しんだ環境で編集できるように異なるエディタ間での同期が行えるような機能を実現する。 - 本研究は先行研究\cite{rep}を参考として進める。先行研究ではネットワークをリング型で構成しトークンを巡回させていたが、ノードごとの整合性の確立が難しい、ネットワーク全体の障害に対する脆弱性の弱さといった問題点が見られた。これらの反省点を踏まえ本研究ではスター型ネットワークを用いることでremote editorの障害耐性を高める。また新しく、当研究室で開発している分散フレームワークChristieを用いることにより、エディタ間の通信の構成を行い、Christieの実用性の検討を行う。 + 先行研究\cite{rep}ではネットワークをリング型で構成しトークンを巡回させていたが、ノードごとの整合性の確立が難しい、ネットワーク全体の障害に対する脆弱性の弱さといった問題点が見られた。これらの反省点を踏まえ本研究ではスター型ネットワークを用いることでremote editorの障害耐性を高める。また新しく、当研究室で開発している分散フレームワークChristieを用いることにより、エディタ間の通信の構成を行い実用性の検討を行う。 \section{remote editor} リモートエディタは共通プロトコルが対応するエディタが保持するバッファを開いて編集することができる。ネットワーク上の一つのバッファが編集されると他のバッファにも変更が反映され、お互いのバッファを編集し合うことができる。また、Commandパターン構造となるようにプログラムを行う。エディタ間通信を行う際にコマンドを保持するという性質上Commandパターンを使う利点が生まれる。 @@ -84,12 +82,12 @@ -\section{スター型ネットワークによる巡回トークン} -スター型で構成されたネットワーク上の巡回トークンについて解説する。 +\section{スター型ネットワーク} +異なるマシン上のeditor同士を接続するスター型ネットワーク解説する。 スター型とはネットワーク接続形態の一つであり、主要となるサーバー(ハブ)から接続された他の全てのノードが直接接続される形のネットワークトポロジーである。一般的なLANはスター型で接続されており、またハブ同士を接続したりtree型にノードを構成するといった自由性もある。 -スター型ネットワークで接続されたリモートエディタにトークンを巡回させコマンドの送信と受信を行う。先行研究のリング型ネットワークと比較したスター型ネットワークの利点として +先行研究のリング型ネットワークと比較したスター型ネットワークの利点として \begin{itemize} \item リング型ではエディタ同士の変更内容の一元化が難しいが、スター型ではサーバーが中心となるため一元性の保持が容易である。