The web service engine or run time is integrated in to IBM i and is used to externalize ILE business logic as a service. This integration opens the IBM i system to various web service client implementations, including RPG, COBOL, C, C++, Java, .NET, PHP, WebSphere Process Server, ESB, and Web 2.0.

Here are the features of the integrated web services server:

Easy to use through centralized configuration and control

The web services server focuses on making the deployment of ILE-based web services as painless as possible by hiding the complexities of the web services server behind an easy to use and intuitive web administrative GUI front end that allows you to manage and monitor the server and any deployed web services.

Leading edge

Even though the focus is on ease-of-use for the deployment of ILE-based services, the web services server is built on the powerful, yet lightweight, integrated application server and best-of-breed technologies in support of web services. The web services server supports the following items:

– Dynamic generation of WSDL documents
– WSDL 1.1, SOAP 1.1, and SOAP 1.2
– SSL and basic authentication through an HTTP server front end

Small footprint

Uses ILE programming architecture for minimal consumption of IBM i resources.

Benefits of the integrated web services server:

  • Get started with no up-front cost. The integrated web services server support is part of the operating system, so you can get services up and running and show tangible results fast.
  • Allows you to focus on your core capabilities. Solution providers do not require new skills or tools for the deployment of ILE-based web services and thus can focus efforts on building differentiated value for customers instead of rewriting core infrastructure.

Let us emphasize that no other product or mechanism that we are aware of enables the deployment of an ILE program object as a web service as simply as the integrated web services server. The support is integrated in IBM i. Ensure that you have the latest HTTP Server Group PTF for the release you are on, and you are ready to go.

Let's look at the flows between a web service consumer and the web service provider.

Client and server flow diagram

Here is the flow:

  • A client application starts a web service. The invocation is through a URL and the request goes through the HTTP server. The HTTP server is needed to provide SSL support and basic authentication (which is done through the Web Administration for i GUI). You can go directly to the integrated application server (IAS) instance if SSL or basic authentication is not needed.
  • The HTTP server recognizes that the request is for a web service and forwards the request on to web services engine that is running in an IAS instance.
  • The web services engine maps the request to a deployed web service, deserializes the SOAP request, and passes the data to the web service. When the web service completes by returning output parameters, the web services engine serializes the data into a SOAP response and sends the SOAP response to the HTTP server, which forwards the response back to the client.

How does the web services engine start an ILE COBOL/RPG program object (that is, program or service program)? The key to making all this work is Program Call Markup Language (PCML). PCML is based on the XML, and is a tag syntax that you use to describe the input and output parameters of programs and procedures that are contained in service programs. When you deploy a web service to an integrated web services server, the PCML is used to generate Java proxy code that performs the call to the web service implementation code that is written in RPG or COBOL.

PCML can be stored as part of the module (*MODULE) object when you compile your code by running CRTRPGMOD or CRTCBLMOD. When you deploy your ILE program object as a web service, the PCML is retrieved from the program object and then the Java proxy code is generated. (Alternatively, you can specify a path to the PCML file to use if you do not want to bundle the PCML data in your module.)

Now that you have an idea of the inner workings of the integrated web services server, what are the steps to get started? The first step is to create a web services server. The second step is to deploy the ILE program object as a web service.

{"email":"Email address invalid","url":"Website address invalid","required":"Required field missing"}