Web services allow two programs to exchange XML documents. Microsoft has implemented a Remote Procedure Call (RPC) model on top of this architecture, and for the purposes of this book, we will treat web services as a way for a server to expose methods to a client.
There is a competing description of web services in which it is described in terms of messaging. From this perspective, a contract defines the content and type of the messages, and the web service is developed to implement that contract. Many developers believe that this approach yields a web service with fewer interoperability problems since all parties know in advance what types they can pass back and forth.
Though the tools in VS2005 are moving toward making this design approach more feasible, Microsoft's core tools still encourage and facilitate the RPC model.
The web services infrastructure has several defining characteristics:
Both the web service server and the client application are connected to the Internet.
The data format with which the two ends of the connection communicate conforms to the same open standard. This standard is almost always SOAP, though it is technically possible to communicate via HTTP-GET or HTTP-POST requests. SOAP messages consist of self-describing, text-based XML documents.
The systems at the two ends of the connection are loosely coupled. In other words, web services do not care what operating system, object model, or programming language is used on either end of the ...