Lists Home |
Date Index |
Francis Norton wrote:
> Thanks - I'll be reading this on the train home (in ten minutes).
> How far do orchestration languages like XLANG and WSFL address your
> concern about composability?
I don't know if XLANG really helps you to compose systems that weren't
designed to be composed. At its current state I really don't think so.
The inputs of service A and outputs of service B must exactly align.
The more flexibility you give people the less likely that integration
will "just work" without glue. SOAP/WSDL gives people flexibility in a)
addressing scheme, b) method names and c) data structures. But really,
flexibility in a) is pretty useless -- why not use the standardized
addressing scheme? And flexibility in b) is also not very important
(though less obviously useless) because fundamentally all networking
operations can be boiled down into "assign an address to a data object",
"get a data object by name" and "mutate a named data object" (POST, GET
So once you've gotten rid of that stuff all you've got left is data
structures (XML vocabularies). So composability becomes really easy IFF
you've standardized your XML vocabularies (or can translate). I
think this allows a more healthy mix of top-down and bottom-up
integration. Bottom-up is especially important for information
categorization and indexing services. And as far as I can
see nothing is lost by using global addressing and well-defined
methods, other than that you have to learnto think in
a slightly different way.
> ... If I understand REST aesthetics at all, I
> guess that a REST approach would favour bottom-up (each service tells
> you about its acceptable successors) openness over top-down (you get the
> whole map pre-written) completeness.
> Never underestimate the power of emergent properties....
Agree. REST is great for allowing new uses of data to emerge.
XLANG is not unlike the mythical orchestration language in my article
except that XLANG needs to deal with some things that my language would
not, such as: "... by their very nature, stateful services are
instantiated in order to act in accordance with the history of an
extended interaction. Therefore, messages sent to such services need to
be delivered not only to the correct destination port, but to the
correct instance of the service that defines the port."
In REST there is no distinction between services and instances. One URI
points to the instance which is also a service.