Apache Synapse

Last updated
Apache Synapse
Developer(s) Apache Software Foundation
Stable release
3.0.1 / December 7, 2017;5 years ago (2017-12-07)
Repository Synapse Repository
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 lightweight and open-source enterprise service bus (ESB) and mediation engine. It began incubation at the Apache Software Foundation on August 22, 2005, [1] and became a subproject of the Apache Web Services project on January 2, 2007. After implementing support for legacy systems integration, it moved to a Top-Level Project of the Apache Software Foundation on the February 5, 2008. [2] Apache Synapse is released under the Apache License.

Contents

Synapse supports the creation of Proxy Services, which allows users to 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. SFTP, FTP, file, zip/tar/gz, webdav, SMB, etc.), mail systems (e.g. POP3, IMAP, SMTP), Financial Information eXchange (FIX), Hessian, AMQP etc. The proxy services allows 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 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 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.

See also

Related Research Articles

<span class="mw-page-title-main">Web server</span> Computer software that distributes web pages

A web server is computer software and underlying hardware that accepts requests via HTTP or its secure variant HTTPS. A user agent, commonly a web browser or web crawler, initiates communication by making a request for a web page or other resource using HTTP, and the server responds with the content of that resource or an error message. A web server can also accept and store resources sent from the user agent if configured to do so.

Jakarta Enterprise Beans is one of several Java APIs for modular construction of enterprise software. EJB is a server-side software component that encapsulates business logic of an application. An EJB web container provides a runtime environment for web related software components, including computer security, Java servlet lifecycle management, transaction processing, and other web services. The EJB specification is a subset of the Java EE specification.

Web Services Security is an extension to SOAP to apply security to Web services. It is a member of the Web service specifications and was published by OASIS.

<span class="mw-page-title-main">Enterprise service bus</span> Communication system in a service-oriented architecture

An enterprise service bus (ESB) implements a communication system between mutually interacting software applications in a service-oriented architecture (SOA). It represents a software architecture for distributed computing, and is a special variant of the more general client-server model, wherein any application may behave as server or client. ESB promotes agility and flexibility with regard to high-level protocol communication between applications. Its primary use is in enterprise application integration (EAI) of heterogeneous and complex service landscapes.

The Web Services Invocation Framework (WSIF) supports a simple and flexible Java API for invoking any Web Services Description Language (WSDL)-described service.

WebSphere Application Server (WAS) is a software product that performs the role of a web application server. More specifically, it is a software framework and middleware that hosts Java-based web applications. It is the flagship product within IBM's WebSphere software suite. It was initially created by Donald F. Ferguson, who later became CTO of Software for Dell. The first version was launched in 1998. This project was an offshoot from IBM HTTP Server team starting with the Domino Go web server.

The Internet Communications Engine, or Ice, is an open-source RPC framework developed by ZeroC. It provides SDKs for C++, C#, Java, JavaScript, MATLAB, Objective-C, PHP, Python, Ruby and Swift, and can run on various operating systems, including Linux, Windows, macOS, iOS and Android.

The Spring Framework is an application framework and inversion of control container for the Java platform. The framework's core features can be used by any Java application, but there are extensions for building web applications on top of the Java EE platform. The framework does not impose any specific programming model.. The framework has become popular in the Java community as an addition to the Enterprise JavaBeans (EJB) model. The Spring Framework is free and open source software.

<span class="mw-page-title-main">Apache Axis2</span> Web service engine

Apache Axis2 is a web service engine. It is a redesign and re-write of the widely used Apache Axis SOAP stack. Implementations of Axis2 are available in Java and C.

Apache Camel is an open source framework for message-oriented middleware with a rule-based routing and mediation engine that provides a Java object-based implementation of the Enterprise Integration Patterns using an application programming interface to configure routing and mediation rules.

Web Services Enhancements (WSE) is an obsolete add-on to the Microsoft .NET Framework, which includes a set of classes that implement additional WS-* web service specifications chiefly in areas such as security, reliable messaging, and sending attachments. Web services are business logic components which provide functionality via the Internet using standard protocols such as HTTP. Web services communicate via either SOAP or REST messages. WSE provides extensions to the SOAP protocol and allows the definition of custom security, reliable messaging, policy, etc. Developers can add these capabilities at design time using code or at deployment time through the use of a policy file.

Apache CXF is an open source software project developing a Web services framework. It originated as the combination of Celtix developed by IONA Technologies and XFire developed by a team hosted at Codehaus in 2006. These two projects were combined at the Apache Software Foundation. The name "CXF" was derived by combining "Celtix" and "XFire".

Metro is a high-performance, extensible, easy-to-use web service stack. Although historically an open-source part of the GlassFish application server, it can also be used in a stand-alone configuration. Components of Metro include: JAXB RI, JAX-WS RI, SAAJ RI, StAX and WSIT. Originally available under the CDDL and GPLv2 with classpath exception, it is now available under Eclipse Distribution License

<span class="mw-page-title-main">Apache ODE</span>

Apache ODE is a software coded in Java as a workflow engine to manage business processes which have been expressed in the Web Services Business Process Execution Language (WS-BPEL) via a website. It was made by the Apache Software Foundation and released in a stable format on March 23, 2018. The software principally communicates with one or more Web services, sending and receiving messages, manipulating data and handling exceptions (errors) as defined by any given process. The engine is capable of running both long and short living processes to coordinate all the services that make up a service or application (orchestration).

JBoss Tools is a set of Eclipse plugins and features designed to help JBoss and JavaEE developers develop applications. It is an umbrella project for the JBoss developed plugins that will make it into JBoss Developer Studio.

<span class="mw-page-title-main">Petals ESB</span> Type of computer software

Petals ESB is an open-source ESB developed by Linagora. It is a tool for implementing a service-oriented architecture (SOA). It is standard, modular, and physically distributed, to adapt to large-scale infrastructures.

<span class="mw-page-title-main">WebSocket</span> Computer network protocol

WebSocket is a computer communications protocol, providing simultaneous two-way communication channels over a single Transmission Control Protocol (TCP) connection. The WebSocket protocol was standardized by the IETF as RFC 6455 in 2011. The current specification allowing web applications to use this protocol is known as WebSockets. It is a living standard maintained by the WHATWG and a successor to The WebSocket API from the W3C.

IBM WebSphere Service Registry and Repository (WSRR) is a service registry for use in a Service-oriented architecture.

UltraESB is a lightweight enterprise service bus (ESB) capable of supporting many transports and message formats natively. It allows messages to be mediated via Java or JSR 223 scripting languages through an API, and is the first ESB to claim support for Zero-Copy proxying of messages with Non-Blocking IO capabilities. In 2013, it was selected as the ESB and API Management platform by a recent Fortune #1 company based on its performance and stability.

References

  1. Apache Incubator
  2. "TLP Graduation". Archived from the original on 2008-05-12. Retrieved 2008-06-12.