United eWay tWSDL Plan: Goals
Web Services have emerged as an important method of interaction
between computer services. In the distant past such interactions were
limited to large corporations by the high cost of implimenting EDI.
The development of XML then SOAP allowed for easier access to legacy
systems, something called 'loose coupling'. The early systems are
characterized as essentially procedures wrapped for transport in XML,
and development efforts were focused upon methods of automatically
wrapping existing API calls and exposing them to clients across a
network.
The most recent advances have moved beyond this initial idea.
Most likely this move was initiated by changes to XML itself. XML has
developed a very sophisticated typing system known as XML Schema. The
terminology is analogous to the term in the field of SQL database. Using
XML Schema Language, developers can create something know as a complex type.
Additionally XML was extended to allow namespaces, an important development
for combining elements and types from various sources.
Web Services Description Language is dependent completely upon the useage of
XML Schema. The WSDL file itself is defined through the use of XML Schema. The
types of each message are also types defined by using XML Schema. WSDL does not
require the messages themselves to be transmitted as XML, however XML Schema is
a well constructed system for building types and therefore can form a useful
format for message typing, construction, exchange and validation.
Goal 1: Well Typed Interactions Between Client and Server
For successful client/server interaction, both parties must know how to construct
valid messages. A message is more than a list of parameters. In fact, our target
WSDL payload will be an XML document. These message documents have well defined types.
The first activity in building a service is to list the types of messages which will
be exchanged. tWSDL should provide methods to quickly define types and associate these
types with messages.
Goal 2: Construction of valid WSDL Files and Messages.
Given a collection of message types and a few other pieces of information
it should be possible to write a valid WSDL file defining the service in all particulars.
Goal 3: Exchange of Request and Response Messages.
A specific WSDL file defines how client and server interact
over a network to exchange messages. The tWSDL package should handle the details
of this exchange with minimum input from the client. Clients should only be required
to know the published location of the WSDL describing the service to genereate a useful
client API. Client should only be required to call API procedures with the minimum data
needed to construct the client message and process the server response.
Goal 4: Document Level Validation.
Document level validation provides the most immediate and
comprehensive feedback possible to both the client and server.
Goal 5: Maximal Error Detection and Reporting.
The validation system can only guarantee that messages fit
the general datatype. It is possible that backend systems, such as a RDB will have
uniqueness or other constraints which cannot be checked prior to an attempt to
invoke the service. However, it should be possible to check that each document, as
received is correct according to the defined type. In the event that there is an
error, the system should be able to report with specific details which will allow
the server or client to determine the location of problem. In XML Schema there are
simple types and complex types. Simple types are used to describe atomic values
such as an integer, a string, a boolean. Complex types are composed in various ways
from simple types. Error message should be able to identify the exact type which
was in error, the test which failed and possibly the incorrect value or other
information.