3

This question is more based on design details rather than a specific programming problem. I hope that people on SO don’t mind such a question.

I am working on designing an application which has two broad components.

Component 1 -> Central server hosted in the cloud, using JBoss 5.1.0 server. We want to use that infrastructure in the solution that we are seeking here. We are to base this solution on JBossWs and use POJO based web services.

Component 2 -> Is a Java Client deployed remotely and is responsible for collecting data.

We currently have an architecture such that the client poll's the server for configuration details which then instructs the client when to start collecting data (among other housekeeping tasks). Once the client receives the response it configures itself accordingly.

This supports scheduled data acquisition such that when the time for data collection arises, as specified in the received configuration, the client starts the data acquisition process and then uploads the results to the Server.

One scenario that can become a problem here is when the configuration is changed there is an inevitable delay in this change reaching the client until such time as the new configuration is received by the client following the next polling even. To avoid such scenarios, we are looking to implement some kind of “push” technique here, similar to “Comet” in web based application.

Has anyone implemented something similar or do they have any design insights that they can share on this? We note that we have a more heavyweight solution involving inbound requests to the client from the cloud but this is something that is more appropriate for large enterprise deployments with DMZ facilities and other appropriate security measures.

Questions:

  1. Is JBossWS is the right WebService engine to go with? From what we have read, it seems well regarded and remains a de facto standard.
  2. Any framework that can help achieve a “client push” based solution for communication with JBossWS and Java based client?
  3. Any specific cases or scenarios that we should take into consideration for designing/implementing this kind of application?
  4. Any open source frameworks on which such kind of application can be based? We use and contribute to open source initiatives where a choice is available to us?
Salman A. Kagzi
  • 3,833
  • 13
  • 45
  • 64

1 Answers1

0

I would take a look at the asynchronous processing capabilities in the Servlet 3 specification. For JBoss specifically I would look at the event driven servlet technology.

Pace
  • 41,875
  • 13
  • 113
  • 156