Publication

Published Partial Results

During the deep investigations in the course of the doctoral thesis project and related projects, many partial results evolve — directly authored, co-authored or supervised by Ralf S. Engelschall. In order to check them against the opinion of the scientific community (in case of theoretical results) and to let them become mature (in case of practical results), they are published in advance. Later they are also summarized in the final dissertation publication.
REpresentational State Transfer (REST) architectural style is a commonly employed approach for realizing client/server business applications. A main problem of REST is that its concept of Hypermedia As The Engine Of Application State (HATEOAS) based interaction works best just for humans browsing the Web. But clients of enterprise applications are usually implemented as so called Rich Clients, which, in order to provide a unique user experience, commonly represent a functional application on their own and just rely on specific use-case driven data exchanges with a server. Consequently, the main challenge is machine-driven interaction: enabling a machine client to determine and interact with these features exposed by a server which are not handled by a human user. To address this, this thesis mixes principles of REST with best practices of Semantic Web and this way combines the advantages of heavily human and machine readability. The result is a solution towards a data-driven enterprise resource architecture.
Author: Constantin Gerstberger
Advisor: Ralf S. Engelschall,
Achim Müller
Assessor: Prof. Alexander Knapp
Investigated: 2014-03 to 2014-12
Published: 2015-01
Status: published
Maturity: finished
In Rich-Client based applications it is difficult to have fresh data on all cache levels: server database, server in-core model, network protocol, client in-core model, client cache, client UI presentation model. To achieve this, fresh data must be sent to all connected peers. Nowadays this should be achieved with a bidirectional connection between network peers and a real-time data synchronization mechanism. In this way every peer gets notified immediately when data has changed on other peers or new data is available. With such a platform in place, smart "lock-less" User Interfaces can be built, raising user-collaboration at a new level and facilitating new domain specific use-cases. The solution developed in this thesis includes meta-model definition, object creation and management, meta-information processing, data transmission and conflict resolution.
Author: Cristian-Viktor Ardelean
Advisor: Ralf S. Engelschall,
Peter Huber
Assessor: Prof. Alexander Knapp
Investigated: 2014-05 to 2014-11
Published: 2014-12
Status: published
Maturity: finished
A major task in Rich Client User Interfaces is synchronizing values between the view mask and a presentation model. Writing logic that reflects every possible change in the presentation model or the view mask is complex and error-prone. In this thesis we define the smallest set of concepts and their semantics for achieving a powerful view data binding. Our binding is agnostic to the presentation model implementation and follows the reactive programming paradigm. That means, it is scalable, event-driven and responsive. To encourage the important architecture principle of Separation of Concerns, we allow to define the binding separately. We further permit both declarative and imperative specification of the binding inside the view mask itself or in its corresponding rendering code. We define a single Domain-Specific Language and use it for all approaches.
Author: Johannes Rummel
Advisor: Ralf S. Engelschall,
Jochen Hörtreiter
Assessor: Prof. Alexander Knapp
Investigated: 2014-05 to 2014-10
Published: 2014-10
Status: published
Maturity: finished
User Interfaces (UI) of HTML5 Rich Clients are challenging: nested UI dialogs, complexity caused by JavaScript, UI rendering performed by UI toolkits with different programming models, and "head-less" testing requirements. A modern UI reference architecture addresses this by allowing to base both static code structure and dynamic run-time communication on the hierarchical decomposition of the UI into a tree of DOM-agnostic stateful components. We provide details into the reference architecture, the ComponentJS reference implementation and example applications.
Author: Ralf S. Engelschall
Advisor: Prof. Alexander Knapp
Investigated: 2014-02 to 2014-10
Published: 2014-10
Status: published
Maturity: finished
BindingJS is a separable, reactive, model-agnostic view data binding framework for JavaScript. Separable, because the binding uses a separate Domain Specific Language (DSL), modeled after CSS. Reactive, because it supports Reactive Programming through binding events. Model-agnostic, because how it accesses the presentation model is abstracted through adapters. BindingJS is the reference implementation of Johannes Rummel's master thesis and provides a revolutionary approach to the data binding challenges in HTML5 Rich Clients.
Author: Johannes Rummel,
Ralf S. Engelschall
Advisor: Ralf S. Engelschall,
Jochen Hörtreiter
Investigated: 2014-04 to 2014-10
Published: 2014-10
Status: initial version
Maturity: early adoption
User Interfaces (UI) of HTML5 Rich Clients are challenging: nested UI dialogs, complexity caused by JavaScript, UI rendering performed by UI toolkits with different programming models, and "head-less" testing requirements. A modern UI reference architecture addresses this by allowing to base both static code structure and dynamic run-time communication on the hierarchical decomposition of the UI into a tree of DOM-agnostic stateful components. We provide details into the reference architecture, the ComponentJS reference implementation and example applications.
Author: Ralf S. Engelschall
Advisor: Prof. Alexander Knapp
Investigated: 2013-12 to 2014-02
Published: 2014-02
Status: published
Maturity: finished
The usage of wireframes to draw an initial specification for a user interface has become increasingly common. Even though they have great benefits in terms of rapidly sketching the state of a system and documenting basic user interactions, they lack in capturing key aspects of a user interface design, such as the relation between a task and a particular wireframe. Existing model-based approaches that target those problems are often not practical due to heavy-weight and hard to maintain models. Typically they are closed environments and do not integrate well in the software engineering process. This thesis introduces Wireframe-Driven User Interface Design (WDD), which provides a low barrier of entry for the use in everyday software projects. It builds on top of a powerful model that interrelates a series of declarative models, such as user tasks, data objects and wireframes.
Author: Stefanie Grewenig
Advisor: Ralf S. Engelschall
Assessor: Prof. Alexander Knapp
Investigated: 2013-07 to 2014-02
Published: 2014-03
Status: published
Maturity: finished
Developers currently still have to ad-hoc map from domain-specific Use Cases to features the underlying User Interface (UI) Composite frameworks provide. Software Engineering experience dictates that those recurring tasks should be addressed through pre-thought-out and reusable communication patters and their constructive mapping onto abstracted UI Composite communication features. In order to ensure the compliance of an application with the set of those patterns, an analytical check during runtime is performed using a rule-based constraint checker. Since patterns imply particular communication paths, the constraints are directly derived from those communications.
Author: Christian Vaas
Advisor: Ralf S. Engelschall
Assessor: Prof. Alexander Knapp
Investigated: 2013-04 to 2014-01
Published: 2014-01
Status: published
Maturity: finished
User Interfaces (UI) are complex, inherently hierarchical structures. They can be implemented under run-time via a composition hierarchy of UI Fragments, which are derived under design-time from Wireframe-based Storyboards through hierarchical decomposition. The resulting implementation, by implementing the UI Fragments with the help of Model-View-Controller based architecture patterns, then also follows the Component Orientation architecture paradigm.
Author: Ralf S. Engelschall
Advisor: Prof. Alexander Knapp
Investigated: 2012-01 to 2013-12
Published: 2013-12
Status: finished
Maturity: first publication
ComponentJS Tracing is an all-in-one tool which allows real-time capturing of run-time communication tracing information from a ComponentJS based application, configuration of communication constraints and real-time and post-mortem application of those constraints against the tracing information. It is intended to allow software architects to logically restrict the technically possible component tree based communications. The tool corresponds the constraint based approach in Christian Vaas's master thesis.
Author: Christian Vaas,
Ralf S. Engelschall
Advisor: Ralf S. Engelschall
Investigated: 2013-04 to 2014+
Published: 2013-06
Status: finished
Maturity: early adoption
ComponentJS is a stand-alone framework for JavaScript, providing a powerful run-time Component System for hierarchically structuring the User-Interface (UI) dialogs of complex HTML5-based Rich Clients (aka Single-Page-Apps) — under maximum applied Separation of Concerns (SoC) architecture principle, through optional Model, View and Controller component roles, with sophisticated hierarchical Event, Service, Hook, Model, Socket and Property mechanisms, and fully independent and agnostic of the particular UI widget toolkit. ComponentJS is the reference implementation of the proposed User Interface Component Architecture.
Author: Ralf S. Engelschall
Advisor: none
Investigated: 2009-11 to 2014+
Published: 2013-02
Status: finished
Maturity: mature