annotate paper/jsst-kazz.tex @ 12:afe1f960638e

add api test
author kazz <kazz@cr.ie.u-ryukyu.ac.jp>
date Fri, 27 Aug 2010 18:33:35 +0900
parents ff047df3565a
children 42bea7b0a8f6
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
rev   line source
1
645757a3f87f add abstract
kazz <kazz@cr.ie.u-ryukyu.ac.jp>
parents:
diff changeset
1 % Sample file for the use of compsoft style file.
645757a3f87f add abstract
kazz <kazz@cr.ie.u-ryukyu.ac.jp>
parents:
diff changeset
2 %
645757a3f87f add abstract
kazz <kazz@cr.ie.u-ryukyu.ac.jp>
parents:
diff changeset
3 \documentclass[T]{compsoft}
645757a3f87f add abstract
kazz <kazz@cr.ie.u-ryukyu.ac.jp>
parents:
diff changeset
4
645757a3f87f add abstract
kazz <kazz@cr.ie.u-ryukyu.ac.jp>
parents:
diff changeset
5 % Preamble
645757a3f87f add abstract
kazz <kazz@cr.ie.u-ryukyu.ac.jp>
parents:
diff changeset
6 %
7
bbd40ab63def unicode...
kazz <kazz@cr.ie.u-ryukyu.ac.jp>
parents: 6
diff changeset
7 % 「コンピュータソフトウェア」誌に掲載される論文の場合,次で
bbd40ab63def unicode...
kazz <kazz@cr.ie.u-ryukyu.ac.jp>
parents: 6
diff changeset
8 % 巻数,号数,開始ページ,終了ページを指定する.
1
645757a3f87f add abstract
kazz <kazz@cr.ie.u-ryukyu.ac.jp>
parents:
diff changeset
9 %\volNoPp{16}{5}{78}{83}
645757a3f87f add abstract
kazz <kazz@cr.ie.u-ryukyu.ac.jp>
parents:
diff changeset
10
7
bbd40ab63def unicode...
kazz <kazz@cr.ie.u-ryukyu.ac.jp>
parents: 6
diff changeset
11 % ワークショップによる推薦論文の場合,ワークショップ名を指定する.
bbd40ab63def unicode...
kazz <kazz@cr.ie.u-ryukyu.ac.jp>
parents: 6
diff changeset
12 % \suisen{ワークショップ名}
1
645757a3f87f add abstract
kazz <kazz@cr.ie.u-ryukyu.ac.jp>
parents:
diff changeset
13
7
bbd40ab63def unicode...
kazz <kazz@cr.ie.u-ryukyu.ac.jp>
parents: 6
diff changeset
14 % 特集の場合,特集のタイトルを与える.
bbd40ab63def unicode...
kazz <kazz@cr.ie.u-ryukyu.ac.jp>
parents: 6
diff changeset
15 % \tokushu{特集のタイトル}
1
645757a3f87f add abstract
kazz <kazz@cr.ie.u-ryukyu.ac.jp>
parents:
diff changeset
16
7
bbd40ab63def unicode...
kazz <kazz@cr.ie.u-ryukyu.ac.jp>
parents: 6
diff changeset
17 % 大会論文の場合,\taikai で開催年を指定する.ここで指定した年から
bbd40ab63def unicode...
kazz <kazz@cr.ie.u-ryukyu.ac.jp>
parents: 6
diff changeset
18 % 大会の回数は計算される.
1
645757a3f87f add abstract
kazz <kazz@cr.ie.u-ryukyu.ac.jp>
parents:
diff changeset
19 \taikai{2010}
645757a3f87f add abstract
kazz <kazz@cr.ie.u-ryukyu.ac.jp>
parents:
diff changeset
20
7
bbd40ab63def unicode...
kazz <kazz@cr.ie.u-ryukyu.ac.jp>
parents: 6
diff changeset
21 % ここに,使用するパッケージを列挙する.
1
645757a3f87f add abstract
kazz <kazz@cr.ie.u-ryukyu.ac.jp>
parents:
diff changeset
22 \usepackage[dvips]{graphics}
645757a3f87f add abstract
kazz <kazz@cr.ie.u-ryukyu.ac.jp>
parents:
diff changeset
23
7
bbd40ab63def unicode...
kazz <kazz@cr.ie.u-ryukyu.ac.jp>
parents: 6
diff changeset
24 % ユーザが定義したマクロなどはここに置く.ただし学会誌のスタイルの
bbd40ab63def unicode...
kazz <kazz@cr.ie.u-ryukyu.ac.jp>
parents: 6
diff changeset
25 % 再定義は原則として避けること.
1
645757a3f87f add abstract
kazz <kazz@cr.ie.u-ryukyu.ac.jp>
parents:
diff changeset
26
645757a3f87f add abstract
kazz <kazz@cr.ie.u-ryukyu.ac.jp>
parents:
diff changeset
27 \begin{document}
645757a3f87f add abstract
kazz <kazz@cr.ie.u-ryukyu.ac.jp>
parents:
diff changeset
28
7
bbd40ab63def unicode...
kazz <kazz@cr.ie.u-ryukyu.ac.jp>
parents: 6
diff changeset
29 % 論文のタイトル
bbd40ab63def unicode...
kazz <kazz@cr.ie.u-ryukyu.ac.jp>
parents: 6
diff changeset
30 \title{Meta Engine を用いた Federated Linda の実験}
1
645757a3f87f add abstract
kazz <kazz@cr.ie.u-ryukyu.ac.jp>
parents:
diff changeset
31
7
bbd40ab63def unicode...
kazz <kazz@cr.ie.u-ryukyu.ac.jp>
parents: 6
diff changeset
32 % 著者
bbd40ab63def unicode...
kazz <kazz@cr.ie.u-ryukyu.ac.jp>
parents: 6
diff changeset
33 % 和文論文の場合,姓と名の間には半角スペースを入れ,
bbd40ab63def unicode...
kazz <kazz@cr.ie.u-ryukyu.ac.jp>
parents: 6
diff changeset
34 % 複数の著者の間は全角スペースで区切る
1
645757a3f87f add abstract
kazz <kazz@cr.ie.u-ryukyu.ac.jp>
parents:
diff changeset
35 %
7
bbd40ab63def unicode...
kazz <kazz@cr.ie.u-ryukyu.ac.jp>
parents: 6
diff changeset
36 \author{赤嶺 一樹 河野 真治
1
645757a3f87f add abstract
kazz <kazz@cr.ie.u-ryukyu.ac.jp>
parents:
diff changeset
37 %
7
bbd40ab63def unicode...
kazz <kazz@cr.ie.u-ryukyu.ac.jp>
parents: 6
diff changeset
38 % ここにタイトル英訳 (英文の場合は和訳) を書く.
1
645757a3f87f add abstract
kazz <kazz@cr.ie.u-ryukyu.ac.jp>
parents:
diff changeset
39 %
645757a3f87f add abstract
kazz <kazz@cr.ie.u-ryukyu.ac.jp>
parents:
diff changeset
40 \ejtitle{Experiment of Federated Linda with Meta Engine}
645757a3f87f add abstract
kazz <kazz@cr.ie.u-ryukyu.ac.jp>
parents:
diff changeset
41 %
7
bbd40ab63def unicode...
kazz <kazz@cr.ie.u-ryukyu.ac.jp>
parents: 6
diff changeset
42 % ここに著者英文表記 (英文の場合は和文表記) および
bbd40ab63def unicode...
kazz <kazz@cr.ie.u-ryukyu.ac.jp>
parents: 6
diff changeset
43 % 所属 (和文および英文) を書く.
bbd40ab63def unicode...
kazz <kazz@cr.ie.u-ryukyu.ac.jp>
parents: 6
diff changeset
44 % 複数著者の所属はまとめてよい.
1
645757a3f87f add abstract
kazz <kazz@cr.ie.u-ryukyu.ac.jp>
parents:
diff changeset
45 %
7
bbd40ab63def unicode...
kazz <kazz@cr.ie.u-ryukyu.ac.jp>
parents: 6
diff changeset
46 \shozoku{Kazuki Akamine}{琉球大学理工学研究科情報工学専攻}%
6
791dea86a2ec add update
kazz <kazz@cr.ie.u-ryukyu.ac.jp>
parents: 5
diff changeset
47 {Information Engineering Course, Faculty of Engineering Graduate School
791dea86a2ec add update
kazz <kazz@cr.ie.u-ryukyu.ac.jp>
parents: 5
diff changeset
48 of Engineering and Science, University of the Ryukyus}
1
645757a3f87f add abstract
kazz <kazz@cr.ie.u-ryukyu.ac.jp>
parents:
diff changeset
49 %
7
bbd40ab63def unicode...
kazz <kazz@cr.ie.u-ryukyu.ac.jp>
parents: 6
diff changeset
50 % 出典情報は \shutten とすれば出力される.
1
645757a3f87f add abstract
kazz <kazz@cr.ie.u-ryukyu.ac.jp>
parents:
diff changeset
51 %\shutten
645757a3f87f add abstract
kazz <kazz@cr.ie.u-ryukyu.ac.jp>
parents:
diff changeset
52 %
7
bbd40ab63def unicode...
kazz <kazz@cr.ie.u-ryukyu.ac.jp>
parents: 6
diff changeset
53 % 受付年月日,記事カテゴリなどは自動的に生成される.
1
645757a3f87f add abstract
kazz <kazz@cr.ie.u-ryukyu.ac.jp>
parents:
diff changeset
54 %\uketsuke{1999}{8}{3}
645757a3f87f add abstract
kazz <kazz@cr.ie.u-ryukyu.ac.jp>
parents:
diff changeset
55 %
7
bbd40ab63def unicode...
kazz <kazz@cr.ie.u-ryukyu.ac.jp>
parents: 6
diff changeset
56 % その他,脚注に入れるものがあれば,\note に記述する.
bbd40ab63def unicode...
kazz <kazz@cr.ie.u-ryukyu.ac.jp>
parents: 6
diff changeset
57 %\note{脚注に入れる内容}
1
645757a3f87f add abstract
kazz <kazz@cr.ie.u-ryukyu.ac.jp>
parents:
diff changeset
58 }
645757a3f87f add abstract
kazz <kazz@cr.ie.u-ryukyu.ac.jp>
parents:
diff changeset
59
645757a3f87f add abstract
kazz <kazz@cr.ie.u-ryukyu.ac.jp>
parents:
diff changeset
60 %
7
bbd40ab63def unicode...
kazz <kazz@cr.ie.u-ryukyu.ac.jp>
parents: 6
diff changeset
61 % 和文アブストラクト
1
645757a3f87f add abstract
kazz <kazz@cr.ie.u-ryukyu.ac.jp>
parents:
diff changeset
62 \Jabstract{%
7
bbd40ab63def unicode...
kazz <kazz@cr.ie.u-ryukyu.ac.jp>
parents: 6
diff changeset
63 本研究室では、分散型タプルスペースの実験用に Federated Linda を
bbd40ab63def unicode...
kazz <kazz@cr.ie.u-ryukyu.ac.jp>
parents: 6
diff changeset
64 提案し、実装してきた。従来の Federated Linda は各ノードの間に配置された
bbd40ab63def unicode...
kazz <kazz@cr.ie.u-ryukyu.ac.jp>
parents: 6
diff changeset
65 Protocol Engine によって互いに連携するが、プロセスが異なるため無駄な通信
bbd40ab63def unicode...
kazz <kazz@cr.ie.u-ryukyu.ac.jp>
parents: 6
diff changeset
66 が存在した。そこで Federated Linda と同一プロセス上で動作する Meta Engine
bbd40ab63def unicode...
kazz <kazz@cr.ie.u-ryukyu.ac.jp>
parents: 6
diff changeset
67 を提案し、実装してきた。本研究では、クラスター上で Meta Engine を用いた実
bbd40ab63def unicode...
kazz <kazz@cr.ie.u-ryukyu.ac.jp>
parents: 6
diff changeset
68 験用トポロジーを構築し、MetaEngine の使用例を示す。
1
645757a3f87f add abstract
kazz <kazz@cr.ie.u-ryukyu.ac.jp>
parents:
diff changeset
69 }
645757a3f87f add abstract
kazz <kazz@cr.ie.u-ryukyu.ac.jp>
parents:
diff changeset
70 %
7
bbd40ab63def unicode...
kazz <kazz@cr.ie.u-ryukyu.ac.jp>
parents: 6
diff changeset
71 % 英文アブストラクト(大会論文には必要なし)
1
645757a3f87f add abstract
kazz <kazz@cr.ie.u-ryukyu.ac.jp>
parents:
diff changeset
72 % \Eabstract{}
645757a3f87f add abstract
kazz <kazz@cr.ie.u-ryukyu.ac.jp>
parents:
diff changeset
73 %
645757a3f87f add abstract
kazz <kazz@cr.ie.u-ryukyu.ac.jp>
parents:
diff changeset
74 \maketitle
645757a3f87f add abstract
kazz <kazz@cr.ie.u-ryukyu.ac.jp>
parents:
diff changeset
75
7
bbd40ab63def unicode...
kazz <kazz@cr.ie.u-ryukyu.ac.jp>
parents: 6
diff changeset
76 \section{はじめに}
3
b1cab0c473e8 add hajimeni
kazz <kazz@cr.ie.u-ryukyu.ac.jp>
parents: 2
diff changeset
77
7
bbd40ab63def unicode...
kazz <kazz@cr.ie.u-ryukyu.ac.jp>
parents: 6
diff changeset
78 twitter をはじめとする大人数参加型 Web サービスや MMORPG などの大人数参
bbd40ab63def unicode...
kazz <kazz@cr.ie.u-ryukyu.ac.jp>
parents: 6
diff changeset
79 加型リアルタイムネットワークゲームが、これまで以上に大規模なものとなって
bbd40ab63def unicode...
kazz <kazz@cr.ie.u-ryukyu.ac.jp>
parents: 6
diff changeset
80 いくためには、分散ネットワークプログラムの発展が不可欠である。
3
b1cab0c473e8 add hajimeni
kazz <kazz@cr.ie.u-ryukyu.ac.jp>
parents: 2
diff changeset
81
7
bbd40ab63def unicode...
kazz <kazz@cr.ie.u-ryukyu.ac.jp>
parents: 6
diff changeset
82 しかし、分散ネットワークプログラムにおけるスケーラビリティーの確保は
bbd40ab63def unicode...
kazz <kazz@cr.ie.u-ryukyu.ac.jp>
parents: 6
diff changeset
83 難しい。ここで言うスケーラビリティーとは、サービスの大きさが増えたときに
bbd40ab63def unicode...
kazz <kazz@cr.ie.u-ryukyu.ac.jp>
parents: 6
diff changeset
84 サーバーなどのリソースを追加することのみでサービスの質をリニアに維持でき
bbd40ab63def unicode...
kazz <kazz@cr.ie.u-ryukyu.ac.jp>
parents: 6
diff changeset
85 ることを指す。
3
b1cab0c473e8 add hajimeni
kazz <kazz@cr.ie.u-ryukyu.ac.jp>
parents: 2
diff changeset
86
7
bbd40ab63def unicode...
kazz <kazz@cr.ie.u-ryukyu.ac.jp>
parents: 6
diff changeset
87 すなわち理想的なモデルは、複数のサーバーを接続することで負荷を分散し、ク
bbd40ab63def unicode...
kazz <kazz@cr.ie.u-ryukyu.ac.jp>
parents: 6
diff changeset
88 ライアントの数に従ってサービスが自然にスケールするものでなくてはならない。
1
645757a3f87f add abstract
kazz <kazz@cr.ie.u-ryukyu.ac.jp>
parents:
diff changeset
89
7
bbd40ab63def unicode...
kazz <kazz@cr.ie.u-ryukyu.ac.jp>
parents: 6
diff changeset
90 例えば、現在の分散技術を助けている Key-Value Store などでは、すべてのデー
bbd40ab63def unicode...
kazz <kazz@cr.ie.u-ryukyu.ac.jp>
parents: 6
diff changeset
91 タのレプリケーションを複数台用意するという手法がとられている。
bbd40ab63def unicode...
kazz <kazz@cr.ie.u-ryukyu.ac.jp>
parents: 6
diff changeset
92 しかしながら、大人数が参加するサービスにおいて、全員が個人のとあるデータ
bbd40ab63def unicode...
kazz <kazz@cr.ie.u-ryukyu.ac.jp>
parents: 6
diff changeset
93 を持っている必要性はない。自分と関連のある人物の情報さえ取得できるように
bbd40ab63def unicode...
kazz <kazz@cr.ie.u-ryukyu.ac.jp>
parents: 6
diff changeset
94 なっていればよいのである。つまり、全データのレプリケーションを用意する必
bbd40ab63def unicode...
kazz <kazz@cr.ie.u-ryukyu.ac.jp>
parents: 6
diff changeset
95 要はなく、サーバーがクライアントの必要な情報とは何かを把握し、情報を取捨
bbd40ab63def unicode...
kazz <kazz@cr.ie.u-ryukyu.ac.jp>
parents: 6
diff changeset
96 しながら伝搬していく必要がある。
3
b1cab0c473e8 add hajimeni
kazz <kazz@cr.ie.u-ryukyu.ac.jp>
parents: 2
diff changeset
97
12
afe1f960638e add api test
kazz <kazz@cr.ie.u-ryukyu.ac.jp>
parents: 11
diff changeset
98 本研究室では、分散プログラムモデルとして、タプルスペースを制御する Linda
afe1f960638e add api test
kazz <kazz@cr.ie.u-ryukyu.ac.jp>
parents: 11
diff changeset
99 を採用してきた。さらに、複数台の Linda サーバーを接続したモデルである分
afe1f960638e add api test
kazz <kazz@cr.ie.u-ryukyu.ac.jp>
parents: 11
diff changeset
100 散型タプルスペースFederated Linda を提案し、実装してきた。本研究では、
afe1f960638e add api test
kazz <kazz@cr.ie.u-ryukyu.ac.jp>
parents: 11
diff changeset
101 Linda の API の見直しと、 Federated Linda を用いたアプリケーションの実装
afe1f960638e add api test
kazz <kazz@cr.ie.u-ryukyu.ac.jp>
parents: 11
diff changeset
102 を行い、現在のシステムの問題点を洗い出すことにする。
3
b1cab0c473e8 add hajimeni
kazz <kazz@cr.ie.u-ryukyu.ac.jp>
parents: 2
diff changeset
103
7
bbd40ab63def unicode...
kazz <kazz@cr.ie.u-ryukyu.ac.jp>
parents: 6
diff changeset
104 \section{ゲームの例題}
1
645757a3f87f add abstract
kazz <kazz@cr.ie.u-ryukyu.ac.jp>
parents:
diff changeset
105
7
bbd40ab63def unicode...
kazz <kazz@cr.ie.u-ryukyu.ac.jp>
parents: 6
diff changeset
106 \subsection{水族館ゲーム}\label{subsection:aquarium}
bbd40ab63def unicode...
kazz <kazz@cr.ie.u-ryukyu.ac.jp>
parents: 6
diff changeset
107 本研究では、ネットワークゲームを例題として用いることにした。そのゲームは、
bbd40ab63def unicode...
kazz <kazz@cr.ie.u-ryukyu.ac.jp>
parents: 6
diff changeset
108 複数のクライアントのディスプレイを並べて使用する。各プレイヤーは1匹ずつ
bbd40ab63def unicode...
kazz <kazz@cr.ie.u-ryukyu.ac.jp>
parents: 6
diff changeset
109 魚のオブジェクトが与えられ、それを自由に操作することが出来る。また、魚は
bbd40ab63def unicode...
kazz <kazz@cr.ie.u-ryukyu.ac.jp>
parents: 6
diff changeset
110 画面の端まで移動すると、自分の画面上からは消え、隣のプレイヤーの画面の端
9
f50ac96ec14a add pic
kazz <kazz@cr.ie.u-ryukyu.ac.jp>
parents: 8
diff changeset
111 から魚が出てくる。(図\ref{fig:aqua})
4
ec43386bfda7 add linda
kazz <kazz@cr.ie.u-ryukyu.ac.jp>
parents: 3
diff changeset
112
8
f1a4957b9d98 add pic
kazz <kazz@cr.ie.u-ryukyu.ac.jp>
parents: 7
diff changeset
113 \begin{figure}[htbp]
f1a4957b9d98 add pic
kazz <kazz@cr.ie.u-ryukyu.ac.jp>
parents: 7
diff changeset
114 \begin{center}
12
afe1f960638e add api test
kazz <kazz@cr.ie.u-ryukyu.ac.jp>
parents: 11
diff changeset
115 \scalebox{0.50}{\includegraphics{./pic/aqua.eps}} % TODO: 重いから最後
afe1f960638e add api test
kazz <kazz@cr.ie.u-ryukyu.ac.jp>
parents: 11
diff changeset
116 %\scalebox{0.50}{\includegraphics{./pic/fedlinda.eps}}
8
f1a4957b9d98 add pic
kazz <kazz@cr.ie.u-ryukyu.ac.jp>
parents: 7
diff changeset
117 \end{center}
f1a4957b9d98 add pic
kazz <kazz@cr.ie.u-ryukyu.ac.jp>
parents: 7
diff changeset
118 \caption{A,B,C の順に接続すると左から順に画面が接続される。 B の魚は C
f1a4957b9d98 add pic
kazz <kazz@cr.ie.u-ryukyu.ac.jp>
parents: 7
diff changeset
119 の画面まで移動している。}
f1a4957b9d98 add pic
kazz <kazz@cr.ie.u-ryukyu.ac.jp>
parents: 7
diff changeset
120 \label{fig:aqua}
f1a4957b9d98 add pic
kazz <kazz@cr.ie.u-ryukyu.ac.jp>
parents: 7
diff changeset
121 \end{figure}
1
645757a3f87f add abstract
kazz <kazz@cr.ie.u-ryukyu.ac.jp>
parents:
diff changeset
122
4
ec43386bfda7 add linda
kazz <kazz@cr.ie.u-ryukyu.ac.jp>
parents: 3
diff changeset
123 \section{Federated Linda}
ec43386bfda7 add linda
kazz <kazz@cr.ie.u-ryukyu.ac.jp>
parents: 3
diff changeset
124
7
bbd40ab63def unicode...
kazz <kazz@cr.ie.u-ryukyu.ac.jp>
parents: 6
diff changeset
125 \subsection{Linda とは}\label{subsection:linda}
bbd40ab63def unicode...
kazz <kazz@cr.ie.u-ryukyu.ac.jp>
parents: 6
diff changeset
126 Linda は、タプルスペースという ID で区画されたデータストアに、以下の API
bbd40ab63def unicode...
kazz <kazz@cr.ie.u-ryukyu.ac.jp>
parents: 6
diff changeset
127 (表\ref{tab:lindaapi})
bbd40ab63def unicode...
kazz <kazz@cr.ie.u-ryukyu.ac.jp>
parents: 6
diff changeset
128 を用いてデータを出し入れすることによって、外部との通信を行う分散プログラ
bbd40ab63def unicode...
kazz <kazz@cr.ie.u-ryukyu.ac.jp>
parents: 6
diff changeset
129 ミングモデルである。
4
ec43386bfda7 add linda
kazz <kazz@cr.ie.u-ryukyu.ac.jp>
parents: 3
diff changeset
130
ec43386bfda7 add linda
kazz <kazz@cr.ie.u-ryukyu.ac.jp>
parents: 3
diff changeset
131 \begin{table}[htbp]
ec43386bfda7 add linda
kazz <kazz@cr.ie.u-ryukyu.ac.jp>
parents: 3
diff changeset
132 \begin{center}
ec43386bfda7 add linda
kazz <kazz@cr.ie.u-ryukyu.ac.jp>
parents: 3
diff changeset
133 \caption{Linda API}
ec43386bfda7 add linda
kazz <kazz@cr.ie.u-ryukyu.ac.jp>
parents: 3
diff changeset
134 \label{tab:lindaapi}
ec43386bfda7 add linda
kazz <kazz@cr.ie.u-ryukyu.ac.jp>
parents: 3
diff changeset
135 \begin{tabular}[t]{|l|l|}
ec43386bfda7 add linda
kazz <kazz@cr.ie.u-ryukyu.ac.jp>
parents: 3
diff changeset
136 \hline
7
bbd40ab63def unicode...
kazz <kazz@cr.ie.u-ryukyu.ac.jp>
parents: 6
diff changeset
137 in(id)&タプル空間から取り出す。\\&タプル空間にタプルは残らない。\\
4
ec43386bfda7 add linda
kazz <kazz@cr.ie.u-ryukyu.ac.jp>
parents: 3
diff changeset
138 \hline
7
bbd40ab63def unicode...
kazz <kazz@cr.ie.u-ryukyu.ac.jp>
parents: 6
diff changeset
139 rd(id)&タプル空間から取り出す。\\&タプル空間にタプルが残る。\\
4
ec43386bfda7 add linda
kazz <kazz@cr.ie.u-ryukyu.ac.jp>
parents: 3
diff changeset
140 \hline
7
bbd40ab63def unicode...
kazz <kazz@cr.ie.u-ryukyu.ac.jp>
parents: 6
diff changeset
141 out(id,data)&タプル空間にタプルを入れる。 \\
4
ec43386bfda7 add linda
kazz <kazz@cr.ie.u-ryukyu.ac.jp>
parents: 3
diff changeset
142 \hline
ec43386bfda7 add linda
kazz <kazz@cr.ie.u-ryukyu.ac.jp>
parents: 3
diff changeset
143 \end{tabular}
ec43386bfda7 add linda
kazz <kazz@cr.ie.u-ryukyu.ac.jp>
parents: 3
diff changeset
144 \end{center}
ec43386bfda7 add linda
kazz <kazz@cr.ie.u-ryukyu.ac.jp>
parents: 3
diff changeset
145 \end{table}
ec43386bfda7 add linda
kazz <kazz@cr.ie.u-ryukyu.ac.jp>
parents: 3
diff changeset
146
7
bbd40ab63def unicode...
kazz <kazz@cr.ie.u-ryukyu.ac.jp>
parents: 6
diff changeset
147 \subsection{Federated Linda とは}\label{subsection:fedlinda}
bbd40ab63def unicode...
kazz <kazz@cr.ie.u-ryukyu.ac.jp>
parents: 6
diff changeset
148 Federated Linda は Linda サーバーを複数台、相互に接続することによって、
bbd40ab63def unicode...
kazz <kazz@cr.ie.u-ryukyu.ac.jp>
parents: 6
diff changeset
149 分散プログラミングを実現する。各サーバーは、接続した Linda サーバー内の
bbd40ab63def unicode...
kazz <kazz@cr.ie.u-ryukyu.ac.jp>
parents: 6
diff changeset
150 タプルスペースへデータのin/out を行うことによって、データを伝搬する。
5
da25d11707c8 add fedlinda pic
kazz <kazz@cr.ie.u-ryukyu.ac.jp>
parents: 4
diff changeset
151
da25d11707c8 add fedlinda pic
kazz <kazz@cr.ie.u-ryukyu.ac.jp>
parents: 4
diff changeset
152 \begin{figure}[htbp]
da25d11707c8 add fedlinda pic
kazz <kazz@cr.ie.u-ryukyu.ac.jp>
parents: 4
diff changeset
153 \begin{center}
da25d11707c8 add fedlinda pic
kazz <kazz@cr.ie.u-ryukyu.ac.jp>
parents: 4
diff changeset
154 \scalebox{0.50}{\includegraphics{./pic/fedlinda.eps}}
da25d11707c8 add fedlinda pic
kazz <kazz@cr.ie.u-ryukyu.ac.jp>
parents: 4
diff changeset
155 \end{center}
9
f50ac96ec14a add pic
kazz <kazz@cr.ie.u-ryukyu.ac.jp>
parents: 8
diff changeset
156 \caption{Federate Linda の接続モデル。組み込まれた Meta Engine がタプルスペースを操作し、外部のサーバーへデー
f50ac96ec14a add pic
kazz <kazz@cr.ie.u-ryukyu.ac.jp>
parents: 8
diff changeset
157 タを伝搬する}
6
791dea86a2ec add update
kazz <kazz@cr.ie.u-ryukyu.ac.jp>
parents: 5
diff changeset
158 \label{fig:fedlinda}
5
da25d11707c8 add fedlinda pic
kazz <kazz@cr.ie.u-ryukyu.ac.jp>
parents: 4
diff changeset
159 \end{figure}
4
ec43386bfda7 add linda
kazz <kazz@cr.ie.u-ryukyu.ac.jp>
parents: 3
diff changeset
160
ec43386bfda7 add linda
kazz <kazz@cr.ie.u-ryukyu.ac.jp>
parents: 3
diff changeset
161
7
bbd40ab63def unicode...
kazz <kazz@cr.ie.u-ryukyu.ac.jp>
parents: 6
diff changeset
162 \subsection{Meta Engine とは}\label{subsection:metaengine}
6
791dea86a2ec add update
kazz <kazz@cr.ie.u-ryukyu.ac.jp>
parents: 5
diff changeset
163
7
bbd40ab63def unicode...
kazz <kazz@cr.ie.u-ryukyu.ac.jp>
parents: 6
diff changeset
164 Federated Linda は、サーバー間に設置された、 Protocol Engine と呼ばれる
bbd40ab63def unicode...
kazz <kazz@cr.ie.u-ryukyu.ac.jp>
parents: 6
diff changeset
165 プログラムによって、タプルスペースの操作や、他サーバーへのタプルの伝搬などを行っており、
bbd40ab63def unicode...
kazz <kazz@cr.ie.u-ryukyu.ac.jp>
parents: 6
diff changeset
166 タプルスペースとは別のプロセスとして、サーバー上に存在していた。しかし、
bbd40ab63def unicode...
kazz <kazz@cr.ie.u-ryukyu.ac.jp>
parents: 6
diff changeset
167 別のプロセスであるため、タプルスペースへのアクセスには同一サーバー上であっ
bbd40ab63def unicode...
kazz <kazz@cr.ie.u-ryukyu.ac.jp>
parents: 6
diff changeset
168 ても、ソケット通信を用いていた。
6
791dea86a2ec add update
kazz <kazz@cr.ie.u-ryukyu.ac.jp>
parents: 5
diff changeset
169
7
bbd40ab63def unicode...
kazz <kazz@cr.ie.u-ryukyu.ac.jp>
parents: 6
diff changeset
170 そこで、本研究室では、 Meta Engine と呼ばれるプログラムを提案し実装して
bbd40ab63def unicode...
kazz <kazz@cr.ie.u-ryukyu.ac.jp>
parents: 6
diff changeset
171 きた。 Meta Engine は、 タプルスペースと同一プロセス上に組み込まれた
9
f50ac96ec14a add pic
kazz <kazz@cr.ie.u-ryukyu.ac.jp>
parents: 8
diff changeset
172 Protocol Engine である。(図\ref{fig:fedlinda})すなわち、タプルスペースと
7
bbd40ab63def unicode...
kazz <kazz@cr.ie.u-ryukyu.ac.jp>
parents: 6
diff changeset
173 同じメモリ空間にあるため、ソケット通信を用いることなく直接 Linda の API
bbd40ab63def unicode...
kazz <kazz@cr.ie.u-ryukyu.ac.jp>
parents: 6
diff changeset
174 を使用して、タプルスペースにアクセスすることが出来る。
4
ec43386bfda7 add linda
kazz <kazz@cr.ie.u-ryukyu.ac.jp>
parents: 3
diff changeset
175
7
bbd40ab63def unicode...
kazz <kazz@cr.ie.u-ryukyu.ac.jp>
parents: 6
diff changeset
176 \section{Linda API の見直し}
bbd40ab63def unicode...
kazz <kazz@cr.ie.u-ryukyu.ac.jp>
parents: 6
diff changeset
177 \subsection{update() API の追加}\label{subsection:update}
bbd40ab63def unicode...
kazz <kazz@cr.ie.u-ryukyu.ac.jp>
parents: 6
diff changeset
178 現状の Linda API では、タプル内のデータを更新するためには in() を実行し
bbd40ab63def unicode...
kazz <kazz@cr.ie.u-ryukyu.ac.jp>
parents: 6
diff changeset
179 てデータを取り出して削除したあとに、out() を実行してデータを書き込む必要
11
ff047df3565a add pic inout and update
kazz <kazz@cr.ie.u-ryukyu.ac.jp>
parents: 10
diff changeset
180 があった。(図\ref{fig:inout})今回考えている水族館の例題でも、操作があったときにはタプルスペー
7
bbd40ab63def unicode...
kazz <kazz@cr.ie.u-ryukyu.ac.jp>
parents: 6
diff changeset
181 スの座標情報を最新のデータに更新する必要がある。
6
791dea86a2ec add update
kazz <kazz@cr.ie.u-ryukyu.ac.jp>
parents: 5
diff changeset
182
11
ff047df3565a add pic inout and update
kazz <kazz@cr.ie.u-ryukyu.ac.jp>
parents: 10
diff changeset
183 \begin{figure}[htbp]
ff047df3565a add pic inout and update
kazz <kazz@cr.ie.u-ryukyu.ac.jp>
parents: 10
diff changeset
184 \begin{center}
ff047df3565a add pic inout and update
kazz <kazz@cr.ie.u-ryukyu.ac.jp>
parents: 10
diff changeset
185 \scalebox{0.50}{\includegraphics{./pic/inout.eps}}
ff047df3565a add pic inout and update
kazz <kazz@cr.ie.u-ryukyu.ac.jp>
parents: 10
diff changeset
186 \end{center}
ff047df3565a add pic inout and update
kazz <kazz@cr.ie.u-ryukyu.ac.jp>
parents: 10
diff changeset
187 \caption{in/out を用いたデータの更新}
ff047df3565a add pic inout and update
kazz <kazz@cr.ie.u-ryukyu.ac.jp>
parents: 10
diff changeset
188 \label{fig:inout}
ff047df3565a add pic inout and update
kazz <kazz@cr.ie.u-ryukyu.ac.jp>
parents: 10
diff changeset
189 \end{figure}
ff047df3565a add pic inout and update
kazz <kazz@cr.ie.u-ryukyu.ac.jp>
parents: 10
diff changeset
190
ff047df3565a add pic inout and update
kazz <kazz@cr.ie.u-ryukyu.ac.jp>
parents: 10
diff changeset
191
7
bbd40ab63def unicode...
kazz <kazz@cr.ie.u-ryukyu.ac.jp>
parents: 6
diff changeset
192 そこで、今回、新しく update() API を追加することにした。update() を実行
11
ff047df3565a add pic inout and update
kazz <kazz@cr.ie.u-ryukyu.ac.jp>
parents: 10
diff changeset
193 すると、現在存在するタプルは削除され、新しいデータで上書きされる。(図\ref{fig:update})
ff047df3565a add pic inout and update
kazz <kazz@cr.ie.u-ryukyu.ac.jp>
parents: 10
diff changeset
194
ff047df3565a add pic inout and update
kazz <kazz@cr.ie.u-ryukyu.ac.jp>
parents: 10
diff changeset
195 \begin{figure}[htbp]
ff047df3565a add pic inout and update
kazz <kazz@cr.ie.u-ryukyu.ac.jp>
parents: 10
diff changeset
196 \begin{center}
ff047df3565a add pic inout and update
kazz <kazz@cr.ie.u-ryukyu.ac.jp>
parents: 10
diff changeset
197 \scalebox{0.50}{\includegraphics{./pic/update.eps}}
ff047df3565a add pic inout and update
kazz <kazz@cr.ie.u-ryukyu.ac.jp>
parents: 10
diff changeset
198 \end{center}
ff047df3565a add pic inout and update
kazz <kazz@cr.ie.u-ryukyu.ac.jp>
parents: 10
diff changeset
199 \caption{update を用いたデータの更新}
ff047df3565a add pic inout and update
kazz <kazz@cr.ie.u-ryukyu.ac.jp>
parents: 10
diff changeset
200 \label{fig:update}
ff047df3565a add pic inout and update
kazz <kazz@cr.ie.u-ryukyu.ac.jp>
parents: 10
diff changeset
201 \end{figure}
ff047df3565a add pic inout and update
kazz <kazz@cr.ie.u-ryukyu.ac.jp>
parents: 10
diff changeset
202
12
afe1f960638e add api test
kazz <kazz@cr.ie.u-ryukyu.ac.jp>
parents: 11
diff changeset
203 update() の引数は、 out() と同じく update(id,data) のように、 id と data を渡す。
4
ec43386bfda7 add linda
kazz <kazz@cr.ie.u-ryukyu.ac.jp>
parents: 3
diff changeset
204
9
f50ac96ec14a add pic
kazz <kazz@cr.ie.u-ryukyu.ac.jp>
parents: 8
diff changeset
205 \section{Meta Engine を用いたサーバーの設計}
7
bbd40ab63def unicode...
kazz <kazz@cr.ie.u-ryukyu.ac.jp>
parents: 6
diff changeset
206 \subsection{ツリー型トポロジーを用いた負荷分散}\label{subsection:treetopology}
10
6fac1d4cc28a add tree topology
kazz <kazz@cr.ie.u-ryukyu.ac.jp>
parents: 9
diff changeset
207 今回の例題には、ツリー型トポロジー Federated Linda を用いることにした。
11
ff047df3565a add pic inout and update
kazz <kazz@cr.ie.u-ryukyu.ac.jp>
parents: 10
diff changeset
208 (図\ref{fig:treetopology})
9
f50ac96ec14a add pic
kazz <kazz@cr.ie.u-ryukyu.ac.jp>
parents: 8
diff changeset
209
f50ac96ec14a add pic
kazz <kazz@cr.ie.u-ryukyu.ac.jp>
parents: 8
diff changeset
210 \begin{figure}[htbp]
f50ac96ec14a add pic
kazz <kazz@cr.ie.u-ryukyu.ac.jp>
parents: 8
diff changeset
211 \begin{center}
f50ac96ec14a add pic
kazz <kazz@cr.ie.u-ryukyu.ac.jp>
parents: 8
diff changeset
212 \scalebox{0.40}{\includegraphics{./pic/treetopology.eps}}
f50ac96ec14a add pic
kazz <kazz@cr.ie.u-ryukyu.ac.jp>
parents: 8
diff changeset
213 \end{center}
f50ac96ec14a add pic
kazz <kazz@cr.ie.u-ryukyu.ac.jp>
parents: 8
diff changeset
214 \caption{ツリー型トポロジーで接続された Federated Linda。ツリーの末端に
f50ac96ec14a add pic
kazz <kazz@cr.ie.u-ryukyu.ac.jp>
parents: 8
diff changeset
215 クライアントを接続する。}
11
ff047df3565a add pic inout and update
kazz <kazz@cr.ie.u-ryukyu.ac.jp>
parents: 10
diff changeset
216 \label{fig:treetopology}
9
f50ac96ec14a add pic
kazz <kazz@cr.ie.u-ryukyu.ac.jp>
parents: 8
diff changeset
217 \end{figure}
f50ac96ec14a add pic
kazz <kazz@cr.ie.u-ryukyu.ac.jp>
parents: 8
diff changeset
218
12
afe1f960638e add api test
kazz <kazz@cr.ie.u-ryukyu.ac.jp>
parents: 11
diff changeset
219 ツリー型トポロジーの各ノードは、親と2つの子への接続を持つ。また、末端の
afe1f960638e add api test
kazz <kazz@cr.ie.u-ryukyu.ac.jp>
parents: 11
diff changeset
220 ノードはクライアントによる接続も受け付ける。
10
6fac1d4cc28a add tree topology
kazz <kazz@cr.ie.u-ryukyu.ac.jp>
parents: 9
diff changeset
221
6fac1d4cc28a add tree topology
kazz <kazz@cr.ie.u-ryukyu.ac.jp>
parents: 9
diff changeset
222 クライアントから座標情報を受け取った末端のノードは、その座標情報を他のク
6fac1d4cc28a add tree topology
kazz <kazz@cr.ie.u-ryukyu.ac.jp>
parents: 9
diff changeset
223 ライアントが必要としているかを判断する。もしも必要ならば、その Linda サー
6fac1d4cc28a add tree topology
kazz <kazz@cr.ie.u-ryukyu.ac.jp>
parents: 9
diff changeset
224 バーのみで通信は完結しているため、 Federated Linda 上でデータの伝搬は行
6fac1d4cc28a add tree topology
kazz <kazz@cr.ie.u-ryukyu.ac.jp>
parents: 9
diff changeset
225 われない。
6fac1d4cc28a add tree topology
kazz <kazz@cr.ie.u-ryukyu.ac.jp>
parents: 9
diff changeset
226
12
afe1f960638e add api test
kazz <kazz@cr.ie.u-ryukyu.ac.jp>
parents: 11
diff changeset
227 もし必要としない場合は、親のノードにタプルデータの伝搬を行う。そのとき
afe1f960638e add api test
kazz <kazz@cr.ie.u-ryukyu.ac.jp>
parents: 11
diff changeset
228 親のノードは、その子から送られてきた座標情報を元に、対になっている子がデー
afe1f960638e add api test
kazz <kazz@cr.ie.u-ryukyu.ac.jp>
parents: 11
diff changeset
229 タを必要としているかを判断する。もし必要ならば、対になっている子に対し
afe1f960638e add api test
kazz <kazz@cr.ie.u-ryukyu.ac.jp>
parents: 11
diff changeset
230 てタプルデータを伝搬する。そうでなければ、さらにその親に対してタプルデー
afe1f960638e add api test
kazz <kazz@cr.ie.u-ryukyu.ac.jp>
parents: 11
diff changeset
231 タの伝搬を行う。
10
6fac1d4cc28a add tree topology
kazz <kazz@cr.ie.u-ryukyu.ac.jp>
parents: 9
diff changeset
232
6fac1d4cc28a add tree topology
kazz <kazz@cr.ie.u-ryukyu.ac.jp>
parents: 9
diff changeset
233 このように、座標データを必要としているマシンのみに座標データをコピーする
12
afe1f960638e add api test
kazz <kazz@cr.ie.u-ryukyu.ac.jp>
parents: 11
diff changeset
234 ことで、負荷分散を実現するモデルである。 このモデルを用いない場合、つま
afe1f960638e add api test
kazz <kazz@cr.ie.u-ryukyu.ac.jp>
parents: 11
diff changeset
235 り Linda サーバーを単体で用いる場合は、各クライアントは、すべての接続し
afe1f960638e add api test
kazz <kazz@cr.ie.u-ryukyu.ac.jp>
parents: 11
diff changeset
236 ているクライアントの所持しているオブジェクトの座標情報を常に監視する必要
afe1f960638e add api test
kazz <kazz@cr.ie.u-ryukyu.ac.jp>
parents: 11
diff changeset
237 があり、画面に表示されない(すなわち、必要のない)データも操作がされるたび
afe1f960638e add api test
kazz <kazz@cr.ie.u-ryukyu.ac.jp>
parents: 11
diff changeset
238 に通信する必要があった。
8
f1a4957b9d98 add pic
kazz <kazz@cr.ie.u-ryukyu.ac.jp>
parents: 7
diff changeset
239
7
bbd40ab63def unicode...
kazz <kazz@cr.ie.u-ryukyu.ac.jp>
parents: 6
diff changeset
240 \section{評価}
bbd40ab63def unicode...
kazz <kazz@cr.ie.u-ryukyu.ac.jp>
parents: 6
diff changeset
241 \subsection{update() API の検証}\label{subsection:updateverification}
bbd40ab63def unicode...
kazz <kazz@cr.ie.u-ryukyu.ac.jp>
parents: 6
diff changeset
242 \subsection{ツリー型トポロジーによる負荷分散の検証}\label{subsection:treetopologyverification}
4
ec43386bfda7 add linda
kazz <kazz@cr.ie.u-ryukyu.ac.jp>
parents: 3
diff changeset
243
ec43386bfda7 add linda
kazz <kazz@cr.ie.u-ryukyu.ac.jp>
parents: 3
diff changeset
244
7
bbd40ab63def unicode...
kazz <kazz@cr.ie.u-ryukyu.ac.jp>
parents: 6
diff changeset
245 \section{まとめと今後の課題}
1
645757a3f87f add abstract
kazz <kazz@cr.ie.u-ryukyu.ac.jp>
parents:
diff changeset
246
645757a3f87f add abstract
kazz <kazz@cr.ie.u-ryukyu.ac.jp>
parents:
diff changeset
247 %
645757a3f87f add abstract
kazz <kazz@cr.ie.u-ryukyu.ac.jp>
parents:
diff changeset
248 \begin{adjustvboxheight} % needed only when Appendix follows
645757a3f87f add abstract
kazz <kazz@cr.ie.u-ryukyu.ac.jp>
parents:
diff changeset
249 \begin{thebibliography}{99}
7
bbd40ab63def unicode...
kazz <kazz@cr.ie.u-ryukyu.ac.jp>
parents: 6
diff changeset
250 \bibitem{LS86} test %Lanin, V. and Shasha, D.:A Symmetric Concurrent B-Tree
5
da25d11707c8 add fedlinda pic
kazz <kazz@cr.ie.u-ryukyu.ac.jp>
parents: 4
diff changeset
251 %Algorithm,
7
bbd40ab63def unicode...
kazz <kazz@cr.ie.u-ryukyu.ac.jp>
parents: 6
diff changeset
252 %Proc.\ 1986 Fall Joint Computer Conference, IEEE, 1986, pp.~380--389.
1
645757a3f87f add abstract
kazz <kazz@cr.ie.u-ryukyu.ac.jp>
parents:
diff changeset
253 \end{thebibliography}
645757a3f87f add abstract
kazz <kazz@cr.ie.u-ryukyu.ac.jp>
parents:
diff changeset
254 \end{adjustvboxheight} % needed only when Appendix follows
645757a3f87f add abstract
kazz <kazz@cr.ie.u-ryukyu.ac.jp>
parents:
diff changeset
255
645757a3f87f add abstract
kazz <kazz@cr.ie.u-ryukyu.ac.jp>
parents:
diff changeset
256 \end{document}