changeset 19:def2005a5525

fix
author Shinji KONO <kono@ie.u-ryukyu.ac.jp>
date Mon, 26 Nov 2012 19:24:10 +0900
parents d3cd92ac4bd8
children 60962f5ce2f7
files Paper/Makefile Paper/alice.ind Paper/sugi-prosym.tex
diffstat 3 files changed, 16 insertions(+), 13 deletions(-) [+]
line wrap: on
line diff
--- a/Paper/Makefile	Mon Nov 26 18:53:53 2012 +0900
+++ b/Paper/Makefile	Mon Nov 26 19:24:10 2012 +0900
@@ -40,6 +40,8 @@
 
 
 
+
+
 PAPER = alice.ind
 
 
--- a/Paper/alice.ind	Mon Nov 26 18:53:53 2012 +0900
+++ b/Paper/alice.ind	Mon Nov 26 19:24:10 2012 +0900
@@ -4,14 +4,15 @@
 
 -abstract:
 
-本研究室では分散プログラミングにおいて、データをData Segment、タスクをCode Segmentという単位に分割して記述する方法を提唱している。
-しかし、前述した方法をプログラマーが一から記述することは大変である。そこで、本研究室で分散ネットフレームワーク Alice を作成した。本論文では実際にAliceを用>いてCode Segment と Data Segment によるプログラミング手法の例を示す。
+データをData Segment、タスクをCode Segmentという単位に分割して記述する
+分散ネットフレームワーク Alice を作成した。Alice によるプログラミング例を示すと共に、
+本研究室で従来使ってきた Federated Linda との比較も示し、Java による実装について考察する。
 
 -abstract-e:
 
-We suggest that programmers develop a distributed program with splitting data as Data Segment and processing as Code Segment.
-But it is difficult for programmers to develop on that way from scratch. So We developed distributed network framework 'Alice'.
-We show example how to programming with Code Segment and Data Segment on this paper.
+We have developed an distributed programming frame Alice, which uses Data Segment and Code Segment as programming units.
+We show programming examples and comparisons with our old framework, Federated Linda. We show some consideration about
+our Java implementation.
 
 
 
@@ -31,7 +32,7 @@
 
 カプセル化されたデータをプロセスがやり取りするのは、DFD(Data Flow Diagram)の古典的な手法であり、それ自体は新しくはない。むしろ、メインフレーム上でのソフトウェア開発に良く使われてきた手法である。Alice では、それを再実装する。
 
-Alice は Code Segment と Data Segment を Java と Message Pack で実装したフレームワークである。トポロジーマネージャーを持ち、Bldae 上での
+Alice は Code Segment と Data Segment を Java と Message Pack で実装したフレームワークである。トポロジーマネージャーを持ち、Blade 上での
 分散プログラムの実験を容易に行うことができる。また、SEDA Architecture \cite{SEDA2001} を採用しており、マルチコア上でのスループットの向上を期待している。
 
 本論文では、Code Segment と Data Segment の Alice のAPIと、その設計方針を示し、それによって実装された水族館プログラムを示す。また、これまでの Federated 
@@ -42,7 +43,7 @@
 --Data Segment API
 
 Data Segment は数値や文字列などのデータを構造体的に保持するが、Data Segment の相互参照が問題になる。
-AliceではData Semgnetをデータベースとして扱い、Data Segment は必ずキーを持つ。つまり、Data Segment を Key Value Store として考えることができる。
+AliceではData Segmentをデータベースとして扱い、Data Segment は必ずキーを持つ。つまり、Data Segment を Key Value Store として考えることができる。
 通常のデータベースでは隠れているが、Key 毎のキューがあり、Key 毎に順に実行される。key 毎の追加と取得は、Linda に準じた設計になっている。
 
 Data Segmentを管理するのがData Segment Managerである。ノード毎に local DS manager と remote DS manager がある。local manager は、ノードに固有の
@@ -143,7 +144,7 @@
 \item {\ttfamily byte[]で表現されたバイナリ}
 \end{itemize}
 
-DataSegment APIでは、このMessagePack for JavaのValueオブジェクトを用いてデータが表現されている。
+Data Segment APIでは、このMessagePack for JavaのValueオブジェクトを用いてデータが表現されている。
 MessagePackはJavaのように静的に型付けされたオブジェクトではなく、自己記述なデータ形式である。MessagePack for JavaのValueオブジェクトはMessagePackのバイナリにシリアライズできる型のみで構成されたJavaのオブジェクトである。そのため、Valueも自己記述式のデータ形式になっている。
 
 
@@ -165,14 +166,14 @@
 Input Data Segment で作成された Data segment は、remote か local かと、key を指定する必要がある。Input Data Segment がすべて揃わないと
 Code Segment は active にならない。
 
-Ouput Data Segment で作成された Data segment にも、remote か local かと、key を指定する必要がある。Input/Ouput が Code Segment 間の
+Output Data Segment で作成された Data segment にも、remote か local かと、key を指定する必要がある。Input/Output が Code Segment 間の
 依存関係を自動的に記述することになる。
 
 \begin{table}[tb]
 \lstinputlisting[label=fig:SendWidth, caption=Data Segment の例]{source/SendWidth.java}
 \end{table}
 
-{\tt ids,ods} により、Input/Ouput を選択して Data Segment を作成する。Output には put 時にキーを指定する(図\ref{fig:SendWidth})。Input は setKey を使ってキーを指定する。
+{\tt ids,ods} により、Input/Output を選択して Data Segment を作成する。Output には put 時にキーを指定する(図\ref{fig:SendWidth})。Input は setKey を使ってキーを指定する。
 もちろん、{\tt cs.width} のようにアクセスするのは Java 的には正しくない書き方であり避けるべきである。{\tt SendWidth} は Code Segment であり、
 Data Segment が揃った時に、 {\tt Runnable} のように実行される。{\tt SendWidth} 内部で setKey する方が Java 的には望ましい。
 
@@ -192,7 +193,7 @@
 
 --Code Segmentの記述方法
 
-Code Segmentをユーザーが記述する際にはCodeSegmentを継承して記述する。(ソースコード \ref{fig:CodeSegment})そのCodeSegmentはInputDataSegmentManagerとOutputDataSegmentManagerを利用することができる。
+Code Segmentをユーザーが記述する際にはCode Segmentを継承して記述する。(ソースコード \ref{fig:CodeSegment})そのCodeSegmentはInputDataSegmentManagerとOutputDataSegmentManagerを利用することができる。
 
 \begin{table}[tb]
 \lstinputlisting[label=fig:StartCodeSegment, caption=StartCodeSegmentの例]{source/StartCodeSegment.java}
@@ -314,7 +315,7 @@
 
 今回の実装は、Java により Code Segment と Data Segment に必要な API を洗い出すためのものであった。この実装でもいくつかの問題が明らかになっている。
 
-{\bf API } Class を継承したり、Input Datasegment や Output Datasegment の作成に factory object を使うのは Java を使う際の技術的なものであり、Alice のAPI自体は Java に固有である必要はない。むしろ、Java の Object 指向な記述が全体を煩雑にしている部分がある。{\tt update} は、Data Segmentの競合的な更新に使われるべきだと思われる。
+{\bf API } Class を継承したり、Input Data segment や Output Data segment の作成に factory object を使うのは Java を使う際の技術的なものであり、Alice のAPI自体は Java に固有である必要はない。むしろ、Java の Object 指向な記述が全体を煩雑にしている部分がある。{\tt update} は、Data Segmentの競合的な更新に使われるべきだと思われる。
 
 {\bf SEDA } Federated Linad に比べて、通信のレスポンスが遅い原因の一つはSEDA architectureのせいだと思われる。SEDA はスループット重視の実装であり、多段のパイプラインのせいでレスポンスは遅れてしまう。実際、スレッドプールを使用しないほうが、Ring の結果は良くなる(図\ref{fig:ringnothread})。
 
--- a/Paper/sugi-prosym.tex	Mon Nov 26 18:53:53 2012 +0900
+++ b/Paper/sugi-prosym.tex	Mon Nov 26 19:24:10 2012 +0900
@@ -62,7 +62,7 @@
 \title[Code Segment と Data Segment によるプログラミング手法]%
 {Code Segment と Data Segment によるプログラミング手法 }
 % 英文表題
-\etitle{How to Programming with Code Segment and Data Segment}
+\etitle{Programming with Code Segment and Data Segment}
 % 所属ラベルの定義
 \affilabel{URYUKYU}{琉球大学\\University of the Ryukyu}
 % 和文著者名