1 Reply Latest reply on May 8, 2009 1:12 PM by hzbarcea_hzbarcea

    Best Practices

    larsroediger

      I was wondering if there are any best practices or at least a good advice how to solve protocol conversion and message transformation. I know that there are different solutions, e.g. using Apache Camel or Apache CXF and in most cases it will depend on the problem. But I am new to Fuse ESB, so can anyone give me a brief overview of an approach for protocol conversion and message transformation? Apache Camel is refered in many tutorials, this raises the question "is Camel the silver bullet or are there better frameworks"?

        • 1. Re: Best Practices
          hzbarcea_hzbarcea

          Yes, Camel is the silver bullet :).

           

          Now seriously Camel is a great integration framework, and there are others, indeed, but Camel explicit goal, followed religiously is to simplify integration, which, as you said, is not an easy task.

           

          Camel is also the integration framework of choice for FUSE ESB and Message Broker, which means that both the FUSE team and the Apache communities make the necessary efforts to ensure that Camel works seamlessly embedded within these products.  Camel is also the integration framework of choice for other projects not affiliated with fusesource.

           

          On a more technical level, Camel supports out of the box I think the largest set of known protocols, including but not limited to http(s), ftp, file, pop, smtp, ldap, xmpp, etc, etc and known DataFormat(s), supports a few programming languages, and a bunch of other features.  It is also relatively easy to add support for other (even proprietary) protocols.  CXF would help with protocol conversion (probably) but Camel (which does include cxf support as well) provides other goodies.

           

          The decision is ultimately yours, but my (biased) opinion is that for your integration needs, Camel is the best investment today and the foreseeable future.

           

          As best practices, well, depends on the project, but for non trivial projects we see a lot of FUSE ESB (based on Apache ServiceMix) deployments using Messaging Router for reliable async messaging, CXF for SOA, Web Services, REST and Camel for routing, light business processes, gluing it all together. Yes, it is not by accident that all these technologies that serve different purposes got together under the FUSE umbrella.