SOAP protocol - Web Services
A Web Service is defined by the W3C as "a software system designed to support interoperable machine-to-machine interaction over a network".
Web Services and Web Applications comparison
Web Services are units of code that can be called via HTTP requests in the same way that traditional websites can. The fundamental difference between them is that web services do not normally send HTML in response to a request but instead emit XML. The use of HTTP and XML gives web services advantages of platform and technology independence and allow web services to be set up to work across any intranet or even the internet.
While there are similarities between traditional Web Applications and Web Services the main function of web services is to allow a client to perform remote method calls over the HTTP protocol rather than serve HTML content to a web browser for display. While browser-based Web applications, are loosely coupled and remarkably interoperable, web services are not web based, and as they rely on industry standards, including HTTP, XML, SOAP and WSDL, to expose application functionality on the Internet, they are independent of programming language, platform and device.
While web applications typically are HTML-based, web services are XML-based. Interactive users for B2C (business to consumer) transactions normally access web applications, while web services are employed as building blocks by other web applications for forming B2B (business to business) chains using the so-called SOA model.
Web services use the HTTP transport protocol which is perhaps the most ubiquitous in the world as it is the basis of the internet! Using HTTP means that web services can be hosted within web servers and as such can be available across a company in the same way an intranet sit. But why stop at the company boundary? HTTP is the basis of the internet so why not be available to the world!
This in fact is a key application of web services as it allows Business to Business (B2B) communication
Platform, system and language independence
The HTTP protocol is the main element we have to mention in the story about Web Services, and it is explained above.
The second element of web services is XML. XML in essence is just a well formed text document that can describe data structures using simple tags. Being a text document XML is therefore totally platform and technology independent. Even if you are trying to integrate a .NET application with a Java program, though XML data exchange it becomes easy because both technologies can read text and can understand what is being passed to them from the other program.
So, the 2 key advantages of web services are:
- Platform/Language independent – Because from the users point of view all that is exchanged is XML which is a text based data format. The machinery that creates this XML behind the scenes can be on any platform using any language. The ubiquity of the HTTP protocol makes it the ideal choice for integration
- Firewall Friendly – Because they work over HTTP web service traffic travels through port 80 on any PC machine. This means that a System Admin does not have any additional firewall management headaches with extra ports being left open on a machine.
These advantages mean that any machine that has HTTP access to the server and properly technology that can read XML can access the Web Service and access its methods.
Web Service features
Web Services are web-based enterprise applications that:
- interoperate between different systems
- interoperate between different software applications
- can expose any program, functionality, application, class, method, EJB, business object … as a service
- running on a variety of platforms and/or frameworks
- simple and extensible
- use open, XML-based standards and
- transport protocols (SMTP, HTTP, RMI, JMS, WebSphere MQ …)
… to exchange data with calling clients running on a variety of platforms and/or frameworks.
Web Services use Extensible Markup Language (XML) messages that follow the Simple Object Access Protocol (SOAP) standard and have been popular with traditional enterprise. In such systems, there is often a machine-readable description of the operations offered by the service written in the Web Services Description Language (WSDL).
- Web Services effectively eliminate the need for maintaining additional hardware and software
- Web Services are available anywhere in the world an internet connection is present
- Web Services eliminate the need to learn other organization's IT Infrastructures
- Web Services can connect new possibilities to any part of an organization, using any language, or any operating system
- Web Services can be implemented in hours or days compared to months using traditional implementation methods
WS resume: any program, functionality, application, class, method, EJB, any business object … can be exposed as a Web Service and contacted by WS client independently on system, platform and application (e.g. a Web Service deployed on a J2EE server can be invoked using a C++ client).