Home > Samples > Research > Jun. 2003: The .NET Development Platform > Section 2b of 8
Back to associated section: The .NET Development Platform
  Web Services: What and Why (Sidebar)    
   

A Web service is a software component that communicates with other applications and other components by encoding messages in XML and sending the messages over standard Internet protocols, such as the Hypertext Transfer Protocol (HTTP). Intuitively, a Web service is like a Web site without a user interface, serving applications instead of people. Instead of getting requests from browsers and returning Web pages in response, a Web service receives a request message formatted in XML from an application, performs a task, and returns an XML-formatted response message to that application. Because they use standard Internet protocols and exchange data via XML messages, Web services allow applications to communicate with each other regardless of the OS each is using, making it practical to integrate applications within a company as well as between companies via the public Internet. In the past, such integration was a time-consuming and highly customized process that only the very largest of companies could afford to undertake. With Web services, Microsoft and others hope to make it commonplace.

Both IBM and Microsoft are promoting Simple Objects Access Protocol (SOAP) as a message standard for Web services. Much like a letter, a SOAP message consists of an XML-based envelope that contains a header with the address of the message recipient and a variety of delivery options (such as encryption information), and a body with the data of the message.

(Microsoft likes to call this programming model "XML Web Services"—tacking on the "XML" to emphasize its openness—but the model, based on a set of World Wide Web Consortium [W3C] protocol standards, is generally known throughout the industry as simply "Web services.")

Microsoft, IBM, and other vendors promote Web services as a programming model for interapplication communication via the Internet. These companies believe that connecting applications across the Internet will enhance the ability of organizations to work together with their partners, suppliers, and customers. By creating a Web service layer on top of an existing application, organizations can allow external systems to invoke the application’s functions over the Internet or an intranet without having to modify the application itself. For example, several companies are creating Web services that act as front ends to order-entry applications hosted internally on a mainframe, allowing customers’ purchasing systems to submit orders over the Internet. Layering Web services on top of existing applications might prove even more important within companies as a way to integrate applications developed independently by departments and to reduce IT integration costs associated with mergers and acquisitions.

Integrating existing business applications via Web services, however, brings a new set of problems that Web services must solve. Business applications typically use technologies such as message queuing and transactions in order to guarantee the delivery of messages between applications and to coordinate database access, but as of yet, there are no standard Web services protocols to provide those capabilities in an interoperable fashion. Microsoft is working with IBM and other partners to define how Web services can be extended to provide these capabilities and hopes to deliver such features in future updates to its Web services platform, but until some of these technologies are supported by the .NET platform, business-to-business Web services are likely to remain at the experimental stage.