P2Pで遊んでいます。P2P ネットワーク内の通信にJAX-WS
を使用したいと考えています。
一部のピアは「ファイアウォールの内側」にあるため、ポートをリッスンできません。(彼らはクライアントとして行動します)。
他のピアはポートをリッスンできます。(サーバー (およびクライアント) として機能します)。
ここで、どのピアがサーバーで、どれがそうでないかを事実から抽象化できるようにしたいと考えています。そのため、ピアは相互に Web サービス コマンドを実行できなければならず、サーバー ピアとクライアント ピアの「能力」は等しくなければなりません。
「Webサービスのない世界」では、ソケットを開き、ソケットが開いた後、クライアントがサーバーと話すのと同じ方法でサーバーがクライアントと話すことができます(接続が開いたままになるため、両方向で等しく)。
しかし、JAX-WS は (ステートレス) HTTPに基づいており、「HTTP 接続」などはありません。
つまり、サーバーはクライアントを呼び出すことができませんでしたよね?
これを克服するために何ができるでしょうか?