Web services, and its cousin, .NET, are little known technologies that use the Internet to dramatically increase businesses' and individuals' productivity. They allow programs and services to be run remotely across the Internet, and also allow services to be delivered automatically to people's desktops. The technologies are extremely malleable and can be used for a wide variety of purposes. For example, web services can be used to automatically deliver up-to-the-minute weather and stock information to someone's computer, and they can also be used to automatically tie together the computer systems of business partners, so that they can easily exchange goods, services, and information.
The two technologies are much talked about, much hyped, and frequently misunderstood. But throw away all the hype, and they're simply modular software components wrapped inside a specific set of Internet communications protocols, which can be run across the Internet. They're quietly revolutionary technologies, because they in essence can do away with the need for an operating system to run software. Specific Internet protocols and web browsers, instead, work much like an operating system and let people run applications and use services inside their web browsers.
While the term web services is often used broadly, in fact, the only true web services are those that use a number of specific protocols and technologies. At the heart of web services is the Extensible Markup Language (XML), which is used to describe a web service, and then help find and run a specific web service. (For more information about XML, turn to Chapter 19, "How Markup Languages Work.") Simple Object Access Protocol (SOAP) is the web services communication standard. Other important technologies, explained in the following spread, include the Web Services Description Language (WSDL) and Universal Description, Discovery and Integration (UDDI). The web service itself is a piece of software written in a language such as Java, and that can be found and run over the Internet using these protocols and technologies.
Web services and .NET share a very similar architecture. Both require that applications be written and then run using XML, SOAP, WSDL, UDDI, and related technologies. The difference is in how the actual applications are written and run. Web services are typically written in Java, and can be run in any browser that has Java capabilities.