私はWebサービス、JAX-WSなどにまったく慣れていないので、おそらく初心者の質問です...
そこで、2つのシステムを通信させるためのWebサービスを実装したいと思います。「クライアント」システムは、「サーバー」システムで生成されるイベントに関心があります。ただし、「クライアントシステム」は、それ自体が別のアプリのサーバーです。サーバーはJava(tomcatではWAR)です。クライアントは.Netです。
クライアントシステムは1つだけである必要がありますが、クライアントシステム内には複数のクライアントプロセスがあり、それぞれが異なるカテゴリのイベントに関心を持っています。
サーバー側とテストクライアントを実装します。他の誰かが.Netコードを実装します。
実行シーケンスはこの線に沿っている必要があります:
- サーバーが実行されています...
- クライアントは会話を開始し、サーバーに「登録」して、いくつかの初期データを要求します。
- サーバーは、登録されたクライアントのエンドポイントのリストを保持します
- サーバーには、特定のイベントが発生したときに通知されるリスナーがあります。次に、登録済みクライアントのリストを調べて、イベントを各クライアントに転送します
- ある時点で、クライアントは「登録解除」できず、イベントを受信したくないことをサーバーに通知できません。
まず、それは合理的に実行可能な何かのように聞こえますか?
また、SOAP(サーバー上のJAX-WS、クライアントの.Netで利用可能なもの)を使用する標準の組み込みメカニズムがありますか?サーバーは、クライアントからコールバックエンドポイントを取得するために使用できますか?
たとえば、RMIを使用して非常によく似た処理を行いました。この場合、クライアントはリモート参照を自分自身に送信するだけで、サーバーは後でant参照を保存できます。
最後に、エンドポイント参照を保存し、(集合的な)コールバックを作成し、リストを最新の状態に保ち、応答しないクライアントを削除して「ping」呼び出しを行うための標準ライブラリはありますか?
明確にするための注意:コールバックを使用した非同期メソッド以上のものが必要です。クライアントからの1つのメッセージは、サーバーからクライアントへの多くのコールバックメッセージを生成します。