Composable, services can and
should be used in combination to create usable applications or other services.
In order to be composable the services must be modular.
Using services in combination is like composing objects in an object
oriented programming paradigm.
Just like objects can be combined to provide the desired behavior so
too can services in SOA.
Platform- and Langugage-Independent, a good service is platform- and
language-independent.
For example,
a service which is coded in Java can be used by a service requester coded in Ruby.
Platform and language-independence is achieved by following
communication standards and protocols.
In the case of services on the Internet,
services are often requested with an XML file or an HTTP request.
The key to coordinating services on different platforms or
in different languages is enforcing well defined communication.
Self-describing, a service should describe how to interact with it.
In other words, it describes its own interface.
This includes what input it takes and what output it gives.
There are formal standards for describing services.
Using WSDL, which stands for web services description language.
We will talk more about WSDL later in the course.
Self-Advertising, in order to say service,
potential clients must know what is available.
In house organizations may catalog their surfaces in any way that works for
their business.
Distributed applications using web services have standards like UDDI,
which stands for Universal Description, Discovery and
Integration to connect service providers with potential service requesters.