Gefördert durch
Europäische Union
Europäischer Sozialfonds (ESF-080951805)
Freistaat Sachsen
Übersicht
Projektergebnisse und Demos
Überblick
Basierend auf den Konzepten aus dem Forschungsprojekt CRUISe widmet sich EDYRA der Bereitstellung von Methoden und Werkzeugen, die es Endnutzern ermöglichen, selbstständig Mashups zu erstellen.
Im Wesentlichen soll der Endnutzer dabei durch Empfehlungen sowie geeignete Abstraktion von technischen Details unterstützt werden, seine Aufgaben zu erledigen und somit situationsspezifische Probleme zu lösen.
Die Zielgruppe von EDYRA sind Nicht-Programmierer, Domänenexperten ohne Programmierkenntnisse, die daran interessiert sind, sich selbstständig maßgeschneiderte Anwendungen zu erstellen. Solche Endnutzer sind u.a. wie folgt charakterisierbar
- fehlendes Verständnis von technischen Konzepten und Begriffen
- fehlende Erfahrung hinsichtlich Entwurfspraktiken
- denken in zu lösenden Problemen ihrer Domäne und kennen typischerweise auch eine Lösung in den Begriffen der Domäne, scheitern jedoch bei der Übertragung auf eine Mashupkomposition
Zu den Kernkonzepten gehört weiterhin die Verschmelzung von Entwicklung und Nutzung der Mashupanwendung, auch Live Sophistication genannt. Dabei bietet die Mashup-Laufzeitumgebung die notwendigen Werkzeuge direkt mit, sodass
der Nutzer sofortiges Feedback zu seinen Kompositionsschritten erhält.
Im Rahmen des Projekts wurde neben einer client-seitigen auch eine verteilte Laufzeitumgebung entwickelt. Weiterhin dienen Repositories von Komponenten, Anwendungen und Kompositionswissen als Backend und bieten zusätzlich Webservices
als Schnittstelle zur Mashup-Laufzeitumgebung an.
Abbildung 1: Grober Überblick der EDYRA-Architektur
Semantische Beschreibung von Komponenten (SMCDL)
Das grundlegende Komponentenmodell entspricht dem von CRUISe vorgeschlagenen. Dabei werden Komponenten aller Anwendungsebenen (UI, Logik, Daten) einheitlich als Black-Box mit öffentlicher Schnittstelle angesehen, sodass Komponenteninterna und Implementierungsdetails versteckt werden. Komponenten können beispielsweise Web Services auf Basis von REST und SOAP, Feeds, aber auch JavaScript-APIs und Widgets repräsentieren.
- Operations: Bereitgestellte ausführbare Methoden einer Komponente
- Events: Ereignisse propagieren Zustandsänderungen der Komponente
- Properties: Eigenschaften von Komponenten, die einerseits zur Konfiguration dienen, andererseits den aktuellen Zustand zur Laufzeit repräsentieren
Zur Beschreibung von Komponenten dient die Semantic Mashup Component Description Language (SMCDL). Sie setzt das Komponentenmodell um und erweitert es um semantische Annotationen (s. Abbildung 2). Diese bieten die Möglichkeit, durch Referenzen auf Domänenontologien, die folgenden Aspekte der Komponentensemantik zu beschreiben.
- Datensemantik: Typisierung von Properties und Parametern der Operations bzw. Events
- Funktionale Semantik: Capabilities
- Nicht-funktionale Semantik: Metadaten, wie z.B. Autor, Preis, visuelle Eigenschaften
- Verhaltenssemantik: eingeschränkt möglich über Abhängigkeiten zwischen Capabilities (Attribut dependsOn von Events)
Abbildung 2: Überblick zu den semantischen Annotationen in SMCDL
Im Rahmen von EDYRA wurde die Deklaration der funktionalen Semantik überarbeitet. Capabilities sind Tupel aus
<activity, entity, requiresInteraction>
und beschreiben somit, welche Aktivität/Aufgabe auf/mit einem Domänenobjekt durchgeführt wird. Ob der Endnutzer in die Aktivität involviert ist, gibt der Eintrag requiresInteraction an. Capabilities können auf Ebene der gesamten Komponente sowie der Schnittstelle angegeben werden. Events selbst referenzieren die Capabilties, die zu deren Auftreten führen, mittels dependsOn.
Weiterhin wurde es in EDYRA ermöglicht, Anforderungen von Komponenten an ihren Kontext deklarativ zu beschreiben (Element requirements). Damit kann beispielsweise angegeben werden, dass eine Komponente bestimmte Technologien (Software und Hardware) von der Laufzeitumgebung benötigt, um ordnungsgemäß zu funktionieren. Aber auch Anforderungen an den Nutzer, z.B. das Vorhandensein von Accounts zwecks Zugriff auf Services, sind denkbar.
Der Zusammenhang zwischen Anforderungen und Capabilities der Komponente wird mittels Referenzierung (Attribut capsRef) hergestellt.
Technologisch dienen derzeit SPARQL-Queries zur Formulierung der Anforderungen und werden beim Matching von Komponenten gegen die semantische Komponentenbeschreibung abgeglichen.
Implementierungsdetails der Komponente werden im sogenannten Binding angegeben.
Zusätzliches Material:
Vertiefende Informationen:
Mashup-Kompositionsmodell (MCM)
Zur deklarativen Beschreibung aller Aspekte eines Mashups wird in EDYRA weitgehend auf das Kompositionsmodell von CRUISe aufgesetzt. Im Wesentlichen werden folgende anwendungsspezifische Aspekte im Kompositionsmodell abgedeckt:
- zu nutzende Komponenten und deren Konfiguration
- Kommunikationsbeziehungen von Komponenten
- Anordnung der Komponenten in Views, Transistionen zwischen Views
Während in CRUISe das Kompositionsmodell in einem dedizierten Autorenwerkzeug erstellt wurde und kein Fokus auf End-User-Development gelegt wurde, stellt in EDYRA die Laufzeitumgebung selbst Funktionalitäten zur Erstellung und Modifikation von Mashups bereit. Dadurch kommt der Anwendungsentwickler, im Falle von EDYRA der Endnutzer ohne Programmierkenntnisse, nicht direkt in Kontakt mit dem Kompositionsmodell.
Vertiefende Informationen:
Mediationstechniken für Mashups
Mediation dient der Auflösung von Inkompatibilitäten auf Siganturebene insofern möglich. Dazu wurden in einer studentischen Arbeit, aufsetzend auf den in dieser Publikation vorgestellten Konzepten, folgende Mediationstechniken definiert:
- Upcasts: Bietet eine Sicht auf ein Individuum entsprechend einer Superklasse. Beispiel:
- Converts: Konvertierung von primitven Instanzdaten unter Nutzung einer Transformationsontologie oder auf Ebene von Klassen, falls diese in der Ontologie als equivalentClasses angesehen werden. Beispiel:
- Semantic Split: Versucht Informationen aus einem Individuum herauszusplitten, um diese auf mehrere Zielparameter zu verteilen. Beispiel:
- Location → hasLatitude, hasLongitude
- Semantic Join: Veruscht ein neues Individuum unter Zuhilfenahme der gegebenen Daten (aus mehreren Parametern) zu erstellen. Dabei müssen alle Restriktionen gemäß der Klassendefinition in der Ontologie erfüllbar sein. Beispiel:
- hasLatitude, hasLongitude → Location
- Syntactic Join: Serves for the synchronization of several source parameters, provided by several source interface elements, that should be delivered together to one target interface element. The synchronization mode defines when the syntactic joiner transfers the parameters to the target interface element.
- Partial Substitution: Updates or sets a data or object property of an individual represented by a component property. Can be understood as an inverse semantic split. Example:
- Location → Event.hasLocation
For each communication channel (explicit like Link etc. and implicit like drag & drop) a mapping definition exists. It declaratively describes the mediation techniques necessary for coupling two compatible signatures S1 and S2
where Si= { parameter-type+ }. Mapping definitions are part of the communication model.
Vertiefende Informationen:
Empfehlungsgestützte Mashup-Entwicklung
In EDYRA, end users are guided by recommendations on composition steps like adding and substituting components or integrating whole subcompositions including several channels and components. Thereby, a hybrid recommendation approach is utilized, combining semantics-based techniques and statistical analysis of existing mashup applications to leverage the knowledge of the crowd.
The overall approach has similarities to an adaptation loop, which, separated from the application, includes continuous monitoring of the context and the application, analyzing (i. e., evaluation of trigger conditions and calculating recommendations in terms of patterns), planing (i. e., deriving an action specification), and adapting the application by executing the plan (i. e., implementation of the action specification).
Triggers are entities that start the recommendation procedure. They continuously monitor the application, context and/or user interactions and check conditions to determine whether to set off or not. There are different types of Triggers:
- Explicit: The recommendation procedure is started deliberately by the end user.
- Implicit: Starting the recommendation procedure is done without inducement by the end user.
- Pro-active: the system determines recommendations without necessary external context changes, e.g. periodically
- Reactive: reaction on external context changes (notifications from context service)
If a trigger fires, it delivers a data structure with all necessary information to the Recommendation Manager. The latter consolidates, filters, and priorizes triggers. Then, useful recommendations in terms of Patterns are queried and ranked for each trigger and shown to the user. Patterns are composition fragments and can be semantically reasoned or mined from existing composition models. For the pattern selected by the user, an Action Specification is derived. The latter states all steps required to integrate a pattern in the running mashup and is executed by the adaptation system.
Abbildung 3: Architektonischer Überblick der EDYRA-Plattform mit Fokus auf Empfehlungskonzepten
Vertiefende Informationen:
CapView
Wie in der Architekurgrafik zu sehen ist, existieren in EDYRA mehrere Ansichten auf die Mashup-Komposition. Die LiveView stellt lediglich die UI-Repräsentation der Komponenten entsprechend des Layouts dar.
Weitere Ansichten können die Live-Ansicht überlagern und somit, passend zu den Erfahrungen und Fertigkeiten der Nutzergruppe, Details zur zugrundeliegenden Komposition preisgeben. Die ProfessionalView zeigt alle Informationen zu Interfaces an, lässt die Verknüpfung zu und bietet Testfeatures an. Eine Abstraktion vom Kompositionsmodell findet dabei nicht statt, sodass technische Konzepte, Datenstrukturen etc. verstanden werden müssen.
Hier setzt die CapView an und bietet eine aufgaben-/aktivitäts-orientierte Abstraktion des Kompositionsmodells.
Dadurch sollen folgende Anwendungsfälle mithilfe der CapView realisiert werden. Ein Nicht-Programmierer möchte...
- die Funktionsweise einzelner Komponenten oder eines Mashups nachvollziehen.
- die Funktionalität an seine spezifischen Bedürfnisse anpassen.
- die Funktionalität eines Mashups erweitern z.B. auf Basis von Empfehlungen.
Wesentliche Annahme ist, dass Komponenten zur Erfüllung von Aufgaben dienen können, und dass ein Verbund von Komponenten entsprechend komplexe Aufgaben erledigen kann.
Dazu benötigen Komponenten möglicherweise Eingaben bzw. produzieren Ausgaben. Dies lässt sich auf das oben definierte Modell abbilden: Aufgaben → Capabilities und Ein-/Ausgaben → Operations/Events.
Abbildung 4: Beispielhafter Überblick der CapView
Die CapView ist eine funktional abstrahierende Ansicht auf ein in Ausführung bzw. Entwicklung befindliches Mashup.
Vertiefende Informationen:
Selbst ausprobieren – Plattformdemo
Zur Erprobung und Validierung der erarbeiteten Konzepte wird kontinuierlich an einer Livedemo gearbeitet.
Obwohl viel Schweiß investiert wird, ist zu bedenken, dass es sich dabei um einen Forschungsprototyp handelt, d.h., Bugs sind nicht auszuschließen. Daher ist der Zugang derzeit beschränkt. Bitte wenden Sie sich an einen der Projektmitarbeiter, falls Sie die Demo ausprobieren möchten.
Publikationen
-
C. Radeck,
K. Meißner:
Assisted End User Development for Non-programmers: Awareness, Exploration and Explanation of Composite Web Application Functionality, Web Information Systems and Technologies, Series Lecture Notes in Business Information Processing (LNBIP), Volume 322, 249-275, Springer International Publishing, 2018
-
C. Radeck,
K. Meißner:
A Customizable Recommender System for Mashup Platforms, Proceedings of the 19th International Conference on Information Integration and Web-based Applications & Services (iiWAS2017), Salzburg, Austria, 66 – 75, ACM, 12/2017
https://dl.acm.org/citation.cfm?id=3151787
-
C. Radeck,
G. Blichmann,
K. Meißner:
Modeling and Calculating Capabilities of Composite Web Applications for Assisted End User Development, Web Information Systems and Technologies – 12th International Conference, WEBIST 2016, Rome, Italy, April 23–25, 2016, Revised Selected Papers, Series Lecture Notes in Business Information Processing, Volume 292, 58-82, Springer International Publishing, 10/2017
-
G. Blichmann,
C. Radeck,
R. Starke,
K. Meißner:
Enabling End-Users to Individually Share Parts of Composite Web Applications, Web Information Systems and Technologies – 12th International Conference, WEBIST 2016, Rome, Italy, April 23–25, 2016, Revised Selected Papers, Series Lecture Notes in Business Information Processing, Volume 292, 164-184, Springer International Publishing, Monfort, V., Krempels, K.-H., Majchrzak, T.A., Traverso, P. , ISBN 978-3-319-664, 10/2017
http://www.springer.com/de/book/9783319664675
-
C. Radeck,
K. Meißner:
Helping Non-programmers to Understand the Functionality of Composite Web Applications, Proceedings of the 13th International Conference on Web Information Systems and Technologies (WEBIST 2017), Porto, Portugal, 149-159, Scitepress, 4/2017
-
C. Radeck,
G. Blichmann,
K. Meißner:
Estimating the Functionality of Mashup Applications for Assisted, Capability-centered End User Development, In Proceedings of the 12th International Conference on Web Information Systems and Technologies (WEBIST 2016), Volume 2, Rome, Italy, 109-120, 4/2016
-
G. Blichmann,
C. Radeck,
R. Starke,
K. Meißner:
Triple-based Sharing of Context-Aware Composite Web Applications for Non-programmers, In Proceedings of the 12th International Conference on Web Information Systems and Technologies (WEBIST 2016), Volume 2, Rome, Italy, 17-26, 4/2016
-
G. Blichmann,
C. Radeck,
S. Hahn,
K. Meißner:
Component-based Workspace Awareness Support for Composite Web Applications, In Proceedings of the 17th International Conference on Information Integration and Web-based Applications & Services (iiWas 2015), Brussels, Belgium, 12/2015
-
A. Rümpel,
C. Radeck,
J. Tichomirow,
K. Meißner:
Fuzzy Mashup Quality Requirements Specification for Web Users, Proceedings of the Ninth International Conference on the Quality of Information and Communications Technology, 262–267, IEEE Computer Society, Alberto Rodrigues da Silva, António Rito Silva, Miguel A. Brito, Ricardo J. Machado, ISBN 9781479961337, DOI 10.1109/QUATIC.2014.42, 9/2014
http://ieeexplore.ieee.org/document/6984131
-
C. Radeck,
G. Blichmann,
O. Mroß,
K. Meißner:
Semantic Mediation Techniques for Composite Web Applications, Proceedings of the 14th International Conference on Web Engineering (ICWE 2014), Series LNCS, Toulouse, Frankreich, Springer, 7/2014
-
C. Radeck,
G. Blichmann,
K. Meißner:
CapView - Functionality-Aware Visual Mashup Development for Non-programmers, Proceedings of the 13th International Conference on Web Engineering (ICWE 2013), Series LNCS, Volume 7977, Aalborg, Denmark, 140-155, Springer, 7/2013
-
V. Tietz,
O. Mroß,
A. Rümpel,
C. Radeck,
K. Meißner:
A Requirements Model for Composite and Distributed Web Mashups, Proceedings of the The Eighth International Conference on Internet and Web Applications and Services (ICIW 2013), Rome, Italy, 75–82, Xpert Publishing Services, Ioannis Moscholios, Marek Rychly, ISBN 9781612082806, 6/2013
http://www.thinkmind.org/index.php?view=article&articleid=iciw_2013_4_10_20161
-
G. Blichmann,
C. Radeck,
K. Meißner:
Enabling End Users to Build Situational Collaborative Mashups at Runtime, Proceedings of the 8th International Conference on Internet and Web Applications and Services (ICIW2013), Rome, Italy, 6/2013
-
C. Radeck,
A. Lorz,
G. Blichmann,
K. Meißner:
Hybrid Recommendation of Composition Knowledge for End User Development of Mashups, Proceedings of the 7th International Conference on Internet and Web Applications and Services (ICIW2012), Stuttgart, Germany, 5/2012
-
A. Lorz,
A. Rümpel,
C. Radeck,
G. Blichmann,
S. Pietschmann:
Introducing the EDYRA Vision: Engineering of Do-It-Yourself Rich Internet Applications, Proceedings of the International Conference on Internet Technologies & Society 2011 (ITS 2011), Shanghai, 330–332, Piet Kommers, Ji-ping Zhang, Tomayess Issa, Pedro Isaías, ISBN 9789728939557, 12/2011
https://mmt.inf.tu-dresden.de/Forschung/Projekte/EDYRA/docs/ITS2011_Poster.pdf
-
A. Rümpel,
C. Radeck,
G. Blichmann,
A. Lorz,
K. Meißner:
Towards Do-It-Yourself Development of Composite Web Applications, Proceedings of the International Conference on Internet Technologies & Society 2011 (ITS 2011), Shanghai, 231–235, Piet Kommers, Ji-ping Zhang, Tomayess Issa, Pedro Isaías, ISBN 9789728939557, 12/2011
https://mmt.inf.tu-dresden.de/Forschung/Projekte/EDYRA/docs/ITS2011.pdf
-
S. Pietschmann,
C. Radeck,
K. Meißner:
Facilitating Context-Awareness in Composite Mashup Applications, Proceedings of the 3rd International Conference on Adaptive and Self-Adaptive Systems and Applications (ADAPTIVE), Rome, Italy, XPS, ISBN 978-1-61208-0, 9/2011
-
S. Pietschmann,
C. Radeck,
K. Meißner:
Semantics-Based Discovery, Selection and Mediation for Presentation-Oriented Mashups, Proceedings of the 5th International Workshop on Web APIs and Service Mashups (Mashups 2011), Lugano, Switzerland, ACM, 9/2011
-
V. Tietz,
G. Blichmann,
S. Pietschmann,
K. Meißner:
Task-Based Recommendation of Mashup Components, Current Trends in Web Engineering, Series LNCS, 25-36, Springer-Verlag, ISBN 9783642279966, 6/2011
-
V. Tietz,
G. Blichmann,
S. Pietschmann,
K. Meißner,
A. Casall,
B. Grams:
Towards Task-Based Development of Enterprise Mashups, Proc. of the 13th International Conference on Information Integration and Web-based Applications & Services (iiWAS 2011), Ho Chi Minh City, Vietnam, ACM, ISBN 978-1-4503-07, 12/2011