Monday, November 21, 2005

Stateless process manageability

It is a common principle of SOA that services are stateless. The statelessness supports loose coupling, reusability, and composability of services. In the principled Web architecture, stateless communication improves the system's visibility, reliability, and scalability. When the applications of cookies and other approaches in the Web make the communication stateful, the visibility and reliability of Web applications are degraded. Similar to the case of Web architecture, services can be developed to manage state information, but that would detract from some benefits of SOA. However, it does not introduce any conflicts in managing stateful processes and process instances using stateless web services. That directly implies that the process state information is carried by the messages or events going in/out the manageability services, and some applications maintaining the state information are hidden behind the manageability services.

Manageability services communicate with the applications maintaining state information through specific application protocol. On the other side, the communication between manageability consumers and manageability services just need to follow the open service protocol. Databases can store large amounts of state information of processes and process instances during and after their lifetime. Another kind of application, like message topics, maintains a certain group of messages with state information. The management of BPEL processes is essentially monitoring, tracing, and controlling the states through the corresponding manageability service endpoints.