Feature2

PROCESSWARPと 群ロボット伊藤 祐司 * 古澤 洋将 *
1

2.
2.1

1

Yuji Ito*1, Yosuke Furusawa*1

Keywords: distributed system, distributed computing, virtual machine, network system, swarm robotics

我々の周りには、スマートフォンやパーソナルコン

ピ ュ ー タ 、家 電 な ど 様 々 な コ ン ピ ュ ー タ が 存 在 す る 。
現在、殆どの家電はインターネットに接続されず、独立・単体で動作している。一方で、スマートフォンやパーソナルコンピュータは、インターネットに接続され、世界中の情報へのアクセスや、多人数のコミュニケーションの媒介に利用されている。

複数のコンピュータがネットワークを通して連携し、動作する構造・仕組みを分散システムという。分散システムには様々な種類があり、その種類や実装により可用性やスケーラビリティ、性能向上などの面で様々なメリットがある [1]。例えば、データベース製品の一部は、複数のコンピュータを用いてクラスタリングを行うことで、スケーラビリティと可用性を向上

さ せ る [ 2 ] [ 3 ] [ 4 ] 。 ま た 、S E T I [ 5 ] や B O I N C [ 6 ] は 、クライアント・サーバーとグリッド・コンピューティングを組み合わせることで、一般家庭にあるコンピュータの処理能力を統合し、大量の科学技術計算を処理する。

分散システムは、複数のコンピュータがあれば実現できるわけではない。通常のプログラムは、単体のコンピュータでのみ実行されるように作られているため、そのままでは分散システムとして動かすことはできない。また、複数のコンピュータを用意して、プロ

グ ラ ム を 単 に 並 列 に 実 行 し て も 、処 理 時 間 が 短 縮 す る 、又は処理できるデータが増えるということはない。
分散システムでは、複 数 の コンピュータの CPU・主記憶・外部記憶などのリソースを相互又は一方的に連 携 し て い る 。 例 え ば 、デ ー タ ベ ー ス の ク ラ ス タ で は 、複数のコンピュータ上で主記憶・外部記憶に記録されているデータに齟齬が生じないように相互に連携している。

スの結合・利用を実現している。

歩により、複数のコンピュータ上でデータの柔軟な連携・利用が可能になった。また World Wide Web（以そのため分散システムは、個々の目的に合わせた専用のアルゴリズムを実装する必要がある。例えば、リより汎用的な分散システムの実装のアプローチとして、ストレージや主記憶へのデータの保存に着目したシステムがある。Hadoop[10] は、MapReduce というプログラミングモデル [11] に従い、計 算 の 処 理

過程や結果を分散ファイルシステムに保存することで、一貫したデータをシステムで共有し、並列計算を行う分散システムである。

また、松本らの MBCF[12] および SSS-PC[13] は、分散共有メモリおよびプ ロ セ ス の ラ イ ブ マ イ グ レ ーションを用いて、分散サーバを実現するシステムである。

これらのシステムは、専用のアルゴリズムの実装に比較すればプログラムの開発が容易だが、十分なメンテナンスが可能なサーバや、特定の環境を要求している。

我 々 は 、ス マ ー ト フ ォ ン や パ ー ソ ナ ル コ ン ピ ュ ー タ 、

IoT ゲートウェイのようなヘテロジニアス環境においタの計算リソースの結合および、それを容易かつ柔軟ルの転送により情報の柔軟な利用を可能にしたように、し、パフォーマンスが低下する。

で 、計 算 リ ソ ー ス の 柔 軟 な 利 用 を 可 能 に す る （ 表 1 ）。

ント同士が直接通信を行う構造になっている。パ フ ォ ーPROCESSWARP は実行中のプログラムを転送すること
表1

WWW と P ROCE SSWA RP の比較
対象

方法

WWW

データ・情報ファイル・データの転送

PROCESSWARP

計算リソース

実行中のプログラム・機能の転送

PROCESSWARP での計算リソースの結合・利用は、同程度の計算リソースをもつ互換性のあるコンピュータ間だけではなく、豊富な計算リソースをもつコンピュータと、そうでないコンピュータ間や、CPU の命令や OS が異なるコンピュータ間などでの利用も想定

す る 。 例 え ば 、ス マ ー ト フ ォ ン と パ ー ソ ナ ル コ ン ピ ュ ー
タ の よ う な 、利 用 シ チ ュ エ ー シ ョ ン や ハ ー ド ウ ェ ア ア ー
キテクチャが異なるコンピュータが混 在 す る よ う な 環境である。PROCESSWARP は、そのような異なるアーアントの数が増えるに従いサ ー バ へ の 通 信 ・ 処理が集中

P 2 P 型 は 、Skype[14] などで使われており、クライアマンスの低下が起こりにくいが、デ ー タ の 集 中 管 理 は 難しい。Skype では、音声通話機能は P2 P 型、アカウントの管理などはク ラ イ ア ン ト ／ サ ー バ 型 と、組み合わせて利用している。

P R OC ESSW AR P では、個々のコンピュータの持つ計算リソースが柔 軟 に利用できる環 境 を 提 供 することを目的としているため、各 コ ン ピ ュ ー タ 同 士 で 直 接 通 信 を行う方が適している。また、後 述 す る メ モ リ などの機能の実現には、低レイテンシかつ頻 繁 な 通 信 がの方が適しているため、P 2 P 型 である。また、ロ グ イ ン 機 能 や we b を通した通信、コンピュータ同士の直 接 通 信 を行うまでの接 続 情 報 の 交 換 な ど の 機 能 はサーバを利用して実現する
ため、Skype と同様に、クライアント／サーバ型と P 2 P 型の両方を併用している。

キ テ ク チ ャ の コ ン ピ ュ ー タ 間 に お い て も 、計 算 リ ソ ー

2.3組みになっている。

ピュータ間においても同一のプログラムを実行する環スを結合・利用するために、実 行 環 境 に 依 存 し な い 仕

P R O C E S S W A R P は、複数のコンピュータにインストールした専用アプリケーションを用いて、仮想的な1 つのプログラム実行空間を作る（図 1）

仮想マシン

PROCESSWARP では、異なるアーキテクチャのコン境を提供するため、プログラム実 行 環 境 を 仮 想 マシンと い う 形 で 実 装 し て い る 。 仮 想 マ シ ン と は 、コ ン ピ ュ ー
タの中に別のコンピュータの動 作 を エ ミ ュ レ ー ト す るソフトウェアである。仮 想 マ シ ン を 利用することによ

PROCESSWARP は、ネットワークを介して接続され想的なプ ロ グ ラ ム 実 行 環 境 を作ることが可能である。

ム実行空間を作成するシステムである。仮想的なプロが混在するヘテロジニアス環境でも、プログラムに一PROCESSWARP というシステムの開発を行っている。

り、実コンピュータのア ー キ テ ク チ ャ に 依存しない仮た複数のコンピュータ上に、仮想的な単一のプログラ

そのため、スマートフォンとパーソナルコンピュータ

グ ラ ム 実 行 空 間 を 用 い る こ と で 、通 信 機 能 を 隠 蔽 し 、定の環境を提供することが可能になる。

供する。加えて、連携するコンピュータが動的に変化

ドウェア仮想マシンと、Ja va 仮想マシンのようなプロセ仮想マシンには、VMware 社製品 [15] のようなハーCPU・主記憶の柔軟な連携が、容易に可能な環境を提ス仮想マシンの 2 種類がある。ハ ー ド ウ ェ ア 仮 想 マ シ ンするような不安定な屋外のネットワークでの利用も想定しているため、今まで開発が難しかった複数のロボットの連携をとるようなシステムへの利用が期待で

本 稿 で は 、P R O C E S S W A R P の 特 徴 と ア ー キ テ ク チ ャについて述べる。また、PROCESSWARP の利用例と

図1

P ROCE SSWA RP のプログラム実行空間

他のコンピュータの計算リソースを借りるということは、仮想的なプログラム実行空間内で、プログラムが他のコンピュータに移動するということである。その動作は、プログラムの中断やデータの保存を意識することなくシームレスに行われる。

P R O C E S S W A R P は 、プ ロ セ ス を 構 成 す る ス レ ッ ド を 、PROCESSWARP と群ロボット

クライアント／サーバ型は、W W W な ど で 一 般 的 に 使て、汎用性の高い分散システムを実現するため、して、群ロボット制御の構想について述べる。

10

インターネットで利用可能なネットワーク構造は、われており、デー タ の 集 中 管 理 に 適 し て い る が 、ク ラ イ

そ れ に 対 し P R O C E S S W A R P の 目 的 は 、コ ン ピ ュ ー

ト [ 7 ] 、K e y V a l u e S t o r e や ド キ ュ メ ン ト デ ー タ ベ ーいる。

ネットワーク構造

大きくクライアント／サーバ型と P2P 型に大別される。

レーショナルデータベースのクラスタ で は 3 層コミッ
スではリーダ選出のアルゴリズム [8][9] を実装して2.2用可能な情報やデータの共有・アクセス可能になった。に利用可能にすることである。WWW が HTML ファイ

きる。
*1: 炎重工株式会社 研究開発部*1:R&D Dept, Homura Heavy Industries Corporation.

す る こ と で 、実 行 中 の プ ロ グ ラ ム を 移 動 し 、計 算 リ ソ ー

はじめに

下 「 W W W 」 と い う 。） の 登 場 に よ り 、 人 間 が 可 読 ・ 利

Abstract - We are developing a system that creates a virtual machine on multiple computers connected through the Internet. Ourproduct makes easier to use the distributed system. It also makes possible to handle computer resources ﬂexibly. We will describe thesystem architecture and the idea of the swarm robotics control with the system in the technical report.

はじめにその動作状態を保ったまま、他のコンピュータへ移動

インターネットを始めとするネットワーク技術の進Distributed system with PROCESSWARP applicable to swarm robotics

1.

PROCESSWARP

炎重工技報 Vol.1 2017

PROCESSWARP と群ロボット

はコンピュータそのものをエ ミ ュ レ ー ト す る 仕 組 み である。ハ ー ド ウ ェ ア 仮 想 マシ ンのインスタンス内では、実在するコンピュータと同様に、ゲスト OS・ミドルウェア・アプリケーションを実 行 す る こ と が 可 能 である。 プロセス仮 想 マシンは単 一 の プ ロ グ ラ ム 実 行 環 境 として動く 仮想マシンである。仮 想 マ シ ン 上 で プ ロ グ ラ ム が 直 接 動 くので、 ハードウェア仮想マシンに比べ 軽 量 だ が 、 専 用 の形式へコンパイルを行う必要がある（2 . 4 節で詳述する）。

炎重工技報 Vol.1 201711