Abstract
A rising trend in the software industry points toward service-oriented architectures that support collaborative problem-solving. The grid, which is characterized as an open system in which users, software components, and computational resources come and go on a continuous basis, is advancing the adoption of this technology. Service-oriented architectures use interfaces and protocols that allow the service to be treated as a black-box. The development and consumption of service functionality in SOA result in additional complexity: the developer does not know the context in which the service will be used, and the consumer does not know how a service component was developed. It is not enough to know the static interface of each service in order to ensure that services in combination will produce the correct result. The goal of the proposed work is to transfer software run-time-monitoring approaches to SOA in order to provide the scientist with the capability to check behavior of requested services. Run-time monitoring supports verification of software. It can be used to check that the input meets specified properties (even those that are specific for a particular run) and that the algorithm implemented by the service is progressing during run time as expected for the given input. The work will be accomplished by the following four efforts: specifying probes and properties; generating observable services; developing monitoring services; and integrating research and education. The outcome of the proposed work will be a prototype system that generates observable services and creates a hosting environment that accepts properties from the scientist and uses them to check that the service meets properties. The proposed work will use applications from GEO-science Network (GEON), a collaborative effort among researchers from a cross section of IT and earth science disciplines to create the geo-informatics infrastructure. In this and other grid environments, the scientist must have assurance that retrieved services behave as expected, that retrieved data is correct, and that the integration of services yields correct results. Adding functionality that achieves this will create an even more productive and effective environment for the scientist.
