# HG changeset patch # User one # Date 1234965739 -32400 # Node ID 78a12584e841095d5f3551aeeb95528939337755 # Parent 39af8ab46cbb318700d9e5afe8cb43f9ee538b0b reduce 1st section diff -r 39af8ab46cbb -r 78a12584e841 introduction.tex --- a/introduction.tex Wed Feb 18 22:22:25 2009 +0900 +++ b/introduction.tex Wed Feb 18 23:02:19 2009 +0900 @@ -1,14 +1,14 @@ \section{はじめに} %\pagenumbering{arabic} -CやJavaのプログラムの開発には、IDE(Integrated Developing Environment 統合開発環境)などが使われるようになってきているが、その中心は、依然、プログラムを入力するエディタである。 - -汎用のエディタの開発も依然続いており、Emacs やviなどのUnixベースの古典的なエディタは、もちろん、mi や秀丸などのGUIベースのエディタも広く使われている。 - -これらのエディタで作成された文書やプログラムは、大規模なソフトウェアプロジェクトの一部であることが多く、ソフトウェア開発者同士の協調作業の中心である。 -一つの文書は複数人で作成あるいはチェックされるものであり、一つの文書やプログラムを共有して作業することも必要となる。これらの協調作業をコンピュータによってサポートすることは、CSCW (Computer Supported Corporated Work)と呼ばれている。 - -Extreme Programming\cite{bib:xp}では、ペアプログラミング、リファクタリングなどのプラクティスが重要とされている。ペアプログラミングは、一つの画面を見ながら二人で一つのプログラミングを行なうものであり、技術レベルの同じ、あるいは異なる人で行なうことにより、教育的、あるいは、プログラムの理解を深める手法として有効とされている。 +%CやJavaのプログラムの開発には、IDE(Integrated Developing Environment 統合開発環境)などが使われるようになってきているが、その中心は、依然、プログラムを入力するエディタである。 +% +%汎用のエディタの開発も依然続いており、Emacs やviなどのUnixベースの古典的なエディタは、もちろん、mi や秀丸などのGUIベースのエディタも広く使われている。 +% +%これらのエディタで作成された文書やプログラムは、大規模なソフトウェアプロジェクトの一部であることが多く、ソフトウェア開発者同士の協調作業の中心である。 +%一つの文書は複数人で作成あるいはチェックされるものであり、一つの文書やプログラムを共有して作業することも必要となる。これらの協調作業をコンピュータによってサポートすることは、CSCW (Computer Supported Corporated Work)と呼ばれている。 +% +%Extreme Programming\cite{bib:xp}では、ペアプログラミング、リファクタリングなどのプラクティスが重要とされている。ペアプログラミングは、一つの画面を見ながら二人で一つのプログラミングを行なうものであり、技術レベルの同じ、あるいは異なる人で行なうことにより、教育的、あるいは、プログラムの理解を深める手法として有効とされている。 %我々の研究室で 我々の研究室で提案しているRemote Editing Protocol(REP)は、テキスト編集に特化したアプリケーション間通信プロトコルである。 @@ -84,18 +84,19 @@ 以前のREPは\cite{bib:arakaki3,bib:miyazato, bib:yasumura}エディタ同士を直接接続し、データの相互編集を行っていた。 その場合、エディタ側から相手のIPアドレスやファイル名の入力などの操作を行わなければならなかったため、ユーザ操作が煩雑であった。 -そこでREPでは、エディタの接続や、テキスト編集(Session)を管理するためのSession Managerの導入を行い、ユーザ操作の簡素化を図った\cite{bib:miyagi}。 +そこでREPでは、エディタの接続や、テキスト編集(Session)を管理するためのSession Managerの導入を行った\cite{bib:miyagi}。 しかし、この場合でも、リモートホスト上にある他のエディタとの編集作業を行う際にはそのIPアドレスを入力しなければならない。 +%本研究では、REPの接続プロトコルの改善やマージアルゴリズムの改善を提案し実装を行った。 -本研究では、REPの接続プロトコルの改善やマージアルゴリズムの改善を提案し実装を行った。 -まず、Session Mnager同士の接続を導入した。Session Managerはそれぞれのコンピュータに1つずつ存在し、エディタはデフォルトのSession Managerへの接続操作を行うだけよくなった。リモートホストとの相互の編集を行う際にはSession Manager同士を接続し、Session Managerを介して編集を行うプロトコルに変更し、実装した。 +本研究では、Session Mnager同士の接続を導入した。%リモートホスト同士の接続の際のエディタからのIPアドレスの入力などの煩雑な操作をなくし、ユーザ操作を簡略化した。%さらにこUIの排除により、エディタ側への実装の負荷も軽減した。 +Session Managerはそれぞれのコンピュータに1つずつ存在し、エディタはデフォルトのSession Managerへの接続操作を行うだけよくなった。リモートホストとの相互の編集を行う際にはSession Manager同士を接続し、Session Managerを介して編集を行うプロトコルに変更し、実装した。 REPではエディタ同士の編集の衝突を解決するために、エディタ間でのデータの不整合を解消するマージの導入を行っている。 以前までのマージアルゴリズムは、1対1の通信に対応したアルゴリズムであったため、これを複数人で同時に編集を行うアルゴリズムに変更した。 また、以前のプロトコルではマージの処理をエディタ側で行っていたが、マージの処理はREPのプロトコルにおいて共通の機能であるため、Session Manager側へ実装することが望ましいと考え、Session Managerへ移行した。 -これらのプロトコル改善により、ユーザの入力処理の煩雑さを軽減る。 +これらのプロトコル改善により、ユーザの入力処理の煩雑さを軽減させた。 また、REPを実装する際の負荷を軽減し、実装手法の確立を行い、様々なアプリケーションへの実装を促進させることを狙う。 %マージに関しては、初期の巡回トークンを用いた手法、さらにNOPを挿入する手法、ACKを巡回させる手法の三つの手法を実装した。