|Table of Content Zone|
Following are the key capabilities with respect to the key features of WSO2 EI.
When there is an incoming message into WSO2 Enterprise Integrator, it is able to determine and route the message to the recipient. Routing can also be done based on some component of the message. This is known as content-based routing and is done using the Switch mediator.
The WSO2 Enterprise Integrator is able to filter out messages based on the message content using the Filter mediator. This feature allows you to perform complex logic, where you are able to filter out messages and send them in different mediation flows.
When sender and receiver messages do not have the same data format, the WSO2 Enterprise Integrator can be used to translate the messages between the sender and recipient. For information on how the Enterprise Integrator can be used for this, see the Message Translator pattern in the EIP Guide. The PayloadFactory mediator and Data Mapper mediator can be used to implement this. You can manipulate messages by adding and removing content from them, converting them to a completely different message format and even validating messages based on the available validation mechanisms of the message format.
For an example of how you can implement message transformation using the Data Mapper mediator, see Transforming Message Content.
You can use the Enrich Mediator to process a message based on a given source configuration and then perform a specified action on the message by using the target configuration. It gets an OMElement using the configuration specified in the source and then modifies the message by putting it on the current message using the configuration in the target.
The WSO2 Enterprise Integrator has the capability to take messages that come in one protocol and then send the message out in a completely different protocol (e.g. HTTP to JMS). The protocol bridging technology in Enterprise Integrator takes the business content of a message that comes in from one protocol and sends this content out in a completely different format and protocol.
Service chaining (orchestration) is a popular use case in the Enterprise Integrator, where several services are exposed as a single service, aggregated service. Enterprise Integrator is used for the integration and sequential calling of these services so that the expected response can be provided to the client.
For information on implementing a simple service chaining scenario, see Exposing Several Services as a Single Service.
Message storing and forwarding
Store and forward messaging pattern is used in asynchronous messaging. This can be used when integrating with systems that accept message traffic at a given rate and handling failover scenarios. In this pattern, messages are sent to a Message Store where they are temporarily stored before they are delivered to their destination by a Message Processor. The Enterprise Integrator is shipped with a few message store implementations and also allows you to implement a custom message store implementation.
For information on implementing a store and forward pattern using the in-memory store of Enterprise Integrator, see the Storing and Forwarding Messages.
For information on an example on implementing guaranteed delivery in Enterprise Integrator, see Guaranteed Delivery with Failover Message Store and Scheduled Failover Message Forwarding Processor.
The load balancer automatically distributes incoming traffic across multiple WSO2 product instances. It enables you to achieve greater levels of fault tolerance in your cluster and provides the required balancing of load needed to distribute traffic. For more information, see Clustering the ESB Profile.
Following are the key concepts with respect to the key constructs/artifacts of WSO2 EI.
Message entry points
Proxy services are virtual services that receive messages and optionally process them before forwarding them to a service at a given endpoint. This approach allows you to perform necessary transformations and introduce additional functionality without changing your existing service. Any available transport can be used to receive and send messages from the proxy services. A proxy service is externally visible and can be accessed using a URL similar to a normal web service address.
For more information, see Working with Proxy Services.
A REST API in Enterprise Integrator is analogous to a web application deployed in the Enterprise Integrator runtime. Each API is anchored at a user-defined URL context, much like how a web application deployed in a servlet container is anchored at a fixed URL context. An API will only process requests that fall under its URL context. A REST API defines one or more resources, which is a logical component of an API that can be accessed by making a particular type of HTTP call.
A REST API resource is used by the WSO2 Enterprise Integrator mediation engine to mediate incoming requests, forward them to a specified endpoint, mediate the responses from the endpoint, and send the responses back to the client that originally requested them. We can create an API resource to process defined HTTP request method/s that are sent to the back-end service. The In sequence handles incoming requests and sends them to the back-end service, and the Out sequence handles the responses from the back-end service and sends them back to the requesting client.
REST APIs allow you to send messages directly into the Enterprise Integrator using REST.
For more information, see Working with APIs.
An inbound endpoint is a message source that can be configured dynamically. In the Enterprise Integrator, when it comes to the existing Axis2 based transports, only the HTTP transport works in a multi-tenant mode. Inbound endpoints support all transports to work in a multi-tenant mode.
For more information, see Working with Inbound Endpoints.
A task allows you to run a piece of code triggered by a timer. WSO2 Enterprise Integrator provides a default task implementation, which you can use to inject a message to the Enterprise Integrator at a scheduled interval. You can also write your own custom tasks by implementing a Java interface.
For more information, see Working with Scheduled Tasks.
Message processing units
Mediators are individual processing units that perform a specific function, such as sending, transforming, or filtering messages. WSO2 Enterprise Integrator includes a comprehensive mediator library that provides functionality for implementing widely used Enterprise Integration Patterns (EIPs). You can also easily write a custom mediator to provide additional functionality using various technologies such as Java, scripting, and Spring.
For more information, see Mediators.
A sequence is a set of mediators organized into a logical flow, allowing you to implement pipes and filter patterns. You can add sequences to proxy services and REST APIs.
For more information, see Mediation Sequences.
Message exit points
A message exit point or an endpoint defines an external destination for a message. An endpoint can connect to any external service after configuring it with any attributes or semantics needed for communicating with that service. For example, an endpoint could represent a URL,a mailbox, a JMS queue, or a TCP socket, along with the settings needed to connect to it.
You can specify an endpoint as an address endpoint, WSDL endpoint, a and more. An endpoint is defined independently of transports, allowing you to use the same endpoint with multiple transports. When you configure a message mediation sequence or a proxy service to handle the incoming message, you specify which transport to use and the endpoint where the message will be sent.
For more information, see Working with Endpoints.
Message stores and processors
Templates help you to manage your configurations without scattering or duplicating them by creating prototypes that you can use and reuse when required. Templates improve re-usability and readability of your ESB configurations (XML files). There are two types of templates available in the ESB profile as Sequence templates and Endpoint templates. For more information on templates, see Working with Templates.
A connector is a collection of templates that define operations that can be called from the Enterprise Integrator and is used when connecting the Enterprise Integrator to external third party APIs. WSO2 Enterprise Integrator provides a variety of connectors via the WSO2 Connector Store.
For information on using a connector in your EI configuration, see Using the Gmail Connector.
A transport is responsible for carrying messages that are in a specific format. The Enterprise Integrator supports all the widely used transports including HTTP/s, JMS, VFS and domain-specific transports like FIX. You can easily add a new transport using the Axis2 transport framework and plug it into the Enterprise Integrator. Each transport provides a receiver, which the Enterprise Integrator uses to receive messages, and a sender, which it uses to send messages. The transport receivers and senders are independent of the Enterprise Integrator core.
For more information, see Working with Transports.
Message builders and formatters
When a message comes into the Enterprise Integrator, the receiving transport selects a message builder based on the message's content type. It uses that builder to process the message's raw payload data and convert it into common XML, which the Enterprise Integrator mediation engine can then read and understand. WSO2 Enterprise Integrator includes message builders for text-based and binary content.
Conversely, before a transport sends a message out from the Enterprise Integrator, a message formatter is used to build the outgoing stream from the message back into its original format. As with message builders, the message formatter is selected based on the message's content type.
You can implement new message builders and formatters using the Axis2 framework. For more information, see Working with Message Builders and Formatters.
Applying security to artifacts
You can apply security to artifacts of the ESB profile using WSO2 EI Tooling. The Quality of Service (QoS) component implements security. For more information, see Applying Security to a Proxy Service.
You can use the Log mediator to log mediated messages. For more information on the usage of the log mediator, see Log Mediator.
Message tracing helps you to track issues after an integration process finishes and thereby, allows you to identify and fix issues by identifying the root cause. It is used to trace, track and visualize a body of a message in each intermediate stage of its transmission. This is useful for a number of reasons, including auditing and debugging. For instructions on how to do message tracing, see Monitoring WSO2 EI with EI Analytics.
Message mediation mode is one of the operational modes of WSO2 EI where EI functions as an intermediate message router. A unit of the mediation flow is a mediator. A sequence is a series of mediators, where each mediator is a unit entity that can input a message, carry out a predefined processing task on the message, and output the message for further processing. Debugging is where you want to know if these units, which function as separate entities are operating as intended, or if a combination of these units are operating as a whole as intended. For more information, see Debugging Mediation.
Enterprise Integration Patterns
Enterprise Application Integration (EAI) enables you to connect business applications with heterogeneous systems. The EIP patterns guide demonstrates how the patterns that are invented integration solution architects over the years can be simulated using various constructs in the ESB profile.
You can use WSO2 use WSO2 Enterprise Integrator Tooling to Tooling to create various integration artifacts that you can build and deploy to the ESB profile of WSO2 EI in order to process requests. The tooling functionality is available via the Developer Studio dashboard in Eclipse.