这个问题更多地基于设计细节而不是特定的编程问题。我希望SO上的人不要介意这样的问题。
我正在设计一个具有两个广泛组件的应用程序。
组件 1 -> 托管在云中的中央服务器,使用 JBoss 5.1.0 服务器。我们希望在我们在这里寻求的解决方案中使用该基础设施。我们将此解决方案基于 JBossW 并使用基于 POJO 的 Web 服务。
组件 2 -> 是一个远程部署的 Java Client,负责收集数据。
我们目前有一个架构,客户端轮询服务器以获取配置详细信息,然后指示客户端何时开始收集数据(以及其他内务处理任务)。一旦客户端收到响应,它就会相应地配置自己。
这支持预定的数据采集,当数据采集时间到来时,如接收到的配置中指定的,客户端启动数据采集过程,然后将结果上传到服务器。
这里可能成为问题的一种情况是,当配置更改时,此更改到达客户端时不可避免地会延迟,直到客户端在下一次轮询之后收到新配置为止。为了避免这种情况,我们希望在这里实现某种“推送”技术,类似于“<a href="http://en.wikipedia.org/wiki/Comet_%28programming%29" rel="nofollow" >Comet”在基于 Web 的应用程序中。
有没有人实现过类似的东西,或者他们有任何可以分享的设计见解?我们注意到,我们有一个更重量级的解决方案,涉及从云到客户端的入站请求,但这更适合具有 DMZ 设施和其他适当安全措施的大型企业部署。
问题:
- JBossWS 是合适的 WebService 引擎吗?从我们所读到的内容来看,它似乎很受重视,并且仍然是事实上的标准。
- 有什么框架可以帮助实现基于“客户端推送”的解决方案,用于与 JBossWS 和基于 Java 的客户端进行通信?
- 在设计/实现此类应用程序时,我们应该考虑哪些具体案例或场景?
- 任何此类应用程序可以基于的开源框架?如果我们可以选择,我们使用并为开源计划做出贡献?