2011-07-28 12 views
0

私は同時に3つのマシンで実行する必要があるアプリケーションがあります。また、プログラムでいくつかのMySQL文を使用しています。テーブルにフィールドを作成して、その特定のコンピュータに一致するフィールドの特定の番号を探す必要がありますか?私はちょうどこの問題を考えることに問題を抱えているので、アドバイスが助けになるでしょう。私はこれをあまりにも多く考えすぎる可能性があります。コンピュータの検出

+0

これがなぜ必要なのかと言うと、多分私たちが助けてくれるかもしれません。 – Jacob

+0

良い点。ポート1〜9しか使えないスキャナアプリケーションを開発しているので、これが必要です。合計25ポートが必要なので、これを実現する唯一の方法は、3台のコンピュータに同じアプリケーションを実行させ、それぞれに9台のスキャナをインストールすることです。クライアントは、データがどのマシンを通過しているかを知りたがっています。 –

+0

私たちはどんな港について話していますか?ネットワーキングはできません。あなたが保存した結果を保存する余分な列を置くだけです(例えば、ネットワーク上のコンピュータ名) – Jacob

答えて

2

私はコンピュータのホスト名を取得し、それをデータベース更新の一部としてMySQLサーバに送信します。

編集

より一般的な用語で、それについての考えを持って、ホスト名だけでなく、示唆したようにMACアドレスを取得する価値があるかもしれません。これはより一般的な場合の一意性/一貫性を助けるでしょう。

+0

私はこのオプションを取るでしょう...またはMACアドレス... – PlagueEditor

+0

またはIPアドレスが固定されている場合は、IPアドレスを使用してください。 – Johan

+0

はい、これは最善の選択肢のようです。ありがとうJaydee! :) –

1

新しいマシンでスキャナを実行する場合は、UUIDが作成され、ローカルに保存されます。スキャンナーが再び始まると、そのUUIDが読み込まれます。この値は、スキャナーの実行中のコピーが永遠に残っていることを表します。

IPアドレスまたは番号に関連付けたくない理由は、IPアドレスが変更され、番号が簡単に衝突する可能性があるためです。特に、2つのデータベースをマージする必要がある場合。スキャナーのコピーを6つ、データベースを3つ、データベースを3つずつ実行したとします。今度はすべてのデータを分析したいので、コンピュータ番号が同じであるためデータベースをマージすることはできません。あなたはUUIDを使用することができます

2番目に、UUIDを保存するデータに関連付けます。それぞれのデータが「タグ付け」されました。

第3に、メタデータをUUIDに関連付けます。これは、OSが何であるか、現在割り当てられているIPアドレス、実行しているスキャナのバージョンなどです。このメタデータは、IPアドレスなどのデータが変更されたときに更新/追加できます。

この設計では、特定のスキャナを一意に識別し、これまでに作成したすべてのデータと、その時点で使用していたIPアドレスを知ることができます。

+0

ポート間でデバイスを移動すると、UUIDが変更されますか?私は主にシリアルto USBコンバータを指し、ポートはUSBポートを意味します。 –

+0

@Tim UUIDはUniversally Unique IDの略です。基本的には、スキャナーで生成するもので、複製されることはありません。したがって、ポートまたはScanner自体のインスタンスに関連付けることができます。ポートを使用した場合は、ポートごとにN個のIDを生成します。私の理解は、どのスキャナがどのデータを生成したのかを知りたいということです。これが間違っている場合、私は自分の答えを更新します。 –

関連する問題