この章では、OCMS Parlay X Web Servicesのアーキテクチャ、セキュリティおよびインストールについて説明します。この章の内容は次のとおりです。
クライアント・アプリケーションのアーキテクチャは、Webサービスの1つのクライアントが、システムの多くのエンド・ユーザーにかわって機能するアーキテクチャです(図8-1)。
複数のユーザーが同じWebサービス・クライアントに同時に接続でき、クライアントはWebサービスを起動するとそれらのユーザーにかわって機能します。次の使用ガイドラインに注意してください。
セキュリティ: Webサービスを実行しているOCMS Webサーバーは、クライアントを認証します。エンド・ユーザーは認証しません。クライアントは信頼できるエンティティであり、クライアントが一度認証されれば、そのクライアントのすべてのエンド・ユーザーが認証されるという前提です。これは、Webサービス・クライアント上のエンド・ユーザーを認証するタスクを認識します。クライアントが正しく認証されるためには、エンド・ユーザーが事前に決められた認証資格証明と結び付いている必要があります。
WebクライアントはすべてのWebサービスを起動する必要はありません。つまり、WebクライアントはSendMessage Webサービスに対してのみメソッドを起動できるため、その他のWebサービスを気にする必要はありません。ただし、クライアント・アプリケーションのニーズによって、特別にその目的を達成するために様々なWebサービスに対して特定のメソッドを起動するかどうかが決まるインスタンスがあります。たとえば、メッセージ送信用のクライアント・アプリケーションが、送信されたすべてのメッセージのメッセージ通知も受信する場合、送信されたメッセージの通知を受信するには、最初にMessageNotificationManagerインタフェースのstartMessageNotificationメソッドをコールする必要があります。
OCMSサーバー上の全Webサービスのデフォルトのデプロイでは、クライアントがDIGEST認証(ユーザー名とパスワードが必要)を使用してクライアント自体を認証する必要があります。この認証をサポートするために、parlayxclient-10.1.3.4.jarにはランタイムxmlディスクリプタ(<interface-name>Binding_Stub.xml)が含まれています。このディスクリプタは、クライアントからのDIGEST認証に必要なヘッダーを含めることをサポートするように構成されています。そのため、OCMS parlayxclient-10.1.3.4.jarを使用するクライアントでは、使用する特定のWebサービス・クライアントのユーザー名とパスワードのみを設定する必要があります。次に例を示します。
SendMessageClient smc = new SendMessageClient(); ... smc.setUsername("oracle-ws-client"); smc.setPassword("secret");
認証を成功させるには、認証に使用するユーザー名とパスワードを事前に決定し、OCMS Webサーバーで構成しておく必要があります。サーバーでの正しいユーザー名とパスワードの構成は、構成するセキュリティ・プロバイダの選択によって異なります。たとえば、ファイルに基づくセキュリティ・プロバイダ(最も簡単なもの)を使用するために、マルチメディア・メッセージングWebサービス(SendMessgeサービス、ReceiveMessageサービスおよびMessageNotificationManagerサービスなど)のユーザー名とパスワードを構成するとします。OCMSサーバーで次の手順を実行します。
Application Server Control Enterprise Managerにログインします。
「管理」→「セキュリティ」→「セキュリティ・プロバイダ」を選択して、messagingwebserviceセキュリティ・プロバイダを編集します。
デフォルトのセキュリティ・プロバイダがファイルベースのセキュリティ・プロバイダであることを確認します。プロバイダを変更するには、「セキュリティ・プロバイダの変更」→「ファイルベースのセキュリティ・プロバイダ」を選択し、「OC4Jインスタンスのデフォルトのファイルベースのセキュリティ・プロバイダを使用します」を選択して「OK」をクリックします。
「レルム」を選択して、デフォルト・レルム(jazn.com)の近くにある「ユーザー」リンクをクリックします。
新しいユーザーを追加するには「作成」を選択します。
ユーザー名(oracle-ws-clientなど)とパスワード(secretなど)を入力して、ユーザー・ロールusersを追加します。「OK」を選択します。これで、クライアント側で次のコードを使用して、ユーザーoracle-ws-clientとパスワードsecretですべてのマルチメディア・メッセージングWebサービスに接続できるようになりました。
smc.setUsername("oracle-ws-client"); smc.setPassword("secret");
通常、クライアント・アプリケーションの開発者はサーバー側の認証資格証明の設定の詳細を把握する必要はありません。これはサーバー管理者が取り扱うためです。
サーバー管理者がWebサービスに対する認証要件を変更する場合(たとえば、DIGESTのかわりにプレーン・テキストのユーザー名とパスワードを使用する場合など)、新しい要件に関する方法が提供されます。この場合、通常、parlayxclient-10.1.3.4.jarの解凍、<interface-name>Binding_Stub.xmlの変更、およびアプリケーションの実行時に使用するための、更新されたparlayxclient-10.1.3.4.jarの再パッケージングが必要になります。サーバー管理者から提供される方法には、関連する詳細事項が含まれます。
各種Webサービスにはクライアント側で実行する対応通知Webサービス(MessageNotification、PresenceNotification)が含まれ、該当するイベントが発生すると、Webサービスは通知(メッセージ配信ステータス、メッセージの受信、プレゼンス・ステータスの変更)を受信します。この実装では、クライアントの通知時にデフォルトでWeb Serviceセキュリティ(WS-Security)は使用されません。つまり、サーバーではクライアント側で実行する通知WebサービスがWS-Securityを使用しないことを前提としており、通知を送信する際にサーバー自体を認証しようとはしません。クライアント側でWS-Securityを有効にすると、通知SOAPリクエストから必要なヘッダーが失われるため、サーバーからの通知は失敗します。
Webサービスは、標準の.earファイルとしてパッケージ化されており、Enterprise Manager経由で他のWebサービスと同様にデプロイできます。.earファイルには、2つのインタフェースを実装する2つの.warファイルが含まれています。Webサービスがプレゼンス・サーバーと同じサーバーにデプロイされる場合、そのWebサービスはプレゼンス・サーバーの子アプリケーションになります。
クライアント・アプリケーションでは、OCMSに付属するparlayxライブラリをインポート(およびコンパイル)する必要があります。この場合、プロジェクトに次のjarをインポートします。
parlayx-10.1.3.4.jar: このjarには変更されないクラスがすべて含まれます。つまり、Oracle Webサービス・アセンブラで生成されて、変更やカスタマイズが行われないクラスです。種類(共通および各種Webサービス)、ランタイム・クラスおよびローカル・クラスなどです。
parlayxclient-10.1.3.4.jar: このjarには変更される<interface-name>クライアント・クラスがすべて含まれます(PresenceConsumerClientおよびSendMessageClientなど)。これらは、Oracle Communication and Mobility Serverとともにデプロイされた対応Webサービスと連動するように特殊化されています。
これらのjarファイルはコンパイルする他に、クライアントのランタイム構成にも含まれます(つまり、コンソール・クライアントの場合にクラスパスを設定する、またはJ2EEコンテナにデプロイされたクライアント・アプリケーションのデプロイ済war/earにjarを含めるなど)。
前述のjar以外に、OCMSインストールには、通知Webサービスのwarファイルが含まれます。これらのwarファイルには、開発者が様々なWebサービスの通知を有効にするためにインポートする必要があるjarファイルがすべて含まれます。
messagingwsnotification-10.1.3.4.war: メッセージ配信ステータスやメッセージ受信の通知を受け取るクライアントのビルド時にインポートする必要があるjarを含む、デプロイ可能なwarファイル。OCMSサーバーがメッセージング通知Webサービスを起動できるように、クライアント・アプリケーションとともにこのwarもデプロイする必要があります。
presencewsnotification-10.1.3.4.war: プレゼンス・ステータスの変更の通知を受信するクライアントのビルド時にインポートする必要があるjarを含む、デプロイ可能なwarファイル。OCMSがプレゼンス通知Webサービスを起動できるように、クライアント・アプリケーションとともにこのwarもデプロイする必要があります。