Note on WSDL, etc.
Last updated, July 17, 2001-- Allan Doyle


At the Service Model Ad Hoc, we looked at WSDL and decided that we should make a concerted effort to try using it prior to the beginning of the OGC Web Services Initiative, still due to start in September. The reason we chose WSDL is because our current service model work was lacking a model. (Hard to believe I'm even saying that, eh?). WSDL provides the beginnings of a model and it has the advantage of having a lot of people thinking about it. I believe that if we try to use WSDL and later decide it was not the right thing for us, we will not suffer much since it's going to force us to think about the abstract problem anyway.

What we all need to realize is that WSDL does not solve any of the hard problems. It does provide us with a few things, though. These include terminology and a way to describe the abstract properties of web services interfaces. We will still need to do the following hard parts (more info on these comes later in this note).

  1. Metadata (whether we wind up calling it service metadata, operation metadata, port type metadata, etc.).
  2. Catalog issues.
  3. Controlled Vocabularies
  4. Object modeling
  5. Implementing & Testing

     

I'd like to get people to volunteer for these areas and would like to know what kind of time commitment you think you can provide to this effort.


Analyzing the WSDL model

From WDSL section 1, we learn that a Port Type is a collection of Operations, from various other parts of the document we see that Operations are characterized (as far as WSDL is concerned) by what messages they can take as input or produce as output. Thus we have Figure 1.

Figure 1

A Binding is used to relate a Port Type to a specific Port (Port and Endpoint are the same thing) via a network address (typically a URI) as in Figure 2. A Service is a collection of related endpoints (i.e, Ports). We could debate the meaning of the word related, but at its absolute weakest, the relationship among Ports in a Service is strictly that they are all members of the Service.

If we contrast this with A, B, and B' of an earlier discussion, we see that WSDL's model is closer to A. [Note that the major difference between A and B/B' is whether a subclass of an interface has to implement all operations of the superclass (A) or not (B) as depicted in the diagrams.] In terms of OO terminology, a PortType would be a Class and an Operation would be a Method. A Service would be a set of Methods accessible via a Port with a mapping to the "wire" defined by a Binding. (Some material from Craig Bruce's email to the servicemodel list on May 9, 2001.)

OO Programming UML
OGC Topic 12
WSDL
A, B, and B'
NASSL [note 1]
    Service
A collection of operations, accessible through an interface, that allows a user to evoke a behavior of value to the user.

Service
A collection of related endpoints.

OGC Web Service
A: A collection of 1 or more operations, including GetCapabilities. If any operation is part of an interface, all required operations of that interface must be included.
B/B': An implementation of one or more interfaces.

Service

Object
In object-oriented programming, a unique instance of a data structure defined according to the template provided by its class. Each object has its own values for the variables belonging to its class and can respond to the messages (methods) defined by its class.
The Free On-line Dictionary of Computing, © 1993-2001 Denis Howe

Object
A discrete entity with a well-defined boundary and identity that encapsulates state and behavior; an instance of a class.
[The Unified Modeling Language Reference Manual, pg 360]

Interface
An implementation of operations including the syntax of the interaction for a given distributed computing platform.
Port
A single endpoint defined as a combination of a binding and a network address
  Provider
Class
The prototype for an object in an object-oriented language; analogous to a derived type in a procedural language. A class may also be considered to be a set of objects which share a common structure and behaviour. The structure of a class is determined by the class variables which represent the state of an object of that class and the behaviour is given by a set of methods associated with the class.
The Free On-line Dictionary of Computing, © 1993-2001 Denis Howe
Interface
A named set of operations that characterize the behavior of an element. [The Unified Modeling Language Reference Manual, pg 310]
Port Type
An abstract set of operations supported by one or more endpoints.
Interface
A named set of operations that characterize the behavior of an element. [The Unified Modeling Language Reference Manual, pg 310]
Interface
Method
The name given in Smalltalk and other object-oriented languages to a procedure or routine associated with one or more classes. An object of a certain class knows how to perform actions, e.g. printing itself or creating a new instance of itself, rather than the function (e.g. printing) knowing how to handle different types of object. Different classes may define methods with the same name (i.e. methods may be polymorphic). The term "method" is used both for a named operation, e.g. "PRINT" and also for the code which a specific class provides to perform that operation.
The Free On-line Dictionary of Computing, © 1993-2001 Denis Howe
Operation
An operation is a specification of a transformation or query that an object may be called to execute. It has a name and a list of parameters. [The Unified Modeling Language Reference Manual, pg 369]
Operation
Specification of an interaction that can be requested from an object to effect behaviour.
Operation
An abstract description of an action supported by the service.
Operation
An operation is a specification of a transformation or query that an object may be called to execute. It has a name and a list of parameters. [The Unified Modeling Language Reference Manual, pg 369]
Operation
NOTE 1: NASSL has been overtaken by WSDL

More observations on the table. Topic 12's definition of an Interface seems to combine the notion of Port and Port Type. A, B, and B' did not include the notion of Port at all.


Details about the 5 topics follow (where I was able to collect them in short order)


Metadata



Catalog issues


Controlled Vocabularies


Object modeling

 

Jeff Lansing's Case Study on Web View Service {rtf, pdf}

Craig Bruce wrote:

   > My cheat sheet on UML modelling [1] says that a derived (sub) class is
   > the "specialization" of a base (super) class, and a base class    is the
   > "generalization" of a derived class. I agree that the meaning    of the term
   > "specialization" is confusing.
   > 
   > [1] http://www.holub.com/class/oo_design/uml.html


Lou Reich's work on Catalog vs. WFS {ppt, pdf}

The whole A, B, B' discussion may need to be revisited in light of WSDL... The votes so far were

BAE Systems - B'
Compusult - B' but revisit later
CubeWerx - B (but later there's email that would support A)
Polexis - A
DSTO - B'
CSC - A
Int'l Interfaces - B' (originally, but now leaning towards A, having looked at WSDL)



Implementing & Testing

GLUE - worth a look? (email from Stephane Fellah on May 8, 2001)