Hi, What is the problem you are trying to solve? If the issue are the dependencies that are difficult to manage, I do not really think it matters exactly on what platform you host your services. What you need to reflect on are the dependencies and how to better de-couple the services. In method B you mention events but in method A you talk just about messages, but I would expect you can achieve the same level of de-coupling in both scenarios.
The basic idea of an ESB is (as you undoubtedly know) to provide Mediation which would mean that you put the ESB as an intermediate layer for all your integrated systems. In your case it sounds like you have control of the lifecycle of the source systems, the formats and transfer protocols which makes this mediation less of an argument or even pointless. If this is the case the main driver to replace tomcat with ServiceMix would be arguments related to performance, fault tolerance, service availability, ease of maintenance etc. For example, if you use an embedded queue manager for messaging the system will likely have better fault tolerance as there is only one JVM involved and no network hops in order for your service to produce or publish messages. Thus, if a dependent system is temporarily down the queues will work perfectly in their capacity as a buffer between your service and the other services, without a risk of failing because an externally hosted queue manager is not available. If this is a valid argument in your scenario, hosting on ServiceMix makes a lot of sense as you get the embedded queue manager out of the box. Another reason related to availability and fault tolerance is that if you convert your web applications to OSGI modules you are at least in theory capable of achieving zero downtime during servicing (upgrades). On the other hand you can already achieve this by using a load balancer with failover capability and bouncing servers in a controlled fashion. Also for really working properly your OSGI modules have to be properly designed. (We learnt this the hard way…) I don’t think Jetty or Tomcat makes a big difference, the difference is really between using OSGI modules versus a WAR file in a JEE web container. As of ease of maintenance I believe pulling all your dependencies from a Maven repository could make a big difference for managing the development-deployment cycle. Sure there are scripts for deploying on Tomcat, it just that you have a finer grained control and potentially get smother upgrades. Cheers, Chris On 17 jan 2014, at 08:57, apara <[email protected]> wrote: > Hi, > > I am just starting with ServiceMix and would like to better understand > preferred deployment model. Currently, we have a number of REST WebServices > which are being hosted by Tomcat spread among multiple machines running > different JVM(s). These services have dependencies on each other, and thus > create a network of dependencies which at times is difficult to manage. > > We would like to simplify and externalize these dependencies and looking at > ServiceMix to host these integrations. > > I see two possible methods of integrating ServiceMix into our existing > infrastructure: > > Method A: Host services inside of Service Mix > > 1) Instead of hosting services in Tomcat, host them inside of ServiceMix > using Jetty. > 2) Using the Network of Brokers configuration, network all the ServiceMix > boxes together using ActiveMQ > 3) Emit messages from the services which are then placed on queues/topics of > ActiveMQ > 4) Deploy routes to handle processing of these messages > > Method B: Host services independently of Service Mix > > 1) Start up a few instances of Service Mix servers mostly for High > Availability scenario > 2) Using Network of Brokers link all the Service Mix instances together > using ActiveMQ > 3) Update our existing services to emit events (which could be routed via > embedded camel to ActiveMQ queues/topics hosted by the network of ServiceMix > boxes setup in step 1) > 4) Have the ServiceMix boxes host routes that will be used to handle the > messages while making REST calls to the other services as needed. > > These methods are very similar with exception of where the web services > actually hosted and how many ServiceMix JVM(s) are deployed. Which is the > preferred method for ServiceMix deployment/integration? > > Thanks. > -AP_ > > > > > -- > View this message in context: > http://servicemix.396122.n5.nabble.com/Integrating-ServiceMix-into-existing-architecture-tp5718755.html > Sent from the ServiceMix - User mailing list archive at Nabble.com.
signature.asc
Description: Message signed with OpenPGP using GPGMail
