Web Services Architecture and Web Protocols
A distributed system consists of discrete software agents that must work together to implement some intended functionality. The agents in a distributed system don't operate in the same processing environment, so they must communicate using hardware/software protocol stacks that are intrinsically less reliable than direct code invocation and shared memory.
To choose the right distributed system for a particular need, you must determine the system's data-sharing requirements. If all software agents share a common platform, it may be possible to use some other distributed solution for that platformweb services may not be the optimal solution for your needs. However, before you choose another distributed system, we strongly encourage you to look at what web services have to offer.
This is the first time in the history of the software industry when a distributed system is being endorsed by all the major players and thus will be well supported. Web services don't assume the processing environment you're in or the technology you choose. The web services approach is also focused on business, rather than being mired in low-level technology details, and thus enables service-oriented architecture in the true sense. Even if web services may not currently address all your requirements, your enterprise and system architects should consider the future potential and value of having an open architecture for distributed systemsand the pain that such an open architecture can alleviatebefore deciding on another distributed system.
Web services are built to be interoperable between all processing environments (even embedded systems). This design requires the standards and protocols for the web services architecture to be nonproprietary and standards-based. Web services technology leverages a lot from existing web technologies. Let's consider a couple of these technologies that are relevant to our discussion: HTTP and XML.
HTTP as a Transport Protocol
Web services is an extension of the human-to-computer interaction that has been so successful with the Internet and the World Wide Web. A lot of technologyencryption algorithms, security protocols, digital certificates, tunneling through firewalls, and so onhas developed around the web and the Hypertext Transfer Protocol (HTTP) that the web uses to communicate across various processing environments. These technologies have made it possible for enterprise IT systems to consist of a single common infrastructure. Because web services primarily use the Internet as the medium through which services are accessed, the obvious choice was to adopt a related protocol stack rather than invent a parallel one. Web services use HTTP as the transport protocol to communicate across various software agents, and directly benefit from all that work and support that already exist for the web.
XML as a Messaging Format
To publish information for global distribution, you need a language that all computers can understand. The publishing language used by the web is Hypertext Markup Language (HTML), a language with predefined visual elements that have specific characteristics. But application-to-application communications requires transferring messages and transaction data between two systems, and the vocabulary for such transfers must be far richer than that of HTML. The solution is Extensible Markup Language (XML), which allows various enterprises and business entities to define their messages in a very rich format and in a nonproprietary way. It's an obvious choice for web services to use as a messaging format.
XML over HTTP Communication
XML over HTTP has been a preferred architecture for application-to-application communication, especially in web-based transactional applications. Web services formalize this method of communication, and will probably help it to further evolve and become more mainstream. Some of the evolution includes supporting multiple transport protocols (such as SMTP and FTP) seamlessly, and defining standards for discovery of these services. Web services have also defined new protocols:
Web Services Definition Language (WSDL) describes a service and its interfaces.
SOAP provides an "envelope" to exchange structured data.
Many other protocols and standards help to provide a comprehensive solution for application-to-application interaction.
The basis of the framework that we propose in this series is to build on the XML-over-HTTP model and selectively choose the new web services defined technologies to build a better enterprise solution.