annotate final_pre/final_pre.tex @ 17:55e745a21506 default tip

add abstruct & slide
author ichikitakahiro <e165713@ie.u-ryukyu.ac.jp>
date Sun, 16 Feb 2020 17:54:28 +0900
parents 7293b6481e32
children
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
rev   line source
14
ichikitakahiro <e165713@ie.u-ryukyu.ac.jp>
parents:
diff changeset
1 \documentclass[twocolumn,twoside,9.5pt]{jarticle}
ichikitakahiro <e165713@ie.u-ryukyu.ac.jp>
parents:
diff changeset
2 \usepackage[dvipdfmx]{graphicx}
ichikitakahiro <e165713@ie.u-ryukyu.ac.jp>
parents:
diff changeset
3 \usepackage{picins}
ichikitakahiro <e165713@ie.u-ryukyu.ac.jp>
parents:
diff changeset
4 \usepackage{fancyhdr}
ichikitakahiro <e165713@ie.u-ryukyu.ac.jp>
parents:
diff changeset
5 \usepackage{abstract}
ichikitakahiro <e165713@ie.u-ryukyu.ac.jp>
parents:
diff changeset
6 \usepackage{here}
ichikitakahiro <e165713@ie.u-ryukyu.ac.jp>
parents:
diff changeset
7 \usepackage{url}
ichikitakahiro <e165713@ie.u-ryukyu.ac.jp>
parents:
diff changeset
8 \usepackage{float}
ichikitakahiro <e165713@ie.u-ryukyu.ac.jp>
parents:
diff changeset
9 \usepackage{listings}
ichikitakahiro <e165713@ie.u-ryukyu.ac.jp>
parents:
diff changeset
10 %\pagestyle{fancy}
ichikitakahiro <e165713@ie.u-ryukyu.ac.jp>
parents:
diff changeset
11 \lhead{\parpic{\includegraphics[height=1zw,keepaspectratio,bb=0 0 251 246]{pic/emblem-bitmap.pdf}}琉球大学主催 工学部情報工学科 }
ichikitakahiro <e165713@ie.u-ryukyu.ac.jp>
parents:
diff changeset
12 \rhead{}
ichikitakahiro <e165713@ie.u-ryukyu.ac.jp>
parents:
diff changeset
13 \cfoot{}
ichikitakahiro <e165713@ie.u-ryukyu.ac.jp>
parents:
diff changeset
14
ichikitakahiro <e165713@ie.u-ryukyu.ac.jp>
parents:
diff changeset
15 \setlength{\topmargin}{-1in \addtolength{\topmargin}{15mm}}
ichikitakahiro <e165713@ie.u-ryukyu.ac.jp>
parents:
diff changeset
16 \setlength{\headheight}{0mm}
ichikitakahiro <e165713@ie.u-ryukyu.ac.jp>
parents:
diff changeset
17 \setlength{\headsep}{5mm}
ichikitakahiro <e165713@ie.u-ryukyu.ac.jp>
parents:
diff changeset
18 \setlength{\oddsidemargin}{-1in \addtolength{\oddsidemargin}{11mm}}
ichikitakahiro <e165713@ie.u-ryukyu.ac.jp>
parents:
diff changeset
19 \setlength{\evensidemargin}{-1in \addtolength{\evensidemargin}{21mm}}
ichikitakahiro <e165713@ie.u-ryukyu.ac.jp>
parents:
diff changeset
20 \setlength{\textwidth}{181mm}
ichikitakahiro <e165713@ie.u-ryukyu.ac.jp>
parents:
diff changeset
21 \setlength{\textheight}{261mm}
ichikitakahiro <e165713@ie.u-ryukyu.ac.jp>
parents:
diff changeset
22 \setlength{\footskip}{0mm}
ichikitakahiro <e165713@ie.u-ryukyu.ac.jp>
parents:
diff changeset
23
ichikitakahiro <e165713@ie.u-ryukyu.ac.jp>
parents:
diff changeset
24 \pagestyle{empty}
ichikitakahiro <e165713@ie.u-ryukyu.ac.jp>
parents:
diff changeset
25 \lstset{
ichikitakahiro <e165713@ie.u-ryukyu.ac.jp>
parents:
diff changeset
26 language=C,
ichikitakahiro <e165713@ie.u-ryukyu.ac.jp>
parents:
diff changeset
27 tabsize=2,
ichikitakahiro <e165713@ie.u-ryukyu.ac.jp>
parents:
diff changeset
28 frame=single,
ichikitakahiro <e165713@ie.u-ryukyu.ac.jp>
parents:
diff changeset
29 basicstyle={\ttfamily\footnotesize}, %
ichikitakahiro <e165713@ie.u-ryukyu.ac.jp>
parents:
diff changeset
30 identifierstyle={\footnotesize}, %
ichikitakahiro <e165713@ie.u-ryukyu.ac.jp>
parents:
diff changeset
31 commentstyle={\footnotesize\itshape}, %
ichikitakahiro <e165713@ie.u-ryukyu.ac.jp>
parents:
diff changeset
32 keywordstyle={\footnotesize\bfseries}, %
ichikitakahiro <e165713@ie.u-ryukyu.ac.jp>
parents:
diff changeset
33 ndkeywordstyle={\footnotesize}, %
ichikitakahiro <e165713@ie.u-ryukyu.ac.jp>
parents:
diff changeset
34 stringstyle={\footnotesize\ttfamily},
ichikitakahiro <e165713@ie.u-ryukyu.ac.jp>
parents:
diff changeset
35 breaklines=true,
ichikitakahiro <e165713@ie.u-ryukyu.ac.jp>
parents:
diff changeset
36 captionpos=b,
ichikitakahiro <e165713@ie.u-ryukyu.ac.jp>
parents:
diff changeset
37 columns=[l]{fullflexible}, %
ichikitakahiro <e165713@ie.u-ryukyu.ac.jp>
parents:
diff changeset
38 xrightmargin=0zw, %
ichikitakahiro <e165713@ie.u-ryukyu.ac.jp>
parents:
diff changeset
39 xleftmargin=1zw, %
ichikitakahiro <e165713@ie.u-ryukyu.ac.jp>
parents:
diff changeset
40 aboveskip=1zw,
ichikitakahiro <e165713@ie.u-ryukyu.ac.jp>
parents:
diff changeset
41 numberstyle={\scriptsize}, %
ichikitakahiro <e165713@ie.u-ryukyu.ac.jp>
parents:
diff changeset
42 stepnumber=1,
ichikitakahiro <e165713@ie.u-ryukyu.ac.jp>
parents:
diff changeset
43 numbersep=0.5zw, %
ichikitakahiro <e165713@ie.u-ryukyu.ac.jp>
parents:
diff changeset
44 lineskip=-0.5ex,
ichikitakahiro <e165713@ie.u-ryukyu.ac.jp>
parents:
diff changeset
45 }
ichikitakahiro <e165713@ie.u-ryukyu.ac.jp>
parents:
diff changeset
46
ichikitakahiro <e165713@ie.u-ryukyu.ac.jp>
parents:
diff changeset
47
ichikitakahiro <e165713@ie.u-ryukyu.ac.jp>
parents:
diff changeset
48 \begin{document}
ichikitakahiro <e165713@ie.u-ryukyu.ac.jp>
parents:
diff changeset
49 \title{分散フレームワークChristieを用いたremote editor\\ Remote editor using distributed framework Christie}
ichikitakahiro <e165713@ie.u-ryukyu.ac.jp>
parents:
diff changeset
50
ichikitakahiro <e165713@ie.u-ryukyu.ac.jp>
parents:
diff changeset
51 \author{165713F 一木貴裕 {}{} 指導教員 : 河野真治}
ichikitakahiro <e165713@ie.u-ryukyu.ac.jp>
parents:
diff changeset
52 \date{}
17
55e745a21506 add abstruct & slide
ichikitakahiro <e165713@ie.u-ryukyu.ac.jp>
parents: 16
diff changeset
53 \twocolumn [
14
ichikitakahiro <e165713@ie.u-ryukyu.ac.jp>
parents:
diff changeset
54 \maketitle
17
55e745a21506 add abstruct & slide
ichikitakahiro <e165713@ie.u-ryukyu.ac.jp>
parents: 16
diff changeset
55 \begin{onecolabstract}
55e745a21506 add abstruct & slide
ichikitakahiro <e165713@ie.u-ryukyu.ac.jp>
parents: 16
diff changeset
56 There are many different types of editors used to edit programming.
55e745a21506 add abstruct & slide
ichikitakahiro <e165713@ie.u-ryukyu.ac.jp>
parents: 16
diff changeset
57 Therefore, the editors that people are used to are almost different
55e745a21506 add abstruct & slide
ichikitakahiro <e165713@ie.u-ryukyu.ac.jp>
parents: 16
diff changeset
58 There is problem with pair programming is that users must match each other's editing environment.
55e745a21506 add abstruct & slide
ichikitakahiro <e165713@ie.u-ryukyu.ac.jp>
parents: 16
diff changeset
59 So we will develop a remote editor application that allows users to edit on multiple machines simultaneously, regardless of the type of editor.
55e745a21506 add abstruct & slide
ichikitakahiro <e165713@ie.u-ryukyu.ac.jp>
parents: 16
diff changeset
60 This research uses Christie, a distributed framework developed in our laboratory.
55e745a21506 add abstruct & slide
ichikitakahiro <e165713@ie.u-ryukyu.ac.jp>
parents: 16
diff changeset
61 It can be expected that Christie's Gear programming concept is suitable for making remote editors.
55e745a21506 add abstruct & slide
ichikitakahiro <e165713@ie.u-ryukyu.ac.jp>
parents: 16
diff changeset
62 \end{onecolabstract}]
55e745a21506 add abstruct & slide
ichikitakahiro <e165713@ie.u-ryukyu.ac.jp>
parents: 16
diff changeset
63
14
ichikitakahiro <e165713@ie.u-ryukyu.ac.jp>
parents:
diff changeset
64 \thispagestyle{fancy}
ichikitakahiro <e165713@ie.u-ryukyu.ac.jp>
parents:
diff changeset
65
ichikitakahiro <e165713@ie.u-ryukyu.ac.jp>
parents:
diff changeset
66 \section{複数人によるファイルの同時編集}
ichikitakahiro <e165713@ie.u-ryukyu.ac.jp>
parents:
diff changeset
67 ペアプログラミングを行う際に有効的手法の一つとして, 同じファイルを複数人が場所を問わずに同時編集することができるリモートエディタをあげられる.
ichikitakahiro <e165713@ie.u-ryukyu.ac.jp>
parents:
diff changeset
68
ichikitakahiro <e165713@ie.u-ryukyu.ac.jp>
parents:
diff changeset
69 複数人の編集がリアルタイムに同期されるリモートエディタには, 既存の物としてVisual Studio Code(以下VScode)のremote session がある.
ichikitakahiro <e165713@ie.u-ryukyu.ac.jp>
parents:
diff changeset
70 しかし, 編集のセッションに参加するユーザ全員がVSCodeを使うことになり, またVSCodeの環境を導入する必要がある.
ichikitakahiro <e165713@ie.u-ryukyu.ac.jp>
parents:
diff changeset
71
15
c7ab31269230 update some file
ichikitakahiro <e165713@ie.u-ryukyu.ac.jp>
parents: 14
diff changeset
72 セッションに参加するユーザー全員が各々好きなエディタを使用することができるリモートエディタアプリケーションを作成したい.
14
ichikitakahiro <e165713@ie.u-ryukyu.ac.jp>
parents:
diff changeset
73 アプリケーションの形に作成することにより, 開発のための環境に手間を使うことなく, ユーザーが慣れ親しんだエディタを利用できるようしたい.
ichikitakahiro <e165713@ie.u-ryukyu.ac.jp>
parents:
diff changeset
74
ichikitakahiro <e165713@ie.u-ryukyu.ac.jp>
parents:
diff changeset
75 先行研究ではネットワークをリング型で構成しトークンを巡回させていたが, ノードごとの整合性の確立が難しい, ネットワーク全体の障害に対する脆弱性の弱さといった問題点が見られた.
ichikitakahiro <e165713@ie.u-ryukyu.ac.jp>
parents:
diff changeset
76 これらの反省点を踏まえ本研究では スター型ネットワークを用いることで remote editor の障害耐性を高める.
ichikitakahiro <e165713@ie.u-ryukyu.ac.jp>
parents:
diff changeset
77
ichikitakahiro <e165713@ie.u-ryukyu.ac.jp>
parents:
diff changeset
78 また新しく, 本研究室で開発している分散フレームワークChristieを使用することにより簡潔な実装と, Christie自体の性能と信頼性の向上も目指す.
ichikitakahiro <e165713@ie.u-ryukyu.ac.jp>
parents:
diff changeset
79
ichikitakahiro <e165713@ie.u-ryukyu.ac.jp>
parents:
diff changeset
80 \section{remote editor}
ichikitakahiro <e165713@ie.u-ryukyu.ac.jp>
parents:
diff changeset
81 リモートエディタは共通プロトコルが対応するエディタが保持するバッファを開いて編集することができる.
ichikitakahiro <e165713@ie.u-ryukyu.ac.jp>
parents:
diff changeset
82 ネットワーク上の一つのバッファが編集されると他のバッファにも変更が反映され, お互いのバッファを編集し合うことができる.
ichikitakahiro <e165713@ie.u-ryukyu.ac.jp>
parents:
diff changeset
83 バッファの変更のやり取りでは, 互いのバッファに起こった変更を一つの命令として他のノードへ送信することで実現する.
ichikitakahiro <e165713@ie.u-ryukyu.ac.jp>
parents:
diff changeset
84
ichikitakahiro <e165713@ie.u-ryukyu.ac.jp>
parents:
diff changeset
85 \section{コマンドパターンでの実装}
ichikitakahiro <e165713@ie.u-ryukyu.ac.jp>
parents:
diff changeset
86 命令はコマンドパターンを用いて実装した.
ichikitakahiro <e165713@ie.u-ryukyu.ac.jp>
parents:
diff changeset
87 コマンドパターンとは命令を一つのオブジェクトとして扱うものであり, 命令に必要な情報が含まれたクラスのインスタンスを作成することで命令を作成する.
ichikitakahiro <e165713@ie.u-ryukyu.ac.jp>
parents:
diff changeset
88
ichikitakahiro <e165713@ie.u-ryukyu.ac.jp>
parents:
diff changeset
89 \begin{itemize}
ichikitakahiro <e165713@ie.u-ryukyu.ac.jp>
parents:
diff changeset
90 \item インスタンスを利用して命令を作成するため, 後述のChristieのGearの概念と相性が良い.
ichikitakahiro <e165713@ie.u-ryukyu.ac.jp>
parents:
diff changeset
91 \item 命令に必要な内容をまとめて送信するため, 相違の発生を防ぐことができる.
ichikitakahiro <e165713@ie.u-ryukyu.ac.jp>
parents:
diff changeset
92 \item 命令の管理が行いやすい, 行列に並ばせ命令の順番を管理したり, 命令の際, 実行, 取り消しが容易になる.
ichikitakahiro <e165713@ie.u-ryukyu.ac.jp>
parents:
diff changeset
93 \end{itemize}
ichikitakahiro <e165713@ie.u-ryukyu.ac.jp>
parents:
diff changeset
94 と言った利点がある.
ichikitakahiro <e165713@ie.u-ryukyu.ac.jp>
parents:
diff changeset
95 クラスのインスタンスを作成し, msgpackパッケージを用いてシリアライズしてから送受信する。
ichikitakahiro <e165713@ie.u-ryukyu.ac.jp>
parents:
diff changeset
96
ichikitakahiro <e165713@ie.u-ryukyu.ac.jp>
parents:
diff changeset
97 \section{msgpackの対応修正}
ichikitakahiro <e165713@ie.u-ryukyu.ac.jp>
parents:
diff changeset
98 msgpackを使用し, コマンドを送信しようとしたところエラーの発生が見られた.
ichikitakahiro <e165713@ie.u-ryukyu.ac.jp>
parents:
diff changeset
99 原因はmsgpackのバージョンの進行によりシリアライズ機能が削除されたことによることが判明した.
ichikitakahiro <e165713@ie.u-ryukyu.ac.jp>
parents:
diff changeset
100
16
7293b6481e32 add slide & tweak
ichikitakahiro <e165713@ie.u-ryukyu.ac.jp>
parents: 15
diff changeset
101 以上の修正のためjavassistのバージョンを上げる, シリアライズするクラスに対してフィールドをpublicにするといった処理を行うことで対処した.
14
ichikitakahiro <e165713@ie.u-ryukyu.ac.jp>
parents:
diff changeset
102 msgpackはバージョンの更新が途絶えているため, 最新のjavaで開発を進めるためにはmsgpackに対応する機能を自身で開発する必要が生じた.
ichikitakahiro <e165713@ie.u-ryukyu.ac.jp>
parents:
diff changeset
103
ichikitakahiro <e165713@ie.u-ryukyu.ac.jp>
parents:
diff changeset
104 \section{編集位置の相違とその解消}
ichikitakahiro <e165713@ie.u-ryukyu.ac.jp>
parents:
diff changeset
105 エディタ間の通信で生じる相違について説明する.
ichikitakahiro <e165713@ie.u-ryukyu.ac.jp>
parents:
diff changeset
106 エディタ同士のコマンドの送信はそれぞれが独立して行うため、編集対象の領域にエディタ間で相違が生じる場合がある。
ichikitakahiro <e165713@ie.u-ryukyu.ac.jp>
parents:
diff changeset
107 すれ違いが発生したか否かを検知するために、ノード同士が送信し合うコマンドにそれぞれ番号を割り振る方法を考案した.
ichikitakahiro <e165713@ie.u-ryukyu.ac.jp>
parents:
diff changeset
108 図\ref{fig:Fix}はコマンド番号を用いてバッファの相違を解決する過程の図である.
ichikitakahiro <e165713@ie.u-ryukyu.ac.jp>
parents:
diff changeset
109
ichikitakahiro <e165713@ie.u-ryukyu.ac.jp>
parents:
diff changeset
110 コマンドとコマンド番号について以下の特性が存在する.
ichikitakahiro <e165713@ie.u-ryukyu.ac.jp>
parents:
diff changeset
111 \begin{itemize}
ichikitakahiro <e165713@ie.u-ryukyu.ac.jp>
parents:
diff changeset
112 \item 各ノードは最後に実行した数値を変数(図ではserverがcNum, nodeがnodeCNum) に保持している.
ichikitakahiro <e165713@ie.u-ryukyu.ac.jp>
parents:
diff changeset
113 \item いずれかのノードがコマンドを発行したら, そのコマンドのコマンド番号は前に実行したコマンドの番号+1となる. そしてそれは送信されてきたコマンドか自分が発行したコマンドであるかは問わない.
ichikitakahiro <e165713@ie.u-ryukyu.ac.jp>
parents:
diff changeset
114 \item 送信されてきたコマンドのコマンド番号が自身が保持しているコマンド番号+1でなければ、自身が先に発進したコマンドとすれ違いが発生していることが判明できる. (保持コマンド番号より同値以下の場合)
ichikitakahiro <e165713@ie.u-ryukyu.ac.jp>
parents:
diff changeset
115 \end{itemize}
ichikitakahiro <e165713@ie.u-ryukyu.ac.jp>
parents:
diff changeset
116 以上の仕組みで相違の解消を図る.
ichikitakahiro <e165713@ie.u-ryukyu.ac.jp>
parents:
diff changeset
117
ichikitakahiro <e165713@ie.u-ryukyu.ac.jp>
parents:
diff changeset
118 \begin{figure}[htpb]
ichikitakahiro <e165713@ie.u-ryukyu.ac.jp>
parents:
diff changeset
119 \begin{center}
ichikitakahiro <e165713@ie.u-ryukyu.ac.jp>
parents:
diff changeset
120 \scalebox{0.4}{\includegraphics{fig/FIxCommand.pdf}}
ichikitakahiro <e165713@ie.u-ryukyu.ac.jp>
parents:
diff changeset
121 \end{center}
ichikitakahiro <e165713@ie.u-ryukyu.ac.jp>
parents:
diff changeset
122 \caption{コマンド番号による編集相違の解消}
ichikitakahiro <e165713@ie.u-ryukyu.ac.jp>
parents:
diff changeset
123 \label{fig:Fix}
ichikitakahiro <e165713@ie.u-ryukyu.ac.jp>
parents:
diff changeset
124 \end{figure}
ichikitakahiro <e165713@ie.u-ryukyu.ac.jp>
parents:
diff changeset
125
ichikitakahiro <e165713@ie.u-ryukyu.ac.jp>
parents:
diff changeset
126 \section{スター型ネットワーク}
ichikitakahiro <e165713@ie.u-ryukyu.ac.jp>
parents:
diff changeset
127 リモートエディタのセッションに参加するノード(ユーザ)はスター型で接続を行い, リモートエディタの通信部分の障害に対する耐性を保障する.
ichikitakahiro <e165713@ie.u-ryukyu.ac.jp>
parents:
diff changeset
128 スター型とは中心となるノードから放射状に他のノードにそれぞれ一対一の接続を行う接続であり, リング型と比較した際のスター型の利点として,
ichikitakahiro <e165713@ie.u-ryukyu.ac.jp>
parents:
diff changeset
129
ichikitakahiro <e165713@ie.u-ryukyu.ac.jp>
parents:
diff changeset
130 \begin{itemize}
ichikitakahiro <e165713@ie.u-ryukyu.ac.jp>
parents:
diff changeset
131 \item ノードの中心(サーバー)が正しいファイル状況を保持するため,整合性を保つことが容易である.
ichikitakahiro <e165713@ie.u-ryukyu.ac.jp>
parents:
diff changeset
132 \item どこかのノードの接続が切断されても, 障害の範囲をそのノードのみに抑えることができる.
ichikitakahiro <e165713@ie.u-ryukyu.ac.jp>
parents:
diff changeset
133 \item 新しいノードが参加した, もしくはノードの再接続の際にはサーバーのファイル状況を参照するのみで参加, 復帰ができる.
ichikitakahiro <e165713@ie.u-ryukyu.ac.jp>
parents:
diff changeset
134 \end{itemize}
ichikitakahiro <e165713@ie.u-ryukyu.ac.jp>
parents:
diff changeset
135 が挙げられる.
ichikitakahiro <e165713@ie.u-ryukyu.ac.jp>
parents:
diff changeset
136
ichikitakahiro <e165713@ie.u-ryukyu.ac.jp>
parents:
diff changeset
137 \section{分散フレームワークChristie}
ichikitakahiro <e165713@ie.u-ryukyu.ac.jp>
parents:
diff changeset
138 ChristieはJava言語で構成された本研究室独自の分散フレームワークである.
ichikitakahiro <e165713@ie.u-ryukyu.ac.jp>
parents:
diff changeset
139 同じく本研究室で開発を行っているGearsOSのファイルシステムに組み込む予定があるため, GearsOSを構成している本研究室の独自の言語Continuation based C (以下CbC言語)とにた, Gearというプログラム概念が存在する.
ichikitakahiro <e165713@ie.u-ryukyu.ac.jp>
parents:
diff changeset
140
ichikitakahiro <e165713@ie.u-ryukyu.ac.jp>
parents:
diff changeset
141 \begin{itemize}
ichikitakahiro <e165713@ie.u-ryukyu.ac.jp>
parents:
diff changeset
142 \item CodeGear(以下 CG)
ichikitakahiro <e165713@ie.u-ryukyu.ac.jp>
parents:
diff changeset
143 \item DataGear(以下 DG)
ichikitakahiro <e165713@ie.u-ryukyu.ac.jp>
parents:
diff changeset
144 \item CodeGearManager(以下 CGM)
ichikitakahiro <e165713@ie.u-ryukyu.ac.jp>
parents:
diff changeset
145 \item DataGearManager(以下 DGM)
ichikitakahiro <e165713@ie.u-ryukyu.ac.jp>
parents:
diff changeset
146 \end{itemize}
ichikitakahiro <e165713@ie.u-ryukyu.ac.jp>
parents:
diff changeset
147
ichikitakahiro <e165713@ie.u-ryukyu.ac.jp>
parents:
diff changeset
148 CodeGearはクラスやスレッドに相当する. DataGear は変数データに相当し, javaのアノテーション機能を用いて記述する.
ichikitakahiro <e165713@ie.u-ryukyu.ac.jp>
parents:
diff changeset
149 CG内に記述したKeyに全てのDGが揃った際に初めてそのCGが動作するという仕組みになっている. CodeGearManager はいわゆるノードに相当し, CG, DG ,DGM を管理する.
ichikitakahiro <e165713@ie.u-ryukyu.ac.jp>
parents:
diff changeset
150 DataGearManager は DG を管理するもので, put という操作により DG , つまり変数データを格納することができる.
ichikitakahiro <e165713@ie.u-ryukyu.ac.jp>
parents:
diff changeset
151
ichikitakahiro <e165713@ie.u-ryukyu.ac.jp>
parents:
diff changeset
152 DGM の put 操作を行う際には Local と Remote と 2 つのどちらかを選び, 変数の key とデータを引数に書く.
ichikitakahiro <e165713@ie.u-ryukyu.ac.jp>
parents:
diff changeset
153 Local であれば, Local の CGM が管理している DGM に対し, DG を格納していく.
ichikitakahiro <e165713@ie.u-ryukyu.ac.jp>
parents:
diff changeset
154 Remote であれば接続した Remote 先の CGM の DGM に DG を格納できる. put 操作を行ったあとは, 対象の DGM の中に queue として保管される.
ichikitakahiro <e165713@ie.u-ryukyu.ac.jp>
parents:
diff changeset
155 DG のアノテーションには Take, Peek, TakeFrom, PeekFrom の 4 つがあり, TakeはDGが一度読み込まれると中身が削除されるが, Peekは削除されない.
ichikitakahiro <e165713@ie.u-ryukyu.ac.jp>
parents:
diff changeset
156 Fromをつけるとリモート先を指定してDGを得ることができる.
ichikitakahiro <e165713@ie.u-ryukyu.ac.jp>
parents:
diff changeset
157
ichikitakahiro <e165713@ie.u-ryukyu.ac.jp>
parents:
diff changeset
158 \section{今後の課題}
ichikitakahiro <e165713@ie.u-ryukyu.ac.jp>
parents:
diff changeset
159 本研究ではリモートエディタを制作する上で必要となる構造と, 土台となる分散フレームワークChristieについて述べた.
ichikitakahiro <e165713@ie.u-ryukyu.ac.jp>
parents:
diff changeset
160
ichikitakahiro <e165713@ie.u-ryukyu.ac.jp>
parents:
diff changeset
161 現時点ではリモートエディタのコマンドを送り合う上での基盤となるコマンドパターンでの送受信を実装し, 命令コマンドのやり取りにて問題となってくる編集の相違の発生をテスト作成することまでができた.
ichikitakahiro <e165713@ie.u-ryukyu.ac.jp>
parents:
diff changeset
162 リモートエディタを動かすまでの最低限の構造制作までは終わっていない.
ichikitakahiro <e165713@ie.u-ryukyu.ac.jp>
parents:
diff changeset
163 現時点から最低限のセッションができるようになるためには, 複数人が参加できるStar型Topologyを構成すると編集ファイルの共有方法を作成しなければならない.
ichikitakahiro <e165713@ie.u-ryukyu.ac.jp>
parents:
diff changeset
164 加えて, 本研究の制作物が実用的になるには既存のエディタを動作できるようになることは絶対条件である.
ichikitakahiro <e165713@ie.u-ryukyu.ac.jp>
parents:
diff changeset
165 これらを踏まえて, 今後も制作を続け, 本研究で述べた構成が実際に実用性に応えられるか, ユーザに苦痛なく使ってもらえる処理速度を得られるか検証していきたい.
ichikitakahiro <e165713@ie.u-ryukyu.ac.jp>
parents:
diff changeset
166
ichikitakahiro <e165713@ie.u-ryukyu.ac.jp>
parents:
diff changeset
167 \nocite{*}
ichikitakahiro <e165713@ie.u-ryukyu.ac.jp>
parents:
diff changeset
168 \bibliographystyle{junsrt}
ichikitakahiro <e165713@ie.u-ryukyu.ac.jp>
parents:
diff changeset
169 \bibliography{reference}
ichikitakahiro <e165713@ie.u-ryukyu.ac.jp>
parents:
diff changeset
170 \end{document}