Mercurial > hg > Papers > 2018 > nozomi-master
diff paper/nozomi-master.tex @ 157:d620f126a383
change abstract & chapter1
author | Nozomi Teruya <e125769@ie.u-ryukyu.ac.jp> |
---|---|
date | Wed, 31 Jan 2018 14:58:24 +0900 |
parents | bc9be2d40d0d |
children | 2bf8a1edcecc |
line wrap: on
line diff
--- a/paper/nozomi-master.tex Tue Jan 30 23:41:54 2018 +0900 +++ b/paper/nozomi-master.tex Wed Jan 31 14:58:24 2018 +0900 @@ -98,6 +98,22 @@ %chapters \chapter{分散プログラミングの信頼性向上} +スマートフォンやタブレット端末の普及率が増加している。 +それに伴いインターネット利用者数も増加しており、ネットワーク上のサービスには、信頼性とスケーラビリティーが要求される。 +ここでいう信頼性とは、定められた環境下で安定して仕様に従った動作を行うことを指す。 +またスケーラビリティーとは、分散ソフトウェアに対して単純にノードを追加するだけで性能を線形的に上昇させることができる性質である。 +しかし、これらをもつ分散プログラムをユーザーが一から記述することは容易ではない。 + +これらの問題を解決するために、当研究室ではデータをData Segment、タスクをCode Segmentという単位で記述するプログラミング手法を導入した分散フレームワークAlice を開発した。 + +Aliceが実用的な分散アプリケーションを記述でき、仕様の変更を抑えた信頼性の高い拡張を可能にするということは、水族館の例題やTreeVNCの例題から確認された。 +しかし、AliceにNAT越えの機能を実装しようとした際、Data Segment Managerが1つしか持てないために拡張が困難であることが分かった。 +また、AliceではAPI設計が煩雑で、プログラマが処理の順番やデータの型を考慮して書く必要があった。 +これではバグを引き起こす可能性が高いため、信頼性を上げるにはより直感的なAPIで再設計すべきだと考えた。 + +本研究では、Aliceから得られた知見をもとに、分散フレームワークChristieの設計を行う。 +Christieでは、シンプルな記述で信頼性の高いスケーラブルな分散プログラムの作成を可能にする。 +また、当研究室で開発している言語CbCと互換可能な設計を目指す。 \chapter{分散フレームワークAliceの概要} @@ -302,7 +318,7 @@ \begin{enumerate} \item 一般的なJavaのクラスオブジェクト - \item MessagePack for Java\cite{MessagePack}でシリアライズ化されたバイナリオブジェクト + \item MessagePack for Java\cite{}でシリアライズ化されたバイナリオブジェクト \item 2を圧縮したバイナリオブジェクト \end{enumerate} @@ -326,7 +342,7 @@ \subsection{TopologyManager} Aliceでは、ノード間の接続管理やトポロジーの構成管理を、Topology ManagerとTopology NodeというMeta Computationが提供している。 プログラマはトポロジーファイルを用意し、Topology Managerに読み込ませるだけでトポロジーを構成することができる。 -トポロジーファイルはDOT Language\cite{dot}という言語で記述される。 +トポロジーファイルはDOT Language\cite{}という言語で記述される。 DOT Languageとは、プレーンテキストを用いてデータ構造としてのグラフを表現するためのデータ記述言語の一 つである。 ソースコード\ref{src:topologyfile}は3台のノードでリングトポロジーを組むときのトポロジーファイルの例である。 @@ -513,15 +529,15 @@ Christieに必要な要件は以下のように考える。 \begin{itemize} -\item {\ttfamily create/setKeyのような煩雑なAPIをシンプルにし可読性を上げる} +\item {\ttfamily create/setKeyのような煩雑なAPIをシンプルにし可読性を向上させる} \end{itemize} \begin{itemize} -\item {\ttfamily プログラマが型を推測しなくとも整合性がとれるように型を解決し、信頼性を上げる} +\item {\ttfamily プログラマが型を推測しなくとも整合性がとれるように型を解決し、信頼性を向上させる} \end{itemize} \begin{itemize} -\item {\ttfamily staticなLocalDSMをなくし、複数のインスタンスを同時に立ち上げられるようにすることで拡張性を上げる} +\item {\ttfamily staticなLocalDSMをなくし、複数のインスタンスを同時に立ち上げられるようにすることでスケーラビリティを向上させる} \end{itemize} @@ -751,7 +767,7 @@ このとき要求したデータがDGM内にない場合はwaitListに入る。 PUTコマンドが実行された際、もしwaitListに同じkeyのDGを待っているコマンドがあれば実行される。 -CGは生成したインプットコマンドの総数を初期値としたカウンタを持っており、コマンドが解決されるたびにカウンタは減っていき、0になった時、CGがThreadPoolへ送られる。 +CGは生成したインプットコマンドの総数を初期値としたカウンタを持っており、コマンドが解決されるたびにカウンタは減っていき、0になるとCGがThreadPoolへ送られる。 \chapter{謝辞} @@ -769,7 +785,7 @@ %参考文献 \nocite{*} \bibliographystyle{junsrt} -%\bibliography{reference} +\bibliography{reference} %発表履歴 \addcontentsline{toc}{chapter}{発表履歴}