This article was written in 2002, in collaboration with Andy Longshaw of Blue Skyline.
Over the past five years, the Internet has become the primary mechanism for intercommunication between individuals and businesses. The advent of the Web for information delivery has caused the replacement of proprietary protocols and mechanisms with open standards such as HTTP and HTML. These standards have been extended and augmented over time, for example with the of the eXtended Markup Language, XML as a common format for the transmission of information.
A major breakthrough for application development came in 2001, the form of a number of standards aimed at enabling communication between software applications over the Internet. These include:
SOAP a standard for accessing specific services
UDDI a directory standard for the identification and location of services
These standards enable not just whole applications to be accessed, but also individual application services, a concept that fits well with the evolution of application architecture towards components and services. The term Web Service has been coined to describe an application service that is accessible over the Web. At its simplest, a Web Service could be used to pass a piece of information between two companies. Web services can also be used for more complex interactions, such as processing a payment transaction, conducting a credit check or performing an insurance risk assessment. Of course, such facilities have been available as outsourced services for some time what is different now, is the ability to incorporate them into applications in a straightforward manner, thus simplifying application development and opening the door to new application types for the user, and new business models for the supplier. (examples)
The drive towards simpler development of applications needs to be balanced against the fact that web service providers cannot be trusted regardless of their track record. Mechanisms to validate service providers, not to mention monitoring the service they provide on an ongoing basis, need to be incorporated into the development lifecycle.
This paper explains the architectural principles of Web services, and introduces the specific issues that developers of such applications need to consider.
To download the full article, click here.