annotate slide/thesis.md @ 16:7293b6481e32

add slide & tweak
author ichikitakahiro <e165713@ie.u-ryukyu.ac.jp>
date Sat, 15 Feb 2020 21:22:43 +0900
parents
children 55e745a21506
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
rev   line source
16
7293b6481e32 add slide & tweak
ichikitakahiro <e165713@ie.u-ryukyu.ac.jp>
parents:
diff changeset
1 title: 分散フレームワークChristieを用いたリモートエディタの実装
7293b6481e32 add slide & tweak
ichikitakahiro <e165713@ie.u-ryukyu.ac.jp>
parents:
diff changeset
2 author: Takahiro Ikki, Shinji Kono
7293b6481e32 add slide & tweak
ichikitakahiro <e165713@ie.u-ryukyu.ac.jp>
parents:
diff changeset
3 profile: 琉球大学
7293b6481e32 add slide & tweak
ichikitakahiro <e165713@ie.u-ryukyu.ac.jp>
parents:
diff changeset
4 lang: Japanese
7293b6481e32 add slide & tweak
ichikitakahiro <e165713@ie.u-ryukyu.ac.jp>
parents:
diff changeset
5 code-engine: coderay
7293b6481e32 add slide & tweak
ichikitakahiro <e165713@ie.u-ryukyu.ac.jp>
parents:
diff changeset
6
7293b6481e32 add slide & tweak
ichikitakahiro <e165713@ie.u-ryukyu.ac.jp>
parents:
diff changeset
7 ## 研究目的, 背景
7293b6481e32 add slide & tweak
ichikitakahiro <e165713@ie.u-ryukyu.ac.jp>
parents:
diff changeset
8 - ペアプログラミングなどでは同時に複数人が一つのファイルを編集することができるリモートエディタが有効である。
7293b6481e32 add slide & tweak
ichikitakahiro <e165713@ie.u-ryukyu.ac.jp>
parents:
diff changeset
9 - 既存のリモートエディタアプリケーションとしてVisual Stdio Codeがあげられる。
7293b6481e32 add slide & tweak
ichikitakahiro <e165713@ie.u-ryukyu.ac.jp>
parents:
diff changeset
10 - しかし、セッションに参加する全員がVSCodeの環境を持っていなければならず、不便である。
7293b6481e32 add slide & tweak
ichikitakahiro <e165713@ie.u-ryukyu.ac.jp>
parents:
diff changeset
11 - 編集に参加するユーザーがそれぞれ好きなエディタが使えるアプリケーションを作成する。
7293b6481e32 add slide & tweak
ichikitakahiro <e165713@ie.u-ryukyu.ac.jp>
parents:
diff changeset
12 - 本研究室で開発している分散フレームワークChristieを使い、簡潔な実装を目指す。
7293b6481e32 add slide & tweak
ichikitakahiro <e165713@ie.u-ryukyu.ac.jp>
parents:
diff changeset
13
7293b6481e32 add slide & tweak
ichikitakahiro <e165713@ie.u-ryukyu.ac.jp>
parents:
diff changeset
14
7293b6481e32 add slide & tweak
ichikitakahiro <e165713@ie.u-ryukyu.ac.jp>
parents:
diff changeset
15 ## 発表の流れ
7293b6481e32 add slide & tweak
ichikitakahiro <e165713@ie.u-ryukyu.ac.jp>
parents:
diff changeset
16 - リモートエディタの機能と開発手順の解説
7293b6481e32 add slide & tweak
ichikitakahiro <e165713@ie.u-ryukyu.ac.jp>
parents:
diff changeset
17 - スター型接続によるネットワーク通信
7293b6481e32 add slide & tweak
ichikitakahiro <e165713@ie.u-ryukyu.ac.jp>
parents:
diff changeset
18 - Christieの解説
7293b6481e32 add slide & tweak
ichikitakahiro <e165713@ie.u-ryukyu.ac.jp>
parents:
diff changeset
19 - Gearの概念
7293b6481e32 add slide & tweak
ichikitakahiro <e165713@ie.u-ryukyu.ac.jp>
parents:
diff changeset
20 - アノテーション
7293b6481e32 add slide & tweak
ichikitakahiro <e165713@ie.u-ryukyu.ac.jp>
parents:
diff changeset
21 - TopologyManager
7293b6481e32 add slide & tweak
ichikitakahiro <e165713@ie.u-ryukyu.ac.jp>
parents:
diff changeset
22 - 今後の課題とまとめ
7293b6481e32 add slide & tweak
ichikitakahiro <e165713@ie.u-ryukyu.ac.jp>
parents:
diff changeset
23
7293b6481e32 add slide & tweak
ichikitakahiro <e165713@ie.u-ryukyu.ac.jp>
parents:
diff changeset
24
7293b6481e32 add slide & tweak
ichikitakahiro <e165713@ie.u-ryukyu.ac.jp>
parents:
diff changeset
25 ## Christie
7293b6481e32 add slide & tweak
ichikitakahiro <e165713@ie.u-ryukyu.ac.jp>
parents:
diff changeset
26 - Christieは当研究室で開発している、信頼性を重視した分散フレームワークである.
7293b6481e32 add slide & tweak
ichikitakahiro <e165713@ie.u-ryukyu.ac.jp>
parents:
diff changeset
27 - 現在はjava上で開発されているが、別言語(CbC)で構成されたGearsOSに組み込む予定があるため,それに向けて書き換え可能な構成となっている。
7293b6481e32 add slide & tweak
ichikitakahiro <e165713@ie.u-ryukyu.ac.jp>
parents:
diff changeset
28 - ChristieではデータをGearという単位で分割して記述を行う。
7293b6481e32 add slide & tweak
ichikitakahiro <e165713@ie.u-ryukyu.ac.jp>
parents:
diff changeset
29 - CodeGear(以下CG)
7293b6481e32 add slide & tweak
ichikitakahiro <e165713@ie.u-ryukyu.ac.jp>
parents:
diff changeset
30 - スレッドやクラスに相当し、javaの継承を用いて記述する。keyに全てのDGが格納された際に動作する。
7293b6481e32 add slide & tweak
ichikitakahiro <e165713@ie.u-ryukyu.ac.jp>
parents:
diff changeset
31 - DataGear(以下DG)
7293b6481e32 add slide & tweak
ichikitakahiro <e165713@ie.u-ryukyu.ac.jp>
parents:
diff changeset
32 - DGは変数に相当し、CG内でアノテーションを用いてデータを取り出せる。
7293b6481e32 add slide & tweak
ichikitakahiro <e165713@ie.u-ryukyu.ac.jp>
parents:
diff changeset
33 - CodeGearManager(以下CGM)
7293b6481e32 add slide & tweak
ichikitakahiro <e165713@ie.u-ryukyu.ac.jp>
parents:
diff changeset
34 - ノードに相当し, DG, CG, DataGearManagerの管理をする.
7293b6481e32 add slide & tweak
ichikitakahiro <e165713@ie.u-ryukyu.ac.jp>
parents:
diff changeset
35 - DataGearManager(以下DGM)
7293b6481e32 add slide & tweak
ichikitakahiro <e165713@ie.u-ryukyu.ac.jp>
parents:
diff changeset
36 - DGを管理するものであり, putという操作にて変数(DG)をkeyに格納する。
7293b6481e32 add slide & tweak
ichikitakahiro <e165713@ie.u-ryukyu.ac.jp>
parents:
diff changeset
37
7293b6481e32 add slide & tweak
ichikitakahiro <e165713@ie.u-ryukyu.ac.jp>
parents:
diff changeset
38
7293b6481e32 add slide & tweak
ichikitakahiro <e165713@ie.u-ryukyu.ac.jp>
parents:
diff changeset
39 ## Christieのコード例
7293b6481e32 add slide & tweak
ichikitakahiro <e165713@ie.u-ryukyu.ac.jp>
parents:
diff changeset
40 ```code
7293b6481e32 add slide & tweak
ichikitakahiro <e165713@ie.u-ryukyu.ac.jp>
parents:
diff changeset
41 package christie.example.HelloWorld;
7293b6481e32 add slide & tweak
ichikitakahiro <e165713@ie.u-ryukyu.ac.jp>
parents:
diff changeset
42
7293b6481e32 add slide & tweak
ichikitakahiro <e165713@ie.u-ryukyu.ac.jp>
parents:
diff changeset
43 import christie.codegear.CodeGearManager;
7293b6481e32 add slide & tweak
ichikitakahiro <e165713@ie.u-ryukyu.ac.jp>
parents:
diff changeset
44 import christie.codegear.StartCodeGear;
7293b6481e32 add slide & tweak
ichikitakahiro <e165713@ie.u-ryukyu.ac.jp>
parents:
diff changeset
45
7293b6481e32 add slide & tweak
ichikitakahiro <e165713@ie.u-ryukyu.ac.jp>
parents:
diff changeset
46 public class StartHelloWorld extends StartCodeGear {
7293b6481e32 add slide & tweak
ichikitakahiro <e165713@ie.u-ryukyu.ac.jp>
parents:
diff changeset
47
7293b6481e32 add slide & tweak
ichikitakahiro <e165713@ie.u-ryukyu.ac.jp>
parents:
diff changeset
48 public StartHelloWorld(CodeGearManager cgm) {
7293b6481e32 add slide & tweak
ichikitakahiro <e165713@ie.u-ryukyu.ac.jp>
parents:
diff changeset
49 super(cgm);
7293b6481e32 add slide & tweak
ichikitakahiro <e165713@ie.u-ryukyu.ac.jp>
parents:
diff changeset
50 }
7293b6481e32 add slide & tweak
ichikitakahiro <e165713@ie.u-ryukyu.ac.jp>
parents:
diff changeset
51
7293b6481e32 add slide & tweak
ichikitakahiro <e165713@ie.u-ryukyu.ac.jp>
parents:
diff changeset
52 public static void main(String[] args){
7293b6481e32 add slide & tweak
ichikitakahiro <e165713@ie.u-ryukyu.ac.jp>
parents:
diff changeset
53 CodeGearManager cgm = createCGM(10000); #ポート番号を指定してCGMを立ち上げ。
7293b6481e32 add slide & tweak
ichikitakahiro <e165713@ie.u-ryukyu.ac.jp>
parents:
diff changeset
54 cgm.setup(new HelloWorldCodeGear()); #立ち上げたCGMへCGを待ちあわせる。
7293b6481e32 add slide & tweak
ichikitakahiro <e165713@ie.u-ryukyu.ac.jp>
parents:
diff changeset
55 cgm.getLocalDGM().put("helloWorld","hello"); #keyname "helloWorld"に文字列helloをput
7293b6481e32 add slide & tweak
ichikitakahiro <e165713@ie.u-ryukyu.ac.jp>
parents:
diff changeset
56 cgm.getLocalDGM().put("helloWorld","world");
7293b6481e32 add slide & tweak
ichikitakahiro <e165713@ie.u-ryukyu.ac.jp>
parents:
diff changeset
57 }
7293b6481e32 add slide & tweak
ichikitakahiro <e165713@ie.u-ryukyu.ac.jp>
parents:
diff changeset
58 }
7293b6481e32 add slide & tweak
ichikitakahiro <e165713@ie.u-ryukyu.ac.jp>
parents:
diff changeset
59
7293b6481e32 add slide & tweak
ichikitakahiro <e165713@ie.u-ryukyu.ac.jp>
parents:
diff changeset
60 ```
7293b6481e32 add slide & tweak
ichikitakahiro <e165713@ie.u-ryukyu.ac.jp>
parents:
diff changeset
61 ```
7293b6481e32 add slide & tweak
ichikitakahiro <e165713@ie.u-ryukyu.ac.jp>
parents:
diff changeset
62 ChristieDaemon.listen: bind to /0:0:0:0:0:0:0:0:10000
7293b6481e32 add slide & tweak
ichikitakahiro <e165713@ie.u-ryukyu.ac.jp>
parents:
diff changeset
63 hello world
7293b6481e32 add slide & tweak
ichikitakahiro <e165713@ie.u-ryukyu.ac.jp>
parents:
diff changeset
64 ```
7293b6481e32 add slide & tweak
ichikitakahiro <e165713@ie.u-ryukyu.ac.jp>
parents:
diff changeset
65 <!--
7293b6481e32 add slide & tweak
ichikitakahiro <e165713@ie.u-ryukyu.ac.jp>
parents:
diff changeset
66 - 立ち上げ後はManager名を指定してDataSegmentAPI用いてDSのやり取りを行うため、プログラマはManager名を意識することでLocalへの操作もRemoteへの操作も同様に扱える。
7293b6481e32 add slide & tweak
ichikitakahiro <e165713@ie.u-ryukyu.ac.jp>
parents:
diff changeset
67 -->
7293b6481e32 add slide & tweak
ichikitakahiro <e165713@ie.u-ryukyu.ac.jp>
parents:
diff changeset
68
7293b6481e32 add slide & tweak
ichikitakahiro <e165713@ie.u-ryukyu.ac.jp>
parents:
diff changeset
69 <!--
7293b6481e32 add slide & tweak
ichikitakahiro <e165713@ie.u-ryukyu.ac.jp>
parents:
diff changeset
70
7293b6481e32 add slide & tweak
ichikitakahiro <e165713@ie.u-ryukyu.ac.jp>
parents:
diff changeset
71 ## Christieの言語概念
7293b6481e32 add slide & tweak
ichikitakahiro <e165713@ie.u-ryukyu.ac.jp>
parents:
diff changeset
72 - CGはスレッド, クラスに相当し, javaの継承を用いて記述する.
7293b6481e32 add slide & tweak
ichikitakahiro <e165713@ie.u-ryukyu.ac.jp>
parents:
diff changeset
73 - DGは変数データに相当し, CG内でアノテーションを用いて変数データを取り出せる.
7293b6481e32 add slide & tweak
ichikitakahiro <e165713@ie.u-ryukyu.ac.jp>
parents:
diff changeset
74 - CGMはノードであり, DG, CG, DGMを管理する.
7293b6481e32 add slide & tweak
ichikitakahiro <e165713@ie.u-ryukyu.ac.jp>
parents:
diff changeset
75 - DGMはDGを管理するものであり, putという操作により, 変数データ(DG)を格納できる.
7293b6481e32 add slide & tweak
ichikitakahiro <e165713@ie.u-ryukyu.ac.jp>
parents:
diff changeset
76 - DGMにはLocalDGMとRemoteDGMが存在する。LocalDGMは各ノード固有のデータベースである。RemoteDSMは他ノードのLocalDGMに対応するproxyであり、接続しているノードの数だけ存在する。
7293b6481e32 add slide & tweak
ichikitakahiro <e165713@ie.u-ryukyu.ac.jp>
parents:
diff changeset
77 - DGMのput操作を行う際にはLocalとRemoteのどちらかを選ぶ.Localであれば、LocalのCGMが管理するDGMに対しDGを格納し, Remoteの場合は接続したRemoteさきのCGMのDGMにDGを格納する.
7293b6481e32 add slide & tweak
ichikitakahiro <e165713@ie.u-ryukyu.ac.jp>
parents:
diff changeset
78
7293b6481e32 add slide & tweak
ichikitakahiro <e165713@ie.u-ryukyu.ac.jp>
parents:
diff changeset
79 -->
7293b6481e32 add slide & tweak
ichikitakahiro <e165713@ie.u-ryukyu.ac.jp>
parents:
diff changeset
80
7293b6481e32 add slide & tweak
ichikitakahiro <e165713@ie.u-ryukyu.ac.jp>
parents:
diff changeset
81 ## DGM
7293b6481e32 add slide & tweak
ichikitakahiro <e165713@ie.u-ryukyu.ac.jp>
parents:
diff changeset
82 - DGMは分散システムの肝となる他のノード間とのデータのやり取りの際に重要となる。
7293b6481e32 add slide & tweak
ichikitakahiro <e165713@ie.u-ryukyu.ac.jp>
parents:
diff changeset
83 - DGMにはLocalDGMとRemoteDGMが存在する。
7293b6481e32 add slide & tweak
ichikitakahiro <e165713@ie.u-ryukyu.ac.jp>
parents:
diff changeset
84 - LocalDGM
7293b6481e32 add slide & tweak
ichikitakahiro <e165713@ie.u-ryukyu.ac.jp>
parents:
diff changeset
85 - LocalなDGMのプールのkeyにデータの書き込みを行う。
7293b6481e32 add slide & tweak
ichikitakahiro <e165713@ie.u-ryukyu.ac.jp>
parents:
diff changeset
86 - RemoteDGM
7293b6481e32 add slide & tweak
ichikitakahiro <e165713@ie.u-ryukyu.ac.jp>
parents:
diff changeset
87 - Localに存在する、他のノードのLocalDGMに対応するプールのkeyにデータを書き込みする。接続しているノードの数だけ存在する。
7293b6481e32 add slide & tweak
ichikitakahiro <e165713@ie.u-ryukyu.ac.jp>
parents:
diff changeset
88 - DGMのput操作を行う際にはLocalとRemoteのどちらかを選ぶ.Localであれば、LocalのCGMが管理するDGMへ、 Remoteの場合は接続したRemote先のCGMのDGMにDGを格納する.
7293b6481e32 add slide & tweak
ichikitakahiro <e165713@ie.u-ryukyu.ac.jp>
parents:
diff changeset
89
7293b6481e32 add slide & tweak
ichikitakahiro <e165713@ie.u-ryukyu.ac.jp>
parents:
diff changeset
90 <div style="text-align: center;">
7293b6481e32 add slide & tweak
ichikitakahiro <e165713@ie.u-ryukyu.ac.jp>
parents:
diff changeset
91 <img src="../paper/images/remote_datasegment.svg" alt="MetaGear" width="800">
7293b6481e32 add slide & tweak
ichikitakahiro <e165713@ie.u-ryukyu.ac.jp>
parents:
diff changeset
92 </div>
7293b6481e32 add slide & tweak
ichikitakahiro <e165713@ie.u-ryukyu.ac.jp>
parents:
diff changeset
93
7293b6481e32 add slide & tweak
ichikitakahiro <e165713@ie.u-ryukyu.ac.jp>
parents:
diff changeset
94 <!--
7293b6481e32 add slide & tweak
ichikitakahiro <e165713@ie.u-ryukyu.ac.jp>
parents:
diff changeset
95 - RocalDGMを立ち上げるにはDataSegmentクラスが提供する、connectメソッドを用い、接続したいポートのipアドレスとport番号、そして任意のManager名を指定することで立ち上げる。
7293b6481e32 add slide & tweak
ichikitakahiro <e165713@ie.u-ryukyu.ac.jp>
parents:
diff changeset
96 -->
7293b6481e32 add slide & tweak
ichikitakahiro <e165713@ie.u-ryukyu.ac.jp>
parents:
diff changeset
97
7293b6481e32 add slide & tweak
ichikitakahiro <e165713@ie.u-ryukyu.ac.jp>
parents:
diff changeset
98 ## Annottation
7293b6481e32 add slide & tweak
ichikitakahiro <e165713@ie.u-ryukyu.ac.jp>
parents:
diff changeset
99 - ChristieではInputDGの指定にはアノテーションを使う。
7293b6481e32 add slide & tweak
ichikitakahiro <e165713@ie.u-ryukyu.ac.jp>
parents:
diff changeset
100 - アノテーションとはクラスやメソッド、パッケージに対して、付加情報を記述できるJavaのMeta Computationである。
7293b6481e32 add slide & tweak
ichikitakahiro <e165713@ie.u-ryukyu.ac.jp>
parents:
diff changeset
101 - 先頭に@をつけることで記述する。オリジナルのアノテーションを定義することもでき、Input
7293b6481e32 add slide & tweak
ichikitakahiro <e165713@ie.u-ryukyu.ac.jp>
parents:
diff changeset
102 される型の変数を直接宣言し、変数名としてkeyを記述する。その上にアノテーションでTakeもしくはPeekを指定する。
7293b6481e32 add slide & tweak
ichikitakahiro <e165713@ie.u-ryukyu.ac.jp>
parents:
diff changeset
103
7293b6481e32 add slide & tweak
ichikitakahiro <e165713@ie.u-ryukyu.ac.jp>
parents:
diff changeset
104 ```cc
7293b6481e32 add slide & tweak
ichikitakahiro <e165713@ie.u-ryukyu.ac.jp>
parents:
diff changeset
105 package christie.example.HelloWorld;
7293b6481e32 add slide & tweak
ichikitakahiro <e165713@ie.u-ryukyu.ac.jp>
parents:
diff changeset
106
7293b6481e32 add slide & tweak
ichikitakahiro <e165713@ie.u-ryukyu.ac.jp>
parents:
diff changeset
107 import christie.annotation.Take;
7293b6481e32 add slide & tweak
ichikitakahiro <e165713@ie.u-ryukyu.ac.jp>
parents:
diff changeset
108 import christie.codegear.CodeGear;
7293b6481e32 add slide & tweak
ichikitakahiro <e165713@ie.u-ryukyu.ac.jp>
parents:
diff changeset
109 import christie.codegear.CodeGearManager;
7293b6481e32 add slide & tweak
ichikitakahiro <e165713@ie.u-ryukyu.ac.jp>
parents:
diff changeset
110
7293b6481e32 add slide & tweak
ichikitakahiro <e165713@ie.u-ryukyu.ac.jp>
parents:
diff changeset
111 public class HelloWorldCodeGear extends CodeGear {
7293b6481e32 add slide & tweak
ichikitakahiro <e165713@ie.u-ryukyu.ac.jp>
parents:
diff changeset
112 @Take
7293b6481e32 add slide & tweak
ichikitakahiro <e165713@ie.u-ryukyu.ac.jp>
parents:
diff changeset
113 String helloWorld;
7293b6481e32 add slide & tweak
ichikitakahiro <e165713@ie.u-ryukyu.ac.jp>
parents:
diff changeset
114
7293b6481e32 add slide & tweak
ichikitakahiro <e165713@ie.u-ryukyu.ac.jp>
parents:
diff changeset
115 @Override
7293b6481e32 add slide & tweak
ichikitakahiro <e165713@ie.u-ryukyu.ac.jp>
parents:
diff changeset
116 protected void run(CodeGearManager cgm) {
7293b6481e32 add slide & tweak
ichikitakahiro <e165713@ie.u-ryukyu.ac.jp>
parents:
diff changeset
117 System.out.print(helloWorld + " ");
7293b6481e32 add slide & tweak
ichikitakahiro <e165713@ie.u-ryukyu.ac.jp>
parents:
diff changeset
118 cgm.setup(new HelloWorldCodeGear());
7293b6481e32 add slide & tweak
ichikitakahiro <e165713@ie.u-ryukyu.ac.jp>
parents:
diff changeset
119 }
7293b6481e32 add slide & tweak
ichikitakahiro <e165713@ie.u-ryukyu.ac.jp>
parents:
diff changeset
120 }
7293b6481e32 add slide & tweak
ichikitakahiro <e165713@ie.u-ryukyu.ac.jp>
parents:
diff changeset
121
7293b6481e32 add slide & tweak
ichikitakahiro <e165713@ie.u-ryukyu.ac.jp>
parents:
diff changeset
122 ```
7293b6481e32 add slide & tweak
ichikitakahiro <e165713@ie.u-ryukyu.ac.jp>
parents:
diff changeset
123
7293b6481e32 add slide & tweak
ichikitakahiro <e165713@ie.u-ryukyu.ac.jp>
parents:
diff changeset
124 ## DGのアノテーション
7293b6481e32 add slide & tweak
ichikitakahiro <e165713@ie.u-ryukyu.ac.jp>
parents:
diff changeset
125 - DGを取り出す際にはCG内で宣言した変数にアノテーションをつける。DGアノテーションには
7293b6481e32 add slide & tweak
ichikitakahiro <e165713@ie.u-ryukyu.ac.jp>
parents:
diff changeset
126 Take、Peek、TakeFrom、PeekFrom、の4つがある。
7293b6481e32 add slide & tweak
ichikitakahiro <e165713@ie.u-ryukyu.ac.jp>
parents:
diff changeset
127 - Take
7293b6481e32 add slide & tweak
ichikitakahiro <e165713@ie.u-ryukyu.ac.jp>
parents:
diff changeset
128 - 先頭のDGを読み込み、そのDGを削除する。
7293b6481e32 add slide & tweak
ichikitakahiro <e165713@ie.u-ryukyu.ac.jp>
parents:
diff changeset
129 - Peek
7293b6481e32 add slide & tweak
ichikitakahiro <e165713@ie.u-ryukyu.ac.jp>
parents:
diff changeset
130 - 先頭のDGを読み込むが、DGが消去されない。そのため特に操作をしない場合、同じデータを参照し続ける。
7293b6481e32 add slide & tweak
ichikitakahiro <e165713@ie.u-ryukyu.ac.jp>
parents:
diff changeset
131 - TakeFrom
7293b6481e32 add slide & tweak
ichikitakahiro <e165713@ie.u-ryukyu.ac.jp>
parents:
diff changeset
132 - Remote DGM nameを指定することで、その接続先のDGM からTake操作をおこえる。
7293b6481e32 add slide & tweak
ichikitakahiro <e165713@ie.u-ryukyu.ac.jp>
parents:
diff changeset
133 - PeekFrom
7293b6481e32 add slide & tweak
ichikitakahiro <e165713@ie.u-ryukyu.ac.jp>
parents:
diff changeset
134 - Remote DGM nameを指定することで、その接続先のDGM からPeek操作をおこえる。
7293b6481e32 add slide & tweak
ichikitakahiro <e165713@ie.u-ryukyu.ac.jp>
parents:
diff changeset
135
7293b6481e32 add slide & tweak
ichikitakahiro <e165713@ie.u-ryukyu.ac.jp>
parents:
diff changeset
136
7293b6481e32 add slide & tweak
ichikitakahiro <e165713@ie.u-ryukyu.ac.jp>
parents:
diff changeset
137 ## TopologyManager
7293b6481e32 add slide & tweak
ichikitakahiro <e165713@ie.u-ryukyu.ac.jp>
parents:
diff changeset
138 - TopologyManagerとはTopologyを形成のために、参加を表明したノード、TopologyNodeに名前を与え、必要があればノード同士の配線を行うノードである。
7293b6481e32 add slide & tweak
ichikitakahiro <e165713@ie.u-ryukyu.ac.jp>
parents:
diff changeset
139 - TopologyManagerのTopology形成方法として、静的Topologyと動的Topologyがある。
7293b6481e32 add slide & tweak
ichikitakahiro <e165713@ie.u-ryukyu.ac.jp>
parents:
diff changeset
140 - 動的Topologyは参加を表明したノードに対し、動的にノード同士の関係を作る。例えばTreeを構成する場合、参加したノードから順にrootに近い役割を与え、またCodeGearはノードが参加し、parentに接続された後に実行される。
7293b6481e32 add slide & tweak
ichikitakahiro <e165713@ie.u-ryukyu.ac.jp>
parents:
diff changeset
141 - 静的Toopologyはdotファイルを与えることノード関係の構築を行う。
7293b6481e32 add slide & tweak
ichikitakahiro <e165713@ie.u-ryukyu.ac.jp>
parents:
diff changeset
142
7293b6481e32 add slide & tweak
ichikitakahiro <e165713@ie.u-ryukyu.ac.jp>
parents:
diff changeset
143 ```Code
7293b6481e32 add slide & tweak
ichikitakahiro <e165713@ie.u-ryukyu.ac.jp>
parents:
diff changeset
144 digraph test {
7293b6481e32 add slide & tweak
ichikitakahiro <e165713@ie.u-ryukyu.ac.jp>
parents:
diff changeset
145 node0 -> node1 [label="right"]
7293b6481e32 add slide & tweak
ichikitakahiro <e165713@ie.u-ryukyu.ac.jp>
parents:
diff changeset
146 node1 -> node2 [label="right"]
7293b6481e32 add slide & tweak
ichikitakahiro <e165713@ie.u-ryukyu.ac.jp>
parents:
diff changeset
147 node2 -> node0 [label="right"]
7293b6481e32 add slide & tweak
ichikitakahiro <e165713@ie.u-ryukyu.ac.jp>
parents:
diff changeset
148 }
7293b6481e32 add slide & tweak
ichikitakahiro <e165713@ie.u-ryukyu.ac.jp>
parents:
diff changeset
149 ```
7293b6481e32 add slide & tweak
ichikitakahiro <e165713@ie.u-ryukyu.ac.jp>
parents:
diff changeset
150
7293b6481e32 add slide & tweak
ichikitakahiro <e165713@ie.u-ryukyu.ac.jp>
parents:
diff changeset
151 <div style="text-align: center;">
7293b6481e32 add slide & tweak
ichikitakahiro <e165713@ie.u-ryukyu.ac.jp>
parents:
diff changeset
152  <img src="../paper/images/ring.svg" alt="MetaGear" width="500">
7293b6481e32 add slide & tweak
ichikitakahiro <e165713@ie.u-ryukyu.ac.jp>
parents:
diff changeset
153 </div>
7293b6481e32 add slide & tweak
ichikitakahiro <e165713@ie.u-ryukyu.ac.jp>
parents:
diff changeset
154
7293b6481e32 add slide & tweak
ichikitakahiro <e165713@ie.u-ryukyu.ac.jp>
parents:
diff changeset
155
7293b6481e32 add slide & tweak
ichikitakahiro <e165713@ie.u-ryukyu.ac.jp>
parents:
diff changeset
156
7293b6481e32 add slide & tweak
ichikitakahiro <e165713@ie.u-ryukyu.ac.jp>
parents:
diff changeset
157
7293b6481e32 add slide & tweak
ichikitakahiro <e165713@ie.u-ryukyu.ac.jp>
parents:
diff changeset
158
7293b6481e32 add slide & tweak
ichikitakahiro <e165713@ie.u-ryukyu.ac.jp>
parents:
diff changeset
159
7293b6481e32 add slide & tweak
ichikitakahiro <e165713@ie.u-ryukyu.ac.jp>
parents:
diff changeset
160 ## まとめとこれから