クライアントのネットワークを相互に接続したいと考えています。基本的に分散ネットワークで、私はそれをどうやって行うのか分かりません(彼らは互いにデータを送ることができるはずです)。 SSLServers + Socketsのネットワークを試しましたが、キーストアで動作するかどうかはわかりません。良いノード/接続ネットワークの作成方法| Java
ので:
- は誰にそれを行うための方法を提案していますか?
- お勧めしますか?
クライアントのネットワークを相互に接続したいと考えています。基本的に分散ネットワークで、私はそれをどうやって行うのか分かりません(彼らは互いにデータを送ることができるはずです)。 SSLServers + Socketsのネットワークを試しましたが、キーストアで動作するかどうかはわかりません。良いノード/接続ネットワークの作成方法| Java
ので:
私はあなたがアーキテクチャや技術について尋ねているかはわからないが、あなたは、このを見てみたいことがあります。
私の知る限りは、ネットワークの分散化形式のこの種として知られている知っているようにピアツーピアネットワークまたはP2P。
正直言って、ネットワークのピアグループやその他の共有設定を維持するためのレジストリノードを用意することが考えられます。レジストリアドレスはすべてのクライアントで認識されます(既定の設定で)。各クライアントは起動時に接続しようとします。レジストリに接続された各クライアントが自身を登録し、利用可能な他のクライアントのリストを取得しようとします。ほとんどの場合、クライアントはレジストリへの接続を緩め、オンデマンドで(または定期的に)接続しようとするだけです。あるクライアントがファイルをダウンロードしたい場合、利用可能なリソースと特定のファイルを共有している同輩のリストを取得しようとします。
この種のネットワークでは、各ノードが別のノードからサービスを受けたり、他のノードにサービスを提供している可能性があります。そのため、ノードのコードには、このアイデアをサポートするためにServerSocket
とSocket
の両方があります。ネイティブな方法で実装しようとすると、スレッドを処理して他のクライアントへの同時サービスを維持し、他のノードからサービスを取得する必要があります。
高可用性P2Pネットワークには、ネットワークのスケルトンを維持する複数のレジストリノードがあります。さらに、すべてのクライアントは、デフォルトのレジストリノードの完全な障害でもネットワークを利用できるようにレジストリの役割を果たすためにボランティアを行うことができます。
この種類のネットワークは共有姿勢に基づいているため、起動時に日々成長し、時間の一部を過ぎるとネットワークの最初の主なスケルトンをシャットダウンするだけではシャットダウンできません。
これは単なるアイデアですが、成長が進むにつれて、より堅牢で拡張性のあるネットワークを実現するために、より複雑な機能を追加することができます。ここで
は、このようなネットワークを実装するための良いチュートリアルです: https://www.javaworld.com/article/2071877/enterprise-java/peer-to-peer-applications-made-easy.html
は、このヘルプを願っています。