Web service
From Wikipedia, the free encyclopedia.
According to the W3C a Web service is a software system designed to support interoperable machine-to-machine interaction over a network. It has an interface that is described in a machine-processable format such as WSDL. Other systems interact with the Web service in a manner prescribed by its interface using messages, which may be enclosed in a SOAP envelope, or follow a REST approach. These messages are typically conveyed using HTTP, and normally comprise XML in conjunction with other Web-related standards. 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 in a manner similar to inter-process communication on a single computer. This interoperability (e.g., between Java and Python, or Microsoft Windows and Linux applications) is due to the use of open standards. OASIS and the W3C are the primary 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.
Contents |
Standards used
- Web Services Protocol Stack: The Standards and protocols used to implement a web service, considered as a protocol stack.
- XML: All data to be exchanged is formatted with XML tags. The encoded message may conform to a messaging protocol such as SOAP, JAX-RPC, or XML-RPC (note: early industry standards for web-services security and interoperability were advanced considerably in the development of SOAP). The JAX-RPC protocol also calls functions remotely (hence, remote procedure call).
- Common protocols: data can be transported between applications using common protocols such as HTTP, FTP, SMTP and XMPP.
- 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 should enable 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.
- WS-Reliability: SOAP-based specification that fulfills reliable messaging requirements critical to some applications of Web Services. Accepted as an OASIS standard.
Advantages of web services
- Web services provide interoperability between various software applications running on disparate platforms.
- Web services use open standards and protocols. Protocols and data formats are text-based where possible, making it easy for developers to comprehend.
- By utilizing HTTP, web services can work through many common firewall security measures without requiring changes to the firewall filtering rules.
- Web services easily allow software and services from different companies and locations to be combined easily to provide an integrated service.
- Web services allow the reuse of services and components within an infrastructure.
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 may 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 utilizing 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 primary reason that web services are useful is that they provide a very loose coupling between an application that uses the web service and the web service itself. This allows either piece to change without negatively affecting the other, as long as the interface remains unchanged. This flexibility allows software to be built by assembling individual components into a complete application, and promises ultimate reusability of code.
Web services are gaining in popularity because they are based 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 environment, 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 HTTP traffic in web browsers. Web services tunnel everything through port 80, thus requiring no change to firewall or browser configuration in order to operate. This may be a more attractive solution to vendors and users of web services; however it may be unwelcome by administrators because it bypasses certain aspects of network security.
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
- Cordys WS-AppServer from Cordys
- 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
- Mono development platform from Novell
- 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
- Web Application Server from SAP (the Web AS is a key part of the SAP NetWeaver stack)
- Pramati Application Server from Pramati Technologies Limited
- OpenEdge Platform from Progress Software
- Oracle Application Server from Oracle
See also
- Business logic
- Computing
- REST
- Service-oriented analysis and design
- Service-oriented architecture
- Software component
- Software design
- Web application
- Website
External links
- Apache Axis (SOAP Implementation)
- gSOAP: C/C++ Web Services and Clients
- Article, "Stop the hype about webservices!"
- XMethods listing of publicly available web services
- CanyonBridge's blending of disparate Web services provides a great example of what can be done
- Microsoft proposed standards
- Organization for the Advancement of Structured Information Standards
- Web Services Activity at World Wide Web Consortium
- XML Protocol Working Group (SOAP) at World Wide Web Consortium
- Web Services Architecture at World Wide Web Consortium
- Articles, podcasts, webcasts about Web services security at WebServicesSummit.com
- Article, "The third era starts here"
- Service-Oriented Architecture (SOA) and Web services at IBM developerWorks.
- Oracle Web Services Technology Center
- Web services product information
- IEEE International Conference on Web Services
- IEEE International Conference on Services Computing
- International Journal of Web Services Research (JWSR)
- IEEE Services Computing Community
- Google Web APIs demo implementations
- Some sophisticated Web service interface specifications have been developed by the Open Geospatial Consortium (OGC)