You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@servicemix.apache.org by jb...@apache.org on 2010/05/18 17:39:01 UTC

svn commit: r945705 - in /servicemix/documentation/branches/servicemix-3.3.x/docs/manual/src/docbkx: background.xml index.xml introductiontoesb.xml whatissmx3.xml

Author: jbonofre
Date: Tue May 18 15:39:00 2010
New Revision: 945705

URL: http://svn.apache.org/viewvc?rev=945705&view=rev
Log:
Add background and introduction to ESB chapters.

Added:
    servicemix/documentation/branches/servicemix-3.3.x/docs/manual/src/docbkx/background.xml   (with props)
    servicemix/documentation/branches/servicemix-3.3.x/docs/manual/src/docbkx/introductiontoesb.xml   (with props)
Modified:
    servicemix/documentation/branches/servicemix-3.3.x/docs/manual/src/docbkx/index.xml
    servicemix/documentation/branches/servicemix-3.3.x/docs/manual/src/docbkx/whatissmx3.xml

Added: servicemix/documentation/branches/servicemix-3.3.x/docs/manual/src/docbkx/background.xml
URL: http://svn.apache.org/viewvc/servicemix/documentation/branches/servicemix-3.3.x/docs/manual/src/docbkx/background.xml?rev=945705&view=auto
==============================================================================
--- servicemix/documentation/branches/servicemix-3.3.x/docs/manual/src/docbkx/background.xml (added)
+++ servicemix/documentation/branches/servicemix-3.3.x/docs/manual/src/docbkx/background.xml Tue May 18 15:39:00 2010
@@ -0,0 +1,145 @@
+<?xml version="1.0" encoding="UTF-8"?>
+	<!--
+
+		Licensed to the Apache Software Foundation (ASF) under one or more
+		contributor license agreements. See the NOTICE file distributed with
+		this work for additional information regarding copyright ownership.
+		The ASF licenses this file to You 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.
+	-->
+<chapter id="background" xmlns="http://docbook.org/ns/docbook"
+	xmlns:xi="http://www.w3.org/2001/XInclude" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
+	xsi:schemaLocation="
+        http://docbook.org/ns/docbook
+        http://www.docbook.org/xml/5.0/xsd/docbook.xsd"
+	version="5.0" xml:lang="en">
+
+	<title>Background</title>
+
+	<para>
+		The Enterprise Service Bus (ESB) - which can be defined as
+		middleware
+		that brings together both integration technologies and
+		runtime
+		services to make business services widely available for reuse -
+		offers
+		the best solution for meeting today's enterprise application
+		integration challenges by providing a software infrastructure that
+		enables SOA. However, there are currently a number of different
+		vendors that provide ESB solutions, some of which focus purely on
+		SOAP/HTTP and others who provide multi-protocol capabilities. Because
+		these vendors span the horizon from big enterprise generalists
+		(application servers), to mid-tier enterprise integration providers,
+		all
+		the way to smaller, ESB/integration specific-providers; there
+		doesn't
+		seem to be an established consensus regarding the key
+		requirements
+		for an ESB.
+    </para>
+
+	<para>
+		As application architects, we have often thought about what
+		requirements
+		would define an ESB designed specifically to cater to the
+		needs
+		of an agile, enterprise integration model. In building for the
+		specific
+		requirements, we realized that we actually needed to develop a
+		new
+		type of ESB, hence the Apache ServiceMix project.
+    </para>
+
+	<para>
+		The main criteria we were looking for in our ESB are as follows:
+	</para>
+	<section>
+		<title>Standards based</title>
+		<para>
+			While standards-based support is marketed by many ESB vendors,
+			the support
+			is provided externally, requiring developers to work with
+			proprietary APIs when directly interacting with internal APIs.
+			ServiceMix was
+			designed with the requirement to eliminate product API
+			lock-in, by being built from the ground up to support the Java
+			Business
+			Integration specification (JSR-208). Our agile ESB needs to
+			use JBI as a first class citizen, but also support POJO deployment
+			for
+			ease of use and testing.
+            </para>
+	</section>
+	<section>
+		<title>Flexible</title>
+		<para>
+			Another characteristic of an agile ESB is the flexibility with
+			which it can
+			be deployed within enterprise application integration
+			framework:
+			standalone, embedded in an application component, or as
+			part of the
+			services supported by an application server. This allows
+			for
+			component
+			re-use throughout the enterprise. For example, the
+			binding for a real-time
+			data feed might be aggregated as a web-service
+			running within
+			an application server, or streamed directly into a fat
+			client on a
+			traders desk. An agile ESB should be able to run both
+			types of
+			configurations
+			seamlessly.
+            </para>
+		<para>
+			To provide rapid prototyping, an agile ESB should support both
+			scripting languages and embedded rule engines, allowing business
+			processes to be
+			modeled and deployed quickly.
+            </para>
+		<section>
+			<title>Reliable</title>
+			<para>
+				Our ESB needs to handle network outages and system failures and
+				to be
+				able to reroute message flows and requests to circumvent
+				failures.
+			</para>
+		</section>
+		<section>
+			<title>Breadth of Connectivity</title>
+			<para>
+				An agile ESB must support both two way reliable Web Services
+				and
+				Message Oriented Middleware and needs to co-operate seamlessly
+				with
+				EIS and
+				custom components, such as batch files.
+                </para>
+		</section>
+	</section>
+
+	<para>
+		We also wanted our agile ESB to be vendor independant and open source,
+		to promote user control of source code and direction.
+		An added benefit of this is not only the zero purchase cost, but the
+		total cost of ownership will be reduced where users are
+		actively contributing and maintaining our ESB.
+	</para>
+	<para>
+		We rapidly came to the conclusion, that as there was no single product
+		adequately meet our needs, we would have to just go
+		a head and build one.
+	</para>
+
+</chapter>        
\ No newline at end of file

Propchange: servicemix/documentation/branches/servicemix-3.3.x/docs/manual/src/docbkx/background.xml
------------------------------------------------------------------------------
    svn:mime-type = text/plain

Modified: servicemix/documentation/branches/servicemix-3.3.x/docs/manual/src/docbkx/index.xml
URL: http://svn.apache.org/viewvc/servicemix/documentation/branches/servicemix-3.3.x/docs/manual/src/docbkx/index.xml?rev=945705&r1=945704&r2=945705&view=diff
==============================================================================
--- servicemix/documentation/branches/servicemix-3.3.x/docs/manual/src/docbkx/index.xml (original)
+++ servicemix/documentation/branches/servicemix-3.3.x/docs/manual/src/docbkx/index.xml Tue May 18 15:39:00 2010
@@ -96,6 +96,12 @@
     <!-- Chapter on What is ServiceMix 3 -->
     <xi:include href="whatissmx3.xml"/>
     
+    <!--  Chapter on Introduction to ESB -->
+    <xi:include href="introductiontoesb.xml"/>
+    
+    <!--  Chapter on ServiceMix 3 Background -->
+    <xi:include href="background.xml"/>
+    
     <!-- Chapter on installation and build -->
     <xi:include href="installation.xml"/>
     

Added: servicemix/documentation/branches/servicemix-3.3.x/docs/manual/src/docbkx/introductiontoesb.xml
URL: http://svn.apache.org/viewvc/servicemix/documentation/branches/servicemix-3.3.x/docs/manual/src/docbkx/introductiontoesb.xml?rev=945705&view=auto
==============================================================================
--- servicemix/documentation/branches/servicemix-3.3.x/docs/manual/src/docbkx/introductiontoesb.xml (added)
+++ servicemix/documentation/branches/servicemix-3.3.x/docs/manual/src/docbkx/introductiontoesb.xml Tue May 18 15:39:00 2010
@@ -0,0 +1,90 @@
+<?xml version="1.0" encoding="UTF-8"?>
+    <!--
+
+        Licensed to the Apache Software Foundation (ASF) under one or more
+        contributor license agreements. See the NOTICE file distributed with
+        this work for additional information regarding copyright ownership.
+        The ASF licenses this file to You 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.
+    -->
+<chapter id="introductiontoesb" xmlns="http://docbook.org/ns/docbook"
+    xmlns:xi="http://www.w3.org/2001/XInclude" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
+    xsi:schemaLocation="
+        http://docbook.org/ns/docbook
+        http://www.docbook.org/xml/5.0/xsd/docbook.xsd"
+    version="5.0" xml:lang="en">
+
+    <title>Introduction to ESB</title>
+    
+    <section>
+        <title>The problem</title>
+        <para>
+            Enterprise networks commonly deploy disparate applications, platforms, and business processes that need to communicate
+            or exchange data with each other. The applications, platforms and processes have non-compatible data formats and
+            non-compatible communications protocols. If an enterprise needs to interface with external systems, the integration
+            problem extends outside of a company, encompassing its business partners' IT systems and processes as well.
+        </para>
+        <para>
+            In recent years, there have been several technologies attempting to solve these problems such as Enterprise Application
+            Integration (EAI), Buiness-to-Business (B2B), Service Oriented Architecture (SOA) and WebServices. These solutions range from
+            expansive vendor solutions (high cost, vendor lock-in) to home-grown custom solutions (high maintenance, high cost). The
+            overwhelming disadvantages of these solutions are high cost and low flexibility due to non-standard implementations.
+        </para>
+    </section>
+    
+    <section>
+        <title>The ESB approach</title>
+        <para>
+            A standards-based ESB solves the integration problem without the drawbacks of the other solutions. The purpose of an ESB
+            is to facilitate application and process integration by providing distributed processing, intelligent routing, security, and
+            dynamic data transformation. In an ESB these services are infrastructure services so each application does not have to implement
+            these requirements independently and in a proprietary manner.
+        </para>
+        <para>
+            The ESB addresses the disadvantages of existing solutions by creating a standard infrastructure for integration. Point-to-point
+            solutions, where each of <emphasis>n</emphasis> components requires <emphasis>n-1</emphasis> interfaces for full communication,
+            are replaced by a bus solution where each component requires a single interface to the bus for global communication. An ESB
+            provides distributed messaging, routing, business process orchestration, reliability and security. It also provides pluggable
+            services and, because of the standard bus, these pluggable services can be provided by third parties and still interoperate
+            reliably with the bus.
+        </para>
+        <para>
+            Attributes of an ESB integration infrastructure are:
+            <itemizedlist>
+                <listitem><para>distributed - to remove geographical constraints</para></listitem>
+                <listitem><para>message-based - to promote loose coupling</para></listitem>
+                <listitem><para>open standards-based - to preserve investment and encourage contribution</para></listitem>
+                <listitem><para>reliable - to meet the requirements of mission-critical business operations</para></listitem>
+            </itemizedlist>
+        </para>
+        <para>
+            As an integration infrastructure, the ESB provides a number of functions including:
+            <itemizedlist>
+                <listitem><para>routing</para></listitem>
+                <listitem><para>transformation</para></listitem>
+                <listitem><para>visibility - into messages for content-based routing</para></listitem>
+            </itemizedlist>
+        </para>
+        <para>
+            An ESB also supports requirements such as security, orchestration, and transactionality. These exist in "hard-wired" integration
+            methods, but are not available automatically in a service-oriented architecture. One of the key requirements for the ESB is to 
+            give loosely coupled, services-based integration methods a level of enterprise-class reliability and security.
+        </para>
+        <para>
+            A newer requirement for ESBs is the ability to allow no only loosely-coupled request found in a service oriented architecture,
+            but also to provide the infrastructure for an Event Driven Architecture (EDA). SOA and EDA provide complementary functionality.
+            In EDA an event triggers a message to be sent to other applications that are decoupled from the application that triggered the
+            event. This is an asynchronous operation as the recipient applications may receive or pick-up their messages at a later time,
+            whereas the SOA messaging model is typically synchronous in nature.
+        </para>
+    </section>
+    
+</chapter>
\ No newline at end of file

Propchange: servicemix/documentation/branches/servicemix-3.3.x/docs/manual/src/docbkx/introductiontoesb.xml
------------------------------------------------------------------------------
    svn:mime-type = text/plain

Modified: servicemix/documentation/branches/servicemix-3.3.x/docs/manual/src/docbkx/whatissmx3.xml
URL: http://svn.apache.org/viewvc/servicemix/documentation/branches/servicemix-3.3.x/docs/manual/src/docbkx/whatissmx3.xml?rev=945705&r1=945704&r2=945705&view=diff
==============================================================================
--- servicemix/documentation/branches/servicemix-3.3.x/docs/manual/src/docbkx/whatissmx3.xml (original)
+++ servicemix/documentation/branches/servicemix-3.3.x/docs/manual/src/docbkx/whatissmx3.xml Tue May 18 15:39:00 2010
@@ -16,7 +16,7 @@
     See the License for the specific language governing permissions and
     limitations under the License.
 -->
-<chapter id="whatissmx4"
+<chapter id="whatissmx3"
          xmlns="http://docbook.org/ns/docbook"
          xmlns:xi="http://www.w3.org/2001/XInclude"
          xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" 
@@ -26,19 +26,47 @@
          version="5.0" xml:lang="en">
   <title>What is ServiceMix 3 ?</title>
 
-  <para>Apache ServiceMix is an open source ESB (Enterprise Service Bus) that
-  combines the functionality of a Service Oriented Architecture (SOA) and the
-  modularity. The adoption of a Service Bus allows to decouple the applicatons
-  together and reduce dependencies. Messages are used to wired the
-  applications (=services) and/or connectors to exchange information using
-  different protocols or communications mode like FTP, HTTP, WebServices,
-  ...
+  <para>
+    Apache ServiceMix is an open source ESB (Enterprise Service Bus) that combines the functionality of a Service Oriented Architecture (SOA)
+    and an Event Driven Architecture (EDA) to create an agile, enterprise ESB.
   </para>
   
-  <para>ServiceMix is lightweight and easily embeddable, has integrated Spring
-  support and can be run at the edge of the network (inside a client or
-  server), as a standalone ESB provider or as a service within another ESB.
-  You can use ServiceMix in Java SE or Java EE application server.
+  <para>
+    Apache ServiceMix is an open source distributed ESB built from the ground up on the Java Business Integration (JBI) specification JSR-208
+    and released under the Apache license. The goal of JBI is to allow components and services to be integrated in a vendor independant way,
+    allowing users and vendors to plug and play.
+  </para>
+  
+  <para>
+    Apache ServiceMix is lightweight and easily embeddable, has integrated Spring support and can be run at the edge of the network (inside a client
+    or a server), as a standalone ESB provider or as a service within another ESB. You can use ServiceMix in Java SE or a Java EE application
+    server.
+  </para>
+  
+  <para>
+    Apache ServiceMix uses Apache ActiveMQ to provide remoting, clustering, reliability and distributed failover.
+  </para>
+  
+  <para>
+    Apache ServiceMix is completely integrated into Apache Geronimo, which allows you to deploy JBI components and services directly into Geronimo.
+    ServiceMix is being JBI certified as part of the Geronimo project.
+  </para>
+  
+  <para>
+    Other JEE application servers Apache ServiceMix has been integrated with include JBoss, JOnAS with more to follow.
+  </para>
+  
+  <para>
+    Apache ServiceMix includes a complete JBI container supporting all parts of the JBI specification including:
+    <itemizedlist>
+        <listitem><para>NMR (Normalized Message Service and Router)</para></listitem>
+        <listitem><para>JBI Management MBeans</para></listitem>
+        <listitem><para>ant tasks for management and installation of components</para></listitem>
+        <listitem><para>full support for the JBI deployment units with hot-deployment</para></listitem>
+        <listitem><para>a simple Client API for working with JBI components and services</para></listitem>
+        <listitem><para>wide set of JBI components including HTTP, JMS, BPEL, Rules, ...</para></listitem>
+    </itemizedlist>
+    Please, read the JBI documentation if you need more explanations about JBI.
   </para>
   
 </chapter>