この質問は、特定のプログラミングの問題ではなく、設計の詳細に基づいています。SOの人々がそのような質問を気にしないことを願っています.
私は、2 つの広範なコンポーネントを持つアプリケーションの設計に取り組んでいます。
コンポーネント 1 -> JBoss 5.1.0 サーバーを使用して、クラウドでホストされる中央サーバー。ここで求めているソリューションでそのインフラストラクチャを使用したいと考えています。このソリューションは JBossWs に基づいており、POJO ベースの Web サービスを使用します。
コンポーネント 2 -> リモートにデプロイされた Java クライアントであり、データの収集を担当します。
現在、クライアントが構成の詳細についてサーバーをポーリングし、データの収集をいつ開始するかをクライアントに指示するようなアーキテクチャがあります (他のハウスキーピング タスクの中でも)。クライアントが応答を受信すると、それに応じて自身を構成します。
これにより、スケジュールされたデータ取得がサポートされ、受信した構成で指定されたデータ収集の時間になると、クライアントはデータ取得プロセスを開始し、結果をサーバーにアップロードします。
ここで問題になる可能性のあるシナリオの 1 つは、構成が変更されたときに、次のポーリングに続いてクライアントが新しい構成を受信するまで、この変更がクライアントに到達するのに避けられない遅延があることです。このようなシナリオを回避するために、「<a href="http://en.wikipedia.org/wiki/Comet_%28programming%29" rel="nofollow"」のような「プッシュ」手法を実装することを検討しています。 >Comet」をウェブベースのアプリケーションで。
誰かが似たようなものを実装したり、これについて共有できる設計上の洞察を持っていますか? クラウドからクライアントへのインバウンド リクエストを含む、より重いソリューションがあることに注意してください。これは、DMZ 設備やその他の適切なセキュリティ対策を備えた大企業の展開により適したものです。
質問:
- JBossWS は適切な WebService エンジンですか? 私たちが読んだことから、それはよく評価されているようで、事実上の標準のままです.
- JBossWS および Java ベースのクライアントと通信するための「クライアント プッシュ」ベースのソリューションを実現するのに役立つフレームワークはありますか?
- この種のアプリケーションを設計/実装するために考慮すべき特定のケースまたはシナリオはありますか?
- そのような種類のアプリケーションのベースとなるオープン ソース フレームワークはありますか? 私たちは、選択肢が利用可能なオープンソースイニシアチブを使用し、それに貢献していますか?