Dear JBoss experts,
Our system communicates with some devices via low-level TCP/IP protocol (socket layer). Database and web-presentation parts of this system are implemented as JBoss application.
The current version of this system has following structure :
1) Devices connects to socket server - standalone console Java application.
2) Socket server is remote EJB client for JBoss application server. Plain byte stream from devices is being parsed by socket server and turned to database entities.
3) Web-presentation application is JBoss Seam application, interacting with the same entities as socket server.
4) Both socket server and web client are JMS publishers/subscribers. When device wants to deliver some data to client, socket server publishes a message and client refreshes the page with new data. When client wants to say something to device - web-application publishes a message , socket server receives it and sends appropriate bytes to socket connection of the specified device.
This is already working solution, but logically I feel that remote EJB communication between socket server and JBoss server is unnecessary layer. It would be great if I can have socket server application already inside the container, not as standalone Java app.
So far I have not found any way for that, but I have no much experience with JBoss and may not be aware of some technologies/options.
I would appreciate very much your comments and recommendations concerning this point, or architecture of the system as a whole.