Introducing .NET Web Services
The underlying software and hardware that provide the connective tissue for the Internet represent some of the most complex technology of the past few decades. Just a few years ago, the Internet was a simple network that relatively few people used for e-mail. Seemingly overnight, HTTP- and HTML-based Web pages emerged. HTTP (Hypertext Transport Protocol) is an application-level protocol that is relatively easy to implement and debug. Web pages based on HTML (Hypertext Markup Language) are easy to author using a human-readable format that Web browsers have been liberal at interpreting.
Several years after the HTTP/HTML revolution, XML (eXtensible Markup Language) came into play. XML is a simple and easy-to-understand format for data markup. From this single, easy manner of data encoding, it wasn't too large a step to create a new application framework that combined HTTP and XML into Web serviceand enabled developers to create distributed applications in ways that were impossible before. I say that Web services are an exciting technology because the Web architecture is fundamentally different from many other networking and distributed programming methodologies. Web services inherit many of the better features of the Web, as well as some of the pitfalls.
This chapter provides an overview of the features and drawbacks of Web services. It begins with an introduction to Web services, including a working definition, and places them in the larger context of distributed application development. By the end of this chapter, you should have a clearer understanding of what Web services are, as well as how this technology fits into the larger landscape of software development.
The Problem: Sharing Data
Simply stated, computers need to share data. Many scenarios bear this out: Businesses need to share information with partners. Divisions need to send data to other divisions. Consumer applications need to work with other consumer applications.
Recently, Microsoft identified several different application types that could use Web services:
Data providers, for example, those that provide data such as a stock quote
Business-to-business process integrations, such as those that send a purchase order from one company to another
Integration with multiple partners, and even with competitors
Enterprise application integration, for example, integration of a company's e-mail database with its human resources (HR) database
A typical use of Web services would be a help desk application. Help desk applications are often small Windows applications that enable help desk operators to query for internal customer data, and then update this data with whatever information they gather during the course of a help desk call. The developers of this type of application need to pull out information about each employee who calls from the central employee database. They also need to pull out and modify data from their own help desk database.
The Problem: Sharing Data
Simply stated, computers need to share data. Many scenarios bear this out: Businesses need to share information with partners. Divisions need to send data to other divisions. Consumer applications need to work with other consumer applications.
Recently, Microsoft identified several different application types that could use Web services:
Data providers, for example, those that provide data such as a stock quote
Business-to-business process integrations, such as those that send a purchase order from one company to another
Integration with multiple partners, and even with competitors
Enterprise application integration, for example, integration of a company's e-mail database with its human resources (HR) database
A typical use of Web services would be a help desk application. Help desk applications are often small Windows applications that enable help desk operators to query for internal customer data, and then update this data with whatever information they gather during the course of a help desk call. The developers of this type of application need to pull out information about each employee who calls from the central employee database. They also need to pull out and modify data from their own help desk database.