Mercurial > hg > RemoteEditor > Documents
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
--- 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 が必要となる。 + + +