
Faculty of Engineering and Natural Sciences Plugin-based Distributed Multi-user Web Applications with Plux DISSERTATION submitted in partial fulfillment of the requirements for the academic degree Doktor der Technischen Wissenschaften Submitted by DI Markus Jahn At the Institute for Systemsoftware Accepted on the recommendation of O. Univ.-Prof. Dr. Dr. h.c. Hanspeter Mössenböck Doc. RNDr. Tomáš Bureš, Ph.D. Co-advisor Dr. Reinhard Wolfinger Linz, July 2014 Sworn Declaration I hereby declare under oath that the submitted doctoral dissertation has been written solely by me without any outside assistance, information other than provided sources or aids have not been used and those used have been fully documented. The dissertation here present is identical to the electronically transmitted text document. Linz, July 2014 Markus Jahn Eidesstattliche Erklärung Ich erkläre an Eides statt, dass ich die vorliegende Dissertation selbstständig und ohne fremde Hilfe verfasst, andere als die angegebenen Quellen und Hilfsmittel nicht benutzt bzw. die wörtlich oder sinngemäß entnommenen Stellen als solche kenntlich gemacht habe. Die vorliegende Dissertation ist mit dem elektronisch übermittelten Textdokument identisch. Linz, July 2014 Markus Jahn Abstract Despite the fact that off-the-shelf software applications tend to become more and more feature-rich, they are still often felt to be incomplete, because it will hardly ever be possible to hit all requirements of a user out of the box, regardless of how big and complex an application is. For desktop applications, plugin frameworks are a solution for this problem, which allows developers to build a thin layer of basic functionality that can be extended by plugin components and thus tailored to the needs of individual users. For web applications on the other hand, existing plugin frameworks are not suitable to enable users to install their user-specific plugins. However, as web applications increasingly supersede desktop applications, web applications also become feature-rich and therefore should also be extensible and customizable in order to tailor it to the needs of individual users. A number of web platforms allow developers to componentize web applications. However, as web applications are executed on a web server, but not on each client-side computer individually, in existing solutions only developers can benefit from this modularity, whereas users cannot adapt web applications with components. Moreover, existing solutions only allow changing the set of components for a web application, but they do not make web applications user-customizable, because all users are using the same set of server-side components. Developers can make their programs somewhat user-customizable, e.g., by allowing the users to adjust the user interface or to disable specific features. This thesis presents Plux for Web, a component model and a component infrastructure for building plugin-based web applications that are customizable and extensible with individual components per user and that can be distributed among multiple computers. Thus, user-specific plugins can either be installed on the web server, or they can be installed on the users’ client-side computers. The component model defines a metadata standard that allows adding and removing plugins in a plug-and-play manner, a deployment standard that maintains local and remote plugins for individual users, a composition standard that connects independent plugin components seamlessly to a coherent web application, an interaction standard that enables local and distributed communication between plugin components, and a customization standard that maintains optional settings for plugins. The component infrastructure implements the component model, and thus provides a platform that can assemble plugin-based distributed user-specific web applications. i Kurzfassung Obwohl Standardsoftware immer mehr Funktionalität bietet, vermissen Anwender trotzdem oft Funktionen für ihre ganz individuellen Anforderungen. Es ist nahezu unmöglich, dass Standardsoftware in ihrem Auslieferungszustand alle Anforderungen unterschiedlicher Anwender erfüllen. Für Desktopanwendungen bieten Plug-in- Frameworks eine Lösung für dieses Problem. Diese erlauben Softwareentwicklern kompakte Kernanwendungen mit vielen Grundfunktionen zu entwickeln, die später von den Anwendern durch individuelle Plug-ins erweitert werden können. Für Webanwendungen bieten existierende Plug-in-Frameworks allerdings keine Lösung, die es Anwendern ermöglicht, ihre individuellen Plug-ins zu installieren. Da Webanwendungen an Bedeutung gewonnen haben, sollten auch sie individuell erweitert werden können, um sie an unterschiedliche Anforderungen anpassen zu können. Einige Webplattformen unterstützen Softwareentwickler bei der Erstellung von komponentenbasierten Webanwendungen. Da Webanwendungen allerdings auf einem Webserver ausgeführt werden und nicht auf den jeweiligen Computern der Anwen- der, können nur Softwareentwickler oder Systemadministratoren die Modularität einer solchen komponentenbasierten Webanwendung nutzen. Anwender können solche Webanwendungen nicht mit ihren eigenen Komponenten anpassen. Außerdem ermöglichen existierende Techniken nur das Austauschen von Komponenten für alle Benutzer einer Webanwendung, nicht aber individuell für verschiedene Anwender. Üblicherweise können Softwareentwickler Webanwendungen nur für Anwender anpassbar machen, indem sie erlauben das Aussehen der Benutzeroberfläche zu verändern oder verschiedene Funktionen ein- und auszuschalten. Diese Dissertation präsentiert das Komponentenmodell Plux für Webanwendungen und eine Kompositionsinfrastruktur, die dieses Komponentenmodell implementiert. Plux ermöglicht Anwendern ihre Webanwendungen mit individuellen Plug-ins anzupassen und zu erweitern. Dabei können Komponenten verteilt auf unterschiedlichen Computern ausgeführt werden, wodurch Plug-ins entweder am Webserver oder auf den Anwender-Computern installiert werden können. Das Komponentenmodell spezifiziert: einen Metadaten-Standard, der es erlaubt Plug- ins per Plug-and-play zu einer Webanwendung hinzuzufügen oder zu entfernen; einen Deployment-Standard, der lokale und verteilte Plug-ins für verschiedene Anwender individuell verwaltet; einen Kompositions-Standard, der voneinander unabhängige Plug-ins nahtlos zu einer einheitlichen Webanwendung verbindet; einen Interaktions- Standard, der lokale und verteilte Kommunikation zwischen Plug-ins ermöglicht; und einen Konfigurations-Standard zur Verwaltung von optionalen Konfigurationsdaten für Plug-ins. Die Kompositionsinfrastruktur implementiert das Komponentenmodell und bietet eine Plattform zur Entwicklung von plug-in-basierten, verteilten und mehrbenutzerfähigen Webanwendungen. ii Table of Contents 1 Introduction ........................................................................................................................ 1 1.1 Research Context .................................................................................................... 2 1.2 Problem Statement ................................................................................................. 3 1.3 Research Contributions ......................................................................................... 4 1.4 Project History ........................................................................................................ 5 1.5 Structure of the Thesis ........................................................................................... 6 2 State of the Art .................................................................................................................... 9 2.1 Historical Overview ............................................................................................. 10 2.1.1 Component Technologies........................................................................ 10 2.1.2 Distribution Technologies ....................................................................... 13 2.1.3 Web Technologies .................................................................................... 15 2.2 Terminology .......................................................................................................... 17 2.2.1 Component Terminology ........................................................................ 17 2.2.2 Distribution Terminology ....................................................................... 20 2.2.3 Web Terminology ..................................................................................... 23 2.3 Evaluation of Existing Technologies ................................................................. 24 2.3.1 Relevant Capabilities ............................................................................... 24 2.3.2 Capabilities of Existing Technologies .................................................... 29 2.3.3 Deficiencies of Existing Technologies ................................................... 37 3 The Plux Component Model .......................................................................................... 39 3.1 Metadata Standard ............................................................................................... 40 3.2 Deployment Standard.......................................................................................... 43 3.3 Composition Standard ......................................................................................... 45 3.3.1 Composition State ...................................................................................
Details
-
File Typepdf
-
Upload Time-
-
Content LanguagesEnglish
-
Upload UserAnonymous/Not logged-in
-
File Pages219 Page
-
File Size-