changeset 17:fcd3800b4d26

*** empty log message ***
author kono
date Tue, 04 Nov 2008 18:36:04 +0900
parents 542e85e0d142
children 61a585f09318
files Merger/ack-based-merge.graffle Merger/ack-based-merge.jpg Merger/handler.graffle Merger/handler.jpg Merger/remote_editor.html Merger/remote_editor.ind
diffstat 6 files changed, 57 insertions(+), 0 deletions(-) [+]
line wrap: on
line diff
Binary file Merger/ack-based-merge.graffle has changed
Binary file Merger/ack-based-merge.jpg has changed
Binary file Merger/handler.graffle has changed
Binary file Merger/handler.jpg has changed
--- 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>
--- a/Merger/remote_editor.ind	Wed Oct 22 19:47:35 2008 +0900
+++ b/Merger/remote_editor.ind	Tue Nov 04 18:36:04 2008 +0900
@@ -18,6 +18,13 @@
 
 <center><img src="merge-sequence.jpg"></center>
 
+nop()を付け加えるプロトコルだと、一周で、n^2の
+コマンドが出てしまう。insert() の後に、insert-ack()
+を流して、insert-ack()をnop()の代わりに start-merge
+のタイミングとする。これで、2 * n の数に減る。
+
+<center><img src="ack-based-merge.jpg"></center>
+
 --Sessionのquit
 
 まず、quitを廻して、editorからの入力を止める。
@@ -62,3 +69,25 @@
 --Session Manager にまたがる select
 
 <center><img src="inter-sm-select.jpg"></center>
+
+--Handler
+
+Editor/Forwarder/Dispatcher などが通信を担当する
+Object となる。これらの判断は、FirstConnector が
+識別する。handler() と merge() があるが、特に差はない。
+
+<center><img src="handler.jpg"></center>
+
+(1) SessionManager の中で閉じた closed session
+
+(2) SessionManager にまたがった session は、Dispatcherで、
+    Editor/Forwarderに分配される。他のSessin Managerへは
+    Forwarder経由で送られる。
+
+(3) 一つのEditor connectionに複数のSessionが乗る場合は、
+    Editor connectionに、DispatcherとForwarderがはさまる。
+    この場合は、protocolに、どのeditorから来たかを識別する
+    field が必要となる。
+
+
+