Mercurial > hg > RemoteEditor > Documents
diff Merger/remote_editor.html @ 17:fcd3800b4d26
*** empty log message ***
author | kono |
---|---|
date | Tue, 04 Nov 2008 18:36:04 +0900 |
parents | 9e761988e372 |
children |
line wrap: on
line diff
--- a/Merger/remote_editor.html Wed Oct 22 19:47:35 2008 +0900 +++ b/Merger/remote_editor.html Tue Nov 04 18:36:04 2008 +0900 @@ -21,6 +21,11 @@ <p> <center><img src="merge-sequence.jpg"></center> <p> +nop()を付け加えるプロトコルだと、一周で、n^2のコマンドが出てしまう。insert() の後に、insert-ack()を流して、insert-ack()をnop()の代わりに start-merge +のタイミングとする。これで、2 * n の数に減る。 +<p> +<center><img src="ack-based-merge.jpg"></center> +<p> <hr> <h2><a name="content001">Sessionのquit</a></h2> @@ -64,6 +69,28 @@ <hr> <h2><a name="content006">Session Manager にまたがる select</a></h2> <center><img src="inter-sm-select.jpg"></center> +<p> + +<hr> +<h2><a name="content007">Handler</a></h2> +Editor/Forwarder/Dispatcher などが通信を担当するObject となる。これらの判断は、FirstConnector が識別する。handler() と merge() があるが、特に差はない。 +<p> +<center><img src="handler.jpg"></center> +<p> +(1) SessionManager の中で閉じた closed session +<p> +(2) SessionManager にまたがった session は、Dispatcherで、 +<pre> + Editor/Forwarderに分配される。他のSessin Managerへは + Forwarder経由で送られる。 + +</pre> +(3) 一つのEditor connectionに複数のSessionが乗る場合は、 +<pre> + Editor connectionに、DispatcherとForwarderがはさまる。 + この場合は、protocolに、どのeditorから来たかを識別する + field が必要となる。 + <h2><a name="content">Content</h2> <ol> <li><a href="#content000"> EditorとSession Manager の間の非同期Merge </a> @@ -73,6 +100,7 @@ <li><a href="#content004"> Session Manager にまたがるsession</a> <li><a href="#content005"> Session Manager にまたがる join/put</a> <li><a href="#content006"> Session Manager にまたがる select</a> +<li><a href="#content007"> Handler</a> </ol> </body></html>