annotate slide/thesis.html @ 17:55e745a21506 default tip

add abstruct & slide
author ichikitakahiro <e165713@ie.u-ryukyu.ac.jp>
date Sun, 16 Feb 2020 17:54:28 +0900
parents 7293b6481e32
children
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
7293b6481e32 add slide & tweak
ichikitakahiro <e165713@ie.u-ryukyu.ac.jp>
parents:
diff changeset
2
7293b6481e32 add slide & tweak
ichikitakahiro <e165713@ie.u-ryukyu.ac.jp>
parents:
diff changeset
3
7293b6481e32 add slide & tweak
ichikitakahiro <e165713@ie.u-ryukyu.ac.jp>
parents:
diff changeset
4
7293b6481e32 add slide & tweak
ichikitakahiro <e165713@ie.u-ryukyu.ac.jp>
parents:
diff changeset
5
7293b6481e32 add slide & tweak
ichikitakahiro <e165713@ie.u-ryukyu.ac.jp>
parents:
diff changeset
6 <!DOCTYPE html>
7293b6481e32 add slide & tweak
ichikitakahiro <e165713@ie.u-ryukyu.ac.jp>
parents:
diff changeset
7 <html>
7293b6481e32 add slide & tweak
ichikitakahiro <e165713@ie.u-ryukyu.ac.jp>
parents:
diff changeset
8 <head>
7293b6481e32 add slide & tweak
ichikitakahiro <e165713@ie.u-ryukyu.ac.jp>
parents:
diff changeset
9 <meta http-equiv="content-type" content="text/html;charset=utf-8">
7293b6481e32 add slide & tweak
ichikitakahiro <e165713@ie.u-ryukyu.ac.jp>
parents:
diff changeset
10 <title>分散フレームワークChristieを用いたリモートエディタの実装</title>
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 <meta name="generator" content="Slide Show (S9) v4.1.0 on Ruby 2.6.3 (2019-04-16) [universal.x86_64-darwin19]">
7293b6481e32 add slide & tweak
ichikitakahiro <e165713@ie.u-ryukyu.ac.jp>
parents:
diff changeset
13 <meta name="author" content="Takahiro Ikki, Shinji Kono" >
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 <!-- style sheet links -->
7293b6481e32 add slide & tweak
ichikitakahiro <e165713@ie.u-ryukyu.ac.jp>
parents:
diff changeset
16 <link rel="stylesheet" href="s6/themes/projection.css" media="screen,projection">
7293b6481e32 add slide & tweak
ichikitakahiro <e165713@ie.u-ryukyu.ac.jp>
parents:
diff changeset
17 <link rel="stylesheet" href="s6/themes/screen.css" media="screen">
7293b6481e32 add slide & tweak
ichikitakahiro <e165713@ie.u-ryukyu.ac.jp>
parents:
diff changeset
18 <link rel="stylesheet" href="s6/themes/print.css" media="print">
7293b6481e32 add slide & tweak
ichikitakahiro <e165713@ie.u-ryukyu.ac.jp>
parents:
diff changeset
19 <link rel="stylesheet" href="s6/themes/blank.css" media="screen,projection">
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 <!-- JS -->
7293b6481e32 add slide & tweak
ichikitakahiro <e165713@ie.u-ryukyu.ac.jp>
parents:
diff changeset
22 <script src="s6/js/jquery-1.11.3.min.js"></script>
7293b6481e32 add slide & tweak
ichikitakahiro <e165713@ie.u-ryukyu.ac.jp>
parents:
diff changeset
23 <script src="s6/js/jquery.slideshow.js"></script>
7293b6481e32 add slide & tweak
ichikitakahiro <e165713@ie.u-ryukyu.ac.jp>
parents:
diff changeset
24 <script src="s6/js/jquery.slideshow.counter.js"></script>
7293b6481e32 add slide & tweak
ichikitakahiro <e165713@ie.u-ryukyu.ac.jp>
parents:
diff changeset
25 <script src="s6/js/jquery.slideshow.controls.js"></script>
7293b6481e32 add slide & tweak
ichikitakahiro <e165713@ie.u-ryukyu.ac.jp>
parents:
diff changeset
26 <script src="s6/js/jquery.slideshow.footer.js"></script>
7293b6481e32 add slide & tweak
ichikitakahiro <e165713@ie.u-ryukyu.ac.jp>
parents:
diff changeset
27 <script src="s6/js/jquery.slideshow.autoplay.js"></script>
7293b6481e32 add slide & tweak
ichikitakahiro <e165713@ie.u-ryukyu.ac.jp>
parents:
diff changeset
28
7293b6481e32 add slide & tweak
ichikitakahiro <e165713@ie.u-ryukyu.ac.jp>
parents:
diff changeset
29 <!-- prettify -->
7293b6481e32 add slide & tweak
ichikitakahiro <e165713@ie.u-ryukyu.ac.jp>
parents:
diff changeset
30 <link rel="stylesheet" href="scripts/prettify.css">
7293b6481e32 add slide & tweak
ichikitakahiro <e165713@ie.u-ryukyu.ac.jp>
parents:
diff changeset
31 <script src="scripts/prettify.js"></script>
7293b6481e32 add slide & tweak
ichikitakahiro <e165713@ie.u-ryukyu.ac.jp>
parents:
diff changeset
32
7293b6481e32 add slide & tweak
ichikitakahiro <e165713@ie.u-ryukyu.ac.jp>
parents:
diff changeset
33 <script>
7293b6481e32 add slide & tweak
ichikitakahiro <e165713@ie.u-ryukyu.ac.jp>
parents:
diff changeset
34 $(document).ready( function() {
7293b6481e32 add slide & tweak
ichikitakahiro <e165713@ie.u-ryukyu.ac.jp>
parents:
diff changeset
35 Slideshow.init();
7293b6481e32 add slide & tweak
ichikitakahiro <e165713@ie.u-ryukyu.ac.jp>
parents:
diff changeset
36
7293b6481e32 add slide & tweak
ichikitakahiro <e165713@ie.u-ryukyu.ac.jp>
parents:
diff changeset
37 $('code').each(function(_, el) {
7293b6481e32 add slide & tweak
ichikitakahiro <e165713@ie.u-ryukyu.ac.jp>
parents:
diff changeset
38 if (!el.classList.contains('noprettyprint')) {
7293b6481e32 add slide & tweak
ichikitakahiro <e165713@ie.u-ryukyu.ac.jp>
parents:
diff changeset
39 el.classList.add('prettyprint');
7293b6481e32 add slide & tweak
ichikitakahiro <e165713@ie.u-ryukyu.ac.jp>
parents:
diff changeset
40 }
7293b6481e32 add slide & tweak
ichikitakahiro <e165713@ie.u-ryukyu.ac.jp>
parents:
diff changeset
41 });
7293b6481e32 add slide & tweak
ichikitakahiro <e165713@ie.u-ryukyu.ac.jp>
parents:
diff changeset
42 prettyPrint();
7293b6481e32 add slide & tweak
ichikitakahiro <e165713@ie.u-ryukyu.ac.jp>
parents:
diff changeset
43 } );
7293b6481e32 add slide & tweak
ichikitakahiro <e165713@ie.u-ryukyu.ac.jp>
parents:
diff changeset
44
7293b6481e32 add slide & tweak
ichikitakahiro <e165713@ie.u-ryukyu.ac.jp>
parents:
diff changeset
45 </script>
7293b6481e32 add slide & tweak
ichikitakahiro <e165713@ie.u-ryukyu.ac.jp>
parents:
diff changeset
46
7293b6481e32 add slide & tweak
ichikitakahiro <e165713@ie.u-ryukyu.ac.jp>
parents:
diff changeset
47 <!-- Better Browser Banner for Microsoft Internet Explorer (IE) -->
7293b6481e32 add slide & tweak
ichikitakahiro <e165713@ie.u-ryukyu.ac.jp>
parents:
diff changeset
48 <!--[if IE]>
7293b6481e32 add slide & tweak
ichikitakahiro <e165713@ie.u-ryukyu.ac.jp>
parents:
diff changeset
49 <script src="s6/js/jquery.microsoft.js"></script>
7293b6481e32 add slide & tweak
ichikitakahiro <e165713@ie.u-ryukyu.ac.jp>
parents:
diff changeset
50 <![endif]-->
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
7293b6481e32 add slide & tweak
ichikitakahiro <e165713@ie.u-ryukyu.ac.jp>
parents:
diff changeset
53
7293b6481e32 add slide & tweak
ichikitakahiro <e165713@ie.u-ryukyu.ac.jp>
parents:
diff changeset
54 </head>
7293b6481e32 add slide & tweak
ichikitakahiro <e165713@ie.u-ryukyu.ac.jp>
parents:
diff changeset
55 <body>
7293b6481e32 add slide & tweak
ichikitakahiro <e165713@ie.u-ryukyu.ac.jp>
parents:
diff changeset
56
7293b6481e32 add slide & tweak
ichikitakahiro <e165713@ie.u-ryukyu.ac.jp>
parents:
diff changeset
57 <div class="layout">
7293b6481e32 add slide & tweak
ichikitakahiro <e165713@ie.u-ryukyu.ac.jp>
parents:
diff changeset
58 <div id="header"></div>
7293b6481e32 add slide & tweak
ichikitakahiro <e165713@ie.u-ryukyu.ac.jp>
parents:
diff changeset
59 <div id="footer">
7293b6481e32 add slide & tweak
ichikitakahiro <e165713@ie.u-ryukyu.ac.jp>
parents:
diff changeset
60 <div align="right">
7293b6481e32 add slide & tweak
ichikitakahiro <e165713@ie.u-ryukyu.ac.jp>
parents:
diff changeset
61 <img src="s6/images/logo.svg" width="200px">
7293b6481e32 add slide & tweak
ichikitakahiro <e165713@ie.u-ryukyu.ac.jp>
parents:
diff changeset
62 </div>
7293b6481e32 add slide & tweak
ichikitakahiro <e165713@ie.u-ryukyu.ac.jp>
parents:
diff changeset
63 </div>
7293b6481e32 add slide & tweak
ichikitakahiro <e165713@ie.u-ryukyu.ac.jp>
parents:
diff changeset
64 </div>
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 <div class="presentation">
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 <div class='slide cover'>
7293b6481e32 add slide & tweak
ichikitakahiro <e165713@ie.u-ryukyu.ac.jp>
parents:
diff changeset
69 <table width="90%" height="90%" border="0" align="center">
7293b6481e32 add slide & tweak
ichikitakahiro <e165713@ie.u-ryukyu.ac.jp>
parents:
diff changeset
70 <tr>
7293b6481e32 add slide & tweak
ichikitakahiro <e165713@ie.u-ryukyu.ac.jp>
parents:
diff changeset
71 <td>
7293b6481e32 add slide & tweak
ichikitakahiro <e165713@ie.u-ryukyu.ac.jp>
parents:
diff changeset
72 <div align="center">
7293b6481e32 add slide & tweak
ichikitakahiro <e165713@ie.u-ryukyu.ac.jp>
parents:
diff changeset
73 <h1><font color="#808db5">分散フレームワークChristieを用いたリモートエディタの実装</font></h1>
7293b6481e32 add slide & tweak
ichikitakahiro <e165713@ie.u-ryukyu.ac.jp>
parents:
diff changeset
74 </div>
7293b6481e32 add slide & tweak
ichikitakahiro <e165713@ie.u-ryukyu.ac.jp>
parents:
diff changeset
75 </td>
7293b6481e32 add slide & tweak
ichikitakahiro <e165713@ie.u-ryukyu.ac.jp>
parents:
diff changeset
76 </tr>
7293b6481e32 add slide & tweak
ichikitakahiro <e165713@ie.u-ryukyu.ac.jp>
parents:
diff changeset
77 <tr>
7293b6481e32 add slide & tweak
ichikitakahiro <e165713@ie.u-ryukyu.ac.jp>
parents:
diff changeset
78 <td>
7293b6481e32 add slide & tweak
ichikitakahiro <e165713@ie.u-ryukyu.ac.jp>
parents:
diff changeset
79 <div align="left">
7293b6481e32 add slide & tweak
ichikitakahiro <e165713@ie.u-ryukyu.ac.jp>
parents:
diff changeset
80 Takahiro Ikki, Shinji Kono
7293b6481e32 add slide & tweak
ichikitakahiro <e165713@ie.u-ryukyu.ac.jp>
parents:
diff changeset
81 琉球大学
7293b6481e32 add slide & tweak
ichikitakahiro <e165713@ie.u-ryukyu.ac.jp>
parents:
diff changeset
82 <hr style="color:#ffcc00;background-color:#ffcc00;text-align:left;border:none;width:100%;height:0.2em;">
7293b6481e32 add slide & tweak
ichikitakahiro <e165713@ie.u-ryukyu.ac.jp>
parents:
diff changeset
83 </div>
7293b6481e32 add slide & tweak
ichikitakahiro <e165713@ie.u-ryukyu.ac.jp>
parents:
diff changeset
84 </td>
7293b6481e32 add slide & tweak
ichikitakahiro <e165713@ie.u-ryukyu.ac.jp>
parents:
diff changeset
85 </tr>
7293b6481e32 add slide & tweak
ichikitakahiro <e165713@ie.u-ryukyu.ac.jp>
parents:
diff changeset
86 </table>
7293b6481e32 add slide & tweak
ichikitakahiro <e165713@ie.u-ryukyu.ac.jp>
parents:
diff changeset
87 </div>
7293b6481e32 add slide & tweak
ichikitakahiro <e165713@ie.u-ryukyu.ac.jp>
parents:
diff changeset
88
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
7293b6481e32 add slide & tweak
ichikitakahiro <e165713@ie.u-ryukyu.ac.jp>
parents:
diff changeset
91 <div class='slide'>
7293b6481e32 add slide & tweak
ichikitakahiro <e165713@ie.u-ryukyu.ac.jp>
parents:
diff changeset
92
7293b6481e32 add slide & tweak
ichikitakahiro <e165713@ie.u-ryukyu.ac.jp>
parents:
diff changeset
93 <!-- _S9SLIDE_ -->
7293b6481e32 add slide & tweak
ichikitakahiro <e165713@ie.u-ryukyu.ac.jp>
parents:
diff changeset
94 <h2 id="研究目的-背景">研究目的, 背景</h2>
7293b6481e32 add slide & tweak
ichikitakahiro <e165713@ie.u-ryukyu.ac.jp>
parents:
diff changeset
95 <ul>
7293b6481e32 add slide & tweak
ichikitakahiro <e165713@ie.u-ryukyu.ac.jp>
parents:
diff changeset
96 <li>ペアプログラミングなどでは同時に複数人が一つのファイルを編集することができるリモートエディタが有効である。</li>
17
55e745a21506 add abstruct & slide
ichikitakahiro <e165713@ie.u-ryukyu.ac.jp>
parents: 16
diff changeset
97 <li>既存のリモートエディタアプリケーションとしてVisual Stdio Codeのlive share機能があげられる。</li>
55e745a21506 add abstruct & slide
ichikitakahiro <e165713@ie.u-ryukyu.ac.jp>
parents: 16
diff changeset
98 <li>編集に参加するユーザーがそれぞれ好きなエディタが使えるアプリケーションを作成する。</li>
55e745a21506 add abstruct & slide
ichikitakahiro <e165713@ie.u-ryukyu.ac.jp>
parents: 16
diff changeset
99 <li>本研究室で開発している分散フレームワークChristieはGearという概念の性質上リモートエディタと相性が良い。</li>
55e745a21506 add abstruct & slide
ichikitakahiro <e165713@ie.u-ryukyu.ac.jp>
parents: 16
diff changeset
100 </ul>
55e745a21506 add abstruct & slide
ichikitakahiro <e165713@ie.u-ryukyu.ac.jp>
parents: 16
diff changeset
101
55e745a21506 add abstruct & slide
ichikitakahiro <e165713@ie.u-ryukyu.ac.jp>
parents: 16
diff changeset
102 <!--
55e745a21506 add abstruct & slide
ichikitakahiro <e165713@ie.u-ryukyu.ac.jp>
parents: 16
diff changeset
103 ## 発表の流れ
55e745a21506 add abstruct & slide
ichikitakahiro <e165713@ie.u-ryukyu.ac.jp>
parents: 16
diff changeset
104 - リモートエディタの機能と開発手順の解説
55e745a21506 add abstruct & slide
ichikitakahiro <e165713@ie.u-ryukyu.ac.jp>
parents: 16
diff changeset
105 - javaで制作したテスト用エディタ
55e745a21506 add abstruct & slide
ichikitakahiro <e165713@ie.u-ryukyu.ac.jp>
parents: 16
diff changeset
106 - コマンドパターンによる命令オブジェクトの作成
55e745a21506 add abstruct & slide
ichikitakahiro <e165713@ie.u-ryukyu.ac.jp>
parents: 16
diff changeset
107 - 編集位置の相違とその解消方法
55e745a21506 add abstruct & slide
ichikitakahiro <e165713@ie.u-ryukyu.ac.jp>
parents: 16
diff changeset
108 - スター型接続によるネットワーク通信
55e745a21506 add abstruct & slide
ichikitakahiro <e165713@ie.u-ryukyu.ac.jp>
parents: 16
diff changeset
109 - Christieの解説
55e745a21506 add abstruct & slide
ichikitakahiro <e165713@ie.u-ryukyu.ac.jp>
parents: 16
diff changeset
110 - Gearの概念
55e745a21506 add abstruct & slide
ichikitakahiro <e165713@ie.u-ryukyu.ac.jp>
parents: 16
diff changeset
111 - アノテーション
55e745a21506 add abstruct & slide
ichikitakahiro <e165713@ie.u-ryukyu.ac.jp>
parents: 16
diff changeset
112 - TopologyManager
55e745a21506 add abstruct & slide
ichikitakahiro <e165713@ie.u-ryukyu.ac.jp>
parents: 16
diff changeset
113 - 今後の課題とまとめ
55e745a21506 add abstruct & slide
ichikitakahiro <e165713@ie.u-ryukyu.ac.jp>
parents: 16
diff changeset
114 !-->
55e745a21506 add abstruct & slide
ichikitakahiro <e165713@ie.u-ryukyu.ac.jp>
parents: 16
diff changeset
115
55e745a21506 add abstruct & slide
ichikitakahiro <e165713@ie.u-ryukyu.ac.jp>
parents: 16
diff changeset
116
55e745a21506 add abstruct & slide
ichikitakahiro <e165713@ie.u-ryukyu.ac.jp>
parents: 16
diff changeset
117
55e745a21506 add abstruct & slide
ichikitakahiro <e165713@ie.u-ryukyu.ac.jp>
parents: 16
diff changeset
118 </div>
55e745a21506 add abstruct & slide
ichikitakahiro <e165713@ie.u-ryukyu.ac.jp>
parents: 16
diff changeset
119
55e745a21506 add abstruct & slide
ichikitakahiro <e165713@ie.u-ryukyu.ac.jp>
parents: 16
diff changeset
120 <div class='slide'>
55e745a21506 add abstruct & slide
ichikitakahiro <e165713@ie.u-ryukyu.ac.jp>
parents: 16
diff changeset
121 <!-- _S9SLIDE_ -->
55e745a21506 add abstruct & slide
ichikitakahiro <e165713@ie.u-ryukyu.ac.jp>
parents: 16
diff changeset
122 <h2 id="リモートエディタの概要説明">リモートエディタの概要説明</h2>
55e745a21506 add abstruct & slide
ichikitakahiro <e165713@ie.u-ryukyu.ac.jp>
parents: 16
diff changeset
123 <ul>
55e745a21506 add abstruct & slide
ichikitakahiro <e165713@ie.u-ryukyu.ac.jp>
parents: 16
diff changeset
124 <li>本研究で作成するリモートエディタはChristieの機能を用いて通信環境を構成する。</li>
55e745a21506 add abstruct & slide
ichikitakahiro <e165713@ie.u-ryukyu.ac.jp>
parents: 16
diff changeset
125 <li>同期編集セッションに接続したユーザーは自身のマシン上でエディタを使って編集対象ファイルを開く。
16
7293b6481e32 add slide & tweak
ichikitakahiro <e165713@ie.u-ryukyu.ac.jp>
parents:
diff changeset
126 <ul>
17
55e745a21506 add abstruct & slide
ichikitakahiro <e165713@ie.u-ryukyu.ac.jp>
parents: 16
diff changeset
127 <li>ユーザーが起こしたファイルへの変更を、命令コマンドとして接続しているサーバー(ハブ)へ送信&amp;実行させる。</li>
55e745a21506 add abstruct & slide
ichikitakahiro <e165713@ie.u-ryukyu.ac.jp>
parents: 16
diff changeset
128 </ul>
55e745a21506 add abstruct & slide
ichikitakahiro <e165713@ie.u-ryukyu.ac.jp>
parents: 16
diff changeset
129 </li>
55e745a21506 add abstruct & slide
ichikitakahiro <e165713@ie.u-ryukyu.ac.jp>
parents: 16
diff changeset
130 <li>命令コマンドはサーバーへ集められ、サーバーは受け取ったコマンドを他の接続ノードへ送信し、実行させる。</li>
55e745a21506 add abstruct & slide
ichikitakahiro <e165713@ie.u-ryukyu.ac.jp>
parents: 16
diff changeset
131 </ul>
55e745a21506 add abstruct & slide
ichikitakahiro <e165713@ie.u-ryukyu.ac.jp>
parents: 16
diff changeset
132
55e745a21506 add abstruct & slide
ichikitakahiro <e165713@ie.u-ryukyu.ac.jp>
parents: 16
diff changeset
133 <div style="text-align: center;">
55e745a21506 add abstruct & slide
ichikitakahiro <e165713@ie.u-ryukyu.ac.jp>
parents: 16
diff changeset
134  <img src="images/RemoteEditor.pdf" alt="MetaGear" width="800" />
55e745a21506 add abstruct & slide
ichikitakahiro <e165713@ie.u-ryukyu.ac.jp>
parents: 16
diff changeset
135 </div>
55e745a21506 add abstruct & slide
ichikitakahiro <e165713@ie.u-ryukyu.ac.jp>
parents: 16
diff changeset
136
55e745a21506 add abstruct & slide
ichikitakahiro <e165713@ie.u-ryukyu.ac.jp>
parents: 16
diff changeset
137
55e745a21506 add abstruct & slide
ichikitakahiro <e165713@ie.u-ryukyu.ac.jp>
parents: 16
diff changeset
138
55e745a21506 add abstruct & slide
ichikitakahiro <e165713@ie.u-ryukyu.ac.jp>
parents: 16
diff changeset
139 </div>
55e745a21506 add abstruct & slide
ichikitakahiro <e165713@ie.u-ryukyu.ac.jp>
parents: 16
diff changeset
140
55e745a21506 add abstruct & slide
ichikitakahiro <e165713@ie.u-ryukyu.ac.jp>
parents: 16
diff changeset
141 <div class='slide'>
55e745a21506 add abstruct & slide
ichikitakahiro <e165713@ie.u-ryukyu.ac.jp>
parents: 16
diff changeset
142 <!-- _S9SLIDE_ -->
55e745a21506 add abstruct & slide
ichikitakahiro <e165713@ie.u-ryukyu.ac.jp>
parents: 16
diff changeset
143 <h2 id="テスト用テキストエディタ">テスト用テキストエディタ</h2>
55e745a21506 add abstruct & slide
ichikitakahiro <e165713@ie.u-ryukyu.ac.jp>
parents: 16
diff changeset
144 <ul>
55e745a21506 add abstruct & slide
ichikitakahiro <e165713@ie.u-ryukyu.ac.jp>
parents: 16
diff changeset
145 <li>通信の構成を行うChristieはjava言語で作成されているため、javaのswingを用いてテキストエディタを制作した。</li>
55e745a21506 add abstruct & slide
ichikitakahiro <e165713@ie.u-ryukyu.ac.jp>
parents: 16
diff changeset
146 <li>エディタ部分の入力、削除の取得はDocument Listenerクラスを使った。
55e745a21506 add abstruct & slide
ichikitakahiro <e165713@ie.u-ryukyu.ac.jp>
parents: 16
diff changeset
147 <ul>
55e745a21506 add abstruct & slide
ichikitakahiro <e165713@ie.u-ryukyu.ac.jp>
parents: 16
diff changeset
148 <li>insertUpdate、removeUpdateメソッドがそれぞれ挿入、削除を検知した時に動作する。</li>
16
7293b6481e32 add slide & tweak
ichikitakahiro <e165713@ie.u-ryukyu.ac.jp>
parents:
diff changeset
149 </ul>
7293b6481e32 add slide & tweak
ichikitakahiro <e165713@ie.u-ryukyu.ac.jp>
parents:
diff changeset
150 </li>
17
55e745a21506 add abstruct & slide
ichikitakahiro <e165713@ie.u-ryukyu.ac.jp>
parents: 16
diff changeset
151 <li>このエディタはファイルの内容をオフセット番号で取り扱っている。</li>
55e745a21506 add abstruct & slide
ichikitakahiro <e165713@ie.u-ryukyu.ac.jp>
parents: 16
diff changeset
152 </ul>
55e745a21506 add abstruct & slide
ichikitakahiro <e165713@ie.u-ryukyu.ac.jp>
parents: 16
diff changeset
153
55e745a21506 add abstruct & slide
ichikitakahiro <e165713@ie.u-ryukyu.ac.jp>
parents: 16
diff changeset
154 <div style="text-align: center;">
55e745a21506 add abstruct & slide
ichikitakahiro <e165713@ie.u-ryukyu.ac.jp>
parents: 16
diff changeset
155  <img src="images/Editor.png" alt="MetaGear" width="800" />
55e745a21506 add abstruct & slide
ichikitakahiro <e165713@ie.u-ryukyu.ac.jp>
parents: 16
diff changeset
156 </div>
55e745a21506 add abstruct & slide
ichikitakahiro <e165713@ie.u-ryukyu.ac.jp>
parents: 16
diff changeset
157
55e745a21506 add abstruct & slide
ichikitakahiro <e165713@ie.u-ryukyu.ac.jp>
parents: 16
diff changeset
158
55e745a21506 add abstruct & slide
ichikitakahiro <e165713@ie.u-ryukyu.ac.jp>
parents: 16
diff changeset
159
55e745a21506 add abstruct & slide
ichikitakahiro <e165713@ie.u-ryukyu.ac.jp>
parents: 16
diff changeset
160 </div>
55e745a21506 add abstruct & slide
ichikitakahiro <e165713@ie.u-ryukyu.ac.jp>
parents: 16
diff changeset
161
55e745a21506 add abstruct & slide
ichikitakahiro <e165713@ie.u-ryukyu.ac.jp>
parents: 16
diff changeset
162 <div class='slide'>
55e745a21506 add abstruct & slide
ichikitakahiro <e165713@ie.u-ryukyu.ac.jp>
parents: 16
diff changeset
163 <!-- _S9SLIDE_ -->
55e745a21506 add abstruct & slide
ichikitakahiro <e165713@ie.u-ryukyu.ac.jp>
parents: 16
diff changeset
164 <h2 id="documentlistenerの記述部分">DocumentListenerの記述部分</h2>
55e745a21506 add abstruct & slide
ichikitakahiro <e165713@ie.u-ryukyu.ac.jp>
parents: 16
diff changeset
165
55e745a21506 add abstruct & slide
ichikitakahiro <e165713@ie.u-ryukyu.ac.jp>
parents: 16
diff changeset
166 <pre><code>public class MyDocumentListener implements DocumentListener {
55e745a21506 add abstruct & slide
ichikitakahiro <e165713@ie.u-ryukyu.ac.jp>
parents: 16
diff changeset
167 @Override
55e745a21506 add abstruct & slide
ichikitakahiro <e165713@ie.u-ryukyu.ac.jp>
parents: 16
diff changeset
168 public void insertUpdate(DocumentEvent e) {
55e745a21506 add abstruct & slide
ichikitakahiro <e165713@ie.u-ryukyu.ac.jp>
parents: 16
diff changeset
169 Document doc = e.getDocument();
55e745a21506 add abstruct & slide
ichikitakahiro <e165713@ie.u-ryukyu.ac.jp>
parents: 16
diff changeset
170 loc = e.getOffset();
55e745a21506 add abstruct & slide
ichikitakahiro <e165713@ie.u-ryukyu.ac.jp>
parents: 16
diff changeset
171 System.out.println(loc);
55e745a21506 add abstruct & slide
ichikitakahiro <e165713@ie.u-ryukyu.ac.jp>
parents: 16
diff changeset
172
55e745a21506 add abstruct & slide
ichikitakahiro <e165713@ie.u-ryukyu.ac.jp>
parents: 16
diff changeset
173 }
55e745a21506 add abstruct & slide
ichikitakahiro <e165713@ie.u-ryukyu.ac.jp>
parents: 16
diff changeset
174
55e745a21506 add abstruct & slide
ichikitakahiro <e165713@ie.u-ryukyu.ac.jp>
parents: 16
diff changeset
175 @Override
55e745a21506 add abstruct & slide
ichikitakahiro <e165713@ie.u-ryukyu.ac.jp>
parents: 16
diff changeset
176 public void removeUpdate(DocumentEvent e) {
55e745a21506 add abstruct & slide
ichikitakahiro <e165713@ie.u-ryukyu.ac.jp>
parents: 16
diff changeset
177 Document doc = e.getDocument();
55e745a21506 add abstruct & slide
ichikitakahiro <e165713@ie.u-ryukyu.ac.jp>
parents: 16
diff changeset
178 sendLoc = e.getOffset();
55e745a21506 add abstruct & slide
ichikitakahiro <e165713@ie.u-ryukyu.ac.jp>
parents: 16
diff changeset
179 System.out.println("delete " + sendLoc);
55e745a21506 add abstruct & slide
ichikitakahiro <e165713@ie.u-ryukyu.ac.jp>
parents: 16
diff changeset
180 }
55e745a21506 add abstruct & slide
ichikitakahiro <e165713@ie.u-ryukyu.ac.jp>
parents: 16
diff changeset
181 @Override
55e745a21506 add abstruct & slide
ichikitakahiro <e165713@ie.u-ryukyu.ac.jp>
parents: 16
diff changeset
182 public void changedUpdate(DocumentEvent e) {
55e745a21506 add abstruct & slide
ichikitakahiro <e165713@ie.u-ryukyu.ac.jp>
parents: 16
diff changeset
183 }
55e745a21506 add abstruct & slide
ichikitakahiro <e165713@ie.u-ryukyu.ac.jp>
parents: 16
diff changeset
184 }
55e745a21506 add abstruct & slide
ichikitakahiro <e165713@ie.u-ryukyu.ac.jp>
parents: 16
diff changeset
185 </code></pre>
55e745a21506 add abstruct & slide
ichikitakahiro <e165713@ie.u-ryukyu.ac.jp>
parents: 16
diff changeset
186
55e745a21506 add abstruct & slide
ichikitakahiro <e165713@ie.u-ryukyu.ac.jp>
parents: 16
diff changeset
187
55e745a21506 add abstruct & slide
ichikitakahiro <e165713@ie.u-ryukyu.ac.jp>
parents: 16
diff changeset
188
55e745a21506 add abstruct & slide
ichikitakahiro <e165713@ie.u-ryukyu.ac.jp>
parents: 16
diff changeset
189 </div>
55e745a21506 add abstruct & slide
ichikitakahiro <e165713@ie.u-ryukyu.ac.jp>
parents: 16
diff changeset
190
55e745a21506 add abstruct & slide
ichikitakahiro <e165713@ie.u-ryukyu.ac.jp>
parents: 16
diff changeset
191 <div class='slide'>
55e745a21506 add abstruct & slide
ichikitakahiro <e165713@ie.u-ryukyu.ac.jp>
parents: 16
diff changeset
192 <!-- _S9SLIDE_ -->
55e745a21506 add abstruct & slide
ichikitakahiro <e165713@ie.u-ryukyu.ac.jp>
parents: 16
diff changeset
193 <h2 id="コマンドパターンの解説">コマンドパターンの解説</h2>
55e745a21506 add abstruct & slide
ichikitakahiro <e165713@ie.u-ryukyu.ac.jp>
parents: 16
diff changeset
194 <ul>
55e745a21506 add abstruct & slide
ichikitakahiro <e165713@ie.u-ryukyu.ac.jp>
parents: 16
diff changeset
195 <li>リモートエディタの通信では、各ノード(参加ユーザのエディタ)がそれぞれ自身のファイルの変更内容を他のノードに送信する。</li>
55e745a21506 add abstruct & slide
ichikitakahiro <e165713@ie.u-ryukyu.ac.jp>
parents: 16
diff changeset
196 <li>コマンドパターンとは命令を一つのオブジェクトとして表現するプログラム手法である。</li>
55e745a21506 add abstruct & slide
ichikitakahiro <e165713@ie.u-ryukyu.ac.jp>
parents: 16
diff changeset
197 <li>命令を表すクラスを作成し、インスタンスを作成と同時に命令の中身を入力することで命令を作成する。
55e745a21506 add abstruct & slide
ichikitakahiro <e165713@ie.u-ryukyu.ac.jp>
parents: 16
diff changeset
198 <ul>
55e745a21506 add abstruct & slide
ichikitakahiro <e165713@ie.u-ryukyu.ac.jp>
parents: 16
diff changeset
199 <li>リモートエディタにおいては「オフセットn番目に に 文字列 “A”を入力した」という変更を命令にして送信する。</li>
55e745a21506 add abstruct & slide
ichikitakahiro <e165713@ie.u-ryukyu.ac.jp>
parents: 16
diff changeset
200 </ul>
55e745a21506 add abstruct & slide
ichikitakahiro <e165713@ie.u-ryukyu.ac.jp>
parents: 16
diff changeset
201 </li>
55e745a21506 add abstruct & slide
ichikitakahiro <e165713@ie.u-ryukyu.ac.jp>
parents: 16
diff changeset
202 <li>コマンドパターンの利点として、
55e745a21506 add abstruct & slide
ichikitakahiro <e165713@ie.u-ryukyu.ac.jp>
parents: 16
diff changeset
203 <ul>
55e745a21506 add abstruct & slide
ichikitakahiro <e165713@ie.u-ryukyu.ac.jp>
parents: 16
diff changeset
204 <li>ChristieのGearの概念と相性がいい。</li>
55e745a21506 add abstruct & slide
ichikitakahiro <e165713@ie.u-ryukyu.ac.jp>
parents: 16
diff changeset
205 <li>命令に必要な内容をまとめて送信するため、時間差による相違の発生が防げる。</li>
55e745a21506 add abstruct & slide
ichikitakahiro <e165713@ie.u-ryukyu.ac.jp>
parents: 16
diff changeset
206 <li>オブジェクトとして取り扱えるため管理が行いやすい。</li>
55e745a21506 add abstruct & slide
ichikitakahiro <e165713@ie.u-ryukyu.ac.jp>
parents: 16
diff changeset
207 </ul>
55e745a21506 add abstruct & slide
ichikitakahiro <e165713@ie.u-ryukyu.ac.jp>
parents: 16
diff changeset
208 </li>
55e745a21506 add abstruct & slide
ichikitakahiro <e165713@ie.u-ryukyu.ac.jp>
parents: 16
diff changeset
209 </ul>
55e745a21506 add abstruct & slide
ichikitakahiro <e165713@ie.u-ryukyu.ac.jp>
parents: 16
diff changeset
210
55e745a21506 add abstruct & slide
ichikitakahiro <e165713@ie.u-ryukyu.ac.jp>
parents: 16
diff changeset
211 <pre><code> package christie.example.RemoteTake;
55e745a21506 add abstruct & slide
ichikitakahiro <e165713@ie.u-ryukyu.ac.jp>
parents: 16
diff changeset
212 import org.msgpack.annotation.Message;
55e745a21506 add abstruct & slide
ichikitakahiro <e165713@ie.u-ryukyu.ac.jp>
parents: 16
diff changeset
213
55e745a21506 add abstruct & slide
ichikitakahiro <e165713@ie.u-ryukyu.ac.jp>
parents: 16
diff changeset
214 @Message
55e745a21506 add abstruct & slide
ichikitakahiro <e165713@ie.u-ryukyu.ac.jp>
parents: 16
diff changeset
215 class RTCommand {
55e745a21506 add abstruct & slide
ichikitakahiro <e165713@ie.u-ryukyu.ac.jp>
parents: 16
diff changeset
216 public String line;
55e745a21506 add abstruct & slide
ichikitakahiro <e165713@ie.u-ryukyu.ac.jp>
parents: 16
diff changeset
217 public String cmd;
55e745a21506 add abstruct & slide
ichikitakahiro <e165713@ie.u-ryukyu.ac.jp>
parents: 16
diff changeset
218 public int offset;
55e745a21506 add abstruct & slide
ichikitakahiro <e165713@ie.u-ryukyu.ac.jp>
parents: 16
diff changeset
219
55e745a21506 add abstruct & slide
ichikitakahiro <e165713@ie.u-ryukyu.ac.jp>
parents: 16
diff changeset
220 public RTCommand () {}
55e745a21506 add abstruct & slide
ichikitakahiro <e165713@ie.u-ryukyu.ac.jp>
parents: 16
diff changeset
221
55e745a21506 add abstruct & slide
ichikitakahiro <e165713@ie.u-ryukyu.ac.jp>
parents: 16
diff changeset
222 public RTCommand(String cmd, String line, int i) {
55e745a21506 add abstruct & slide
ichikitakahiro <e165713@ie.u-ryukyu.ac.jp>
parents: 16
diff changeset
223 this.cmd = cmd;
55e745a21506 add abstruct & slide
ichikitakahiro <e165713@ie.u-ryukyu.ac.jp>
parents: 16
diff changeset
224 this.line = line;
55e745a21506 add abstruct & slide
ichikitakahiro <e165713@ie.u-ryukyu.ac.jp>
parents: 16
diff changeset
225 this.offset = i;
55e745a21506 add abstruct & slide
ichikitakahiro <e165713@ie.u-ryukyu.ac.jp>
parents: 16
diff changeset
226 }
55e745a21506 add abstruct & slide
ichikitakahiro <e165713@ie.u-ryukyu.ac.jp>
parents: 16
diff changeset
227
55e745a21506 add abstruct & slide
ichikitakahiro <e165713@ie.u-ryukyu.ac.jp>
parents: 16
diff changeset
228 @Override
55e745a21506 add abstruct & slide
ichikitakahiro <e165713@ie.u-ryukyu.ac.jp>
parents: 16
diff changeset
229 public String toString() {
55e745a21506 add abstruct & slide
ichikitakahiro <e165713@ie.u-ryukyu.ac.jp>
parents: 16
diff changeset
230 return "RTCommand{" +
55e745a21506 add abstruct & slide
ichikitakahiro <e165713@ie.u-ryukyu.ac.jp>
parents: 16
diff changeset
231 "line='" + line + '\'' +
55e745a21506 add abstruct & slide
ichikitakahiro <e165713@ie.u-ryukyu.ac.jp>
parents: 16
diff changeset
232 ", cmd='" + cmd + '\'' +
55e745a21506 add abstruct & slide
ichikitakahiro <e165713@ie.u-ryukyu.ac.jp>
parents: 16
diff changeset
233 ", offset=" + offset +
55e745a21506 add abstruct & slide
ichikitakahiro <e165713@ie.u-ryukyu.ac.jp>
parents: 16
diff changeset
234 '}';
55e745a21506 add abstruct & slide
ichikitakahiro <e165713@ie.u-ryukyu.ac.jp>
parents: 16
diff changeset
235 }
55e745a21506 add abstruct & slide
ichikitakahiro <e165713@ie.u-ryukyu.ac.jp>
parents: 16
diff changeset
236 }
55e745a21506 add abstruct & slide
ichikitakahiro <e165713@ie.u-ryukyu.ac.jp>
parents: 16
diff changeset
237 </code></pre>
55e745a21506 add abstruct & slide
ichikitakahiro <e165713@ie.u-ryukyu.ac.jp>
parents: 16
diff changeset
238
55e745a21506 add abstruct & slide
ichikitakahiro <e165713@ie.u-ryukyu.ac.jp>
parents: 16
diff changeset
239
55e745a21506 add abstruct & slide
ichikitakahiro <e165713@ie.u-ryukyu.ac.jp>
parents: 16
diff changeset
240
55e745a21506 add abstruct & slide
ichikitakahiro <e165713@ie.u-ryukyu.ac.jp>
parents: 16
diff changeset
241 </div>
55e745a21506 add abstruct & slide
ichikitakahiro <e165713@ie.u-ryukyu.ac.jp>
parents: 16
diff changeset
242
55e745a21506 add abstruct & slide
ichikitakahiro <e165713@ie.u-ryukyu.ac.jp>
parents: 16
diff changeset
243 <div class='slide'>
55e745a21506 add abstruct & slide
ichikitakahiro <e165713@ie.u-ryukyu.ac.jp>
parents: 16
diff changeset
244 <!-- _S9SLIDE_ -->
55e745a21506 add abstruct & slide
ichikitakahiro <e165713@ie.u-ryukyu.ac.jp>
parents: 16
diff changeset
245 <h2 id="コマンドパターン実装の際に起こった問題">コマンドパターン実装の際に起こった問題</h2>
55e745a21506 add abstruct & slide
ichikitakahiro <e165713@ie.u-ryukyu.ac.jp>
parents: 16
diff changeset
246 <ul>
55e745a21506 add abstruct & slide
ichikitakahiro <e165713@ie.u-ryukyu.ac.jp>
parents: 16
diff changeset
247 <li>クラスを他ノードに送信するためには、クラスをシリアライズして送信する必要がある。
55e745a21506 add abstruct & slide
ichikitakahiro <e165713@ie.u-ryukyu.ac.jp>
parents: 16
diff changeset
248 <ul>
55e745a21506 add abstruct & slide
ichikitakahiro <e165713@ie.u-ryukyu.ac.jp>
parents: 16
diff changeset
249 <li>コマンドの送信にはmsgpackクラスとjavassistを利用している。</li>
55e745a21506 add abstruct & slide
ichikitakahiro <e165713@ie.u-ryukyu.ac.jp>
parents: 16
diff changeset
250 </ul>
55e745a21506 add abstruct & slide
ichikitakahiro <e165713@ie.u-ryukyu.ac.jp>
parents: 16
diff changeset
251 </li>
55e745a21506 add abstruct & slide
ichikitakahiro <e165713@ie.u-ryukyu.ac.jp>
parents: 16
diff changeset
252 <li>しかし、送信がうまく行えなかったため、原因を調査した。
55e745a21506 add abstruct & slide
ichikitakahiro <e165713@ie.u-ryukyu.ac.jp>
parents: 16
diff changeset
253 <ul>
55e745a21506 add abstruct & slide
ichikitakahiro <e165713@ie.u-ryukyu.ac.jp>
parents: 16
diff changeset
254 <li>javaのバージョン進行のため、msgpackバージョン0.6.12が非対称となっていた。</li>
55e745a21506 add abstruct & slide
ichikitakahiro <e165713@ie.u-ryukyu.ac.jp>
parents: 16
diff changeset
255 <li>msgpackの最新バージョン0.8.20はシリアライズ機能が含まれなくなった。</li>
55e745a21506 add abstruct & slide
ichikitakahiro <e165713@ie.u-ryukyu.ac.jp>
parents: 16
diff changeset
256 </ul>
55e745a21506 add abstruct & slide
ichikitakahiro <e165713@ie.u-ryukyu.ac.jp>
parents: 16
diff changeset
257 </li>
55e745a21506 add abstruct & slide
ichikitakahiro <e165713@ie.u-ryukyu.ac.jp>
parents: 16
diff changeset
258 <li>以上の原因に対処するため
55e745a21506 add abstruct & slide
ichikitakahiro <e165713@ie.u-ryukyu.ac.jp>
parents: 16
diff changeset
259 <ul>
55e745a21506 add abstruct & slide
ichikitakahiro <e165713@ie.u-ryukyu.ac.jp>
parents: 16
diff changeset
260 <li>javassistのバージョンを最新版へ変更した。</li>
55e745a21506 add abstruct & slide
ichikitakahiro <e165713@ie.u-ryukyu.ac.jp>
parents: 16
diff changeset
261 <li>シリアライズする命令クラスに対し、クラスをpublicに変更した。</li>
55e745a21506 add abstruct & slide
ichikitakahiro <e165713@ie.u-ryukyu.ac.jp>
parents: 16
diff changeset
262 </ul>
55e745a21506 add abstruct & slide
ichikitakahiro <e165713@ie.u-ryukyu.ac.jp>
parents: 16
diff changeset
263 </li>
55e745a21506 add abstruct & slide
ichikitakahiro <e165713@ie.u-ryukyu.ac.jp>
parents: 16
diff changeset
264 <li>以上の対処によりコマンドパターンでの命令実装を行うことができた。</li>
55e745a21506 add abstruct & slide
ichikitakahiro <e165713@ie.u-ryukyu.ac.jp>
parents: 16
diff changeset
265 <li>自身でシリアライズ機能をChristieに内蔵してしまえば、これらのパッケージは不要になる。</li>
16
7293b6481e32 add slide & tweak
ichikitakahiro <e165713@ie.u-ryukyu.ac.jp>
parents:
diff changeset
266 </ul>
7293b6481e32 add slide & tweak
ichikitakahiro <e165713@ie.u-ryukyu.ac.jp>
parents:
diff changeset
267
7293b6481e32 add slide & tweak
ichikitakahiro <e165713@ie.u-ryukyu.ac.jp>
parents:
diff changeset
268
7293b6481e32 add slide & tweak
ichikitakahiro <e165713@ie.u-ryukyu.ac.jp>
parents:
diff changeset
269
7293b6481e32 add slide & tweak
ichikitakahiro <e165713@ie.u-ryukyu.ac.jp>
parents:
diff changeset
270 </div>
7293b6481e32 add slide & tweak
ichikitakahiro <e165713@ie.u-ryukyu.ac.jp>
parents:
diff changeset
271
7293b6481e32 add slide & tweak
ichikitakahiro <e165713@ie.u-ryukyu.ac.jp>
parents:
diff changeset
272 <div class='slide'>
7293b6481e32 add slide & tweak
ichikitakahiro <e165713@ie.u-ryukyu.ac.jp>
parents:
diff changeset
273 <!-- _S9SLIDE_ -->
17
55e745a21506 add abstruct & slide
ichikitakahiro <e165713@ie.u-ryukyu.ac.jp>
parents: 16
diff changeset
274 <h2 id="編集位置の相違">編集位置の相違</h2>
55e745a21506 add abstruct & slide
ichikitakahiro <e165713@ie.u-ryukyu.ac.jp>
parents: 16
diff changeset
275 <ul>
55e745a21506 add abstruct & slide
ichikitakahiro <e165713@ie.u-ryukyu.ac.jp>
parents: 16
diff changeset
276 <li>同期編集のセッションでは命令コマンドの送信のすれ違いにより、ノードごとのファイル状態が異なってしまうことがある。</li>
55e745a21506 add abstruct & slide
ichikitakahiro <e165713@ie.u-ryukyu.ac.jp>
parents: 16
diff changeset
277 <li>EditorAとEditorBはそれぞれの命令を自身のエディタバッファに施してから命令を送信するため、お互いバッファ状態が異なる状態で受け取った命令を実行してしまう。</li>
55e745a21506 add abstruct & slide
ichikitakahiro <e165713@ie.u-ryukyu.ac.jp>
parents: 16
diff changeset
278 </ul>
55e745a21506 add abstruct & slide
ichikitakahiro <e165713@ie.u-ryukyu.ac.jp>
parents: 16
diff changeset
279
55e745a21506 add abstruct & slide
ichikitakahiro <e165713@ie.u-ryukyu.ac.jp>
parents: 16
diff changeset
280 <div style="text-align: center;">
55e745a21506 add abstruct & slide
ichikitakahiro <e165713@ie.u-ryukyu.ac.jp>
parents: 16
diff changeset
281  <img src="images/difference_offset.pdf" alt="MetaGear" width="800" />
55e745a21506 add abstruct & slide
ichikitakahiro <e165713@ie.u-ryukyu.ac.jp>
parents: 16
diff changeset
282 </div>
55e745a21506 add abstruct & slide
ichikitakahiro <e165713@ie.u-ryukyu.ac.jp>
parents: 16
diff changeset
283
55e745a21506 add abstruct & slide
ichikitakahiro <e165713@ie.u-ryukyu.ac.jp>
parents: 16
diff changeset
284
55e745a21506 add abstruct & slide
ichikitakahiro <e165713@ie.u-ryukyu.ac.jp>
parents: 16
diff changeset
285
55e745a21506 add abstruct & slide
ichikitakahiro <e165713@ie.u-ryukyu.ac.jp>
parents: 16
diff changeset
286 </div>
55e745a21506 add abstruct & slide
ichikitakahiro <e165713@ie.u-ryukyu.ac.jp>
parents: 16
diff changeset
287
55e745a21506 add abstruct & slide
ichikitakahiro <e165713@ie.u-ryukyu.ac.jp>
parents: 16
diff changeset
288 <div class='slide'>
55e745a21506 add abstruct & slide
ichikitakahiro <e165713@ie.u-ryukyu.ac.jp>
parents: 16
diff changeset
289 <!-- _S9SLIDE_ -->
55e745a21506 add abstruct & slide
ichikitakahiro <e165713@ie.u-ryukyu.ac.jp>
parents: 16
diff changeset
290 <h2 id="編集の相違の解消">編集の相違の解消</h2>
16
7293b6481e32 add slide & tweak
ichikitakahiro <e165713@ie.u-ryukyu.ac.jp>
parents:
diff changeset
291 <ul>
17
55e745a21506 add abstruct & slide
ichikitakahiro <e165713@ie.u-ryukyu.ac.jp>
parents: 16
diff changeset
292 <li>同期編集のセッションはスター型の通信接続で行うため、サーバー対複数ノードの通信間で相違が発生する。</li>
55e745a21506 add abstruct & slide
ichikitakahiro <e165713@ie.u-ryukyu.ac.jp>
parents: 16
diff changeset
293 <li>編集の相違を防ぐためには二つの処理を行う必要がある。
16
7293b6481e32 add slide & tweak
ichikitakahiro <e165713@ie.u-ryukyu.ac.jp>
parents:
diff changeset
294 <ul>
17
55e745a21506 add abstruct & slide
ichikitakahiro <e165713@ie.u-ryukyu.ac.jp>
parents: 16
diff changeset
295 <li>サーバーとノード間の命令のすれ違いが発生したことを検知する。</li>
55e745a21506 add abstruct & slide
ichikitakahiro <e165713@ie.u-ryukyu.ac.jp>
parents: 16
diff changeset
296 <li>すれ違いが発生した際に、オフセットのズレを修正する。</li>
55e745a21506 add abstruct & slide
ichikitakahiro <e165713@ie.u-ryukyu.ac.jp>
parents: 16
diff changeset
297 </ul>
55e745a21506 add abstruct & slide
ichikitakahiro <e165713@ie.u-ryukyu.ac.jp>
parents: 16
diff changeset
298 </li>
55e745a21506 add abstruct & slide
ichikitakahiro <e165713@ie.u-ryukyu.ac.jp>
parents: 16
diff changeset
299 <li>サーバーが正しいファイルの状態を保持するためサーバーの状態にノードが合わせる必要がある。</li>
55e745a21506 add abstruct & slide
ichikitakahiro <e165713@ie.u-ryukyu.ac.jp>
parents: 16
diff changeset
300 </ul>
55e745a21506 add abstruct & slide
ichikitakahiro <e165713@ie.u-ryukyu.ac.jp>
parents: 16
diff changeset
301
55e745a21506 add abstruct & slide
ichikitakahiro <e165713@ie.u-ryukyu.ac.jp>
parents: 16
diff changeset
302
55e745a21506 add abstruct & slide
ichikitakahiro <e165713@ie.u-ryukyu.ac.jp>
parents: 16
diff changeset
303
55e745a21506 add abstruct & slide
ichikitakahiro <e165713@ie.u-ryukyu.ac.jp>
parents: 16
diff changeset
304 </div>
55e745a21506 add abstruct & slide
ichikitakahiro <e165713@ie.u-ryukyu.ac.jp>
parents: 16
diff changeset
305
55e745a21506 add abstruct & slide
ichikitakahiro <e165713@ie.u-ryukyu.ac.jp>
parents: 16
diff changeset
306 <div class='slide'>
55e745a21506 add abstruct & slide
ichikitakahiro <e165713@ie.u-ryukyu.ac.jp>
parents: 16
diff changeset
307 <!-- _S9SLIDE_ -->
55e745a21506 add abstruct & slide
ichikitakahiro <e165713@ie.u-ryukyu.ac.jp>
parents: 16
diff changeset
308 <h2 id="命令コマンドに番号をつけ相違を解消する">命令コマンドに番号をつけ相違を解消する</h2>
55e745a21506 add abstruct & slide
ichikitakahiro <e165713@ie.u-ryukyu.ac.jp>
parents: 16
diff changeset
309 <ul>
55e745a21506 add abstruct & slide
ichikitakahiro <e165713@ie.u-ryukyu.ac.jp>
parents: 16
diff changeset
310 <li>命令コマンド番号には以下の特性がある。
55e745a21506 add abstruct & slide
ichikitakahiro <e165713@ie.u-ryukyu.ac.jp>
parents: 16
diff changeset
311 <ul>
55e745a21506 add abstruct & slide
ichikitakahiro <e165713@ie.u-ryukyu.ac.jp>
parents: 16
diff changeset
312 <li>全てのノード(サーバーを含める)は事前に処理した命令コマンドの番号を記憶している。</li>
55e745a21506 add abstruct & slide
ichikitakahiro <e165713@ie.u-ryukyu.ac.jp>
parents: 16
diff changeset
313 <li>新しく作られた命令コマンドは作られたノードの命令実行済み番号+1 を自身の命令コマンド番号とする。</li>
55e745a21506 add abstruct & slide
ichikitakahiro <e165713@ie.u-ryukyu.ac.jp>
parents: 16
diff changeset
314 <li>ノードは自身が作成したか、他のノードに送られてきたかに関わらず命令コマンドを実行したら命令実行済み番号をその命令コマンドの番号と同じにする。</li>
16
7293b6481e32 add slide & tweak
ichikitakahiro <e165713@ie.u-ryukyu.ac.jp>
parents:
diff changeset
315 </ul>
7293b6481e32 add slide & tweak
ichikitakahiro <e165713@ie.u-ryukyu.ac.jp>
parents:
diff changeset
316 </li>
17
55e745a21506 add abstruct & slide
ichikitakahiro <e165713@ie.u-ryukyu.ac.jp>
parents: 16
diff changeset
317 <li>もしノードが送られてきた命令コマンドを見て、そのコマンドが自身の実行済み番号と同値以下の場合、送信元のノードとの命令のすれ違いが発生していることが分かる。</li>
55e745a21506 add abstruct & slide
ichikitakahiro <e165713@ie.u-ryukyu.ac.jp>
parents: 16
diff changeset
318 </ul>
55e745a21506 add abstruct & slide
ichikitakahiro <e165713@ie.u-ryukyu.ac.jp>
parents: 16
diff changeset
319
55e745a21506 add abstruct & slide
ichikitakahiro <e165713@ie.u-ryukyu.ac.jp>
parents: 16
diff changeset
320 <div style="text-align: center;">
55e745a21506 add abstruct & slide
ichikitakahiro <e165713@ie.u-ryukyu.ac.jp>
parents: 16
diff changeset
321  <img src="images/FixCommand.pdf" alt="MetaGear" width="800" />
55e745a21506 add abstruct & slide
ichikitakahiro <e165713@ie.u-ryukyu.ac.jp>
parents: 16
diff changeset
322 </div>
55e745a21506 add abstruct & slide
ichikitakahiro <e165713@ie.u-ryukyu.ac.jp>
parents: 16
diff changeset
323
55e745a21506 add abstruct & slide
ichikitakahiro <e165713@ie.u-ryukyu.ac.jp>
parents: 16
diff changeset
324
55e745a21506 add abstruct & slide
ichikitakahiro <e165713@ie.u-ryukyu.ac.jp>
parents: 16
diff changeset
325
55e745a21506 add abstruct & slide
ichikitakahiro <e165713@ie.u-ryukyu.ac.jp>
parents: 16
diff changeset
326 </div>
55e745a21506 add abstruct & slide
ichikitakahiro <e165713@ie.u-ryukyu.ac.jp>
parents: 16
diff changeset
327
55e745a21506 add abstruct & slide
ichikitakahiro <e165713@ie.u-ryukyu.ac.jp>
parents: 16
diff changeset
328 <div class='slide'>
55e745a21506 add abstruct & slide
ichikitakahiro <e165713@ie.u-ryukyu.ac.jp>
parents: 16
diff changeset
329 <!-- _S9SLIDE_ -->
55e745a21506 add abstruct & slide
ichikitakahiro <e165713@ie.u-ryukyu.ac.jp>
parents: 16
diff changeset
330 <h2 id="すれ違いが発生した際の処理">すれ違いが発生した際の処理</h2>
55e745a21506 add abstruct & slide
ichikitakahiro <e165713@ie.u-ryukyu.ac.jp>
parents: 16
diff changeset
331 <ul>
55e745a21506 add abstruct & slide
ichikitakahiro <e165713@ie.u-ryukyu.ac.jp>
parents: 16
diff changeset
332 <li>全てのノードは自分が実行した命令コマンドを記録しており、後からオフセットや文字列を取り出すことができる。</li>
55e745a21506 add abstruct & slide
ichikitakahiro <e165713@ie.u-ryukyu.ac.jp>
parents: 16
diff changeset
333 <li>すれ違いが発生した時点からの命令の中身を集計、参照しすれ違いで送られてきたコマンドを修正する。</li>
55e745a21506 add abstruct & slide
ichikitakahiro <e165713@ie.u-ryukyu.ac.jp>
parents: 16
diff changeset
334 <li>insertを例とすると
55e745a21506 add abstruct & slide
ichikitakahiro <e165713@ie.u-ryukyu.ac.jp>
parents: 16
diff changeset
335 <ul>
55e745a21506 add abstruct & slide
ichikitakahiro <e165713@ie.u-ryukyu.ac.jp>
parents: 16
diff changeset
336 <li>受け取ったコマンドのオフセット &gt; 受信コマンドとすれ違ったコマンドのオフセット のとき、受診したコマンドのオフセットに+1 する。</li>
55e745a21506 add abstruct & slide
ichikitakahiro <e165713@ie.u-ryukyu.ac.jp>
parents: 16
diff changeset
337 <li>受け取ったコマンドのオフセット &lt;= 受信コマンドとすれ違ったコマンドのオフセット のとき、受診したコマンドのオフセットを変えずにそのまま実行できる。</li>
55e745a21506 add abstruct & slide
ichikitakahiro <e165713@ie.u-ryukyu.ac.jp>
parents: 16
diff changeset
338 </ul>
55e745a21506 add abstruct & slide
ichikitakahiro <e165713@ie.u-ryukyu.ac.jp>
parents: 16
diff changeset
339 </li>
16
7293b6481e32 add slide & tweak
ichikitakahiro <e165713@ie.u-ryukyu.ac.jp>
parents:
diff changeset
340 </ul>
7293b6481e32 add slide & tweak
ichikitakahiro <e165713@ie.u-ryukyu.ac.jp>
parents:
diff changeset
341
7293b6481e32 add slide & tweak
ichikitakahiro <e165713@ie.u-ryukyu.ac.jp>
parents:
diff changeset
342
7293b6481e32 add slide & tweak
ichikitakahiro <e165713@ie.u-ryukyu.ac.jp>
parents:
diff changeset
343
7293b6481e32 add slide & tweak
ichikitakahiro <e165713@ie.u-ryukyu.ac.jp>
parents:
diff changeset
344 </div>
7293b6481e32 add slide & tweak
ichikitakahiro <e165713@ie.u-ryukyu.ac.jp>
parents:
diff changeset
345
7293b6481e32 add slide & tweak
ichikitakahiro <e165713@ie.u-ryukyu.ac.jp>
parents:
diff changeset
346 <div class='slide'>
7293b6481e32 add slide & tweak
ichikitakahiro <e165713@ie.u-ryukyu.ac.jp>
parents:
diff changeset
347 <!-- _S9SLIDE_ -->
17
55e745a21506 add abstruct & slide
ichikitakahiro <e165713@ie.u-ryukyu.ac.jp>
parents: 16
diff changeset
348 <h2 id="スター型通信">スター型通信</h2>
55e745a21506 add abstruct & slide
ichikitakahiro <e165713@ie.u-ryukyu.ac.jp>
parents: 16
diff changeset
349 <ul>
55e745a21506 add abstruct & slide
ichikitakahiro <e165713@ie.u-ryukyu.ac.jp>
parents: 16
diff changeset
350 <li>Christieにはノードの通信接続を行うTopologyManagerという機能がある。</li>
55e745a21506 add abstruct & slide
ichikitakahiro <e165713@ie.u-ryukyu.ac.jp>
parents: 16
diff changeset
351 <li>同期通信はスター型での接続を行う。</li>
55e745a21506 add abstruct & slide
ichikitakahiro <e165713@ie.u-ryukyu.ac.jp>
parents: 16
diff changeset
352 <li>スター型通信の利点は
55e745a21506 add abstruct & slide
ichikitakahiro <e165713@ie.u-ryukyu.ac.jp>
parents: 16
diff changeset
353 <ul>
55e745a21506 add abstruct & slide
ichikitakahiro <e165713@ie.u-ryukyu.ac.jp>
parents: 16
diff changeset
354 <li>サーバーが正しいファイル状態を保持するため、整合性を保つことができる。</li>
55e745a21506 add abstruct & slide
ichikitakahiro <e165713@ie.u-ryukyu.ac.jp>
parents: 16
diff changeset
355 <li>どこかのノードが切断されても、要害の範囲をそのノードのみに抑えることができる。</li>
55e745a21506 add abstruct & slide
ichikitakahiro <e165713@ie.u-ryukyu.ac.jp>
parents: 16
diff changeset
356 <li>新しいノードが参加した、もしくは復帰の際にはサーバーのファイル状況を参照するのみで参加、復帰ができる。</li>
55e745a21506 add abstruct & slide
ichikitakahiro <e165713@ie.u-ryukyu.ac.jp>
parents: 16
diff changeset
357 </ul>
55e745a21506 add abstruct & slide
ichikitakahiro <e165713@ie.u-ryukyu.ac.jp>
parents: 16
diff changeset
358 </li>
55e745a21506 add abstruct & slide
ichikitakahiro <e165713@ie.u-ryukyu.ac.jp>
parents: 16
diff changeset
359 </ul>
55e745a21506 add abstruct & slide
ichikitakahiro <e165713@ie.u-ryukyu.ac.jp>
parents: 16
diff changeset
360
55e745a21506 add abstruct & slide
ichikitakahiro <e165713@ie.u-ryukyu.ac.jp>
parents: 16
diff changeset
361 <div style="text-align: center;">
55e745a21506 add abstruct & slide
ichikitakahiro <e165713@ie.u-ryukyu.ac.jp>
parents: 16
diff changeset
362  <img src="images/Star-Topology.pdf" alt="MetaGear" width="800" />
55e745a21506 add abstruct & slide
ichikitakahiro <e165713@ie.u-ryukyu.ac.jp>
parents: 16
diff changeset
363 </div>
55e745a21506 add abstruct & slide
ichikitakahiro <e165713@ie.u-ryukyu.ac.jp>
parents: 16
diff changeset
364
55e745a21506 add abstruct & slide
ichikitakahiro <e165713@ie.u-ryukyu.ac.jp>
parents: 16
diff changeset
365
55e745a21506 add abstruct & slide
ichikitakahiro <e165713@ie.u-ryukyu.ac.jp>
parents: 16
diff changeset
366
55e745a21506 add abstruct & slide
ichikitakahiro <e165713@ie.u-ryukyu.ac.jp>
parents: 16
diff changeset
367 </div>
55e745a21506 add abstruct & slide
ichikitakahiro <e165713@ie.u-ryukyu.ac.jp>
parents: 16
diff changeset
368
55e745a21506 add abstruct & slide
ichikitakahiro <e165713@ie.u-ryukyu.ac.jp>
parents: 16
diff changeset
369 <div class='slide'>
55e745a21506 add abstruct & slide
ichikitakahiro <e165713@ie.u-ryukyu.ac.jp>
parents: 16
diff changeset
370 <!-- _S9SLIDE_ -->
16
7293b6481e32 add slide & tweak
ichikitakahiro <e165713@ie.u-ryukyu.ac.jp>
parents:
diff changeset
371 <h2 id="christie">Christie</h2>
7293b6481e32 add slide & tweak
ichikitakahiro <e165713@ie.u-ryukyu.ac.jp>
parents:
diff changeset
372 <ul>
7293b6481e32 add slide & tweak
ichikitakahiro <e165713@ie.u-ryukyu.ac.jp>
parents:
diff changeset
373 <li>Christieは当研究室で開発している、信頼性を重視した分散フレームワークである.</li>
7293b6481e32 add slide & tweak
ichikitakahiro <e165713@ie.u-ryukyu.ac.jp>
parents:
diff changeset
374 <li>現在はjava上で開発されているが、別言語(CbC)で構成されたGearsOSに組み込む予定があるため,それに向けて書き換え可能な構成となっている。</li>
7293b6481e32 add slide & tweak
ichikitakahiro <e165713@ie.u-ryukyu.ac.jp>
parents:
diff changeset
375 <li>ChristieではデータをGearという単位で分割して記述を行う。
7293b6481e32 add slide & tweak
ichikitakahiro <e165713@ie.u-ryukyu.ac.jp>
parents:
diff changeset
376 <ul>
7293b6481e32 add slide & tweak
ichikitakahiro <e165713@ie.u-ryukyu.ac.jp>
parents:
diff changeset
377 <li>CodeGear(以下CG)
7293b6481e32 add slide & tweak
ichikitakahiro <e165713@ie.u-ryukyu.ac.jp>
parents:
diff changeset
378 <ul>
7293b6481e32 add slide & tweak
ichikitakahiro <e165713@ie.u-ryukyu.ac.jp>
parents:
diff changeset
379 <li>スレッドやクラスに相当し、javaの継承を用いて記述する。keyに全てのDGが格納された際に動作する。</li>
7293b6481e32 add slide & tweak
ichikitakahiro <e165713@ie.u-ryukyu.ac.jp>
parents:
diff changeset
380 </ul>
7293b6481e32 add slide & tweak
ichikitakahiro <e165713@ie.u-ryukyu.ac.jp>
parents:
diff changeset
381 </li>
7293b6481e32 add slide & tweak
ichikitakahiro <e165713@ie.u-ryukyu.ac.jp>
parents:
diff changeset
382 <li>DataGear(以下DG)
7293b6481e32 add slide & tweak
ichikitakahiro <e165713@ie.u-ryukyu.ac.jp>
parents:
diff changeset
383 <ul>
7293b6481e32 add slide & tweak
ichikitakahiro <e165713@ie.u-ryukyu.ac.jp>
parents:
diff changeset
384 <li>DGは変数に相当し、CG内でアノテーションを用いてデータを取り出せる。</li>
7293b6481e32 add slide & tweak
ichikitakahiro <e165713@ie.u-ryukyu.ac.jp>
parents:
diff changeset
385 </ul>
7293b6481e32 add slide & tweak
ichikitakahiro <e165713@ie.u-ryukyu.ac.jp>
parents:
diff changeset
386 </li>
7293b6481e32 add slide & tweak
ichikitakahiro <e165713@ie.u-ryukyu.ac.jp>
parents:
diff changeset
387 <li>CodeGearManager(以下CGM)
7293b6481e32 add slide & tweak
ichikitakahiro <e165713@ie.u-ryukyu.ac.jp>
parents:
diff changeset
388 <ul>
7293b6481e32 add slide & tweak
ichikitakahiro <e165713@ie.u-ryukyu.ac.jp>
parents:
diff changeset
389 <li>ノードに相当し, DG, CG, DataGearManagerの管理をする.</li>
7293b6481e32 add slide & tweak
ichikitakahiro <e165713@ie.u-ryukyu.ac.jp>
parents:
diff changeset
390 </ul>
7293b6481e32 add slide & tweak
ichikitakahiro <e165713@ie.u-ryukyu.ac.jp>
parents:
diff changeset
391 </li>
7293b6481e32 add slide & tweak
ichikitakahiro <e165713@ie.u-ryukyu.ac.jp>
parents:
diff changeset
392 <li>DataGearManager(以下DGM)
7293b6481e32 add slide & tweak
ichikitakahiro <e165713@ie.u-ryukyu.ac.jp>
parents:
diff changeset
393 <ul>
7293b6481e32 add slide & tweak
ichikitakahiro <e165713@ie.u-ryukyu.ac.jp>
parents:
diff changeset
394 <li>DGを管理するものであり, putという操作にて変数(DG)をkeyに格納する。</li>
7293b6481e32 add slide & tweak
ichikitakahiro <e165713@ie.u-ryukyu.ac.jp>
parents:
diff changeset
395 </ul>
17
55e745a21506 add abstruct & slide
ichikitakahiro <e165713@ie.u-ryukyu.ac.jp>
parents: 16
diff changeset
396 </li>
55e745a21506 add abstruct & slide
ichikitakahiro <e165713@ie.u-ryukyu.ac.jp>
parents: 16
diff changeset
397 </ul>
55e745a21506 add abstruct & slide
ichikitakahiro <e165713@ie.u-ryukyu.ac.jp>
parents: 16
diff changeset
398 </li>
55e745a21506 add abstruct & slide
ichikitakahiro <e165713@ie.u-ryukyu.ac.jp>
parents: 16
diff changeset
399 </ul>
16
7293b6481e32 add slide & tweak
ichikitakahiro <e165713@ie.u-ryukyu.ac.jp>
parents:
diff changeset
400
17
55e745a21506 add abstruct & slide
ichikitakahiro <e165713@ie.u-ryukyu.ac.jp>
parents: 16
diff changeset
401
16
7293b6481e32 add slide & tweak
ichikitakahiro <e165713@ie.u-ryukyu.ac.jp>
parents:
diff changeset
402
7293b6481e32 add slide & tweak
ichikitakahiro <e165713@ie.u-ryukyu.ac.jp>
parents:
diff changeset
403 </div>
7293b6481e32 add slide & tweak
ichikitakahiro <e165713@ie.u-ryukyu.ac.jp>
parents:
diff changeset
404
7293b6481e32 add slide & tweak
ichikitakahiro <e165713@ie.u-ryukyu.ac.jp>
parents:
diff changeset
405 <div class='slide'>
7293b6481e32 add slide & tweak
ichikitakahiro <e165713@ie.u-ryukyu.ac.jp>
parents:
diff changeset
406 <!-- _S9SLIDE_ -->
7293b6481e32 add slide & tweak
ichikitakahiro <e165713@ie.u-ryukyu.ac.jp>
parents:
diff changeset
407 <h2 id="christieのコード例">Christieのコード例</h2>
17
55e745a21506 add abstruct & slide
ichikitakahiro <e165713@ie.u-ryukyu.ac.jp>
parents: 16
diff changeset
408 <pre><code>package christie.example.HelloWorld;
16
7293b6481e32 add slide & tweak
ichikitakahiro <e165713@ie.u-ryukyu.ac.jp>
parents:
diff changeset
409
7293b6481e32 add slide & tweak
ichikitakahiro <e165713@ie.u-ryukyu.ac.jp>
parents:
diff changeset
410 import christie.codegear.CodeGearManager;
7293b6481e32 add slide & tweak
ichikitakahiro <e165713@ie.u-ryukyu.ac.jp>
parents:
diff changeset
411 import christie.codegear.StartCodeGear;
7293b6481e32 add slide & tweak
ichikitakahiro <e165713@ie.u-ryukyu.ac.jp>
parents:
diff changeset
412
7293b6481e32 add slide & tweak
ichikitakahiro <e165713@ie.u-ryukyu.ac.jp>
parents:
diff changeset
413 public class StartHelloWorld extends StartCodeGear {
7293b6481e32 add slide & tweak
ichikitakahiro <e165713@ie.u-ryukyu.ac.jp>
parents:
diff changeset
414
7293b6481e32 add slide & tweak
ichikitakahiro <e165713@ie.u-ryukyu.ac.jp>
parents:
diff changeset
415 public StartHelloWorld(CodeGearManager cgm) {
7293b6481e32 add slide & tweak
ichikitakahiro <e165713@ie.u-ryukyu.ac.jp>
parents:
diff changeset
416 super(cgm);
17
55e745a21506 add abstruct & slide
ichikitakahiro <e165713@ie.u-ryukyu.ac.jp>
parents: 16
diff changeset
417 }
16
7293b6481e32 add slide & tweak
ichikitakahiro <e165713@ie.u-ryukyu.ac.jp>
parents:
diff changeset
418
7293b6481e32 add slide & tweak
ichikitakahiro <e165713@ie.u-ryukyu.ac.jp>
parents:
diff changeset
419 public static void main(String[] args){
17
55e745a21506 add abstruct & slide
ichikitakahiro <e165713@ie.u-ryukyu.ac.jp>
parents: 16
diff changeset
420 CodeGearManager cgm = createCGM(10000);
55e745a21506 add abstruct & slide
ichikitakahiro <e165713@ie.u-ryukyu.ac.jp>
parents: 16
diff changeset
421 cgm.setup(new HelloWorldCodeGear());
55e745a21506 add abstruct & slide
ichikitakahiro <e165713@ie.u-ryukyu.ac.jp>
parents: 16
diff changeset
422 cgm.setup(new FinishHelloWorld());
55e745a21506 add abstruct & slide
ichikitakahiro <e165713@ie.u-ryukyu.ac.jp>
parents: 16
diff changeset
423 cgm.getLocalDGM().put("helloWorld","hello");
16
7293b6481e32 add slide & tweak
ichikitakahiro <e165713@ie.u-ryukyu.ac.jp>
parents:
diff changeset
424 cgm.getLocalDGM().put("helloWorld","world");
7293b6481e32 add slide & tweak
ichikitakahiro <e165713@ie.u-ryukyu.ac.jp>
parents:
diff changeset
425 }
7293b6481e32 add slide & tweak
ichikitakahiro <e165713@ie.u-ryukyu.ac.jp>
parents:
diff changeset
426 }
17
55e745a21506 add abstruct & slide
ichikitakahiro <e165713@ie.u-ryukyu.ac.jp>
parents: 16
diff changeset
427 </code></pre>
16
7293b6481e32 add slide & tweak
ichikitakahiro <e165713@ie.u-ryukyu.ac.jp>
parents:
diff changeset
428
17
55e745a21506 add abstruct & slide
ichikitakahiro <e165713@ie.u-ryukyu.ac.jp>
parents: 16
diff changeset
429 <pre><code>ChristieDaemon.listen: bind to /0:0:0:0:0:0:0:0:10000
16
7293b6481e32 add slide & tweak
ichikitakahiro <e165713@ie.u-ryukyu.ac.jp>
parents:
diff changeset
430 hello world
7293b6481e32 add slide & tweak
ichikitakahiro <e165713@ie.u-ryukyu.ac.jp>
parents:
diff changeset
431 </code></pre>
17
55e745a21506 add abstruct & slide
ichikitakahiro <e165713@ie.u-ryukyu.ac.jp>
parents: 16
diff changeset
432
55e745a21506 add abstruct & slide
ichikitakahiro <e165713@ie.u-ryukyu.ac.jp>
parents: 16
diff changeset
433 <!--
16
7293b6481e32 add slide & tweak
ichikitakahiro <e165713@ie.u-ryukyu.ac.jp>
parents:
diff changeset
434 - 立ち上げ後はManager名を指定してDataSegmentAPI用いてDSのやり取りを行うため、プログラマはManager名を意識することでLocalへの操作もRemoteへの操作も同様に扱える。
7293b6481e32 add slide & tweak
ichikitakahiro <e165713@ie.u-ryukyu.ac.jp>
parents:
diff changeset
435 -->
7293b6481e32 add slide & tweak
ichikitakahiro <e165713@ie.u-ryukyu.ac.jp>
parents:
diff changeset
436
7293b6481e32 add slide & tweak
ichikitakahiro <e165713@ie.u-ryukyu.ac.jp>
parents:
diff changeset
437 <!--
7293b6481e32 add slide & tweak
ichikitakahiro <e165713@ie.u-ryukyu.ac.jp>
parents:
diff changeset
438
7293b6481e32 add slide & tweak
ichikitakahiro <e165713@ie.u-ryukyu.ac.jp>
parents:
diff changeset
439 ## Christieの言語概念
7293b6481e32 add slide & tweak
ichikitakahiro <e165713@ie.u-ryukyu.ac.jp>
parents:
diff changeset
440 - CGはスレッド, クラスに相当し, javaの継承を用いて記述する.
7293b6481e32 add slide & tweak
ichikitakahiro <e165713@ie.u-ryukyu.ac.jp>
parents:
diff changeset
441 - DGは変数データに相当し, CG内でアノテーションを用いて変数データを取り出せる.
7293b6481e32 add slide & tweak
ichikitakahiro <e165713@ie.u-ryukyu.ac.jp>
parents:
diff changeset
442 - CGMはノードであり, DG, CG, DGMを管理する.
7293b6481e32 add slide & tweak
ichikitakahiro <e165713@ie.u-ryukyu.ac.jp>
parents:
diff changeset
443 - DGMはDGを管理するものであり, putという操作により, 変数データ(DG)を格納できる.
7293b6481e32 add slide & tweak
ichikitakahiro <e165713@ie.u-ryukyu.ac.jp>
parents:
diff changeset
444 - DGMにはLocalDGMとRemoteDGMが存在する。LocalDGMは各ノード固有のデータベースである。RemoteDSMは他ノードのLocalDGMに対応するproxyであり、接続しているノードの数だけ存在する。
7293b6481e32 add slide & tweak
ichikitakahiro <e165713@ie.u-ryukyu.ac.jp>
parents:
diff changeset
445 - 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
446
7293b6481e32 add slide & tweak
ichikitakahiro <e165713@ie.u-ryukyu.ac.jp>
parents:
diff changeset
447 -->
7293b6481e32 add slide & tweak
ichikitakahiro <e165713@ie.u-ryukyu.ac.jp>
parents:
diff changeset
448
17
55e745a21506 add abstruct & slide
ichikitakahiro <e165713@ie.u-ryukyu.ac.jp>
parents: 16
diff changeset
449 <!--
55e745a21506 add abstruct & slide
ichikitakahiro <e165713@ie.u-ryukyu.ac.jp>
parents: 16
diff changeset
450 ## DGM
55e745a21506 add abstruct & slide
ichikitakahiro <e165713@ie.u-ryukyu.ac.jp>
parents: 16
diff changeset
451 - CGMはDGをputという操作を使って、自身や他ノードのDGMに書き込ませる。
55e745a21506 add abstruct & slide
ichikitakahiro <e165713@ie.u-ryukyu.ac.jp>
parents: 16
diff changeset
452 - LocalDGMが自身、RemoteDGMが他ノードのDGMである。
16
7293b6481e32 add slide & tweak
ichikitakahiro <e165713@ie.u-ryukyu.ac.jp>
parents:
diff changeset
453
17
55e745a21506 add abstruct & slide
ichikitakahiro <e165713@ie.u-ryukyu.ac.jp>
parents: 16
diff changeset
454 <div style="text-align: center;">
55e745a21506 add abstruct & slide
ichikitakahiro <e165713@ie.u-ryukyu.ac.jp>
parents: 16
diff changeset
455 <img src="images/remote_datasegment.pdf" alt="MetaGear" width="800">
16
7293b6481e32 add slide & tweak
ichikitakahiro <e165713@ie.u-ryukyu.ac.jp>
parents:
diff changeset
456 </div>
7293b6481e32 add slide & tweak
ichikitakahiro <e165713@ie.u-ryukyu.ac.jp>
parents:
diff changeset
457
17
55e745a21506 add abstruct & slide
ichikitakahiro <e165713@ie.u-ryukyu.ac.jp>
parents: 16
diff changeset
458 !-->
16
7293b6481e32 add slide & tweak
ichikitakahiro <e165713@ie.u-ryukyu.ac.jp>
parents:
diff changeset
459
7293b6481e32 add slide & tweak
ichikitakahiro <e165713@ie.u-ryukyu.ac.jp>
parents:
diff changeset
460 <!--
7293b6481e32 add slide & tweak
ichikitakahiro <e165713@ie.u-ryukyu.ac.jp>
parents:
diff changeset
461 - RocalDGMを立ち上げるにはDataSegmentクラスが提供する、connectメソッドを用い、接続したいポートのipアドレスとport番号、そして任意のManager名を指定することで立ち上げる。
7293b6481e32 add slide & tweak
ichikitakahiro <e165713@ie.u-ryukyu.ac.jp>
parents:
diff changeset
462 -->
7293b6481e32 add slide & tweak
ichikitakahiro <e165713@ie.u-ryukyu.ac.jp>
parents:
diff changeset
463
7293b6481e32 add slide & tweak
ichikitakahiro <e165713@ie.u-ryukyu.ac.jp>
parents:
diff changeset
464
7293b6481e32 add slide & tweak
ichikitakahiro <e165713@ie.u-ryukyu.ac.jp>
parents:
diff changeset
465
7293b6481e32 add slide & tweak
ichikitakahiro <e165713@ie.u-ryukyu.ac.jp>
parents:
diff changeset
466 </div>
7293b6481e32 add slide & tweak
ichikitakahiro <e165713@ie.u-ryukyu.ac.jp>
parents:
diff changeset
467
7293b6481e32 add slide & tweak
ichikitakahiro <e165713@ie.u-ryukyu.ac.jp>
parents:
diff changeset
468 <div class='slide'>
7293b6481e32 add slide & tweak
ichikitakahiro <e165713@ie.u-ryukyu.ac.jp>
parents:
diff changeset
469 <!-- _S9SLIDE_ -->
7293b6481e32 add slide & tweak
ichikitakahiro <e165713@ie.u-ryukyu.ac.jp>
parents:
diff changeset
470 <h2 id="dgのアノテーション">DGのアノテーション</h2>
7293b6481e32 add slide & tweak
ichikitakahiro <e165713@ie.u-ryukyu.ac.jp>
parents:
diff changeset
471 <ul>
7293b6481e32 add slide & tweak
ichikitakahiro <e165713@ie.u-ryukyu.ac.jp>
parents:
diff changeset
472 <li>DGを取り出す際にはCG内で宣言した変数にアノテーションをつける。DGアノテーションには
7293b6481e32 add slide & tweak
ichikitakahiro <e165713@ie.u-ryukyu.ac.jp>
parents:
diff changeset
473 Take、Peek、TakeFrom、PeekFrom、の4つがある。
7293b6481e32 add slide & tweak
ichikitakahiro <e165713@ie.u-ryukyu.ac.jp>
parents:
diff changeset
474 <ul>
7293b6481e32 add slide & tweak
ichikitakahiro <e165713@ie.u-ryukyu.ac.jp>
parents:
diff changeset
475 <li>Take
7293b6481e32 add slide & tweak
ichikitakahiro <e165713@ie.u-ryukyu.ac.jp>
parents:
diff changeset
476 <ul>
7293b6481e32 add slide & tweak
ichikitakahiro <e165713@ie.u-ryukyu.ac.jp>
parents:
diff changeset
477 <li>先頭のDGを読み込み、そのDGを削除する。</li>
7293b6481e32 add slide & tweak
ichikitakahiro <e165713@ie.u-ryukyu.ac.jp>
parents:
diff changeset
478 </ul>
7293b6481e32 add slide & tweak
ichikitakahiro <e165713@ie.u-ryukyu.ac.jp>
parents:
diff changeset
479 </li>
7293b6481e32 add slide & tweak
ichikitakahiro <e165713@ie.u-ryukyu.ac.jp>
parents:
diff changeset
480 <li>Peek
7293b6481e32 add slide & tweak
ichikitakahiro <e165713@ie.u-ryukyu.ac.jp>
parents:
diff changeset
481 <ul>
7293b6481e32 add slide & tweak
ichikitakahiro <e165713@ie.u-ryukyu.ac.jp>
parents:
diff changeset
482 <li>先頭のDGを読み込むが、DGが消去されない。そのため特に操作をしない場合、同じデータを参照し続ける。</li>
7293b6481e32 add slide & tweak
ichikitakahiro <e165713@ie.u-ryukyu.ac.jp>
parents:
diff changeset
483 </ul>
7293b6481e32 add slide & tweak
ichikitakahiro <e165713@ie.u-ryukyu.ac.jp>
parents:
diff changeset
484 </li>
7293b6481e32 add slide & tweak
ichikitakahiro <e165713@ie.u-ryukyu.ac.jp>
parents:
diff changeset
485 <li>TakeFrom
7293b6481e32 add slide & tweak
ichikitakahiro <e165713@ie.u-ryukyu.ac.jp>
parents:
diff changeset
486 <ul>
7293b6481e32 add slide & tweak
ichikitakahiro <e165713@ie.u-ryukyu.ac.jp>
parents:
diff changeset
487 <li>Remote DGM nameを指定することで、その接続先のDGM からTake操作をおこえる。</li>
7293b6481e32 add slide & tweak
ichikitakahiro <e165713@ie.u-ryukyu.ac.jp>
parents:
diff changeset
488 </ul>
7293b6481e32 add slide & tweak
ichikitakahiro <e165713@ie.u-ryukyu.ac.jp>
parents:
diff changeset
489 </li>
7293b6481e32 add slide & tweak
ichikitakahiro <e165713@ie.u-ryukyu.ac.jp>
parents:
diff changeset
490 <li>PeekFrom
7293b6481e32 add slide & tweak
ichikitakahiro <e165713@ie.u-ryukyu.ac.jp>
parents:
diff changeset
491 <ul>
7293b6481e32 add slide & tweak
ichikitakahiro <e165713@ie.u-ryukyu.ac.jp>
parents:
diff changeset
492 <li>Remote DGM nameを指定することで、その接続先のDGM からPeek操作をおこえる。</li>
7293b6481e32 add slide & tweak
ichikitakahiro <e165713@ie.u-ryukyu.ac.jp>
parents:
diff changeset
493 </ul>
7293b6481e32 add slide & tweak
ichikitakahiro <e165713@ie.u-ryukyu.ac.jp>
parents:
diff changeset
494 </li>
7293b6481e32 add slide & tweak
ichikitakahiro <e165713@ie.u-ryukyu.ac.jp>
parents:
diff changeset
495 </ul>
7293b6481e32 add slide & tweak
ichikitakahiro <e165713@ie.u-ryukyu.ac.jp>
parents:
diff changeset
496 </li>
7293b6481e32 add slide & tweak
ichikitakahiro <e165713@ie.u-ryukyu.ac.jp>
parents:
diff changeset
497 </ul>
7293b6481e32 add slide & tweak
ichikitakahiro <e165713@ie.u-ryukyu.ac.jp>
parents:
diff changeset
498
17
55e745a21506 add abstruct & slide
ichikitakahiro <e165713@ie.u-ryukyu.ac.jp>
parents: 16
diff changeset
499 <pre><code>package christie.example.HelloWorld;
16
7293b6481e32 add slide & tweak
ichikitakahiro <e165713@ie.u-ryukyu.ac.jp>
parents:
diff changeset
500
17
55e745a21506 add abstruct & slide
ichikitakahiro <e165713@ie.u-ryukyu.ac.jp>
parents: 16
diff changeset
501 import christie.annotation.Peek;
55e745a21506 add abstruct & slide
ichikitakahiro <e165713@ie.u-ryukyu.ac.jp>
parents: 16
diff changeset
502 import christie.annotation.Take;
55e745a21506 add abstruct & slide
ichikitakahiro <e165713@ie.u-ryukyu.ac.jp>
parents: 16
diff changeset
503 import christie.codegear.CodeGear;
55e745a21506 add abstruct & slide
ichikitakahiro <e165713@ie.u-ryukyu.ac.jp>
parents: 16
diff changeset
504 import christie.codegear.CodeGearManager;
55e745a21506 add abstruct & slide
ichikitakahiro <e165713@ie.u-ryukyu.ac.jp>
parents: 16
diff changeset
505
55e745a21506 add abstruct & slide
ichikitakahiro <e165713@ie.u-ryukyu.ac.jp>
parents: 16
diff changeset
506 public class HelloWorldCodeGear extends CodeGear {
16
7293b6481e32 add slide & tweak
ichikitakahiro <e165713@ie.u-ryukyu.ac.jp>
parents:
diff changeset
507
17
55e745a21506 add abstruct & slide
ichikitakahiro <e165713@ie.u-ryukyu.ac.jp>
parents: 16
diff changeset
508 @Take
55e745a21506 add abstruct & slide
ichikitakahiro <e165713@ie.u-ryukyu.ac.jp>
parents: 16
diff changeset
509 String helloWorld;
16
7293b6481e32 add slide & tweak
ichikitakahiro <e165713@ie.u-ryukyu.ac.jp>
parents:
diff changeset
510
17
55e745a21506 add abstruct & slide
ichikitakahiro <e165713@ie.u-ryukyu.ac.jp>
parents: 16
diff changeset
511 @Override
55e745a21506 add abstruct & slide
ichikitakahiro <e165713@ie.u-ryukyu.ac.jp>
parents: 16
diff changeset
512 protected void run(CodeGearManager cgm) {
55e745a21506 add abstruct & slide
ichikitakahiro <e165713@ie.u-ryukyu.ac.jp>
parents: 16
diff changeset
513 System.out.print(helloWorld + " ");
55e745a21506 add abstruct & slide
ichikitakahiro <e165713@ie.u-ryukyu.ac.jp>
parents: 16
diff changeset
514 cgm.setup(new HelloWorldCodeGear());
55e745a21506 add abstruct & slide
ichikitakahiro <e165713@ie.u-ryukyu.ac.jp>
parents: 16
diff changeset
515 cgm.getLocalDGM().put(helloWorld,helloWorld);
55e745a21506 add abstruct & slide
ichikitakahiro <e165713@ie.u-ryukyu.ac.jp>
parents: 16
diff changeset
516 }
16
7293b6481e32 add slide & tweak
ichikitakahiro <e165713@ie.u-ryukyu.ac.jp>
parents:
diff changeset
517 }
7293b6481e32 add slide & tweak
ichikitakahiro <e165713@ie.u-ryukyu.ac.jp>
parents:
diff changeset
518 </code></pre>
7293b6481e32 add slide & tweak
ichikitakahiro <e165713@ie.u-ryukyu.ac.jp>
parents:
diff changeset
519
17
55e745a21506 add abstruct & slide
ichikitakahiro <e165713@ie.u-ryukyu.ac.jp>
parents: 16
diff changeset
520 <!--
55e745a21506 add abstruct & slide
ichikitakahiro <e165713@ie.u-ryukyu.ac.jp>
parents: 16
diff changeset
521 ## TopologyManager
55e745a21506 add abstruct & slide
ichikitakahiro <e165713@ie.u-ryukyu.ac.jp>
parents: 16
diff changeset
522 - TopologyManagerとはTopologyを形成のために、参加を表明したノード、TopologyNodeに名前を与え、必要があればノード同士の配線を行うノードである。
55e745a21506 add abstruct & slide
ichikitakahiro <e165713@ie.u-ryukyu.ac.jp>
parents: 16
diff changeset
523 - TopologyManagerのTopology形成方法として、静的Topologyと動的Topologyがある。
55e745a21506 add abstruct & slide
ichikitakahiro <e165713@ie.u-ryukyu.ac.jp>
parents: 16
diff changeset
524 - 動的Topologyは参加を表明したノードに対し、動的にノード同士の関係を作る。例えばTreeを構成する場合、参加したノードから順にrootに近い役割を与え、またCodeGearはノードが参加し、parentに接続された後に実行される。
55e745a21506 add abstruct & slide
ichikitakahiro <e165713@ie.u-ryukyu.ac.jp>
parents: 16
diff changeset
525 - 静的Toopologyはdotファイルを与えることノード関係の構築を行う。
55e745a21506 add abstruct & slide
ichikitakahiro <e165713@ie.u-ryukyu.ac.jp>
parents: 16
diff changeset
526
55e745a21506 add abstruct & slide
ichikitakahiro <e165713@ie.u-ryukyu.ac.jp>
parents: 16
diff changeset
527 ```Code
55e745a21506 add abstruct & slide
ichikitakahiro <e165713@ie.u-ryukyu.ac.jp>
parents: 16
diff changeset
528 digraph test {
55e745a21506 add abstruct & slide
ichikitakahiro <e165713@ie.u-ryukyu.ac.jp>
parents: 16
diff changeset
529 node0 -> node1 [label="right"]
55e745a21506 add abstruct & slide
ichikitakahiro <e165713@ie.u-ryukyu.ac.jp>
parents: 16
diff changeset
530 node1 -> node2 [label="right"]
55e745a21506 add abstruct & slide
ichikitakahiro <e165713@ie.u-ryukyu.ac.jp>
parents: 16
diff changeset
531 node2 -> node0 [label="right"]
55e745a21506 add abstruct & slide
ichikitakahiro <e165713@ie.u-ryukyu.ac.jp>
parents: 16
diff changeset
532 }
55e745a21506 add abstruct & slide
ichikitakahiro <e165713@ie.u-ryukyu.ac.jp>
parents: 16
diff changeset
533 ```
55e745a21506 add abstruct & slide
ichikitakahiro <e165713@ie.u-ryukyu.ac.jp>
parents: 16
diff changeset
534
16
7293b6481e32 add slide & tweak
ichikitakahiro <e165713@ie.u-ryukyu.ac.jp>
parents:
diff changeset
535 <div style="text-align: center;">
17
55e745a21506 add abstruct & slide
ichikitakahiro <e165713@ie.u-ryukyu.ac.jp>
parents: 16
diff changeset
536  <img src="images/ring.pdf" alt="MetaGear" width="500">
16
7293b6481e32 add slide & tweak
ichikitakahiro <e165713@ie.u-ryukyu.ac.jp>
parents:
diff changeset
537 </div>
17
55e745a21506 add abstruct & slide
ichikitakahiro <e165713@ie.u-ryukyu.ac.jp>
parents: 16
diff changeset
538 !-->
16
7293b6481e32 add slide & tweak
ichikitakahiro <e165713@ie.u-ryukyu.ac.jp>
parents:
diff changeset
539
7293b6481e32 add slide & tweak
ichikitakahiro <e165713@ie.u-ryukyu.ac.jp>
parents:
diff changeset
540
7293b6481e32 add slide & tweak
ichikitakahiro <e165713@ie.u-ryukyu.ac.jp>
parents:
diff changeset
541
7293b6481e32 add slide & tweak
ichikitakahiro <e165713@ie.u-ryukyu.ac.jp>
parents:
diff changeset
542 </div>
7293b6481e32 add slide & tweak
ichikitakahiro <e165713@ie.u-ryukyu.ac.jp>
parents:
diff changeset
543
7293b6481e32 add slide & tweak
ichikitakahiro <e165713@ie.u-ryukyu.ac.jp>
parents:
diff changeset
544 <div class='slide'>
7293b6481e32 add slide & tweak
ichikitakahiro <e165713@ie.u-ryukyu.ac.jp>
parents:
diff changeset
545 <!-- _S9SLIDE_ -->
7293b6481e32 add slide & tweak
ichikitakahiro <e165713@ie.u-ryukyu.ac.jp>
parents:
diff changeset
546 <h2 id="まとめとこれから">まとめとこれから</h2>
17
55e745a21506 add abstruct & slide
ichikitakahiro <e165713@ie.u-ryukyu.ac.jp>
parents: 16
diff changeset
547 <ul>
55e745a21506 add abstruct & slide
ichikitakahiro <e165713@ie.u-ryukyu.ac.jp>
parents: 16
diff changeset
548 <li>本研究発表ではリモートエディタの開発とそれに伴う技術について述べた。現時点で実装できた構成は以下である。
55e745a21506 add abstruct & slide
ichikitakahiro <e165713@ie.u-ryukyu.ac.jp>
parents: 16
diff changeset
549 <ul>
55e745a21506 add abstruct & slide
ichikitakahiro <e165713@ie.u-ryukyu.ac.jp>
parents: 16
diff changeset
550 <li>リモートエディタの基本となる命令のやり取り部分のコマンドパターン実装。</li>
55e745a21506 add abstruct & slide
ichikitakahiro <e165713@ie.u-ryukyu.ac.jp>
parents: 16
diff changeset
551 <li>編集相違を防ぐためのアルゴリズムの発案と検証。</li>
55e745a21506 add abstruct & slide
ichikitakahiro <e165713@ie.u-ryukyu.ac.jp>
parents: 16
diff changeset
552 </ul>
55e745a21506 add abstruct & slide
ichikitakahiro <e165713@ie.u-ryukyu.ac.jp>
parents: 16
diff changeset
553 </li>
55e745a21506 add abstruct & slide
ichikitakahiro <e165713@ie.u-ryukyu.ac.jp>
parents: 16
diff changeset
554 <li>現時点では最低限のセッションを動かすまでの最低限の実装は終わっていない。これから取り組まなければならない課題として以下が挙げられる。
55e745a21506 add abstruct & slide
ichikitakahiro <e165713@ie.u-ryukyu.ac.jp>
parents: 16
diff changeset
555 <ul>
55e745a21506 add abstruct & slide
ichikitakahiro <e165713@ie.u-ryukyu.ac.jp>
parents: 16
diff changeset
556 <li>スター型Topologyの接続を動的に行わせる。</li>
55e745a21506 add abstruct & slide
ichikitakahiro <e165713@ie.u-ryukyu.ac.jp>
parents: 16
diff changeset
557 <li>編集するファイルの共有方法
55e745a21506 add abstruct & slide
ichikitakahiro <e165713@ie.u-ryukyu.ac.jp>
parents: 16
diff changeset
558 <ul>
55e745a21506 add abstruct & slide
ichikitakahiro <e165713@ie.u-ryukyu.ac.jp>
parents: 16
diff changeset
559 <li>ファイルをそのまま送信すると、負担が大きいと予想される。</li>
55e745a21506 add abstruct & slide
ichikitakahiro <e165713@ie.u-ryukyu.ac.jp>
parents: 16
diff changeset
560 </ul>
55e745a21506 add abstruct & slide
ichikitakahiro <e165713@ie.u-ryukyu.ac.jp>
parents: 16
diff changeset
561 </li>
55e745a21506 add abstruct & slide
ichikitakahiro <e165713@ie.u-ryukyu.ac.jp>
parents: 16
diff changeset
562 <li>既存のエディタを同期通信に対応させる。</li>
55e745a21506 add abstruct & slide
ichikitakahiro <e165713@ie.u-ryukyu.ac.jp>
parents: 16
diff changeset
563 </ul>
55e745a21506 add abstruct & slide
ichikitakahiro <e165713@ie.u-ryukyu.ac.jp>
parents: 16
diff changeset
564 </li>
55e745a21506 add abstruct & slide
ichikitakahiro <e165713@ie.u-ryukyu.ac.jp>
parents: 16
diff changeset
565 <li>以上の課題の課題に取り組み、これからも実装を続けていきたい。</li>
55e745a21506 add abstruct & slide
ichikitakahiro <e165713@ie.u-ryukyu.ac.jp>
parents: 16
diff changeset
566 </ul>
16
7293b6481e32 add slide & tweak
ichikitakahiro <e165713@ie.u-ryukyu.ac.jp>
parents:
diff changeset
567
7293b6481e32 add slide & tweak
ichikitakahiro <e165713@ie.u-ryukyu.ac.jp>
parents:
diff changeset
568 </div>
7293b6481e32 add slide & tweak
ichikitakahiro <e165713@ie.u-ryukyu.ac.jp>
parents:
diff changeset
569
7293b6481e32 add slide & tweak
ichikitakahiro <e165713@ie.u-ryukyu.ac.jp>
parents:
diff changeset
570
7293b6481e32 add slide & tweak
ichikitakahiro <e165713@ie.u-ryukyu.ac.jp>
parents:
diff changeset
571 </div><!-- presentation -->
7293b6481e32 add slide & tweak
ichikitakahiro <e165713@ie.u-ryukyu.ac.jp>
parents:
diff changeset
572 </body>
7293b6481e32 add slide & tweak
ichikitakahiro <e165713@ie.u-ryukyu.ac.jp>
parents:
diff changeset
573 </html>