What are web services?
Web services are a type of internet software that use standardized messaging protocols and are made available from an application service provider's web server for use by a client or other web-based programs.
Web services can range from major services such as storage management or customer relationship management (CRM) down to much more limited services such as the furnishing of a stock quote or the checking of bids for an auction item. The term is sometimes also referred to as application services.
Users can access some web services through a peer-to-peer arrangement rather than by going to a central server. Some services can communicate with other services. This exchange of procedures and data is generally enabled by a class of software known as middleware.
The evolution of web services occurred as all major platforms were able to access the internet, but different platforms could not interact with each other. Web services were able to take platforms to the next level by publishing functions, message, programs or objects to the rest of the internet.
How web services work
Web services are built using open standards and protocols in order to integrate with various applications. The different protocols that web services use include:
- Extensible Markup Language (XML). This is used to tag, code and decode data.
- Simple Object Access Protocol (SOAP). This is used to transfer the data. The SOAP protocol was developed so that different programming languages could communicate quickly and with minimal effort.
- Web Services Description Language (WSDL). This is used for telling the client application what is included in the web service and how to connect.
- Universal Description, Discovery and Integration (UDDI). This is used to list what services are available within one application. It also allows web services to be discoverable to other services.
- Representational State Transfer (REST). While not all web services use the REST protocol, applications built with RESTful APIsare more lightweight, manageable and scalable.
Web services allow different organizations or applications from multiple sources to communicate without the need to share sensitive data or IT infrastructure. Instead, all information is shared through a programmatic interface across a network. This interface can then be added to a GUI, like a web page, to deliver specific functionality to users. This means web services are not specific to one programming language or operating system and do not require the use of browsers or HTML.
Components of a web service
On a fundamental level, a web service must fulfill the following components:
- Is accessible to users over the web.
- Uses XML for information exchange.
- Is interoperable over any programming language or operating system, due to the use of open standards.
- Is self-contained and self-describing using common XML semantics.
- Is discoverable through a common mechanism, like UDDI.
Uses of web services
Web services are used for a variety of applications, but the most common is for reusing code and connecting existing programs.
The web service method can help developers segment applications into components that can be used and reused for various needs. For example, more than one program might need a conversion tool or a reporting function. This is possible due to web services' universal communication protocols.
Additionally, web services can be used to link data between different platforms. Since all applications can include a web services component, this can turn any program into a fully interoperable one.
Challenges of web services
As web services proliferate, concerns include the overall demands on network bandwidth and, for any particular service, the effect on performance as demands for that service rise. A number of new products have emerged that enable software developers to create or modify existing applications that can be published as web-based applications.