Oracle® Fusion Middleware Oracle WebCenter Content: Imagingの管理 11g リリース1 (11.1.1) B72420-02 |
|
![]() 前 |
![]() 次 |
この項ではBusiness Process Management (BPM)に関する情報、BPMワークフローをImagingと統合する方法およびBusiness Process Execution Language (BPEL)について説明します。
BPMテクノロジはビジネス・プロセスを効果的に追跡し、調整できるアプリケーション用フレームワークです。BPMソリューションでは、プロセスおよびプロセス・フローを自動的に管理できますが、必要に応じて手動で操作することもできます。
この項の内容は次のとおりです。
BPMでは、データベースからの顧客情報の抽出を調整したり、新規顧客情報のトランザクションを管理できます。複数の関連システムでトランザクションを生成することも、ユーザーが操作を行うことなく、全体を自動的に処理することもできます。BPMを使用すると、タスクを実行する順序を定義するルールの他、責任、条件およびプロセスのその他の要素によって、複数のシステムからの情報を含むタスクを自動化できます。BPMによって、ビジネス・プロセスをより効率的に実行できるだけでなく、業績を測定して改善の機会を特定するためのツールも提供されます。BPMの利点は、プロセスを追加、削除または更新することによって、プロセスやフローで容易に変更を行える点です。
BPMを最大限に活用できるように、Oracleプロセスのソフトウェア・アプリケーション・コンポーネントはサービス指向アーキテクチャ(SOA)に準拠しています。これらのコンポーネントはWebサービスとして公開されており、BPELを使用して再利用したり、容易に統合できます。
BPELはWebサービスとのやりとりを指定するための実行可能言語です。BPELはWebサービス相互作用モデルを拡張し、ビジネス・トランザクションとユーザーによる操作のサポートを実現します。BPELは、複数の同期および非同期サービスをコラボレーティブなトランザクション・プロセス・フローに構成するための明確な標準として台頭しつつあります。SQLがデータを管理するものであるのに対して、BPELはビジネス・プロセスを管理するものです。
BPELを使用して、他のアプリケーションで使用可能なサービスを定義できます。プロセスを開始するために必要なデータの定義から、ユーザーがプロセスを操作するために使用可能なフォームまで、プロセスのあらゆる要素を定義します。これらのコンポーネントは1つのコンポジットにバンドルされ、ワークフロー・サーバーにデプロイされます。
ワークフロー・プロセスをImagingと統合するには、次の手順を実行する必要があります。
ワークフロー接続を作成します(第7.2項「ワークフロー接続の作成」を参照)。
ワークフロー・プロセスが定義されたアプリケーションを作成します(第4.2項「アプリケーションの作成」を参照)。
Imagingユーザー・インタフェースでアプリケーションを作成するプロセスの一環として、ワークフロー・プロパティを構成します(第10.2.1項「ワークフロー・プロパティの構成」を参照)。
ワークフロー・プロセスは、アプリケーションの作成時にアプリケーションに追加することも、既存のアプリケーションを変更して追加することもできます。ワークフロー・プロセスの追加は、アプリケーション・ワークフロー構成ページから始めます。ワークフローを使用するようにアプリケーションを構成する前に、ワークフロー・サーバーへの接続が作成されており、必要なワークフロー・コンポーネントがサーバーで使用可能であることを確認する必要があります。ワークフロー・サーバー接続には、名前、プロトコル、サーバーおよびポートが含まれている必要があります(例: name=t3://sta00319:7001)。その後、アプリケーションを作成する際に、ワークフロー・サーバー・プロパティ・ページでワークフロー接続を選択します。Imagingでは、サーバーを認証して、デプロイされたワークフロー・コンポーネントを検出する必要があります。
アプリケーションのサーバー接続を選択すると、ワークフロー・コンポーネントのリストが特定されます。1つのワークフロー・コンポーネントで様々なサービスが提供される場合があるため、ワークフロー・コンポーネント・プロパティ・ページで、使用するサービスを指定する必要があります。サービスは複数の方法で起動できるため、プロセスの開始に使用する操作も指定する必要があります。この操作は非同期とみなされ、ワークフローへの一方向の通信です。Imagingは、それを使用してプロセス・インスタンスを開始し、応答を待機しません。ビジネス・プロセスが完了するまでに数時間または数日かかる場合があります。
操作を選択すると、プロセスを開始するために提供する必要があるデータがImagingで認識されます。これをペイロードと呼びます。ワークフローはWebサービスを使用するため、ペイロードは、サービスを定義するWeb Services Description Language (WSDL)に含まれているデータを表します。このデータは、定義されたデータ型を含むスキーマとして表されます。ワークフロー・ペイロード・プロパティ・ページには、ペイロード・タイプと、マッピング関数と呼ばれる使用可能な値のリストが表示されます。ワークフロー・ペイロード・マッピング関数は、特定の型(テキスト、数値、日付など)の値を返します。ペイロード値が日付を受け入れる場合、日付を返すマッピング関数が表示されます。テキスト関数が日付に正しく評価されない場合は、使用可能な関数のリストから除外されます。ペイロード値が文字列を受け入れる場合、すべてをテキストとして表すことができるため、すべてのマッピング関数が使用可能です。
ワークフロー・ペイロード・プロパティ・ページを使用して、Imagingアプリケーションのメタデータ・フィールドをワークフロー・プロセス・サービス・ペイロード内の要素にマップします。あらかじめ定義されたマッピング関数が、ペイロード内のシンプルな型付き要素と関連付けられます。実行時に、ドキュメントが作成され、ドキュメントのワークフロー・プロセス・インスタンスを作成するためにワークフロー・エージェントがトリガーされると、ドキュメント内のメタデータをペイロード要素値に変換するために各要素のマッピング関数が評価されます。使用可能なマッピング関数によって、システム・プロパティやアプリケーションで定義されたフィールド値など、ドキュメントの未加工のメタデータが提供される場合があります。フォーマット値という名前の特殊なマッピング関数もあり、任意の値をマップできます。このフォーマットは、定数値および他のマッピング関数からの値のカスタム連結です。
通常、マッピング関数は型に固有で、ペイロード要素のスキーマ・タイプと一致している必要があります。つまり、ペイロードの数値、小数および日付データ型は、これらの型を返すマッピング関数のみとマップできます。ペイロードの文字列データ型は通常、任意のマッピング関数とマップできます。また、フォーマット値マッピング関数は、任意のペイロード要素にマップできます。ただし、厳密に言うと、フォーマット値の戻り型は文字列なので、戻り値がペイロードのスキーマ・タイプの有効な文字列表現であることを慎重に確認する必要があります。
次の表は、使用可能な具体的なペイロードのBPELスキーマ・タイプおよび互換性のあるマッピング関数のリストです。
BPELスキーマ・タイプ | マッピング関数 |
---|---|
string、normalizedString、token |
すべての関数 すべてのフィールド値 ドキュメントURLパス |
anyType |
すべての関数 すべてのフィールド値 ドキュメントURLパス |
anyUri |
ドキュメントURL ドキュメントURLルート フォーマット値 |
byte unsignedByte integer positiveInteger negativeInteger long unsignedLong short unsignedShort 注意: Imagingでは、整数の制限がある型を使用して数値を保存します。下限があるスキーマ要素へのマッピングは可能ですが、マッピングの実行時にエラーが発生したり、データが失われることがあります。 |
アプリケーションID バッチID ドキュメント・サイズ バージョン フォーマット値 数値フィールド値 |
time date dateTime |
作成日 変更日 ボリュームの日付 フォーマット値 日付フィールド値 |
Boolean |
True False ブール・フィールド値 |
サポートするコンテンツ |
フォーマット値 |
他のすべてのスキーマ・タイプ |
フォーマット値 |
次の表は、使用可能な具体的なペイロードのBPMスキーマ・タイプおよび互換性のあるマッピング関数のリストです。
BPM引数 | BPMスキーマ・タイプ | マッピング関数 |
---|---|---|
文字列 |
string |
すべての関数 すべてのフィールド値 |
整数 |
int 注意: Imagingでは、整数の制限がある型を使用して数値を保存します。下限があるスキーマ要素へのマッピングは可能ですが、マッピングの実行時にエラーが発生したり、データが失われることがあります。 |
アプリケーションID バッチID ドキュメント・サイズ バージョン フォーマット値 数値フィールド値 |
ブール |
boolean |
True False ブール・フィールド値 |
実数 |
double |
フォーマット値 |
小数 |
decimal |
フォーマット値 小数フィールド値 |
時刻 |
dateTime |
作成日 変更日 ボリュームの日付 フォーマット値 日付フィールド値 |
間隔 |
duration |
フォーマット値 |
バイナリ |
base64binary |
フォーマット値 |
文字列ベースの型以外の型のフォーマット値は、スキーマ・タイプの有効な文字列表現を返す必要があります。また、他にも多数の有効なXSDスキーマ・タイプがペイロードに存在する可能性があります。フォーマット値は、前述の表に明記されていない型をサポートする唯一のマッピング関数です。他のフォーマット値の用途と同様に、アプリケーションおよびワークフロー・プロセスの実装者は、フォーマット文字列が互換性のある型を返すことを確認する必要があります。実際に返される値は実行時にのみ認識されるため、Imagingでは、そのような構成に対する検証を行うことはできません。可能なかぎり、前述の表に記載されている既知の型をペイロードで使用することをお薦めします。
minOccursの注釈が付いているワークフロー・ペイロード要素は、Imagingアプリケーションのフィールドをマップする際に必須として定義されています。これらの要素は、Imagingユーザー・インタフェースのワークフロー・ペイロード・プロパティ・ページでは(*)記号で示されます。
minOccurs=1のペイロード要素は必須として解釈され、Imagingにはそれらのマッピングが必要です。この場合の必須は、ペイロードでその要素を提供する必要がありますが、値は必要でないことを意味します。minOccurs=1のペイロード要素にマップされている場合でも、ペイロード要素にマップされたフィールド値がNULLである可能性があります。この場合、空の要素が渡されます。ワークフロー・プロセスにおいて、値を指定する必要があるという意味で要素を必須にする場合は、その要素にマップされるアプリケーション・フィールドの値をアプリケーション定義で必須として設定することで、必ず値が指定されるようにすることができます。ワークフロー・ペイロードのマッピングでこれを強制することはできません。
minOccurs=0のペイロード要素はオプションとして解釈され、要素のマッピングがない場合、ペイロードで提供する必要はありません。つまり、マッピングの指定もオプションです。マッピングが指定されていない場合、そのノードは、ワークフロー・サーバーに送信されるペイロードに含まれません。ただし、マッピングが指定されている場合、そのノードは常にペイロードに含まれます。マッピング関数によって返される値が空の場合も同様です。その場合は、空の要素ノードが渡されます。
注意: ワークフロー・ペイロードでは、minOccursまたはmaxOccurs属性が1より大きい型はサポートされません。 |
ペイロード・スキーマの日付または時刻ベースの型(time、date、dateTime)にマップするマッピング関数の場合、次のように、ISO 8601準拠のフォーマットに値がエンコードされます。
スキーマ・タイプ | フォーマット | 例 |
---|---|---|
time |
hh:mm:ss±tz |
12:45:15-05:00 |
date |
yyyy-MM-dd |
2009-11-09 |
datetime |
yyyy-MM-ddThh:mm:ss±tz |
2009-11-09T12:45:15-05:00 |
表のように、時刻を含む型では、時間および分(hh:mm)のオフセットとして正/負のタイムゾーン指定子が使用されます。
ドキュメント・プロパティ関数は、ドキュメントのシステム・プロパティの値をペイロード要素に割り当てます。たとえば、「ドキュメントID」、「アプリケーション名」、「作成日」などです。
フィールド値関数は、ドキュメント内のアプリケーション・フィールドの値をペイロード要素に割り当てます。厳密に言うと、フィールド値は、パラメータとしてフィールドの名前を受け取る関数の名前ですが、ワークフロー・ペイロード・プロパティ・ページでは、フィールドの名前でリストされたマッピング関数選択ボックス内の項目としてアプリケーションのそれぞれのフィールド定義が示されます。すべてのマッピング関数と同様に、フィールド定義の型を使用して、ペイロード要素のスキーマ・タイプと互換性があるかどうかが確認されます。互換性があるフィールド値のみが、特定のペイロード要素の横にオプションとして表示されます。
フォーマット値は、任意の文字列値をペイロード要素に割り当てることができる特殊なマッピング関数です。フォーマット値では、実行時に指定される変数として、他の複数のマッピング関数の値をフォーマット文字列値に埋め込むこともできます。
ワークフロー・ペイロード・プロパティ・ページでフォーマット値をペイロード項目に割り当てるには、マッピング関数として「フォーマット値」を選択し、選択ボックスの横に表示される「フォーマット値の編集」ボタンをクリックします。表示される「フォーマット値の編集」ダイアログの下部で、フォーマット値を入力します。上部の選択リストには、編集ボックスに挿入できる選択可能なマッピング関数が表示されます。(項目は、現在入力されているテキストの末尾に追加されます。)
フォーマット値の文字列を手動で作成する際、マッピング関数の変数は、大カッコで囲まれたマッピング関数名([DocUrl]など)を使用して、値内にエンコードされます。フィールド値をコード化するには、マッピング関数(「フィールド値」)、コロンおよび目的のフィールド名をすべて大カッコで囲んで指定します。
たとえば、カスタムURLを格納する必要があるデータ変数がワークフロー・プロセスにあるとします。カスタムURLには、ドキュメントのメタデータで使用可能なcustomerIdと、ドキュメントの一意識別子を含める必要があります。URLのルートはハードコードされています。この例は、フォーマット値内に次のようにコード化できます。
http://example.com/svc.jspx?custId=[FieldValue:custId]&docId=[DocId]
サポートするコンテンツ関数は、ドキュメントに関連付けられているサポートするコンテンツ・データをワークフロー・プロセスのペイロード要素にマップします。サポートするコンテンツは、プロセス・ペイロード内の任意のcomplexノードにマップできます。サポートするコンテンツ関数をマップする場合、サポートするコンテンツ・キーとXPathパラメータの両方が必要です。サポートするコンテンツ・キーは、XMLコンテンツをドキュメントと関連付けるために使用され、30文字に制限されています。XPath式は、ペイロード要素にマップされるXMLコンテンツ内のノードを特定し、224文字に制限されています。
実行時にcomplexペイロード要素にマップすると、サポートするコンテンツは、サポートするコンテンツ要素を単にVerbatimにコピーするのではなく、complexペイロード要素への要素のマッピングとして処理されます。ペイロード要素内の各要素は、1つずつ処理されます。それぞれの要素について、XPathパラメータで特定されたノードから始めて、サポートするコンテンツ内で一致する要素が検索されます。一致する要素が見つかると、XML内の一致する要素の値がペイロード要素に割り当てられます。サポートするコンテンツの処理によって、サポートするコンテンツのXMLとペイロードのXML間の名前空間の競合の問題が回避されます。
サポートするコンテンツをペイロード内のあらゆるタイプのノードに割り当てることもできます。このようにマップした場合、XPathで特定されたサポートするコンテンツがanyType要素にコピーされます。このように使用する場合、名前空間がペイロード内で正しく定義されないことがあるため、サポートするコンテンツでは名前空間接頭辞を使用しないでください。
通常、ワークフロー・ペイロードのマッピングでは、複雑な型のネストを含むペイロードを処理できます。ただし、処理できない標準のXSD構成がいくつかあります。次のいずれかを含むワークフロー・プロセス・サービス・ペイロードの定義を使用することはできません。
10を超える階層の深さ
選択要素タイプ
minOccursが1より大きいリスト要素
リスト形式の構造を含む、minOccursが0または1のペイロード定義(maxOccursが1より大きい、または無制限)を使用できますが、配列内の1つの要素へのマッピングのみがサポートされます。
ワークフロー・プロセス・サービスにサーバー側のOracle Web Services Manager (OWSM)ポリシーが適用されている場合、Imagingアプリケーションのワークフロー構成で、クライアント側のポリシーも使用するように追加のパラメータを指定する必要があります。これらの追加の構成パラメータは、通常のワークフロー・プロセス・インスタンスのペイロード・マッピングを指定するワークフロー・ペイロード・プロパティ・ページで指定します。サービスにOWSMポリシーが適用されている場合、そのポリシーが検出され、ポリシー名が記載された追加のペイロード・マッピング・セクションが表示されます。すべてのOWSMポリシーに使用可能なキーの完全なセットは、OWSM APIのoracle.wsm.security.util.SecurityConstantsクラスによって提供されています。ただし、Imagingでは完全なセットがフィルタにかけられ、使用されているサーバー・ポリシーに関連するパラメータのみが表示されます。現時点では、wss_username_tokenおよびwss11_username_token_with_message_protectionポリシーのパラメータのみが提供されています。
使用可能なパラメータは次のとおりです。
パラメータ | 説明 | ポリシー |
---|---|---|
csf.key |
ポリシーのユーザー名とパスワードを指定します。 |
wss_username_token wss11_username_token_with_message_protectionポリシー |
recipient.key.alias |
送信されるメッセージを暗号化するためのキー・ストア別名を指定します。 |
wss11_username_token_with_message_protectionポリシー |
メッセージ保護ポリシーを構成する際には、メッセージの暗号化をサポートするように、適切な資格証明と証明書も構成する必要があります。デフォルトのインストールでは、$DOMAIN_HOME/config/fmwconfigディレクトリにあるjps-config.xmlファイルで必要なキーを定義します。このファイルでは、デフォルトのキーストア・ファイルの場所も定義します。jps-config.xmlファイルは通常、fmwconfigディレクトリ内で、ファイル名default-keystore.jksを使用してこのファイルを検索するように構成されています。しかし、このファイルはデフォルトでは存在しないため、指定する必要があります。デフォルトのjps-config.xmlファイルでは、次のキーを定義します。
説明 | ポリシー |
---|---|
keystore-csf-key |
キーストア・ファイルを開くための資格証明を指定します。資格証明のパスワード部分のみが使用されます。 |
enc-csf-key |
メッセージの暗号化に使用されるキーストア内の暗号化証明書にアクセスするための資格証明を指定します。 |
sign-csf-key |
メッセージの署名に使用される証明書にアクセスするための資格証明を指定します。暗号化と署名の両方にenc-csf-keyを使用するようにjps-config.xmlファイルを構成することもできます。その場合、sign-csf-keyは必要ありませんが、定義しても問題が発生することはありません。 |
Oracle Web Services Managerのキーストア、CSFキーおよび別名を設定する方法の詳細は、Oracle Web Services Manager管理者ガイドを参照してください。
ワーク・マネージャは、多数のスレッドを1つのプロセスに割り当てる方法を制御するためのWebLogic Serverの概念です。Imagingでは、多数のスレッドを入力エージェントおよびワークフロー・エージェントに割り当てる方法を制御し、システムに対する負荷を増減するために使用されます。新規インストール時には、20個のスレッドがワークフロー・エージェントに割り当てられます。WebLogic Server (WLS)ワーク・マネージャのWorkflowAgentMaxThreadsConstraintのデフォルト設定(20)をシステム・ニーズに合わせて変更することで、WLSが入力エージェントおよびワークフロー・エージェントに提供するスレッドの数を再構成できます。1台のマシンで遅延が発生してバックログが生成されることがないように、すべてのシステムでスレッドの最大数を同等に調整する必要があります。値-1または0を指定すると、制約は無効になります。1より大きい値を指定すると、スレッドの数が指定した数に制限されます。
スレッドの設定を更新するには、WLS管理コンソールで次の手順を実行します。WebLogic Serverの詳細は、Oracle Weblogic Server Weblogic Webサービス・リファレンスを参照してください。
WebLogic Serverコンソールを開き、「デプロイメント」をクリックします。
「Imaging」デプロイメントを選択して、Imagingの詳細を表示します。
「構成」タブ、「負荷」タブの順にクリックして、「ワーク・マネージャ」リストを表示します。
「WorkflowAgent」など、調整するエージェントを選択します。
「最大スレッド数制約」を選択します。
スレッド数を新しい最大スレッド数に更新し、「保存」をクリックします。
管理対象サーバーを再起動すると、新しいスレッド数が有効になります。
資格証明ストア・フレームワーク(CSF)資格証明は、別名をキーとし、CSF内の名前付きマップ内に保存されるユーザー名/パスワードのペアです。Oracle Web Services Manager (OWSM)と統合するため、Imagingは、oracle.wsm.securityという標準のOWSM CSFマップを使用します。
資格証明を作成するには、Enterprise Manger (EM)またはWebLogic Scripting Tool (WLST)を使用します。詳細は、第7.2.2項「ワークフロー接続のCSF資格証明の構成」を参照してください。
ワークフロー・エージェントがワークフロー・サーバーに接続できなかった場合、接続が即座に3回試行されます。3回の試行がすべて失敗した場合、デプロイ済プロセスのJMSキューにメッセージが返されます。BpelInjectorQueue JMSキューには、5分間の再試行の遅延が構成されています。後続の再試行のたびに、メッセージを処理するための操作が手動で3回再試行されます。手動の再試行メカニズムと同様に、メッセージが(3回のプロセス試行について)2回、キューに返されます。3回目のメッセージ処理の試行が失敗すると、最後に受け取った例外の例外メッセージなど、ドキュメントの詳細がワークフロー・エージェントのフォルト表に書き込まれます。メッセージはキューに返されません。これによって、10分間に9回の再試行が行われます。注意: なんらかの理由で、ドキュメントの詳細をフォルト表に記録できなかった場合は、リクエストが破棄されることがないよう、メッセージがキューに返されます。
フォルト表に記録されたワークフロー・エージェントの処理の失敗は、WebLogic Scripting Tool (WLST)の診断コマンド・セットを使用して管理します。これらのコマンドにアクセスするには、Enterprise Content Managementの$ORACLE_HOME/common/binディレクトリからWLSTを実行する必要があります。また、WLSTに接続する際には、管理サーバーではなく、Imaging管理対象サーバー・インスタンスに接続する必要があります。これらのコマンドは、Imaging管理対象サーバーがオンラインになっている場合にのみ使用可能です。
WLSTで使用可能なワークフロー診断コマンドは次のとおりです。
sumIPMWorkflowFaults: 選択された日付、アプリケーションIDまたはバッチIDによってグループ化して、ワークフロー・エージェントの処理中に発生した処理の失敗をカウントします。
clearIPMWorkflowFaults: ワークフロー・エージェントの処理中に発生した処理の失敗をクリアします。
listIPMWorkflowFaults: ワークフロー・エージェントの処理中に発生した処理の失敗の詳細を表示します。
repairIPMWorkflowFaults: ワークフロー・エージェントの処理中に発生した処理の失敗を修復します。
これらのフォルトの使用および構文の詳細は、『Oracle Fusion Middleware WebLogic Scripting Tool コマンド・リファレンス』を参照してください。
ユーザーがワークフロー・プロパティをすべて構成すると、それらを使用してワークフロー・プロセスを開始できます。ドキュメントがImagingにアップロードされると、新しいコンテンツを示すメッセージがワークフロー・エージェントに送信されます。ワークフロー・エージェントはこれらのメッセージを監視し、ドキュメントのアプリケーションがワークフローを使用するように構成されているというメッセージを受け取ると、その構成を使用して特定のドキュメントの値のペイロードを作成し、サービスをコールしてワークフロー・プロセスを開始します。
ユーザーがImagingでドキュメントを参照する必要がある場合は、ビューアを起動するために必要な情報を提供するようにワークフロー・プロセスを設計する必要があります。そのためには、ビューアURLを格納するペイロード値を定義します。ワークフロー設計者は、ビューアURLプロパティのターゲットを開くボタンやリンクを含むフォームを作成する必要があります。ビジネス・プロセスによってImagingで情報を更新する必要がある場合は、Imaging APIを使用して更新できます。APIの詳細は、Oracle Fusion Middleware Oracle WebCenter Content: Imagingの開発を参照してください。Imaging APIは、プロセス設計者がワークフロー・プロセスに簡単に追加できるWebサービスとして公開されています。この場合も、設計者は、ドキュメントの更新されたデータを通信するための十分な情報をプロセスの開始時に収集していることを確認する必要があります。たとえば、ドキュメントIDやアプリケーション・フィールド名などが必要です。
注意: WebLogic Scripting Toolを使用してドキュメントをワークフローに再送信するには、submitIPMToWorkflow() WLSTコマンドをコールします。ドキュメントが送信されたことを示す確認メッセージが表示されます。ただし、ワークフローを使用するように構成されていないアプリケーションにドキュメントが保存されている場合、アクションは実行されません。 |