複数のクライアント プログラムが単一のサーバー プログラムと通信し、すべてが単一の Windows コンピュータで実行されている場合、どのような方法が最適ですか? すべてVB6で書かれています。この問題を解決する方法についての推奨事項をいただければ幸いです。
注: .NET への移行に取り組んでいますが、.NET の準備が整う前に、V6B バージョンに機能を追加する必要があります。
可能性には、TPC 接続、名前付きパイプ、共有メモリ、メッセージ、ファイルなどが含まれます。
クライアントはサーバーに文字列を入力として渡し、サーバーはそれをサーバーだけが知っているデータと組み合わせて、クライアントに返される別の文字列を生成します。どちらの文字列も約 100 文字の長さしかありません。サーバーは、新しいファイルを開く必要がある場合にのみ接続されるため、通信量は非常に少なくなります...おそらく、15 秒以内に 10 回の呼び出しが殺到し、その後 1 時間のアイドル時間が続きます。
しかし、2 つのクライアントがほぼ同時に情報を要求することを選択する可能性があります。サーバーは各リクエストを 1 秒未満で処理し、数秒の遅延はどのプログラムにとっても重要ではないため、ブロック/ロックは確かに許容されます。
サーバーのアルゴリズムは複雑で、アプリケーションにとって重要ないくつかの理由から、各ヘルパー プログラムで複製すべきではありません。それがサーバーが必要な理由です。
背景:
既存の大規模なレガシー プログラムに機能を追加しています。この単一のプログラムには、ヘルパーとして機能し、ユーザーが特定の選択をしたときに実行される他のいくつかのレガシー プログラムがあります。これらのプログラムはシェル コマンドで開始され、単なる個別のスレッドではありません。たとえば、あるヘルパーは DVD ドライブから新しいデータをハード ドライブにロードします。別のヘルパーは、惑星の現在位置のチャートを表示するだけです。
これは、たまたま VB6 で書かれた大規模な商用レガシー プログラムです。私たちはそれとすべてのヘルパー プログラムを .NET に変換する作業を行っていますが、最初に vb6 でこの機能が追加された新しいバージョンをリリースする必要があります。(私たちはすでに別の場所に移動しているので、VB6 を使用しないように言わないでください。) 一時的な VB6 ソリューションが必要です。