この付録では、Oracle WebCenter Content用にBpelIngetrationコンポーネントをインストールして構成する方法と、Business Process Execution Language (BPEL)サーバー上でデプロイされたプロセスを開始するようにOracle WebCenter Content Serverのワークフローを構成する方法について説明します。
ここで説明する項目は、次のとおりです。
BpelIngetrationコンポーネントは、コンテンツ・サーバーのワークフロー内からBusiness Process Execution Language (BPEL)プロセス・マネージャと対話する機能を追加します。管理者として、BPELサーバー上にデプロイされたプロセスを開始するようにコンテンツ・サーバー・ワークフローを構成できます。
この項では、次のトピックについて説明します。
BpelIngetrationコンポーネントの最低限のハードウェア要件は、コンテンツ・サーバーおよびOracle BPEL Process Managerの要件と同じです。
この項では、コンテンツ・サーバーおよびBPEL Process Managerの要件を指定します。
Oracle Content Server: コンテンツ・サーバーのリリース11g以上が、ターゲット・コンピュータで正しくインストールされて実行されている必要があります。
Oracle BPEL Process Manager: Oracle Service-Oriented Architecture (SOA) Suiteのリリース11g以上が、ターゲット・コンピュータで正しくインストールされて実行されている必要があります。
BpelIntegrationコンポーネントは、WebCenter Contentリリース11gに付属しています。
次の手順では、リリース・バージョンのOracle SOA Suiteがすでにインストールされていることを前提としています。
この項では、次の手順について説明します。
Oracle SOA Suiteとの統合を有効化するようコンテンツ・サーバーを設定するには、現在次の2つの方法があります。
シナリオ1では、Oracle SOA Suiteによって拡張されたドメインにWebCenter Contentをインストールします。この場合、すべての部分を1つのドメインに特定の順序でインストールします。Oracle SOA Suiteライブラリはすべてに対して使用可能で、クラス・パスはOracle SOA Suiteライブラリを含むよう拡張されています。
シナリオ2では、Oracle SOA Suiteで使用される必要なライブラリを手動でコピーして、Oracle WebLogic Server内部のWebCenter Contentを起動するために使用するクラスパスを追加します。
2つのシナリオの相違点は、Oracle SOA Suiteのインストールによってクラスパスが自動的に追加されますが、シナリオ2ではこの処理を手動で行う点です。将来、WebCenter Contentには適切なOracle SOA Suiteライブラリが同梱される予定です。
Oracle SOA Suiteによって拡張されたドメインにWebCenter Contentをインストールする手順は次のとおりです。
Oracle SOA Suite用の新規ドメインを作成します。
Oracle Business Activity Monitoring (BAM)およびOracle Enterprise Management (EM)で、Oracle SOA Suiteドメインを拡張します。
WebCenter ContentでOracle SOA Suiteを拡張します。
setDomainEnv
変数にOracle SOA Suite固有のライブラリが移入されていることを確認できます。特に、クラスパスにsoa-infra-mgmt.jar
が指定されていることを確認します。
Oracle SOA Suiteによって拡張されていないWebCenter Contentドメインを更新する手順は次のとおりです。
/soa
ディレクトリを、Oracle SOA SuiteのOracleホームからWebCenter ContentのOracleホームにコピーします。
WebCenter Contentを介して接続しているOracle SOA SuiteサーバーのOracle SOA Suite 11gホーム・ディレクトリを見つけます。soa
という名前のディレクトリがあります。このディレクトリをWebCenter Contentホーム・ディレクトリにコピーして、最上位ディレクトリに配置します(つまり、SOA_ORACLE_HOME
/soa
をWC_CONTENT_ORACLE_HOME
/soa
にコピーします)。
オペレーティング・システムに応じて、setDomanEnv.cmd
ファイルまたはsetDomainEnv.sh
ファイルを編集し、WebCenter Contentドメインのクラスパスを追加します。
set POST_CLASSPATH=%ORACLE_HOME%\soa\modules\oracle.soa.mgmt_11.1.1\soa-infra-mgmt.jar;%POST_CLASSPATH%
両方のシナリオの最終手順は、BpelIngetrationコンポーネントを有効化してサーバーを起動することです。
Oracle SOA SuiteインスタンスがWebCenter Content以外の別のサーバーで実行中の場合は、次のセキュリティ・エラーが表示されることがあります。
vax.xml.ws.WebServiceException: java.lang.SecurityException: [Security:090398]Invalid Subject: principals=[weblogic, Administrators] at com.sun.xml.ws.client.dispatch.DispatchImpl.doInvoke(DispatchImpl.java:209) at com.sun.xml.ws.client.dispatch.DispatchImpl.invoke(DispatchImpl.java:216)
このエラーが発生した場合は、両方のサーバーに対するドメイン間のセキュリティを有効にする必要があります。次の指示に従ってください。
User will need to setup Trusted Domain on both WLS domain. Goto WLS Console->Respected Domainssoainfra or bam ->Security 1. Make sure "Cross Domain Security Enabled" 2. Click on Save 3. Expand Advanced part of setting 4. Make sure you supplement the Credential and Confirm Credential fields. 5. Click on Save Repeat for the same for the other WLS domain. Finally, Restart both WLS Servers.
統合コンポーネントを有効化する手順は次のとおりです。
コンテンツ・サーバー・インスタンスにシステム管理者としてログインします。
「管理」→「管理サーバー」→「コンポーネント・マネージャ」を選択します。
ページ上部の段落で、「拡張コンポーネント・マネージャ」リンクをクリックします。
「有効なコンポーネント」と「無効なコンポーネント」の2つのリストが表示されます。「無効なコンポーネント」リストの下位にある「BpelIntegration」を選択します。
「有効化」をクリックして、リスト下位から上位にこの項目を移動します。
ページの下部で、「更新」をクリックします。
Oracle WebLogic Server管理コンソールにログインします。
コンソールの左側で、「ドメイン構造」、「環境」、「サーバー」の順にクリックします。「サーバーのサマリー」ページが表示されます。
「制御」タブからサーバーを選択して、「SSLの再起動」をクリックします。
この項では、次のトピックについて説明します。
統合では、BPELクライアント・ライブラリを使用してOracle BPEL Process Managerと通信します。プロセス構成では、接続パラメータ、BPELプロセスおよびBPEL操作を識別する必要があります。また、プロセス構成では、ドキュメント・メタデータ・フィールド、およびBPEL操作に渡されるパラメータに割り当てられたリテラル値も識別されます。
プロセス構成は、data/orabpel
ディレクトリに配置されるファイル内に存在しています。これらのファイルは手動で編集できます。ただし、統合コンポーネントでは、この作業を簡単に行うためのページが提供されています。最初のページは「接続の構成」ページです。「接続の構成」ページから、定義済の接続構成を表示したり、接続構成を追加または削除できます。
「接続の構成」ページにアクセスするには、「管理」→「Oracle BPEL管理」を選択します。「接続の構成」をクリックします。
このページの右上には「接続」メニューがあります。このメニューを使用して新規接続を追加します。各接続には「アクション」メニューがあり、次の選択肢が示されます。
要素 | 説明 |
---|---|
構成情報 |
接続情報の詳細を表示できます。 |
構成のテスト |
接続構成のJNDIプロパティをテストできます。 |
構成の削除 |
接続構成を削除できます。 |
接続構成を追加するには、「接続の構成」ページの右上にある「接続」メニューから「接続の追加」を選択します。「構成の追加」ページが開きます。
次の表では、このページのフィールドが定義されています。
要素 | 説明 |
---|---|
構成ID |
接続構成を識別するために使用します。一意である必要があります。 |
説明 |
接続構成について説明するために使用します。 |
ドメイン |
BPELプロセス・ドメイン識別子。 |
初期コンテキスト・ファクトリ |
BPEL Process Managerに接続するために使用する初期コンテキスト・ファクトリ。この値は、初期コンテキストを作成するファクトリ・クラスの完全修飾クラス名である必要があります(たとえば、BPELを実行中のOracle Application Serverに接続する場合は、 |
プロバイダURL |
BPEL Process Managerの場所。この値にはURL文字列が含まれている必要があります(たとえば、BPELを実行中のOracle Application Serverに接続する場合は、 |
セキュリティ・プリンシパル |
BPEL Process Managerの呼出し側を認証するためのプリンシパルの識別情報。この値には、BPEL Process Managerで登録されているユーザーのユーザー識別子が含まれている必要があります。 |
セキュリティ資格証明 |
BPEL Process Managerの呼出し側を認証するためのプリンシパルの資格証明。この値には、セキュリティ・プリンシパルとして入力されているユーザー識別子のパスワードが含まれている必要があります。 |
セキュリティ資格証明の確認 |
セキュリティ資格証明パスワードを確認するために使用されます。 |
接続の構成を完了すると、「プロセスの構成」ページでプロセスを定義して構成できます。プロセス構成を変更するには、「アクション」メニューを使用します。
注意: Oracle WebCenter Contentは、BPELプロセスと統合したWebCenter Contentに対するSOAPリクエストで単一のネームスペースのみをサポートします。 |
「プロセスの構成」ページにアクセスするには、「管理」→「Oracle BPEL管理」を選択します。「プロセスの構成」をクリックします。
要素 | 説明 |
---|---|
プロセスの追加 |
さらにプロセス構成を追加できます。 |
構成情報 |
プロセス構成の「構成情報」ページを開きます。 |
プロセスの更新 |
BPELプロセスおよび操作を編集できます。 |
ペイロードの更新 |
コンテンツ・アイテム・フィールドからペイロード・プロパティへのマッピングを編集できます。 |
構成の削除 |
プロセス構成を削除できます。 |
接続のテスト |
接続構成のJNDIプロパティをテストできます。 |
プロセス構成を作成した後、プロセスのプロパティとペイロード・マッピングを定義する必要があります。プロセス・プロパティの編集方法の詳細は、「プロセスのプロパティ」を参照してください。フィールド・マッピングの編集方法の詳細は、「ペイロード・マッピング」を参照してください。
プロセスのプロパティでは、新規プロセスを開始するために使用されるBPELプロセスとBPEL操作が識別されます。これらのプロパティは「BPELプロセスの更新」ページで編集できます。
プロセスのプロパティを編集するには、「アクション」メニューから「プロセスの更新…」を選択します。
要素 | 説明 |
---|---|
BPELプロセス |
デプロイされたアクティブなBPELプロセスのプロセス識別子。各アクティブ・プロセスは、プロセス名とプロセス・リビジョンとともにリストされます。各プロセスのデフォルトのリビジョンは、アスタリスク(*)で識別されます。 |
BPEL操作 |
プロセスを開始する操作の名前。 |
ペイロード・マッピングでは、プロセスを開始するためにコンテンツ・サーバーのフィールドとリテラル値をペイロード・プロパティにマッピングする方法を定義します。
ペイロード・マッピングを編集するには、「アクション」メニューから「ペイロードの更新」をクリックします。
「BPELプロセスの更新: ペイロード・マッピング」ページに3つの列を持つフォームが表示されます。次の表では、各列が定義されています。
要素 | 説明 |
---|---|
フィールド |
値がマップされるペイロード要素の名前。 |
タイプ |
ペイロード要素のタイプ。これは、値オプションのリストに表示されるオプションをフィルタするために使用されます。複合タイプには他のタイプが含まれます。タイプが要素の配列である場合、値マッピングはコンポーネントによって解析されるカンマ区切りリストである可能性があります。 |
マッピング |
コンテンツ・サーバー・フィールドの名前を識別するために使用します。これらのフィールドは、標準のコンテンツ・アイテム・フィールド(dID、dDocName、dDocTitleなど)、カスタム情報フィールドおよび一部の特別なシステム・フィールドです。考えられる特別なフィールドは、次のとおりです。
|
図A-4に、フィールド・マッピングの例を示します。
このページでは、次のマッピングを行うことができます。
taskIdペイロード・フィールドには、コンテンツのdIDの値が割り当てられています。
「タイトル」ペイロード・フィールドには、コンテンツのタイトルの値が割り当てられています。
「作成者」ペイロード・フィールドには、sysadmin
のリテラル値が割り当てられています。
WebCenter ContentとBPELを統合するには、BPELコンポジットのサービスにbinding.adf
エントリが存在している必要があります。このバインディングを使用すると、WebCenter ContentでBPELをサービスとして起動し、後からOracle SOA Suiteにステータスを問い合せるための対話IDをBPELに設定できます。
したがって、BPELコンポジットを作成してWebCenter Contentで使用できるようにする場合、次の手順を実行する必要があります。
JDeveloperでコンポジットを開きます。
composite.xml
ファイルをソース・モードで開きます。
サービス定義を検索します。
サービス定義に次の行を追加します(serviceName
は意味のわかる名前にして、registryName
は空にする必要があります)。
<binding.adf serviceName="YourUniqueServiceName" registryName=""/>
考えられるコンポジット例は次のようになります。
<service name="receive" ui:wsdlLocation="receive.wsdl"> <interface.wsdl interface="http://example.com/sca/soapservice/aug11_app_2/myThirdComposite/receive#wsdl.interface(execute_ptt)"/> <binding.ws port="http://example.com/sca/soapservice/aug11_app_2/myThirdComposite/receive#wsdl.endpoint(receive/execute_pt)"/> <binding.adf registryName="" serviceName="my3rdBPELService"/> </service>
これは、JDeveloperウィジェットを使用して行うこともできますが、この場合、空でないregistryName
が必要になります。ADFを含まないコンポジットのregistryName
は空であり、ここで指定されているコンポジット例では、レジストリ名は空である必要があります。空でない場合は、標準のOracle SOA Suiteを使用してコンポジットを起動した後、APIコールが正しく機能しません。
この項では、次のトピックについて説明します。
BPEL Process Managerと統合するには、最初に、コンテンツ・サーバー・ワークフローを構成する必要があります。ワークフローを構成するには、数多くの方法が考えられます。次のタスクを実行して、BPEL Process Managerと統合する最も基本的なタイプのワークフローを構成します。
注意: Oracle WebCenter Contentは、BPELプロセスと統合したWebCenter Contentに対するSOAPリクエストで単一のネームスペースのみをサポートします。 |
ワークフロー管理アプレットを開始します。
新しい基準ワークフローを追加します。この例では、ワークフロー名はorabpeltest
です。
ワークフローにステップを追加します。この例では、ステップ名としてinitiateprocess
を使用します。
ステップ・ユーザーを追加します。
「終了条件」タブを選択して、少なくとも1人のレビューアを選択します。(この設定は任意ですが、このインスタンスでは、BPELプロセスの開始後、この設定によりコンテンツ・アイテムはこのワークフロー・ステップ内に残されます。)
終了条件を追加するには、「追加終了条件を使用」チェック・ボックスを選択して、「編集…」をクリックします。
「追加終了条件の編集」ダイアログで、「カスタム条件の式」を選択して、次のスクリプトを追加します。
wfGet("conversationId") and obIsInstanceClosed("process_3", wfGet("conversationId"))
注意: Idocスクリプト関数 |
「イベント」タブで、「開始時」イベントに対する「編集…」をクリックします。
「スクリプトの編集」ダイアログで、「カスタム」タブをクリックします。
「カスタム・スクリプトの式」チェック・ボックスをクリックして、スクリプト・ウィンドウを有効にします。
スクリプト・ウィンドウに次の行を入力します。
<$if not conversationId$> <$obConfigID="process_3"$> <$obInvokeProcess(obConfigID)$> <$endif$>
注意: コンポーネントにより、起動されたプロセスの状態を開始および判別するために使用できるIdocスクリプト関数が定義されます。 |
「OK」をクリックして、スクリプトの編集を終了します。
「OK」をクリックして、ワークフロー・ステップの編集を終了します。
ワークフローを有効化します。
コンテンツ・アイテムによりワークフローが入力され、BPELプロセスが開始されると、関連するBPELプロセスを識別するために識別子が作成されてコンパニオン・データ・ファイルに格納されます。この識別子はキーconversationId
とともに格納され、ワークフロー・ステップのイベントのカスタムIdocスクリプトを使用してコンパニオン・データから取得できます。
Idocスクリプト関数
obInvokeProcess[obConfigID]: この関数は、プロセス構成での定義に従ってプロセスを起動します。
obIsInstanceClosed[obConfigID, conversationId]: この関数は、指定された対話IDのプロセスが指定された構成に従ってクローズすると、trueを返します。クローズには、完了と取消しが含まれます。
obIsInstanceOpen[obConfigID, conversationId]: この関数は、指定された対話IDのプロセスが指定された構成に従ってオープンすると、trueを返します。
obRetrieveStatus[obConfigID, conversationId]: この関数は、プロセスに関する情報が正常に取得されるとtrueを返します。データ・バインダにはインスタンス・タイトル、監査証跡、トレースおよびメタデータに加えて、プロセス・インスタンスIDやリビジョン・タグに関する情報が含まれます。