Browse Prior Art Database

A Pattern for Adapting Services.

IP.com Disclosure Number: IPCOM000019275D
Original Publication Date: 2003-Sep-09
Included in the Prior Art Database: 2003-Sep-09
Document File: 2 page(s) / 73K

Publishing Venue

IBM

Abstract

We disclose a method to provide alternate interfaces for a service and a pattern for associating the input and output data of the exposed interface with that of the actual implementation of the service.

This text was extracted from a PDF file.
This is the abbreviated version, containing approximately 55% of the total text.

Page 1 of 2

A Pattern for Adapting Services.

   The presented way to provide alternate interfaces for a service or service adaptation allows a service to provide multiple alternate interfaces that are suitable for different applications. The invention uses the extensibility mechanism of the Web Service Definition Language (WSDL) to describe an Adapter Service and Adapter Binding.

Using WSDL, we describe an Adapter Service as follows:

<service name = "myAdapterService">

<port name = "myAdapterPort">

<adapter:address targetService = "serviceImpl" targetPortType =
"portTypeImpl"/> </port>
</service>

The adapter:address extensibility element has two attributes:

* targetService is the name of the service which provides the actual service implementation.

* targetPortType is the name of the portType which describes the default interface for the service.

Using WSDL, we describe an alternate portType (or interface) and an Adapter Binding:

<portType name="myPortType>

<operation name = "operationA">

<input name = "inputMessageA"/>

<output name = "outputMessageA"/>

</operation>

<operation name = "operationB">

<input name = "inputMessageB"/>

<output name = "outputMessageB"/>

</operation>
</portType>

<binding name="myAdapterBinding" type="myPortType">

<adapter:binding/>

<operation name="operationA">

<adapter:operation [targetService="..." targetPortType="portTypeX"]
targetOperation="operationX" /> <input>

<adapter:transformer service="TransformerService"
portType="Transformer"
operation="MsgAinToMsgXin" /> </input>

<output>

<adapter:transformer service="TransformerService" portType="Transformer"

operation="MsgXoutToMsgAout" />

</output>

</operation>
</binding>

The adapter:binding extensibility element i...