Apache Synapse
Developer(s) | Apache Software Foundation |
---|---|
Stable release |
2.1
/ January 6, 2012 |
Written in | Java |
Operating system | Cross-platform |
Type | Enterprise Service Bus |
License | Apache License 2.0 |
Website | http://synapse.apache.org |
Apache Synapse is a simple, lightweight and extremely high performance open source enterprise service bus (ESB) and mediation engine. It began incubation at the Apache Software Foundation on August 22, 2005,[1] and graduated as a sub project of the Apache Web Services project on January 2, 2007. After implementing extensive support for legacy systems integration, it moved out from the Apache Web Services project as a Top Level Project (TLP) of the Apache Software Foundation on the February 5, 2008.[2] Apache Synapse is released under the Apache License.
Synapse supports the creation of Proxy Services, which allows users to easily create virtual services on the ESB layer to front existing services. Existing services may be SOAP, POX/REST services over HTTP/S, as well as SOAP or legacy services over JMS, Apache VFS file systems (e.g. s/ftp, file, zip/tar/gz, webdav, cifs etc.), Mail systems (e.g. pop3, imap, smtp), Financial Information eXchange (FIX), Hessian, AMQP etc. The proxy services allows easy switching of transport, interface (WSDL/Schema/Policy), message format (SOAP 1.1, 1.2/POX/REST, Text, Binary/Hessian etc.), QoS (WS-Addressing, WS-Security, WS-Reliable Messaging) and message optimization (MTOM/SwA) etc.
Synapse has implemented a non-blocking HTTP/S transport implementation over the Apache HttpComponents/NIO module to handle thousands of concurrent requests using very little resources and threads. This implementation is capable of connection throttling to control the rate at which large messages are read and processed, and thus can handle heavy concurrent loads of large messages using constant memory.
Synapse also supports clustered deployments, with support for load balancing, throttling and caching over clustered deployments. The integration with an external Registry/Repository allows Synapse to use externally defined resources for mediation, as well as store its configuration into an externally managed Registry/Repository for SOA Governance. Synapse can be easily extended with custom Java extensions or POJO classes, or via Apache BFS scripting languages such as Javascript, Ruby, Groovy etc. Synapse ships with over 50 samples that can be executed out of the box.