| Web Services -thoughts on service orientated architectures |
|
Sunday, September 29, 2002
The need for ACID type properties do not go away with a distributed system, they need to be extended to encompass loosely coupled architectures. The degree by which they need to be extended depends very much on the business process being carried out. The processes require both the ability to have guaranteed transaction semantics but also as businesses move to SOA's they need the ability to create loosely coupled systems that allow the sharing of transactions but do not require the very tight coupling that shared two phase commits requires. Services Orientated Architecture Leading companies are moving to SOA, they are either part of a SOA or they orchestrate a set of SOA's. They need to maintain ACID type properties but they also need to embrace loosely coupled architectures from a purely economic and scalability perspective. To achieve all these goals there is a need to extend the definition ACID properties for long lived transactions, in such a way they are still individually valid and collectively consistent.
To inter-operate the need is to loosen the requirement for consistency to a finite time period that is set by the initiator of the transactional conversation, i.e. I expect everyone in the transaction to have reached a consistent state with me within x time period. If they do not reach consistency I will cancel the transaction and send them a compensation message - not a rollback as we are not in an ACID transaction. The state of individual systems are not tightly coupled so they are moving independently of one another. The notion of compensation is key to long lived transactions. In all reliable systems the key is how well is exceptions handled by the system. The more automatic the exception handling the more robust and reliable the system is. In the diagram before a distributed transaction is made up by three participants, the initiator, who decides the rules of engagement and the participants who deliver the services requested by the initiator. The other actor in the system is the coordination service that provides the necessary mediation and management functions to enable all parties to participate on an equal footing with a guaranteed level of service. ![]() Each transactional unit can perform two phase commits internally and the only interface exposed to other parties are the sending and receiving of guaranteed messages. Each actor provides for sending and receiving messages within a transaction this allows each actor to maintain two phase commits and ACID properties while participating in a long lived transaction that spans individual transaction boundaries. The coordination system allows the initiator to create rules that determine the success or failure of each long lived transaction. Through the coordination system all actors have the same visibility into the progress of the transaction through the individual actors. Simple Example A simple example would be of a distributor taking orders from customers through a web services interlace and then placing the individual orders with several manufacturers through web services interfaces. This allows manufacturers real time visibility into the demand chain and can allow the distributor to provide feedback to customers for ship and delivery time. Within the simple place order to several systems there is a significant amount of latency especially if any of the participants use batch processing. The simplest failure is when the order cannot be completed for some reason cancellation occurs and all parties need to be notified that the order was canceled. Typically some time has past since several of the parties have committed their transactions therefore a simple rollback is not appropriate as the state of the systems have changed since the initial transaction. To recover from the error a compensating transaction is now required. This is probably the hardest business process to create as it may involve a complicated series of unwinding steps. There are many other failure modes that may exist in an interaction among several parties. One advantage a loosely coupled system such as Grand Central provides is to create dynamically systems at runtime enabling different modes of success and failure to be defined in a running environment. Web Services Network Enabling loosely coupled transactions require at a minimum a guaranteed messaging infrastructure to connect the individual atomic actors in the transaction group. Other necessary features are a management system to provide visibility and guaranteed exception handling. To deliver these features in an independent way that does not require every participant to either implement all the necessary infrastructure or implement the same infrastructure a third party service is required. This the reason for Web Services Networks, they act as the guaranteed messaging infrastructure for all participants, provide the necessary visibility and in the case of Grand Central provide exceptions and events as guaranteed messages allowing the construction of compensation rules. Grand Central Communications (GCC) provides the needed infrastructure for guaranteed messaging, shared visibility and event management of the long lived transactions. GCC provides a service that enables edge nodes to participant in LLT. GCC provides once and only once messaging semantics fro every message sent into the network. For every message it provides shared visibility to all participants allowing a common view of the progress of a transaction. All messages, including exceptions and events are treated as first class messages with the same degree of reliability and visibility. This allows the creating of compensation rules by the initiator of a LLT where the rules for successful completion or compensation can be described and applied to individual business processes. Key driver is the ability for businesses to implement both transactions and compensation. Compensation is something that has always historically been done badly, how many times have we all canceled an order several hours/days after it has been placed and either have been shipped the goods and not billed or billed but not been shipped. Conclusion Not all actors will provide the same level of semantics, not everyone will be able to provide the necessary persistence mechanisms for once and once only delivery. It is in this heterogeneous environment, of both implementations and capabilities that Grand Central provides solutions. Grand Central Communications provides the necessary infrastructure and runtime environment to build services that require long lived transactions. The range of capabilities the that Grand Central provides enables companies to offer increasing levels of sophistication in an evolutionary manner. This enables businesses to position effectively themselves as providers of robust and reliable services for partners and customers. posted by John McDowall | 4:31 PM |
|
||||||||||||
|
|
|||||||||||||