Java Reference
In-Depth Information
Defining a Service
Problem
What is a service?
Solution
A service is a software component with the following properties:
▪ It is defined by an interface that may be platform-independent.
▪ It is available across a network.
▪ The operations defined in the interface carry out business functions by operating on busi-
ness objects.
▪ Its interface and its implementation can be decorated with extensions that come into effect
at runtime.
A service can mean other things as well. Sometimes the definition is broader, to include, for
example, a distributed component whose interface is designed by the business. Sometimes the
definition is more narrow, such as a SOAP-based web service.
Discussion
One initial difficulty in approaching SOA is that people don't always agree on what is meant
by its fundamental building block, the service. Many definitions of a service refer to slippery
or very abstract concepts, such as “adaptability” and “agility,” that are too vague to be use-
ful to the developer. Presumably, given the choice, no one wants to make unadaptable, leaden
software that doesn't meet business needs. But the fact of the matter is that, despite best ef-
forts, this happens all too often. Knowing that SOAs should be “adaptable” and “agile” may
be laudable, but that alone doesn't help make a state change. Let's unpack these terms a bit.
Other definitions are too narrow for the real world. It is tempting, for example, to indicate
that a service must be a software component that talks SOAP. But this limitation is artificial;
there are many practitioners using REST who believe, quite reasonably, that they are doing
services. Perhaps our definition should include something about messages being XML-based,
as this is a common denominator between RESTful web services and SOAP-based services.
But this is also too limiting for a general definition.
Search WWH ::




Custom Search