Due to the possibility of system crashes and network failures, the design of robust interactions for collaborative business processes is a challenge. If a process changes state, it sends messages to other relevant processes to inform them about this change. However, server crashes and network failures may result in a loss of messages. In this case, the state change is performed by only one process, resulting in global state/behavior inconsistencies and possibly deadlocks. Our idea to solve this problem is to (automatically) transform the original processes into their robust counterparts. The robust initiator process re-tries failed interactions by resending the request message. The robust responder then replies with the possibly lost response message, without processing the request again. We illustrate our solution using a subset of Web Services Business Process Execution Language (WS-BPEL). A WS-BPEL process is modeled using a so called Nested Word Automata (NWA), to which we apply our transformation solution and on which we perform correctness proof. We have also analyzed the performance of our prototype implementation. In our previous work, we assumed that a certain pre-defined interaction follows the failed interaction. In this work, we lift this limitation by allowing an arbitrary behavior to follow the failed interaction, making our solution more generally applicable. This paper is an extension of our previous paper . The additional contents of this paper is the following.
|Number of pages||11|
|Journal||International journal on advances in networks and services|
|Issue number||3 and 4|
|Publication status||Published - 30 Dec 2015|