Designing Evolvable Location Models for Ubiquitous Applications

Similar documents
Browsing Semantics in Context-Aware Mobile Hypermedia

History OOHDM. Hypermedia Design OOHDM. Developed by Gustavo Rossi (Universidad Nacional de la Plata)

Using Aspects to Make Adaptive Object-Models Adaptable

Using Aspects to Make Adaptive Object-Models Adaptable

Refining the Observer Pattern: The Middle Observer Pattern

From Cadastres to Urban Environments for 3D Geomarketing

Parallel Algorithms on Clusters of Multicores: Comparing Message Passing vs Hybrid Programming

Preserving Rich User Interface State in Web Applications across Various Platforms

Design Patterns for Description-Driven Systems

Object-Oriented Design

Patterns for E-commerce applications

Using AOP to build complex data centric component frameworks

Patterns for Adaptive Web Applications 1

security model. The framework allowed for quickly creating applications that examine nancial data stored in a database. The applications that are gene

Crash course on design patterns

From Interface Mockups to Web Application Models

Patterns for Designing Navigable Information Spaces

Design Patterns. Gunnar Gotshalks A4-1

Delivery of Services on Any Device From Java Code to User Interface

A System of Patterns for Web Navigation

Design Patterns for Object-Oriented Hypermedia Applications

CO-Protégé: A Groupware Tool for Supporting Collaborative Ontology Design with Divergence

Sustainable software design with design patterns

Software Design Patterns. Background 1. Background 2. Jonathan I. Maletic, Ph.D.

A Taxonomy of Web Agents

ENGINEERING WEB APPLICATIONS USING ROLES

MOBILE COMPUTING 2/11/18. Location-based Services: Definition. Convergence of Technologies LBS. CSE 40814/60814 Spring 2018

A Meta-Model for Composition Techniques in Object-Oriented Software Development

Towards a Java Framework for Knowledge Representation and Inference

Matthew Heric, Geoscientist and Kevin D. Potter, Product Manager. Autometric, Incorporated 5301 Shawnee Road Alexandria, Virginia USA

Domain-Driven Development with Ontologies and Aspects

A Primer of Picture-Aided Navigation in Mobile Systems

RM-ODP: The ISO Reference Model for Open Distributed Processing

Facade and Adapter. Comp-303 : Programming Techniques Lecture 19. Alexandre Denault Computer Science McGill University Winter 2004

PATTERNS AND SOFTWARE DESIGN

A Framework for Reliability Assessment of Software Components

Introduction to Object-Oriented Programming

Metadata in the Driver's Seat: The Nokia Metia Framework

The Join of a Geographical Situation Display System and a Platform Independent C2 Information System

Applying Interaction Patterns: Towards a Model-Driven Approach for Rich Internet Applications Development

Ingegneria del Software Corso di Laurea in Informatica per il Management. Design Patterns part 1

An Introduction to Patterns

DESIGN PATTERN MATCHING

Configuration Management for Component-based Systems

Design Patterns. Observations. Electrical Engineering Patterns. Mechanical Engineering Patterns

FORMALIZED SOFTWARE DEVELOPMENT IN AN INDUSTRIAL ENVIRONMENT

Interception Patterns

Design Considerations on Implementing an Indoor Moving Objects Management System

INTRODUCING A MULTIVIEW SOFTWARE ARCHITECTURE PROCESS BY EXAMPLE Ahmad K heir 1, Hala Naja 1 and Mourad Oussalah 2

Patterns for Data and Metadata Evolution in Adaptive Object-Models

Processing Interaction Protocols in Parallel: a Logic Programming implementation for Robotic Soccer

Synthesizing Communication Middleware from Explicit Connectors in Component Based Distributed Architectures

Context-aware Services for UMTS-Networks*

Involving tourism domain experts in the development of context-aware mobile services

Supporting Interactions with Multiple Platforms Through User and Task Models

Digital Archives: Extending the 5S model through NESTOR

Modularizing Web Services Management with AOP

Architectural Patterns

Universal Communication Component on Symbian Series60 Platform

Policy-Based Context-Management for Mobile Solutions

Real-Time Coordination in Distributed Multimedia Systems

Computer Science Applications to Cultural Heritage. Relational Databases

AN AGENT-BASED APPROACH TO THE SIMULATION OF PEDESTRIAN MOVEMENT AND FACTORS THAT CONTROL IT

SPACE IDENTIFICATION AND SPACE SUBDIVISION: A POWERFUL CONCEPT FOR INDOOR NAVIGATION AND NAVIGATION

Design Patterns. Architectural Patterns. Contents of a Design Pattern. Dr. James A. Bednar. Dr. David Robertson

Resource and Service Trading in a Heterogeneous Large Distributed

Pattern Transformation for Two-Dimensional Separation of Concerns

Dynamic Weaving for Building Reconfigurable Software Systems

AUTOMATIC GRAPHIC USER INTERFACE GENERATION FOR VTK

ED-MEDIA'98. Full Paper. Topic: Methodologies for Development of Educational Technology Systems

Developing Software Applications Using Middleware Infrastructure: Role Based and Coordination Component Framework Approach

Design Patterns. An introduction

OOP as an Enrichment of FP

Addressing: when mobile is moving around. Mobile Registration. Principles of Mobile Routing. Mobility via Indirect Routing

Topics in Object-Oriented Design Patterns

AGORA: a Layered Architecture for Cooperative Work Environments

A Grid-Enabled Component Container for CORBA Lightweight Components

An Evolution Process for Application Frameworks

Context Aware Computing

Scenario-based Synthesis of Annotated Class Diagrams in UML

Multi-Dimensional Separation of Concerns and IBM Hyper/J

Pattern-Based Architectural Design Process Model

4.1 Introduction Programming preliminaries Constructors Destructors An example... 3

HyperSD: a Semantic Desktop as a Semantic Web Application

Ingegneria del Software Corso di Laurea in Informatica per il Management. Introduction to UML

On Aspect-Oriented Technology and Object-Oriented Design Patterns

The Authenticator Pattern

Pattern Density and Role Modeling of an Object Transport Service

Processing Interaction Protocols in Parallel: a Logic Programming implementation for Robotic Soccer

Overview of SAS/GIS Software

A Framework for Concern-Sensitive, Client-Side Adaptation

ISSUES IN SPATIAL DATABASES AND GEOGRAPHICAL INFORMATION SYSTEMS (GIS) HANAN SAMET

Simulink/Stateflow. June 2008

Supporting Interactions with Multiple Platforms Through User and Task Models

Concept as a Generalization of Class and Principles of the Concept-Oriented Programming

The Role of Metamodeling in MDA

International Journal of Scientific & Engineering Research Volume 8, Issue 5, May ISSN

Introduction to Software Engineering

Reflective Design Patterns to Implement Fault Tolerance

Pattern-Oriented Development with Rational Rose

Transcription:

Designing Evolvable Location Models for Ubiquitous Applications Silvia Gordillo, Javier Bazzocco, Gustavo Rossi and Robert Laurini 2 Lifia. Facultad de Informatica. Universidad Nacional de La Plata, Argentina {gordillo,jb,gustavo}@lifia.info.unlp.edu.ar 2 INSA-Lyon, France Robert.Laurini@lisi.insa-lyon.fr Abstract. In this paper we present an object-oriented approach for building location models in the context of ubiquitous applications. We first motivate our research by discussing which design problems we face while building this kind of applications; we stress those problems related with applications evolution. We then present a set of simple design micro-architectures for representing locations and their interpretation. We finally discuss some further research work. Introduction In the last 5 years, we have experienced an increasingly interest in the development of ubiquitous applications, i.e. those applications that follow the anytime/anywhere/anymedia paradigm and provide transparent access to information and other kind of services trough different (in general portable) devices. One of the most important features of these applications is their ability to gracefully adapt themselves to the user s context, e.g. his location, the device he is using (a laptop, palm computer, cell phone, etc), his preferences, etc. Research issues related with ubiquitous computing range from hardware (small memory devices, interface appliances) and communication networks (trustable connections, security, etc) to software and data management aspects such as new interface metaphors, data models for mobile applications, continuous queries, adaptive applications, information exchange between disparate applications, etc. In this paper we address one of the interesting facets of these applications: their evolution. According to Abowd []: Ubicomp applications evolve organically. Even though they begin with a motivating application, it is often not clear up front the best way for the application to serve its intended user community. As a consequence, design issues are critical for the application to evolve seamlessly when requirements change. In our research we are pursuing the identification of a set of design micro-architectures to build evolvable location models, i.e. those application components that represent the user location and which are used to customize the application s behavior accordingly.

Suppose for example a simple application to help the user move through a city like Paris; while using his preferred device he can be informed about how to go to a place from where he is now, which hotels and restaurants he can find in the neighborhood, etc. In our first application s release we assume that we can obtain the user s location in terms of the address where he is and we use a cartography service such as [5] to inform him what he needs. Existing state-of-the-art technologies such as positioning devices and Internet cartography [7] make this scenario absolutely feasible. Being the application successful, we want to integrate it with a new component that helps the user guide through the Metro (or bus) network. Using a new set of positioning artifacts like beacons [6], we know in which station he is and we can tell him how to go where he wants. Notice that we now need to represent the location as the name of a Metro station or bus stop. Eventually, some stations (huge ones) will have their own information systems offering shops and bars and we might need to guide him through the station; once more, the location representation changes and the functionality needs to be extended. When he enters a Museum the problem has a new shift: if we are able to know the artwork the user is watching (another kind of location ), we may want to explain him some facts about its author, the historical context, etc. There is no need to say that the application s structure might get rather complex and evolution and maintenance may become a nightmare when we add new location classes and contexts for these kinds of queries. The structure of this paper is as follows: In Section 2 we discuss why we should carefully design the location model. Next we outline our solution by presenting an adaptive location model and carefully describing its most important features. We then summarize evolution issues related with locations. In section 3 we present some further work and concluding remarks 2 Designing a flexible location model The above scenario shows that we face a set of problems regarding the structure of classes related to the representation of locations; while rule-based approaches (see for example [4]) can help in expressing context-related expressions such as: If the user is in position X, execute action A, they do not suffice to solve other problems like those presented in the introduction. More precisely we have the following design problems: -Objects representing locations have different attributes according to the positional system we use. It may be not possible or reasonable to define new classes each time the application evolves. 2-The way in which we interpret the location s attributes varies with the context (for example x, y in a local Cartesian system or in a global positioning one). 3-For each new kind of location we might need new ways to calculate distances, trajectories; moreover, new services, previously unforeseen, may appear. 4-The granularity of locations might change, e.g. we want to see the station as a point in the Metro network or as a building with corridors, rooms, facilities, etc. For the sake of conciseness we will only address points to 3 above. We assume an object-oriented representation of the geographic objects as discussed in [3]

2. Using an Adaptive Object Model for Locations To solve the first problem indicated above we use a generalization of the Type Object Pattern, named Adaptive Object Model in [8], replacing different location classes with a generic class LocationType whose instances are different types of locations as shown in Figure.a. Each Location type defines a set of property types, having a name and a type (class PropertyType). Instances of Location contain a set of properties (instances of class Property) each one referring to one property type. Using the square in Figure.a we can manage the meta (or knowledge) level by creating new instances of the type side (at the right) and the concrete level by creating new instances of classes in the left. Location 0..* type LocationType 0..* properties Property value : Symbol type properti es PropertyType name : String type : Type Figure a. Adaptive model for locations and their properties. By this mean, adding new types of locations is not restricted by the code, compile & deploy process, which is known to be a very static solution. By using the preceding approach, the definition of a new kind of location can be easily made by arranging the required properties instances as needed (each one of them belonging to a particular type of property). The static definition of the structure imposed by the classes approach is changed in favour of the more dynamic alternative presented by the square solution presented above. This can be done primarily because the differences found in different types of locations resides in their structure rather than in their behaviour. 2.2 Decoupling Location from its Context It is clear from the discussion above that certain computations (distance, trajectories, etc.) depend on the interpretation of the location attributes, being them coordinates, street names, rooms in a museum, etc. We have generalized the idea of reference system defined in [3] which is used to decouple latitude, longitude pair from the corresponding (global) reference system. In this way we define the LocationContext class hierarchy shown in Figure 2; each class defines a new application context for locations providing specific behaviors according to the specific context. Usually, location contexts are singletons since we can see them as providing behaviors that do not depend on the particular location object. Some location classes may just act as adapters of existing applications (e.g. a museum information systems) to improve interoperability.

Notice that class behaviors will be generally mapped to interface options in the user s device. Modeling LocationContext classes as typed objects as in 2. is also possible, though we do not discuss it in this paper. Each location object collaborates with the corresponding context to be able to answer usual queries such as: how do I reach a place, how far am I from somewhere, etc. Location context LocationContext distance() findpath() Museum Information System MetroNetwork... MetroStation MuseumAdapter Figure 2. The relationship between the location and its context. 2.3 Adding new functionality One of the most complex aspects related with the evolution of location contexts is the fact that new unforeseen functionality may arise, e.g. while in a museum, operations to know more about an artwork; in the metro network operations to find the shortest path between two stations, etc. In our model we implement context-specific operations as Commands [2]. New operations are just implemented as new classes, which are integrated seamlessly in the model as shown in Figure 3. It is neccesary to note that a solution based on new classes to add new functionality, as the Command Pattern states, is particularly useful since no changes to the existing system has to be done in order to use the new function. Here the new class approach is used since the different commands vary in their behaviour rather than in their structure, which is the opposite of the situation presented in 2.. While location contexts have a simple polymorphic interface (providing primitive operations for computing distance, trajectories, etc), an interface for commands is also provided. Thus, a location context is able to execute (acommand) which is an instance of one of the sub-classes of Command. LocationContext distance() findpath() co mma nds..* Command ShowShops... AnotherCommand Figure 3. Adding new functionality.

Location contexts may refine specific locations; for example (as discussed above), we might want to see the station either as a node in the network or we might be inside the station. We express this possibility with the relationship refines between LocationContext and Location (not shown in the diagram) that allows us to easily provide the user with all behaviors associated to the set of possible nested contexts. 3 Concluding Remarks and Further Work In this paper we have discussed the problem of dealing with evolvable location models; this problem is typical of ubiquitous information systems because of the way in which they grow, i.e. as new communication and positioning services appear new unforeseen functionality has to be added. We have shown that using a combination of an adaptive object model with varying location contexts, we can make the evolution seamless by eliminating the need to modify existing classes or code. Furthermore, decoupling new functionality from location classes by using commands, we can also cope with the addition of new behaviors. We are now studying the integration of location models into applications that deal with more general kind of geographic behaviors. In this kind of software, application objects (cities, stations, etc) are generally geo-referenced and described using pre-defined topologies such as points, lines, polygons, etc. We are studying the impact of combining location models with discrete and continuous geographic models. References. Abowd, G.: Software Engineering Issues for Ubiquitous Computing. Proceedings of the International Conference on Software Engineering (ICSE 99), ACM Press (999), 75-84 2. Gamma, E., Helm, R., Johnson, J., Vlissides, J. : Design Patterns. Elements of reusable object-oriented software, Addison Wesley 995. 3. Gordillo, S., Balaguer, F., Mostaccio, C., Das Neves, F. Developing GIS Applications with Objects: A Design Pattern Approach. GeoInformatica. Kluwer Academic Publishers. Vol 3:, pp. 7-32. 999. 4. Kappel, G., Proll, B., Retschitzegger, W.: Customization of Ubiquitous Web Applications. A comparison of approaches. International Journal of Web Engineering and Technology, Inderscience Publishers, January 2003 5. Navigation Technologies Corporation, www.navtech.com 6. Pradham, S.: Semantic Location. Personal and Ubiquitous Computing. Springer Verlag 2002 (6) 23-26. 7. Virrantaus, K., Veijalainen, J., Markkula, J.: Developing GIS-Supported Location-Based Services. Proceedings of the Second International Conference on Web Information Systems Engineering (WISE 02). 8. Yoder, J., Razavi, R.: Metadata and Adaptive Object-Models, ECOOP 2000 Workshops, in www.adaptiveobjectmodel.com