Towards A Model-Driven Approach for Process-Aware Web Applications

Towards A Model-Driven Approach for Process-Aware Web Applications

Davide Rossi (University of Bologna, Italy) and Elisa Turrini (University of Bologna, Italy)
DOI: 10.4018/978-1-60960-132-4.ch011


Model-driven methods are always welcome when developing complex applications. Their availability is usually related to the problem domain that has to be addressed and to the software architectures that have to be supported. Process-aware Web applications are arguably the prominent examples of applications in which multi-user, coordinated work takes place and are, as the web evolves towards a Business System, strongly emerging as one of the main types of Web-applications.In this chapter the authors propose a model-driven approach to process-aware Web applications based on a graphical process modeling and execution language that eases the development process (from the design to the implementation) by promoting an effective separation of concerns.Driven by an emerging class of applications, the Web is evolving into a Business System. Web-based business applications allow the participation of several actors to complex enterprise-wide (or even multi-enterprise) business processes and pose new challenges to the software designers and software architects. The design models have to address both navigational and process-based interactions; the software architecture has to provide the components to enact the process and has to define how these components interoperate with the other components of the Web applications. In this chapter the authors show how, promoting an effective separation of concerns, a process modeling language and its enactment engine can be used in the modeling and implementation of process-aware Web applications.
Chapter Preview


As the Web continues its evolution from a distributed hypermedia system to an Information System to a Business System, several recent proposals (Brambilla, Ceri, Fraternali, & Manolescu, 2006; Koch, Kraus, Cachero, & Meliá, 2004; Schmid & Rossi, 2004; Troyer & Casteleyn, 2003) have appeared with the aim of modeling and designing Web applications able to support not just simple navigation and data access activities but (potentially complex) business processes. One of the main shortcomings of most of the existing proposals is, in our opinion, the fact that they limit the business processes to the so called transactions (Distante, Rossi, & Canfora, 2007), functional activities related to the interaction with the Web application. They, in other words, aim at short-term business processes strongly contextualized within a specific Web application and limited to the interaction with a single user (like the check-out process in a e-commerce application) rather than as a complex orchestration of activities carried out by several actors and software components that could only partially take place by using the Web.

Our approach to face the issues that arise in this complex scenario is to consider this emerging class of Web applications as an instance of the more generic class of process-aware applications that include Workflow Management Systems, Web service orchestration platforms, Business Process Management support systems (like CRM and ERP), etc. This class of applications is characterized by having a control-flow perspective (also called process perspective (Jablonski & Bussler, 1996)), i.e. a dimension of concern that focuses on the coordination among actors. It is usual, for these applications, to address the control-flow perspective at the design level by using some kind of process modeling notation (that can be a visual one, like a diagram, or can be a specific language). At the software architecture level we can witness a quite obvious evolution trend, that started with the workflow languages and that now continues in the Service Oriented Architecture era with service orchestration: the control-flow perspective is addressed by directly enacting the model developed at the design level by means of specific software systems (usually called engines). There are several advantages related to this approach:

  • the guarantee that the enacted process will behave exactly as expected at the modeling stage;

  • a smooth, effortless, transition from design to implementation;

  • programmers do not have to reinvent the wheel and can rely on the non-functional software qualities of the engine.

The latter argument is of particular importance if we analyze what the alternative would be: without the executable language/enactment engine approach, the process modeled at the design level has to be refined into a set of components able to enforce the process behavior. Respecting the functional requirements for these components (i.e. assuring that the software systems respects the modeled behavior of the process) can already be quite troublesome since advanced synchronization operations can be challenging to implement. But this is just the easy part: non-functional requirements are where most of the effort is going to be spent. Addressing requirements like persistence, efficiency, availability, robustness, reliability and security can be very expensive. Assuming that an existing enactment engine is able to address them the cost-effectiveness of such a solution is clearly visible.

In this paper we investigate how to use the executable language/enactment engine approach (and enjoy its advantages) in the design and implementation of process-aware Web applications. In the following sections we first discuss existing approaches to address the integration of business processes within Web applications from both a design and a software architecture point of view; we then present our proposal based on a process modeling language, EPML, and its enactment engine. A discussion of the proposal and an outline of the future work conclude the article.

Complete Chapter List

Search this Book: