Services may be individually useful, or they can be integrated or composed to provide higher-level services. Among other benefits, this promotes re-use of existing functionality.
Services communicate with their clients by exchanging messages: they are defined by the messages they can accept and the responses they can give.
Services can participate in a workflow, where the order in which messages are sent and received affects the outcome of the operations performed by a service. This notion is defined as “service choreography.”
Services may be completely self-contained, or they may depend on the availability of other services, or on the existence of a resource such as a database.
Services advertise details such as their capabilities, interfaces, policies, and supported communications protocols. Implementation details such as programming language and hosting platform are of no concern to clients, and are not revealed.
Web services are distributed software components that provide information to applications rather than to humans, through an application-oriented interface. The information is structured using eXtensible Markup Language (XML), so that it can be parsed and processed easily rather than being formatted for display.
XML (eXtensible Markup Language)—a markup language for formatting and exchanging structured data.
SOAP (originally Simple Object Access Protocol, but technically no longer an acronym)—an XML-based protocol for specifying envelope information, contents and processing information for a message.
WSDL (Web Services Description Language)—an XML-based language used to describe the attributes, interfaces and other properties of a Web service. A WSDL document can be read by a potential client to learn about the service.