blob: 5fc3435cc608b93a92cb6db944822847c738546d [file] [log] [blame]
//
// Licensed under the Apache License, Version 2.0 (the "License");
// you may not use this file except in compliance with the License.
// You may obtain a copy of the License at
//
// http://www.apache.org/licenses/LICENSE-2.0
//
// Unless required by applicable law or agreed to in writing, software
// distributed under the License is distributed on an "AS IS" BASIS,
// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
// See the License for the specific language governing permissions and
// limitations under the License.
//
== Technology selection guide
ServiceMix offers a set of different messaging and integration technologies:
* ActiveMQ
* Camel
* CXF
Depending on the solution you're building, you want to select one or more of these technologies. Below are some guidelines to help
you pick the right mix for your problem.
=== When to use Camel?
For any integration scenario, we recommend to start as simple as possible. Camel allows you to build routes for integration
scenario's quickly and efficiently. You can deploy these routes directly on ServiceMix by deploying the plain Spring XML route or
by packaging the route in an OSGi bundle.
As you need more (advanced) features, start combining Camel with ActiveMQ and CXF.
=== When to use ActiveMQ?
ActiveMQ is a JMS message broker, featuring support for clustering, pluggable persistence mechanism, master-slave configuration for
failover, and more.
ServiceMix includes an instance of the ActiveMQ broker, which can be combined with Camel to provide easy-to-use message persistence
and reliable messaging.
After setting up multiple instances of ActiveMQ (or ServiceMix) on the network, you can configure ActiveMQ clustering or
master-slave mode to allow for a more reliable and scalable set-up.
=== When to use CXF?
CXF is an open-source services framework that you can use to suit your REST and WS-* standards integration needs. It allows you to
use common programming APIs like JAX-RS or JAX-WS for building your own services and to expose them to the outside world.
You can use CXF from within your Camel routes with the Camel CXF component.