blob: 4215b6017bbc5e436ac5b0ff6457af769f5f92fe [file] [log] [blame]
<?xml version="1.0" encoding="ISO-8859-1" ?>
<!--
~ 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.
-->
<document>
<properties>
<title>The Lightweight ESB</title>
</properties>
<body>
<section name="Apache Synapse Enterprise Service Bus (ESB)">
<p>
Apache Synapse is a lightweight and high-performance Enterprise Service Bus (ESB). Powered
by a fast and asynchronous mediation engine, Apache Synapse provides exceptional support
for XML, Web Services and REST. In addition to XML and SOAP, Apache Synapse supports
several other content interchange formats, such as plain text, binary, Hessian and JSON. The
wide range of transport adapters available for Synapse, enables it to communicate over many
application and transport layer protocols. As of now, Apache Synapse has support for protocols
like HTTP/S, Mail (POP3, IMAP, SMTP), JMS, TCP, UDP, VFS, SMS, XMPP and FIX.
</p>
<p>
Apache Synapse is free and open source software distributed under the
<a href="http://www.apache.org/licenses/LICENSE-2.0">Apache Software License 2.0</a>The
latest version of Synaspe is <a href="download/2.0/download.cgi">v2.0</a>. This release
comes with a horde of new features, bug fixes, performance and stability improvements.
</p>
<p>Apache Synapse, Synapse, Apache, the Apache feather logo, and the Apache Synapse project logo
are trademarks of The <a href="http://www.apache.org">Apache Software Foundation</a>.</p>
</section>
<section name="New in Version 2.0">
<ul>
<li>New, fine-grained configuration model</li>
<li>Hot deployment and hot update support for configuration artifacts</li>
<li>Priority based mediation support</li>
<li>Comprehensive eventing capabilities with WS-Eventing support</li>
<li>Secure vault for encrypting passwords in configuration files</li>
<li>File locking support in the VFS transport for concurrent polling</li>
<li>URLRewrite medaitor for fast and simple URL rewriting</li>
<li>Synapse configuration observer API</li>
<li>Multiple identity support in the HTTPS transport</li>
<li>Enhanced JMX monitoring support for the NHTTP transport</li>
<li>Dead letter channel implementation (experimental)</li>
<li>Synapse XAR Maven plugin for generating configuration artifacts</li>
</ul>
</section>
<section name="Key Features">
<ul>
<li>Proxy services - facilitating transport, interface (WSDL/Schema/Policy), message format (SOAP 1.1/1.2, POX/REST, Text, Binary), QoS (WS-Addressing/WS-Security/WS-RM) and optimization switching (MTOM/SwA)</li>
<li>Non-blocking HTTP/S transports for fast HTTP interactions and support for thousands of concurrent connections</li>
<li>VFS transport for file manipulation and interaction with FTP, SFTP, CIFS and WEBDAV</li>
<li>JMS support for binary, plain text, XML and SOAP payloads</li>
<li>Mail transport with extensive support for POP3, IMAP and SMTP</li>
<li>Support for industry driven <a href="http://www.fixprotocol.org/">Financial Information eXchange (FIX)</a> protocol</li>
<li>Built-in Registry/Repository, facilitating dynamic reloading of the configuration and associated resources (e.g. XSLTs, XSD, JS, ..)</li>
<li>Built-in support for scheduling tasks using the <a target="_blank" href="http://www.opensymphony.com/quartz">Quartz</a> scheduler</li>
<li>Load-balancing (with or without sticky sessions) and fail-over routing</li>
<li>Support for many Web Services standards including WS-Addressing, WS-Security and WS-Reliable Messaging</li>
<li>Policy based message throttling and caching (with special support for clustered environments)</li>
<li>Message splitting and aggregation</li>
<li>Database lookup and update support with database connection pooling</li>
<li>Fine grained statistics collection over sequences, endpoints and proxy services</li>
<li>JMX monitoring and management</li>
<li>Easily extendable with Java, Spring, or BSF Scripting languages (Javascript, Ruby, Groovy, etc.)</li>
</ul>
</section>
<section name="Known Issues">
<p>Except for the issues listed in the Apache Synapse <a href="issue-tracking.html">issue tracker</a> there are following minor issues associated with this release of the Synapse</p>
<ul>
<li>Sandesha2 build shipped with the Synapse distribution has not been tested extensively
and is a custom build, built by the synapse community. Although all the shipped reliable
messaging samples are working with this shipped sandesha2 build, it is recommended that
you download a compatible Sandesha2 build from the Sandesha2 site if you plan to put any
reliable messaging scenario into production.</li>
<li>Message store implementation and DLC has not been tested extensively, so use it with
care after testing in production if you are planning to use it in production</li>
</ul>
</section>
<section name="Apache Synapse Runtime Architecture">
<p>
Apache Synapse is designed to be lightweight and fast. The non-blocking HTTP transport,
the multi-threaded mediation engine and the streaming XML infoset combine to ensure that
Synapse can mediate very high volumes of messages through the service bus with minimum
delay and resource usage. Synapse also comes with comprehensive logging capabilities,
statistics collection and JMX monitoring support which are crucial in production deployments.
</p>
<img src="images/diagram_v2.png" caption="Apache Synapse - Runtime Architecture"/>
<p>
Synapse uses Apache Axis2 as the underlying Web Services engine. Therefore it has outstanding
support for Web Services and related standards such as SOAP and WSDL. Tried and tested
Axis2 modules like Apache Rampart and Apache Sandesha2 can be used with Synapse with no
configuration overhead. Using such external modules, Apache Synapse supports a range of
Web Services standards including WS-Security and WS-Reliable Messaging. Synapse
also makes use of the Axis2 clustering framework to provide enteprise grade clustering support.
</p>
<p>
Synapse is configured using a simple, XML-based configuration language.
The configuration language and the related functional components are designed with SOA
best practices in mind. It is trivial to store configuration fragments in an
external SOA registry and import them to the mediation engine on demand.
Synapse ships with a large collection of mediators that can be used to implement even the
most complex enterprise integration scenarios. If necessary, the mediation engine can be
extended by developing custom mediators using Java or your favorite scripting
language.
</p>
</section>
</body>
</document>