この付録では、提供されているプロシージャおよびコードを使用して、独自のOracle User Messaging Serviceアプリケーションを作成する方法について説明します。
項目は次のとおりです。
注意: 詳細およびコード・サンプルについては、Oracle Technology Network(http://www.oracle.com/technology )を参照してください。 |
この章では、Oracle User Messaging Serviceで提供されている、ユーザー指定のチャネルにメッセージを送信するためのアプリケーションを作成し、実行する方法を説明します。
注意: Oracle User Messaging Serviceのアーキテクチャおよびコンポーネントについては、『Oracle Fusion Middleware Oracle SOA Suiteスタート・ガイド』を参照してください。 |
項目は次のとおりです。
ユーザー指定のチャネルにメッセージを送信するアプリケーションでは、BPELプロセスによって、ユーザー・メッセージング・プリファレンスで指定されたメッセージング・チャネルを経由して、ユーザーにメッセージを送信できることを具体的な例で示します。サポートされるチャネルおよびデフォルト・デバイスのそれぞれに対してデバイスおよびメッセージ・チャネルのアドレスを構成すると、Oracle User Messaging Serviceは、構成された優先チャネルの設定に基づいて、メッセージをユーザーにルーティングします。
SOAおよびUser Messaging Serviceは、ホストされたインスタンスにすでにインストールされており、サンプル・ユーザーは設定済です。soa-infraでの通知を可能にするには、次の手順を実行します(実行していない場合)。
Enterprise Managerを使用して「SOAインフラストラクチャ」メニューに移動し、「SOA管理」→「ワークフロー通知プロパティ」の順に選択して、「通知モード」を「すべて」に設定します。
必要な場合は、『Oracle Fusion Middleware Oracle SOA Suite管理者ガイド』のドライバの構成に関する項の説明に従って、User Messagingドライバを構成します。
ユーザーweblogic
の電子メール・アドレスは、JXplorer LDAPブラウザを使用して設定します。 「LDAPユーザー・プロファイルのアドレスの更新」を参照してください。
サーバーを再起動します。
ユーザーweblogic
の電子メール・アドレスをJXplorer LDAPブラウザを使用して設定するには、次の手順を実行します。
埋込みLDAPサーバー管理パスワードを次のように設定します。
Oracle WebLogic Server管理コンソールにログインします。
ドメイン名のリンク→「セキュリティ」→「組込みLDAP」の順にクリックします。
新しい「資格証明」と「資格証明の確認」(例: weblogic
)を入力します。
「保存」をクリックします。
表I-1に示す各フィールドに値を指定し、JXplorerから接続します。
次の手順を実行してサンプルを新規に作成すると、SOAコンポジット・アプリケーションにメッセージを追加して、ユーザー・メッセージング・プリファレンスを使用する方法を学習できます。
Oracle JDeveloper 11gを開きます。
「ファイル」→「新規」→「一般」→「アプリケーション」→「SOAアプリケーション」の順に選択して、新規アプリケーションを作成します。 「OK」をクリックします。
「アプリケーション名」を入力し、「次へ」をクリックします(図I-1)。
プロジェクトの名前を入力し、「次へ」をクリックします(図I-2)。
コンポジット・テンプレートとして、「BPELを使用するコンポジット」を選択します(図I-3)。 「終了」をクリックします。
「BPELプロセスの作成」ダイアログで、BPELプロセス名としてSendMessage
と入力します(図I-4)。 「OK」をクリックします。
「SOAPサービスとして公開」が選択されていることを確認します。 「OK」をクリックします。
これで、空のデフォルトBPELアプリケーションが作成されました(図I-5)。
「Oracle JDeveloper」メイン・ウィンドウの「Composite.xml」タブの下に、次のようなアプリケーションのコンポーネントが表示されます。
左のボックスは、アプリケーションを初期化するために使用するWebサービス・クライアントの定義です。
中央のボックスは、メッセージを作成して書式設定し、メッセージ・サービスをコールするBPELプロセスです。
注意: User Notification BPELプロセスの作成時にメッセージ送信に使用するメッセージ・サービス・リソースは、後で作成します(手順13〜19)。 |
「アプリケーション・ナビゲータ」の「xsd」フォルダを開き、「BPELProcess1.xsd」をダブルクリックして開きます(図I-6)。
「ソース」タブをクリックします(図I-7)。
このBPELアプリケーションの入力に対して次の変更を行います。
プロジェクトの「アプリケーション・ナビゲータ」の「xsd」フォルダ内に生成されたファイルSendMessage.xsdには、次の要素定義がデフォルトで作成されます。
<element name="input" type="string"/>
このXSD要素は、BPELプロセスの入力を定義します。
「ソース」タブ(図I-7)を選択し、前述の行を次の3行に置換します。
<element name="to" type="string"/> <element name="subject" type="string"/> <element name="body" type="string"/>
「ファイル」メニューから「すべて保存」をクリックします。
展開されたプロセス要素を表示します(図I-8)。
このプロセスでメッセージングを可能にするには、「コンポーネント・パレット」にあるBPELアクティビティおよびコンポーネントから「User Notification」を、receiveInputアクティビティとcallbackClientアクティビティの間にドラッグ・アンド・ドロップします。
user notificationアクティビティが表示されます(図I-9)。
「To」入力ボックスの右側にある「XPath式ビルダー」アイコンをクリックします。
「To」受信者の式を次のように変更します。
「BPEL変数」ペインで、「変数」→「inputVariable」→「payload」→「clientprocess」→「client:to」の順に選択します(図I-10)。
「式に挿入」をクリックします。
「OK」をクリックします。
「件名」入力ボックスの右側にある「XPath式ビルダー」アイコンをクリックします。
「件名」の式を次のように変更します。
「BPEL変数」ペインで、「変数」→「InputVariable」→「payload」→「clientprocess」→「client:subject」の順に選択します(図I-11)。
「式に挿入」をクリックします。
「OK」をクリックします。
「本文」入力ボックスの右側にある「XPath式ビルダー」アイコンをクリックします。
「本文」の式を次のように変更します。
次の手順を実行し、新規アプリケーション・サーバー接続を作成します。
プロジェクトを右クリックし、「新規」→「接続」→「アプリケーション・サーバー接続」の順に選択して、新規アプリケーション・サーバー接続を作成します(図I-15)。
接続にSOA_server
という名前を付けて、「次へ」をクリックします(図I-16)。
「接続タイプ」に「WebLogic 10.3」を選択します。
認証情報を入力します。 ユーザー名の一般的な値はweblogic
です。
「接続」ダイアログで、SOA管理サーバーのホスト名、ポートおよびSSLポートを入力し、WLSドメインのドメイン名を入力します。
「次へ」をクリックします。
「テスト」ダイアログで、「接続のテスト」をクリックします。
メッセージSuccess!
が表示されていることを確認します。
アプリケーション・サーバー接続が作成されました。
次の手順を実行し、プロジェクトをデプロイします。
プロジェクトをデプロイするには、「SendMessage project」→「デプロイ」→「SendMessageProj」→「デプロイ先」→「SOA_server」の順に選択します(図I-17)。
メッセージBuild Successful
がログに表示されていることを確認します。
デフォルトのリビジョンを入力し、「OK」をクリックします。
メッセージDeployment Finished
がデプロイメント・ログに表示されていることを確認します(図I-18)。
アプリケーションが正常にデプロイされました。
サンプルを実行するには、その前に、次の項の説明に従って、Oracle User Messaging Serviceの追加ドライバを構成し、ユーザー・メッセージング・プリファレンスでメッセージを受信するユーザー用のデフォルト・デバイスを構成する必要があります。
通知を受信するユーザーは、ユーザー・メッセージング・プリファレンスを介してメッセージにアクセスする際に使用するデバイスを登録する必要があります。次の手順を実行します。
次のいずれかのURLで、ユーザー・メッセージング・プリファレンス・アプリケーションにログインします。
http://
server
:
port
/sdpmessaging/userprefs-ui
で直接ログインします。
http://
server
:
port
/integration/worklistapp
で、ワークリスト・アプリケーションの「プリファレンス」→「通知」タブを介してログインします。
ユーザー・メッセージング・プリファレンス・アプリケーションが表示されます。
「メッセージング・チャネル」タブをクリックします(図I-19)。
ログイン資格証明の入力を求められます。
「メッセージング・チャネル」タブで、チャネルを選択します。
デバイス・フォルダを開いてから、選択したチャネルの横の「デフォルトとして設定」をクリックして、デフォルトとしてチャネルを設定します。
選択したチャネルの横にチェックマークが表示され、デフォルトの通知受信方法として指定されます。そのユーザーに送信されるすべてのメッセージが、そのチャネルに送信されます。
次に、Enterprise Managerを介してテスト・メッセージを転送する方法を説明します。
次の手順を実行し、サンプルを実行およびテストします。
Webブラウザ・ウィンドウを開き、SOAドメインのEnterprise Managerにログインします。 たとえば、http://
host
:
port
/em
などです。
Oracle Enterprise Managerで、ナビゲーション・ツリーの「SOA」フォルダを開いて、デプロイされた「SendMessageProj」コンポジット・アプリケーションをクリックします。 「テスト」ボタンをクリックして、テスト・クライアント・ページを起動します。
「引数を入力」セクションでは、SendMessageProjを起動するための入力値が提供されます。
次の値を入力します。
to: weblogic(ユーザー)
subject: 通知テスト(件名)
body: メッセージ・コンテンツ
「Webサービスのテスト」をクリックします。
この項では、Oracle User Messaging Serviceで提供されている、添付ファイル付き電子メールの送信アプリケーションを作成して実行する方法を説明します。
注意: Oracle User Messaging Serviceのアーキテクチャおよびコンポーネントについては、『Oracle Fusion Middleware Oracle SOA Suiteスタート・ガイド』を参照してください。 |
項目は次のとおりです。
添付ファイル付き電子メールを送信するアプリケーションでは、電子メールを添付ファイルとともに送信するBPELプロセスを具体的な例で示します。 BPELプロセスは、アイデンティティ・ストアからユーザーの電子メール・アドレスを参照し、ファイル・システムからファイルを読み取り、電子メールのコンテンツを作成してから、電子メールをそのユーザーに送信します。I.2.5項「サンプルの作成」では、添付ファイル付き電子メールをSOAコンポジット・アプリケーションに追加し、使用しているアプリケーションでメッセージングに対応できるようにする方法を説明します。このアプリケーションを最初からモデル化する場合は、「サンプルの作成」の項に進んでください。 あるいは、このチュートリアルで提供されている事前作成のプロジェクトを直接使用できます。事前作成のサンプルを実行したり、アプリケーションを最初から作成するには、その前に、I.2.2項「SOAおよびUser Messaging Serviceのインストールおよび構成」の説明に従って、サーバーをインストールして構成する必要があります。デフォルトでは、soa-infraによる通知の送信はありません。 次に、電子メール・サーバーとの通信に必要な電子メール・ドライバをインストールして構成する手順を説明します。
SOAおよびUser Messaging Serviceは、ホストされたインスタンスにすでにインストールされており、サンプル・ユーザーweblogic
はすでに作成されています。soa-infraでの通知を可能にするには、次の手順を実行します(実行していない場合)。
Enterprise Managerを使用して「SOAインフラストラクチャ」メニューに移動し、「SOA管理」→「ワークフロー通知プロパティ」の順に選択して、「通知モード」を「すべて」に設定します。
必要な場合は、『Oracle Fusion Middleware Oracle SOA Suite管理者ガイド』のドライバの構成に関する項の説明に従って、User Messagingドライバを構成します。
ユーザーweblogic
の電子メール・アドレスは、JXplorer LDAPブラウザを使用して設定します。 「LDAPユーザー・プロファイルのアドレスの更新」を参照してください。
サーバーを再起動します。
ユーザーweblogic
の電子メール・アドレスをJXplorer LDAPブラウザを使用して設定するには、次の手順を実行します。
埋込みLDAPサーバー管理パスワードを次のように設定します。
Oracle WebLogic Server管理コンソールにログインします。
ドメイン名のリンク→「セキュリティ」→「組込みLDAP」の順にクリックします。
新しい「資格証明」と「資格証明の確認」(例: weblogic
)を入力します。
「保存」をクリックします。
表I-2に示す各フィールドに値を指定し、JXplorerから接続します。
次の手順を実行して、事前作成されたサンプル・アプリケーションを実行し、デプロイします。
Oracle JDeveloperで、SendEmailWithAttachmentsApp.jws(.zipファイルに含まれています)を開きます。
「Oracle JDeveloper」メイン・ウィンドウの「Composite.xml」タブの下に、次のようなサンプル・アプリケーションのコンポーネントが表示されます。
左のボックスは、アプリケーションを初期化するために使用するWebサービス・クライアントの定義です。
中央のボックスは、メッセージを作成して書式設定し、メッセージ・サービスをコールするBPELプロセスです。
右のボックスは、メッセージの送信に使用するメッセージ・サービス・リソースです。
ナビゲーション・ペインでプロジェクトを右クリックし、「新規」を選択して、アプリケーション・サーバー接続を作成します。 I.2.6項「新規アプリケーション・サーバー接続の作成」の説明に従います。
プロジェクトをデプロイするには、「SendEmail project」→「デプロイ」→「SendEmailProj」→「デプロイ先」→「SOA_server」の順に選択します(図I-22)。
メッセージBuild Successful
がログに表示されていることを確認します。
デフォルトのリビジョンを入力し、「OK」をクリックします。
メッセージDeployment Finished
がデプロイメント・ログに表示されていることを確認します。
アプリケーションが正常にデプロイされました。
サンプルを実行するには、その前に、次の項の説明に従って、Oracle User Messaging Serviceの追加ドライバを構成し、ユーザー・メッセージング・プリファレンスでメッセージを受信するユーザー用のデフォルト・デバイスを構成する必要があります。
次に、Enterprise Managerを介してテスト・メッセージを転送する方法を説明します。
次の手順を実行し、サンプルを実行およびテストします。
Webブラウザ・ウィンドウを開き、SOAドメインのEnterprise Managerにログインします。 たとえば、http://
host
:
port
/em
などです。
Enterprise Managerで、ナビゲーション・ツリーの「SOA」フォルダを開いて、デプロイされた「SendEmailWithAttachmentsProj」コンポジット・アプリケーションをクリックします。 「テスト」ボタンをクリックして、テスト・クライアント・ページを起動します。
「引数を入力」セクションでは、SendEmailWithAttachmentsProjを起動するための入力値が提供されます。
次の値を入力します。
to: weblogic(ユーザー)
subject: 通知テスト(件名)
body: メッセージ・コンテンツ
attachmentName: 拡張子も含めた添付ファイルの名前
attachmentMimeType: たとえば、image/gif
PDF、DOC、GIF、JPEGなどのファイルを送信する場合、attachmentMimeTypeエントリには、次の値を使用できます。
file-name.doc – attachmentMimeType: application/msword
file-name.pdf – attachmentMimeType: application/pdf
file-name.jpg – attachmentMimeType: image/jpeg
file-name.gif – attachmentMimeType: image/gif
attachmentURI: 添付ファイルのURI
「Webサービスのテスト」をクリックします。
次の手順を実行してサンプルを新規に作成すると、SOAコンポジット・アプリケーションにメッセージを追加して、ユーザー・メッセージング・プリファレンスを使用する方法を学習できます。
Open Oracle JDe1veloper 11gを開きます。
「ファイル」→「新規」→「アプリケーション」→「SOAアプリケーション」の順に選択して、新規アプリケーションを作成します。 「OK」をクリックします。
「アプリケーション名」を入力し、「次へ」をクリックします(図I-23)。
プロジェクトの名前を入力し、「次へ」をクリックします(図I-24)。
コンポジット・テンプレートとして、「BPELを使用するコンポジット」を選択します(図I-25)。 「終了」をクリックします。
「BPELプロセスの作成」ダイアログで、BPELプロセス名としてSendEmailWithAttachments
と入力します(図I-26)。 「OK」をクリックします。
「SOAPサービスとして公開」が選択されていることを確認します。 「OK」をクリックします。
これで、空のデフォルトBPELアプリケーションが作成されました。
「Oracle JDeveloper」メイン・ウィンドウの「Composite.xml」タブの下に、次のようなサンプル・アプリケーションのコンポーネントが表示されます。
左のボックスは、アプリケーションを初期化するために使用するWebサービス・クライアントの定義です。
中央のボックスは、メッセージを作成して書式設定し、メッセージ・サービスをコールするBPELプロセスです。
注意: User Notification BPELプロセスの作成時にメッセージ送信に使用するメッセージ・サービス・リソースは、後で作成します(手順13〜19)。 |
「アプリケーション・ナビゲータ」の「xsd」フォルダを開き、「SendEmailWithAttachments.xsd」をダブルクリックして開きます(図I-27)。
「ソース」タブをクリックします(図I-27)。
このBPELアプリケーションの入力に対して次の変更を行います。
プロジェクトの「アプリケーション・ナビゲータ」の「xsd」フォルダ内に生成されたファイルSendEmailWithAttachments.xsdには、次の要素定義がデフォルトで作成されます。
<element name="process"> <complexType> <sequence> <element name="input" type="string"/> </sequence> </complexType> </element>
「ソース」タブを選択し、前述の行を次の内容で置換します。
<element name="process"> <complexType> <sequence> <element name="to" type="string"/> <element name="subject" type="string"/> <element name="body" type="string"/> <element name="attachmentName" type="string"/> <element name="attachmentMimeType" type="string"/> <element name="attachmentURI" type="string"/> </sequence> </complexType> </element>
このxsd要素は、BPELプロセスの入力を定義します。
プロジェクトを保存します。
SendEmailWithAttachments.bpelのエディタ画面を選択します。
「コンポーネント・パレット」にあるBPELアクティビティおよびコンポーネントからemailアクティビティを、receiveInputアクティビティとcallbackClientアクティビティの間にドラッグ・アンド・ドロップします(図I-28)。
「Emailの編集」ウィンドウでは、「送信元アカウント」を「Default」のままにします。
「To」に対して式を作成するには、「式ビルダー」(2番目のアイコン、図I-30)を選択して、次の手順を実行します。
関数のドロップダウン・リストから「Identity Service Functions」を選択します。
getUserProperty()関数を選択して「式に挿入」を選択します。
「BPEL変数」で、「変数」→「プロセス」→「変数」→「inputVariable」→「payload」→「client:process」→「client:to」の順に選択します。
「式に挿入」をクリックします。
文字列mail
を手動で入力します。
カッコを適切に修正します。
「OK」をクリックします。
この式(図I-30)は、Webサービスからデータを取得し、そのデータをローカルSOAユーザーのビジネス電子メールにマップします。
式は、次のように表示されます。
ids:getUserProperty( bpws:getVariableData('inputVariable', 'payload', '/client:process/client:to'), 'mail')
「件名」に対して式ビルダーを選択します。 「関数」から「getVariableData」を選択し、「式に挿入」をクリックします。
図I-31に、件名に対する式ビルダーを示します。
式は、次のように表示されます。
bpws:getVariableData( 'inputVariable', 'payload','/client:process/client:subject')
「本文」に対して式ビルダーを選択し、図I-32に示すような式を設定します。
式は、次のように表示されます。
bpws:getVariableData('inputVariable','payload','/client:process/client:body')
「Emailの編集」ダイアログ(図I-33)で、添付ファイル付きマルチパート・メッセージ・ボックスが選択されている必要があります。
電子メールに複数のパートがある場合、添付ファイルの件数には、前述のウィザードで設定した本体が含まれます。前述のウィザードで指定した本体は、最初の本体部分として設定されます。 たとえば、1つの添付ファイルがあるマルチパート・メールを表現するには、本体部分の数として、2
を入力します。 添付ファイルが1つある場合は、本体部分の数として、1
を入力します。
添付ファイルを次のように設定します。
各本体部分には、「MimeType」、「BodyPartName」、「ContentBody」という3つの属性があります。デフォルトでは、ウィザードによって、デフォルトの名前、MIMEタイプおよび各添付ファイルのコンテンツが生成されます。 これらの本体部分の割当ては、適切なデータを設定するために変更する必要があります。変更するには、通知スコープ内のassignアクティビティのコピー・ルールを変更します。 このコピー・ルール(「コピー操作」タブで指定)は、割当てごとに次の順序でグループ化されます(copy-to
コンストラクトもリストされます)。
MimeType - <to variable="varNotificationReq" part="EmailPayload" query="/EmailPayload/ns1:Content/ns1:ContentBody/ns1:MultiPart/ns1:BodyPart[2]/ ns1:MimeType"/> Name - <to variable="varNotificationReq" part="EmailPayload" query="/EmailPayload/ns1:Content/ns1:ContentBody/ns1:MultiPart/ns1:BodyPart[2]/ ns1:BodyPartName"/> Contents - <to variable="varNotificationReq" part="EmailPayload" query="/EmailPayload/ns1:Content/ns1:ContentBody/ns1:MultiPart/ns1:BodyPart[2]/ ns1:ContentBody"/>
プラス記号アイコンを選択して、Emailノードを展開します(図I-34)。
EmailParamAssignノードをダブルクリックします(図I-35)。
EmailParamAssignノードで変更(XPath変数の編集など)を行った場合は、変更ごとに、「ファイル」メニューから「すべて保存」を実行してください。これによって、変更内容が.bpelファイルに確実に反映されます。
2番目の本体部分(最初の本体部分はウィザード内に設定されているコンテンツ)のMIMEタイプを編集するには、その本体部分をダブルクリックして、MimeTypeで終了している2番目の本体部分の変数を選択します(図I-36)。
XPathを次のように編集します(図I-37)。
From: /client:process/client:attachmentMimeType, To: /EmailPayload/ns1:Content/ns1:ContentBody/ns1:MultiPart/ ns1:BodyPart[2]/ns1:MimeType
プロジェクトを保存します。
2番目の添付ファイルの添付ファイル名を編集するには、その添付ファイルをダブルクリックして、BodyPartNameで終了している2番目の本体部分の変数を選択します(図I-38)。
XPathを次のように編集します。
From: /client:process/client:attachmentName To: /EmailPayload/ns1:Content/ns1:ContentBody/ns1:MultiPart /ns1:BodyPart[2]/ns1:BodyPartName
プロジェクトを保存します。
2番目の添付ファイルの添付コンテンツを編集するには、その添付ファイルをダブルクリックして、ContentBodyで終了している2番目の本体部分の変数を選択します(図I-40)。
XPathを次のように編集します(図I-41)。
From: ora:readFile(bpws:getVariableData('inputVariable','payload','/client: process/client:attachmentURI')) To:/EmailPayload/ns1:Content/ns1:ContentBody/ns1:MultiPart/ ns1:BodyPart[2]/ns1:ContentBody
ora:readFile()
XPath関数は、「BPEL Xpath Extension Functions」の下にあります。
「コピー操作の編集」ダイアログで「OK」をクリックします。
assignアクティビティで「OK」をクリックします。プロジェクトを保存します。
プロセスのモデル化が終了しました。 この手順にある情報は、添付ファイル付き通知をSOAコンポジット・アプリケーションに追加する際に使用できます。これで、I.2.3項「事前作成されたサンプルの実行」で説明されているように、アプリケーションをデプロイして実行できます。
次の手順を実行し、新規アプリケーション・サーバー接続を作成します。
プロジェクトを右クリックし、「新規」→「接続」→「アプリケーション・サーバー接続」の順に選択して、新規アプリケーション・サーバー接続を作成します(図I-43)。
接続にSOA_server
という名前を付けて、「次へ」をクリックします(図I-44)。
「接続タイプ」に「WebLogic 10.3」を選択します。
認証情報を入力します。 ユーザー名の一般的な値はweblogic
です。
「接続」ダイアログで、SOA管理サーバーのホスト名、ポートおよびSSLポートを入力し、WLSドメインのドメイン名を入力します。
「次へ」をクリックします。
「テスト」ダイアログで、「接続のテスト」をクリックします。
メッセージSuccess!
が表示されていることを確認します。
アプリケーション・サーバー接続が作成されました。