<?xml version="1.0" encoding="ISO-8859-1"?>
<!--
  ~  Copyright (c) 2009, WSO2 Inc. (http://www.wso2.org) All Rights Reserved.
  ~
  ~  WSO2 Inc. 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.
  -->

<!DOCTYPE html
     PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
     "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en">
  <head>
    <meta http-equiv="content-type" content="text/html; charset=iso-8859-1"/>
    <title>
      Welcome to WSO2 ESB v4.0.0
    </title>
    <link href="css/esb-docs.css" rel="stylesheet"/>
    <link href="styles/dist-docs.css" rel="stylesheet" type="text/css" media="all"/>
  </head>
  <body xml:lang="en">
    <h1>
      Welcome to WSO2 Enterprise Service Bus (ESB) v4.0.0
    </h1>

    <p>
        WSO2 ESB is a lightweight and easy-to-use Open Source Enterprise Service Bus (ESB)
        available under the <a href="http://www.apache.org/licenses/LICENSE-2.0.html">Apache
        Software License v2.0</a>. WSO2 ESB allows system administrators and SOA architects to
        simply and easily configure message routing, virtualization, intermediation,
        transformation, logging, task scheduling, load balancing, fail-over routing, event
        brokering and much more. The runtime has been designed to be completely asynchronous, non-blocking
        and streaming based on the <a href="http://synapse.apache.org">Apache Synapse</a> mediation
        engine.
    </p>

    <p>
        WSO2 ESB 4.0.0 is developed on top of the revolutionary
        <a href="http://wso2.org/projects/carbon">WSO2 Carbon platform</a> (Middleware a' la carte),
        and is based on OSGi to provide better modularity and componentization
        to your Service Oriented Architecture (SOA). This release also contains a number of
        new features and many other optional components to customize the behavior of the server.
        Further, if you do not want any built-in features, you can uninstall those
        features without any trouble. In other words, WSO2 ESB can be customized and tailored to
        suit your exact SOA requirements.
    </p>

    <p>
        You can download WSO2 ESB 4.0.0 distribution from <a href="http://wso2.org/downloads/esb">Project
        Download Page</a> and give it a try.
    </p>

    <h2>Getting Started</h2>
      <p>Getting your integration project off the ground with WSO2 ESB is simple.</p>
      <ol>
          <li><a href="http://wso2.org/downloads/esb">Download</a> WSO2 ESB 4.0.0</li>
          <li>Read through the <a href="docs_index.html">Documentation Index</a></li>
          <li>Visit our <a href="http://wso2.org/projects/esb/java">Official Website</a></li>
          <li>Look at the <a href="release-notes.html">Release Notes</a> for the high level
              features, or the <a href="http://wso2.org/projects/esb/java/features">WSO2 ESB Data
                  Sheet</a></li>
          <li>
            Developer Mailing List : <a href="mailto:carbon-dev@wso2.org">carbon-dev@wso2.org</a>
            | <a href="mailto:carbon-dev-request@wso2.org?subject=subscribe">Subscribe</a>
            | <a
            href="mailto:carbon-dev-request@lists.wso2.com?subject=unsubscribe">Unsubscribe</a>
            | <a href="http://wso2.org/mailarchive/carbon-dev/">Mail Archive</a>
          </li>
          <li>
            User Mailing List : <a href="mailto:esb-java-user@wso2.org">esb-java-user@wso2.org</a>
            | <a href="mailto:esb-java-user-request@wso2.org?subject=subscribe">Subscribe</a>
            | <a href="mailto:esb-java-user-request@wso2.org?subject=unsubscribe">Unsubscribe</a>
            | <a href="http://wso2.org/mailarchive/esb-java-user/">Mail Archive</a>
          </li>
          <li>
              <a href="http://wso2.org/forum/187">Discussion forum</a> for WSO2 ESB developers/users
          </li>
          <li>
              Report issues on the <a href="http://wso2.org/jira/browse/ESBJAVA">ESB JIRA</a> or the
              <a href="http://wso2.org/jira/browse/CARBON">Carbon JIRA</a>
          </li>
      </ol
              >
    <h2>WSO2 ESB Component Architecture</h2>

    <div style="float:left;padding-right:20px;padding-bottom:10px;padding-top:20px;"><img src="images/esb-architecture.png" alt="ESB Architecture" style="float:left;"/></div>

    <p>
        WSO2 ESB supports many application layer protocols and messaging standards (collectively known
        as transports), including HTTP/S, E-mail, Java Message Service (JMS) and Virtual File System
        (VFS). It also supports a range of domain specific protocols such as Financial Information
        eXchange (FIX), Advanced Message Queueing Protocol (AMQP) and Health Layer 7 (HL7). New
        transports can be easily plugged into the server thanks to the seamless extensibility offered
        by the Axis2 transports framework.
    </p>
    <p>
        ESB uses message builder components to parse the messages
        arriving via different transports. A message builder is usually associated with a content type.
        Depending on the actual content type of an incoming message, the ESB will select a suitable
        message builder, which will then parse the message content and convert it into the Apache AXIOM
        based XML infoset. WSO2 ESB ships with message builders for handling text messages (plain text,
        SOAP, POX etc) as well as binary messages. Message formatters are the opposite partners of the
        builders. A formatter converts the message back to its original format by referring the content
        type just before the message is handed over to the transports again for routing. Similar to the
        transports, user can implement new message builders and formatters by using the Axis2 API.
    </p>
    <p>
        Endpoints stay as a logical component with the transports. There are three types of top level
        endpoints, namely Address endpoints, WSDL endpoints and Default endpoints. In addition to these
        there are secondary endpoint types such as load balanced endpoints and fail over endpoints which
        are composed of one or more top level endpoints. An endpoint can use any available transport
        to dispatch the messages and they can even enforce various QoS constraints (security, RM etc)
        on outgoing messages.
    </p>
    <p>
        Proxy services are virtual services hosted in WSO2 ESB. These are implemented using Axis2 message
        receivers and hence can be opened up to accept incoming messages. A proxy service can be accessed
        using a URL similar to a regular web service address. Proxy services allow publishing a WSDL as
        well so that a client can connect to a proxy service just like connecting to an actual Web Service.
        Any available transport can be use to receive and send messages through the proxy services. Proxy
        services are a great way for exposing existing services over different transports, schemas and QoS
        configurations.
    </p>
    <p>
        The power of WSO2 ESB lies in the comprehensive mediator library that provides various message
        processing and inter-mediation capabilities. Using the mediator library we can implement all widely
        used Message Exchange Patterns (MEP) and Enterprise Integration Patterns (EIP). There are simple
        mediators which provide fundamental message processing capabilities such as logging and content
        transformation as well as advanced mediators which can be used to access databases, add security to
        message flows and so on. In situations where the built-in mediators are not sufficient to implement
        a given scenario one can write a custom mediator on top of the simple but powerful API provided
        by WSO2 ESB. Mediators can be implemented using various technologies including Java, scripting and
        Spring, all of which are considered as extension points to the WSO2 ESB.
    </p>
    <p>
        Sequences are special mediators that act as the configuration component for the mediators. Sequences
        allow organizing the mediators to implement ordered pipes and filters pattern to achieve actual
        message processing and mediation.
    </p>
    <p>
        Tasks provide the ability to configure scheduled jobs in WSO2 ESB and they allow executing
        internal and external commands for mediation. QoS components that implement reliable messaging
        and security for the proxy services and for mediation come with the Apache implementations of
        those two modules for Axis2, namely Rampart and Sandesha.
    </p>
    <p>
        WSO2 ESB has an in-built registry/repository to store the configuration and configuration
        metadata and it provides the facility to use a remote repository as well. Components like
        clustering, load balancing and high availability makes WSO2 ESB a production ready server.
        Finally the GUI components provide comprehensive management, configuration
        and monitoring capabilities to the ESB. GUI is built on a layered architecture by separating the
        backend and frontend concerns. This allow the user to connect to multiple servers using a single
        GUI console. The component based architecture of the WSO2 ESB has enhanced its loosely coupled
        nature with the usage of OSGi. All the components are built as OSGi bundles.
    </p>

  </body>
</html>
