BPEL インポート/エクスポート ユーザーズ ガイド
![]() |
![]() |
![]() |
![]() |
この節では、WebLogic Workshop® の BPEL インポート ツールを使用して BPELファイルをインポートする方法を説明します。
BPEL4WS (一般に「BPEL」と呼ばれる Web サービスの Business Process Execution Language) はビジネス プロセス自動化のための正式な言語仕様を定義します。BPEL で記述されたプロセスは、XML ドキュメントを使用する Web サービス間の対話を、標準化された方法で統合することができます。BPEL 仕様に準拠していればどのプラットフォームや製品であってもこれらのプロセスを実行できます。したがって、BPEL により、プロセスの定義をさまざまな作成ツールと実行プラットフォーム間で移動することが可能になり、プロセスの自動化に対する顧客の投資を保護することができます。ビジネス プロセス定義を標準化しようとする試みは以前からありましたが、BPEL はそれまでで最大の注目を浴び、必要なソフトウェア ベンダの支持を獲得した第一号です。
BPEL4WS 1.1 は BEA、Microsoft®、および IBM® から公開された最新の仕様ですが、OASIS 標準化団体により検討中の次期 BPEL 標準は反映されていません。最終バージョンは BPEL4WS 1.1 とは異なるため、本ツールは主に、1.1 仕様をサポートする他のツールとの設計時の相互運用を可能にすることを目的として提供されています。
BPEL 言語の詳細については、BEA、IBM、および Microsoft により発行され、標準化のために OASIS に提出された以下で利用可能な BPEL4WS 仕様 v1.1 を参照してください。
OASIS 主催の BPEL 標準化作業のための公式ホームページ (以下 URL)
BEA WebLogic IntegrationTM では、ビジネス プロセスは、Java (JPD) に BEA プロセス定義を使用して定義されます。BPEL インポート ツールは、BPEL ファイルから JPD ファイルへの変換に使用する設計時支援機能です。
BPEL インポート ツールで JPD ファイルに BPEL ファイルをインポートして、BPEL 設計環境で使用することができます。BPEL ファイルの主な統合ロジックは JPD ファイルにインポートされますが、インポートされた JPD ファイルは通常 WebLogic Workshop でただちに実行することはできません。インポートされたプロセスが実行できるように、WebLogic Workshop の JPD ファイルを変更する必要があります。
特定の状況では、JPD と BPEL 言語間、または XQuery、Xpath、XSLT 間の相違を含むさまざまな表現言語間の機能的な不一致のため、実行時セマンティクスは保証されていません。ベンダ拡張機能、外部アーティファクト、または環境設定に関わる場合、実行時セマンティクスも保証されません。上記の理由により、インポートされた JPD ファイルは、適切に動作することを確認するために加えられたすべての必要な変更を検討し、テストする必要があります。
一般に、BPEL インポート ツールは、 入力として、完全な BPEL と WSDL アーティファクトを想定しています。ツールはある程度までは、不完全な BPEL や、WSDL アーティファクトを扱います。このため、進行中の BPEL ファイルを JPD としてインポートしてから WebLogic Integration 環境で処理を完了することができます。不完全なケースは多く、他のケースと同様に、WSDL ファイル、型定義、ポート型定義が不足していたり、<while>
、<switch>
、<invoke>
、<receive>
、<reply>
、<onMessage>
、<onAlarm>
、<throw>
の構造が不完全であることがあります。BPEL インポートが JPD ファイルに入力アーティファクトをインポートすることができない場合、エラーメッセージが現れ、将来のインポートのために入力アーティファクトを修正することができます。
注意: BPEL インポート ツールは、スキーマ/プロジェクト ルート ディレクトリへのインポートをサポートしません。ルート ディレクトリにインポートしようとすると、以下のエラーメッセージが出ます。
インポートが始まり、以下の図で示されているように、インポートの進捗が [Design] ペインの下の [BPEL Import] ペインに表示されます。
変換が失敗した場合、次の図のように、変換が中止され [BPEL Import] ペインにエラーメッセージが表示されます。
BPEL Import SUCCESSFUL
.BPEL Import Failed
.注意: [Design] ペインの下の [ビルド] ペインは次の図のようにスキーマ インポート プロセスに関する診断メッセージを表示します。
注意: BpelImport.log
と名付けられたインポート プロセスのログファイルは %BEA_HOME%\weblogic81\workshop
に保存されます (%BEA_HOME%
は WebLogic Workshop がインストールされたディレクトリ)。このログファイルはインポート プロセスについての情報を提供します。
新しい JPD ファイルが 手順 2 で指定されたフォルダに現れ、次の図のように WSDL ファイルが スキーマ フォルダにコピーされ、置かれます。
これによりインポート プロセスが完了し、新しい JPD ファイルが 手順 2 で指定されたフォルダに置かれます。
この節では、BPEL インポート ツールのいくつかの確認済みの制限事項および問題について説明します。これらの問題の大部分が JPD と BPEL 言語間の本来有する違いによるものです。
生成された JPD ファイルが入力 BPEL ファイルと意味的に対応することを確認することが非常に重要です。
eventHandler
はサポートされていません。BPEL ファイルに含まれていると、変換プロセスでは無視され、「Global
EventHandlers are not supported, hence ignored
」というメッセージが表示されます。until
属性で期間が指定された wait
および onAlarm
の変換はサポートされていません。until
属性が BPEL ファイルに含まれていると、その属性はサポートされていないため、生成される JPD ファイルでは無視されること通知する警告が表示されます。この警告が表示された後、変換プロセスは続行されます。注意: 有効な BPEL ファイルに両方の属性 (for
と until
) を指定することはできません。
flow
で始まる BPEL ファイルはサポートされていません。最初の論理的な子が flow
構造体である BPEL ファイルは変換できません。ここでは、論理アクティビティとは、シーケンスおよびスコープ以外のアクティビティを指します。flow
アクティビティの links
の変換はサポートされていません。変換する BPEL ファイルに links
が含まれていると、links
、source
、target
が含まれるため、生成される JPD ファイルが有効ではないことを通知する警告が表示されます。変換プロセスは続行され、サポートされていないこれらのアクティビティは無視されます。reply
アクティビティを使用して通常の出力/結果を返す BPEL ファイルの変換はサポートされていません。適切に変換するために、BPEL ファイルには、通常の結果を返す reply
アクティビティを 1 つだけ指定する必要があります。これは JPD ファイルには、同期 clientReceive
に対する returnMethod
を 1 つしか含めることができないためです。これに対して、BPEL ファイルには、単一の receive
に対して複数の reply
アクティビティを含めることができます。単一の receive
ノードと複数の receive
ノードを単一の clientRequestWithReturn
に直接マップする方法はありません。OnAlarm
アクティビティを含む pick
アクティビティの変換はサポートされません。これは pick
は eventChoice
に変換されるためです。各 eventChoice
に含めることができる timeoutEvent
ノードは最大 1 つですが、これは 1 つの onAlarm
アクティビティに対して 1 つ作成されます。 bpws:getVariableData(..)
による onAlarm
アクティビティの for
属性の指定はサポートされていません。bpws:getVariableData (..)
を使用して for
属性を指定すると、インポートされたコードに構文エラーが発生します。WARNING: Failed to parse input XSD & WSDL files. Please see logs for detail
」というメッセージが表示され、ログ ファイルに「Duplicate global type
」というエラー メッセージがある場合は、ネームスペースの複数の定義を無視するように指定する必要があります。インポート プロセス用のログ ファイル BpelImport.log
は、%BEA_HOME%\\weblogic81\workshop
に格納されています。%BEA_HOME%
は、WebLogic Workshop をインストールしたディレクトリです。このログファイルはインポート プロセスについての情報を提供します。
ネームスペースの複数の定義を無視するように指定するには、[スキーマ プロジェクト|プロパティ|ビルド] を選択し、無視するネームスペースを [ignore multiple definitions in following namespaces] フィールドに指定します。
assign
アクティビティをインポートしたときに実行されるクエリ解析が制限されます。したがって、生成される XQuery 式が常に正しい構文とは限りません。生成されたすべての XQuery 式が正しいことを確認してください。assign
を変数に変換すると、変換後の XQuery ファイルをデザイン ビューで表示したときに「The main XML element does not match the root node of the target schema
」という「RSE ERROR」が発生する場合があります。ただし、実行時には正しい値が生成されるので、このメッセージは無視できます。このエラーは、XML Mapper の[Design] ビューの制限により、正しい XQuery 式も常に解析できるわけではないために発生します。eventHandlers
が含まれる BPEL ファイルをインポートすると、eventHandler
onMessage パスに対してダミーの Timer メソッドが生成されます。JPD の仕様では、onMessage
パスと onTimeout
パスは自動的に実行されないプロセス ノード (またはノードのブロック) にのみ関連付けることができます。この制約に対応するために、eventHandler
が receive
、onMessage
、flow
、wait
のどのアクティビティも含まないスコープに関連付けられる場合は、1 秒でタイムアウトのあるダミーの Timer ノードが作成されます。attributeFormDefault="qualified"
と elementFormDefault="qualified"
を設定し、修飾クエリ文字列を使用して、クエリ文字列を適切に修飾する必要があります。適切に修飾されていない場合、生成された XQueries は実行時に失敗します。reply
アクティビティを指定できます。JPD ファイルでは、これはサポートされていません。複数のパートナ リンクのうち 1 つだけが、応答セマンティクスに合致する clientRequestWithReturn
として変換されます。他のパートナ リンクの reply
アクティビティは非同期インタフェースに変換されます。onMessage
パスに変換されますが、セマンティクスに多少の違いがあります。インポートされた JPD ファイルでは、イベントが受信され、onMessage
パスが実行されると、その onMessage
パスが完了するまでブロック (BPEL スコープに相当) の実行は継続されません。つまり、イベント ハンドラのインスタンスは、常に 1 つだけアクティブになることができます。invoke
アクティビティを Web サービス の controlSend
呼び出しに変換します。指定したパートナ サービスの Web サービス コントロールが生成され、JPD ファイルはコントロールの対応するメソッドを呼び出します。今回のリリースでは、特定の状況での Web サービス コントロール (JCX ファイル) を生成機能に制限があります。生成された JCX ファイルの内容を慎重に調査して、コンパイル可能であることを確認してください。 <reply>
が含まれる BPEL プロセスから生成される JPD ファイルが、論理的に正しくありません。これは、同期操作の対応する receive
と reply が同じレベルに存在しないためです。 <receive> - <reply>
ブロック内の任意のノードに関連付けられたイベント ハンドラはサポートされません。このような場合、生成された JPD はコンパイルできません。
![]() ![]() |
![]() |
![]() |