DataSpiderデザインパターンβ 第2回 設計パターン 「Executable FTP Server」

Avatar
dstn

Executable FTP Serverパターン
~遠隔地とのリアルタイムなファイル連携システムを構築する


 

今回は、システム設計に関するパターンとして、DataSpiderを使ってリアルタイムで遠隔地とのファイル連携処理を実現するパターン「Executable FTP Server」を紹介します。これは、DataSpiderが内蔵しているFTPサーバ、およびFTPによって転送されたファイルに対してスクリプトを連携させることができるFTPトリガー機能を使用したパターンとなります。

 

1 課題


ファイルを使ったデータ連携の1つの典型的なパターンとして、遠隔地とのFTPを用いたファイル連携がある。例えば、日本各地にある営業拠点で、各スタッフが売上を記録したExcelファイルを作成している場合、本社のFTPサーバにそのファイルをアップロードし、本日の売り上げデータを集計してDBに格納する場合などがある。この場合、データ集計をシステム化することで、大幅な業務効率化が期待できる。
しかし、データ連携システムを手組で作った場合、かなりの工数とコストがかかってしまう。さらにExcelファイルのフォーマットやデータ集計ロジックの変更が頻繁に発生する場合、その都度のシステムの改修が必要になってしまいメンテナンスコストが増大する。

 

2 解決方法


DataSpiderのFTPサーバとFTPトリガー機能を使用することで、リアルタイムのデータ連携処理を実行することができるFTPサーバとしてDataSpiderを利用し、ファイル連携システムを構築する。

 

3 説明


DataSpiderのFTPサーバは、FTPトリガーを使用することでファイルがアップロードされた際にスクリプトを起動することができる。このスクリプト内でさまざまなアプリケーションやDBとのデータ連携処理を実現することが可能となる。

Executable FTP Server
・実行されるスクリプトには、トリガーからトリガー変数としてアップロードされたファイルのパスや名前を取得することができる。これらの値をスクリプト変数に渡し、各処理の設定に使用することで、アップロードされたファイルに対する処理を記述することができる。
例:Excelアダプタのシート読み取り処理の[ファイル名]など

 

4 メリット


・FTPを使用した遠隔地とのファイル連携システムを簡単に構築することができる
・ファイルがアップロードされたタイミングでスクリプトを実行できるため、リアルタイムのデータ連携が可能
・データ処理の方法に変更があった場合も、FTPトリガーで起動するスクリプトを変更する、もしくはスクリプトの改修を行うことで対応でき、メンテナンスコストの削減ができる

 

5 注意点


・FTPサーバにアップロードするファイルは、スクリプトの処理で読み取ることができるようにフォーマットを決めておく必要がある。
・ファイルに対する処理中に同名のファイルがアップロードされた場合、スクリプトの処理に不整合が発生する可能性がある。それを回避するため、アップロード直後にファイルを移動/コピーしてからスクリプトで処理する、各拠点ごとにアップロード先のディレクトリを分ける、などの対応を検討する必要がある
・FTPサーバにアップロードされたファイルをそのままにしておくと、保存領域が足りなくなるおそれがある。その場合、スクリプトでファイル操作アダプタを使用し、ファイルの移動、削除や圧縮によるバックアップ等を検討する必要がある

 

6 関連事項


・ファイル共有を使用してファイルの受け渡しを行う場合はファイルトリガーを使用して同様のシステムを構築することができる
・メールの添付ファイルにてファイルの受け渡しを行う場合は、メールアダプタを使用して受信を一定間隔で行うことで同様のシステムを構築することができる。ただしこの場合、リアルタイム性は若干落ちる

コメント

ログインしてコメントを残してください。

Powered by Zendesk