My question is more of a design question. I am trying to ascertain if any frameworks can solve my problem. It seems to me that the situation I have should be a common one but I am having a hard time coming up with an elegant solution.
First of all this is not a web application. There is a dumb hardware device that the user interacts with and this device connects to a hardware router which then communicates via UDP messages with a home grown server. This server determines what app should handle the request and invokes the correct app (bundled as a jar) via reflection. More apps are always being added.
Seems to me this server re-invents the wheel and each app must maintain its own session state since the whole process is conversational and the end result depends on user input.
If this were a web app Spring MVC Dispatcher
servlet could handle routing to the correct app and spring web flow could maintain the data in the session and handle the conversational aspect of the program, and I would have a browser as a client to render the view rather than a dumb device. (the views are currently just a few lines of text).
I figured that I could use spring integration and JMS to handle splitting, aggregating, transforming and routing the incoming UDP message. But I want to keep the app modular so new apps can easily be added without affecting the others. If I deployed it in a container I could use spring MVC and spring Webflow and just return a few lines of text as a view rather than a
JSP, but then how to invoke it and how to add more apps without having a ton of war files. I also thought maybe OSGI could help me here. I really would like a framework that could handle the conversational state factor and manage the session object data for me, like spring web flow does.
Any ideas?