|
So
be it :-)
To
avoid any misunderstanding, though, let me recall what I mean by
'lightbulb10.TurnOn()'.
This
statement simply means that a SOAP message comprising a parameterless
operation 'turnOn' is sent to lightbulb10.
Why?
Because that's how I defined the lightbulb scenario two weeks
ago:
<quote>
My proposed simple example
is a service-oriented lightbulb.
It exposes an interface comprising the
(self-explanatory) operations 'TurnOn', 'TurnOff'
and 'Dim'. (This supposes the lightbulb has some intelligence
built in, which may seem absurd, but isn't.)Using WS-*, one would define a WSDL with a single portType comprising
the above three operations.
The
interaction pattern may be either request-response or one-way, depending on
whether or not the service consumers are supposed to be informed of the results
of the requested operation.
Note that the
operations are *not* meant to be remote procedure calls: a 'TurnOn' request is
an asynchronous SOAP message and so is the corresponding response, if any.
WS-Addressing is used to correlate the response with the request. Depending
on the environment, various protocols can be used to transport these
messages, including TCP and UDP.
Note further
that the operations are supposed to be
stateless. <quote/>
I
suspect that some people are uncomfortable with the idea of a smart lightbulb.
They could take the example of a networked printer that exposes a service with
operations 'SubmitPrintJob' and 'CancelPrintJob'. I didn't take this example
because I would have had to factor in the print job itself (communicated as an
MTOM attachment to the 'SubmitPrintJob' message), so it's slightly more
complicated than the lightbulb, but totally equivalent in nature. The printer
example would have had the advantage, however, of showing the necessity of
an asynchronous event notification mechanism for signaling the end of a print
job, for which the REST approach has no solution other than clumsy,
non-standard polling mechanisms.
We
call this "SOA for devices". The prevailing specification in this space is
the Devices Profile for Web Services (DPWS), which includes WS-Discovery for
dynamic device discovery and WS-Eventing for pub/sub event notification. DPWS is
supported by Windows Vista, of which it will become the preferred method for
interfacing network-connected devices. DPWS will enable some interesting
scenarios for integrating device-provided services with higher-level business
applications.
Harm.
__._,_.___
SPONSORED LINKS
YAHOO! GROUPS LINKS
|
Title: Message
- RE: [service-orientated-architecture] Zapthink on SOA/RE... Harm Smit
- RE: [service-orientated-architecture] Zapthink on S... Harm Smit
- RE: [service-orientated-architecture] Zapthink ... Andrew S. Townley
- RE: [service-orientated-architecture] Zapth... Harm Smit
- RE: [service-orientated-architecture] Z... Andrew S. Townley
- Re: [service-orientated-architectu... Gregg Wonderly
- Re: [service-orientated-archit... Andrew S. Townley
- Re: [service-orientated-architecture] Zapthink ... Gregg Wonderly
- Re: [service-orientated-architecture] Zapthink ... David Forslund
- Re: [service-orientated-architecture] Zapthink ... Stuart Charlton
- Re: [service-orientated-architecture] Zapthink on S... Steve Jones
