0

そのため、お客様のマシンに配置され、24 時間ごとに CSV でデータを送信するコマンド ライン スクリプト (Python で記述) があります。これで、クライアントにいつでもデータを送信するように指示できるようにしたいという段階になりました。ほとんどすべての顧客は MS Windows マシンを使用しており、要件は、顧客のマシンにごくわずかなソフトウェアをインストールできることです (そして、ほとんどの人は顧客のマシンにログオンすることさえできず、ログオンできる人はごくわずかです)。

この問題をどのように解決するのが最善かについては、実際にはわかりません。以下は3つの可能な方法です(ただし、より良い方法を探しています)

  1. Pythonでデーモンを作成し、お客様のマシンにインストールします。デーモンはサーバーと通信し、構成情報を送り返します。その構成情報では、「スリープ期間」を返信します。したがって、デーモンはデータを送信してから、「スリープ期間」変数で定義された秒数だけスリープ状態になります。制限を超えると、デーモンが ping を送信し、構成情報を再度送信します。すすいで繰り返します。

  2. お客様のマシンにスクリプトをインストールし、1 時間ごとに実行します。当社では、顧客がデータを送信する頻度 (24 時間、12 時間など) を保存しており、スクリプトが私たちに話しかけると、どれくらいの時間が経過したか、スクリプトが送信すべき時間であるかどうかを判断します。データ?時間になったら、スクリプトにデータを送信するように指示します。

  3. 非常に小さなサーバー側 (Django または Flask) アプリケーションをインストールし、お客様のマシンで実行します。データが必要なときはいつでも顧客のマシンにリクエストを送信し、小さなサーバー側アプリケーションがサービスを提供します。そのため、お客様にポートを予約していただくようお願いする場合があります (実際にこれを許可するお客様の数はわかりません)。

もっと良い方法があると確信しています。上記のどの方法が最も適しているか教えていただけますか?もしくは他に良い方法があれば教えてください。

すべての洞察に本当に感謝しています。事前にすべての助けに感謝します。

4

1 に答える 1

0

オプション 3 は機能しない場合があります。ほとんどの人は、NAT を実行するファイアウォールまたはルーターの背後にマシンを置いています。このようなシナリオでは、受信するリクエストをリッスンしているサーバーは、通常、パブリック インターネットからアクセスできません。

静的 IP アドレスがあり、パブリック インターネットからサーバーにアクセスできる場合、ポート スキャナーはそれを検出し、望ましくないことを試みる可能性があります。誰かが顧客のシステムをハッキングして大混乱に陥れることはありません。可能であれば、このオプションは避けてください。

ただし、お客様のサーバーにログインしてデータを送信している限り、お客様のシステムにサーバーを配置しても安全です。

より良い解決策は、生成されたデータを継続的にサーバーに供給するアプリを用意することです。同等のことを行うのは比較的簡単です

    tail -f csv_file | send_data_home

send_data_home は、顧客のシステムで実行されているプログラムです。このように、最小限の影響しかありません。csv ファイルの作成には影響しません。send_data_home はサーバーにログインし、生成されたデータを送信します。

于 2012-12-24T04:46:01.543 に答える