9 ファイル転送の管理
この章の内容は次のとおりです。
9.1 ビジネス課題
会社Xには、コンポジットを異なるエンドポイント・タイプ(ファイルベースのエンドポイント・タイプやFTPベースのエンドポイント・タイプなど)と相互作用させる要件があります。たとえば、FTPサーバーを使用して、ファイルをファイル・システムに書き込めるようにする必要があります。
9.2 ビジネス・ソリューション
これらのビジネス課題に対処するために、会社Xは表9-1のコンポーネントを使用するビジネス・ソリューションを設計します。
表9-1 ビジネス・ソリューションを提供するコンポーネント
コンポーネント | このコンポーネントがビジネス課題に対処する方法 | コンポーネントの説明 |
---|---|---|
Oracle 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のパターンに従うファイルを処理するために、ソース・ロケーションのより詳細な定義が行われます。
-
OrdersFileTargetというターゲット。転送ファイルが/tmp/ordersディレクトリに配置されます。ファイル・ターゲットは、
/tmp/orders/output
などのサブディレクトリでこの場所をオーバーライドすることで再利用できます。圧縮レベルを選択するために、ターゲットのより詳細な定義が行われます。図9-3に詳細を示します。
デプロイメント後、/ordersのOrders*.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のようにコンポジットにワイヤリングされます。
構成を完了するために、会社Xは、MFTBPELProcess BPELプロセスに必要なアクティビティを追加して構成します:
-
receiveアクティビティは、Oracle MFTサービスによって起動され、入力変数で構成されます。
-
assignアクティビティは、レスポンスとしてペイロード・タイプを送信します。
-
replyアクティビティは、Oracle MFTサービスに出力変数を返します。
完了後、BPELプロセス・デザインは図9-6のようになります。
コンポジットは、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に詳細を示します。
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に詳細を示します。
ブランチは次のように定義されます。
-
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.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の使用のアーティファクトの設計: 転送、ソースおよびターゲットに関する項 |