General J2EE: Integration of Spring applications running on the same server
Hello all, I have several J2EE applications (ZK+Spring+Hibernate) running on the SAME server (Tomcat). What is the best way to integrate these applications? (i.e. I would like to use the business services -or even the screens- of one application from another) Is it wise to use web services on the same server? What do you think?
- Posted by: Onur Kutlu Gago
- Posted on: June 09 2008 07:27 EDT
Knowing too litle about Spring application interoperability, I'm going to respond from a basic J2EE perspective. If all of your applications utilizes the EJB layer then you might allow them to talk to each other directly. If your business logic is located in an EJB layer then it might be very easy to expose this through web service interfaces. If not, you might consider the same approach but using some REST implementation (as you will have to write more code anyways). If you got JMS on the container, then you could consider using this for communication too. I does not strike me as unwise to use web services on the same server. It is quite hard to reuse views from different applications that was not service-oriented from the start. You might have to rewrite quite a lot towards a service oriented architecture. You might want to investigate if you could easily change some views into using XML sources etc that your other applications could also take advantage of. Best of luck.
We use the HTTP Invoker that is part of the Spring Framework for just this purpose. The Invoker will not only work on the same app server across EAR / WAR files, but you can cross physical servers or even different types of servers. This is particularly nice in a heterogeneous environment where you may want JBoss to talk to WebLogic or something similar. http://static.springframework.org/spring/docs/2.5.x/reference/remoting.html