After a long time I have finished my Webservice using TOS. With the runtime environment I have deployed my job using Apache Karaf.
My question is: Why Apache Karaf?
At this moment everything is working and I have no problems but, imagine that a developer asks you why are you using this apache. What would be your answer? I need information n.n
The short answer is that the ESB product was built around Apache Camel. Apache Camel was designed to work inside Apache Karaf, although not exclusively. You can use motorbike wheels on a car, but there is a lot of hacking around with the car to get them to work....and they still won't work as nicely as they do on the bike.
I guess the real question here is why use an OSGI container? Talend is closely aligned to the Apache Foundation. Apache's OSGI container is Karaf (using Felix as the OSGI framework). Some of the advantages of an OSGI container that I can think of immediately include...
Dynamic Updates - This is a key feature of OSGI. Bundles can be installed, started, stopped, uninstalled while other bundles continue to function as normal. This means you can easily update your services or routes while leaving everything else running in your container.
Reusability - it is very easy to make use of an increasing number of third party components in an application hosted by an OSGI container.
Ease of Deployment - Deploying your applications within an OSGI container can be as simple as dropping your bundle into a folder.
Adaptability - The OSGI service registry allows your bundle to easily find what functionality is available and adapt the functionality it supplies based on this dynamic environment.
Small - While the container supplied by Talend (fully configured) may not seem that small, for the minimum OSGI functionality to be supplied it requires less than half a megabyte.
Security - OSGI is one of the most secure environments for building scalable application, while allowing it to be easily configurable.
Runs Anywhere - You are only limited to where you can run an OSGI container by the load your application will put on the hardware. I guess you could claim that is a Java advantage though.
Apache Karaf, as well as being the natural OSGI container choice for a company working so closely with Apache, also has a very nice management environment, it can host many other useful "ESB tools" (Apache Active MQ, Apache Zookeeper, Apache CSF, Apache ServiceMix... for example) and is easily scalable.
I guess the follow up question to yours is "why not?". Given the advantages of using an OSGI container (many of which I have probably neglected to mention), it would be the natural choice for Apache's to be used, as I've said. Of course you are not locked in to using Apache Karaf, but I won't try to tell you that Talend make it easy for you to get the full functionality they offer and not use Apache Karaf.
If anything, Talend simplifies using Karaf and Camel. But the simplification does not enable all of the functionality. Likewise, it doesn't prevent you from utilizing all of the functionality. How do you think Talend breaks the Karaf functionality?