Middleware-based development of context-aware applications with reusable components
Date
2009-12Author
Paspallis, NearchosPublisher
Πανεπιστήμιο Κύπρου, Σχολή Θετικών και Εφαρμοσμένων Επιστημών / University of Cyprus, Faculty of Pure and Applied SciencesPlace of publication
ΚύπροςCyprus
Google Scholar check
Keyword(s):
Metadata
Show full item recordAbstract
Λόγω της μεγάλης διάδοσης του κινητού και διάχυτου υπολογισμού, υπάρχει αυξανόμενη ανάγκη για εφαρμογές που να είναι ευαίσθητες και να προσαρμόζονται στο περιβάλλον. Τέτοιες εφαρμογές ωφελούν τους χρήστες με το να ρυθμίζουν δυναμικά τις προσφερόμενες υπηρεσίες τους στις δυναμικές συνθήκες που χαρακτηρίζουν τα κινητά και διάχυτα υπολογιστικά περιβάλλοντα. Για να το πετύχουν αυτό, οι εφαρμογές πρέπει να είναι ικανές να αισθάνονται το περιβάλλον και να αντιδρούν αυτόνομα στις αλλαγές του. Αναπόφευκτα, αυτό το είδος συμπεριφοράς οδηγεί σε σημαντική αύξηση της πολυπλοκότητας του απαιτούμενου λογισμικού. Αυτή η διατριβή παρουσιάζει τις προκλήσεις στην ανάπτυξη λογισμικού ευαίσθητου στο περιβάλλον, και παραθέτει μι α λίστα από απαιτήσεις που χρειάζεται να ικανοποιηθούν. Επίσης προτείνει μια μέθοδο ανάπτυξης που επιτρέπει επαναχρησιμοποίηση λογισμικού και ευκολύνει τον σχεδιασμό και ανάπτυξη εφαρμογών ευαίσθητων στο περιβάλλον χρησιμοποιώντας διαχωρισμό-καθηκόντων. Η μεθοδολογία ανάπτυξης επεκτείνεται επιπλέον με μια μέθοδο βασισμένη σε μοντέλα και υποστηρίζεται από μια αρθρωτή αρχιτεκτονική με δυναμικά συνδεόμενα στοιχεία που βελτιστοποιεί την κατανάλωση πόρων. Η προτεινόμενη μέθοδος αξιολογείται τόσο ποιοτικά όσο και ποσοτικά. Driven by the proliferation of mobile and pervasive computing, there is a growing demand for context-aware, self-adaptive applications. Such applications benefit users by dynamically adjusting their offered services to the highly dynamic context which characterizes mobile and pervasive computing environments. To achieve this kind of sophistication, however, such applications must be capable of sensing the context, and autonomously reacting upon their knowledge on it. Inevitably, enabling this kind of behavior results in a measurable increase to the complexity of the underlying software. Multiple approaches have been proposed for the development of context-aware, self-adaptive applications. Most of them focus on the actual capabilities and features of the resulting applications. However, streamlining the engineering of general context-aware, self-adapting applications is an important and challenging endeavor which has received less attention. This thesis provides research contributions in the area of software engineering support for the development of context-aware, self-adaptive applications: It proposes development methods, supported by appropriate tools, aiming to facilitate the development and maintenance of context-aware applications targeting mobile and pervasive computing environments. This is achieved in two basic dimensions. First, a novel development methodology is proposed allowing the design and implementation of context-aware, self-adaptive applications with reusable components, called context plug-ins. This methodology is complemented with a model-driven development approach which automates the production of parts of the applications, extending reusability to sub-components. Second, a pluggable and modular middleware architecture is presented, facilitating the deployment and management of components comprising the context-aware, self-adaptive applications. At the same time, this architecture facilitates many recurring tasks pertaining context gathering, management and dissemination. The results in this thesis have been evaluated both practically and theoretically. First, the proposed methodology and the underlying architecture implementation were evaluated in the context of two case-study applications. Second, the proposed middleware-based solution was compared to the state of the art over a number of requirements, as they were identified in the literature and summarized in this thesis. Finally, the development methodology was tested in the context of an undergraduate university course where the students were asked to develop context-aware applications as part of lab assignments. The students used the development approach proposed in this thesis, along with the accompanying middleware architecture, to build their own context-aware applications, partly by using the model-driven development approach also presented in this thesis. Their experience was documented and examined via a survey which justified that both the methodology and the middleware architecture add significant value in the hands of developers designing and implementing context-aware, self-adaptive applications. The thesis concludes by summarizing its main contributions and by providing a discussion of key topics for future work.