この章では、Oracle BPEL Process Managerサービスの構成手順について説明します。
この章で説明する内容は次のとおりです。
IDサービスは、Oracle Application Server 10gセキュリティ・インフラストラクチャ、つまりOracleAS JAAS Provider(JAZN)またはカスタム・ユーザー・リポジトリ上のシンWebサービス・レイヤーです。IDサービスを使用すると、ユーザーの認証と認可、ユーザー・プロパティ、ロール、グループ・メンバーシップおよび権限の参照が可能です。
次の項では、IDサービスを構成する方法について説明します。
IDサービス構成は、is_config.xmlファイルで定義されます。ファイルは、Oracle BPEL Process ManagerのCLASSPATHに含まれるディレクトリに配置されている必要があります。デフォルトでは、IDサービス構成は次の場所に格納されています。
SOA_Oracle_Home\bpel\system\services\config
is_config.xmlファイルのXMLスキーマは、次の場所に格納されています。
SOA_Oracle_Home\bpel\system\services\schema\is_config.xsd
図2-1は、ルート要素構成を表しており、複数の構成が含まれる場合もあります。
IDサービス構成ファイル(is_config.xsdで定義されます)は、ルート要素ISConfigurationで構成され、このルート要素は複数の構成を持つこともあります。各構成には、realmName属性で名前を付ける必要があります。is_config.xmlで複数の構成が定義されている場合、1つの構成をデフォルトとしてマークする必要があります。
IDサービスは、JAZNプロバイダ、サード・パーティLDAPディレクトリまたはカスタム・リポジトリ・プラグインのいずれかのプラグイン・タイプをサポートしています。各タイプは、IDサービスで使用されるプロバイダを定義します。
構成ごとに1つ以上のプロバイダを指定できます。プロバイダは、可能なサービス(ID、認可または認証)の1つに必ず関連付けられます。特にサービス属性で指定されていない場合は、デフォルトでは、プロバイダはIDサービスを使用します。IDサービスに関連付けられた1つ以上のプロバイダを構成で定義する必要があります。
provider要素はproviderTypeを指定します。これは、JAZN、LDAPまたはCUSTOM、プロバイダ名(オプション)、プロバイダ固有のプロパティのいずれかです。
図2-2は、provider要素の構成を示しています。
|
注意: providerTypeがJAZNの場合、構成属性realmNameの値は、jazn.xmlで定義されている既存のJAZNレルムと一致している必要があります。
|
たとえば、JAZN XMLプロバイダの場合、providerType属性をJAZNに設定し、userPropertiesFile属性の値を指定する必要があります。userPropertiesFileの詳細は、「XMLベースのJAZNプロバイダの構成」を参照してください。
同様に、IDサービスへのカスタム・プラグインを使用する場合、providerType属性をCUSTOMに設定する必要があります。次に、カスタムIDサービス・プラグイン実装のクラス名を次のように指定します。
<?xml version = '1.0' encoding = 'UTF-8'?>
<ISConfiguration xmlns="http://www.oracle.com/pcbpel/identityservice/isconfig">
<configurations>
<configuration realmName="jazn.com">
<provider providerType="JAZN" name="xml" service="Identity">
<property name="userPropertiesFile" value="users-properties.xml"/>
</provider>
<provider providerType="CUSTOM"
name="CustomPlugIn" service="Authentication"
class="package.name.CustomAuthenticationService" />
</configuration>
</configurations>
</ISConfiguration>
IDサービスは、複数のサービス・パラメータをサポートしています。前述のコード例では、1つの構成が2つのサービス・プロバイダで定義されています。構成には、デフォルトのIDサービスに関連付けられたJAZNプロバイダと、認証サービスに使用されるCUSTOMプロバイダがあります。したがって、ユーザー認証呼出しにはカスタム・プロバイダが使用され、すべての認可およびIDサービス照会にはJAZN XMLプロバイダが使用されます。
プロバイダは、構成ファイルで次のオプション・パラメータを定義することもできます。これらのパラメータのほとんどは、JAZNベースまたはLDAPベースのプロバイダに適用されますが、カスタム・プロバイダで使用することもできます。
provider要素を使用すると、追加のproperty要素を指定して、カスタム・プラグインで使用できます。次に例を示します。
<?xml version = '1.0' encoding = 'UTF-8'?>
<ISConfiguration xmlns="http://www.oracle.com/pcbpel/identityservice/isconfig">
<configurations>
<configuration realmName="jazn.com">
<provider providerType="CUSTOM"
name="CustomPlugIn" service="Identity"
class="package.name.CustomIdentityService">
<property name="customProperty" value="customValue" />
</configuration>
</configurations>
</ISConfiguration>
構成ファイルで他の要素(userControls、searchControls、searchなど)の一部としてproperty要素を定義することもできます。
connection要素は、URL、Adminユーザー名(binddn- bind as this Distinguished name)、IDサービスで使用されるLDAPまたはRDBMS接続の資格証明(password)、およびパスワードがプレーン・テキストまたは暗号化されているかを指定するためのブール・フラグ(encrypted)を指定するために使用されます。IDサービスは、構成を読み取った後is_config.xmlファイルを上書きし、ファイルがプレーン・テキストの場合はユーザー・パスワードを暗号化します。図2-3は、connection構成の構造を示しています。
connectionは、pool要素で次の属性を設定することで、接続プール・プロパティを指定できます。
initsize: 接続プールの初期サイズ
maxsize: 接続プールの最大サイズ
prefsize: プールの優先サイズ
timeout: アクティビティがない場合に接続が解放されるまでの時間(秒)
IDサービスのLDAPプラグインは、次のデフォルト値を使用します。
initsize="2"
maxsize="25"
prefsize="10"
timeout="60"
カスタムIDサービス・プラグインを使用している場合、名前と値のペアとしてその他の接続固有のプロパティを指定することもできます。
userControls要素は、ユーザー・コントロールの定義、およびLDAPユーザー検索の制限に使用されます。図2-4は、userControls要素の構造を示しています。
roleControls要素は、ロール・コントロールの定義、およびLDAPロール検索の制限に使用されます。図2-5は、roleControls要素の構造を示しています。
userControlsおよびroleControlsには、次のオプション属性を持つ検索要素を指定できます。
searchbase: LDAPエントリのリストで、ユーザー・コンテナまたはグループ・コンテナの識別名(DN)が表示されます。
scope: 検索レベルを決定します。値は、検索が指定したDNから1レベル下がるonelevel、または検索がDNからツリーの最下位レベルに階層を下るsubtreeになります。
maxSizeLimit: 検索操作中にLDAPから取得される要素の最大数です。
maxTimeLimit: LDAP検索から要素を取得するまでの最大待機時間です。
デフォルトでは、IDサービスのLDAPプロバイダで使用する値は、maxSizeLimit ="1000"、maxTimeLimit ="120"(秒)およびscope="subtree"になります。
Oracle BPEL Process Managerに付属するデフォルト・プロバイダはXMLベースのJAZNです。JAZN要素は次のように定義されます。
jazn provider="XML" location="./system-jazn-data.xml"/
SOA_Oracle_Home\j2ee\home\config\jazn.xml
IDサービス構成ファイルは、userPropertiesFileプロパティを指定し、すべてのユーザー・プロパティが格納されるファイル名の値を指定する必要があります。
<?xml version = '1.0' encoding = 'UTF-8'?>
<ISConfiguration xmlns="http://www.oracle.com/pcbpel/identityservice/isconfig">
<configurations>
<configuration realmName="jazn.com">
<provider providerType="JAZN" name="xml" service="Identity">
<property name="userPropertiesFile" value="users-properties.xml"/>
</provider>
</configurations>
</ISConfiguration>
users-properties.xmlファイルには、すべての拡張ユーザーのプロパティが格納されます。これは、JAZN認可または認証には不要です。ただし、BPEL IDサービスでは、ユーザーの連絡先の詳細および組織階層を取得するためにこのファイルが必要です。このファイルが作成されない場合、次の状況が発生する可能性があります。
通知、マネージャ・ビュー、タスク・エスカレーションなど、特定のワークフロー機能が動作しない可能性があります。
BPMWorkflowAdminロールを持っていないすべてのユーザーに対して、ワークフロー・ルールを作成できなくなります。
グループのワークフロー・ルール定義が機能しない可能性があります。
デフォルトでは、IDサービスはOracle BPEL Process Managerクラスパスのusers-properties.xmlを検索します。Oracle Universal Installerにより、デフォルトのusers-properties.xmlは次の場所に格納されます。
SOA_Oracle_Home\bpel\system\services\config
users-properties.xmlのXMLスキーマは、次の場所に格納されます。
SOA_Oracle_Home\bpel\system\services\schema\IdentityService.xsd
この項では、Oracle Internet Directory 10.1.2を使用してOracle BPEL Process Manager 10.1.3.1.0のIDサービスを構成する方法について説明します。
Oracle Application ServerインスタンスをOracle Internet Directoryに関連付けるには、次の手順を実行します。
Oracle Enterprise Manager 10g Application Server Controlコンソールにログインします。
http://hostname:port/em
hostnameは、Oracle BPEL Process Managerがインストールされているホストの名前、portはOracle HTTP Serverポートです。
「クラスタ・トポロジ」ページが表示されます。
「メンバー」セクションのOC4Jインスタンス名をクリックします。
OC4J: oc4j_nameページが表示されます。
「管理」タブをクリックします。
「タスク名」列の「セキュリティ」セクションに移動します。
「ID管理」の「タスクに移動」列のアイコンをクリックします。
Oracle Internet DirectoryがOracle Application Serverインスタンスで構成されている場合、このページに詳細が表示されます。
Oracle Internet Directoryがインスタンスに関連付けられているかどうかに応じて、次の項を参照してください。
| Oracle Internet Directoryがインスタンスに関連付けられているかどうか | 参照先 |
|---|---|
| はい | 「Oracle Internet DirectoryがOracle Application Serverインスタンスに関連付けられている場合」 |
| いいえ | 「Oracle Internet DirectoryがOracle Application Serverインスタンスに関連付けられていない場合」 |
使用するOracle Internet Directoryインスタンスかどうかを確認するには、このページに表示される詳細を確認します。
手順3でアクセスしたOC4J: oc4j_nameページの「管理」タブに戻ります。
「セキュリティ」セクションに移動します。
「セキュリティ・プロバイダ」の「タスクに移動」列のアイコンをクリックします。
「アプリケーション名」セクションに移動します。
orabpelアプリケーション(Oracle BPEL Process Managerの場合)およびhw_servicesアプリケーション(ヒューマン・ワークフローの場合)が表示されます。
orabpelの「編集」列をクリックします。
「セキュリティ・プロバイダ」ページが表示されます。
「セキュリティ・プロバイダの変更」をクリックします。
「セキュリティ・プロバイダの変更」ページが表示されます。
「セキュリティ・プロバイダ・タイプ」リストから「Oracle Identity Managementセキュリティ・プロバイダ」を選択します。
「OK」をクリックします。
「構成」をクリックして、新しい関連を作成するか、「変更」をクリックして、別のOracle Internet DirectoryをOracle Application Serverインスタンスに関連付けます。
表示される質問に、適切なレスポンスを指定します。SSLを使用する場合は、Oracle Internet Directoryインスタンスの特定のSSLポート番号を指定します。SSLを使用しない場合は、Oracle Internet Directoryインスタンスの非SSLポートを指定します。
「次へ」をクリックします。
Oracle Enterprise Manager 10g Application Server ControlコンソールをOracle Internet Directoryに関連付ける場合は、このページで適切な詳細を指定します。
「次へ」をクリックします。
Oracle Internet Directoryをセキュリティ・プロバイダとして使用するには、orabpelおよびhw_servicesをクリックします。
「構成」をクリックします。
この項では、Oracle Internet Directoryへのユーザーのシード、IDサービスの構成、およびBPMロールへの権限の付与について説明します。
|
注意: UNIXの場合、この例で使用されるパス名のデリミタは/です。Windowsの場合、パス名のデリミタは¥を想定しています。
|
ORACLE_HOME環境変数が、構成するOracle Application Serverインスタンスのルート・ディレクトリに設定されていることを確認します。
オペレーティング・システムのコマンド・プロンプトを開き、構成スクリプトが含まれる次のディレクトリに移動します。
SOA_Oracle_Home/bpel/system/services/install/ant-tasks
必要なパラメータを指定して、configure_oid.bat(Windowsオペレーティング・システムの場合)またはconfigure_oid.sh(UNIXオペレーティング・システムの場合)を実行します。Linuxでスクリプトを実行する場合、bashシェルを使用することをお薦めします。たとえば、Linuxでこのスクリプトを実行するには、次のように指定します。
sh ./configure_oid.sh oid_admin_user oid_admin_passwd oid_nonssl_port ssl_enabled oid_realm_name seedAllUsers | seedRequiredUsers oc4j_admin_user oc4j_admin_passwd oc4j_container_name
次に例を示します。
sh ./configure_oid.sh orcladmin welcome 389 false us seedAllUsers oc4jadmin welcome1 oc4j_soa
このコマンドの実行により、内部的にSOA_Oracle_Home/bpel/system/services/config/is_config.xmlファイルが変更されます。ファイルの内容は次のようになります。
<?xml version = '1.0' encoding = 'UTF-8'?>
<ISConfiguration
xmlns="http://www.oracle.com/pcbpel/identityservice/isconfig">
<configurations>
<configuration realmName="us" displayName="us Realm">
<provider providerType="JAZN" name="OID">
<connection url="ldap://my.oid.com:389"
binddn="cn=orcladmin" password="passwd" encrypted="false"/>
</provider>
</configuration>
</configurations>
</ISConfiguration>
このコマンドにより、J2EE_Home/application-deployments/hw_services/orion-application.xmlファイルおよびJ2EE_Home/application-deployments/orabpel/orion-application.xmlファイルも変更され、Oracle Internet Directoryの詳細が記述子に追加されます。
J2EE_Homeの内容は、次のとおりです。
Oracle Application Server SOAインストールの場合、SOA_Oracle_Home/j2ee/OC4J_Instance_Nameです。
Oracle BPEL Process Manager for OracleAS Middle Tierインストールの場合、SOA_Oracle_Home/bpel/system/appserver/oc4j/j2ee/OC4J_Instance_Nameです。
ファイルの内容は次のようになります。
<?xml version = '1.0'?>
<orion-application
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:noNamespaceSchemaLocation=
"http://xmlns.oracle.com/oracleas/schema/orion-application-10_0.xsd"
deployment-version="10.1.3.1.0"
default-data-source="jdbc/OracleDS"
component-classification="internal-BPEL"
schema-major-version="10"
schema-minor-version="0">
. . .
. . .
. . .
<jazn provider="LDAP" jaas-mode="doAsPrivileged"/>
. . .
. . .
. . .</orion-application>
configure_oidスクリプトにより、BPMSystemAdminロールおよびBPMDefaultDomainAdminロールに必要な権限が付与されます。
オペレーティング・システム固有の問題が発生した場合は、次のようにします。
OC4J_Homeが正しいディレクトリをポイントしていることを確認します。これは通常、SOA_Oracle_Home/j2ee/home(Oracle BPEL Process Manager for OracleAS Middle Tierインストールの場合)、およびSOA_Oracle_Home/bpel/ system/appserver/oc4j/j2ee/home(Oracle BPEL Process Manager for Developersインストールの場合)です。
Ant_Homeが正しいディレクトリをポイントしていることを確認します。これは通常、SOA_Oracle_Home/ant(Oracle BPEL Process Manager for OracleAS Middle Tierインストールの場合)、およびSOA_Oracle_Home/bpel/ system/appserver/oc4j/ant(Oracle BPEL Process Manager for Developer'sインストールの場合)です。
Java_Homeが正しいディレクトリをポイントしていることを確認します。これは通常、SOA_Oracle_Home/jdkです。
PATH変数がAnt_Home/binおよびJava_Home/binをポイントしていることを確認します。
手順3ですべてのパラメータ値を正しく指定したかどうかを確認します。
次のコマンドを実行します(1行で折り返して入力します)。
ant -f oid-config.xml -Doid.admin.user=oid_admin_user_name -Doid.admin.pwd=oid_admin_password -Doid.nonssl.port=non_ssl_port -Dssl.enabled=is_ssl_enabled -Doid.realm=oid_realm_name -Doid.seed=seedAllUsers | seedRequiredUsers -Doc4j.admin.user=oc4j_admin_user_name -Doc4j.admin.pwd=oc4j_admin_password -Doc4j.container=oc4j_container_name
次に例を示します。
ant -f oid-config.xml -Doid.admin.user=orcladmmin -Doid.admin.pwd=welcome1 -Doid.nonssl.port=389 -Dssl.enabled=false -Doid.realm=us -Doid.seed=seedAllUsers -Doc4j.admin.user=oc4jadmin -Doc4j.admin.pwd=welcome1 –Doc4j.container=oc4j_soa
|
注意: ユーザー名にcn=orcladmin、レルムにdc=us,dc=oracle,dc=comを指定しないでください。orcladminおよびusを使用します。
|
指定するパラメータは、次のように定義されます。
| パラメータ | 値 |
|---|---|
oid.admin.user
|
Oracle Internet Directoryインスタンスで管理権限を持つユーザー。通常はorcladmin。
|
oid.admin.pwd
|
Oracle Internet Directoryの管理ユーザーに指定されたユーザーのパスワード。 |
oid.nonssl.port
|
Oracle Internet Directoryインスタンスの非SSLポート。Oracle Internet Directoryインスタンスは、SSLポートと非SSLポートの両方で実行されている必要がある。 |
ssl.enabled
|
次のいずれかの値を設定する。
|
oid.realm
|
Oracle Internet Directoryで動作するレルム。 |
oid.seed
|
次の値のいずれかを設定する。
|
oc4j.admin.user
|
Oracle Application Server OC4Jインスタンスで管理権限を持つユーザー。通常はoc4jadmin。
|
oc4j.admin.pwd
|
OC4Jの管理ユーザーに指定されたユーザーのパスワード。 |
| oc4j.container | hw_servicesアプリケーション(ヒューマン・ワークフローの場合)およびorabpelアプリケーション(Oracle BPEL Process Managerの場合)がデプロイされるコンテナ名。これらの名前を検索するには、SOA_Oracle_Home/j2eeに移動し、次のディレクトリを検索します。
|
Oracle Internet Directory構成をテストするには、複数の方法があります。
http://localhost:9700/integration/services/IdentityService/identity?operation=lookupUser.に移動してユーザーおよびロールを参照するには、IdentityServiceサーブレットを使用します。
ユーザーが正しくシードされているかどうかを確認するには、bpeladminユーザー名を使用してテストします。
http://localhost:9700/integration/worklistapp/LoginのOracle BPEL Worklist Applicationに移動し、ユーザー名としてbpeladmin、パスワードとしてwelcome1を入力して、接続できるかどうかを確認します。
Oracle Internet Directoryと通信する場合、NULL認証が必要です。NULL認証では、Anonymous Diffie-Hellman暗号スイートを使用してデータが暗号化されますが、認証では証明書は使用されません。
NULL認証を使用するには、jazn.xmlの<jazn>要素およびis_config.xmlの<connection>要素に<property>要素を追加して、プロトコルを指定します。NULL認証は証明書を使用しないため、ウォレットの場所またはパスワードを指定する必要はありません。
次のproperty要素をjazn.xmlに追加します(太字で示しています)。
<jazn provider="LDAP" location="ldap://example.com:636" default-realm="us">
<property name="ldap.user" value="cn=orcladmin"/>
<property name="ldap.password" value="!welcome1"/>
<property name="ldap.protocol" value="ssl"/>
</jazn>
Oracle BPEL Worklist ApplicationまたはOracle BPEL Controlにログインできない場合は、前述の手順が正しく実行されているかどうかを確認してください。問題が解決しない場合は、次の手順を実行します。
スクリプトが正常に完了していないと思われる場合は、構成手順を再実行します。
SOA_Oracle_Home/j2ee/home/application-deployments/hw_servicesに移動します。
orion-application.xmlをテキスト・エディタで開きます。
JAZNプロバイダ構成のjaas-mode属性がdoAsPrivilegedに設定されていることを確認します。次に例を示します。
<jazn provider="LDAP" jaas-mode="doAsPrivileged"/>
SOA_Oracle_Home/j2ee/home/application-deployments/orabpel/orion-application.xmlについて、この手順を繰り返します。
IDサービス・プロバイダとしてOracle Internet DirectoryからXMLベースのJAZNに回復する必要がある場合は、次の手順を実行します。
Oracle Enterprise Manager 10g Application Server Controlコンソールにログインします。
http://hostname:port/em
hostnameは、Oracle BPEL Process Managerがインストールされているホストの名前、portはOracle HTTP Serverポートです。
「クラスタ・トポロジ」ページが表示されます。
「メンバー」セクションのOC4Jインスタンス名をクリックします。
OC4J: oc4j_nameページが表示されます。
「管理」タブをクリックします。
「タスク名」列の「セキュリティ」セクションに移動します。
「セキュリティ・プロバイダ」の「タスクに移動」列のアイコンをクリックします。
「アプリケーション名」セクションに移動します。
orabpelアプリケーション(Oracle BPEL Process Managerの場合)およびhw_servicesアプリケーション(ヒューマン・ワークフローの場合)が表示されます。
orabpelの「編集」列をクリックします。
「セキュリティ・プロバイダ」ページが表示されます。
「セキュリティ・プロバイダの変更」をクリックします。
「セキュリティ・プロバイダの変更」ページが表示されます。
「セキュリティ・プロバイダ・タイプ」リストから「ファイルベースのセキュリティ・プロバイダ」を選択します。
「OK」をクリックします。
Oracle Enterprise Manager 10g Application Server Controlコンソールからログアウトします。
SOA_Oracle_home/bpel/system/services/configディレクトリに移動します。
is_config.xmlを削除します。
is_config.xml.BPMをis_config.xmlに変更します。
「タスク4: Secure Socket Layer(SSL)を使用してLDAPベースのJAZNプロバイダを使用するための中間層の構成」で、SSLを使用するようにOracle Internet Directoryを構成した場合は、jazn.xmlファイルの次の行を変更します。
<property name="ldap.protocol" value="ssl"/>
次のように変更します。
<property name="ldap.protocol" value="no-ssl"/>
変更を有効にするために、Oracle Application Serverインスタンスを再起動します。
SOA_Oracle_Home/opmn/bin> opmnctl stopall SOA_Oracle_Home/opmn/bin> opmnctl startall
サード・パーティのLDAPサーバーを使用する場合、次の考慮事項に注意してください。Active Directoryの構成は若干異なります。この違いについても説明します。
|
注意: この項では、Windows 2003のActive Directory構成についてのみ説明します。これは、Windows 2000ではネストされたセキュリティ・グループが許可されないためです。 |
次の標準objectClassesを使用するように、サード・パーティのLDAPサーバーを構成する必要があります。
| Active Directoryの場合 | その他のサード・パーティのLDAPサーバーの場合 |
|---|---|
top
|
top
|
person
|
person
|
organizationalPerson
|
organizationalPerson
|
user
|
inetOrgPerson
|
group
|
groupOfUniqueNames
|
通常、LDAPサーバーは、cn、firstname、lastnameおよびemail属性に基づいて、検索可能な属性のリストを事前に定義します。検索可能な属性をカスタマイズできます。inetOrgPerson objectClassのユーザー・マネージャ属性は、ワークフロー・エスカレーションを許可するために検索可能である必要があります。検索可能な属性の設定方法については、使用しているサード・パーティのLDAPサーバーのドキュメントを参照してください。
推奨される検索可能な属性のリストは、cn、sn、givenName、uid、manager、title、mailおよびtelephoneNumberです。
Oracle BPEL Process ManagerユーザーおよびロールをLDAPサーバーにシードする場合、ユーザーおよびグループのコンテナはLDAPで作成されると想定されます。システムldifファイルおよびデモldifファイル(オプション)を作成するには、次の場所にあるテンプレート・ファイルを開きます。
SOA_Oracle_Home\bpel\system\services\config\ldap
| Active Directoryの場合 | その他のサード・パーティのLDAPサーバーの場合 |
|---|---|
system-winServer2003-ActDir.sbs
|
system-ldap.sbs
|
demo-winServer2003-ActDir.sbs
|
demo-ldap.sbs
|
demo-roleGrants-winServer2003-ActDir.sbs
|
|
次の例に示すように、置換変数を適切な値に置き換えます。実際に入力する値は、ドメインによって異なります。
| LDAPサーバー | 置換変数 | 入力する値 |
|---|---|---|
| Active Directory | %s_UserContainerDN%
|
cn=Users,dc=us,dc=oracle,dc=com
|
| |
%s_GroupContainerDN%
|
cn=Users,dc=us,dc=oracle,dc=com
|
| その他のサード・パーティのLDAPサーバー | %s_UserCommonNamingAttribute%
|
cn
|
| |
%s_UserContainerDN%
|
ou=People,dc=ldapus,dc=acmeoracle,dc=com
|
| |
%s_GroupContainerDN%
|
ou=Groups,dc=usldap,dc=acmeoracle,dc=com
|
内容
%s_UserContainerDN%は、すべてのユーザーが追加されるエントリのDN値を含みます。ユーザー・コンテナは、次のとおりです。
dn: cn=Users,dc=us,dc=oracle,dc=comは、Active Directoryのこの例で使用されます。
dn: ou=People,dc=usldap,dc=acmeoracle,dc=comは、その他のサード・パーティのLDAPサーバーのこの例で使用されます。
%s_GroupContainerDN%は、すべてのパブリック・グループが追加されるエントリのDN値を含みます。グループのコンテナは、次のとおりです。
dn: cn=Users,dc=us,dc=oracle,dc=comは、Active Directoryのこの例で使用されます。
dn: ou=Groups,dc=ldapus,dc=acmeoracle,dc=comは、その他のサード・パーティのLDAPサーバーのこの例で使用されます。
%s_UserCommonNamingAttribute%は、ユーザーのDNの構成に使用される値を含みます。その他のサード・パーティのLDAPサーバーのこの例では、cn値が使用されます。%s_UserCommonNamingAttribute%および値は、Active Directoryには適用できません。
サード・パーティのLDAPサーバーのタイプに基づいて、次の手順を実行します。
Active Directoryの場合:
Windows 2003のDOSコマンド・プロンプトで、次のコマンドを実行します。
ldifde.exe -i -k -f system-winServer2003-ActDir.ldif ldifde.exe -i -k -f demo-winServer2003-ActDir.ldif ldifde.exe -i -k -f demo-roleGrants-winServer2003-ActDir.ldif
Active Directoryのldifde.exeのすべての一括インポート・オプションの詳細は、次のMicrosoft Active Directoryドキュメントを参照してください。
http://www.microsoft.com/technet/prodtechnol/windowsserver2003/technologies /directory/activedirectory/stepbystep/adbulk.mspx#ECAA
システム管理者は、すべてのシード済ユーザーのパスワードを設定する必要があります。設定しない場合、そのユーザーのワークリスト・アプリケーション認証は機能しません。
その他のサード・パーティのLDAPサーバーの場合:
変更をsystem-ldap.ldifファイルおよびdemo-ldap.ldifファイルに保存します。次に、ldapaddユーティリティを使用して、system-ldap.ldifファイルをLDAPサーバーにロードします。オプションで、ldapmodifyユーティリティを使用してdemo-ldap.ldifをロードします。
次に例を示します。
$ldapadd -c -h ldap.acme.com -p 389 -D "cn=admin" -w welcome -f system-oid.ldif $ldapmodify -c -h ldap.acme.com -p 389 -D "cn=admin" -w welcome -f demo-oid.ldif
ldapaddコマンドおよびldapmodifyコマンドの詳細は、使用しているサード・パーティのLDAPサーバーのドキュメントを参照してください。
IDサービスのサード・パーティのLDAPプロバイダは、IDサービス構成ファイルでconnection、userControlsおよびroleControls要素を指定する必要があります。
IDサービスのサード・パーティのLDAPプロバイダ実装により、構成する必要があるユーザー検索プロパティのセットが定義されます。
nameattribute: ユーザーの名前を一意に識別するLDAP属性の名前です。Sun Directory Serverではuid、Active Directoryではuserです。
objectClass: ユーザーを表すために使用されるLDAPスキーマ・オブジェクト・クラスです。Sun Directory ServerではinetOrgPersonです。
ロール検索プロパティのセットが次のように定義されます。
nameattribute: ロールの名前を一意に識別するLDAP属性の名前です。Sun Directory ServerではuniqueMember、Active Directoryではmemberです。
objectclass: グループを表すために使用されるLDAPスキーマ・オブジェクト・クラスです。Sun Directory ServerではgroupOfUniqueNamesです。Active Directoryではgroupです。
membershipsearchscope: ロール・メンバーシップを検索するためのLDAPディレクトリ・ツリーの深さを指定します。サポートされる値は、onelevelまたはsubtreeです。
memberattribute: グループのメンバーの識別名(DN)を指定する静的LDAPグループ・オブジェクトの属性です。Sun Directory ServerではuniqueMember、Active Directoryではmemberです。
userControlsおよびroleControlは、searchbase属性を使用して検索要素を定義する必要があります。
userControls検索要素のsearchbase属性は、ユーザーを含むLDAPディレクトリのDNの空白で区切ったリストです。たとえば、cn=users,dc=us,dc=oracle.com,dc=comのようになります。
roleControls検索要素のsearchbase属性は、ロールを含むLDAPディレクトリのDNの空白で区切ったリストです。たとえば、cn=Groups,dc=us,dc=oracle,dc=comのようになります。
2つのレルムLDAPサーバー構成の例を次に示します。
<?xml version = '1.0' encoding = 'UTF-8'?>
<ISConfiguration xmlns="http://www.oracle.com/pcbpel/identityservice/isconfig">
<configurations>
<configuration realmName="us" default="true">
<provider providerType="LDAP" name="iPlanet" service="Identity">
<connection url="ldap://host:port"
binddn="uid=admin,ou=administrators,ou=topologymanagement,o=netscaperoot"
password="welcome1" encrypted="false">
<pool initsize="2" maxsize="25" prefsize="10" timeout="60"/>
</connection>
<userControls>
<property name="nameattribute" value="uid"/>
<property name="objectclass" value="inetOrgPerson"/>
<search searchbase="ou=People, dc=us,dc=oracle,dc=com "
scope="obelevel" maxSizeLimit="1000" maxTimeLimit="120"/>
</userControls>
<roleControls>
<property name="nameattribute" value="cn"/>
<property name="objectclass" value="groupOfUniqueNames"/>
<property name="membershipsearchscope" value="onelevel"/>
<property name="memberattribute" value="uniquemember"/>
<search searchbase="ou=Groups,dc=us,dc=oracle,dc=com"
scope="onelevel" maxSizeLimit="1000" maxTimeLimit="120"/>
</roleControls>
</provider>
</configuration>
<configuration realmName="idc">
<provider providerType="LDAP" name="openLDAP">
<connection url="ldap://host:port"
binddn="cn=Manager,dc=oracle,dc=com"
password="welcome1" encrypted="true">
<pool initsize="2" maxsize="25" prefsize="10" timeout="300000"/>
</connection>
<userControls>
<property name="nameattribute" value="uid"/>
<property name="objectclass" value="inetOrgPerson"/>
<search searchbase="ou=People,dc=idc,dc=oracle,dc=com"
scope="onelevel" maxSizeLimit="1000"
maxTimeLimit="120000"/>
</userControls>
<roleControls>
<property name="nameattribute" value="cn"/>
<property name="objectclass" value="groupOfUniqueNames"/>
<property name="membershipsearchscope" value="onelevel"/>
<property name="memberattribute" value="uniquemember"/>
<search searchbase="ou=Groups,dc=idc,dc=oracle,dc=com"
scope="onelevel" maxSizeLimit="1000"
maxTimeLimit="120000"/>
</roleControls>
</provider>
</configuration>
</configurations>
</ISConfiguration>
Microsoft Active Directoryの場合の例を次に示します。
<?xml version = '1.0' encoding = 'UTF-8'?>
<ISConfiguration xmlns="http://www.oracle.com/pcbpel/identityservice/isconfig">
<configurations>
<configuration realmName="AD" >
<provider providerType="LDAP" name="Active Directory" service="Identity">
<connection url="ldap://host:port"
binddn="cn=administrator,cn=Users,dc=us,dc=oracle,dc=com"
password="welcome1" encrypted="true">
<pool initsize="2" maxsize="25" prefsize="10" timeout="300000"/>
</connection>
<userControls>
<property name="nameattribute" value="sAMAccountName"/>
<property name="objectclass" value="user"/>
<search searchbase="cn=Users,dc=us,dc=oracle,dc=com"
scope="subtree" maxSizeLimit="1000" maxTimeLimit="120000"/>
</userControls>
<roleControls>
<property name="nameattribute" value="cn"/>
<property name="objectclass" value="group"/>
<property name="membershipsearchscope" value="onelevel"/>
<property name="memberattribute" value="member"/>
<search searchbase="cn=Users,dc=us,dc=oracle,dc=com"
scope="subtree" maxSizeLimit="1000" maxTimeLimit="120000"/>
</roleControls>
</provider>
</configuration>
</configurations>
</ISConfiguration>
次の例は、構成プロパティを使用してカスタム・プラグインを構成する方法を示しています。この例では、CustomIdentityServiceクラスは、カスタム・リポジトリ・プラグインを表示するために使用されます。このクラスは、BPMIdentityServiceインタフェースを実装します。
<?xml version =3D '1.0' encoding =3D 'UTF-8'?>
<ISConfiguration=xmlns=3D"http://www.oracle.com/pcbpel/identityservice/isconfig">
<configurations>
<configuration realmName=3D"default">
<provider providerType=3D"CUSTOM" name=3D"DBProvider" class=3D =
"is.custom.plugin.CustomIdentityService">
<connection url=3D"jdbc:polite4@host:1531:orabpel" >
<property name=3D"driver" =value=3D"oracle.lite.poljdbc.POLJDBCDriver"/>
<property name=3D"user" value=3D"system"/>
<property name=3D"password" value=3D"manager"/>
</connection>
</provider>
</configuration>
</configurations>
</ISConfiguration>
前述の例では、構成はis.custom.plugin.CustomIdentityServiceクラスで実装されるDBProviderというプロバイダを定義します。プロバイダは、driver、userおよびpasswordのカスタム接続プロパティを使用します。
既存のプロバイダ・プロパティ以外に、構成ファイルのprovider、connection、userControls、roleControlsおよびsearch要素に追加できるカスタム・プロパティ要素を定義して、プロバイダ定義を拡張できます。
グループのワークフロー・ルールは、グループ所有者であるユーザーまたはBPMWorkflowAdminロールを持つユーザーが作成および更新できます。このユーザーは、グループを直接または間接的に所有できます。ユーザーが、ロールまたはグループを所有する別のロールまたはグループの権限受領者である場合、ユーザーはグループまたはロールを間接的に所有します。
グループ所有権は、groupObjectの<owners>要素のSOA_Oracle_Home¥bpel¥system¥services¥config¥users-properties.xmlファイルに格納される拡張ロール・プロパティです。
所有者はユーザー、アプリケーション・ロールまたはグループのいずれかです。<owners>要素の値には、カンマで区切った複数の所有者を指定できます。次に例を示します。
<groupObject>
<name>LoanAgentGroup</name>
<email>user1@dlsun4254.us.oracle.com</email>
<owners>fkafka, jcooper, BPMAnalyst</owners>
</groupObject>
グループ所有権は、owner属性によって定義されます。Oracle Internet Directoryでグループの所有者を作成するには、Oracle Delegated Administration Servicesを使用する必要があります。サード・パーティのLDAPサーバーの場合、サーバーのツールまたはldapmodifyユーティリティを使用して、値をグループのowner属性に設定します。所有者の属性名は、is_config.xml IDサービス構成ファイルのroleControlsのプロパティ要素で上書きできます。
<property name="roleOwnerAtribute" value="customOnwerAttribute" />
Oracle BPEL Process Managerの通知サービスを使用すると、様々なチャネルを使用してBPELプロセスから通知を送信できます。Oracle BPEL Process Managerは、電子メール、ボイス・メッセージ、Fax、ポケットベルまたはショート・メッセージ・サービス(SMS)によってこれらの通知を配信できます。Oracle JDeveloperで通知チャネルを構成する以外に、追加の構成手順も実行する必要があります。
この項で説明する内容は次のとおりです。
|
関連項目: Oracle JDeveloperでの通知チャネルの構成については、『Oracle BPEL Process Manager開発者ガイド』を参照してください。 |
ディレクトリSOA_Oracle_Home¥bpel¥system¥services¥configのファイルns_emails.xmlには、電子メール・アカウントの構成が含まれています。各EmailAccount要素により、特定の電子メール・アカウントの構成が設定されます。EmailAccount要素のname属性は、アカウントの名前です。
デフォルトの電子メール・アカウントは、電子メール構成ファイルで指定されます。このアカウントは、電子メール通知を送信するためのアカウントが指定されていない場合に使用されます。このアカウントは、タスク関連の通知を送信する場合にも使用されます。デフォルトの電子メール・アカウントは、構成ファイルで必ず指定する必要があります。
EmailAccount要素には、OutgoingServerSettingsおよびIncomingServerSettings属性が含まれています。ワークフローのアクション可能な通知の場合、IncomingServerSettingsとOutgoingServerSettingsの両方が必要です。
表2-1は、ns_emails.xmlファイルに格納される電子メール通知構成のXML要素を示しています。
表2-1 電子メール通知構成ファイルのXML要素
<EmailAccounts
xmlns="http://xmlns.oracle.com/ias/pcbpel/NotificationService"
EmailMimeCharset=""
NotificationMode="NONE">
<EmailAccount>
<Name>Default</Name>
<GeneralSettings>
<FromName>Oracle BPM</FromName>
<FromAddress>accountId@yourdomain.com</FromAddress>
</GeneralSettings>
<OutgoingServerSettings>
<SMTPHost>yourdomain.com</SMTPHost>
<SMTPPort>25</SMTPPort>
<AuthenticationRequired>true</AuthenticationRequired>
<UserName>userId</UserName>
<Password encrypted="false"
xmlns:ns0="http://xmlns.oracle.com/ias/pcbpel/NotificationService">
password</Password> </OutgoingServerSettings>
<IncomingServerSettings>
<Server>yourdomain.com</Server>
<Port>110</Port>
<Protocol>pop3</Protocol>
<UserName>accountId</UserName>
<Password ns0:encrypted="false"
xmlns:ns0="http://xmlns.oracle.com/ias/pcbpel/NotificationService">
password</Password>
<UseSSL>false</UseSSL>
<Folder>Inbox</Folder>
<PollingFrequency>1</PollingFrequency>
<PostReadOperation>
<MarkAsRead/>
</PostReadOperation>
</IncomingServerSettings>
</EmailAccount>
</EmailAccounts>
ワイヤレス・サービス・プロバイダの構成は、XMLファイルns_iaswconfig.xmlに格納されます。ファイルの場所は次のとおりです。
SOA_Oracle_Home\bpel\system\services\config
表2-2は、SOA_Oracle_Homeサーバー上のns_iaswconfig.xmlに格納される音声通知構成のXML要素を示しています。
表2-2 音声通知構成ファイルのXML要素
| 名前 | 説明 |
|---|---|
/IASWConfiguration/SoapURL |
ワイヤレス・サービス・プロバイダのURL |
/IASWConfiguration/UserName |
ワイヤレス・サービス・プロバイダを使用するユーザー・アカウントの名前 |
/IASWConfiguration/Password |
ユーザー・パスワード |
/IASWConfiguration/Password[encrypted |
パスワードの暗号化された属性。パスワードを暗号化する場合はtrue、暗号化しない場合はfalseを指定する。通常、パスワードを初めて入力するときは、これをfalseに設定する必要がある。サーバーが初めて構成ファイルを読み取り、属性をtrueに設定したときに、パスワードが自動的に暗号化される。
|
/IASWConfiguration/ProxyHost |
プロキシ・サーバーの名前 |
/IASWConfiguration/ProxyPort |
プロキシ・サーバーのポート番号 |
|
注意: ユーザー名およびパスワードは、インストール時には計画的に空白になっています。ユーザー名またはパスワードが指定されていない場合、ワイヤレス・サーバーは特定のIPアドレスから最大50個の通知を許可します。50個の通知が送信された後、次の場所から有料アカウントを取得する必要があります。次に、構成ファイル |
<?xml version = '1.0' encoding = 'UTF-8'?> <!--This XML file stores the details of the IAS Wireless Notification Service--> <IASWConfiguration xmlns="http://xmlns.oracle.com/ias/pcbpel/NotificationService"> <!-- URL to the SOAP Service --> <SoapURL>http://messenger.oracle.com/xms/webservices</SoapURL> <!-- UserName - this username should exist in iAS Wireless schema --> <UserName>username</UserName> <Password ns0:encrypted="false" xmlns:ns0="http://xmlns.oracle.com/ias/pcbpel/NotificationService">password </Password> </IASWConfiguration>
音声通知チャネルと同様に、SMSのワイヤレス・サービス・プロバイダの構成は、XMLファイルns_iaswconfig.xmlに格納されます。ファイルの場所は次のとおりです。
SOA_Oracle_Home\bpel\system\services\config
SMSのワイヤレス・サービス・プロバイダを構成するには、「音声のワイヤレス・プロバイダの構成」を参照してください。
音声通知チャネルと同様に、Faxのワイヤレス・サービス・プロバイダの構成は、XMLファイルns_iaswconfig.xmlに格納されます。ファイルの場所は次のとおりです。
SOA_Oracle_Home\bpel\system\services\config
Faxのワイヤレス・サービス・プロバイダを構成するには、「音声のワイヤレス・プロバイダの構成」を参照してください。このリリースのFaxプロバイダの構成には、Oracle Enterprise Manager 10g Application Server Controlコンソールを使用することはできません。
Faxの送付状を追加するには、SOA_Oracle_Home¥bpel¥system¥services¥config¥ns_faxcoverpages.xmlを編集する必要があります。送付状の名前を使用して、Faxメッセージの送付状を指定します。
<FaxCoverPages xmlns="http://xmlns.oracle.com/ias/pcbpel/NotificationService">
<FaxCoverPage>
<Name>legal</Name>
<MimeType>application/pdf</MimeType>
<FileLocation>C:\orabpel\bpel\runtime\config\faxcoverpages\003288.pdf</FileLocation>
</FaxCoverPage>
</FaxCoverPages>
音声通知チャネルと同様に、ポケットベルのワイヤレス・サービス・プロバイダの構成は、XMLファイルns_iaswconfig.xmlに格納されます。ファイルの場所は次のとおりです。
SOA_Oracle_Home\bpel\system\services\config
ポケットベルのワイヤレス・サービス・プロバイダを構成するには、「音声のワイヤレス・プロバイダの構成」を参照してください。このリリースのポケットベル・プロバイダの構成には、Oracle Enterprise Manager 10g Application Server Controlコンソールを使用することはできません。
デフォルトの通知サービス・プロバイダのかわりに、カスタム通知サービスの実装をプラグインおよび使用できます。すべてのチャネル、または選択された特定のチャネルに対してカスタム通知サービスをプラグインできます。たとえば、通知サービスは、デフォルトのSMS通知サービスのかわりに、既存のSMS実装をプラグインする機能を提供します。
通知サービスをプラグインするには、oracle.tip.pc.services.notification.ICustomNotificationServiceインタフェースを実装します。このインタフェースには、次のチャネルのメソッドがあります。
電子メール
音声
Fax
SMS
インスタント・メッセージング(IM)
ポケットベル
プラグイン通知サービスは、1つ以上のチャネルのデフォルト・プロバイダをオーバーライドできます。カスタム通知サービスがチャネルのサブセットのデフォルト実装をオーバーライドする場合、他のチャネル(オーバーライドされないチャネル)に対応するメソッドは、通知サービスでは呼び出されません。そのメソッドはNULLを戻すのみです。実装により、抽象クラスoracle.tip.pc.services.notification.AbstractCustomNotificationServiceImplを拡張することもできます。このクラスは、チャネルごとに空の実装を提供します。その場合、実装は該当のチャネルのメソッドを拡張するのみです。
実装が使用可能になった後、SOA_Oracle_Home¥system¥services¥config¥ns_iaswconfig.xmlファイルに登録します。設定するns_iaswconfig.xmlのセクションを次に示します。デフォルトでは、すべての要素が空です。
<!-- Specify any custom implementation for sending notification via Voice, Fax,
Pager, SMS or IM channels.
'All' refers to an implementation for all of the above specified channels.
-->
<CustomNotificationServices>
<All/>
<Email/>
<Voice/>
<Fax/>
<Pager/>
<SMS/>
<IM/>
</CustomNotificationServices>
すべてのチャネルのデフォルト実装をオーバーライドする場合は、実装の完全なクラス名を使用してAll要素を設定します。
<CustomNotificationServices>
<All>com.xyz.test.NotificationService</All>
<Email/>
<Voice/>
<Fax/>
<Pager/>
<SMS/>
<IM/>
</CustomNotificationServices>
電子メール・チャネルのみのデフォルト実装をオーバーライドする場合は、実装の完全なクラス名を使用してEmail要素を設定します。
<CustomNotificationServices>
<All/>
<Email>com.xyz.test.NotificationService</Email>
<Voice/>
<Fax/>
<Pager/>
<SMS/>
<IM/>
</CustomNotificationServices>
他のチャネルのオーバーライドは、電子メール・チャネルと同じ方法で構成されます。
実装およびその依存クラスは、Oracle BPEL Serverのクラスパスで使用できる必要があります。
すべてのワークフロー・サービスの構成は、SOA_Oracle_Home¥bpel¥system¥services¥config¥wf_config.xmlファイルで実行されます。
<workflowConfigurations xmlns="http://xmlns.oracle.com/pcbpel/humanworkflow/configurations" xmlns:user="http://xmlns.oracle.com/bpel/workflow/userMetadata"> <taskAutoReleaseConfigurations> <taskAutoRelease priority="1" default="P1D" percentageOfExpiration="30"/> <taskAutoRelease priority="2" default="P2D" percentageOfExpiration="40"/> <taskAutoRelease priority="3" default="P3D" percentageOfExpiration="50"/> <taskAutoRelease priority="4" default="P4D" percentageOfExpiration="60"/> <taskAutoRelease priority="5" default="P5D" percentageOfExpiration="70"/> </taskAutoReleaseConfigurations> <worklistApplicationURL>http://mlkenned-pc.us.oracle.com:8888/integration/ worklistapp/TaskDetails?taskId=PC_HW_TASK_ID_TAG</worklistApplicationURL> <actionableEmailAccountName/> <pushbackAssignee>INITIAL_ASSIGNEES</pushbackAssignee> <assigneeDelimiter><![CDATA[,]]></assigneeDelimiter> <shortHistoryActions> <action>ACQUIRE</action> <action>INFO_REQUEST</action> <action>INFO_SUBMIT</action> <action>RELEASE</action> </shortHistoryActions> <workflowServiceSessionTimeoutInMinutes>60</workflowServiceSessionTimeout InMinute> <user:ruleRepositoryInfo> <user:ruleEngine>ORACLE</user:ruleEngine> <user:repositoryLocation>WFRepository</user:repositoryLocation> <user:dictionaryName>WFDictionary</user:dictionaryName> <user:reposProperty name="reposType">jar</user:reposProperty> </user:ruleRepositoryInfo> <property name="worklist.redirectpage" value="TaskDetails" /> <property name="worklist.loginpage" value="Login.jsp" /> <property name="worklist.errorpage" value="Error.jsp" /> </workflowConfigurations>
この項では、このファイルの構成パラメータについて説明します。
タスクがグループまたは複数のユーザーに割り当てられている場合は、そのタスクを操作する前に、そのグループのいずれかのユーザーまたはユーザーのリストがタスクを取得する必要があります。タスクを取得した後、そのタスクが初期割当て先に割り当てられている場合、タスクを表示できる初期割当て先はありません。ユーザーが指定した時間内に操作しない場合、タスクが自動的にリリースされ、ユーザーのグループまたはリスト内の他の全ユーザーがそのタスクを参照できるようになります。自動リリースを制限付きのアクションにすることで、特定のビジネス・プロセスは自動リリースを無効化できます。リリース期間は、wf_config.xmlファイルで構成できます。
自動リリース期間の構成は、taskAutoReleaseConfigurations要素で行われます。リリース期間は、各優先順位のタスク用に構成できます。優先順位ごとに、期限切れ(percentageOfExpiration属性)期間の割合、またはデフォルト値(default属性)として自動リリース期間を指定できます。タスクに有効期間が設定されていない場合、デフォルト値が使用されます。デフォルトのデータ型はxsd:durationです。これは、PnYnMnDTnHnMnSの形式でISO 8601によって定義されます。大文字はデリミタで、対応するメンバーが使用されない場合は省略できます。たとえば、PT1004199059S、PT130S、PT2M10S、P1DT2S、-P1YまたはP1Y2M3DT5H20M30.123Sのようになります。
たとえば、優先順位3のタスクが3/24/2005 10:00 AMに取得され、そのタスクが3/31/2005 10:00 AMに期限切れになる場合、期限切れまでの時間は7日です。優先順位3のタスクのpercentageOfExpirationが50の場合、タスクは3/37/2005 10:00 PMにリリースされます(取得から3 1/2日後)。
タスクに送信される電子メールでは、Oracle BPEL Worklist Applicationへのリンクは、wf_config.xmlファイルのworklistApplicationURL XML要素から読み込まれます。
要素worklistApplicationURLはURLを識別します。カスタムOracle BPEL Worklist Applicationを構築する場合、この要素を構成すると便利です。このURLのタグPC_HW_TASK_ID_TAGは、電子メールのURLを作成するときにタスクIDに置換されます。
タスク・アクションは、電子メールを介して実行できます。アクション可能な電子メール・アカウントとは、タスク・アクションに関連する電子メールが受信および処理されるアカウントです。この電子メール・アカウント名は、wf_config.xmlファイルのXML要素actionableEmailAccountNameで識別されます。
タスクは、前の承認者または前の元の割当て先にプッシュできます。元の割当て先は、タスクの再割当てまたはエスカレートなどを行っている可能性があるため、承認者である必要はありません。wf_config.xmlファイルのXML要素pushbackAssigneeは、タスクが元の割当て先にプッシュされるか、承認者にプッシュされるかを制御します。この要素の可能な値を次に示します。
APPROVER
INITIAL_ASSIGNEES
ルーティング・スリップのタスク割当て先は、区切られた文字列で指定できます。たとえば、次の2つのリストは同じになります。
リスト1:
<participant name="Loan Agent">
<resource isGroup="false" type="STATIC">jcooper, jstein</resource>
</participant>
リスト2:
<participant name="Loan Agent">
<resource isGroup="false" type="STATIC">jcooper </resource>
<resource isGroup="false" type="STATIC">jstein</resource>
</participant>
前述の例では、デリミタとしてカンマ(,)を使用しました。特定の環境で別のデリミタを使用する場合、wf_config.xmlファイルのXML要素assigneeDelimiterでデリミタを指定できます。動的な割当て先名も、区切られた文字列に解釈されます。次の例では、XPath式/task:task/task:payload/payload:assigneeが/task:task/task:payload/payload:assigneeを戻す場合、この参加者は前述のリスト2と同じになります。
<participant name="Loan Agent">
<resource isGroup="false"
type="XPATH">/task:task/task:payload/payload:assignee</resource>
</participant>
ワークフロー・サービスでは、2つのタイプのタスク履歴が保持されます。
詳細な履歴
短い履歴
詳細な履歴には、タスクに対するすべての変更が含まれます。短い履歴には、特定のアクションで作成されたバージョンのみが含まれます。デフォルトでは、タスク開始、再開、結果更新、完了、期限切れおよび取消しが、短い履歴に含まれるバージョンになります。wf_config.xmlファイルのXML要素shortHistoryActionsで、他のアクションを短い履歴リストに追加できます。短い履歴アクションに追加できるアクションを次に示します。
| アクション | アクション | アクション | アクション |
|---|---|---|---|
ACQUIRE
|
INFO_REQUEST
|
RENEW
|
OUTCOME_UPDATE_ROUTE
|
AUTO_RELEASE
|
INFO_SUBMIT
|
RESUME
|
|
ADHOC_ROUTE
|
OVERRIDE_ROUTING_SLIP
|
SKIP_CURRENT_ASSIGNMENT
|
|
DELEGATE
|
PUSH_BACK
|
SUSPEND
|
|
ERROR
|
REASSIGN
|
UPDATE
|
|
ESCALATE
|
RELEASE
|
OUTCOME_UPDATE
|
|
workflowContextが有効な時間の長さです。クライアントが、指定された時間より長くアクティビティを実行しない場合、workflowContextは無効としてマークされ、新しい認証済コンテキストを作成する必要があります。Oracle BPEL Worklist Applicationの場合、ユーザーがアプリケーションにログインしたままで、workflowServiceSessionTimeoutInMinutesに指定された値よりも長い期間アクティビティを実行していない場合、アプリケーションに再度ログインする必要があることを示します。
ユーザー・メタデータ・サービスは、ユーザーおよびグループのワークフロー・ルールをOracle Business Rulesリポジトリ・ファイルに格納します。wf_config.xmlファイルのruleRepositoryInfoセクションにより、このファイルの参照方法が構成されます。リポジトリ・ファイルへのアクセスは、ファイル・システム、またはWebDAVプロトコルを介してHTTPサーバーから行います。同じルール情報にアクセスする必要がある個別のホスト上に、ユーザー・メタデータ・サービスの複数のインスタンスがある場合、WebDAVを介してリポジトリにアクセスすると便利です。個別のインスタンスはすべて、同じWebDAV URLをポイントできます。
デフォルトでは、ルール・リポジトリはWFRepositoryファイルで、wf_config.xmlと同じディレクトリにあります。
ファイル・システムでリポジトリを指定する場合、ruleRepositoryInfoの次のプロパティを設定します。
ruleEngine: ORACLE(現在サポートされているのはOracle Business Rules Rules Engineのみ)
repositoryLocation: ディレクトリSOA_Oracle_Home¥bpel¥system¥services¥configに対して相対的に指定した、リポジトリ・ファイルへのファイル・パス
dictionaryName: WFDictionary
reposProperty
name: reposType, value: jar
WebDAVを使用してワークフロー・ルール・リポジトリをホストするには、WebDAV Oracle Business Rulesリポジトリを設定します。WFRepositoryファイルベースのリポジトリからWebDAVベースのリポジトリにディクショナリWFDictionaryをインポートするには、Oracle Business Rules Rule Authorのインポート・ユーティリティを使用します。
ruleRepositoryInfoの次のプロパティを設定します。
ruleEngine: ORACLE(現在サポートされているのはOracle Business Rules Rules Engineのみ)
repositoryLocation: WebDAVリポジトリのURL
dictionaryName: WFDictionary
reposProperty
name: reposType, value: webDAV
name: proxyHost, value: WebDAVリポジトリにアクセスするときに使用するWebプロキシ(このプロパティはオプション)
name: proxyPort, value: Webプロキシ・ポート(このプロパティはオプション)
name: wallet, value: セキュアなWebDAV URLに接続するための証明書を含むウォレット・ファイルへの(ローカル・ファイル・システム上の)パス(このプロパティはオプション)
Oracle BPEL Process ManagerとOracle Application Serverサービス・レジストリ(OracleASサービス・レジストリ)を統合できます。
OracleASサービス・レジストリは、Universal Description, Discovery and Integration(UDDI)仕様のバージョン3に準拠した実装で、Service Oriented Architecture(SOA)の主要なコンポーネントです。UDDIレジストリは、パブリッシュされたサービスの検索、サービスの呼出し、およびサービスに関するメタデータ(セキュリティ、転送またはサービスのクオリティ)の管理に必要な標準ベースの基盤を提供します。コンシューマはニーズに合わせて、パブリッシュされたサービスを参照および選択できます。
Oracle BPEL Process ManagerとOracleASサービス・レジストリを統合することで、サービス・エンドポイント(物理的なホスト場所、実装など)の変更からOracle BPEL Process Managerプロセスが分離されます。
Oracle BPEL Process ManagerとOracleASサービス・レジストリ間の統合は、実行時に参照を(OracleASサービス・レジストリに登録されたサービスの)サービス・キーに渡すことで実行されます。レジストリ・サービスURIは、構成プロパティによってOracle BPEL Process Managerのドメイン・レベルで識別されます。パブリッシュされたサービスのサービス・エンドポイントが変更されると、(変更されない)サービス・キー参照を使用して新しい物理エンドポイントが検出されます。
この項では、OrderBookingチュートリアルのRapidDistributors WebサービスをOracleASサービス・レジストリと統合する方法の概要について説明します。この項で説明する内容は次のとおりです。
Oracle Application Server SOA拡張インストール・タイプをインストールします(推奨)。Oracle Application Server SOA基本インストール・タイプをインストールする場合、手順3の説明にある追加の構成手順を実行する必要があります。
『Oracle Application Server管理者ガイド』の説明に従って、次の方法のいずれかを使用して第2のOC4Jインスタンスを作成します。
createinstanceユーティリティの使用
Oracle Enterprise Manager 10g Application Server Controlコンソールの使用
この項の手順では、第2のOC4Jコンテナはregistryという名前です。
Oracle Application Server SOA基本インストール・タイプをインストールした場合は、次の手順を実行します。
SOA_Oracle_Home/opmn/config/opmn.xmlファイルを開きます。
registryコンポーネントを探します。
default-web-siteを次のように変更します。
<port id="default-web-site" range="8889" protocol="http"/>
これにより固定ポート(8889)が割り当てられます。
『Oracle Application Server管理者ガイド』の説明に従って、手順2で作成した第2のOC4Jインスタンスを起動します。
次の場所にあるOracle Technology Networkから、OracleASサービス・レジストリをダウンロードします。
http://www.oracle.com/technology/tech/webservices/htdocs/uddi/index.html
|
注意: この説明では、OracleASサービス・レジストリを十分に理解し、ダウンロードした製品に付属する次のドキュメントを読んでいることを前提としています。
|
ダウンロードしたZIPファイルに含まれている『OracleAS Service Registry 10.1.3 Product Documentation』の説明に従って、OracleASサービス・レジストリをインストールします。OC4Jコンテナに指定されている同じHTTPポート(8889)を使用していることを確認します。
OracleASサービス・レジストリを、Oracle BPEL Process ManagerおよびOracle Enterprise Service Busと同じOC4Jコンテナにインストールしないでください。選択したOracle Application Server SOAインストール・タイプによって、コンテナの場所はhomeまたはOC4J_SOAになります。OC4Jコンテナ名は、インストール・ディレクトリ・パスに表示されます。次に例を示します。
home: Oracle Application Server SOA基本インストール・タイプをインストールした場合のコンテナ名
OC4J_SOA: Oracle Application Server SOA拡張インストール・タイプをインストールするときに、デフォルト値を受け入れた場合のコンテナ名
Oracle Application Server SOAインストール・タイプを停止します。
cd SOA_Oracle_Home/opmn/bin
opmnctl stopall
SOA_Oracle_Home/j2ee/registry/applications/registry/registry/WEB-INF/libからSOA_Oracle_Home/j2ee/OC4J_Home/lib/api-extに、次のライブラリ・ファイルをコピーします。
security-ng.jar
security3-ng.jar
OC4J_Homeは、インストール・タイプのOC4Jコンテナの名前です。
home: Oracle Application Server SOA基本インストール・タイプの場合
OC4J_SOA: Oracle Application Server SOA拡張インストール・タイプの場合
|
注意: api-extディレクトリが存在しない場合は、作成してください。
|
OracleASサービス・レジストリのRegistry_Installation_Home¥libディレクトリからSOA_Oracle_Home/bpel/registry/libディレクトリに、次のライブラリ・ファイルをコピーします。
security2-ng.jar
security_providers_client.jar
SOA_Oracle_Home/j2ee/OC4J_Home/config/server.xmlファイルをバックアップします。
server.xmlファイルを開きます。
server.xmlファイルで、orabpel.commonという名前の共有ライブラリを検索します。
末尾に次の行を追加します。
<code-source path="SOA_Oracle_Home/bpel/registry/lib/security2-ng.jar"/> <code-source path="SOA_Oracle_Home/bpel/registry/lib/security_providers_client.jar"/>
SOA_Oracle_Homeを実際のパスに置換します。
SOA_Oracle_Home/j2ee/OC4J_Home/config/system-jazn-data.xmlファイルをバックアップします。
system-jazn-data.xmlファイルを開きます。
<jazn-loginconfig>セクションに新しいログイン・モジュールを追加します。
<application>
<name>NamePasswordNoAN</name>
<login-modules>
<login-module>
<class>com.idoox.security.jaas.NamePasswordLoginModuleNoAuth</class>
<control-flag>required</control-flag>
<options>
<option>
<name>debug</name>
<value>true</value>
</option>
</options>
</login-module>
</login-modules>
</application>
<application>
<name>NamePasswordAN</name>
<login-modules>
<login-module>
<class>
com.systinet.uddi.security.jaas.NamePasswordLoginModule</class>
<control-flag>required</control-flag>
<options>
<option>
<name>debug</name>
<value>true</value>
</option>
</options>
</login-module>
</login-modules>
</application>
SOA_Oracle_Home/j2ee/registry/config/system-jazn-data.xmlファイルをバックアップします。
system-jazn-data.xmlファイルを開きます。
<jazn-loginconfig>セクションに新しいログイン・モジュールを追加します。
<application>
<name>HttpRequest</name>
<login-modules>
<login-module>
<class>com.systinet.uddi.security.jaas.SmLoginModule</class>
<control-flag>required</control-flag>
<options>
<option>
<name>debug</name>
<value>true</value>
</option>
</options>
</login-module>
</login-modules>
</application>
<application>
<name>NamePasswordNoAN</name>
<login-modules>
<login-module>
<class>com.idoox.security.jaas.NamePasswordLoginModuleNoAuth</class>
<control-flag>required</control-flag>
<options>
<option>
<name>debug</name>
<value>true</value>
</option>
</options>
</login-module>
</login-modules></application>
<application>
<name>NamePasswordAN</name>
<login-modules>
<login-module>
<class>
com.systinet.uddi.security.jaas.NamePasswordLoginModule</class>
<control-flag>required</control-flag>
<options>
<option>
<name>debug</name>
<value>true</value>
</option>
</options>
</login-module>
</login-modules>
</application>
<application>
<name>IdentityAsserter</name>
<login-modules>
<login-module><class>
com.systinet.uddi.security.jaas.IdentityAsserterLoginModule</class>
<control-flag>required</control-flag>
<options>
<option>
<name>debug</name>
<value>true</value>
</option>
</options>
</login-module>
</login-modules>
</application>
『OracleAS Service Registry 10.1.3 Product Documentation』の第8項、認証構成の説明に従って、OracleASサービス・レジストリの基本認証を有効にします。
SOA_Oracle_Home/j2ee/registry/application-deployments/registry/registry/orion-web.xmlを開き、search-local-classes-firstの値をfalseに変更します。
Oracle Application Server SOAインストール・タイプを起動します。
cd SOA_Oracle_Home/opmn/bin
opmnctl startall
これで、RapidDistributors Webサービスをデプロイする準備ができました。
「スタート」→「すべてのプログラム」→「Oracle - Oracle_Home」→「Oracle BPEL Process Manager」→「Developer Prompt」を選択して、SOA_Oracle_Home¥bpel¥samplesディレクトリでオペレーティング・システムのコマンド・プロンプトを開きます。
ディレクトリをtutorials¥127.OrderBookingTutorialサブディレクトリに変更します。
cd tutorials\127.OrderBookingTutorial
次のコマンドを入力します。
ant
これにより、RapidDistributorsを含む必要なサービスがデプロイおよび起動されます。成功した場合は、末尾にメッセージが表示されます。
BUILD SUCCESSFUL
OracleASサービス・レジストリに移動します。
『OracleAS Service Registry 10.1.3 Product Documentation』のサービスのパブリッシュに関する項のプロバイダの作成およびサービスのパブリッシュの説明に従って、RapidDistributorsサービスをOracleASサービス・レジストリにパブリッシュします。『Registry Step By Step Guide About Oracle Registry』にも例が記載されています。
サービス(この例ではRapidDistributorsという名前)をパブリッシュすると、バインディングを追加する準備ができます。バインディングは、インスタンスのアクセス・ポイントの取得元になるWebサービス・インスタンスを表します。詳細は、『OracleAS Service Registry 10.1.3 Product Documentation』のバインディング・テンプレートのパブリッシュに関する項を参照してください。
パブリッシュされたサービスを右クリックし、「Add binding」を選択します。
「Add Binding」ページが表示されます。
RapidDistributorsサービスのWebサービス・アクセス・ポイントを入力します。
http://hostname:port/orabpel/default/RapidDistributors/1.0/
「Use type」リストからエントリを選択します。
wsdlDeployment(必須の選択項目で、サービスの物理エンドポイントを指します)
http://hostname:port/orabpel/default/RapidDistributors/1.0/RapidDistributors?wsdl
endPoint(任意の選択項目で、WSDLエンドポイントを指します)
http://hostname:port/orabpel/default/RapidDistributors/1.0/
other(任意の選択項目で、サービスの抽象的な場所を指します)
http://hostname:port/RapidDistributors?wsdl
完了後、「Add binding」をクリックします。
サービスにバインディングが追加されます。サービス・キー値を書き留めてください。「タスク7: OracleASサービス・レジストリ・サービス・キーの指定」で、bpel.xmlファイルのデプロイメント・ディスクリプタ・プロパティにこの値を指定します。
次の方法のいずれかを使用して、Oracle BPEL Controlにアクセスします。
「スタート」→「すべてのプログラム」→「Oracle - Oracle_Home」→「Oracle BPEL Process Manager」→「BPEL Control」を選択します。
次のURLに移動します。
http://localhost:port/BPELConsole
「BPELドメインの管理」→「構成」を選択します。
uddiLocationプロパティの値を入力します。
http://hostname:port/registryname/uddi/inquiry
このプロパティは、OracleASサービス・レジストリのWSDL URLを指す必要があります。次に例を示します。
http://hostname.us.oracle.com:42461/registryrc7/uddi/inquiry?wsdl
|
注意: いずれかの時点でOracle BPEL Process Managerインストールに存在できるのは、1つのOracleASサービス・レジストリ参照のみです。 |
ここで、Oracle JDeveloperでOracleASサービス・レジストリへの接続を作成します。
Oracle JDeveloperの「表示」メイン・メニューから「接続ナビゲータ」を選択します。
「UDDIレジストリ」を右クリックします。
「UDDIレジストリ接続の作成」を選択します。
「ようこそ」ページで「次へ」をクリックします。
次の接続情報を入力します。
| フィールド | 説明 |
|---|---|
| 接続名 | レジストリに接続するための名前を入力します。 |
| エンドポイントのURL | エンドポイントのURLを入力します。次に例を示します。
http://hostname.us.oracle.com:42461/registryrc7/uddi/inquiry?wsdl
注意: ここで入力する値は、「タスク4: でのレジストリ・サービスURLの指定」の手順3でOracle BPEL Controlに指定した値と同じです。 |
「次へ」をクリックします。
「接続のテスト」をクリックして、接続をテストします。接続が成功した場合、次のメッセージが表示されます。
Successfully contacted UDDI inquiry endpoint
「終了」をクリックします。
パートナ・リンクの作成中に「UDDIレジストリ」フォルダでサービスを参照することで、「サービス・エクスプローラ」ウィンドウで必要なエンドポイント・サービスを選択できます。
ここで、RapidDistributorsパートナ・リンクを構成して、OracleASサービス・レジストリでWebサービス・アクセス・ポイントを選択します。
Oracle JDeveloperでSOA_Oracle_Home/bpel/samples/tutorials/127.OrderBookingTutorial/OrderBooking/OrderBooking.jprファイルを開きます。
デザイナ・ウィンドウでRapidDistributorsパートナ・リンクをダブルクリックします。
パートナ・リンクの編集ウィンドウが表示されます。
懐中電灯(サービス・エクスプローラという名前の左から2番目のアイコン)をクリックし、「タスク1: Oracle Application Server SOAスイートおよびOracleASサービス・レジストリのインストール」でデプロイしたRapidDistributorsサービスを選択するために、サービス・エクスプローラ・ウィンドウにアクセスします。
ナビゲーション・ツリーを展開し、「UDDI Registry」でRapidDistributorsサービスを選択します。
ここで、registryServiceKeyプロパティを使用してサービス・キー値を構成します。これにより、パートナ・リンクからOracleASサービス・レジストリを介してWebサービスを起動できます。
bpel.xmlファイルの各partnerLinkBindingセクションで、RapidDistributorsのパートナ・リンクに次のregistryServiceKeyプロパティを追加します。
<property name="registryServiceKey">uddi:e3955ac0-45a8-11db-9dd0-28bc5b509dce</property>
手順6でサービス・キー値が作成されました。
実行時に、RapidDistributorsのサービスが、OracleASサービス・レジストリから取得したサービス・エンドポイントから起動されることを確認できます。
Basic認証を使用してクライアント側を保護する場合は、次の手順を実行します。
bpel.xmlファイルの各partnerLinkBindingセクションに次の2つのプロパティを追加して、セキュアなHTTP Basic認証を有効にします。
<property name="registryUsername"> registry_username </property> <property name="registryPassword"> registry_password </property>
内容
registry_username: レジストリ・ユーザーの名前
registry_password: このレジストリ・ユーザーのパスワード
(uddiLocationプロパティを設定するには)「BPELドメインの管理」→「構成」で、Oracle BPEL Controlのドメイン・レベルでこれらのプロパティを設定することもできます。これらのプロパティがbpel.xmlファイルでも設定されている場合、そのファイルの設定により、Oracle BPEL Controlでの設定が上書きされます。
この項では、OracleASサービス・レジストリとOracle BPEL Process Managerを統合する場合のトラブルシューティングの手順について説明します。
リモートのOracle Application Server SOAインスタンスでサービス・レジストリがデプロイされ、異なるホストの別のSOAインスタンスでBPELプロセスがデプロイされる場合、バインディング・フォルトが1度発生します。呼出し側BPELプロセスがレジストリにパブリッシュされたサービスを初めて起動したときに、次のエラーが表示されます。サービスのその後の呼出しはすべて、エラーなしで正常に行われます(デプロイ後)。
<bindingFault xmlns="http://schemas.oracle.com/bpel/extension"><part name="code"><code>GenericError</code> </part><part name="summary"><summary>http_client transport doesn't support nonProxyHosts with wildcards</summary> </part></bindingFault>
WSDL URLが、静的なIPアドレスではなくDHCP通信プロトコルを使用してホストをポイントしている場合、この情報を含むようにSOA_Oracle_Home/opmn/conf/opmn.xmlファイルを更新します。次に例を示します。
-Dhttp.proxyHost=www-proxy.us.oracle.com -Dhttp.proxyPort=80 -Dhttp.nonProxyHosts=122.39.159.106|*acmecorp.com|*.acme.com|localhost| ser vices.xmethods.net|xmethods.net|*idc.acme.com|dhcp-idc-towers-122- 39-159-106.idc.acme.com"/>
それ以外の場合、デプロイ・エラーが発生する可能性があります。