ヘッダーをスキップ
Oracle® Fusion Middleware Oracle User Messaging Serviceによるアプリケーションの開発
リリース12c (12.1.2)
E47999-02
  目次へ移動
目次

前
 
次
 

5 Parlay X Webサービス・マルチメディア・メッセージングAPI

この章では、Oracle User Messaging Serviceで使用可能なParlay X Multimedia Messaging Web Service、およびParlay X Web Services Multimedia Messaging APIを使用してOracle User Messaging Serviceを介してメッセージを送受信する方法について説明します。


注意:

この章で説明するParlay X Multimedia Messaging APIは非推奨です。かわりに、第3章「ユーザー・メッセージング・サービスJava APIを使用したメッセージの送受信」で説明するユーザー・メッセージング・サービスJava APIを使用してください。


この章の内容は次のとおりです。


注意:

Oracle User Messaging Serviceのコード・サンプルに関する詳細を参照したり、サンプルを自分で実行するには、次の場所にあるサンプルを参照してください。

http://www.oracle.com/technetwork/indexes/samplecode/sample-ums-1454424.html



注意:

Oracle User Messaging Serviceには、Parlay X APIを実装したJavaクライアント・ライブラリも含まれています。


5.1 Parlay X Messaging操作の概要

次の項では、サポートされている各操作のセマンティクスおよびParlay X Gatewayの実装固有の詳細について説明します。次の各表はParlay X仕様から直接抽出したもので、各操作に対する入力および出力メッセージ・パラメータの説明が記載されています。

Oracle User Messaging Serviceには、Parlay X 2.1 Multimedia Messaging仕様のサブセットが実装されています。特に、Oracle User Messaging Serviceは、SendMessageインタフェースおよびReceiveMessageインタフェースをサポートしています。MessageNotificationインタフェースおよびMessageNotificationManagerインタフェースはサポートされていません。

5.2 SendMessageインタフェース

SendMessageインタフェースでは、sendMessage操作で1つ以上の受信者アドレスにメッセージを送信したり、getMessageDeliveryStatus操作で以前送信したメッセージの配信ステータスを取得することができます。次の要件が適用されます。

5.2.1 sendMessage操作

表5-1に、sendMessage操作のsendMessageRequest入力メッセージの説明を示します。

表5-1 sendMessage入力メッセージの説明

パート名 パート・タイプ オプション 説明

addresses

xsd:anyURI[0..unbounded]

いいえ

このメッセージの宛先アドレス。

senderAddress

xsd:string

はい

メッセージの送信者アドレス。このパラメータは、すべてのサード・パーティのプロバイダに対して使用不可です。Parlay Xサーバーは、このパラメータを特定アプリケーションのSLAに従って処理する必要があるため、その使用によって、PolicyExceptionが発生する場合があります。

subject

xsd:string

はい

メッセージの件名。SMSにマップされた場合、このパラメータは、個別のsenderAddressが指定されている場合でも、senderAddressとして使用されます。

priority

MessagePriority

はい

メッセージの優先度。存在しない場合は、ネットワークによって、演算子のポリシーに基づいた優先度が割り当てられます。このメッセージに適用するように指定します。

charging

common:
ChargingInformation

はい

このメッセージに適用するように指定してください。

receiptRequest

common:SimpleReference

はい

アプリケーション・エンドポイント、インタフェース名および相関機能を定義します。これらの定義内容は、アプリケーションに、メッセージが端末に配信されたときや配信が不可能な場合を通知するために使用されます。


表5-2に、sendMessage操作のsendMessageResponse出力メッセージの説明を示します。

表5-2 sendMessageResponse出力メッセージの説明

パート名 パート・タイプ オプション 説明

result

xsd:string

いいえ

この相関識別子は、すべての送信済メッセージの配信ステータスをポーリングするために、getMessageDeliveryStatus操作の起動で使用されます。


5.2.2 getMessageDeliveryStatus操作

getMessageDeliveryStatus操作では、以前送信したメッセージの配信ステータスを取得します。入力requestIdentifierは、sendMessage操作によるresult値です。これは、他のMessagingドキュメントでメッセージIDと呼ばれている識別子と同じ識別子です。

表5-3に、getMessageDeliveryStatus操作のgetMessageDeliveryStatusRequest入力メッセージの説明を示します。

表5-3 getMessageDeliveryStatusRequest入力メッセージの説明

パート名 パート・タイプ オプション 説明

registrationIdentifier

xsd:string

いいえ

配信ステータス・リクエストに関連する識別子。


表5-4に、getMessageDeliveryStatus操作のgetMessageDeliveryStatusResponse出力メッセージの説明を示します。

表5-4 getMessageDeliveryStatusResponse出力メッセージの説明

パート名 パート・タイプ オプション 説明

result

DeliveryInformation
[0..unbounded]

はい

以前送信したメッセージのステータスの配列。各配列の要素は、送信したメッセージ、宛先アドレスおよび配信ステータスを表しています。


5.3 ReceiveMessageインタフェース

ReceiveMessageインタフェースには3つの操作があります。getReceivedMessages操作では、最後にgetReceivedMessagesを起動した以降に受信したメッセージについてサーバーをポーリングします。このgetReceivedMessagesでは、必ずしもすべてのメッセージ・コンテンツを戻すわけではないことに注意してください。通常は、メッセージ・メタデータのみを戻します。

他の2つの操作(getMessageおよびgetMessageURIs)は、メッセージ・コンテンツの取得に使用されます。

5.3.1 getReceivedMessages操作

この操作では、受信したメッセージについてサーバーをポーリングします。次の要件に注意してください。

  • 登録IDパラメータは、アプリケーションがメッセージを受信するエンドポイント・アドレスを識別する文字列です。詳細は、ReceiveMessageManagerインタフェースの説明を参照してください。

  • Parlay X仕様では、登録IDが未指定の場合、このアプリケーションに対するすべてのメッセージが戻されます。ただし、WSDLでは登録IDパラメータは必須です。そのため、ここでの実装では、空の文字列("")を指定なしの値として処理します。空の文字列を登録IDとしてgetReceivedMessagesをコールした場合は、このアプリケーションのすべてのメッセージを取得します。したがって、空の文字列は、startReceiveMessagesをコールする場合の登録IDとして許可されない値です。

  • 受信したメッセージ・コンテンツがParlay X仕様に従った純粋なASCIIテキストの場合、そのメッセージ・コンテンツは、MessageReferenceオブジェクト内のインラインで戻され、messageIdentifier(メッセージID)要素はNULLです。ここでの実装では、この操作の目的のために、Content-Typeがtext/plainのすべてのコンテンツ、us-asciiを純粋なASCIIテキストとしてエンコードしているすべてのコンテンツを処理します。MIME仕様では、エンコードが指定されていない場合はus-asciiとみなされ、Content-Typeが指定されていない場合はtext/plainとみなされます。

  • 優先度パラメータは現在無視されています。

表5-5に、getReceivedMessages操作のgetReceivedMessagesRequest入力メッセージの説明を示します。

表5-5 getReceivedMessagesRequest入力メッセージの説明

パート名 パート・タイプ オプション 説明

registrationIdentifier

xsd:string

いいえ

オフライン・プロビジョニングの手順を識別します。この手順によって、アプリケーションではメッセージの受信通知を指定の基準に従って受信できます。

priority

MessagePriority

はい

Parlay Xゲートウェイからポーリングするメッセージの優先度。指定した優先度以上のすべてのメッセージを取得します。指定しない場合は、すべてのメッセージが戻されます。つまり、優先度をLowに指定した場合と同じです。


表5-6に、getReceivedMessages操作のgetReceivedMessagesResponse出力メッセージの説明を示します。

表5-6 getReceivedMessagesResponse出力メッセージの説明

パート名 パート・タイプ オプション 説明

registrationIdentifier

xsd:string

いいえ

オフライン・プロビジョニングの手順を識別します。この手順によって、アプリケーションではメッセージの受信通知を指定の基準に従って受信できます。

priority

MessagePriority

はい

Parlay Xゲートウェイからポーリングするメッセージの優先度。指定した優先度以上のすべてのメッセージを取得します。指定しない場合は、すべてのメッセージが戻されます。優先度をLowに指定した場合と同じです。


5.3.2 getMessage操作

getMessage操作では、以前のgetReceivedMessagesの起動時のメッセージIDを使用してメッセージ・コンテンツを取得します。レスポンス・メッセージにはSOAP本体がありません。コンテンツは単一のSOAP添付ファイルとして戻されます。

表5-7に、getMessage操作のgetMessageRequest入力メッセージの説明を示します。

表5-7 getMessageRequest入力メッセージの説明

パート名 パート・タイプ オプション 説明

messageRefIdentifier

xsd:string

いいえ

メッセージのアイデンティティ。


getMessage操作に対するgetMessageResponse出力メッセージはありません。

5.3.3 getMessageURIs操作

getMessageURIsでは、メッセージ・コンテンツをURIのリストとして取得します。次の要件に注意してください。

  • これらのURIは、参照を解除してコンテンツを取得できるHTTP URLです。

  • インバウンド・メッセージのContent-Typeがmultipartの場合は、サブパートごとに複数のURIが戻されます。Content-Typeがmultipartでない場合は、単一のURIが戻されます。

  • インバウンド・メッセージがParlay X仕様に従った本体テキスト・パートの場合、そのインバウンド・メッセージは、ASCIIテキストとしてエンコードされた場合のメッセージ本体として定義され、MessageURIオブジェクト内のインラインで戻されます。ここでの実装の目的のために、この動作を次のように定義します。

    • メッセージのContent-Typeがtext/*(任意のテキスト・タイプ)で、charsetパラメータがus-asciiの場合、コンテンツはMessageURIオブジェクトのインラインで戻されます。インラインで戻された内容以外にコンテンツがないため、戻されるURIはありません。

    • メッセージのContent-Typeがmultipart/(任意のマルチパート・タイプ)で、最初の本体パートのContent-Typeがtext/で、charsetがus-asciiである場合、そのパートはMessageURIオブジェクトのインラインで戻され、そのパートに対応して戻されるURIはありません。

    • MIME仕様では、charsetパラメータが省略されている場合は、us-asciiがデフォルト値とみなされます。Content-Typeヘッダーがメッセージに指定されていない場合、Content-Typeはtext/plainとみなされます。

表5-8に、getMessageURIs操作のgetMessageURIsRequest入力メッセージの説明を示します。

表5-8 getMessageURIsRequest入力メッセージの説明

パート名 パート・タイプ オプション 説明

messageRefIdentifier

xsd:string

いいえ

取得するメッセージのID。


表5-9に、getMessageURIs操作のgetMessageURIsResponse出力メッセージの説明を示します。

表5-9 getMessageURIsResponse出力メッセージの説明

パート名 パート・タイプ オプション 説明

result

MessageURI

いいえ

メッセージのテキストのパートで構成された完了メッセージ(存在する場合)、およびメッセージの添付ファイルに関するファイル・リファレンスのリスト(ある場合)が含まれます。


5.4 Parlay X Messagingに対するOracleの拡張機能

Parlay X Messagingの仕様では、メッセージ・フローの特定部分が未定義のままです。未定義状態の主要な領域は、クライアントを、(ReceiveMessageインタフェースを介して)同期受信するアドレスにバインディングするためのプロセス部分です。

Oracle User Messaging Serviceには、このプロセスをサポートするために、Parlay Xへの拡張インタフェースが含まれています。この拡張インタフェースは、Oracle XMLネームスペース内の個別のWSDLとして実装されていますが、Parlay X公認ではありません。クライアントはこの追加インタフェースを使用しないか、モジュール型の方法で使用するかを選択できます。後者の場合は、このインタフェースの中核となるメッセージング・ロジックはParlay X仕様に完全に準拠することになります。

5.4.1 ReceiveMessageManagerインタフェース

ReceiveMessageManagerは、メッセージを受信するクライアントの登録を管理するためのOracle固有のインタフェースです。クライアントはこのインタフェースを使用して、特定のアドレスでのメッセージの受信を開始、および停止します(これは、Messaging APIでのアクセス・ポイントの登録/登録解除の概念に類似しています)。

5.4.1.1 startReceiveMessage操作

この操作を起動すると、クライアントは、メッセージを受信するために、クライアント自体を指定のエンドポイントにバインドできます。次の要件に注意してください。

  • エンドポイントは、アドレスおよびオプションの基準で構成されています。この基準は、Parlay Xの仕様では、メッセージの件名またはコンテンツの最初の空白デリミタ付きトークンとして定義されています。

  • エンドポイント情報の他に、クライアントでは、この操作の起動時に登録IDも指定できます。このIDは一意の文字列で、後でstopReceiveMessage操作とgetReceivedMessages操作でこの特定のバインディングを参照するために使用できます。

  • 他のクライアント・アプリケーションによって、エンドポイントがすでに登録されている場合、または登録IDがすでに使用されている場合は、ポリシー・エラーが発生します。

  • 特定の文字はURIに使用できません。特定の文字をアドレスに含める必要がある場合、それらの文字はエンコードまたはエスケープできます。適切にエンコードされたURIの作成方法の詳細は、java.net.URIのjavadocを参照してください。たとえば、XMPPメッセージを受信するように登録する場合は、IM:jabber|user@example.comのようにアドレスを指定する必要があります。ただし、パイプ(|)文字はURIに使用できないため、サーバーへの送信前にエスケープする必要があります。

  • 指定したエンドポイント・アドレスで、サーバーが実際にメッセージを受信できる保証はありません。受信の可否は、Oracle User Messaging Service全体の構成、特にシステムにデプロイされているメッセージング・ドライバによって決まります。サーバーがメッセージを受信できないアドレスにクライアントがバインドされている場合、エラーは表示されません。

startReceiveMessage操作には次の入出力があります。

表5-10に、startReceiveMessage操作のstartReceiveMessageRequest入力メッセージの説明を示します。

表5-10 startReceiveMessageRequest入力メッセージの説明

パート名 パート・タイプ オプション 説明

registrationIdentifier

xsd:string

いいえ

登録識別子。

messageService
ActivationNumber

xsd:anyURI

いいえ

メッセージ・サービスのアクティブ化番号。

criteria

xsd:string

はい

説明文字列。


startReceiveMessage操作に対するstartReceiveMessageResponse出力メッセージはありません。

5.4.1.2 stopReceiveMessage操作

この操作を起動すると、クライアントと受信エンドポイント間ですでに確立されているバインディングが削除されます。クライアントは、破損しているエンドポイントのバインディングを識別するために、startReceiveMessageのコール時に指定した登録IDと同じ登録IDを指定します。このアプリケーションのサーバーに認識されている、対応する登録IDのバインディングがない場合は、ポリシー・エラーが発生します。

表5-11に、stopReceiveMessage操作のstopReceiveMessageRequest入力メッセージの説明を示します。

表5-11 stopReceiveMessageRequest入力メッセージの説明

パート名 パート・タイプ オプション 説明

registrationIdentifier

xsd:string

いいえ

登録識別子。


stopReceiveMessage操作に対するstopReceiveMessageResponse出力メッセージはありません。

5.5 Parlay X Messaging Client APIおよびClient Proxy Package

Parlay X Messaging Clientは、Parlay X WSDLファイルおよびWebサービス・アセンブリ・ツールのみを使用してアセンブルできますが、サポート対象のParlay X Messagingインタフェースに対しては、事前作成のWebサービス・スタブおよびインタフェースが用意されています。SOAP添付ファイルがあるWebサービスをParlay Xで指定されているスタイルでアセンブルすることは困難であるため、WSDLから開始せずに提供されているAPIを使用することをお薦めします。

Parlay X Messaging APIで使用可能なクラスの完全なリストは、Messaging JavaDocを参照してください。このAPIに対する主要なエントリ・ポイントは、次のクライアント・クラスを経由します。

各クライアント・クラスにより、クライアント・アプリケーションは対応するインタフェースで操作を起動できます。クライアント・クラスのインスタンスを構成するときは、リモート・ゲートウェイURLなどの追加のWebサービス・パラメータ、および必要なセキュリティ資格証明が提供されます。詳細は、Javadocを参照してください。セキュリティ資格証明は、Parlay Xの仕様で指定されている標準的なWS-Securityヘッダーを使用してサーバーに伝播されます。

クライアント・アプリケーションの一般的なプロセスは、前述のクライアント・クラスのいずれかを作成し、必要な構成項目(エンドポイント、ユーザー名、パスワード)を設定してビジネス・メソッド(SendMessageClient.sendMessage()など)のいずれかを起動することです。このAPIの使用方法の例については、Oracle Technology Network (OTN)で入手できるメッセージ・サンプル、特にusermessagingsample-parlayx-src.zipを参照してください。

5.6 Parlay X APIを使用したサンプル・チャット・アプリケーション

この項では、OTNでOracle User Messaging Serviceが提供するParlay X APIを使用して、サンプル・チャット・アプリケーションを作成、デプロイおよび実行する方法を説明します。

この章には次の項が含まれます:

5.6.1 概要

このサンプルは、電子メール、SMSまたはIMを通じてメッセージを送受信するWebベースのチャット・アプリケーションの作成方法を示します。このサンプルでは、標準ベースのParlay X Web Service APIを使用してユーザー・メッセージング・サーバーと相互作用します。このサンプル・アプリケーションには、3つのWebサービス・インタフェース(Parlay Xで定義されたSendMessageサービス、ReceiveMessageサービス、Parlay Xに対するOracleの拡張機能であるReceiveMessageManagerサービス)のそれぞれに対するWebサービス・プロキシ・コードが含まれていますOracle JDeveloperでアプリケーション・サーバー接続を定義し、アプリケーションをデプロイして実行します。事前作成されたOracle JDeveloperプロジェクトとして提供されるこのアプリケーションには、単純なWebチャット・インタフェースが含まれています。

5.6.1.1 提供されるファイル

サンプル・アプリケーションには、次のファイルが含まれています。

  • Project – アーカイブされたOracle JDeveloperプロジェクト・ファイルを含むディレクトリ

  • Readme.txt

  • リリース・ノート

5.6.2 事前作成されたサンプルの実行

次の手順を実行して、事前作成されたサンプル・アプリケーションを実行し、デプロイします。

  1. Oracle JDeveloperで、usermessagingsample-parlayx.jws(.zipファイルに含まれています)を開きます。

    Oracle JDeveloperのメイン・ウィンドウにプロジェクトが表示されます。

    図5-1 Oracle JDeveloperのメイン・ウィンドウ

    図5-1の説明が続きます
    「図5-1 Oracle JDeveloperのメイン・ウィンドウ」の説明

  2. Oracle JDeveloperで、「ファイル」「開く」の順に選択し、前述のディレクトリに移動して、ワークスペース・ファイル「usermessagingsample-parlayx.jws」を開きます。

    これにより、Parlay Xサンプル・アプリケーションに対して事前作成されたJDeveloperアプリケーションが開きます。このアプリケーションには、1つのWebモジュールが含まれています。アプリケーションのソース・コードはすべて設定済です。インストールに固有のパラメータは構成する必要があります。

  3. Webモジュールで「Oracle UMS Client」ライブラリが使用されていることを確認して、サンプル・アプリケーションのビルド依存性を満たします。

    1. 「アプリケーション・ナビゲータ」で、Webモジュール「usermessagingsample-parlayx-war」を右クリックし、「プロジェクト・プロパティ」を選択します。

    2. 左側のペインで、「ライブラリとクラスパス」を選択します。

      図5-2 ライブラリの追加

      図5-2の説明が続きます
      「図5-2 ライブラリの追加」の説明

    3. 「OK」をクリックします。

  4. ナビゲーション・ペインでプロジェクトを右クリックし、「新規」を選択して、アプリケーション・サーバー接続を作成します。第5.6.4項「新規アプリケーション・サーバー接続の作成」の説明に従います。

  5. プロジェクトをデプロイするには、「usermessasgingsample-parlayx project」「デプロイ」「usermessasgingsample-parlayx」「デプロイ先」「SOA_server」の順に選択します(図5-3)。

    図5-3 プロジェクトのデプロイ

    図5-3の説明が続きます
    「図5-3 プロジェクトのデプロイ」の説明

  6. メッセージBuild Successfulがログに表示されていることを確認します。

  7. デフォルトのリビジョンを入力し、「OK」をクリックします。

  8. メッセージDeployment Finishedがデプロイメント・ログに表示されていることを確認します。

    アプリケーションが正常にデプロイされました。

    サンプルを実行するには、その前に、次の項の説明に従って、Oracle User Messaging Serviceの追加ドライバを構成し、ユーザー通信プリファレンスでメッセージを受信するユーザー用のデフォルト・デバイスを構成する必要があります。


    注意:

    詳細は、Oracle SOA SuiteおよびOracle Business Process Management Suiteの管理を参照してください。


5.6.3 サンプルのテスト

次の手順を実行し、サンプルを実行およびテストします。

  1. Webブラウザを開きます。

  2. 次のようにアプリケーションのURLに移動し、ログインします。

    http://host:port/usermessagingsample-parlayx/

    「メッセージングParlay Xサンプル」Webページが表示されます(図5-4)。このページには、ナビゲーション・タブ、およびアプリケーションの手順が表示されます。

    図5-4 「メッセージングParlay Xサンプル」Webページ

    図5-4の説明が続きます
    「図5-4 「メッセージングParlay Xサンプル」Webページ」の説明

  3. 「構成」をクリックして、次の値を入力します(図5-5)。

    • 送信エンドポイントを指定します。例: http://localhost:port/sdpmessaging/parlayx/SendMessageService

    • 受信エンドポイントを指定します。例: http://localhost:port/sdpmessaging/parlayx/ReceiveMessageService

    • 受信マネージャ・エンドポイントを指定します。例: http://localhost:port/sdpmessaging/parlayx/ReceiveMessageMessageService

    • ユーザー名とパスワードを指定します。

    • ポリシーを指定します(ユーザー・メッセージング・サービスのインスタンスでWS-Securityが有効になっている場合に必要)。

    • 図5-5 Webサービスのエンドポイントおよび資格証明の構成

      図5-5の説明が続きます
      「図5-5 Webサービスのエンドポイントおよび資格証明の構成」の説明

  4. 「保存」をクリックします。

  5. 「管理」をクリックします。

  6. 登録IDを入力して、登録およびメッセージを受信するアドレスを指定します(図5-6)。このページを使用すると、アドレスでのメッセージの受信を停止することもできます。

    図5-6 登録IDの指定

    図5-6の説明が続きます
    「図5-6 登録IDの指定」の説明

  7. 「開始」をクリックします。

    メッセージRegistration operation succeededが表示されていることを確認します。

  8. 「チャット」をクリックします(図5-7)。

  9. 図5-7に示す書式で受信者をTo:フィールドに入力します。

  10. メッセージを入力します。

  11. 「送信」をクリックします。

  12. メッセージが受信されていることを確認します。

  13. 図5-7 サンプルの実行

    図5-7の説明が続きます
    「図5-7 サンプルの実行」の説明

5.6.4 新規アプリケーション・サーバー接続の作成

第A.3項「新規アプリケーション・サーバー接続の作成」の手順を実行し、アプリケーション・サーバー接続を作成します。