What is Apache Synapse?
I have a background in developing messaging-based systems with JMS, as well as with Enterprise Service Bus (ESB) software. I've also written on both topics for Dr. Dobb's.</p>{readmore}
I have a background in developing messaging-based systems with JMS, as well as with Enterprise Service Bus (ESB) software. I've also written on both topics for Dr. Dobb's.
{readmore}-The Java Message Service, ddj.com, July 2007 (http://www.ddj.com/java/200001958)-Defining the ESB, ddj.com, July 2007 (http://www.ddj.com/java/201200303)-Building a Lightweight JMS Provider, Dr. Dobbs Journal, June 2004 (http://www.ddj.com/java/184405687)
I like lightweight, easy to use, software. It's easier to install, configure, extend, and build applications with. Maybe I'm just simple minded, but lightweight usually translates to something simple, and that's often good enough. When it comes to enterprise Java software, application servers, JMS providers, and ESB servers can be difficult to get running, and get started with as a developer. Having something simple and lightweight to work with is refreshing. In fact, response from my article, Defining the ESB, was positive because it helps explain what can otherwise be a very complex topic. This is why I've begun to look at Apache Synapse (http://synapse.apache.org/).
Apache Synapse is a lightweight ESB with an asynchronous core that's simple to configure, performs well, and is still very useful. It has support for HTTP, SOAP, SMTP, JMS, FTP and file system transports, as well as WS-Addressing, Web Services Security (WSS), Web Services Reliable Messaging (WSRM), and efficient binary attachments (MTOM/XOP). Synapse supports message transformation using Java, XSLT, or XPath and XQuery.
You can easily extend Synapse in Java, or dynamic scripting languages such as JavaScript, Ruby, and Groovy. Synapse supports non-blocking HTTP and HTTPS, JMS v1.0 and higher, SOAP, XML/REST, FTP, SFTP, File, Webdav, CIFS, and POP3/IMAP/SMTP transports.
The latest release of Synapse is 1.1.1. Its key features are:• Proxy services - facilitating transport, interface (WSDL/Schema/Policy), message format (SOAP 1.1/1.2, POX/REST, Text, Binary), QoS (WS-Security/RM) and optimization switching (MTOM/SwA)• Non-blocking http/s transports based on Apache HttpCore for fast execution and support for thousands of connections• Built in Registry/Repository, facilitating dynamic updating and reloading of the configuration and associated resources (e.g. XSLTs, XSD, JS, ..)• Easily extended via custom Java class (mediator and command)/Spring mediators, or BSF Scripting languages (Javascript, Ruby, Groovy etc)• Built in support for scheduling tasks using the Quartz scheduler• Load-balancing/Fail-over, and clustered Throttling and Caching support• WS-Security, WS-Reliable Messaging & Throttling configurable via WS-Policies• JMS (v1.x upwards) message support for binary, plain text and XML and SOAP payloads• Enhanced support for Apache VFS transports (s/ftp, file, zip/tar/gz, webdav, cifs..)• Support for message splitting & aggregation using the EIP• Database lookup & store support with DBMediators• Enhanced Mail transport with POP3/SMTP/IMAP protocols• Ability to pin a proxy service or a task to server instances on a cluster• Lightweight, XML and Web services centric messaging model• Configurations serialized into a file system for versioning/backup & restoration with built-in Registry support• Support for Error handling and timeouts, recovery with http/s aintainance mode & gracefull shutdown• JMX monitoring support• Many samples and a built-in Axis2 server to try out and experiment with samples (Samples includes WS-Security, JMS POX/Text messages, Script mediation and many more samples which can be run out of the box)• Enhanced documentation
Stay tuned to my blog for more on Synapse as I develop some interesting, useful, sample ESB applications with it.
-EJB
About the Author
You May Also Like