Need advice on web-enabling my application.
Background: Server written in Java with no web interface. Currently we have agents and a GUI (standalone java app) that connect to the server with a custom ASN.1 like protocol.
Goal: Provide web services interface and a web user interface.
My idea right now is to make the web interface a separate project that uses IPC/RPC when it needs to communicate with the core server (agents will continue to use proprietary protocol). Both servers will connect to the same database.
Where I get confused is in what I need to make a maintainable and scalable web interface. Sure I could just start with Jetty and do some JSP but I know it can get much more complicated than that.
So since I'm basically starting from scratch, what would be suggested to provide a full web user interface plus web services API? Glassfish? Tomcat + some web framework? Something completely different? We have no business need for J2EE that I know of, but I suppose it wouldn't hurt if its there.
I can see a whole slew of architectural concerns here.
To start with, is your current code in a state where you can extract the controller and model code from existing java app? If so, then the fastest, not necessarily the best, approach would be to build a wrapper servlet over your extracted controller with JSPs for view layer. The communication to the server can still use your custom protocol. Similarly, you can write your wrapper webservice interfaces as well and host it on the same server.
Another alternative you could explore is to build RESTful webservices and build your web-gui against it. This way, you can have your webservice and eat it too. :)