BT

リアクティブであることの基礎

| 作者: Jan Stenberg フォローする 34 人のフォロワー , 翻訳者 徳武 聡 フォローする 0 人のフォロワー 投稿日 2016年2月12日. 推定読書時間: 2 分 |

原文(投稿日:2016/01/20)へのリンク

リアクティブの世界の大きな問題のひとつであり、その理解しにくさは、リアクティブという言葉とその言葉の多様な解釈にある。講演を聞いたり、ブログを読んだりしてもリアクティブの意味が掴めなかったPeter Ledbrook氏は、リアクティブとは何かを調べ、その知識を共有しようと決めた。

リアクティブマニュフェストから始めた、Grailsの中心のコミッタのLedbrook氏は、リアクティブシステムの特徴を以下のようにまとめた。

  • レスポンシブ、つまり、システムは常に適切に応答を返し、遅延を少なくする。
  • 弾性、つまり、システムは一部分が障害を起こしたとしても、応答を返し、ダウンタイムを最小限にする。
  • しなやかさ、つまり、負荷の上昇にたいしてシステムは応答を維持するのに必要なスケールアップをし、負荷が下がれば、スケールダウンする。効率的なリソースの使用をする。
  • メッセージ駆動、異なるシステムの間でメッセージをやりとりする。Ledbrook氏はこれが、リアクティブシステムの規範的特徴だとしている。

そして、Ledbrook氏が次に取り上げるのがリアクティブストリームだ。氏はこれを、出力され続ける要素の流れと捉え、オブザーバーパターンを手がかりに理解できると考えている。オブザーバーパターンはイベントを出力するソースとイベントを監視するひとつ以上のオブザーバーで成り立つ。氏によれば、リアクティブとはオブザーバーパターンに、完了を検知し、エラーを伝播するイベントソースと、ソースとやり取りするリスナーを組み合わせたものだ。

リアクティブストリームは仕様であり、クロスプラットフォームの実装にはReactiveXがある。また、Ledbrook氏はProjectReactorAkkaの名前も挙げている。ReactiveストリームAPIの3つの重要な特徴は下記の通り。

  • 発行者はイベントを送る。イベントを購読する場合もある。
  • 購読者はイベントを購読する。
  • サブスクリプションは購読者と発行者を結びつける。購読者が発行者に知らせを送るのもサブスクリプションが実現する。

Ledbrook氏はリアクティブストリームの多くが同じコンセプトで実現されているが、ある種の複雑さが隠されている、と指摘する。I/Oが激しく、大量のデータを処理する必要がある場合がユースケースになるだろう。Java 8のストリームはリアクティブストリームと似ているが、リスナーからの通知がなく、リアクティブストリームのようにI/Oに適合して作られていない。

この記事に星をつける

おすすめ度
スタイル

こんにちは

コメントするには InfoQアカウントの登録 または が必要です。InfoQ に登録するとさまざまなことができます。

アカウント登録をしてInfoQをお楽しみください。

あなたの意見をお聞かせください。

HTML: a,b,br,blockquote,i,li,pre,u,ul,p

このスレッドのメッセージについてEmailでリプライする
コミュニティコメント

HTML: a,b,br,blockquote,i,li,pre,u,ul,p

このスレッドのメッセージについてEmailでリプライする

HTML: a,b,br,blockquote,i,li,pre,u,ul,p

このスレッドのメッセージについてEmailでリプライする

ディスカッション

InfoQにログインし新機能を利用する


パスワードを忘れた方はこちらへ

Follow

お気に入りのトピックや著者をフォローする

業界やサイト内で一番重要な見出しを閲覧する

Like

より多いシグナル、より少ないノイズ

お気に入りのトピックと著者を選択して自分のフィードを作る

Notifications

最新情報をすぐ手に入れるようにしよう

通知設定をして、お気に入りコンテンツを見逃さないようにしよう!

BT