apache-camelesb

How to integrate various application and provide common interface to access their data?


we have a few various applications that stores its data and we need one common service which provides access to these data.

With the applications I mean for example Atlassian Jira, Confluence, SVN, Git, LDAP, few internal mysql databases, etc. Some of them offers you SOAP API, REST API, various command line clients, for some you have to directly access database to get data.

What we want is a common REST API interface, to access all possible data sources. Of course, we have to solve authentication and authorization, caching and many more tasks.

It seems that something like ESB - Enterprise service bus and EIP - Enterprise integration patterns is answer to our needs.

For start, we are playing and actually dig in to Apache Camel - it's not full EIP stack, it's "just" a integration framework. But I guess it's good enough for us right now.

My question is - what you mean about the solution? Are we on the good way?

Thanks!


Solution

  • Camel has a lot of connectors, so that would be a great start.

    If you are afraid it is too thin, then take a look at Apache ServiceMix, which provides a deployment (OSGi) container for camel routes (and other things). Camel comes bundled within the standard service mix release out of the box.

    The hard task is probably to design the generic API good enough to cover your use cases.

    A GIT repo and a Database are very different, is this very generic? Do you only want to access "text" data or something?

    I like the approach with camel non the less, since it's rather generic and flexible in these kind of scenarios. That you will need