3

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

2 番目の FTP については、信頼性が懸念される運用環境で FTP を使用することを常に躊躇してきました。ベンダーがファイルを FTP にパブリッシュして定期的にプルダウンする設計は、信頼性が低く、エラーが発生しやすいようです。私の最初の反応は、特定の期間、必要に応じてデータを照会できる Web サービスのようなもの (この特定のベンダーが提供できるかどうか、または提供する意思がないかどうか) に引き寄せられることです。

一般的に、このような状況で使用する最善のアプローチは何ですか? FTP (または SFTP) は一般的に受け入れられるオプションと見なされていますか? このような単純なデータ交換に対して Web サービスはやり過ぎでしょうか? 私が完全に見落としている他の実行可能なオプションはありますか?

4

3 に答える 3

3

ファイル転送には、多くの複雑な問題があります。

Web サービス、またはダイジェスト/基本認証を使用したファイルへの HTTPS アクセスのみを希望しますが、非常に大きなファイルの場合、それは実用的ではない可能性があります。

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

私はこのようにさまざまな種類の FTP を使用してきました。使用する場合のヒントを次に示します。

  1. SFTPのような安全なバージョンを使用してください。FTP は資格情報やデータに対して安全ではありません。

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

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

  4. ハッシュ値を使用して、転送が成功したことを確認します。彼らはファイルのMD5ハッシュを提供することができ、コピーが完了したら、バージョンに対してこれをチェックすることができます。私はよく MD5 ファイルをセマフォとしても使用しており、ファイルが利用可能であることを示し、転送が完了して正しいことを確認する手段を提供しています。

于 2011-12-28T21:08:36.467 に答える
1

AS2を使用できます。

ただし、これはプッシュ メカニズムです。as2 mendelsonは無料のゲートウェイ ソフトウェアです。「チャネル」を設定すると、コーディングなしですべてが転送されます。問題が発生した場合は、通知を受け取る必要があります。

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

于 2011-12-28T21:04:23.033 に答える
0

以前の回答のすべてのソリューションを実装しましたが、これまでのところ AS2 ( mendelsonを使用) が最も簡単で、エラーが発生しにくいものでした。

私の観察:

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

もちろん、最終的には、ベンダーが提供する接続方法をどこまで提供するかを決定するので、ベンダーが提供する最適な方法を選択する必要があります。

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

于 2013-05-21T19:11:12.280 に答える