2011-12-28 7 views
3

私は、定期的に外部ベンダーからデータ(具体的にはトランザクションの詳細なリスト)を取得するバッチアプリケーションを設計するように求められてきました。私たちはデータ交換にXMLを使用することに同意しましたが、実際のデータ転送を容易にするためにさまざまな方法/プロトコルを調査しています。ベンダーは、データを転送する手段として電子メールまたはFTPを提案しましたが、ロジスティクスと信頼性の問題のため、最初のオプションをアウト・オブ・ライトで拒否しました。自動データ交換アプリケーションでFTPを使用することは信頼できますか?

第2のFTPについては、信頼性が懸念されるプロダクション環境でFTPを使用することを常に躊躇してきました。ベンダがFTPにファイルをパブリッシュして定期的にプルダウンする設計は、信頼性が低くエラーが発生しやすいように見えます。私の初期の反応は、特定の期間、必要に応じてデータを照会できるWebサービス(この特定のベンダーが提供できる、または提供できないことさえあるかもしれない)のようなものに向かって重力をかけることです。

一般的に、このような状況で使用する最良の方法は何ですか? FTP(またはSFTP)は一般的に受け入れ可能なオプションと考えられているのですか、それとも良いものがありますか?そのような単純なデータ交換のためのWebサービスの過剰な使用ですか?私は完全に見落としている他の実行可能なオプションはありますか?

+0

あなたが話しているファイルの容量はどれくらいですか? –

+0

私はそれらが非常に大きいとは予想しません。たぶんXMLにエンコードされたトランザクションレコードは5000個以下です。各フィールドにはそれぞれ最大50文字のフィールドが10個あります。 XMLマークアップによるインフレ率を20%にすることができます。しかし、全体のソリューションは、トランザクションが増加した場合には、拡張可能である必要があります。 –

答えて

3

ファイル転送にはいくつかの問題があります。

webserviceが好きで、digest/basic authのファイルにhttpsでアクセスできますが、非常に大きなファイルの場合は実用的でない場合があります。

もう1つの答えは、amazon s3で共有バケットを使用することです。そこには読み取りアクセス権があり、書き込みアクセス権があります。私はそれを貧しい人の安全なファイル転送として数回使いました。あなたがしなければ、私はここで、このようにFTPの味を使用している

はいくつかのヒントがあります:

1)sftpのような安全なバージョンを使用する - FTPは単に資格情報またはデータのために確保されていません。

2)セマフォファイルを使用して、最新のファイルがいつ利用可能かを示します。または、FTPディレクトリにファイルを書き込むときに完全に移動するため、不完全なファイルにアクセスしないようにします。

3)処理したファイルと保存していないファイルを追跡できるように、各ファイルに固有のファイル名(タイムスタンプ、シーケンス番号など)があることを確認してください。すでに処理したことがわからないので、ファイル名を再利用しないでください。ファイルの競合状態にアクセスする際に更新される可能性があります。

4)ハッシュ値を使用して転送が成功したかどうかを確認します。彼らは、ファイルのmd5ハッシュを提供することができますし、コピーを完了すると、あなたのバージョンに対してこれをチェックすることができます。私はしばしば、セマフォとしてもmd5ファイルを使用しました。両方のファイルが利用可能であることを示し、転送が完全かつ正確であることを確認する手段を提供します。

+0

あなたの答えにはいくつかの点があり、落とし穴が発生する可能性のある解決法があります。 Webサービスが望ましいと私は同意しますが、ベンダーが単独で消費するために提供することはできません。 –

+0

それは私の経験でもあります。ベンダーがftpを提案すると、(apiのような)実際の開発をしたくないという意味ですが、どこかでファイルを投げるスクリプトを書いています。 ftpは最も低い共通分母であり、このようなもののためにあまりにも頻繁に使われることになります。 –

+0

スクリプトで 'ftp'コマンドに取って代わる比較的簡単なHTTP(S)クライアントがあります(cURLが気になります)。 WebDAVバックエンドは、Webサービス/ HTTPSアクセスのラインに沿ったソリューションでもあります。 HTTPSは、大容量のファイルをアップロードする場合(特にHTTP PUT、plain、WebDAV経由)でも実用的です。 MBの10は、接続に応じて問題ではありません。 – Bruno

1

AS2を使用できます。

しかし、これはプッシュメカニズムです。 as2 mendelsonは無料のゲートウェイソフトウェアになります。あなたは "チャンネル"を設定し、何もコーディングせずにあなたに転送されます。いくつかの問題がポップアップすると、通知が届きます。

FTPはかなり安全ではありません。しかしそれは信頼できるはずです。

0

私はパーティーに遅刻していますが、それが価値あるものであれば、上記のすべてを実装しており、これまでAS2(メンデルスンを使用しています)は最も簡単でエラーが起こりにくいものでした。

私の所見:

  • SFTP/FTPSの実装は簡単で、エントリへの低障壁とかなり信頼性がある、しかし、あなたは(アンドリューが述べたように)
  • 独自のポーリングメソッドを記述する必要が終わりますWebサービスは素晴らしいですが、ベンダーが適切に設計し文書化する場合に限ります。小規模のパートナーは、機能を追加する際にAPIをまとめたり、他の顧客の要求に基づいて転送に情報を追加する傾向がありますが、新しい機能を反映するためにドキュメントを更新することはできません。あるケースでは、これは私たちをsftpに移動させた。
  • AS2はメンデルスンで安全でメンテナンスが非常に簡単です。サーバーの出力フォルダにディレクトリウォッチャーを追加すると、リアルタイムでの処理が行われます。

当然のことながら、ベンダーは接続方法の提供にどのくらいの時間を費やしているのかを指示し、提供する最良の方法を選択する必要があります。

リアルタイム処理は実際にはリアルタイム処理ではなく、管理上許容される近似値です。あなたのマネージャーは私と違うかもしれません。

関連する問題