My research in general concentrates on the intersection of three main branches of computer science: software engineering, business process management and the World Wide Web. In this context, I am particularly intrigued by all those research questions and challenges that ask either for the conception of new development capabilities and instruments or for making development accessible to an ever broader spectrum of developers, in the extreme case, even to end-users. More specifically, my research interests can be summarized with the following five topics.
The recent attempts to lower the development of mashups to end-users yielded one important lesson learned: research so far has tried to make accessible to end-users artifacts that are simply not meant for them and require profound software development skills, i.e., APIs and Web services. Acknowledging that the software artifacts end-users are most familiar with are graphical UIs, UI-oriented computing aims to leverage on UIs to enable end-users to define own “computations,” e.g., the extraction of data from Web pages, the reuse of forms or the automation of simple Web processes. The challenge is to understand how much in terms of software development capabilities can be provided through the sensible reuse of UIs (and parts thereof) and to implement suitable tools and middleware. The goal is to develop an interactive, live, point-and-click, drag-and-drop development paradigm as anticipated in [W23], which proposes a possible model and implementation for the first ingredient, a so-called interactive API (iAPI). The idea of iAPIs is to equip pieces of Web UIs (e.g., a table or form) with graphical controls that allow the user to specify desired behaviors and integration logics directly in the browser without writing any new line of code. This new line of research is still in its infancy, and more results are to be published soon.
Mashups are composite Web applications that are developed by integrating resources available on the Web, i.e., data, application logic and user interfaces [J8]. As such, mashups aim to bring together Web engineering, SOC and BPM in a holistic fashion, a challenging and intriguing endeavor. My interests are specifically on the interplay of these three areas and, more recently, on making mashup development accessible to end-users. In [C6], we developed one of the first frameworks for the integration of presentation (UI) components inside the client browser, which we embedded in [C18] into a so-called universal integration approach for data, application logic and UIs. The approach proposes an imperative mashup paradigm (data flow models), while [J9] also proposes a declarative approach (Datalog-like queries). [J28] goes one step further and devises a complete, conceptual tool suite for the development of custom mashup platforms, including custom languages and design/runtime environments. In order to enable end-users to develop own mashups, two approaches have been followed so far: simplifying mashup environments and actively assisting development. For the former, [J22] fosters the development of domain-specific mashup tools and demonstrates how these in fact lower the barriers to end-users. For the latter, [I8] and [C37] respectively mine mashup model patterns from a repository of ready models and recommend and weave patterns interactively inside the mashup editor. The latest user studies we conducted [J31] provide statistically relevant evidence for the effectiveness of the approach. As crosscutting concern, important to both developers and end-users, references [J14], [C46] and [C32] study the quality of mashups and propose a quality-aware recommendation approach for mashup development. Book [B13] describes the mashup ecosystem in terms of concepts, models and architectures and brings the above contributions under one hood.
BPM concentrates on the understanding, design, analysis and improvement of business processes with the help of information technology. The field evolved from workflow management systems, is multi-faceted, and involves skills like modeling, code generation/interpretation, data mining and business intelligence. My research interests focus on two major aspects, i.e., process discovery and modeling language extensions. Process discovery is particularly challenging if the data to mine from is of low quality, e.g., incomplete or noisy. For instance, [J23] focuses on service-based business processes, but it does so with special attention to data quality, which it communicates to users in its dashboard. [J13] more specifically focuses on how to compute key indicators for processes in the presence of low-quality data and introduces the concept of uncertain key indicator. The extension of process languages (e.g., BPMN or BPEL) is challenging in that it requires conciliating the needs of a given domain with the typically control flow oriented paradigm of business process modeling languages. Research in this direction has produced modeling languages and runtime environments for project-centered learning [J11], user interface orchestration [J17] [C24], wireless sensor networks [C44] and crowdsourcing [W20].
SOC is the computing paradigm that focuses on the engineering of composite, distributed applications out of reusable application logic encapsulated as Web services. The core challenge faced by the SOC community is the development of so-called orchestrations or choreographies [J1] out of a given set of existing Web services. My research interest in the specific context of SOC is however more the analysis of how well a given orchestration performs and how well it actually behaves as expected by its developer and, hence, its design. [C8] and [C10], in this respect, study how to identify which observable Web service invocations (e.g., logged or sniffed) are likely to belong to a same composite service, so as to re-construct the full conversation (the so-called protocol) of the composite service with its component services without knowledge of the internals of the composite. [C22] pushes this thread further and also discovers the actual protocol from message exchanges, also taking into account possible inaccuracies in the log data, while [J23] complements the approach with a complete software suite (algorithms and a dashboard) for the analysis of complex business compliance constraints in service-based business processes.
Web engineering is the branch of software engineering that focuses on Web applications. Model-driven Web engineering is the development practice and research area that specifically explores (graphical) modeling languages for the assisted development of Web applications. As a Ph.D. candidate, my interest in this context was supporting the development of advanced application features, such as adaptive and context-aware behaviors, which are typically taken into account only as afterthoughts in development, while they actually are first-class design concerns. References [J3] and [J5] describe an extension of the Web Modeling Language (WebML), which allows a developer to model at a high level of abstraction application behaviors that are autonomous, active and context-aware. [J2] extends the user profile underlying the approach with the capability to track and react to long-running user navigation goals, while [J6] and [J7] explore the use of Event-Condition-Action (ECA) rules and a detached rule engine for the provisioning of active behaviors in Web applications. Book [B1] summarizes the field of Web engineering with a special attention for model-driven, conceptual development practices.