Taste of Tech Topics

Acroquest Technology株式会社のエンジニアが書く技術ブログ

新たなリアルタイム分散処理フレームワークOSS、Dempsy!


こんにちは。kimukimuです。

Apache S4、Stormに続いて最近Dempsyというリアルタイム分散処理フレームワークのOSSである、
Dempsyが公開されました。

そのため、概要について調べてみます。
ちょうどOverviewページがあるため、そこからポイントをまとめます。
尚、Dempsyに画像はまだありませんので、
微妙に味気ない記事になっているのはご了承ください^^;

1.Dempsyって何?

=====
Dempsyは、Nokiaの『分散し、伸縮性を持つメッセージプロセッシングシステム』です。

Dempsyの特徴は下記の4点。

1.分散

Dempsyアプリケーションは複数JVM上/複数マシン上で分散動作する。

2.伸縮可能

アプリケーションの規模を柔軟に増大縮小できる。動的にノードを追加/削除することによって行う。

3.メッセージプロセッシングシステムである

Dempsyアプリケーションはメッセージのやり取りをベースに処理を行う。
各々の処理を細かい粒度に分解することにより、メッセージ1つを処理する
単純で小さいプロセッサを用意して処理を連携させます。

4.フレームワーク

Dempsyは「フレームワーク」のため、サーバ上にデプロイするアプリケーションとは違い、
Spring Frameworkのようなパターンの集合体となっている。
=====

メッセージを1単位として扱い、
メッセージを処理する小さいプロセッサのようなコンポーネント
組み合わせて処理を進めていくようなフレームワークのようです。

かつ分散し、動的にノードを追加/削除可能できるという。

・・・この時点だとあまりStormとの差分は見えませんね。

2.Dempsyで解決する問題は?

=====
Dempsyは用途の広いフレームワークではない。
ただし、大量の”ほぼリアルタイムな”ストリームデータを可能な限り小さい遅延で
処理するような下記のシステムを構築するのに適した構成になっている。

広域分散システムのリアルタイム監視
SNS上のリッチなデータのリアルタイム処理
広域分散システムから収集したログのリアルタイム解析
広域の車両トラフィック情報のリアルタイム統計分析

上記のシステムを開発者が容易に構築可能となることを目指す。
DempsyではDI(SpringとGuiceで実現)を用いて
制御/関連性を分離することに重点を置いている。
それによって分散アクターモデルを実現している。

Dempsyではメッセージ処理ロジックはPOJOで記述可能なため、
開発規模が小さく、単純な記述で作成可能となっている。
=====

S4やStormとの大きな違いとしてあるのが、
DempsyではDIを採用してPOJOで記述可能となっている点のようです。

S4やStormはどうしても「フレームワークのクラスを継承して要素を作る」という
形になっていたため、不要なコードが出てしまうというのはどうしてもありました。
それを解消している所が特徴のようです。


尚、DempsyはCEPでは無い、と記述されています。
おそらく、メッセージが完全に分散になっている関係上
メッセージに対してクエリで絞り込みをかけるといったことが出来ないからだとは思うのですが・・・
ただ、その点においてはS4やStormも同じなんですよね。

ともあれ、これで概要はわかったため、次回以降実際のサンプルを動かしてみます!