XML Web Services
Download
Report
Transcript XML Web Services
XML Web Services
(or what going to HPTS has
taught me about web services)
Jim Johnson
XML Web Services
(or what going to HPTS has
taught me about web services)
Jim Johnson
The Basics
Shared transport, schema, & representation
Email and plain text seemed to cover it
Message Exchange Pattern
Registration follows many best practices
Well documented and mutually understood
Asynchronous
No leaked internal state
Individual steps are atomic
Compensation paths available
Atomicity
Lower level actions should be atomic
Overall contract may not be
Message delivery will be asynchronous
May be best effort
Duplicate or out of order messages are possible
Naming & Addressing
Name uniqueness is important
Bound by scope
Problems arise if the address becomes fragmented
Uniqueness problems may result in surprises
Especially if the two addresses implement the same MEP.
Jim Johnson
-> @ Standish
-> @ Microsoft
-> @ MSN
-> @ XML Web Services
Naming & Addressing
Name uniqueness is important
Bound by scope
Problems arise if the address becomes fragmented
Uniqueness problems may result in surprises
Especially if the two addresses implement the same MEP.
Jim Johnson
-> @ Standish
-> @ Microsoft
-> @ MSN
-> @ XML Web Services
Naming & Addressing
Name uniqueness is important
Bound by scope
Problems arise if the address becomes fragmented
Uniqueness problems may result in surprises
Especially if the two addresses implement the same MEP.
Jim Johnson
-> @ Standish
-> @ Microsoft
-> @ MSN
-> @ XML Web Services
Compensation Models
Real world does not always undo
Frequently it adapts, and moves forward some other way
… but should build from underlying atomic actions
For instance:
Submit abstract on one topic (STM & databases)
Get agenda that lists a different talk (this one)
Options:
Rollback…
Compensate, by moving forward using a new path…
So I’m here, and you get this talk instead
Compensation Models
Real world does not always undo
Frequently it adapts, and moves forward some other way
… but should build from underlying atomic actions
For instance:
Submit abstract on one topic (STM & databases)
Get agenda that lists a different talk (this one)
Options:
Rollback…
Compensate, by moving forward using a new path…
So I’m here, and you get this talk instead
Compensation Models
Real world does not always undo
Frequently it adapts, and moves forward some other way
… but should build from underlying atomic actions
For instance:
Submit abstract on one topic (STM & databases)
Get agenda that lists a different talk (this one)
Options:
Rollback…
Compensate, by moving forward using a new path…
So I’m here, and you get this talk instead
STM, Databases, and Services
Neither turtles nor elephants
How to simplify building atomic actions?
Compensations built from atomic steps
Use transactions, but
Simplify the programming model
Incorporate the full application state
(memory, database, message queues, etc)
Only use within a limited range
(same process, same system, maybe neighboring blades)
STM can be a big help, iff it also works with the
other resources out there.