9 ファイル転送の管理

この章では、Oracle Managed File Transfer (MFT)の使用方法、およびSOAコンポジット・アプリケーションとOracle MFTの統合方法の概要を説明します。

この章の内容は次のとおりです。

9.1 ビジネス課題

会社Xには、コンポジットを異なるエンドポイント・タイプ(ファイルベースのエンドポイント・タイプやFTPベースのエンドポイント・タイプなど)と相互作用させる要件があります。たとえば、FTPサーバーを使用して、ファイルをファイル・システムに書き込めるようにする必要があります。

9.2 ビジネス・ソリューション

これらのビジネス課題に対処するために、会社Xは表9-1のコンポーネントを使用するビジネス・ソリューションを設計します。

表9-1 ビジネス・ソリューションを提供するコンポーネント

コンポーネント このコンポーネントがビジネス課題に対処する方法 コンポーネントの説明

Oracle MFT転送

  • Oracle MFT転送はファイルを受信し、そのファイルをMFT埋込みFTPサーバーを使用してファイル・システムに書き込みます。

  • Oracle MFTは、SOAコンポジット・アプリケーション内のMFTサービスを起動し、コンテンツをインラインで渡すか参照によって渡すかをファイル・サイズに基づいて動的に決定します。

Oracle MFTは、高パフォーマンスで標準ベースのエンドツーエンド管理対象ファイル・ゲートウェイです。Oracle MFTは、ファイル暗号化、スケジューリング、埋込みFTPおよびsFTPサーバーを含む軽量のWebベース設計時コンソールを使用した設計、デプロイメントおよびファイル転送のモニタリングを提供します。

この章の後続の項では、表9-1のコンポーネントを使用してファイル転送のビジネス課題に対処する方法について、より詳細に説明します。

9.2.1 転送、ソースおよびターゲットの作成

Oracle MFTのファイル配信構造は、次のアーティファクト・タイプで構成されます。

  • ソースは、ファイルの配信元を定義します。

  • ターゲットは、ファイルの宛先を定義します。

  • 転送は、1つのソースを1つ以上のターゲットに関連付けます。

これらのアーティファクトは、Oracle Managed File Transferコンソールのデザイナ・ページで作成します。

会社Xは、OrdersTransferという転送を作成します(図9-1を参照)。このページには、ソースおよびターゲットを作成するためのオプションが含まれています。

会社Xは、次のソースおよびターゲットのアーティファクトを作成します。

  • CreateSourceというソース。ファイルは/ordersディレクトリに配置されます。FTP埋込みサーバーが、ファイルの転送用に選択されます。図9-2に詳細を示します。Order*.xmlのパターンに従うファイルを処理するために、ソース・ロケーションのより詳細な定義が行われます。

    図9-2 ソース・ロケーション

    図9-2の説明が続きます
    「図9-2 ソース・ロケーション」の説明
  • OrdersFileTargetというターゲット。転送ファイルが/tmp/ordersディレクトリに配置されます。ファイル・ターゲットは、/tmp/orders/outputなどのサブディレクトリでこの場所をオーバーライドすることで再利用できます。圧縮レベルを選択するために、ターゲットのより詳細な定義が行われます。図9-3に詳細を示します。

    図9-3 ターゲット・ロケーション

    図9-3の説明が続きます
    「図9-3 ターゲット・ロケーション」の説明

デプロイメント後、/ordersOrders*.xmlのパターンに従うファイルは、圧縮形式で/tmp/ordersに書き込まれます。図9-4のOracle Managed File Transferコンソールに、転送結果が表示されます。

9.2.2 MFTサービスを使用したSOAコンポジット・アプリケーションの作成

会社Xは、「MFTProcessor」という名前のSOAコンポジットと空のBPELプロセスを、「BPELプロセスの作成」ダイアログの「サービスを後で定義」を選択することにより作成します。会社Xは、SOAコンポジット・エディタで、「コンポーネント」ウィンドウの「テクノロジ」セクションからコンポジットの「公開されたサービス」スイムレーンにMFTアイコンをドラッグすることで、Oracle MFTサービスを作成します。Oracle MFTサービスは、ファイル・コンテンツをインラインで渡すか参照によって渡すかを、ファイル・サイズに基づいて動的に決定するように設計されます。構成の完了後、サービスは図9-5のようにコンポジットにワイヤリングされます。

図9-5 BPELプロセスに接続されたOracle MFTサービス

図9-5の説明が続きます
「図9-5 BPELプロセスに接続されたOracle MFTサービス」の説明

構成を完了するために、会社Xは、MFTBPELProcess BPELプロセスに必要なアクティビティを追加して構成します:

  • receiveアクティビティは、Oracle MFTサービスによって起動され、入力変数で構成されます。

  • assignアクティビティは、レスポンスとしてペイロード・タイプを送信します。

  • replyアクティビティは、Oracle MFTサービスに出力変数を返します。

完了後、BPELプロセス・デザインは図9-6のようになります。

図9-6 MFTサービスを使用したBPELプロセス

図9-6の説明が続きます
「図9-6 MFTサービスを使用したBPELプロセス」の説明

コンポジットは、Oracle Enterprise Manager Fusion Middleware Controlでデプロイおよび確認されます。

9.2.3 注文ファイルのSOAコンポジットへの送信

会社Xは、追加のOracle MFTターゲットを作成して、デプロイされたMFTProcessorコンポジットを起動します。MFTProcessorコンポジットのエンドポイントURLを、Oracle Enterprise Manager Fusion Middleware Controlの「Webサービスのテスト」ページからコピーします。図9-7に詳細を示します。

図9-7 デプロイ済コンポジットのエンドポイントURLのコピー

図9-7の説明が続きます
「図9-7 デプロイ済コンポジットのエンドポイントURLのコピー」の説明

Oracle Managed File Transferコンソールで、会社Xは、「Webサービスのテスト」ページからコピーされたコンポジットのURLを使用してOrdersSOATargetターゲットを作成し、ファイル配信方法としてインライン添付を選択します。図9-8に詳細を示します。

再デプロイメント後、/ordersディレクトリのOrders*.xmlパターンに従うファイルが、/tmp/ordersディレクトリに転送されます。Oracle Managed File Transferコンソールに、転送結果が表示されます(図9-9を参照)。OrdersSOATargetターゲットは、以前に作成したOrdersFileTargetソースとともに表示されます。

Oracle Enterprise Manager Fusion Middleware Controlのコンポジットのビジネス・フロー・インスタンスの監査証跡にある「ペイロードの表示」リンクに、このファイルがOracle MFT埋込みFTPサーバーを指すFTP参照として送信されたことが示されます。図9-10に詳細を示します。

9.2.4 ペイロード・タイプの処理

会社Xは、MFTProcessorコンポジットのBPELプロセスにifアクティビティを追加します。各ifアクティビティ・ブランチは、Oracle MFTがSOAコンポジットに送信する各種ペイロードを処理するためのXPath式を定義し、「注文処理システムの作成」で作成したProcessOrderサービスをコールするためのインライン処理を実装します。図9-11に詳細を示します。

図9-11 Ifアクティビティ・ブランチ

図9-11の説明が続きます
「図9-11 Ifアクティビティ・ブランチ」の説明

ブランチは次のように定義されます。

  • FtpRefFile: 参照によりファイルを渡します。ファイルはFTPを使用して転送されます。このブランチは、xp20:compare($PayloadType,'FtpRefFile') = 0のXPath式を使用します。

  • FtpRefDir: 参照によりファイルのディレクトリを渡します。ファイルのディレクトリは、FTPを使用して転送されます。このブランチは、xp20:compare($PayloadType,'FtpRefDir') = 0のXPath式を使用します。

  • FileRefFile: 参照によりファイルを渡します。ファイルは、ファイル・アダプタを使用した特別な処理を経た後で渡されます。このブランチは、xp20:compare($PayloadType,'FileRefFile') = 0のXPath式を使用します。

  • FileRefDir: 参照によりファイルのディレクトリを渡します。ファイルのディレクトリは、ファイル・アダプタを使用した特別な処理を経た後で渡されます。このブランチは、xp20:compare($PayloadType,'FileRefDir') = 0のXPath式を使用します。

  • InlineBinary: バイナリ・ファイルをインラインで渡します。このブランチは、xp20:compare($PayloadType,'InlineBinary') = 0のXPath式を使用します。

  • InlineXML: XMLファイルをインラインで渡します。これはelseブランチであるため、式は必要ありません。

再デプロイメント後、ビジネス・フロー・インスタンスの監査証跡には、2つの注文ファイルが表示されます(OrderSample.xmlおよびOrderSampleLarge.xml)。各ファイルは、ifブランチのXPath式に基づいて、SOA BPELプロセスの異なるパスをとります。図9-12に詳細を示します。

「フローのトレース」ページの「トレース」表には、「Managed File Transfer」名の隣にリンクがあり、Oracle Managed File Transferコンソールに移動できます。図9-13に詳細を示します。

図9-13 Oracle Managed File Transferコンソールへのリンク

図9-13の説明が続きます
「図9-13 Oracle Managed File Transferコンソールへのリンク」の説明

9.2.5 インライン・ペイロードを使用したProcessOrderコンポジットの起動

会社Xは、「コンポーネント」ウィンドウの「テクノロジ」セクションからMFTProcessorコンポジットの「外部参照」スイムレーンにSOAPアイコンをドラッグします。SOAPサービス参照は、ProcessOrderエンドポイントを起動するように構成されます。図9-14に詳細を示します。

SOAP構成の完了後、会社Xは、BPELプロセスに必要なアクティビティを追加して構成します:

  • Webサービスが起動されるように、invokeアクティビティが、ifアクティビティのelse部分に追加されます。入力変数と出力変数が作成されます。

  • assignアクティビティは、ProcessOrder入力変数にMFTサービス入力ペイロードをマップします。

再デプロイメント後のOrdersSample.xmlファイルは、/ordersに配置されてから/tmp/ordersに転送されます。Oracle Managed File Transferコンソールに、転送結果が表示されます(図9-15を参照)。

監査証跡に、ProcessOrderコンポジットが起動され、注文が処理されたことが示されます。図9-16に詳細を示します。

9.3 関連ドキュメント

表9-2では、この章で説明したコンポーネントと機能をより詳しく説明するドキュメントの参照先を示します。

表9-2 関連ドキュメント

参照内容 参照先

主要なOracle MFTの概念

『Oracle Managed File Transferの使用』Oracle Managed File Transferの理解に関する項

Oracle MFT転送、ターゲットおよびソース

『Oracle Managed File Transferの使用』アーティファクト(転送、ソースおよびターゲット)の設計に関する項