Niels Joncheere

Teaching

Academic year 2012–2013

Academic year 2011–2012

Academic year 2010–2011

Academic year 2009–2010

Academic year 2008–2009

Academic year 2007–2008

Academic year 2006–2007

Academic year 2004–2005

Thesis guidance

Academic year 2012–2013

Jeroen Van den Haute

Aspectgerichte samenwerking tussen workflows in nomadische netwerken

Processen worden samengesteld uit verschillende taken. Deze taak kan het invokeren van een service (bvb. webservices, zoals Google Maps) zijn, of het contacteren van een persoon die dan een taak uitvoert. Tegenwoordig beschikt iedereen over een mobiel toestel waardoor er meer services beschikbaar zijn die hierop kunnen worden uitgevoerd. Wanneer er een proces wordt gedefinieerd moet er dus van uitgegaan worden dat voor het uitvoeren van een taak mogelijk communicatie met een mobiel apparaat nodig is. Het gebruik van nomadische netwerken is alomtegenwoordig. Een nomadisch netwerk bestaat uit een groep van mobiele toestellen die verbonden is met een vaste infrastructuur. Wanneer we kijken naar luchthavens of grote winkelcentra is er steeds een vaste infrastructuur aanwezig waarop processen kunnen worden gedefinieerd en uitgevoerd. Deze processen worden voorgesteld door workflows, die op voorhand gedefinieerd zijn en dynamisch moeten kunnen samenwerken. Dit geldt zowel voor workflows die op dezelfde vaste infrastructuur zijn gedefinieerd, als voor workflows die op verschillende vaste infrastructuren zijn gedefinieerd. Onder samenwerking verstaan we ondermeer het uitwisselen van data tussen de verschillende workflows, een workflow die na het beëindigen van een taak een andere workflow start en het synchroniseren van verschillende workflows. Omdat de workflows worden uitgevoerd in nomadische netwerken moeten we ook steeds rekening houden met de volatiliteit van netwerkconnecties, wat een effect kan hebben op de samenwerking tussen workflows. NOW is een nomadische workflow taal die ons toelaat om workflows te definiëren in nomadische netwerken. Het is mogelijk om workflows apart van elkaar te definiëren, maar deze kunnen niet samenwerken. Indien we toch een samenwerking willen moeten we beide workflows aanpassen en combineren in één grote workflow. Wij willen een samenwerking tussen workflows bekomen door gebruik te maken van aspectgeoriënteerd programmeren. Hierbij definiëren we in een aspect de samenwerking tussen workflows. Pointcuts laten ons toe om verschillende joinpoints in workflows te selecteren, terwijl we in de advices definiëren hoe workflows moeten samenwerken. In workflows kunnen we enkele specifieke joinpoints identificeren, zoals taken, data en patronen. Omdat we ook steeds rekening houden met disconnecties in het nomadische netwerk is een disconnectie ook een joinpoint. Aspectgeoriënteerd programmeren laat ons toe om de samenwerking tussen workflows te definiëren zonder dat we hiervoor de workflows zelf moeten aanpassen, wat ons een verhoogde mate van scheiding van concerns geeft. Omdat we ook niet op voorhand weten welke workflows er allemaal worden uitgevoerd in de omgeving is het onmogelijk om deze op voorhand aan te passen zodat er een samenwerking mogelijk is. Een aspect wordt toegepast op alle workflows in de omgeving, ook diegene die er nieuw bijkomen. We hebben gezien dat, door de code complexiteit van de implementaties van twee voorbeeldtoepassingen te vergelijken in NOW en in de aspectgeoriënteerde versie van NOW, er een veel uitgebreidere en eenvoudigere samenwerking tussen workflows mogelijk is wanneer we gebruik maken van aspecten.

Academic year 2010–2011

Denis Coppens

On the spot applicatie ontwikkeling op een iPhone aan de hand van workflows

This document introduces a new programming language and environment that makes it possible for non-programmers to develop an application on the spot directly on their smartphone. In the proposed programming language, a graphical workflow language, it is possible to combine the various functionalities available on a smartphone into a new application. The graphical workflow language consists of building blocks (actions, events and composite events) that can be connected using different patterns (sequential, parallel, conditional and iterative). Actions can be combined with guards and stop events into a new building block. To transfer data between the different building blocks, a global environment was adopted. Besides the programming language, a programming environment is proposed for smartphones. This programming environment allows the building of a workflow application, in an intuitive way, by using multitouch gestures.

A prototype of the proposed programming language and environment is implemented for the iPhone in Objective-C. A first set of scenarios has already been implemented on the iPhone to demonstrate the pro- posed programming language and environment. Finally, the proposed programming language and environment is tested by several test persons with different backgrounds. Youngsters of only 14 years old and even elderly people seem not to have a problem to implement the presented set of scenarios in the proposed workflow language and environment.

Academic year 2008–2009

Wouter De Geest

Workflow Patterns for Modeling Computer Aided Engineering Iterations

Workflow systems are a popular means of automating business processes. Nevertheless, the workflow paradigm is not limited to the domain of business processes management: workflows have recently been applied to other domains, such as computer aided engineering and multi-disciplinary design optimization. Applications in these domains differ in complexity from traditional workflow applications in such a way that they cannot be implemented using current workflow languages. This complexity has been studied at the System and Software Engineering Lab of the Vrije Universiteit Brussel. The first outcome of this study was the identification of three main requirements: modularization of crosscutting concerns, advanced data support, and advanced iteration support. A second outcome was the proposal of a new workflow language which addresses the first two requirements.

This thesis contributes to the third and final requirement of advanced iteration support. Iterations are algorithms such as optimization methods, Monte Carlo methods, etc. In a first step, we classify existing iterations. In a second step, we propose a number of workflow patterns that allow implementing the classified iterations. By integrating these patterns into current workflow languages, these languages would become suited for computer aided engineering and multi-disciplinary design optimization.

Academic year 2006–2007

Dimitri Gheysels

Implementation of Stateful Aspects in Padus

Workflow languages offer numerous advantages over general-purpose programming languages when it comes to business process engineering. The implementation of a business process often involves a composition of several business rules. Because it is well-known that business rules are a crosscutting concern, the aspect-oriented programming paradigm can be applied to workflow languages in order to separate such crosscutting concerns from the base application. The cooperation of aspect-oriented programming and workflow languages can be a valuable asset to business process engineering.

Current aspect-oriented extensions to workflow languages have only limited applicability. Although they are sufficient for the implementation of basic crosscutting concerns, more advanced problems cannot be solved straightforwardly using the basic concepts they currently provide. When faced with the implementation of business protocols, where the state of the application needs to be tracked, these aspect-oriented extensions fall short. A business protocol is still crosscutting if only basic aspect-oriented concepts are used for its implementation. In the context of aspect-oriented programming, stateful aspects have been developed in order to deal with this problem, by allowing extra advice behavior to be executed based on the execution history of an application. Stateful aspects have already been implemented in aspect-oriented extensions to general-purpose programming languages, and prove to be useful. We claim that the domain of business process engineering also benefits from them.

Padus is a particular aspect-oriented extension to the BPEL workflow language. In this thesis, Padus is extended with support for stateful aspects in order to control the crosscutting nature of business protocols. This extension mainly includes the design and implementation of a small language to describe a protocol, and the modification of the Padus weaver so that the protocol is understood and woven correctly into the process. Because some parts of the BPEL process may run in parallel, the order in which the process's activities are executed is not deterministically defined. This gives rise to an additional problem when weaving business protocols, because the ordering of the executed activities can differ depending on the time of execution. This means that a certain protocol may not match across different executions of the same process, even when the input data remains the same. If it is required that the protocol matching is independent of the time of execution, then this should be supported as well. A solution to this problem is therefore elaborated and presented in this thesis.

Shaonan Wang

The Access Control CSL and the CSL2Padus Transformation Framework

Existing workflow languages suffer from poor modularization of crosscutting concerns. In order to address this problem, aspect-oriented extensions to workflow languages have been developed. Padus is an aspect-oriented extension to BPEL that allows modularizing crosscutting concerns in separate aspects. However, Padus aspects are still relatively low-level and may be difficult to understand by non-programmers. Therefore, we propose using higher-level concern specific languages (CSLs) that each target one specific concern. As an example CSL, we develop a role-based access control language. We then introduce a generic transformation framework that allows transforming CSL programs into executable Padus aspects, and validate this framework by using it to implement our role-based access control language.