39 research outputs found

    Services in pervasive computing environments : from design to delivery

    Get PDF
    The work presented in this thesis is based on the assumption that modern computer technologies are already potentially pervasive: CPUs are embedded in any sort of device; RAM and storage memory of a modern PDA is comparable to those of a ten years ago Unix workstation; Wi-Fi, GPRS, UMTS are leveraging the development of the wireless Internet. Nevertheless, computing is not pervasive because we do not have a clear conceptual model of the pervasive computer and we have not tools, methodologies, and middleware to write and to seamlessly deliver at once services over a multitude of heterogeneous devices and different delivery contexts. Our thesis addresses these issues starting from the analysis of forces in a pervasive computing environment: user mobility, user profile, user position, and device profile. The conceptual model, or metaphor, we use to drive our work is to consider the environment as surrounded by a multitude of services and objects and devices as the communicating gates between the real world and the virtual dimension of pervasive computing around us. Our thesis is thus built upon three main “pillars”. The first pillar is a domain-object-driven methodology which allows developer to abstract from low level details of the final delivery platform, and provides the user with the ability to access services in a multi-channel way. The rationale is that domain objects are self-contained pieces of software able to represent data and to compute functions and procedures. Our approach fills the gap between users and domain objects building an appropriate user interface which is both adapted to the domain object and to the end user device. As example, we present how to design, implement and deliver an electronic mail application over various platforms. The second pillar of this thesis analyzes in more details the forces that make direct object manipulation inadequate in a pervasive context. These forces are the user profile, the device profile, the context of use, and the combinatorial explosion of domain objects. From the analysis of the electronic mail application presented as example, we notice that according to the end user device, or according to particular circumstances during the access to the service (for instance if the user access the service by the interactive TV while he is having his breakfast) some functionalities are not compulsory and do not fit an adequate task sequence. So we decided to make task models explicit in the design of a service and to integrate the capability to automatically generate user interfaces for domain objects with the formal definition of task models adapted to the final delivery context. Finally, the third pillar of our thesis is about the lifecycle of services in a pervasive computing environment. Our solutions are based upon an existing framework, the Jini connection technology, and enrich this framework with new services and architectures for the deployment and discovery of services, for the user session management, and for the management of offline agents

    Design for Change

    Get PDF

    lmproving Microcontroller and Computer Architecture Education through Software Simulation

    Get PDF
    In this thesis, we aim to improve the outcomes of students learning Computer Architecture and Embedded Systems topics within Software and Computer Engineering programs. We develop a simulation of processors that attempts to improve the visibility of hardware within the simulation environment and replace existing solutions in use within the classroom. We designate a series of requirements of a successful simulation suite based on current state-of-the-art simulations within literature. Provided these requirements, we build a quantitative rating of the same set of simulations. Additionally, we rate our previously implemented tool, hc12sim, with current solutions. Using the gaps in implementations from our state-of-the-art survey, we develop two solutions. First, we developed a web-based solution using the Scala.js compiler for Scala with an event-driven simulation engine through Akka. This Scala model implements a VHDL-like DSL for instruction control definition. Next we propose tools for developing cross-platform native applications through a project-based build system within CMake and a continuous integration pipeline using Vagrant, Oracle VirtualBox and Jenkins. Lastly, we propose a configuration-driven processor simulation built from the original hc12sim project that utilizes a Lua-based scripting interface for processor configuration. While we considered other high-level languages, Lua best fit our requirements allowing students to use a modern high-level programming language for processor configuration. Instruction controls are defined through Lua functions using high-level constructs that implicitly trigger low-level simulation events. Lastly, we conclude with suggestions for building a new solution that would better meet requirements set forth in our research question building from successful aspects from this work

    Explicitly Integrated Architecture - An Approach for Integrating Software Architecture Model Information with Program Code

    Get PDF
    Software-Architekturspezifikationen und -Implementierungen sind zwei Sichtweisen auf Softwarearchitektur. Sie beschreiben gemeinsame Aspekte, wie z.B. die Existenz und Verbindung von Komponenten. Die Spezifikation fügt Informationen zum Design, zur Kommunikation und zur Analyse hinzu. Die Implementierung beschreibt stattdessen zusätzlich Details für ein ausführbares System. Die Konsistenz zwischen diesen Darstellungen manuell zu verwalten, ist schwierig und fehleranfällig. Diese Arbeit stellt einen Ansatz vor, der Informationen der Architekturspezifikation vollständig in die Implementierung integriert, sodass die Spezifikation als eigenständiges Artefakt nicht mehr notwendig ist. Das Tool Codeling extrahiert die integrierte Architekturspezifikation in unterschiedlichen Sprachen aus dem Code und propagiert Änderungen in dieser Spezifikation automatisch an den Code zurück.Specifications and implementations are both viewpoints upon software architecture. Besides common aspects, the specification adds information for design, communication, or analysis, while the implementation adds details for an executable system instead. Managing the consistency between these representations manually is difficult and error-prone. This thesis presents an approach, that completely integrates architecture specifications with the implementation, so that separate specification artifacts are not necessary anymore. The tool Codeling extracts integrated architecture specifications in multiple languages from code, and automatically propagates changes in these specifications back to the code

    Grammar-oriented object design : towards dynamically reconfigurable business and software architecture for on-demand computing

    Get PDF
    Grammar-oriented Object Design was shown to be a potent combination of extending methods, incorporating DSLs from a given business domain (BDSLs) and Variation-oriented Design in order to provide a seamless transition from business models to component-based software architectures. GOOD starts by extending current object modeling techniques to include the discovery and explicit modeling of higher levels of reuse, starting from subsystems, defining their manners using a domain-specific business language, i.e., using use-case gramars, that describe the rules governing the creation, dynamic configuration and collaboration of large-grained, business-process-scale, adaptive software components with pluggable behavior, through the application of architectural patterns and representation of component manners in the BDSL. 1his presents immense potential for applications in the domains of grid services, services on demand and a utility-based model of computing where a business need initiates the convergence of application components based on/from the manners of services they provide and require

    Specifying Reuse Interfaces for Task-Oriented Framework Specialization

    Get PDF
    Reuse of existing carefully designed and tested software improves the quality of new software systems and reduces their development costs. Object-oriented frameworks provide an established means for software reuse on the levels of both architectural design and concrete implementation. Unfortunately, due to frame-works complexity that typically results from their flexibility and overall abstract nature, there are severe problems in using frameworks. Patterns are generally accepted as a convenient way of documenting frameworks and their reuse interfaces. In this thesis it is argued, however, that mere static documentation is not enough to solve the problems related to framework usage. Instead, proper interactive assistance tools are needed in order to enable system-atic framework-based software production. This thesis shows how patterns that document a framework s reuse interface can be represented as dependency graphs, and how dynamic lists of programming tasks can be generated from those graphs to assist the process of using a framework to build an application. This approach to framework specialization combines the ideas of framework cookbooks and task-oriented user interfaces. Tasks provide assistance in (1) cre-ating new code that complies with the framework reuse interface specification, (2) assuring the consistency between existing code and the specification, and (3) adjusting existing code to meet the terms of the specification. Besides illustrating how task-orientation can be applied in the context of using frameworks, this thesis describes a systematic methodology for modeling any framework reuse interface in terms of software patterns based on dependency graphs. The methodology shows how framework-specific reuse interface specifi-cations can be derived from a library of existing reusable pattern hierarchies. Since the methodology focuses on reusing patterns, it also alleviates the recog-nized problem of framework reuse interface specification becoming complicated and unmanageable for frameworks of realistic size. The ideas and methods proposed in this thesis have been tested through imple-menting a framework specialization tool called JavaFrames. JavaFrames uses role-based patterns that specify a reuse interface of a framework to guide frame-work specialization in a task-oriented manner. This thesis reports the results of cases studies in which JavaFrames and the hierarchical framework reuse inter-face modeling methodology were applied to the Struts web application frame-work and the JHotDraw drawing editor framework

    Component-Based Tools for Educational Simulations

    Get PDF
    e-Learning is an effective medium for delivering knowledge and skills. In spite of improvements in electronic delivery technologies, e-Learning is still a long way away from offering anything close to efficient and effective learning environments. To improve e-Learning experiences, much literature supports simulation based e-Learning. This thesis begins identifying various types of simulation models and their features that induce experiential learning. We focus on designing and constructing an easy-to-use Discrete Event Simulation (DES) tool for building engaging and informative interactive DES models that allow learners to control the models’ parameters and visualizations through runtime interactions. DES has long been used to support analysis and design of complex systems but its potential to enhance learning has not yet been fully utilized. We first present an application framework and its resulting classes for better structuring DES models. However, importing relevant classes, establishing relationships between their objects and representing lifecycles of various types of active objects in a language that does not support concurrency demand a significant cognitive workload. To improve this situation, we utilize two design patterns to ease model structuring and logic representation (both in time and space) through a drag and drop component approach. The patterns are the Delegation Event Model, used for linking between components and delegating tasks of executing and updating active objects’ lifecycles, and the MVC (Model-View-Controller) pattern, used for connecting the components to their graphical instrumentations and GUIs. Components implementing both design patterns support the process-oriented approach, can easily be tailored to store model states and visualizations, and can be extended to design higher level models through hierarchical simulation development. Evaluating this approach with both teachers and learners using ActionScript as an implementation language in the Flash environment shows that the resulting components not only help model designers with few programming skills to construct DES models, but they also allow learners to conduct various experiments through interactive GUIs and observe the impact of changes to model behaviour through a range of engaging visualizations. Such interactions can motivate learners and make their learning an enjoyable experience

    DIVA Architectural Perspectives on Information Visualization

    Get PDF

    Konzeption und Implementierung eines Applikationsservers für linguistische Anwendungen

    Get PDF
    Das Projekt 'Deutscher Wortschatz' wurde Anfang der 90er Jahre am Institut für Informatik der Universität Leipzig begonnen und stellt mittlerweile eine der umfangreichsten korpuslinguistischen Datensammlungen zur deutschen Sprache dar. Der zunehmende Umfang der Sammlung und die wachsende Akzeptanz durch verschiedene Anwender aus Forschung und Wirtschaft zeigen deutlich die Grenzen der gegenwärtig verwendeten Architektur im Hinblick auf Skalierbarkeit, Performanz und Verfügbarkeit auf. Diese Diplomarbeit beschreibt die Konzeption und Implementierung eines linguistischen Applikationsservers, der als Plattform für korpuslinguistische Anwendungen eingesetzt werden kann und insbesondere auf die Bedürfnisse des Projektes ``Deutscher Wortschatz'' ausgerichtet ist. Dabei handelt es sich um eine auf mehrere Rechner verteilbare, plattformneutrale Anwendung, die skalierbar ist, eine hohe Verfügbarkeit aufweist und die transparente Integration neuer Anwendungen ermöglicht. Dabei stehen die Belange linguistischer Software im Vordergrund, obwohl der Einsatz des Systems auch in anderen Aufgabenbereichen denkbar ist. Der konzeptionelle Teil der Arbeit beschreibt zunächst die Besonderheiten und Eigenschaften, die linguistische Systeme, insbesondere solche, die mit großen Korpora arbeiten, besitzen und leitet daraus Forderungen ab, die eine Entwicklungsumgebung erfüllen muß, um diese Anwendungsklasse zu unterstützen. Ein weiterer Schwerpunkt ist die Analyse und Begriffsdefinition der Klasse der Applikationsserver -- eine neue Softwaregattung die sich in einer eigenen Schicht zwischen System- und Anwendungssoftware ausgebildet hat. Im Hinblick auf den Einsatz in einem PC-Cluster fließen in die Konzeption eines linguistischen Applikationsservers auch Aspekte verteilter Systeme ein, die beim Entwurf des Systems berücksichtigt werden. Die Vorstellung der Implementierung des vorgeschlagenen Konzepts bildet den zweiten, umfangreicheren Teil der Arbeit und stellt dem Projekt 'Deutscher Wortschatz' ein neues Werkzeug zur Verfügung, das die Entwicklung verteilter, linguistischer Anwendungen erleichtert und die hohe Leistungsfähigkeit der Clusterarchitektur ausnutzt. Außerdem wird mit der Realisierung des vorgeschlagenen Konzepts dessen Praktikabilität nachgewiesen und damit gezeigt, wie in der Zukunft komplexe linguistische Softwaresysteme aufgebaut sein könnten
    corecore