# HG changeset patch # User ichikitakahiro # Date 1571303653 -32400 # Node ID bfa17e63ec57d6c51ff00c88a0e795ee8a70efea # Parent 1d716e0dc8de3ca6ca8c995adc357ec08b284fdf add section 1 and 2 diff -r 1d716e0dc8de -r bfa17e63ec57 .DS_Store Binary file .DS_Store has changed diff -r 1d716e0dc8de -r bfa17e63ec57 mid-thesis.pdf Binary file mid-thesis.pdf has changed diff -r 1d716e0dc8de -r bfa17e63ec57 mid-thesis.tex --- a/mid-thesis.tex Thu Oct 17 13:48:32 2019 +0900 +++ b/mid-thesis.tex Thu Oct 17 18:14:13 2019 +0900 @@ -1,5 +1,5 @@ \documentclass[twocolumn,twoside,9.5pt]{jarticle} -\usepackage[dvips]{graphicx} +\usepackage[dvipdfmx]{graphicx} \usepackage{picins} \usepackage{fancyhdr} @@ -18,16 +18,41 @@ \pagestyle{empty} \begin{document} -\title{分散フレームワークChristieを用いた並行同期テキストエディタ} +\title{分散フレームワークChristieを用いたremote editor} \author{165713F 一木貴裕 {}{} 指導教員 : 河野真治} \date{} \maketitle \thispagestyle{fancy} \section{研究背景} - +近年、情報社会の発展にともないプログラミングを始めとしたIT技術に対する注目が集まっている。特定の場所に赴かずとも仕事を行うことができるリモートワークの増加、互いのいる場所を問わず画面越しに対話が行える遠隔会議、小学校教育の一環にプログラミングを取り組むといった動きがその一例と言える。これらの取り組みをより発展させる方法としてremote editorの開発を考案した。\\ + 開発するremote editorは異なるマシン上のtext editorをを接続し、異なるエディタ間でも通信が行えるよう編集コマンドを統一する共通プロトコルを用いる。接続された一つのマシン上のエディタで編集を行うと、編集位置と内容を逐次 共通の編集コマンドに変換する。変換されたコマンドを接続ネットワークに送信することで遠隔でのテキスト編集を行う。\\ + このremote editorは先行研究として参考文献[1](後設定)が存在する。先行研究ではネットワークをリング型で構成しトークンを巡回させていたが、芳しい結果が得られなかった。これらの反省点を踏まえ本研究ではスター型ネットワークを用いることでremote editorの高速化を計る。また当研究室で開発している分散フレームワークChristieを用いることにより、エディタ間の通信の構成を行い、Christieの機能の見直しも計る。\\ + Christieはユーザーが分散プログラムを行う際、並列で動く資源など複雑性を緩和しながらプログラムを書き上げることができる構造となっている。Christieは接続された異なるノード間において互いのキーの差し合いだけで通信を行うことができ、remote editorの通信を手軽に実現することができる。\\ \section{テキストエディタ} +リモートエディタは共通プロトコルが対応するエディタが保持するバッファを開いて編集することができる。ネットワーク上の一つのバッファが編集されると他のバッファにも変更が反映され、お互いのバッファを編集し合うことができる。\\ + +\subsection{共通プロトコルのコマンド} +共通プロトコルの編集コマンドはinsertとdeleteの二種類しか存在しない。この二種のコマンドを用いエディタ間の協調動作を実現する。 +\begin{itemize} + \item insert: + バッファに挿入された内容とオフセット位置をキーとし、他のバッファへ送信し反映させる。 + \item delete: + バッファで削除されたオフセット位置をキーとし、他のバッファへ送信し反映させる。 +\end{itemize} \subsection{編集位置の相違とその解消} +エディタ同士のコマンドの送信はそれぞれが独立して行うため、編集対象の領域にエディタ間で相違が生じる場合がある。図\ref{fig:diff_off}を使用して解説する。 本セクションでは共通プロトコルとeditor間で生じる相違の解消について説明する。\\ + 編集対象は各オフセット番号に同じ値の数字が入っているものとする。EditorAではOffset番号3の3という要素を削除(テキストエディタ上のため削除されたオフセットにはその後ろの要素が繰り上げられる。)、EditorBではOffset番号2にAという要素を挿入するという編集をしたとする。この編集を共通プロトコルとして互いに送信しあった際、本来編集する予定だったOffsetの中身が食い違ってしまい + +\begin{figure}[htpb] + \begin{center} + \scalebox{0.4}{\includegraphics{pic/graph/difference_offset.pdf}} + \end{center} + \caption{通信によるオフセット位置のずれ} + \label{fig:diff_off} +\end{figure} + + \section{巡回トークン} \subsection{スター型ネットワーク} diff -r 1d716e0dc8de -r bfa17e63ec57 pic/.DS_Store Binary file pic/.DS_Store has changed