The most significant aspect of Web services is that every software and hardware company in the world has positioned itself around these technologies for interoperability. No single technological advancement will have as great an impact on the way systems are developed as Web services.
Web services allow systems to communicate with each other using standard Internet technologies. Systems that have to communicate with other systems use communication protocols and the data formats that both systems understand. Developers use technologies such as CORBA, RMI, or DCOM most often. The principal problem with these communication technologies is that not every platform supports them. Developers must create gateways to convert an unsupported protocol and data format into one that the target platform understands.
The emergence of the Internet has forced vendors to support standards such as HTTP and XML. Over the past few years, vendors and their customers quickly realized that programs that communicate with each other could also use the technologies that run the Internet. Web services use Internet technology for system interoperability. The advantage that Web services have over previous interoperability attempts, such as CORBA, is that they build on the existing infrastructure of the Internet and are supported by virtually every technology vendor in existence. As a result of the ubiquitousness of the technologies they use, Web services are platform-independent. This means that whether the Web service is built using .NET or J2EE, the client uses the service in the exact same way.
This platform independence is also evident on the World Wide Web itself. A Web site uses HTTP and HTML to pass data to a user's browser-this is the only requirement the site must support. A Web site may be developed using a large number of languages and platforms, but the platform is irrelevant as long as the data is ultimately provided to the browser using HTTP and HTML. These same principles apply to Web services.
Web services are fast becoming the single interoperability standard for program-to-program communication. This chapter answers the following questions:
What are Web services?
What is the history of computing in terms of its physical and logical evolutions?
What are the technologies involved in Web services?
How does Java support Web services?
What kinds of Web services are there?
What kind of benefits can be realized by implementing Web services?