Specification and verification for Web Services and Grid Computing

'A Web Service is application or business logic that is accessible using standard Internet protocols.' --www.zeroonesoftware.com/glossary.html. Web Services offer a vision of the use of distributed computing resources and services on the web in defined, standardised ways. See also the excellent wikipedia definition.

Grid Computing on the other hand is a particular framework of large-scale, heavy-duty distributed computing arising from the e-Science community of computer-dependent scientists. Unsurprisingly, Grid Computing (e.g.Globus, IBM's World Community Grid) is moving closer to Web Services. Grid Computing is used by, and uses middleware infrastructure to support, university and corporate researchers. In contrast, "Public Resource" or "Global Computing" is designed for smaller-scale projects who can't afford the investment in setting up a Grid, and is based on a more peer-to-peer style of working. SETI@home is the classic example of this kind of project, supported by platform projects like BOINC.

Computer scientists have long known that distributed and concurrent computing is hard to verify, i.e. to reason about, test, and give any guarantees about. There is now a good level of support for verification of such systems, although many hard problems remain. With Web Services, Grids, and public resource networks,  the complexity of distributed computing is compounded by the extra infrastructure of large-scale web-based usage: things like security, user and processor authentication, accounting, quality of service to name a few. There is a strong need for various investigations into verification in this area., particularly as applications with critical requirements emerge. The verification needs of Grid as opposed to Global Computing applications will overlap but be distinct.

Updated 24/2/05