Although the WWW began as a collection of documents intended for human exchange, since the early 2000s it is more accurate to say that it is a collection of documents, databases, and services. A web service (Figure 4) supports the process of exchanging information directly between computers according to a publicized specification, or API (application programming interface). For example, a software application or agent acting on behalf of a user can send a species name to NatureServe's 'Get species data' service. In return, it would receive that species' conservation status, taxonomy, distribution, and life history information from the NatureServe database. The application can then perform a task using that information, such as creating a new web document for humans that includes that information.
Web services typically use extensible Markup Language (XML) representations in their data exchange. In contrast to HTML, whose tags indicate how data should be rendered (e.g., in italics, in a table, with a link), XML provides a syntax that allows each application to specify how data should be meaningfully interpreted.
Web service discovery agency * *
Web service requester agent
XML compliant with service API
Figure 4 Web services concepts. Computer agents are programs acting on behalf of people, able to activate themselves and react to input as necessary. In a basic web services model, agents interact to exchange information. A requestor agent contacts a web service provider with a request tailored to the API of the service provider. The provider then returns the information requested. Typically, the agents exchange messages in extensible Markup Language (XML) that is understandable by both systems no matter what hardware or software each uses. If the requester does not already know what service will be useful, it can contact a discovery agency to find relevant services that have published their descriptions.
Service-oriented architectures (SOAs) are large-scale systems that take advantage of such application-to-application communication. An SOA approach involves using a variety of often independently developed services that each accomplishes a different task. The technology (e.g., hardware, operating system, programming language) used by each service is less important because the services communicate through their APIs. Components of the overall system can be replaced without disrupting overall function. The international SEAMLESS project (System for Environmental and Agricultural Modelling: Linking European Science and Society) uses SOA to bring together economic, environmental, and social sciences data toward sustainable agricultural policymaking.
'Mashups' are more simple examples of bringing two or more independent services together. For example, mash-ups have been created that merge images from Flickr (http://www.flickr.com) with the taxonomic hierarchy of University of Arizona's Tree of Life website. Similarly, the California Academy of Sciences has used the Google Earth interface to provide access to its extensive global collection of ant specimen data.
Was this article helpful?