Web Services in Review
Personally, I believe that Web Services move us closer to a microkernel operating system. Basically, a microkernel operating system means that your computer has basic operating system services and everything else comes from a central, shared repository. With the widespread adoption of the World Wide Web, direct movement toward microkernels seemed to be placed on a back burner . Now that we can download widely distributed Web Services from the Web, we may be heading back toward a microkernel operating system in a circuitous fashion. A microkernel operating system can contain the BIOS, a bootstrap program, and networking drivers to get your computer connected to the Web, and then individual services can be run from a centralized cluster of computers somewhere on the Web. The benefits of such a system might be immediate power-on and power-off, pay-only-for-what-you-use software, and automatic upgradesno more CD-ROMs and patches.
Right now, whether we are intently moving towards a microkernel or not remains to be seen. What we are definitely doing is trying to make digital services more widely and readily available.
Until recently the model of software development for Windows and much of the Internet was COM, HTML, and ASP. A programmer builds a COM component and one or more developers share that component as part of a framework for a single system. The deficits of this model are that everyone cannot easily share those COM objects, and COM is proprietary.
Web Services were invented to solve issues related to shareability and making a protocol that is more palatable by using open standards. This brought in all of the acronyms mentioned in the chapter's opening paragraph and more.
The Web Services technology is based primarily on a basic Hyper Text Transfer Protocol (HTTP) connection, SOAP, and Extensible Markup Language (XML). HTTP is the most generic Internet connection that uses dotted IP addresses to locate and share information between computers, usually on port 80 in each computer. SOAP used to be an acronym for Simple Object Access Protocol but is now just SOAP. SOAP is a protocol based on XML that is used to describe how requests and responses and user -defined data types are shared across a network. XML is an evolution of HTML (see the note).
XML is a metalanguage a language used to describe languagethat supports creating or extending markup languages. XML was originally invented to support the exchange of documents on the Internet. XML was written in Standard Generalized Markup Language (SGML), a standardized language for describing the structure of a computer document.
XML is an industry standard that is simple and customizable. Because it is a general standard rather than a proprietary protocol owned by Microsoft, it has a greater likelihood of being palatable to the computer industry as a whole when used in the context of a new technology.
Because XML is text, it is easy and convenient to send over a network using any TCP/IP protocol, like HTTP. An industry standard that is easy to transmit over a network and already available is a good choice to base new technologies on, like Web Services.
What Web Services do for us is hide the fact that when you use an object that happens to be residing in an assembly across a network, Web Services are converting the request to a SOAP-based XML request. The XML text is sent to the server. The server packages the XML back into an object, and the server responds. The server responds in the same manner as the client. The server uses Web Services to package everything up into XML, sends it across the wire as XML text, and Web Services on the client side convert the XML back into an object.
The easiest way to grasp what is going on is that the client and server objects are serialized into a standard format, XML, while they are going back and forth across a network. When our code actually sees the information, it has been repackaged into an object. All of this marshaling of objects to XML and XML to objects happens behind the scenes. The concepts are similar to DCOM, but instead of using a proprietary intermediate form of the object, XML is used.
What does this mean for developers? On the surface, it means that we can ignore XML and SOAP and focus on the code. What it will ultimately mean has probably not been determined yet. All of this is reasonably new technology that is intended to replace a lot of existing technology. And, Microsoft is betting that by using an industry standard, XML, Web Services will be palatable to more than just Windows programmers. The other thing it means for developers is that you can write Web Services for Windows and Web applications, and have the possibility of building a whole new customer base, dependent on your universally available Web Services.
The rest of this chapter focuses on finding, using, and implementing Web Services in Visual Basic .NET. Where you may be interested in knowing more about specific protocols throughout the chapter, I have included references to the Requests for Comments (RFCs) that describe what a specific protocol is.