Topics
Service-Oriented Architecture
Oracle WLIファイル・コントロールとOracle File Adapterの比較Daniel Amadei、Heidi Buelow著 Oracle WLIユーザーのためのOracle SOA Suite基礎講座シリーズの今回の記事では、Oracle WebLogic Integration(Oracle WLI)のファイル・コントロール機能とOracle BPEL Process Manager(Oracle BPEL PM)の対応する機能を比較します。2009年5月公開
[ 1ページ] [ 2ページ] [ 3ページ] [ 4ページ] Oracle BPELでのXMLの受信、CSV形式への変換、FTPを使用したファイルの書込みこの最後のユースケースでは、ファイルを読み取り、カンマ区切り値(CSV)形式でデータを書き込みます。 今度は、ディレクトリ内のファイルをポーリングする方法を示します(最初のユースケースと同じメソッドを使用してファイルを読み取ることにより、 Oracle WLIの3つ目のユースケースとより厳密に対応づけることができます)。 プロセスではまず、ファイルをポーリングし、読取りサービスを使用してBPELプロセスを初期化します。 次に、CSV形式でデータをフォーマットし、FTPアダプタを使用してファイルを書き出します。 FTPサーバーを稼働し、このプロジェクトで使用するように構成しておく必要があります。 ローカルFTPをセットアップするには、サンプル・ファイル・フォルダからftpserver-1.0.0-M3.zipファイルを取得して、/tmp フォルダに解凍します。 次に、JAVA_HOME環境変数が、Java JDKのローカルのインストール場所に設定されていることを確認します。 FTPサーバーをWindowsのコマンド・プロンプトまたはUnixのシェルから起動するには、/tmp/ftpserver-1.0.0-M3/binディ レクトリに移動して、次のコマンドを実行します。
ftpd.bat res/conf/ftpd-typical.xml
ftpd.sh res/conf/ftpd-typical.xml
SOA Suiteサーバーはすでに、FTPクライアントを使用してFTPサーバーにアクセスするように構成されています。 この構成を新しく作成したFTPサーバーに合わせて変更します。 この手順は、コネクション・ファクトリの更新に、OC4JサーバーとWebLogicサーバーのどちらを使用する場合でもほぼ同じです。
では、まず新しいBPELプロジェクトを作成します。 JDeveloperでアプリケーションを右クリックして、「 New Project」を選択します。 GeneralのProjectsで、プロジェクト・タイプとして「 BPEL Process Project」を選択します。 プロセス名としてTransformXmlToRawDataAndWriteToFTPを 入力します。 テンプレート・タイプとして「 Empty BPEL Process」 を選択します。 「 Finish」を選択します。 プロジェクトが作成されます。 「 Receive」アクティビティを Drop Activity Hereボックスにドラッグします。 正しい位置に移動するとアクティビティが黄色でハイライトされます。 左矢印をパートナー・リンクにドラッグして、ReceiveアクティビティをreadPartnerSchemaパー トナー・リンクと連結します。 Receiveプロパティのダイアログが開きます。 パートナー・リンクと操作は自動的に入力されています。 名前にReceive_Stocksと 入力し、「 Auto-Create Variable」ボタンを選択します。 Create Variableダイアログで、変数名をstocksXMLに 変更して、「 OK」をクリックします。 Receiveダイアログで、「 Create Instance」チェック・ボックスをオンにして、「 OK」をク リックします。 次に、CSVファイルを書き出すためのサービスを作成します。 FTPを使用してファイルを書き出します。 FTPアダプタを、BPELデザイン画面の右側にある Servicesペ インにドラッグします。 ウィザードが開きます。 「 Next」をクリックして、 手順1に進みます。 サービス名にFTPFileControlと入力し、「 Next」 をクリックします。 ウィザードのこのページでは、FTP JNDI名を設定します。 これは、SOA Suiteのサーバー管理機能で構成したFTPです。 デフォルト値eis/FTP/FTPAdapterを受け入れ、前に編集した FTPセットアップを使用します。 ファイル・タイプとして「 ASCII」を、操作タイプとして「 Put」を選択し、「 Next」 をクリックします。 ファイルの出力先ディレクトリを入力します。 このケースでは、出力先ディレクトリはFTPサーバー構造内に存在していなければなりません。 スラッシュ( /) を入力します。これにより、提供のサンプルFTPサーバーのデフォルトの場所にファイルが書き出されます。 File Naming ConventionにpartnerStocks%SEQ%.csv_と 入力します。 そのほかの値はデフォルトのまま変更せず、「 Next」をクリック します。 「 Browse」ボタンを使用して、サンプル・ファイル・ディ レクトリにあるstocks.csvファイルを開きます。 下部のウィンドウにファイル内のテキストが表示されます。 「 Next」を選択します。 「 File contains multiple record instances」を選択して、「 Next」をクリックします。 使用する名前空間を入力し、複数レコードの要素名にStocks、単一レコードの要素名にStockと 入力して、「 Next」をクリックします。 「 Next」を3回クリックして形式指定のデフォルト値を受け 入れ、「 Finish」をクリックします。 アダプタ・ウィザードに戻ると、指定したファイルの文字列データ定義の、新規に作成されたxsdファイルが表示されます。 「 Next」、「 Finish」 の順にクリックします。 パートナー・リンク・ダイアログの「 OK」を選択します。 ここで、writeサービスを呼び出して、正しいメッセージ・タイプで必要な変数を作成してみます。 そのあと、入力データを出力データに変換して、終了します。 「 Invoke」アクティビティを Receiveアクティビティの直後にドラッグします。 InvokeアクティビティをFTPFileControlパー トナー・リンクに連結すると、 Invokeダイアログが開きます。 InvokeにInvoke_FTPFileControlという名前をつけ、 Input Variableボックスの右側にある「 Automatically Create Input Variable」ボタンを選択し ます。 変数名をstocksCSVに変更します。 「 OK」 をクリックします。 「 OK」をクリックして、Invokeプロパティを設定しま す。 次に、ファイルから読み取ったデータを、FTPの入力に必要な形式に変換する必要があります。 「 Transform」アクティビティをドラッグして、 Receiveアクティビティと Invokeア クティビティの間にドロップします。 ソースを「 stocksXML」に、ターゲットを「 stocksCSV」 に設定します。 変換ファイル名を入力して、「 Create」をクリックします。 今度は、フィールド名が異なるため、各フィールドを手動で連結する必要があります。 3つのフィールドを連結したあと、StocksをStocksに連結すると、for-each XSLT構造体が作成されます。または、下図のような結果になるように手動で構造体を追加します。 「 Save All」をクリックします。 これで、このユースケースの実装は完了しました。 FTPサーバーが稼働していることを確認したら、配置が可能です。 このプロセスは、ファイルをポーリングして、そのファイルが表示されるまで待ちます。 前のユースケースの出力ファイルpartnerStocks_1.xmlが、 このユースケースの入力ファイルになります。あるいは、サンプル・ディレクトリに用意されているpartnerStocks.xmlを 入力ファイルとして使用することもできます。 このプロセスの入力ディレクトリに、入力ファイルを移動またはコピーしてください。 ファイルが消えるのを待ち、FTPのデフォルトの出力ディレクトリ\tmp\ftpserver-1.0.0-M3\res\homeに、 新しい出力ファイルが作成されているかどうかを確認します。 ファイルの内容を表示します。 BPELコンソールで、監査証跡を表示することもできます。 このユースケースは、ファイル内データの形式を変更する方法を示しています。 BPELプロセスを拡張して、別の方法でデータを操作することもできます。 以上で、ファイル・アダプタのさまざまな機能を示す3つのユースケースが完成しました。 この機能は、マウスのポイント/クリックによる宣言的な編集操作によってきわめて簡単に作成できます。 さまざまな形式のファイルの読取りと書込みをおこない、BPELプロセス内で目的の形式のデータに変換できます。 主要なポイントと推奨事項この記事では、Oracle WLIとOracle BPEL PMについて、同期ファイル操作とデータ変換の各機能に焦点を当てて説明しました。 以下の表は、各機能がOracle WLIとOracle BPEL PMでどのように実現されているかに注目し、この記事で実際に使用した内容をまとめたものです。 どちらの製品も必要とされる機能を備えています。
経験豊かなOracle WLIユーザーであれば、Oracle WLIのすべてのファイル処理機能は、Oracle BPEL PMにも用意されていることがわかるでしょう。 Oracle BPEL Process Managerによる設計では、ポイント/クリック操作による宣言型のユーザー・インタフェースが使用できます。これにより、新規ユーザーでも Oracle SOA Suiteの操作を簡単かつ迅速に習得し、すぐに使いこなせるようになります。
|
||||||||||||||||||||||||||||||||||