Browse Prior Art Database

WSDL Compiler

IP.com Disclosure Number: IPCOM000010834D
Original Publication Date: 2003-Jan-24
Included in the Prior Art Database: 2003-Jan-24
Document File: 3 page(s) / 14K

Publishing Venue

IBM

Abstract

Web Services Description Language (WSDL), described at http://www.w3.org/TR/wsdl, is an XML format for describing network services as a set of endpoints operating on messages containing either document-oriented or procedure-oriented information. The operations and messages are described abstractly, and then bound to a concrete network protocol and message format to define an endpoint. Related concrete endpoints are combined into abstract endpoints (services). We propose to use and extend WSDL, in addition to network services, in order to describe any kind of local programming interfaces (specified as binding extensions in the WSDL), for example, methods of an Enterprise JavaBean, and then compile this WSDL description to code that executes the invocation of the described interface, according to the respective binding.

This text was extracted from a PDF file.
At least one non-text object (such as an image or picture) has been suppressed.
This is the abbreviated version, containing approximately 48% of the total text.

Page 1 of 3

WSDL Compiler

1. Introduction

Web Service Description Language (WSDL, see [1]) is an XML format for describing network services as a set of endpoints operating on messages containing either document-oriented or procedure-oriented information. The operations and messages are described abstractly, and then bound to a concrete network protocol and message format to define an endpoint. Related concrete endpoints are combined into abstract endpoints (services).

In WSDL a service is defined in three distinct parts:
1. The PortType. The PortType defines the abstract interface offered by the service. A PortType defines a set of Operations. WSDL provides four transmission primitives for operations:
· One-way - The endpoint receives a message
· Request-response - The endpoint receives a message, and sends a correlated message
· Solicit-response - The endpoint sends a message, and receives a correlated message
· Notification - The endpoint sends a message Each operation defines the input and/or output Messages. A message is defined as a set of Parts and each part has a schema-defined type.
2. TheBinding. A binding defines how to map between the abstract PortType and a real service format and protocol. For example, the SOAP binding defines the encoding style, the SOAPAction header, the namespace of the body (the targetURI), and so forth.
3. The Port. This defines the actual location (endpoint) of the available service - for example, the HTTP URL on which a SOAP service is available.

Major elements of a WSDL definition are
· The types section, which provides data type definitions used to describe the messages exchanged
· The message section, which represents an abstract definition of the data being transmitted; a message consists of logical parts, each of which is associated with a definition within some type system
· The portType section, which is a set of abstract operations. Each operation refers to an input message and output messages
· The binding section, which specifies concrete protocol and data format specifications for the operations and messages defined by a particular portType
· The port section, which specifies an address for a binding, thus defining a single communication endpoint
· The service section, which is used to aggregate a set of related ports Extensibility elements are added to the WSDL service and binding sections in order to describe features specific to particular bindings. Theoretically, for runtime clients completely implemented in Java**, it would be sufficient to describe all kinds of invocation with a single set of extensions that can describe Java** interfaces. However, in many cases, this is neither efficient (if multiple protocol methods must be called in order to invoke one business service) nor very user friendly as many implementation details of particular bindings can be hidden.

Page 2 of 3

Abstract interface

<definitions ...>

<portType ...>

 <operation ... /> </portType>

</definitions>

portType

<binding ......