Logo GISdevelopment.net

GISdevelopment > Proceedings > GITA > 2003


GITA 2003 | GITA 2002 | GITA 2001 | GITA 2000 | GITA 1999 | GITA 1998 | GITA 1997
Sessions

Data Management - The Evolution of Data

Disaster Management

E-Biz

Global Solutions

The Human Factor

Innovative Technologies

Mobile

Municipal Perspective

Network Operations Management

System Architecture

System Integration

User Presentations

Work Management


GITA 2003


E-Biz


Chaining GIS Web Services


This paper explores three basic alternatives for efficient and practical dialogs that occur among the chained services as well as between the services and the calling client. As expected, a number of issues surround the design and implementation of such dialogs. The section below highlights the subset of these issues that are considered to be the most relevant to the specific case of chaining GIS Web Services. This subset covers
  • The degree of transparency to the client of the service chaining complexities and the amount of coordination required by the client to construct, execute and manage service chains.
  • The alternatives for keeping track and relaying to the client the sources of geographic data used in a service chain and the transformations that were applied to the data along the chain. Keeping track of metadata is particularly important in the case of GIS as typical GIS data users often cannot use that data unless they have some information about its resolution, ortho-rectification parameters, remote sensing origin, etc.
  • The alternatives for handling and reporting errors along a chain to the client. Precise error reporting is critical when one or more services along a chain break or return an exception.
Chaining Alternatives
This section discusses three basic alternatives for chaining GIS Web Services: clientcoordinated, static and mediated chaining. Each option is examined with respect to the issues presented above.

Client-Coordinated Service Chaining
In the simplest case, service chaining is fully transparent to the client: The client defines and controls the order of execution of individual services in a chain. Although the client does not necessarily have to know a priori the syntax of each service request (see section on WSDL), this type of chaining still requires the client to know about the types of services needed for a particular operation. Using this a-priori knowledge of the types of services needed, the client can access one ore more registries to find service instances to use for a certain request (Nebert 1999).

A practical way for a client to chain various services is achieved by having the client directly embed, in the input of one service, a request to the following service. The quintessential example (shown below) is that of a WMS which symbolizes feature or coverage data stored in a remote WFS or WCS using an SLD specified by a URL. The request to the underlying WFS is embedded within the WMS request.

http://yourfavoritesite.com/WMS?
VERSION=1.0.5&
REQUEST=GetMap&
SRS=EPSG%3A4326&
BBOX=0.0,0.0,1.0,1.0&
SLD=http%3A%2F%2Fmyclientsite.com%2FmySLD.xml&
WIDTH=400&
HEIGHT=400&
FORMAT=PNG&
REMOTE_OWS_TYPE=WFS&
REMOTE_OWS_URL=http%3A%2F%2Fanothersite.com%2FWFS%3F

While nesting calls may simplify some of the client’s coordination responsibilities, it nevertheless introduces complexities in the areas of error and metadata propagation as well as the client’s ability to control certain details. Consider for example the case of the WFS service issuing an exception in response to an erroneous call from the client. This exception will in turn trigger the WMS to signal an "invalid input" exception. With larger chains, a domino effect ensues, as the same problem occurs over the remaining links of a chain. Consequently, a mechanism is needed to embed the source and/or cause of an exception as delivered to a client. One alternative mechanism consists of allowing a service to automatically forward a received exception input, as is, to the next service in the chain; while appending to the forwarded exception any of the service's own error messages. In this context, representing exceptions in XML is particularly useful as it makes it easier for services to detect and add to incoming exceptions.

Moreover, consider the issue of an unexpected delay occurrence in one of the chain’s services. The serial nature of the chain implies that the delay propagates through the chain, and all the way to the client. In the scenario where the client directly accesses each service, the client can abort the operation if a specified time-out period for a service expires. The client may then find a substitute for the timed-out service. However, with nested calls, a global time-out, controlled by the client and communicated to every service, is needed. At any point, if a service takes longer than this global time-out, it aborts and returns an appropriate exception to the preceding service in the chain. In order to hide some of the complexity of service chaining, many service providers provide complementary services as one aggregate service.

Page 2 of 3
| Previous | Next |

Applications | Technology | Policy | History | News | Tenders | Events | Interviews | Career | Companies | Country Pages | Books | Publications | Education | Glossary | Tutorials | Downloads | Site Map | Subscribe | GIS@development Magazine | Updates | Guest Book