In the .NET world, components are built by people with expertise in a given area and are placed close to the data that the components will work on. Other applications seeking access to that functionality or data can simply call the services of the needed components. This is the base concept of Web services: functionality is developed and hosted by experts and made available to those who need it.
In the world of the Internet, however, Web services have no way of knowing how a calling application is written, in what language it’s written, or on what operating system it’s running. Instead, these services must be available to any application that calls them. To ensure that the services are interoperable with any calling applications, Web services in the Microsoft .NET Framework make use of XML and the Simple Object Access Protocol (SOAP).