As the use of ubiquitous devices continues to grow, we have more and more access to pervasive information around us. This information allows us to know the state of our surroundings, and we make decisions of our everyday life based on that context information. Computer-based business processes are expanding more and more, as the activities they deal with are being automatized. However, when dealing with these processes, there is a lack of integration between the context information and the processes. We can consider a condition in a specific part of the process and make a decision based on the information, but we cannot monitor the information in real-time and adapt the process accordingly, just as we do in normal life. Moreover, the static nature of business processes does not allow them to be dynamically modified, thus leaving them less useful in the new context. If we want to change the behavior of a business process, we need to stop it, modify it and redeploy it entirely, which causes to lose all the current executions and information. To address these issues, in this thesis we present the CEVICHE Framework. We bring forward an approach which allows to represent context-aware business processes where context information is considered as events which are monitored in real-time. For this, we base our work on a technique called Complex Event Processing (CEP). By using an external tool to monitor the context in real-time, we are able to surpass the limit of only accessing the information on specific places of the process. However, knowing this information is not enough, as what we need is to be able to adapt our processes accordingly. With CEVICHE we integrate the information obtained from the context with the capability of adapting business process at run-time. Also, one of the original contributions of the CEVICHE Framework is the definition of a correct adaptation undoing mechanism and its implementation. Undoing an adaptation can easily go wrong and lead to undesired states and unstable processes. Naively considered as a trivial task, this issue has been barely considered when looking at the current dynamic approaches, and in the business process domain, none of the approaches integrates this. So, in CEVICHE we propose a formal model of this mechanism for undoing adaptations. The implementation of the CEVICHE Framework offers flexibility and dynamicity properties to the business processes, using a component-based approach, allowing the modification of their bindings at run-time. Moreover, with CEVICHE we also provide a stability property in terms of CEP. As any new technology, CEP is still evolving and since there is still no standard in the way in which the events are defined, each implementation uses its own language to express them. By defining our own simple language, the Adaptive Business Process Language (ABPL), as a pivot language, CEVICHE facilitates the use of CEP without the drawbacks of early adoption. We use a plug-in approach that allows the events defined in ABPL to be used in virtually any CEP engine. This approach also makes it easier to maintain, as we just need to update the plug-in in case the CEP language evolves, or we decide to use another implementation, instead of updating all the event definitions. Finally, we validated our approach by implementing a nuclear crisis scenario, with a use case which involves many actors, context-information and adaptation conditions.
Towards Creating Context-Aware Dynamically-Adaptable Business Processes Using Complex Event Processing