BT

NetflixがReactive ExtensionsをJavaに持ち込む

| 作者: Jonathan Allen フォローする 529 人のフォロワー , 翻訳者 編集部N フォローする 0 人のフォロワー 投稿日 2013年2月13日. 推定読書時間: 2 分 |

原文(投稿日:2013/02/06)へのリンク

 

Netflixは、 MS Open TechのReactive ExtensionsのJava実装を作成し、オープンソースした。しかし、RxJavaが単にJava用というのは、誤解を招くだろう。他のJVM言語からも使えるように設計されているからである。「最初サポートされる言語(Java自身の他に)は、 Groovy, Clojure, Scala、Jrubyです。」

Netflixは、サーバー側の同時実行を単純化するためにRxJavaを作成した。彼らのゴールは、クライアントがサーバー上で並行に実行される1つの「重い」クライアント要求を起動できるようにすることである。 Ben Christensen と Jafar Husainの両氏は、以下のように説明している。

サーバー側の並列性は、ネットワークのおしゃべりを効果的に減らすのに必要です。サーバー上の並列実行がなければ、1つの「重い」クライアント要求は、たくさんの「軽い」要求よりもずっと効率的ではありません。なぜならデバイスからの各ネットワーク要求は、当然他のネットワーク要求と並列に実行されるからです。不適切に「重い」要求をサーバー側で実行して、並列実行と同程度のレベルに達しなければ、例え保持しているネットワークレイテンシを占有しても、多数の「軽い」要求よりも遅くなるでしょう。

両氏によれば、関数的Reactiveのfutureとコールバックよりも優れている。なぜなら「関数的Reactiveは、効率的な実行と合成を提供します。Observableな オブジェクトをフィルタ、選択、変換、結合、合成を行えるオペレーターのコレクションを提供することで実現しています。」

サービス層のAPIが全てのメソッドでObservable を返すようにすることで、開発者はこれらのメソッドの実装の束縛されない。メソッドは、今日は非同期で呼ばれるかもしれないが、明日は同期的に返すかもしれない。サービスメソッドも自由にブロッキングか非ブロッキングI/Oかを選べる。前者はリソースが制約されている時に、使われる。/p>

RxJavaは、「最終ゴールとして、そのラムダサポートによりJava 8向けのビルドをターゲットにし、Java 5(Androidをサポートするために)とそれ以上を」サポートする。元々のRxのように、Netflixの RxJavaは、Apache Licenseの下で提供されている。githubからRxJava を入手できる。

 

この記事に星をつける

おすすめ度
スタイル

こんにちは

コメントするには 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