Mercurial > hg > Papers > 2016 > nozomi-sigos
annotate presen/sample.html @ 30:3f7064e09310
change tree figure
author | Nozomi Teruya <e125769@ie.u-ryukyu.ac.jp> |
---|---|
date | Sun, 29 May 2016 18:10:35 +0900 |
parents | 296df25feb76 |
children | b729ee3a8f72 |
rev | line source |
---|---|
29 | 1 <!DOCTYPE html> |
2 <html> | |
3 <head> | |
4 <meta http-equiv="content-type" content="text/html;charset=utf-8"> | |
30
3f7064e09310
change tree figure
Nozomi Teruya <e125769@ie.u-ryukyu.ac.jp>
parents:
29
diff
changeset
|
5 <title>分散システム向けのTopology Managerの改良</title> |
29 | 6 |
7 <meta name="generator" content="Slide Show (S9) v2.5.0 on Ruby 2.1.0 (2013-12-25) [x86_64-darwin13.0]"> | |
8 <meta name="author" content="照屋のぞみ 河野真治" > | |
9 | |
10 <!-- style sheet links --> | |
11 <link rel="stylesheet" href="s6/themes/projection.css" media="screen,projection"> | |
12 <link rel="stylesheet" href="s6/themes/screen.css" media="screen"> | |
13 <link rel="stylesheet" href="s6/themes/print.css" media="print"> | |
14 <link rel="stylesheet" href="s6/themes/blank.css" media="screen,projection"> | |
15 | |
16 <!-- JS --> | |
17 <script src="s6/js/jquery-1.11.3.min.js"></script> | |
18 <script src="s6/js/jquery.slideshow.js"></script> | |
19 <script src="s6/js/jquery.slideshow.counter.js"></script> | |
20 <script src="s6/js/jquery.slideshow.controls.js"></script> | |
21 <script src="s6/js/jquery.slideshow.footer.js"></script> | |
22 <script src="s6/js/jquery.slideshow.autoplay.js"></script> | |
23 | |
24 <!-- prettify --> | |
25 <link rel="stylesheet" href="scripts/prettify.css"> | |
26 <script src="scripts/prettify.js"></script> | |
27 | |
28 <script> | |
29 $(document).ready( function() { | |
30 Slideshow.init(); | |
31 | |
32 $('code').each(function(_, el) { | |
33 if (!el.classList.contains('noprettyprint')) { | |
34 el.classList.add('prettyprint'); | |
35 el.style.display = 'block'; | |
36 } | |
37 }); | |
38 prettyPrint(); | |
39 } ); | |
40 | |
41 | |
42 </script> | |
43 | |
44 <!-- Better Browser Banner for Microsoft Internet Explorer (IE) --> | |
45 <!--[if IE]> | |
46 <script src="s6/js/jquery.microsoft.js"></script> | |
47 <![endif]--> | |
48 | |
49 | |
50 | |
51 </head> | |
52 <body> | |
53 | |
54 <div class="layout"> | |
55 <div id="header"></div> | |
56 <div id="footer"> | |
57 <div align="right"> | |
58 <img src="s6/images/logo.svg" width="200px"> | |
59 </div> | |
60 </div> | |
61 </div> | |
62 | |
63 <div class="presentation"> | |
64 | |
65 <div class='slide cover'> | |
66 <table width="90%" height="90%" border="0" align="center"> | |
67 <tr> | |
68 <td> | |
69 <div align="center"> | |
30
3f7064e09310
change tree figure
Nozomi Teruya <e125769@ie.u-ryukyu.ac.jp>
parents:
29
diff
changeset
|
70 <h1><font color="#808db5">分散システム向けのTopology Managerの改良</font></h1> |
29 | 71 </div> |
72 </td> | |
73 </tr> | |
74 <tr> | |
75 <td> | |
76 <div align="left"> | |
77 照屋のぞみ 河野真治 | |
78 琉球大学 工学部 情報工学科 | |
79 <hr style="color:#ffcc00;background-color:#ffcc00;text-align:left;border:none;width:100%;height:0.2em;"> | |
80 </div> | |
81 </td> | |
82 </tr> | |
83 </table> | |
84 </div> | |
85 | |
86 <div class='slide '> | |
87 <!-- === begin markdown block === | |
88 | |
89 generated by markdown/1.2.0 on Ruby 2.1.0 (2013-12-25) [x86_64-darwin13.0] | |
30
3f7064e09310
change tree figure
Nozomi Teruya <e125769@ie.u-ryukyu.ac.jp>
parents:
29
diff
changeset
|
90 on 2016-05-29 18:07:15 +0900 with Markdown engine kramdown (1.5.0) |
29 | 91 using options {} |
92 --> | |
30
3f7064e09310
change tree figure
Nozomi Teruya <e125769@ie.u-ryukyu.ac.jp>
parents:
29
diff
changeset
|
93 <p>Topology Managerをもっとかっこよくアピール |
3f7064e09310
change tree figure
Nozomi Teruya <e125769@ie.u-ryukyu.ac.jp>
parents:
29
diff
changeset
|
94 前半もっとクリーンナップ</p> |
29 | 95 |
30
3f7064e09310
change tree figure
Nozomi Teruya <e125769@ie.u-ryukyu.ac.jp>
parents:
29
diff
changeset
|
96 |
3f7064e09310
change tree figure
Nozomi Teruya <e125769@ie.u-ryukyu.ac.jp>
parents:
29
diff
changeset
|
97 </div> |
3f7064e09310
change tree figure
Nozomi Teruya <e125769@ie.u-ryukyu.ac.jp>
parents:
29
diff
changeset
|
98 <div class='slide '> |
29 | 99 <!-- _S9SLIDE_ --> |
30
3f7064e09310
change tree figure
Nozomi Teruya <e125769@ie.u-ryukyu.ac.jp>
parents:
29
diff
changeset
|
100 <h1 id="section">目次</h1> |
3f7064e09310
change tree figure
Nozomi Teruya <e125769@ie.u-ryukyu.ac.jp>
parents:
29
diff
changeset
|
101 |
3f7064e09310
change tree figure
Nozomi Teruya <e125769@ie.u-ryukyu.ac.jp>
parents:
29
diff
changeset
|
102 |
3f7064e09310
change tree figure
Nozomi Teruya <e125769@ie.u-ryukyu.ac.jp>
parents:
29
diff
changeset
|
103 </div> |
3f7064e09310
change tree figure
Nozomi Teruya <e125769@ie.u-ryukyu.ac.jp>
parents:
29
diff
changeset
|
104 <div class='slide '> |
3f7064e09310
change tree figure
Nozomi Teruya <e125769@ie.u-ryukyu.ac.jp>
parents:
29
diff
changeset
|
105 <!-- _S9SLIDE_ --> |
3f7064e09310
change tree figure
Nozomi Teruya <e125769@ie.u-ryukyu.ac.jp>
parents:
29
diff
changeset
|
106 <h1 id="section-1">研究目的(1/3)</h1> |
29 | 107 <ul> |
108 <li>当研究室が開発している並列分散フレームワークAliceではスケーラブルな分散プログラムを信頼性高く記述できる環境を実現する。</li> | |
109 <li>ここで言う信頼性とは定められた環境下で安定して仕様に従った動作を行うことを指す。 </li> | |
30
3f7064e09310
change tree figure
Nozomi Teruya <e125769@ie.u-ryukyu.ac.jp>
parents:
29
diff
changeset
|
110 <li>信頼性とスケーラビリティ向上のため、Aliceでは当研究室が提案しているデータを Data Segment、タスクを Code Segment という単位で分割して記述するプログラミング手法を採用している。</li> |
29 | 111 </ul> |
112 | |
113 | |
114 </div> | |
115 <div class='slide '> | |
116 <!-- _S9SLIDE_ --> | |
30
3f7064e09310
change tree figure
Nozomi Teruya <e125769@ie.u-ryukyu.ac.jp>
parents:
29
diff
changeset
|
117 <h1 id="section-2">研究目的(2/3)</h1> |
29 | 118 <ul> |
30
3f7064e09310
change tree figure
Nozomi Teruya <e125769@ie.u-ryukyu.ac.jp>
parents:
29
diff
changeset
|
119 <li>Aliceでは、処理をComputationとMetaComputationに階層化し、コアな仕様と複雑な例外処理に分離する。//コアな仕様の例</li> |
29 | 120 <li>分散環境構築などの複雑な処理はAliceがMeta Computationとして提供する</li> |
30
3f7064e09310
change tree figure
Nozomi Teruya <e125769@ie.u-ryukyu.ac.jp>
parents:
29
diff
changeset
|
121 <li>仕様を大きく変更することなくプログラムの挙動が変えられる//分散処理とかの拡張なら指定だけで良い</li> |
29 | 122 <li>変更前の信頼性を保ったまま拡張可能にする</li> |
123 </ul> | |
124 | |
125 | |
126 </div> | |
127 <div class='slide '> | |
128 <!-- _S9SLIDE_ --> | |
30
3f7064e09310
change tree figure
Nozomi Teruya <e125769@ie.u-ryukyu.ac.jp>
parents:
29
diff
changeset
|
129 <h1 id="section-3">研究目的(3/3)</h1> |
29 | 130 <ul> |
30
3f7064e09310
change tree figure
Nozomi Teruya <e125769@ie.u-ryukyu.ac.jp>
parents:
29
diff
changeset
|
131 <li>Aliceでは分散トポロジー管理の Meta Computation である Topology Manager</li> |
3f7064e09310
change tree figure
Nozomi Teruya <e125769@ie.u-ryukyu.ac.jp>
parents:
29
diff
changeset
|
132 <li>本研究では、 Topology Managerに NAT越えを実現するための設計を行う</li> |
3f7064e09310
change tree figure
Nozomi Teruya <e125769@ie.u-ryukyu.ac.jp>
parents:
29
diff
changeset
|
133 <li>そしてその設計が Alice アプリケーション同士の接続も可能にすることを示す |
3f7064e09310
change tree figure
Nozomi Teruya <e125769@ie.u-ryukyu.ac.jp>
parents:
29
diff
changeset
|
134 ↑逆? |
3f7064e09310
change tree figure
Nozomi Teruya <e125769@ie.u-ryukyu.ac.jp>
parents:
29
diff
changeset
|
135 Topologyの課題をかく</li> |
29 | 136 </ul> |
137 | |
138 | |
139 </div> | |
140 <div class='slide '> | |
141 <!-- _S9SLIDE_ --> | |
142 <h1 id="data-segment--code-segment">Data Segment と Code Segment</h1> | |
143 <ul> | |
144 <li>Aliceではデータを <strong>Data Segment(DS)</strong> 、タスクを <strong>Code Segment(CS)</strong> という単位に分割して依存関係を記述することでプログラミングを行う。</li> | |
145 <li>CSはInput DS(入力されるDS)とOutput DS(出力されるDS)を持つ。</li> | |
146 <li>CSはkeyで指定されたDSが揃うと実行されるという性質を持つ。 | |
30
3f7064e09310
change tree figure
Nozomi Teruya <e125769@ie.u-ryukyu.ac.jp>
parents:
29
diff
changeset
|
147 <img src="./images/dsandcs.svg" alt="opt" width="50%" /></li> |
29 | 148 </ul> |
149 | |
150 | |
151 </div> | |
152 <div class='slide '> | |
153 <!-- _S9SLIDE_ --> | |
154 <h1 id="codesegment">CodeSegmentの依存関係</h1> | |
155 <ul> | |
156 <li>データの依存関係にないCSは並列実行される</li> | |
157 <li>データの依存関係がある場合は Input DS が揃うと順に実行される</li> | |
158 <li>DSはCSに専有されるためロックの記述を必要としない | |
30
3f7064e09310
change tree figure
Nozomi Teruya <e125769@ie.u-ryukyu.ac.jp>
parents:
29
diff
changeset
|
159 <img src="./images/dsandcs2.svg" alt="opt" width="50%" /></li> |
29 | 160 </ul> |
161 | |
162 | |
163 </div> | |
164 <div class='slide '> | |
165 <!-- _S9SLIDE_ --> | |
166 <h1 id="data-segment--codesegment">Data Segment と CodeSegment</h1> | |
167 <ul> | |
168 <li>AliceはJavaで実装されており、DSはJava-Object、CSはRunnableに相当する</li> | |
169 <li>ユーザーが記述する際には CodeSegment.class を継承することでDSを操作するためのAPIを利用して依存関係を記述することができる。</li> | |
170 </ul> | |
171 | |
172 | |
173 </div> | |
174 <div class='slide '> | |
175 <!-- _S9SLIDE_ --> | |
176 <h1 id="data-segment-manager">Data Segment Manager</h1> | |
177 <ul> | |
178 <li>DS の集合体であるデータベースを Alice では <strong>DS Manager(DSM)</strong> と呼ぶ。 </li> | |
30
3f7064e09310
change tree figure
Nozomi Teruya <e125769@ie.u-ryukyu.ac.jp>
parents:
29
diff
changeset
|
179 <li>DSM 内の DS には対応する一意の String型のkey が存在し、 DSM 名と key を指定しすることで DS の保存、取得を行う。 |
3f7064e09310
change tree figure
Nozomi Teruya <e125769@ie.u-ryukyu.ac.jp>
parents:
29
diff
changeset
|
180 <img src="./images/KeyDS.svg" alt="opt" width="50%" />//変更</li> |
29 | 181 </ul> |
182 | |
183 | |
184 </div> | |
185 <div class='slide '> | |
186 <!-- _S9SLIDE_ --> | |
187 <h1 id="data-segment-manager-1">Data Segment Manager</h1> | |
188 <ul> | |
189 <li>Local DSM … 各ノード固有のデータベース。</li> | |
30
3f7064e09310
change tree figure
Nozomi Teruya <e125769@ie.u-ryukyu.ac.jp>
parents:
29
diff
changeset
|
190 <li>Remote DSM … 他のノードの Local DSM の proxy。接続しているノードの数だけ存在する。 </li> |
3f7064e09310
change tree figure
Nozomi Teruya <e125769@ie.u-ryukyu.ac.jp>
parents:
29
diff
changeset
|
191 <li>Remote DSMに書き込むと対応するノードのLocalDSMに書き込まれる |
3f7064e09310
change tree figure
Nozomi Teruya <e125769@ie.u-ryukyu.ac.jp>
parents:
29
diff
changeset
|
192 <img src="./images/remote_datasegment.svg" alt="opt" width="50%" />//変更</li> |
29 | 193 </ul> |
194 | |
195 | |
196 </div> | |
197 <div class='slide '> | |
198 <!-- _S9SLIDE_ --> | |
199 <h1 id="computation--meta-computation">Computation と Meta Computation</h1> | |
200 <ul> | |
30
3f7064e09310
change tree figure
Nozomi Teruya <e125769@ie.u-ryukyu.ac.jp>
parents:
29
diff
changeset
|
201 <li>Aliceでは、計算の本質的な処理をComputatin、Computationとは別のレベルでそれを支える処理をMeta Computationとして分けて考える。</li> |
3f7064e09310
change tree figure
Nozomi Teruya <e125769@ie.u-ryukyu.ac.jp>
parents:
29
diff
changeset
|
202 <li>Alice のComputationは、keyによりDSを待ち合わせ、DSが揃ったCSを並列に実行する処理</li> |
3f7064e09310
change tree figure
Nozomi Teruya <e125769@ie.u-ryukyu.ac.jp>
parents:
29
diff
changeset
|
203 <li>Meta Computationはそれを実現している処理 |
3f7064e09310
change tree figure
Nozomi Teruya <e125769@ie.u-ryukyu.ac.jp>
parents:
29
diff
changeset
|
204 <ul> |
3f7064e09310
change tree figure
Nozomi Teruya <e125769@ie.u-ryukyu.ac.jp>
parents:
29
diff
changeset
|
205 <li>DSの待ち合わせ</li> |
3f7064e09310
change tree figure
Nozomi Teruya <e125769@ie.u-ryukyu.ac.jp>
parents:
29
diff
changeset
|
206 <li>分散トポロジーの構成</li> |
3f7064e09310
change tree figure
Nozomi Teruya <e125769@ie.u-ryukyu.ac.jp>
parents:
29
diff
changeset
|
207 <li>通信の切断・再接続時の処理</li> |
3f7064e09310
change tree figure
Nozomi Teruya <e125769@ie.u-ryukyu.ac.jp>
parents:
29
diff
changeset
|
208 <li>データの表現形式の選択</li> |
3f7064e09310
change tree figure
Nozomi Teruya <e125769@ie.u-ryukyu.ac.jp>
parents:
29
diff
changeset
|
209 </ul> |
3f7064e09310
change tree figure
Nozomi Teruya <e125769@ie.u-ryukyu.ac.jp>
parents:
29
diff
changeset
|
210 </li> |
29 | 211 </ul> |
212 | |
213 | |
214 </div> | |
215 <div class='slide '> | |
216 <!-- _S9SLIDE_ --> | |
217 <h1 id="computation--meta-computation-1">Computation と Meta Computation</h1> | |
218 <ul> | |
30
3f7064e09310
change tree figure
Nozomi Teruya <e125769@ie.u-ryukyu.ac.jp>
parents:
29
diff
changeset
|
219 <li>分散環境構築などの複雑な処理をAliceがMeta Computationとして提供する</li> |
3f7064e09310
change tree figure
Nozomi Teruya <e125769@ie.u-ryukyu.ac.jp>
parents:
29
diff
changeset
|
220 <li>プログラマは目的の処理だけ記述し通信部分などはMeta Computationを指定する</li> |
3f7064e09310
change tree figure
Nozomi Teruya <e125769@ie.u-ryukyu.ac.jp>
parents:
29
diff
changeset
|
221 <li>シンプルで見通しの良いコードを保つ</li> |
29 | 222 </ul> |
223 | |
224 | |
225 </div> | |
226 <div class='slide '> | |
227 <!-- _S9SLIDE_ --> | |
30
3f7064e09310
change tree figure
Nozomi Teruya <e125769@ie.u-ryukyu.ac.jp>
parents:
29
diff
changeset
|
228 <h1 id="topology-managertopology-node">Topology ManagerとTopology Node</h1> |
29 | 229 <ul> |
30
3f7064e09310
change tree figure
Nozomi Teruya <e125769@ie.u-ryukyu.ac.jp>
parents:
29
diff
changeset
|
230 <li>Topology Manager |
3f7064e09310
change tree figure
Nozomi Teruya <e125769@ie.u-ryukyu.ac.jp>
parents:
29
diff
changeset
|
231 <ul> |
3f7064e09310
change tree figure
Nozomi Teruya <e125769@ie.u-ryukyu.ac.jp>
parents:
29
diff
changeset
|
232 <li>ノード間の接続管理やトポロジーの構成管理行うMeta Computation</li> |
3f7064e09310
change tree figure
Nozomi Teruya <e125769@ie.u-ryukyu.ac.jp>
parents:
29
diff
changeset
|
233 <li>Static Topology ManagerとDynamic Topology Managerがある </li> |
3f7064e09310
change tree figure
Nozomi Teruya <e125769@ie.u-ryukyu.ac.jp>
parents:
29
diff
changeset
|
234 </ul> |
3f7064e09310
change tree figure
Nozomi Teruya <e125769@ie.u-ryukyu.ac.jp>
parents:
29
diff
changeset
|
235 </li> |
3f7064e09310
change tree figure
Nozomi Teruya <e125769@ie.u-ryukyu.ac.jp>
parents:
29
diff
changeset
|
236 <li>Topology Node |
3f7064e09310
change tree figure
Nozomi Teruya <e125769@ie.u-ryukyu.ac.jp>
parents:
29
diff
changeset
|
237 <ul> |
3f7064e09310
change tree figure
Nozomi Teruya <e125769@ie.u-ryukyu.ac.jp>
parents:
29
diff
changeset
|
238 <li>各ノード側でTopology Managerとの通信を行うMeta Computation</li> |
3f7064e09310
change tree figure
Nozomi Teruya <e125769@ie.u-ryukyu.ac.jp>
parents:
29
diff
changeset
|
239 <li>ノードアプリケーションを記述する際にTopology Nodeをnewしておけば以降のTopology Managerとの通信や接続管理を行う </li> |
3f7064e09310
change tree figure
Nozomi Teruya <e125769@ie.u-ryukyu.ac.jp>
parents:
29
diff
changeset
|
240 </ul> |
3f7064e09310
change tree figure
Nozomi Teruya <e125769@ie.u-ryukyu.ac.jp>
parents:
29
diff
changeset
|
241 </li> |
3f7064e09310
change tree figure
Nozomi Teruya <e125769@ie.u-ryukyu.ac.jp>
parents:
29
diff
changeset
|
242 <li>Topology Manager/NodeもCS/DSを用いて実装されている。 |
3f7064e09310
change tree figure
Nozomi Teruya <e125769@ie.u-ryukyu.ac.jp>
parents:
29
diff
changeset
|
243 <img src="./pictures/topologynode.svg" alt="right" width="40%" />//変更</li> |
29 | 244 </ul> |
245 | |
246 | |
247 </div> | |
248 <div class='slide '> | |
249 <!-- _S9SLIDE_ --> | |
250 <h1 id="static-topology-manager">Static Topology Manager</h1> | |
251 <ul> | |
30
3f7064e09310
change tree figure
Nozomi Teruya <e125769@ie.u-ryukyu.ac.jp>
parents:
29
diff
changeset
|
252 <li>プログラマがdot形式のトポロジーファイルを用意し、Topology Managerに読み込ませる</li> |
3f7064e09310
change tree figure
Nozomi Teruya <e125769@ie.u-ryukyu.ac.jp>
parents:
29
diff
changeset
|
253 <li>トポロジーファイルにはノードの接続関係と接続する際に指定するRemote DSM名を記す</li> |
3f7064e09310
change tree figure
Nozomi Teruya <e125769@ie.u-ryukyu.ac.jp>
parents:
29
diff
changeset
|
254 <li>Graphvizでトポロジーファイルを可視化して確認できる</li> |
29 | 255 </ul> |
256 | |
257 <pre lang="dot"><code>digraph test{ | |
258 node0 −> node1[label=”right”] | |
259 node0 −> node2[label=”left”] | |
260 node1 −> node2[label=”right”] | |
261 node1 −> node0[label=”left”] | |
262 node2 −> node0[label=”right”] | |
263 node2 −> node1[label=”left”] | |
264 } | |
265 </code></pre> | |
30
3f7064e09310
change tree figure
Nozomi Teruya <e125769@ie.u-ryukyu.ac.jp>
parents:
29
diff
changeset
|
266 <p># Static Topology Manager |
3f7064e09310
change tree figure
Nozomi Teruya <e125769@ie.u-ryukyu.ac.jp>
parents:
29
diff
changeset
|
267 * ファイルを読み込んだTopology Managerを立ち上げる |
3f7064e09310
change tree figure
Nozomi Teruya <e125769@ie.u-ryukyu.ac.jp>
parents:
29
diff
changeset
|
268 * 各Topology NodeはTopology Managerに参加表明をし接続すべきノードの情報を要求する<br /> |
3f7064e09310
change tree figure
Nozomi Teruya <e125769@ie.u-ryukyu.ac.jp>
parents:
29
diff
changeset
|
269 <img src="./pictures/tree1.svg" alt="opt" width="70%" /></p> |
29 | 270 |
271 | |
272 </div> | |
273 <div class='slide '> | |
274 <!-- _S9SLIDE_ --> | |
275 <h1 id="static-topology-manager-1">Static Topology Manager</h1> | |
276 <ul> | |
30
3f7064e09310
change tree figure
Nozomi Teruya <e125769@ie.u-ryukyu.ac.jp>
parents:
29
diff
changeset
|
277 <li>参加表明があった順に各ノードにnodeNameを割り当て、接続するべきノードのIPアドレス/ポート番号を送る |
3f7064e09310
change tree figure
Nozomi Teruya <e125769@ie.u-ryukyu.ac.jp>
parents:
29
diff
changeset
|
278 <img src="./pictures/tree2.svg" alt="opt" width="70%" /></li> |
3f7064e09310
change tree figure
Nozomi Teruya <e125769@ie.u-ryukyu.ac.jp>
parents:
29
diff
changeset
|
279 </ul> |
3f7064e09310
change tree figure
Nozomi Teruya <e125769@ie.u-ryukyu.ac.jp>
parents:
29
diff
changeset
|
280 |
3f7064e09310
change tree figure
Nozomi Teruya <e125769@ie.u-ryukyu.ac.jp>
parents:
29
diff
changeset
|
281 |
3f7064e09310
change tree figure
Nozomi Teruya <e125769@ie.u-ryukyu.ac.jp>
parents:
29
diff
changeset
|
282 </div> |
3f7064e09310
change tree figure
Nozomi Teruya <e125769@ie.u-ryukyu.ac.jp>
parents:
29
diff
changeset
|
283 <div class='slide '> |
3f7064e09310
change tree figure
Nozomi Teruya <e125769@ie.u-ryukyu.ac.jp>
parents:
29
diff
changeset
|
284 <!-- _S9SLIDE_ --> |
3f7064e09310
change tree figure
Nozomi Teruya <e125769@ie.u-ryukyu.ac.jp>
parents:
29
diff
changeset
|
285 <h1 id="static-topology-manager-2">Static Topology Manager</h1> |
3f7064e09310
change tree figure
Nozomi Teruya <e125769@ie.u-ryukyu.ac.jp>
parents:
29
diff
changeset
|
286 <ul> |
3f7064e09310
change tree figure
Nozomi Teruya <e125769@ie.u-ryukyu.ac.jp>
parents:
29
diff
changeset
|
287 <li>Topology Nodeが受け取った情報をもとにRemote DSMを立ちあげ接続し合うことでTree型のオーバーレイネットワーク作られる<br /> |
3f7064e09310
change tree figure
Nozomi Teruya <e125769@ie.u-ryukyu.ac.jp>
parents:
29
diff
changeset
|
288 <img src="./pictures/tree3.svg" alt="opt" width="70%" /></li> |
29 | 289 </ul> |
290 | |
291 | |
292 </div> | |
293 <div class='slide '> | |
294 <!-- _S9SLIDE_ --> | |
295 <h1 id="dynamic-topology-manager">Dynamic Topology Manager</h1> | |
296 <ul> | |
297 <li>参加するノード数があらかじめ決まっているとは限らない</li> | |
298 <li>Dynamic Topology Managerがノードを参加表明順にトポロジーに組み込む</li> | |
299 <li>現在はTree TopologyとStar Topologyに対応</li> | |
300 </ul> | |
301 | |
302 | |
303 </div> | |
304 <div class='slide '> | |
305 <!-- _S9SLIDE_ --> | |
30
3f7064e09310
change tree figure
Nozomi Teruya <e125769@ie.u-ryukyu.ac.jp>
parents:
29
diff
changeset
|
306 <h1 id="section-4">障害発生時の対応</h1> |
29 | 307 <ul> |
30
3f7064e09310
change tree figure
Nozomi Teruya <e125769@ie.u-ryukyu.ac.jp>
parents:
29
diff
changeset
|
308 <li>KeepAliveというMeta Computationがノードの生存確認を行う</li> |
3f7064e09310
change tree figure
Nozomi Teruya <e125769@ie.u-ryukyu.ac.jp>
parents:
29
diff
changeset
|
309 <li>一定時間内にノードから応答がない場合、そのノードとの接続を切断し、再接続すべきノードの情報をTopologyManagerに要求する</li> |
29 | 310 </ul> |
311 | |
312 | |
313 </div> | |
314 <div class='slide '> | |
315 <!-- _S9SLIDE_ --> | |
30
3f7064e09310
change tree figure
Nozomi Teruya <e125769@ie.u-ryukyu.ac.jp>
parents:
29
diff
changeset
|
316 <h1 id="section-5">障害発生時の対応</h1> |
29 | 317 <ul> |
318 <li>Closed Event ManagerというMeta Computationは切断・再接続時に指定されたCSを実行する</li> | |
319 <li>再接続時に特定の処理を行いたい場合はCSを書いてClosed Event Managerに登録する</li> | |
320 <li>これらのMeta ComputationはTopology Manager内でも使用されるため、Meta Meta Computationとも言える</li> | |
321 </ul> | |
322 | |
323 | |
324 </div> | |
325 <div class='slide '> | |
326 <!-- _S9SLIDE_ --> | |
30
3f7064e09310
change tree figure
Nozomi Teruya <e125769@ie.u-ryukyu.ac.jp>
parents:
29
diff
changeset
|
327 <h1 id="treevnc">TreeVNC</h1> |
29 | 328 <ul> |
30
3f7064e09310
change tree figure
Nozomi Teruya <e125769@ie.u-ryukyu.ac.jp>
parents:
29
diff
changeset
|
329 <li>当研究室で開発したノードを木構造に配置して負荷分散を行う授業向け画面共有システム</li> |
3f7064e09310
change tree figure
Nozomi Teruya <e125769@ie.u-ryukyu.ac.jp>
parents:
29
diff
changeset
|
330 <li>TightVNCを拡張して作られている |
3f7064e09310
change tree figure
Nozomi Teruya <e125769@ie.u-ryukyu.ac.jp>
parents:
29
diff
changeset
|
331 <img src="./images/treeVNC.svg" alt="right" width="40%" /></li> |
3f7064e09310
change tree figure
Nozomi Teruya <e125769@ie.u-ryukyu.ac.jp>
parents:
29
diff
changeset
|
332 </ul> |
3f7064e09310
change tree figure
Nozomi Teruya <e125769@ie.u-ryukyu.ac.jp>
parents:
29
diff
changeset
|
333 |
3f7064e09310
change tree figure
Nozomi Teruya <e125769@ie.u-ryukyu.ac.jp>
parents:
29
diff
changeset
|
334 |
3f7064e09310
change tree figure
Nozomi Teruya <e125769@ie.u-ryukyu.ac.jp>
parents:
29
diff
changeset
|
335 </div> |
3f7064e09310
change tree figure
Nozomi Teruya <e125769@ie.u-ryukyu.ac.jp>
parents:
29
diff
changeset
|
336 <div class='slide '> |
3f7064e09310
change tree figure
Nozomi Teruya <e125769@ie.u-ryukyu.ac.jp>
parents:
29
diff
changeset
|
337 <!-- _S9SLIDE_ --> |
3f7064e09310
change tree figure
Nozomi Teruya <e125769@ie.u-ryukyu.ac.jp>
parents:
29
diff
changeset
|
338 <h1 id="alicevncalicechat">AliceVNCとAliceChatの接続</h1> |
3f7064e09310
change tree figure
Nozomi Teruya <e125769@ie.u-ryukyu.ac.jp>
parents:
29
diff
changeset
|
339 <ul> |
3f7064e09310
change tree figure
Nozomi Teruya <e125769@ie.u-ryukyu.ac.jp>
parents:
29
diff
changeset
|
340 <li>AliceVNC:Alice上に実装したTreeVNC(Tree Topology)</li> |
3f7064e09310
change tree figure
Nozomi Teruya <e125769@ie.u-ryukyu.ac.jp>
parents:
29
diff
changeset
|
341 <li>AliceChat:Alice上に実装したチャット(Star Topology)</li> |
3f7064e09310
change tree figure
Nozomi Teruya <e125769@ie.u-ryukyu.ac.jp>
parents:
29
diff
changeset
|
342 <li>既存のAliceVNCとAliceChatをコードの変更を抑えつつ連携させたい |
3f7064e09310
change tree figure
Nozomi Teruya <e125769@ie.u-ryukyu.ac.jp>
parents:
29
diff
changeset
|
343 <ul> |
3f7064e09310
change tree figure
Nozomi Teruya <e125769@ie.u-ryukyu.ac.jp>
parents:
29
diff
changeset
|
344 <li>画面のスナップショットをチャットに載せる</li> |
3f7064e09310
change tree figure
Nozomi Teruya <e125769@ie.u-ryukyu.ac.jp>
parents:
29
diff
changeset
|
345 <li>チャットの内容を画面にコメントとして流す</li> |
3f7064e09310
change tree figure
Nozomi Teruya <e125769@ie.u-ryukyu.ac.jp>
parents:
29
diff
changeset
|
346 </ul> |
3f7064e09310
change tree figure
Nozomi Teruya <e125769@ie.u-ryukyu.ac.jp>
parents:
29
diff
changeset
|
347 </li> |
29 | 348 </ul> |
349 | |
350 | |
351 </div> | |
352 <div class='slide '> | |
353 <!-- _S9SLIDE_ --> | |
30
3f7064e09310
change tree figure
Nozomi Teruya <e125769@ie.u-ryukyu.ac.jp>
parents:
29
diff
changeset
|
354 <h1 id="treevncnat">TreeVNCのNAT越え</h1> |
29 | 355 <ul> |
30
3f7064e09310
change tree figure
Nozomi Teruya <e125769@ie.u-ryukyu.ac.jp>
parents:
29
diff
changeset
|
356 <li>TreeVNCを学外からも画面共有ができるよう拡張したい</li> |
3f7064e09310
change tree figure
Nozomi Teruya <e125769@ie.u-ryukyu.ac.jp>
parents:
29
diff
changeset
|
357 <li>ソースコードが膨大で複雜であったためNAT越えの実装には至らなかった</li> |
3f7064e09310
change tree figure
Nozomi Teruya <e125769@ie.u-ryukyu.ac.jp>
parents:
29
diff
changeset
|
358 <li>グローバルIPを持っていることを前提としたノードに直接IPを指定して直下の子になるDirect Connectionを実装 |
3f7064e09310
change tree figure
Nozomi Teruya <e125769@ie.u-ryukyu.ac.jp>
parents:
29
diff
changeset
|
359 <img src="./images/directConnection.svg" alt="right" width="40%" /></li> |
29 | 360 </ul> |
361 | |
362 | |
363 </div> | |
364 <div class='slide '> | |
365 <!-- _S9SLIDE_ --> | |
30
3f7064e09310
change tree figure
Nozomi Teruya <e125769@ie.u-ryukyu.ac.jp>
parents:
29
diff
changeset
|
366 <h1 id="treevncnat-1">TreeVNCのNAT越えの欠点</h1> |
29 | 367 <ul> |
30
3f7064e09310
change tree figure
Nozomi Teruya <e125769@ie.u-ryukyu.ac.jp>
parents:
29
diff
changeset
|
368 <li>複数の別ネットワークからの接続があるとルートノードに台数分の負荷がかかる</li> |
3f7064e09310
change tree figure
Nozomi Teruya <e125769@ie.u-ryukyu.ac.jp>
parents:
29
diff
changeset
|
369 <li>どちらもプライベートネットワークだった場合に通信できない(中継サーバのプログラムを用意しなければならない)</li> |
3f7064e09310
change tree figure
Nozomi Teruya <e125769@ie.u-ryukyu.ac.jp>
parents:
29
diff
changeset
|
370 <li>分散アプリケーションにおけるNATを越えた通信は重要だがプログラマが実装するのは容易ではない </li> |
29 | 371 </ul> |
372 | |
373 | |
374 </div> | |
375 <div class='slide '> | |
376 <!-- _S9SLIDE_ --> | |
30
3f7064e09310
change tree figure
Nozomi Teruya <e125769@ie.u-ryukyu.ac.jp>
parents:
29
diff
changeset
|
377 <h1 id="alice">Aliceの課題まとめ</h1> |
29 | 378 <ul> |
30
3f7064e09310
change tree figure
Nozomi Teruya <e125769@ie.u-ryukyu.ac.jp>
parents:
29
diff
changeset
|
379 <li>別トポロジー、別ネットワークのアプリケーションに接続したい</li> |
3f7064e09310
change tree figure
Nozomi Teruya <e125769@ie.u-ryukyu.ac.jp>
parents:
29
diff
changeset
|
380 <li>コード変更を抑えつつトポロジーの拡張をサポートする機能がTopology Managerに必要</li> |
29 | 381 </ul> |
382 | |
383 | |
384 </div> | |
385 <div class='slide '> | |
386 <!-- _S9SLIDE_ --> | |
387 <h1 id="topology-manager----">Topology Managerの拡張設計 - 別トポロジーへの接続</h1> | |
30
3f7064e09310
change tree figure
Nozomi Teruya <e125769@ie.u-ryukyu.ac.jp>
parents:
29
diff
changeset
|
388 <ol> |
3f7064e09310
change tree figure
Nozomi Teruya <e125769@ie.u-ryukyu.ac.jp>
parents:
29
diff
changeset
|
389 <li>接続を要求する側のいずれかの Node が接続先 Topology Manager(A)のIPアドレスを自身を管理するTopology Manager(B)のDSMに保存。<br /> |
3f7064e09310
change tree figure
Nozomi Teruya <e125769@ie.u-ryukyu.ac.jp>
parents:
29
diff
changeset
|
390 <em>ここでTopology Managerに保存することでRootNodeが落ちてもトポロジーの再構成時にまた接続要求が出せる</em><br /> |
3f7064e09310
change tree figure
Nozomi Teruya <e125769@ie.u-ryukyu.ac.jp>
parents:
29
diff
changeset
|
391 <img src="./pictures/private1.svg" alt="opt" width="70%" />//変更</li> |
3f7064e09310
change tree figure
Nozomi Teruya <e125769@ie.u-ryukyu.ac.jp>
parents:
29
diff
changeset
|
392 </ol> |
3f7064e09310
change tree figure
Nozomi Teruya <e125769@ie.u-ryukyu.ac.jp>
parents:
29
diff
changeset
|
393 |
3f7064e09310
change tree figure
Nozomi Teruya <e125769@ie.u-ryukyu.ac.jp>
parents:
29
diff
changeset
|
394 |
3f7064e09310
change tree figure
Nozomi Teruya <e125769@ie.u-ryukyu.ac.jp>
parents:
29
diff
changeset
|
395 </div> |
3f7064e09310
change tree figure
Nozomi Teruya <e125769@ie.u-ryukyu.ac.jp>
parents:
29
diff
changeset
|
396 <div class='slide '> |
3f7064e09310
change tree figure
Nozomi Teruya <e125769@ie.u-ryukyu.ac.jp>
parents:
29
diff
changeset
|
397 <!-- _S9SLIDE_ --> |
3f7064e09310
change tree figure
Nozomi Teruya <e125769@ie.u-ryukyu.ac.jp>
parents:
29
diff
changeset
|
398 <h1 id="topology-manager-----1">Topology Managerの拡張設計 - 別トポロジーへの接続</h1> |
3f7064e09310
change tree figure
Nozomi Teruya <e125769@ie.u-ryukyu.ac.jp>
parents:
29
diff
changeset
|
399 <ol> |
3f7064e09310
change tree figure
Nozomi Teruya <e125769@ie.u-ryukyu.ac.jp>
parents:
29
diff
changeset
|
400 <li>Topology Manager(B)はRootNode(B)にTopology Manager(A) への接続をするよう要求 |
3f7064e09310
change tree figure
Nozomi Teruya <e125769@ie.u-ryukyu.ac.jp>
parents:
29
diff
changeset
|
401 <img src="./pictures/private2.svg" alt="opt" width="70%" />//変更</li> |
3f7064e09310
change tree figure
Nozomi Teruya <e125769@ie.u-ryukyu.ac.jp>
parents:
29
diff
changeset
|
402 </ol> |
3f7064e09310
change tree figure
Nozomi Teruya <e125769@ie.u-ryukyu.ac.jp>
parents:
29
diff
changeset
|
403 |
3f7064e09310
change tree figure
Nozomi Teruya <e125769@ie.u-ryukyu.ac.jp>
parents:
29
diff
changeset
|
404 |
3f7064e09310
change tree figure
Nozomi Teruya <e125769@ie.u-ryukyu.ac.jp>
parents:
29
diff
changeset
|
405 </div> |
3f7064e09310
change tree figure
Nozomi Teruya <e125769@ie.u-ryukyu.ac.jp>
parents:
29
diff
changeset
|
406 <div class='slide '> |
3f7064e09310
change tree figure
Nozomi Teruya <e125769@ie.u-ryukyu.ac.jp>
parents:
29
diff
changeset
|
407 <!-- _S9SLIDE_ --> |
3f7064e09310
change tree figure
Nozomi Teruya <e125769@ie.u-ryukyu.ac.jp>
parents:
29
diff
changeset
|
408 <h1 id="topology-manager-----2">Topology Managerの拡張設計 - 別トポロジーへの接続</h1> |
3f7064e09310
change tree figure
Nozomi Teruya <e125769@ie.u-ryukyu.ac.jp>
parents:
29
diff
changeset
|
409 <ol> |
3f7064e09310
change tree figure
Nozomi Teruya <e125769@ie.u-ryukyu.ac.jp>
parents:
29
diff
changeset
|
410 <li>RootNode(B) が Topology Manager(A) と接 続し、自身の接続先ノードの情報を取得 |
3f7064e09310
change tree figure
Nozomi Teruya <e125769@ie.u-ryukyu.ac.jp>
parents:
29
diff
changeset
|
411 <img src="./pictures/private3.svg" alt="opt" width="70%" />//変更</li> |
3f7064e09310
change tree figure
Nozomi Teruya <e125769@ie.u-ryukyu.ac.jp>
parents:
29
diff
changeset
|
412 </ol> |
3f7064e09310
change tree figure
Nozomi Teruya <e125769@ie.u-ryukyu.ac.jp>
parents:
29
diff
changeset
|
413 |
3f7064e09310
change tree figure
Nozomi Teruya <e125769@ie.u-ryukyu.ac.jp>
parents:
29
diff
changeset
|
414 |
3f7064e09310
change tree figure
Nozomi Teruya <e125769@ie.u-ryukyu.ac.jp>
parents:
29
diff
changeset
|
415 </div> |
3f7064e09310
change tree figure
Nozomi Teruya <e125769@ie.u-ryukyu.ac.jp>
parents:
29
diff
changeset
|
416 <div class='slide '> |
3f7064e09310
change tree figure
Nozomi Teruya <e125769@ie.u-ryukyu.ac.jp>
parents:
29
diff
changeset
|
417 <!-- _S9SLIDE_ --> |
3f7064e09310
change tree figure
Nozomi Teruya <e125769@ie.u-ryukyu.ac.jp>
parents:
29
diff
changeset
|
418 <h1 id="topology-manager-----3">Topology Managerの拡張設計 - 別トポロジーへの接続</h1> |
3f7064e09310
change tree figure
Nozomi Teruya <e125769@ie.u-ryukyu.ac.jp>
parents:
29
diff
changeset
|
419 <ol> |
3f7064e09310
change tree figure
Nozomi Teruya <e125769@ie.u-ryukyu.ac.jp>
parents:
29
diff
changeset
|
420 <li>取得した情報をもとに RootNode(A) に接続<br /> |
3f7064e09310
change tree figure
Nozomi Teruya <e125769@ie.u-ryukyu.ac.jp>
parents:
29
diff
changeset
|
421 <img src="./pictures/private4.svg" alt="opt" width="70%" />//変更</li> |
3f7064e09310
change tree figure
Nozomi Teruya <e125769@ie.u-ryukyu.ac.jp>
parents:
29
diff
changeset
|
422 </ol> |
3f7064e09310
change tree figure
Nozomi Teruya <e125769@ie.u-ryukyu.ac.jp>
parents:
29
diff
changeset
|
423 |
3f7064e09310
change tree figure
Nozomi Teruya <e125769@ie.u-ryukyu.ac.jp>
parents:
29
diff
changeset
|
424 |
3f7064e09310
change tree figure
Nozomi Teruya <e125769@ie.u-ryukyu.ac.jp>
parents:
29
diff
changeset
|
425 </div> |
3f7064e09310
change tree figure
Nozomi Teruya <e125769@ie.u-ryukyu.ac.jp>
parents:
29
diff
changeset
|
426 <div class='slide '> |
3f7064e09310
change tree figure
Nozomi Teruya <e125769@ie.u-ryukyu.ac.jp>
parents:
29
diff
changeset
|
427 <!-- _S9SLIDE_ --> |
3f7064e09310
change tree figure
Nozomi Teruya <e125769@ie.u-ryukyu.ac.jp>
parents:
29
diff
changeset
|
428 <h1 id="topology-manager">複数のTopology Managerへの対応</h1> |
3f7064e09310
change tree figure
Nozomi Teruya <e125769@ie.u-ryukyu.ac.jp>
parents:
29
diff
changeset
|
429 <ul> |
3f7064e09310
change tree figure
Nozomi Teruya <e125769@ie.u-ryukyu.ac.jp>
parents:
29
diff
changeset
|
430 <li>Topology Managerは各ノードにnodeNameを割り当て管理</li> |
3f7064e09310
change tree figure
Nozomi Teruya <e125769@ie.u-ryukyu.ac.jp>
parents:
29
diff
changeset
|
431 <li>Topology Nodeは割り当てられたnodeNameをDSとして保持しTopology Managerと通信</li> |
3f7064e09310
change tree figure
Nozomi Teruya <e125769@ie.u-ryukyu.ac.jp>
parents:
29
diff
changeset
|
432 <li>Topology Nodeが各Topology Managerに対応する複数のnodeNameを持つようにする<br /> |
3f7064e09310
change tree figure
Nozomi Teruya <e125769@ie.u-ryukyu.ac.jp>
parents:
29
diff
changeset
|
433 <img src="./pictures/somehostname.svg" alt="opt" width="40%" />//変更</li> |
3f7064e09310
change tree figure
Nozomi Teruya <e125769@ie.u-ryukyu.ac.jp>
parents:
29
diff
changeset
|
434 </ul> |
3f7064e09310
change tree figure
Nozomi Teruya <e125769@ie.u-ryukyu.ac.jp>
parents:
29
diff
changeset
|
435 |
3f7064e09310
change tree figure
Nozomi Teruya <e125769@ie.u-ryukyu.ac.jp>
parents:
29
diff
changeset
|
436 |
3f7064e09310
change tree figure
Nozomi Teruya <e125769@ie.u-ryukyu.ac.jp>
parents:
29
diff
changeset
|
437 </div> |
3f7064e09310
change tree figure
Nozomi Teruya <e125769@ie.u-ryukyu.ac.jp>
parents:
29
diff
changeset
|
438 <div class='slide '> |
3f7064e09310
change tree figure
Nozomi Teruya <e125769@ie.u-ryukyu.ac.jp>
parents:
29
diff
changeset
|
439 <!-- _S9SLIDE_ --> |
3f7064e09310
change tree figure
Nozomi Teruya <e125769@ie.u-ryukyu.ac.jp>
parents:
29
diff
changeset
|
440 <h1 id="local-dsm">Local DSMの切り替えによる対応</h1> |
3f7064e09310
change tree figure
Nozomi Teruya <e125769@ie.u-ryukyu.ac.jp>
parents:
29
diff
changeset
|
441 <ul> |
3f7064e09310
change tree figure
Nozomi Teruya <e125769@ie.u-ryukyu.ac.jp>
parents:
29
diff
changeset
|
442 <li>通常のLocal DSMとは別にTopology ManagerごとのLocal DSMを作成しnodeNameを管理</li> |
3f7064e09310
change tree figure
Nozomi Teruya <e125769@ie.u-ryukyu.ac.jp>
parents:
29
diff
changeset
|
443 <li>Tpology Manager/Nodeのコードを大きく変えずにTopology Managerの複数対応が可能<br /> |
3f7064e09310
change tree figure
Nozomi Teruya <e125769@ie.u-ryukyu.ac.jp>
parents:
29
diff
changeset
|
444 <img src="./pictures/somehostname2.svg" alt="right" width="40%" /></li> |
3f7064e09310
change tree figure
Nozomi Teruya <e125769@ie.u-ryukyu.ac.jp>
parents:
29
diff
changeset
|
445 </ul> |
3f7064e09310
change tree figure
Nozomi Teruya <e125769@ie.u-ryukyu.ac.jp>
parents:
29
diff
changeset
|
446 |
3f7064e09310
change tree figure
Nozomi Teruya <e125769@ie.u-ryukyu.ac.jp>
parents:
29
diff
changeset
|
447 |
3f7064e09310
change tree figure
Nozomi Teruya <e125769@ie.u-ryukyu.ac.jp>
parents:
29
diff
changeset
|
448 </div> |
3f7064e09310
change tree figure
Nozomi Teruya <e125769@ie.u-ryukyu.ac.jp>
parents:
29
diff
changeset
|
449 <div class='slide '> |
3f7064e09310
change tree figure
Nozomi Teruya <e125769@ie.u-ryukyu.ac.jp>
parents:
29
diff
changeset
|
450 <!-- _S9SLIDE_ --> |
3f7064e09310
change tree figure
Nozomi Teruya <e125769@ie.u-ryukyu.ac.jp>
parents:
29
diff
changeset
|
451 <h1 id="key">Keyの切り替えによる対応</h1> |
3f7064e09310
change tree figure
Nozomi Teruya <e125769@ie.u-ryukyu.ac.jp>
parents:
29
diff
changeset
|
452 <ul> |
3f7064e09310
change tree figure
Nozomi Teruya <e125769@ie.u-ryukyu.ac.jp>
parents:
29
diff
changeset
|
453 <li>DSMを管理するclassがstaticのためDSMの複数生成ができない</li> |
3f7064e09310
change tree figure
Nozomi Teruya <e125769@ie.u-ryukyu.ac.jp>
parents:
29
diff
changeset
|
454 <li>staticを抜くにはAliceのコードを大幅に変更しなければならない</li> |
3f7064e09310
change tree figure
Nozomi Teruya <e125769@ie.u-ryukyu.ac.jp>
parents:
29
diff
changeset
|
455 <li>nodeNameのDSを管理するkeyにManagerごとの番号を付け加えKeyによって切り替えている<br /> |
3f7064e09310
change tree figure
Nozomi Teruya <e125769@ie.u-ryukyu.ac.jp>
parents:
29
diff
changeset
|
456 <img src="./pictures/somehostname3.svg" alt="right" width="40%" />//変更</li> |
3f7064e09310
change tree figure
Nozomi Teruya <e125769@ie.u-ryukyu.ac.jp>
parents:
29
diff
changeset
|
457 </ul> |
29 | 458 |
459 | |
460 </div> | |
461 <div class='slide '> | |
462 <!-- _S9SLIDE_ --> | |
30
3f7064e09310
change tree figure
Nozomi Teruya <e125769@ie.u-ryukyu.ac.jp>
parents:
29
diff
changeset
|
463 <h1 id="topology-manager-----4">Topology Managerの拡張設計 - 別ネットワークへの接続</h1> |
3f7064e09310
change tree figure
Nozomi Teruya <e125769@ie.u-ryukyu.ac.jp>
parents:
29
diff
changeset
|
464 <ul> |
3f7064e09310
change tree figure
Nozomi Teruya <e125769@ie.u-ryukyu.ac.jp>
parents:
29
diff
changeset
|
465 <li>各プライベートネットワーク内を管理するPrivate Topology Manager</li> |
3f7064e09310
change tree figure
Nozomi Teruya <e125769@ie.u-ryukyu.ac.jp>
parents:
29
diff
changeset
|
466 <li>グローバルIPアドレスを持ったGlobal Topology Managerを1つ立てる</li> |
3f7064e09310
change tree figure
Nozomi Teruya <e125769@ie.u-ryukyu.ac.jp>
parents:
29
diff
changeset
|
467 <li>TopologyNodeが複数対応できるためPrivate/Global Topology Managerに接続<br /> |
3f7064e09310
change tree figure
Nozomi Teruya <e125769@ie.u-ryukyu.ac.jp>
parents:
29
diff
changeset
|
468 <img src="./pictures/overNAT.svg" alt="opt" width="40%" /></li> |
3f7064e09310
change tree figure
Nozomi Teruya <e125769@ie.u-ryukyu.ac.jp>
parents:
29
diff
changeset
|
469 </ul> |
3f7064e09310
change tree figure
Nozomi Teruya <e125769@ie.u-ryukyu.ac.jp>
parents:
29
diff
changeset
|
470 |
3f7064e09310
change tree figure
Nozomi Teruya <e125769@ie.u-ryukyu.ac.jp>
parents:
29
diff
changeset
|
471 |
3f7064e09310
change tree figure
Nozomi Teruya <e125769@ie.u-ryukyu.ac.jp>
parents:
29
diff
changeset
|
472 </div> |
3f7064e09310
change tree figure
Nozomi Teruya <e125769@ie.u-ryukyu.ac.jp>
parents:
29
diff
changeset
|
473 <div class='slide '> |
3f7064e09310
change tree figure
Nozomi Teruya <e125769@ie.u-ryukyu.ac.jp>
parents:
29
diff
changeset
|
474 <!-- _S9SLIDE_ --> |
3f7064e09310
change tree figure
Nozomi Teruya <e125769@ie.u-ryukyu.ac.jp>
parents:
29
diff
changeset
|
475 <h1 id="topology-manager-----5">Topology Managerの拡張設計 - 別ネットワークへの接続</h1> |
3f7064e09310
change tree figure
Nozomi Teruya <e125769@ie.u-ryukyu.ac.jp>
parents:
29
diff
changeset
|
476 <ul> |
3f7064e09310
change tree figure
Nozomi Teruya <e125769@ie.u-ryukyu.ac.jp>
parents:
29
diff
changeset
|
477 <li>各プライベートネットワークのRootNodeをGlobal Topology Managerが木構造に接続</li> |
3f7064e09310
change tree figure
Nozomi Teruya <e125769@ie.u-ryukyu.ac.jp>
parents:
29
diff
changeset
|
478 <li>Global Topology Manager foresutoに木を構成</li> |
3f7064e09310
change tree figure
Nozomi Teruya <e125769@ie.u-ryukyu.ac.jp>
parents:
29
diff
changeset
|
479 <li>1つのノードへの接続数は最大4 |
3f7064e09310
change tree figure
Nozomi Teruya <e125769@ie.u-ryukyu.ac.jp>
parents:
29
diff
changeset
|
480 <img src="./pictures/3Dtree.svg" alt="right" width="40%" />//変更</li> |
3f7064e09310
change tree figure
Nozomi Teruya <e125769@ie.u-ryukyu.ac.jp>
parents:
29
diff
changeset
|
481 </ul> |
3f7064e09310
change tree figure
Nozomi Teruya <e125769@ie.u-ryukyu.ac.jp>
parents:
29
diff
changeset
|
482 |
3f7064e09310
change tree figure
Nozomi Teruya <e125769@ie.u-ryukyu.ac.jp>
parents:
29
diff
changeset
|
483 |
3f7064e09310
change tree figure
Nozomi Teruya <e125769@ie.u-ryukyu.ac.jp>
parents:
29
diff
changeset
|
484 </div> |
3f7064e09310
change tree figure
Nozomi Teruya <e125769@ie.u-ryukyu.ac.jp>
parents:
29
diff
changeset
|
485 <div class='slide '> |
3f7064e09310
change tree figure
Nozomi Teruya <e125769@ie.u-ryukyu.ac.jp>
parents:
29
diff
changeset
|
486 <!-- _S9SLIDE_ --> |
3f7064e09310
change tree figure
Nozomi Teruya <e125769@ie.u-ryukyu.ac.jp>
parents:
29
diff
changeset
|
487 <h1 id="topology-manager-----6">Topology Managerの拡張設計 - 別ネットワークへの接続</h1> |
3f7064e09310
change tree figure
Nozomi Teruya <e125769@ie.u-ryukyu.ac.jp>
parents:
29
diff
changeset
|
488 <ul> |
3f7064e09310
change tree figure
Nozomi Teruya <e125769@ie.u-ryukyu.ac.jp>
parents:
29
diff
changeset
|
489 <li>Topology Managerの「参加表明のあったノードで木を構成」仕様は変わらない</li> |
3f7064e09310
change tree figure
Nozomi Teruya <e125769@ie.u-ryukyu.ac.jp>
parents:
29
diff
changeset
|
490 <li>NAT越えはTopology ManagerのMeta Meta Computationと言える </li> |
3f7064e09310
change tree figure
Nozomi Teruya <e125769@ie.u-ryukyu.ac.jp>
parents:
29
diff
changeset
|
491 </ul> |
3f7064e09310
change tree figure
Nozomi Teruya <e125769@ie.u-ryukyu.ac.jp>
parents:
29
diff
changeset
|
492 |
3f7064e09310
change tree figure
Nozomi Teruya <e125769@ie.u-ryukyu.ac.jp>
parents:
29
diff
changeset
|
493 |
3f7064e09310
change tree figure
Nozomi Teruya <e125769@ie.u-ryukyu.ac.jp>
parents:
29
diff
changeset
|
494 </div> |
3f7064e09310
change tree figure
Nozomi Teruya <e125769@ie.u-ryukyu.ac.jp>
parents:
29
diff
changeset
|
495 <div class='slide '> |
3f7064e09310
change tree figure
Nozomi Teruya <e125769@ie.u-ryukyu.ac.jp>
parents:
29
diff
changeset
|
496 <!-- _S9SLIDE_ --> |
3f7064e09310
change tree figure
Nozomi Teruya <e125769@ie.u-ryukyu.ac.jp>
parents:
29
diff
changeset
|
497 <h1 id="topology-manager-----7">Topology Managerの拡張設計 - 別ネットワークへの接続</h1> |
3f7064e09310
change tree figure
Nozomi Teruya <e125769@ie.u-ryukyu.ac.jp>
parents:
29
diff
changeset
|
498 <ol> |
3f7064e09310
change tree figure
Nozomi Teruya <e125769@ie.u-ryukyu.ac.jp>
parents:
29
diff
changeset
|
499 <li>接続を要求する側のいずれかのノードがGlobal Topology ManagerのIPアドレスを自身を管理するTopology ManagerのDSMに保存 |
3f7064e09310
change tree figure
Nozomi Teruya <e125769@ie.u-ryukyu.ac.jp>
parents:
29
diff
changeset
|
500 <img src="./pictures/global1.svg" alt="opt" width="40%" /></li> |
3f7064e09310
change tree figure
Nozomi Teruya <e125769@ie.u-ryukyu.ac.jp>
parents:
29
diff
changeset
|
501 </ol> |
3f7064e09310
change tree figure
Nozomi Teruya <e125769@ie.u-ryukyu.ac.jp>
parents:
29
diff
changeset
|
502 |
3f7064e09310
change tree figure
Nozomi Teruya <e125769@ie.u-ryukyu.ac.jp>
parents:
29
diff
changeset
|
503 |
3f7064e09310
change tree figure
Nozomi Teruya <e125769@ie.u-ryukyu.ac.jp>
parents:
29
diff
changeset
|
504 </div> |
3f7064e09310
change tree figure
Nozomi Teruya <e125769@ie.u-ryukyu.ac.jp>
parents:
29
diff
changeset
|
505 <div class='slide '> |
3f7064e09310
change tree figure
Nozomi Teruya <e125769@ie.u-ryukyu.ac.jp>
parents:
29
diff
changeset
|
506 <!-- _S9SLIDE_ --> |
3f7064e09310
change tree figure
Nozomi Teruya <e125769@ie.u-ryukyu.ac.jp>
parents:
29
diff
changeset
|
507 <h1 id="topology-manager-----8">Topology Managerの拡張設計 - 別ネットワークへの接続</h1> |
3f7064e09310
change tree figure
Nozomi Teruya <e125769@ie.u-ryukyu.ac.jp>
parents:
29
diff
changeset
|
508 <ol> |
3f7064e09310
change tree figure
Nozomi Teruya <e125769@ie.u-ryukyu.ac.jp>
parents:
29
diff
changeset
|
509 <li>Topology ManagerはRootNodeにGlobal Topology Managerへの接続をするよう要求 |
3f7064e09310
change tree figure
Nozomi Teruya <e125769@ie.u-ryukyu.ac.jp>
parents:
29
diff
changeset
|
510 <img src="./pictures/global2.svg" alt="opt" width="40%" /></li> |
3f7064e09310
change tree figure
Nozomi Teruya <e125769@ie.u-ryukyu.ac.jp>
parents:
29
diff
changeset
|
511 </ol> |
3f7064e09310
change tree figure
Nozomi Teruya <e125769@ie.u-ryukyu.ac.jp>
parents:
29
diff
changeset
|
512 |
3f7064e09310
change tree figure
Nozomi Teruya <e125769@ie.u-ryukyu.ac.jp>
parents:
29
diff
changeset
|
513 |
3f7064e09310
change tree figure
Nozomi Teruya <e125769@ie.u-ryukyu.ac.jp>
parents:
29
diff
changeset
|
514 </div> |
3f7064e09310
change tree figure
Nozomi Teruya <e125769@ie.u-ryukyu.ac.jp>
parents:
29
diff
changeset
|
515 <div class='slide '> |
3f7064e09310
change tree figure
Nozomi Teruya <e125769@ie.u-ryukyu.ac.jp>
parents:
29
diff
changeset
|
516 <!-- _S9SLIDE_ --> |
3f7064e09310
change tree figure
Nozomi Teruya <e125769@ie.u-ryukyu.ac.jp>
parents:
29
diff
changeset
|
517 <h1 id="topology-manager-----9">Topology Managerの拡張設計 - 別ネットワークへの接続</h1> |
3f7064e09310
change tree figure
Nozomi Teruya <e125769@ie.u-ryukyu.ac.jp>
parents:
29
diff
changeset
|
518 <ol> |
3f7064e09310
change tree figure
Nozomi Teruya <e125769@ie.u-ryukyu.ac.jp>
parents:
29
diff
changeset
|
519 <li>RootNodeがGrobal Topology Managerと接続し、自身のIPアドレスを送る。Global Topology Manager が受け取ったIPアドレスがプライベートアドレスであれば、ノードに対してNATの外側IPアドレス/ポート番号を要求される。RootNode はそれに返答。 |
3f7064e09310
change tree figure
Nozomi Teruya <e125769@ie.u-ryukyu.ac.jp>
parents:
29
diff
changeset
|
520 <img src="./pictures/global3.svg" alt="opt" width="40%" /></li> |
3f7064e09310
change tree figure
Nozomi Teruya <e125769@ie.u-ryukyu.ac.jp>
parents:
29
diff
changeset
|
521 </ol> |
3f7064e09310
change tree figure
Nozomi Teruya <e125769@ie.u-ryukyu.ac.jp>
parents:
29
diff
changeset
|
522 |
3f7064e09310
change tree figure
Nozomi Teruya <e125769@ie.u-ryukyu.ac.jp>
parents:
29
diff
changeset
|
523 |
3f7064e09310
change tree figure
Nozomi Teruya <e125769@ie.u-ryukyu.ac.jp>
parents:
29
diff
changeset
|
524 </div> |
3f7064e09310
change tree figure
Nozomi Teruya <e125769@ie.u-ryukyu.ac.jp>
parents:
29
diff
changeset
|
525 <div class='slide '> |
3f7064e09310
change tree figure
Nozomi Teruya <e125769@ie.u-ryukyu.ac.jp>
parents:
29
diff
changeset
|
526 <!-- _S9SLIDE_ --> |
3f7064e09310
change tree figure
Nozomi Teruya <e125769@ie.u-ryukyu.ac.jp>
parents:
29
diff
changeset
|
527 <h1 id="topology-manager-----10">Topology Managerの拡張設計 - 別ネットワークへの接続</h1> |
3f7064e09310
change tree figure
Nozomi Teruya <e125769@ie.u-ryukyu.ac.jp>
parents:
29
diff
changeset
|
528 <ol> |
3f7064e09310
change tree figure
Nozomi Teruya <e125769@ie.u-ryukyu.ac.jp>
parents:
29
diff
changeset
|
529 <li>UDP hole punching 行われ、Network1のRootNodeとNetwork2のRootNodeが接続される |
3f7064e09310
change tree figure
Nozomi Teruya <e125769@ie.u-ryukyu.ac.jp>
parents:
29
diff
changeset
|
530 <img src="./pictures/global4.svg" alt="opt" width="40%" /></li> |
3f7064e09310
change tree figure
Nozomi Teruya <e125769@ie.u-ryukyu.ac.jp>
parents:
29
diff
changeset
|
531 </ol> |
3f7064e09310
change tree figure
Nozomi Teruya <e125769@ie.u-ryukyu.ac.jp>
parents:
29
diff
changeset
|
532 |
3f7064e09310
change tree figure
Nozomi Teruya <e125769@ie.u-ryukyu.ac.jp>
parents:
29
diff
changeset
|
533 |
3f7064e09310
change tree figure
Nozomi Teruya <e125769@ie.u-ryukyu.ac.jp>
parents:
29
diff
changeset
|
534 </div> |
3f7064e09310
change tree figure
Nozomi Teruya <e125769@ie.u-ryukyu.ac.jp>
parents:
29
diff
changeset
|
535 <div class='slide '> |
3f7064e09310
change tree figure
Nozomi Teruya <e125769@ie.u-ryukyu.ac.jp>
parents:
29
diff
changeset
|
536 <!-- _S9SLIDE_ --> |
3f7064e09310
change tree figure
Nozomi Teruya <e125769@ie.u-ryukyu.ac.jp>
parents:
29
diff
changeset
|
537 <h1 id="topology-manager-----11">Topology Managerの拡張設計 - 別ネットワークへの接続</h1> |
3f7064e09310
change tree figure
Nozomi Teruya <e125769@ie.u-ryukyu.ac.jp>
parents:
29
diff
changeset
|
538 <ol> |
3f7064e09310
change tree figure
Nozomi Teruya <e125769@ie.u-ryukyu.ac.jp>
parents:
29
diff
changeset
|
539 <li>もし接続が確立されなければ、Global Topology Manager がデータ中継用の CSを用意しデータを中継する |
3f7064e09310
change tree figure
Nozomi Teruya <e125769@ie.u-ryukyu.ac.jp>
parents:
29
diff
changeset
|
540 <img src="./pictures/global5.svg" alt="opt" width="40%" /></li> |
3f7064e09310
change tree figure
Nozomi Teruya <e125769@ie.u-ryukyu.ac.jp>
parents:
29
diff
changeset
|
541 </ol> |
29 | 542 |
543 | |
544 </div> | |
545 <div class='slide '> | |
546 <!-- _S9SLIDE_ --> | |
547 <h1 id="alice1---erlang">Aliceと他言語等との比較(1) - Erlang</h1> | |
548 <ul> | |
549 <li>共通点 | |
550 <ul> | |
551 <li>タスクをプロセスと呼ばれるメモリを共有しないスレッドに分割</li> | |
552 <li>共有メモリにアクセスするためのメモリロックの仕組みを必要としない</li> | |
553 </ul> | |
554 </li> | |
555 <li>相違点 | |
556 <ul> | |
557 <li>Topologyの構成等はユーザーが書く</li> | |
30
3f7064e09310
change tree figure
Nozomi Teruya <e125769@ie.u-ryukyu.ac.jp>
parents:
29
diff
changeset
|
558 <li>NAT越えをサポートするライブラリがありプログラマはそれを組み合わせてNAT越えを行う</li> |
29 | 559 </ul> |
560 </li> | |
561 </ul> | |
562 | |
563 | |
564 </div> | |
565 <div class='slide '> | |
566 <!-- _S9SLIDE_ --> | |
567 <h1 id="alice2---akka">Aliceと他言語等との比較(2) - Akka</h1> | |
568 <ul> | |
569 <li>共通点 | |
570 <ul> | |
571 <li>通信部分等を子アクターで分離し階層化</li> | |
572 </ul> | |
573 </li> | |
574 <li>相違点 | |
575 <ul> | |
576 <li>Topologyの構成等はユーザーが書く</li> | |
30
3f7064e09310
change tree figure
Nozomi Teruya <e125769@ie.u-ryukyu.ac.jp>
parents:
29
diff
changeset
|
577 <li>外側IPアドレス/ポート番号を指定できるが、ポートマッピングはユーザーが記述しなければならない</li> |
29 | 578 </ul> |
579 </li> | |
580 </ul> | |
581 | |
582 | |
583 </div> | |
584 <div class='slide '> | |
585 <!-- _S9SLIDE_ --> | |
30
3f7064e09310
change tree figure
Nozomi Teruya <e125769@ie.u-ryukyu.ac.jp>
parents:
29
diff
changeset
|
586 <h1 id="section-6">まとめ</h1> |
29 | 587 <ul> |
30
3f7064e09310
change tree figure
Nozomi Teruya <e125769@ie.u-ryukyu.ac.jp>
parents:
29
diff
changeset
|
588 <li>別トポロジー・別ネットワークのアプリケーションとの接続を可能にするため、分散トポロジーの構成・管理をするMeta ComputationであるTopology Manager/Nodeの拡張設計を行った。</li> |
29 | 589 <li>DSM の切り替えにより Topology Node を複数の Topology Manager に対応させ、Meta Meta Computation として NAT 越えの機能を追加することで、Topology Manager/Node のコードを大きく変えず自由度の高い通信が可能になると期待される。</li> |
30
3f7064e09310
change tree figure
Nozomi Teruya <e125769@ie.u-ryukyu.ac.jp>
parents:
29
diff
changeset
|
590 <li>しかし、それを実現するにはAlice の DSM を管理する class の static を取り除かなければならず、それは容易ではなかった。</li> |
29 | 591 </ul> |
592 | |
593 | |
594 </div> | |
595 <div class='slide '> | |
596 <!-- _S9SLIDE_ --> | |
30
3f7064e09310
change tree figure
Nozomi Teruya <e125769@ie.u-ryukyu.ac.jp>
parents:
29
diff
changeset
|
597 <h1 id="section-7">今後の課題</h1> |
29 | 598 <ul> |
599 <li>DSMのレイヤー分け | |
600 <ul> | |
601 <li>staticのないコードで再設計し、Local DSMをメタレイヤー、トポロジーごとのレイヤーなどに分ける</li> | |
602 </ul> | |
603 </li> | |
604 <li>APIの再設計 | |
605 <ul> | |
606 <li>put/updateに対しtake/peekがcreate()・setKey()の操作はわかりにくい</li> | |
607 </ul> | |
608 </li> | |
609 <li>DSの型情報のマネジメント | |
610 <ul> | |
611 <li>型情報がないのでpeek/takeする際にわかりにくい</li> | |
612 </ul> | |
613 </li> | |
614 </ul> | |
615 | |
616 <style type="text/css"> | |
617 <!-- | |
618 *{ | |
619 font:nomal 100% 'PT Sans'; | |
620 } | |
621 | |
622 ul > li{ | |
623 list-style-type:disc; | |
624 } | |
625 | |
626 .slide h1{ | |
627 text-align:left; | |
628 color:#777777; | |
629 font:bold 40px/1.13 'PT Sans', sans-serif; | |
630 margin-bottom: 50px; | |
631 } | |
632 | |
633 div#slide1 h1{ | |
634 text-align:left; | |
635 color:#777777; | |
636 font:bold 60px 'PT Sans', sans-serif; | |
637 margin-bottom: 50px; | |
638 } | |
639 | |
640 pre > code{ | |
641 font-family:'Droid Sans Mono', 'Courier New', monospace; | |
642 } | |
643 | |
644 img[alt="opt"]{ | |
645 display: block; | |
646 margin-left: auto; | |
647 margin-right: auto; | |
648 } | |
649 | |
650 img[alt="right"]{ | |
651 margin-right: 0; | |
652 } | |
653 | |
654 table { | |
655 margin-left: auto; | |
656 margin-right: auto; | |
657 } | |
658 | |
659 th { | |
660 font-size: 120%; | |
661 } | |
662 --> | |
663 </style> | |
664 | |
665 <!-- === end markdown block === --> | |
666 </div> | |
667 | |
668 | |
669 </div><!-- presentation --> | |
670 </body> | |
671 </html> |