Web service
A web service is a collection of protocols and standards used for exchanging data between applications. Software applications written in various programming languages and running on various platforms can use web services to exchange data over computer networks like the Internet. This interoperability (eg. between Java and Python, or Windows and GNU Linux applications) is due to the use of open standards. OASIS and the W3C are the steering committees responsible for the architecture and standardization of web services. To improve interoperability between web service implementations, the WS-I organisation has been developing a series of profiles to further define the standards involved.
Standards used
![]() |
- Web Services Protocol Stack: To reiterate, web services consist of a collection of standards and protocols. This collection is known as the web services protocol stack.
- XML: All data to be exchanged is formatted with XML tags. This encoding can be performed by SOAP or XML-RPC (note: industry standards for security, interoperability, etc. are based on SOAP).
- Common protocols: XML data can be transported between applications using common protocols such as HTTP, FTP, and SMTP.
- WSDL: The public interface to the web service is described by Web Services Description Language, or WSDL. This is an XML-based service description on how to communicate using the web service.
- UDDI: The web service information is published using this protocol. It enables applications to look up web services information in order to determine whether to use them.
- WS-Security: The Web Services Security protocol has been accepted as an OASIS standard. The standard allows authentication of actors and confidentiality of the messages sent.
Advantages of web services
- Web services provide interoperability between various software applications running on various platforms.
- Web services leverage open standards and protocols. Protocols and data formats are text based where possible, making it easy for developers to see and understand what is going on.
- By piggybacking on HTTP, web services can work through many common firewall security measures without requiring changes to their filtering rules.
Disadvantages of web services
- Web services standards for features such as transactions are currently nonexistent or still in their infancy compared to more mature distributed computing open standards such as CORBA.
- Web services suffer from poor performance compared to other distributed computing approaches such as RMI, CORBA, or DCOM. This is a common trade-off when choosing text based formats. XML explicitly does not count among its design goals either conciseness of encoding or efficiency of parsing.
- By piggybacking on HTTP, web services can evade existing firewall security measures whose rules are intended to block or audit communication between programs on either side of the firewall.
Reasons for creating web services
The main reason web services are used seems to be that they rely on HTTP over TCP port 80. To understand this, keep in mind that many enterprises have protected themselves (see computer security) by using firewalls that filter and block much Internet traffic for security reasons. In this milieu, typically many (almost all) ports are closed to incoming and outgoing traffic, and the administrators of these firewalls are not eager to open them up. Port 80, however, is always open because it is used for web browsers. Web services tunnel everything through port 80, making the technology very appealing.
Another reason may be that prior to SOAP, there were no really good interfaces to accessing functionality on different computers on a network. Most of them were ad hoc, and few people knew or could handle EDI, RPC, and similar APIs. Web services may have more solid frameworks and would thus be easier to use.
A third reason that web services are useful: They can provide very loose coupling between an application that uses the web service and the web service itself. This should allow either piece to change without negatively affecting the other. This flexibility may become increasingly important as software is built by assembling individual components into a complete application.
Platforms
Web services can be deployed by using application server software. A sample of application servers:
- Axis and the Jakarta Tomcat server (both at the Apache project)
- ColdFusion MX from Macromedia
- Java Web Services Development Pack (JWSDP) from Sun Microsystems (based on Jakarta Tomcat)
- JOnAS (part of the ObjectWeb Open Source initiative)
- Microsoft .NET servers from Microsoft
- Novell exteNd from Novell (based on the J2EE platform)
- WebLogic from BEA Systems
- WebSphere Application Server from IBM (based on the Apache server and the J2EE platform)
- Zope is an object oriented web application server written in Python
See also
External links
- Apache Axis
- Article, "Stop the hype about webservices!"
- Listing of publicly available Web services
- List of Proposals by Microsoft
- Organization for the Advancement of Structured Information Standards
- Some case studies about the impact of WS in actual production environments
- Web Services Activity at World Wide Web Consortium
- XML Protocol Working Group (SOAP)
- An introduction article
- IBM developerWorks SOA and Web services
- Oracle Web Services Technology Center
- Browse current reports to find Web Services (Software) white papers, product literature, webcasts, and case studies.
- IEEE International Conference on Web Services
- IEEE International Conference on Services Computing
- International Journal of Web Services Research (JWSR)
- IEEE Services Computing Community