Oracle Messaging Cloud Serviceについて
Oracle Messaging Cloud Serviceは、Infrastructure as a Service (IaaS)製品群の1つです。 これは信頼性のある相互通信を行うアプリケーション用メッセージング・システムを提供して、アプリケーション開発者が多様なアプリケーション間で情報を共有することを可能にします。
トピック:
Oracle Messaging Cloud Serviceは、プログラミング・プラットフォーム、システムの稼働時間、ネットワーク待ち時間などの基礎となる特性が根本的に異なる異機種アプリケーションの複雑な分散システムを構築するための、より簡単で信頼性の高い方法を開発者に提供します。 さらに、Oracle Messaging Cloud Serviceを使用するビジネスでは特殊な専用ハードウェアは不要で、インターネット経由でどこのアプリケーションからもサービスにアクセスできます。
Oracle Messaging Cloud Serviceは、エンタープライズJavaアプリケーション間でメッセージを送信および受信するための標準メッセージング・インタフェースであるJava Message Service (JMS) API仕様の影響を強く受けています。 Javaアプリケーションについて、Oracle Messaging Cloud ServiceはJMS 1.1インタフェースを実装および拡張するJavaライブラリを提供します。 JavaライブラリはREST APIのクライアントとして動作することでJMS APIを実装します。 また、HTTPを解するアプリケーション・プラットフォームはどれでもOracle Messaging Cloud ServiceをRESTインタフェースから使用できます。 つまり、開発者は1つの通信APIを使用して、クラウド内およびクラウド外のアプリケーション間で信頼性および堅牢性の高い通信を構築できます。
Oracle Messaging Cloud ServiceはHTTPSアクセスにワイルドカード証明書を使用します。 ワイルドカード証明書の使用では、Messaging Cloud Serviceにアクセスするためにクライアント環境がワイルドカード証明書を受け入れるように構成されていることが求められます。 たとえば、Oracle WebLogic Serverを使用中の場合は、Oracle Fusion Middleware Oracle WebLogic Serverの保護のカスタム・ホスト名ベリファイアの使用に関する項を参照して、ワイルドカード証明書を受け入れるようにWebLogic ServerのSSLホスト名ベリファイアを構成できます。
メッセージングの概念について
メッセージング・システムでは、情報はクライアント(クライアントがアプリケーションの実行中インスタンスとして定義されている場合)間でメッセージの形式で伝達されます。 送信クライアントから、プロデューサがメッセージを宛先に送信します。 受信クライアントで、コンシューマがメッセージを宛先から取得します。
宛先は、Oracle Messaging Cloud Serviceインスタンス内に存在する名前付きリソースの1つのタイプです。 それはメッセージのリポジトリです。 キューおよびトピックはメッセージを送信可能な宛先のタイプです。
キューに送信されたメッセージはただ1つのコンシューマによって受信されます。 キューに送信されたメッセージは、メッセージがクライアントで受信されるか、メッセージが期限切れになるまでキュー上に保持されます。 送信されたあらゆるメッセージが最大でも1つのコンシューマによって正常に処理される、このメッセージングのスタイルは、ポイント・ツー・ポイントとして知られています。
トピックに送信されたメッセージは複数のコンシューマによって受信されるか、まったく受信されない場合もあります。 個々のメッセージを任意の数(なしの場合もあり)のコンシューマによって処理できる、このメッセージングのスタイルは、パブリッシュ/サブスクライブとして知られています。 トピックに送信されたメッセージを受信するには、トピックをサブスクライブするコンシューマ(サブスクライバ)が、メッセージがプロデューサによって送信される(パブリッシャ)ときにトピックに接続している必要があります。 つまり、コンシューマがトピックに接続されているクライアントのみが、そのトピックに送信されたメッセージを受信します。 コンシューマがトピック上に存在しない場合、永続サブスクリプションがトピック上に存在しないかぎり、トピックに送信されたメッセージはだれにも受信されません。
永続サブスクリプション(トピックに送信されたすべてのメッセージを格納します)は、トピックに接続しているクライアントが現在まったく存在しない場合でも、パブリッシュ/サブスクライブ・アプリケーションがすべての送信メッセージを受信することを確実にするため、作成できます。 たとえば、アプリケーションが一時的にオフラインになってトピック上にコンシューマがない場合、クライアントはトピックに送信されたあらゆるメッセージを見失います。 ただし、永続サブスクリプションが存在する場合は、アプリケーションを再起動した上で、アプリケーションが稼働中ではなかった時間にトピックに送信されたメッセージをアプリケーションが受信できるようになります。
宛先に送信されたメッセージは、メッセージ・プッシュ・リスナーを使用して別の宛先またはユーザー定義URLにプッシュできます。
接続と、その接続に関連付けられたクライアントからの1つ以上のセッションが、メッセージの送信および受信に必要になります。 セッションは1つ以上のプロデューサからメッセージを送信し、1つ以上のコンシューマからメッセージを受信します。
これらおよびその他のOracle Messaging Cloud Serviceインスタンス・リソースの詳細は、「Oracle Messaging Cloud Serviceを使用するアプリケーションの開発」を参照してください。
アーキテクチャの概要
Oracle Messaging Cloud Serviceアーキテクチャは高度な有効性および耐障害性を備えています。
Oracle Messaging Cloud Serviceは、信頼性の高い非同期通信を必要とするアプリケーションのための安全なメッセージング・ソリューションを提供します。 アプリケーションはOracle Cloud内、ならびにOracle Cloud外に存在できます。
次の図は、Oracle Messaging Cloud Serviceのアーキテクチャの概要を示しています:
Oracle Messaging Cloud Serviceのコンポーネントについて
Oracle Messaging Cloud Serviceには次のコンポーネントが含まれています:
-
My AccountとMy Services
これらのアプリケーションを使用すると、アカウント管理者およびサービス管理者はOracle Messaging Cloud Serviceインスタンスを含めてOracle Cloudサービス・インスタンスを管理および監視できます。 My Accountには複数のデータ・センターおよびアイデンティティ・ドメインにおけるアカウント全体のアクティブ、期限切れおよび保留中のサービスに関する情報が表示され、管理者がサービス・ステータスを監視できます。 My Servicesでは管理者が単一のアイデンティティ・ドメイン内ですべてのアクティブ・サービスを監視および運用できます。 管理アプリケーションの詳細については、「Oracle Cloudスタート・ガイド」の「Oracle Cloudアカウントとサービスの管理の概要」を参照してください。
-
JMSブローカ
JMSブローカは、メッセージ永続性、メッセージ選択およびセッション管理などの、メッセージング・プラットフォームの管理および制御面のすべての処理を担当します。
-
メッセージ・プッシュ・リスナー
これらは、Oracle Messaging Cloud Serviceインスタンス内に存在するユーザー作成済のリソースです。 メッセージ・プッシュ・リスナーは、1つの宛先からメッセージを非同期に受信して、別の宛先にメッセージを送信するか、ユーザー定義URLにHTTPリクエストとしてプッシュします。
Oracle Messaging Cloud Serviceに対するインタフェースについて
Oracle Messaging Cloud Serviceには、2つのインタフェースがあります。
Oracle Messaging Cloud Serviceに対するインタフェースは次のとおりです:
-
Javaライブラリ
-
REST API
次の表に、Oracle Messaging Cloud Serviceに対するインタフェースの概略を示します:
| インタフェース | 説明 | 詳細情報 |
|---|---|---|
|
Javaライブラリ |
Oracle Messaging Cloud Service Javaライブラリは、JMSブローカを介してメッセージを送信および受信するためのJMS 1.1 APIの実装を提供します。 Javaライブラリをダウンロードする場合は、「Oracle Messaging Cloud Service Java SDKのダウンロード」を参照してください。 Javaライブラリは、インターネットに接続しているどの環境からも使用できます。 Javaライブラリは、キュー、トピック、永続サブスクリプションおよびメッセージ・プッシュ・リスナーなどのインスタンス・リソースを管理するためのAPIも提供します。 |
Oracle Messaging Cloud Serviceを使用するアプリケーションの開発 |
|
REST API |
Oracle Messaging Cloud Serviceは、メッセージの送信および受信、ならびにキュー、トピック、永続サブスクリプションおよびメッセージ・プッシュ・リスナーなどのインスタンス・リソースの管理のために、REST APIを提供します。 REST APIは、インターネットに接続しているどの環境からも使用できます。 |
注意:
あるインタフェースから送信されたメッセージは、他のインタフェースによって受信できます。 接続、セッション、プロデューサおよびコンシューマは、2つのインタフェース間で共有できません。
リソース制限について
Oracle Messaging Cloud Serviceの有料および試用サブスクリプションには、リソース制限があります。
次の表は、有料および試用サービス・サブスクリプションでのサービス・インスタンスごとのメッセージング・リソースの最大数を示しています。
| リソース | 有料サブスクリプション | 試用サブスクリプション |
|---|---|---|
|
キュー |
10,000 |
5 |
|
トピック |
10,000 |
5 |
|
メッセージ・プッシュ・リスナー |
無制限* |
無制限* |
|
永続サブスクリプション |
10,000 |
5 |
|
宛先ごとに保存されているメッセージ |
ハード割当て制限: 100,000 ソフト割当て制限: 70,000 詳細は、「ハード割当て制限とソフト割当て制限」を参照してください。 |
ハード割当て制限: 100 ソフト割当て制限: 70 詳細は、「ハード割当て制限とソフト割当て制限」を参照してください。 |
|
宛先ごとに保存されるメッセージのバイト数 |
ハード割当て制限: 52,428,800バイト ソフト割当て制限: 36,700,160バイト 詳細は、「ハード割当て制限とソフト割当て制限」を参照してください。 |
ハード割当て制限: 52,428,800バイト ソフト割当て制限: 36,700,160バイト 詳細は、「ハード割当て制限とソフト割当て制限」を参照してください。 |
|
同時接続 |
10 (10単位での追加接続が購入可) |
10 (拡大不可) |
|
接続ごとの一時宛先 |
50 |
50 |
*同時接続数によって暗黙的に制限される
ハード割当て制限とソフト割当て制限
Oracle Messaging Cloud Serviceでは、宛先に送信できるがまだ消費されていない保存されるメッセージの数と、宛先に送信できるがまだ消費されていない保存されるメッセージのバイト数の両方に制限があります。 これらの制限は、メッセージの数とバイト数のいずれについてもハード割当て制限およびソフト割当て制限によって表されます。 宛先での保存されるメッセージの数およびバイト数がメッセージの数またはバイト数のハード割当て制限に達するまで、クライアントはメッセージをその宛先に送信できます。 宛先のハード割当て制限に達すると、それ以降、その宛先に送信しようとしても、その宛先でのメッセージの数およびバイト数がソフト割当て制限を下回るまでエラーで失敗します。 ハード割当て制限とソフト割当て制限は、指定されたサービス・インスタンスのすべての宛先に対して同一です。
たとえば、キューQのメッセージ数のハード割当て制限が100、ソフト割当て制限が70であり、Qにメッセージが100件あってクライアントが別の永続メッセージを送信しようとすると、Qはメッセージ数のハード割当て制限を超えることになります。 送信は失敗し、それ以降の永続メッセージの送信も、Qから少なくとも31件のメッセージが消費され、メッセージ数のソフト割当て制限を下回るまで失敗し続けます。 この2つの割当て制限アルゴリズムにより、宛先がハード割当て制限に達すると、その宛先のコンシューマには"追いつく"機会が与えられます。
メッセージング・リソースの詳細は、「Oracle Messaging Cloud Serviceを使用するアプリケーションの開発時の検討事項」を参照してください。
