The development of geographic information systems (GISs) has been highly influenced by the overall progress of information technology (IT). These systems evolved from monolithic systems to become personal desktop GISs, with all or most data held locally, and then evolved to the Internet GIS paradigm in the form of Web services (Peng & Tsou, 2001). The highly distributed Web services model is such that geospatial data are loosely coupled with the underlying systems used to create and handle them, and geospatial processing functionalities are made available as remote, interoperable, discoverable geospatial services. In recent years the software industry has moved from tightly coupled application architectures such as CORBA (Common Object Request Broker Architecture?Vinoski, 1997) toward service-oriented architectures (SOAs) based on a network of interoperable, well-described services accessible via Web protocols. This has led to de facto standards for delivery of services such as Web Service Description Language (WSDL) to describe the functionality of a service, Simple Object Access Protocol (SOAP) to encapsulate Web service messages, and Universal Description, Discovery, and Integration (UDDI) to register and provide access to service offerings. Adoption of this Web services technology as an option to monolithic GISs is an emerging trend to provide distributed geospatial access, visualization, and processing. The GIS approach to SOA-based applications is perhaps best represented by the spatial data infrastructure (SDI) paradigm, in which standardized interfaces are the key to allowing geographic services to communicate with each other in an interoperable manner. This article focuses on standard interfaces and also on current implementations of geospatial data processing over the Web, commonly used in SDI environments. We also mention several challenges yet to be met, such as those concerned with semantics, discovery, and chaining of geospatial processing services and also with the extension of geospatial processing capabilities to the SOA world.
A Web service is an executable program available on the Internet. Services are the basic units for creating distributed applications in the context of SOAs. As Papazoglou (2008) stated, SOA is an architectural style to design service-centric applications relying on published and discoverable interfaces. Web services are, by definition, loosely coupled (independent units) and are well described (interface description contains functional properties), thereby promoting one of the goals of SOA: enabling interoperability or the ability of software components to interact with minimal knowledge of the underlying structure of other components (Sheth, 1999). Interoperability is achieved by using standard interfaces (SOA does not focus on the concrete implementations of components) and also by decomposing an application’s functionality into modular and flexible services. Such building-block services can be published, discovered, aggregated, reused, and invoked using standard protocols and specifications, independently of the specific technology used to create each component. Essentially SOA introduces a new philosophy for building a pyramid of distributed applications where Web services can be published, discovered, and bound together to create more complex value-added services (Alameh, 2003; Lemmens et al., 2006).
Figure 1 illustrates some of the roles and operations in SOA-based applications. There are three different main SOA roles: service provider, service requestor, and service broker. Each SOA role interacts with others utilizing three basic operations: publication, search, and binding. The service provider publishes service descriptions to the service broker. The service requester searches the required services by querying the service broker and then consumes (binds to) them. Note that often the role of service requester is assigned both to end users (and client applications) and to other services. The latter makes use of two key mechanisms in SOA: service reuse and service chaining to create new, complex, value-added services from simpler, discoverable services. In this sense, services can play the role of service requestor and service provider.
Roles and operations in SOA
Key Terms in this Chapter
ISO/TC211: ISO Technical Committee 211 in Geographic Information/Geomatics is in charge of establishing a set of standards for digital geographic information concerning objects or phenomena that are directly or indirectly associated with a location relative to the earth.
Open Geospatial Consortium (OGC): An international industry consortium participating in a consensus process to develop publicly available interface specifications. OGC members include government agencies, commercial companies, and university research groups.
Geography Markup language (GML): An XML grammar defined by OGC to express geographical features. To help users and developers to structure and facilitate the creation of GML-based application, GML provides GML profiles that are XML schemas that extend the very GML specification in a modular fashion. A GML profile is a GML subset for a concrete context or application, but without the need for the full GML grammar, simplifying thus the adoption of GML and facilitating its rapid usage. Some common examples of GML profiles that have been published are Point Profile , for applications with point geometric data, and GML Simple Features Profile , supporting vector feature requests and responses, as in the case of a WFS.
Service Metadata: Metadata describing the operations and geographic information available at a particular instance of a service (paraphrased from ISO 19119).
Service Provider: Provides software applications as Web services, creating functional descriptions and making them available in public registries.
Service Requestor: Requires certain requirements and needs that are fulfilled by one or more Web services available over the Internet.
Geospatial Processing Service: Similar to operations in a software library in the sense that these services are preexisting software components that deliver any geospatial processing functionality over the Internet.
Service Broker: Publishes service descriptions and is queried by the service requestor in order to discover suitable services that meet requestor needs.
Service: Functionality provided by a service provider through interfaces (paraphrased from ISO 19119).