7. Consuming a SOAP Web service

PROBLEM

With the adoption of SOA-based solutions and the increase use of cloud-based services, web services are becoming a very common way of exposing application functionality to other systems. SOAP is a web services protocol for exchanging XML-based messages between systems. Web Services Description Language (WSDL), a component of SOAP, is used for describing services of the originating system ("producer") in XML format. A WSDL contains everything needed by a web service consumer ("consumer") to access the functionality of the service, including the location (URI) of the service, a list of available operations, the required inputs/outputs for each operation, and a definition of any complex types used by the services.

SOLUTION

There are many ways that applications developed with Skyway Builder can leverage functionality or data of other systems. If the functionality is available as SOAP-based web services, Skyway Builder Web Services Edition can invoke those services as easily as if the functionality had been implemented natively using Skyway Builder. Typically a WSDL document (XML) is used to communicate the availability, contract and location of a system's web services. Skyway Builder will discover (or learn about the existence of) these services by the developer importing the WSDL document. As part of the discovery process, modelling artifacts corresponding to the web services defined in the WSDL will be added to the project. These modelling artifacts can then be used to access the functionality of the services.

Web services are often used as an integration technology, where the application being produced needs to leverage the functionality of another system. On the other hand, composite applications integrate with services from a variety of systems, as is typically the case in SOA environments. The service layer of a composite application may be entirely implemented by other systems, in which case the composite application only implements the user interface and behavior of the application.

HOW IT WORKS

The process for consuming web services in Skyway Builder Web Services Edition is to import the service. From the Overview tab of the Project Editor, click on the Import Service hyperlink. The Import WSDL File wizzard will prompt you for the WSDL. You can either specify a URL or load a WSDL from the file system, and then click "Finish". Skyway Builder will parse the WSDL and create model based artifacts from the WSDL components.

Steps for consuming a web service:

  1. Open the Project editor and click on the Import Web Service under Activities.

  2. From the Import WSDL Document wizard, specify the Model Package that should be used as the Target Package. The Spring DSL artifacts for accessing the web services defined in the WSDL will be created in the selected package.

  3. Specify the location of the WSDL (WSDL Location) that defines the web services that will be consuming from your application. You can specify the WSDL URL or select the WSDL from the file system. Click Finish.

  4. If using MDD, you can call the web service from an Action using the Invoke Web Service step. If not, you can use the service client that was generated.

RELATED RECIPES

  1. Consuming a REST Web Service

  2. Creating a Contract-First SOAP Web service

  3. Publishing a JAX-WS Web service (SOAP)