# HG changeset patch # User Shinji KONO # Date 1517808166 -32400 # Node ID 707cd7f0689c76f7ec52febc368161b821b78d5a # Parent 9a072c2d6e12f2bda8920ea803963afbd22fdd02 fix abstract diff -r 9a072c2d6e12 -r 707cd7f0689c paper/abstract.tex --- a/paper/abstract.tex Mon Feb 05 00:35:52 2018 +0900 +++ b/paper/abstract.tex Mon Feb 05 14:22:46 2018 +0900 @@ -1,38 +1,65 @@ \begin{abstract} -当研究室ではデータを Data Segment、タスクを Code Segment という単位で分割して記述する手法を提唱している。 -Data Segmentは整数や文字列や構造体などの基本的なデータの集まりである。 -Code Segmentは入力となるData Segmentが全て揃ったら並列に処理を開始し計算結果のData Segmentを出力するタスクである。 -この手法を用いて、スケーラブルな分散プログラムを信頼性高く記述できることを目的とした並列分散フレームワークAliceを開発した。 -Aliceでは通常の処理の間にMeta Computationという処理を挟むことで、コードを大きく変更せずに挙動変更を可能にしている。 -Aliceが実用的な分散アプリケーションを記述でき、Meta Computationが仕様の変更を抑えた信頼性の高い拡張を可能にするということはTreeVNCの例題などから確認された。 +インターネットが広がり、IoT(Internet of Things)で通信するサービスが広く使われるようになり、分散計算の +重要性は増している。分散計算では参加する台数に寄らずサービスの質を維持するスケーラビリティ、要求された +仕様を満たす信頼性とともに、拡張性が要求される。特にハードウェアは日進月歩であり、同じサービスであっても、 +使用するハードウェアに適用するための拡張が必須となっている。 -しかし、NAT越えなどのMetaComputationを実装しようとした際、現状では拡張が困難であり再設計が望ましいことが判明した。 -また、それに伴いAliceの直感的でないAPIを改善し、型の整合性を保証することで信頼性を向上させるべきだと考えた。 +これまでに開発してきた並列分散フレームワークAliceでは、 +データを Data Segment、タスクを Code Segment という単位で分割して記述している。 +Alice での通信はノード毎のData Segmentのプールにキーを用いてお互いに書き込むという手法を用いている。Code Segment は +必要とするData Segmentのキーを指定して取得(take)または参照(peek)し、それらがそろった時点で実行を並列に行う。 +Aliceでは通常の処理の間にMeta Computationという処理を挟むことで、コードを大きく変更せずに挙動変更を可能にしている。 +分散型画面共有システムTreeVNCなどの実装によりその有効性が確認されている。特にNodeの Topologyを静的または動的に +メタ計算として指定できるTopology Managerが有効であった。 -本研究ではAliceで得られた知見を元に分散フレームワークChristieの設計を行った。 -Christieでは、APIにJavaのアノテーションを用いることでシンプルな記述で信頼性の高いプログラミングを実現する。 -また、Data Gear Managerを複数立ち上げられるようにしたことでNAT越えなどの拡張に対応した。 +しかし、Java で実装されたAlice ではキーと取得モードの設定をJavaのオブジェクトの作成される側(constructor)で行ったり、 +作成側で行なったりする自由度があり、キーによる通信の見通しが良くないということが判明した。また、 +Alice はData SegmentやCode Segmentの管理を大域変数的なSingletonで行なっており、複数のAliceのインスタンスを +同一プロセス上で起動できない。これにより、単一プロセス内での分散計算のテストや、複数のTopology managerに接続する必要がある +NAT越えなどのMeta Computationを実装することができなかった。大域Singletonは、その性質上、どこからでもアクセス +できるために除去は困難であると判明した。さらに、 +Aliceの直感的でないAPIを改善し、型の整合性を保証することで信頼性を向上させるべきだと考えた。 - +本研究ではAliceで得られた知見を元に分散フレームワークChristieの設計を行った。Christie ではSegment の代わりに +Gear とう名称を使用する。 Christie ではJavaのAnnotation を用いてキーと取得モードの記述を行う。これによりキーで指定されたData Gear +の型を明示することができ、Alice で必要だった実行時の型変換を隠すことができるようになった。 +また、複数のCode/Data Gear Managerを使用することで単一プロセスでのテストやNAT越えなどの拡張が可能になった。 +本論文では、他の並列分散フレームワークであるAkkaやHazelcastとの比較も行う。 \end{abstract} \begin{abstract_eng} -In our laboratory, we propose a method of dividing and describing data as Data Segment and task as Code Segment. -Data segment is a collection of basically data such as integers, character strings and structures. -The Code Segment starts processing in parallel from the time when the input Data Segments are complete and outputs the Data segment of the calculation result. -Using this method, we developed a parallel distributed framework Alice which aims to describe a scalable distributed program with enhanced reliability. +The importance of distributed computers is increased as widely used Internet or IoT (Internet of Things). +Distributed computations include scalability which keeps quality of service on larger number of nodes, +reliability which assures the specification of the service, and expand-ability. If if the service itself +is not changed, the hardware of platform shall be changed, which is necessary to adapt by the service. + +We developed a distributed computation framework called Alice, which uses Data Segments and Code Segments +as units of computation. Alice uses pools of Data Segments, whose Data Segments are accessed by keys from +computation nodes. A Code Segments takes or peeks Data Segments by keys, and when all Data Segments are ready, +the Code Segment is executed in a concurrent way. -In Alice, by interposing the process Meta Computation during normal processing, we can change the behavior without changing the code significantly. -Alice can describe a practical distributed application, Meta Computation is confirmed from the example of TreeVNC to make it highly extendable with little specification change. -However, when trying to implement MetaComputation such as NAT traversal, extension is difficult at present and redesign was found to be desirable. -Along with that, I thought that improving counterintuitive API of Alice should guarantee type consistency and improve reliability. +In Alice besides Code Segment and Data Segments, Meta Code Segments and Meta Data Segments can be inserted. +Using Meta Code Segments and Meta Data Segment, we can change the behavior without changing the normal level code. +In the example of distributed screen sharing system called TreeVNC, usefulness of Meta computation of Alice is confirmed such as +Data Segment Compression and failure node managements. A topology manger which controls topology of distributed node in both +static and dynamic way is also useful meta computation in Alice. -In this research, we designed the distributed framework Christie based on the findings obtained with Alice. -Christie realizes highly reliable programming with a simple description by using Java Annotation for API. -Also, by enabling multiple Data Gear Managers to be launched, we responded to expansion such as NAT traversal. +Keys and access modes in Alice are described in Java implementations, which are sometimes put in the separated places, such as +Java object constructor or other. This makes the communication protocol using keys untraceable. In Alice implementations, +Code and Data Segment manager is implemented as a global singleton, as a result, we cannot use multiple instance of Alice in +a process. So it is impossible to simulate distributed computation in a process. It is also difficult to implement communication +over NAT (Network Address Translations), which have to handle two different networks at a node. +Type correctness is not so clear in Alice, since dynamic cast is used. It better to define more intuitive APIs. + +In this research, we designed a new distributed framework Christie from Alice experiences. Christie use name Gears +instead of Segment which is sometimes confusing. A simple key and access mode description using Java Annotation is introduces. +Also, multiple Data or Code Gear Managers are supported which makes possible to simulating distributed computation in a node +or NAT handling. + +Comparisons with other framework such as Akka or Hazelecast are also shown. \end{abstract_eng} diff -r 9a072c2d6e12 -r 707cd7f0689c paper/nozomi-master.pdf Binary file paper/nozomi-master.pdf has changed