# HG changeset patch # User ichikitakahiro # Date 1571305503 -32400 # Node ID ebc7b24878ec79def6153e5278d66641388720e8 # Parent bfa17e63ec57d6c51ff00c88a0e795ee8a70efea add subsection of 2 diff -r bfa17e63ec57 -r ebc7b24878ec mid-thesis.pdf Binary file mid-thesis.pdf has changed diff -r bfa17e63ec57 -r ebc7b24878ec mid-thesis.tex --- a/mid-thesis.tex Thu Oct 17 18:14:13 2019 +0900 +++ b/mid-thesis.tex Thu Oct 17 18:45:03 2019 +0900 @@ -27,7 +27,7 @@ \section{研究背景} 近年、情報社会の発展にともないプログラミングを始めとしたIT技術に対する注目が集まっている。特定の場所に赴かずとも仕事を行うことができるリモートワークの増加、互いのいる場所を問わず画面越しに対話が行える遠隔会議、小学校教育の一環にプログラミングを取り組むといった動きがその一例と言える。これらの取り組みをより発展させる方法としてremote editorの開発を考案した。\\  開発するremote editorは異なるマシン上のtext editorをを接続し、異なるエディタ間でも通信が行えるよう編集コマンドを統一する共通プロトコルを用いる。接続された一つのマシン上のエディタで編集を行うと、編集位置と内容を逐次 共通の編集コマンドに変換する。変換されたコマンドを接続ネットワークに送信することで遠隔でのテキスト編集を行う。\\ - このremote editorは先行研究として参考文献[1](後設定)が存在する。先行研究ではネットワークをリング型で構成しトークンを巡回させていたが、芳しい結果が得られなかった。これらの反省点を踏まえ本研究ではスター型ネットワークを用いることでremote editorの高速化を計る。また当研究室で開発している分散フレームワークChristieを用いることにより、エディタ間の通信の構成を行い、Christieの機能の見直しも計る。\\ + このremote editorは先行研究として参考文献[1](後設定)が存在する。先行研究ではネットワークをリング型で構成しトークンを巡回させていたが、芳しい結果が得られなかった。これらの反省点を踏まえ本研究ではスター型ネットワークを用いることでremote editorの高速化を計る。また当研究室で開発している分散フレームワークChristieを用いることにより、エディタ間の通信の構成を行い、Christieの実用性の検討と証明を行う。\\  Christieはユーザーが分散プログラムを行う際、並列で動く資源など複雑性を緩和しながらプログラムを書き上げることができる構造となっている。Christieは接続された異なるノード間において互いのキーの差し合いだけで通信を行うことができ、remote editorの通信を手軽に実現することができる。\\ \section{テキストエディタ} リモートエディタは共通プロトコルが対応するエディタが保持するバッファを開いて編集することができる。ネットワーク上の一つのバッファが編集されると他のバッファにも変更が反映され、お互いのバッファを編集し合うことができる。\\ @@ -42,7 +42,12 @@ \end{itemize} \subsection{編集位置の相違とその解消} エディタ同士のコマンドの送信はそれぞれが独立して行うため、編集対象の領域にエディタ間で相違が生じる場合がある。図\ref{fig:diff_off}を使用して解説する。 本セクションでは共通プロトコルとeditor間で生じる相違の解消について説明する。\\ - 編集対象は各オフセット番号に同じ値の数字が入っているものとする。EditorAではOffset番号3の3という要素を削除(テキストエディタ上のため削除されたオフセットにはその後ろの要素が繰り上げられる。)、EditorBではOffset番号2にAという要素を挿入するという編集をしたとする。この編集を共通プロトコルとして互いに送信しあった際、本来編集する予定だったOffsetの中身が食い違ってしまい + 編集対象は各オフセット番号に同じ値の数字が入っているものとする。EditorAではオフセット番号3の3という要素を削除(テキストエディタ上のため削除されたオフセットにはその後ろの要素が繰り上げられる。)、EditorBではオフセット番号2にAという要素を挿入するという編集をしたとする。この編集を共通プロトコルとして互いに送信しあった際、本来編集する予定だったオフセットの中身が食い違ってしまい最終的に異なった内容となってしまう。これを防ぐためには +\begin{itemize} + \item 送信されたコマンドを巡回トークンを用いて一元化する。 + \item 自身が編集したオフセットと受信したコマンドの編集オフセットの位置を比較し、修正する。 +\end{itemize} +という手順が必要となる。 \begin{figure}[htpb] \begin{center} @@ -52,10 +57,8 @@ \label{fig:diff_off} \end{figure} - - -\section{巡回トークン} -\subsection{スター型ネットワーク} +\subsection{スター型ネットワークによる巡回トークン} +このセクションではスター型で構成されたネットワーク上の巡回トークンについて解説する。\\ \section{分散フレームワークChristie} \subsection{TopologyManager}