Versions Compared

Key

  • This line was added.
  • This line was removed.
  • Formatting was changed.

This section explains, through an example scenario, how the Service Activator EIP can be implemented using WSO2 ESB. The following topics are covered:

Table of Contents

Introduction to Service Activator

Image Removed

The purpose of this example is to demonstrate how the WSO2 ESB could be used to implement Service Activator EIP allows an application to design a service to be invoked both via various messaging technologies and non-messaging techniques. Service Activator will interface interfaces methods and services which are in the back-end service layer . Using the Service Activator so that the back-end services can be filtered and displayed to the client. For more information, refer to http://www.eaipatterns.com/MessagingAdapter.html.

Image Added

Example Scenario for the EIP

In the given example it Figure 1: Service Activator  EIP

Example scenario

This example scenario demonstrates how WSO2 ESB can be used to activate only a specific amounts number of services which are exposed in the on a back-end Axis2 server. Using the publishWSDL property, the service WSDL file was is modified to filter out only a specific amount number of services. The ability of the ESB to create proxy services will allow allows the client to invoke the ESB proxy instead of invoking the service in directly on the Axis2 server.      

...

Getting Started

The diagram below depicts how to simulate the example scenario using the WSO2 ESB.

 

Image Removed

 

 Image Added

Figure 2: Example Scenario of the Service Activator EIP

Before digging into implementation details, let's take a look at the

...

relationship between the example scenario and

...

the Service Activator EIP by comparing their core components.

 

...

Service Activator EIP

...

(Figure 1)Service Activator Example Scenario (Figure 2)
RequestorSimple Stock Quote Client 
Service ActivatorProxy Service
ReplierSimple Stock Quote Service

...

Environment

...

setup

...

  1. Download and install

...

  1. WSO2 ESB

...

  1. from http://wso2.com/products/enterprise-service-bus. For a list of prerequisites and step-by-step installation instructions, refer to Installation Guide

...

  1. in the WSO2 ESB documentation.

...

  1. Start two Sample Axis2 server instances in ports 9001 and 9002. For instructions, refer to

...

  1. the section Setting Up the ESB Samples

...

  1. - Starting

...

  1. the Axis2 server in the WSO2 ESB

...

  1. documentation.

ESB

...

configuration

3. Start the WSO2 ESB and copy the following configuration to the "Source View" in the management console (Main Menu -> Service Bus -> Source View), using which the example scenario can be explored.server and log into its management console UI (https://localhost:9443/carbon). In the management console, navigate to the Main menu and click Source View in the Service Bus section . Next, copy and paste the following configuration, which helps you explore the example scenario, to the source view.

Anchor
step3
step3

<?xml version="1.0" encoding="UTF-8"?>
Code Block
languagehtml/xml
linenumberstrue
<definitions xmlns="http://ws.apache.org/ns/synapse">
   <proxy name="ServiceActivatorProxy" startOnLoad="true">
      <target>
         <endpoint>
            <address uri="http://localhost:9000/services/SimpleStockQuoteService"/>
         </endpoint>
         <outSequence>
            <send/>
         </outSequence>
      </target>
      <publishWSDL uri="file:repository/samples/resources/proxy/sample_proxy_1.wsdl"/>
   </proxy>
   <sequence name="fault">
      <log level="full">
         <property name="MESSAGE" value="Executing default &#34;fault&#34; sequence"/>
         <property name="ERROR_CODE" expression="get-property('ERROR_CODE')"/>
         <property name="ERROR_MESSAGE" expression="get-property('ERROR_MESSAGE')"/>
      </log>
      <drop/>
   </sequence>
   <sequence name="main">
      <in/>
      <out>
         <send/>
      </out>
   </sequence>
</definitions>

Simulating the

...

sample scenario

The back-end service StockQuoteService offers the following services,:

  • getFullQuote
  • getMarketActivity
  • getQuote
  • getSimpleQuote
  • placeOrder

But utilizing the publishWSDL feature only Only some of the back-end features will be published through the Service Activator Proxy. browse Browse http://localhost:8280/services/ to view the services offered through the ServiceActivatorProxy the user will be able to notice that apart from , and note that services getMarketActivity and getSimpleQuote all the other services are not available. Others are available and active.  

How the

...

implementation works

Let's investigate the elements of the ESB configuration in detail. The line numbers below are mapped with refer to the ESB configuration illustrated in step 3 above shown above.

  • Proxy [line 3 2 in ESB config] - the The proxy service defined creates a virtual service between the real back-end service and a requestor.
  • publishWSDL [line 12 11 in ESB config] - by By default, a proxy service defines a one-to-one mapping of the back-end service interface and provides this in the form of a WSDL file that requestors can use to connect to the proxy service. By using the publishWSDL mediator, the proxy service can publish a custom interface and in this case . In this example, the publishWSDL mediator is used to provide access only to a subset of all the service methods available by to the back-end service. 

 

...

hiddentrue

...