Author: gertv
Date: Thu Dec 1 22:46:40 2011
New Revision: 1209288
URL: http://svn.apache.org/viewvc?rev=1209288&view=rev
Log:
SMX4-616: User guide - introduction and architecture (thanks to Marcelo Jabali)
Modified:
servicemix/documentation/trunk/src/main/webapp/users-guide/getting-started/what-is-smx4.conf
Modified:
servicemix/documentation/trunk/src/main/webapp/users-guide/getting-started/what-is-smx4.conf
URL:
http://svn.apache.org/viewvc/servicemix/documentation/trunk/src/main/webapp/users-guide/getting-started/what-is-smx4.conf?rev=1209288&r1=1209287&r2=1209288&view=diff
==============================================================================
---
servicemix/documentation/trunk/src/main/webapp/users-guide/getting-started/what-is-smx4.conf
(original)
+++
servicemix/documentation/trunk/src/main/webapp/users-guide/getting-started/what-is-smx4.conf
Thu Dec 1 22:46:40 2011
@@ -25,49 +25,75 @@ ServiceMix also provides a simple to use
ServiceMix includes many JBI components including HTTP, JMX, CXF, BPEL, etc.
h3. OSGi for Dummies
-// TODO: write this bit
+[OSGi technology|http://www.osgi.org/About/Technology] is the dynamic module
system for [Java|http://www.oracle.com/technetwork/java/index.html]. The OSGi
Service Platform provides functionality to Java that makes Java the premier
environment for software integration and thus for development. Java provides
the portability that is required to support products on many different
platforms. The OSGi technology provides the standardized primitives that allow
applications to be constructed from small, reusable and collaborative
components. These components can be composed into an application and deployed.
-h3. Kernel of ServiceMix
-// TODO: write this bit
+The OSGi Service Platform provides the functions to change the composition
dynamically on the device of a variety of networks, without requiring restarts.
To minimize the coupling, as well as make these couplings managed, the OSGi
technology provides a service-oriented architecture that enables these
components to dynamically discover each other for collaboration. The OSGi
Alliance has developed many standard component interfaces for common functions
like HTTP servers, configuration, logging, security, user administration, XML
and many more. Plug-compatible implementations of these components can be
obtained from different vendors with different optimizations and costs.
However, service interfaces can also be developed on a proprietary basis.
+
+OSGi technology adopters benefit from improved time-to-market and reduced
development costs because OSGi technology provides for the integration of
pre-built and pre-tested component subsystems. The technology also reduces
maintenance costs and enables unique new aftermarket opportunities because
components can be dynamically delivered to devices in the field.
+
+For more information, check out the [OSGi Alliance
website|http://www.osgi.org/Main/HomePage]
+
+h3. Powered by Apache Karaf
+Apache ServiceMix is based on [Apache Karaf|http://karaf.apache.org/]. Apache
Karaf is a small [OSGi-based|http://www.osgi.org/Main/HomePage] runtime which
provides a lightweight container onto which various components and applications
can be deployed.
+
+Here is a short list of features supported by the Karaf:
+
+Hot deployment: Karaf supports hot deployment of OSGi bundles by monitoring
jar files inside the $home/deploy directory. Each time a jar is copied in this
folder, it will be installed inside the runtime. You can then update or delete
it and changes will be handled automatically. In addition, the Karaf also
supports exploded bundles and custom deployers (blueprint and spring ones are
included by default).
+
+Dynamic configuration: Services are usually configured through the
ConfigurationAdmin OSGi service. Such configuration can be defined in Karaf
using property files inside the $home/etc directory. These configurations are
monitored and changes on the properties files will be propagated to the
services.
+
+Logging System: using a centralized logging back end supported by Log4J, Karaf
supports a number of different APIs (JDK 1.4, JCL, SLF4J, Avalon, Tomcat, OSGi)
+
+Provisioning: Provisioning of libraries or applications can be done through a
number of different ways, by which they will be downloaded locally, installed
and started.
+
+Native OS integration: Karaf can be integrated into your own Operating System
as a service so that the lifecycle will be bound to your Operating System.
+
+Extensible Shell console: Karaf features a nice text console where you can
manage the services, install new applications or libraries and manage their
state. This shell is easily extensible by deploying new commands dynamically
along with new features or applications.
+
+Remote access: use any SSH client to connect to Karaf and issue commands in
the console
+
+Security framework based on JAAS
+
+Managing instances: Karaf provides simple commands for managing multiple
instances. You can easily create, delete, start and stop instances of Karaf
through the console.
+
+For more information, check out the [Apache Karaf project
page|http://karaf.apache.org/]
h3. JBI Container & Integration with OSGI
// TODO: write this bit
-h3. Normalized Message Router</title>
-// TODO: write this bit
+h3. Normalized Message Router
+The Normalized Message Router (NMR) is a general-purpose message bus used for
communication between bundles in the OSGi container.
+It's modeled after the Normalized Message Router (NMR) defined in the Java
Business Integration (JBI) specification
([http://www.jcp.org/en/jsr/detail?id=208]).
-h3. Camel
-// TODO: write this bit
+It can be used to transport XML messages as well as other message body types,
optionally augumented with headers and attachments.
-h3. Services proposed
-// TODO: write this bit
+For more information, check out the [Using the Normalized Message Router User
Guide|../nmr/index.html]
-h4. Queuing engine : Apache ActiveMq
-// TODO: write this bit
+h3. Apache Camel
+Apache Camel is a powerful open source integration framework based on known
[Enterprise Integration
Patterns|http://camel.apache.org/enterprise-integration-patterns.html] with
powerful [Bean Integration|http://camel.apache.org/bean-integration.html].
-h4. Transaction : Geronimo Transaction Manager
+Apache Camel lets you create the [Enterprise Integration
Patterns|http://camel.apache.org/enterprise-integration-patterns.html] to
implement routing and mediation rules in either a Java based [Domain Specific
Language (or Fluent API)|http://camel.apache.org/dsl.html], via [Spring based
Xml Configuration|http://camel.apache.org/spring.html] files or via the [Scala
DSL|http://camel.apache.org/scala-dsl.html].
+
+For more information, check out the [Using Apache Camel in ServiceMix User
Guide|../camel/index.html].
+
+h3. Services proposed
// TODO: write this bit
-h4. Routing and Mediation : Apache Camel
-An Apache ServiceMix default installation out of the box embeds an Apache
ActiveMQ instance.
-It is a fully functional activeMQ instance listening for
+h4. Message Broker : Apache ActiveMQ
+Apache ServiceMix ships with an embedded instance of [Apache
ActiveMQ|http://activemq.apache.org] out-of-the-box.
- * TCP on port 61616
- * STOMP on port 61613
+It is a fully functional Apache ActiveMQ message broker instance listening for
[TCP|http://activemq.apache.org/openwire.html] connections on port 61616 and
[STOMP|http://activemq.apache.org/stomp.html] connections on port 61613.
-The default configuration resides in the etc directory under your servicemix
installation,
-the file in question is called activemq-broker.xml. It sets up reasonable
defaults for
+The [default configuration for the Apache
ActiveMQ|http://activemq.apache.org/xml-configuration.html] message broker
resides in the ServiceMix installation directory under the etc sub-directory.
The ActiveMQ configuration file is named activemq-broker.xml. It's configured
with reasonable default information like [Persistence
(KahaDB)|http://activemq.apache.org/persistence.html] and [Producer Flow
Control|http://activemq.apache.org/producer-flow-control.html] (essentially to
make sure the broker does not run out of memory).
-* Persistence - KahaDB
-* Producer flow control - essentially to make sure the broker does not run out
of memory
+The configuration file also makes use of a reusable connection pool available
to all OSGi bundles exposing a
[javax.jms.ConnectionFactory|http://docs.oracle.com/javaee/1.4/api/javax/jms/ConnectionFactory.html]
as a service for consumption. You can re-use this connection pool via tools
such as [spring-dm or
blueprint|http://activemq.apache.org/osgi-integration.html].
-The file also configures a reusable connection pool available to all OSGi
bundles exposing a
-javax.jms.ConnectionFactory as a service for consumption.
+The ActiveMQ message broker allows several components such as
servicemix-cluster, [camel-jms|http://camel.apache.org/jms.html],
[camel-activemq|http://camel.apache.org/activemq.html], [cxf-jms
transport|http://cxf.apache.org/docs/jms-transport.html] to be utilized without
any additional configuration.
-You can re-use this connection pool via tools such as spring-dm or blueprint.
+h4. Transaction : Geronimo Transaction Manager
+// TODO: write this bit
-The ActiveMQ broker allows several components such as servicemix-cluster,
camel-jms, camel-activemq,
-cxf jms transport to be utilized without any additional effort.
+h4. Routing and Mediation : Apache Camel
h4. Web Services : Apache CXF
// TODO: write this bit