Shoeisha Technology Media

CodeZine(コードジン)

特集ページ一覧

Windows Azure Service BusでAMQPサポートのリリースについてのお知らせ

連載:ScottGu's Blog翻訳

  • LINEで送る
  • このエントリーをはてなブックマークに追加
2013/05/30 16:00

 本稿は、Scott Guthrie氏のブログを、氏の許可を得て、翻訳、転載したものです。米Microsoft社の副社長で、ASP.NETやSilverlightの開発チームを統率する氏のブログでは、次期製品を含む最新の技術をいち早く紹介しています。

目次

 原典:Announcing the release of AMQP support with Windows Azure Service Bus

Windows Azure Service BusでAMQPサポートのリリースについてのお知らせ

 この5年間、Microsoftは、さまざまなグループの会社と協力して、Advanced Message Queuing Protocol(AMQP)標準の開発に取り組んできました。20社以上のグループからなる技術ベンダーには、Red HatやVMware、またJPMorgan ChaseやCredit Suisseなどの企業も含まれています。

 目標は、異なるベンダー製品間の相互運用を簡単にするデータ通信を行うため、オープンでワイヤーレベルのプロトコル標準を構築することでした。2012年10月、OASIS標準化団体は、OASIS標準として、AMQP 1.0の承認したことを発表し、その同日に、私たちはWindows Azure Service Busにより、そのプレビュー実装をリリースしました。

 Windows Azure Service BusでのAMQP 1.0サポートを一般公開(GA)機能としてリリースさせて頂きました。これは本番用に利用でき、企業SLAで裏打ちされています。

相互運用可能なデータ通信

 今回のリリースは影響が大きく、AMQP 1.0のサポートにより、Windows Azure Service Busを使用して、異なるOS上で実行されている、また異なる言語で書かれているさまざまなデータ通信ライブラリを使用してアプリを構築することができ、これらはすべて効率的なバイナリのワイヤーレベルプロトコルを使用して通信できます。

 AMQP 1.0はポータブルなデータ表現を定義しているので、.NETプログラムからService Busへ送信されたデータが、その構造やコンテンツを失うことなく、JavaプログラムまたはPython/Ruby/PHPスクリプトから読むことが可能になるのです。

 Javaに対しては、標準のJava Message Service(JMS)APIがサポートされているので、その他のJMSプロバイダーからService Busへ既存のJavaアプリケーションを移動するのは簡単です。

 結果、分散システムの構築に利用したり、オンプレミスとクラウド環境に渡るアプリケーションをつないだり、複数のクラウドプロバイダー間で実行したりできる非常に強力なミドルウェアになります。

AMQPを使用したPub/Subソリューションの構築方法をウォークスルー

 この新しいデータ通信サポートの使用が簡単であることを強調したいので、Java、Python、PHPで書かれた受信アプリにPub/Subデータ通信パターンを使用してデータ送信する簡単な.NETコンソールアプリの作成方法をウォークスルーします。

 Windows Azure Service Busは、オープンAMQPプロトコルと既存データ通信フレームワークを使用して、これを促進するために必要なPub/Subデータ通信サポートをすべて提供するようになりました。

 .NET送信アプリは、耐久的なデータ送信媒介であるService Bus“Topic”へデータを投稿します。各データが1つのコンシューマ・アプリにより処理されるQueueとは違い、Topicは、Pub/Subパターンを使用して1対多通信フォームを提供します。

 これにより、複数のサブスクリプションを1つのTopicへ登録でき、データがそのTopicに送信されると、各サブスクリプションが独立して処理できるようになります。

 各サブスクリプションを、そのTopicに送信されたメッセージのコピーを受信する仮想の耐久的なQueueとして考えることができます。その後、それぞれのサブスクリプションベースでTopicに対してフィルタールールを登録することができるようになるため、どのTopicのサブスクリプションで受信するかというフィルターおよび制限が可能になります。これにより、非常に多くのユーザやアプリケーションに対する莫大なデータ処理が可能になります。

 このシナリオに対して“scottmessages”Topicへデータ投稿する.NETコンソールアプリを作成し、データを受信し処理を行うJava、Python、PHPで書かれた3つのアプリリスナーに対してそれぞれ別のサブスクリプションを設定します。


  • LINEで送る
  • このエントリーをはてなブックマークに追加

著者プロフィール

  • WINGSプロジェクト Chica(チカ)

    <WINGSプロジェクトについて> 有限会社 WINGSプロジェクトが運営する、テクニカル執筆コミュニティ(代表 山田祥寛)。主にWeb開発分野の書籍/記事執筆、翻訳、講演等を幅広く手がける。2018年11月時点での登録メンバは55名で、現在も執筆メンバを募集中。興味のある方は、どしどし応募頂...

バックナンバー

連載:Scott Guthrie氏 Blog翻訳

もっと読む

All contents copyright © 2005-2018 Shoeisha Co., Ltd. All rights reserved. ver.1.5