0

P2Pで遊んでいます。P2P ネットワーク内の通信にJAX-WS
を使用したいと考えています。 一部のピアは「ファイアウォールの内側」にあるため、ポートをリッスンできません。(彼らはクライアントとして行動します)。 他のピアはポートをリッスンできます。(サーバー (およびクライアント) として機能します)。

ここで、どのピアがサーバーで、どれがそうでないかを事実から抽象化できるようにしたいと考えています。そのため、ピアは相互に Web サービス コマンドを実行できなければならず、サーバー ピアとクライアント ピアの「能力」は等しくなければなりません。

「Webサービスのない世界」では、ソケットを開き、ソケットが開いた後、クライアントがサーバーと話すのと同じ方法でサーバーがクライアントと話すことができます(接続が開いたままになるため、両方向で等しく)。

しかし、JAX-WS は (ステートレス) HTTPに基づいており、「HTTP 接続」などはありません。
つまり、サーバーはクライアントを呼び出すことができませんでしたよね?

これを克服するために何ができるでしょうか?

4

2 に答える 2

1

JXTAをご覧になることをお勧めしますか? これは、ピア ツー ピア システムを構築するための Java テクノロジであり、ファイアウォールなどの背後にあるピアを処理します。

明らかに JAX-WS を使用する必要があるかもしれません、JXTA に気付いていない場合は確認する必要があります。あなたの多くの問題を解決してくれると思います。

于 2009-04-21T17:40:40.253 に答える
1

Web サービス パラダイムでは、呼び出し用の「方向」があり、クライアント (要求イニシエーター) とサービス (要求サーバント) があります ... したがって、両方のエンティティ (ステーション 1 とステーション 2) を同時に ws- client と ws-server を使用すると、この問題を解決できます。

ファイアウォールの背後にあるクライアントのもう 1 つのオプションは、ws-server を POLL することです (クライアントは定期的に ws を呼び出してニュースを調べます)。

于 2009-04-21T17:46:38.303 に答える