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 |