Proposal for a chapterin ADVANCES IN MOBILE MULTIMEDIA

Expected number of pages : 20-25 p.

Multi-channel delivery of geo-referenced personalized services


Sylvain Giroux
Département d’informatique
Faculté des sciences
Université de Sherbrooke
2500, boul. Université,
Sherbrooke, Qc
Canada, J1K 2R1
e-mail: / Davide Carboni
CRS4 (Centre for Advanced Studies, Research and Development in Sardinia)
VI Strada OVEST, Z.I. Macchiareddu
C.P. 94, 09010 Uta (CA) – Italy


As the world gets connected, people need to access information anywhere, anytime, whatever the device is (laptops, handheld devices, cellular phones...). Indeed the convergence of traditional networks, wireless networks and mobile computing devices opens new striking opportunities for the delivery of situated services. Nevertheless, we still lack a clear conceptual model of the pervasive computing[Weiser, 1991] and have tools, methodologies, and middleware to write and to seamlessly deliver services over heterogeneous devices.

This chapter address the design and delivery of distributed situated services that foster and support the mobility of people. A situated service must be multi-channel, multi-modal, geo-referenced and personalized. Multi-modality and multi-channel delivery are essential because, on the client side, the service may be accessed through very different devices and, on the service provider side, it is not cost and time effective to design ad hoc user interfaces for each category of devices. Thus a concrete user interface should instead be generated on the fly according to the target user device. Geo-referentiation for mobile applications is crucial because the information selected and the actions performed depend on the user physical position. A situated service must also be personalized because the service must choose which information is relevant in the current context.

2An infrastructure for pervasive computing

The role of a pervasive infrastructure is to seamlessly cope with complexity and heterogeneity and to manage complex distributed systems.Our infrastructure is thus built upon three “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 through multiple channels (§3) [Carboni, et al., 2003]. Domain objects are self-contained pieces of software holding the logic of an application. Our approach fills the gap between users and domain objects bygenerating on the fly an appropriate user interface whatever the target device is. As an example, we present how to design, implement and deliver an electronic mail application over various platforms [Carboni, 2005]. For many services, loosely interacting with domain objects rapidly becomes too complex and awkward. The second pillar makes explicit task models in the design of a service involving many domain objects (§4)[Carboni, et al., 2002]. It enables to specify and enforce sequences of actions to follow in the context of a given service, a given device, or a given user profile. Finally, the third pillar addresses the lifecycle of services in a pervasive computing environment (§5) [Carboni, et al., 2003b]. We enrich the Jini framework [Arnold, et al., 1999]with new services and architectures for service deployment and discovery, for the management of user sessions, and for management of offline agents.

3On the fly generation of user interfaces from code

In a pervasive environment, domain objects are on the virtual side, while users are on the physical side. Devices (laptop, PDA, cellular phone, etc.) act as communication channels. A user can then manipulate a domain object through a user interface the domain object have to supply. Since domain objects are not known in advance and neither the device the user will use, one cannot anticipate at design time of a pervasive environment which domain object will have to interact with which user through which device.

Part of our solution is to evolve the notorious MVC[1] and the JavaBeans component model[Sun, 1997] towards a multi-channel perspective. The extended MVC pattern is used as the framework for interactions, clearly separating domain or model from user interface aspects. The extended JavaBeansapproach solves the providing a concrete user interface, while leaving all the space for customization. It enables to find or generate on the fly a user interface whatever the domain object and the device are (Figure 1). The interface is generated from raw Java code of domain objects using introspection and reflection. Hooks permit to bypass part or all of the generation of a user interface leaving space for customization according to context.

Figure 1 Three user interfaces automatically generated by the object renderer from the Java code of the classCalculator. From left to right: a Swing view, an HTML view, a WAP view.

4Beyond single object driven interaction

A pure object driven approach leads to too complex, too permissive, too unstructured interactions for the user. Thus the notion of Mates was introduced in the architecture to control the interactions on an object basis object. It enables the dynamic and adaptive evolution of the interaction. For instance, the user interface can move from a behaviour adapted to novice (asking user a confirmation when doing a commit action) to expert user.On the other hand, the notion of tasks specification was introduced to control and structure interactions with many domain objects. PLANES was implemented to specify valid sequence of actions.

5Multi-channel delivery of services

User may use a very wide range of devices to access services. Among the issues to solve are service deployment (make a service available) and access (search and find a service), service delivery on multiple platforms and or devices, and user interface generation. Previous sections have addressed interactions with the user. In this section we address service deployment, access and delivery.

5.1Service deployment and access

We have designed and implemented the complete distributed infrastructure needed for the delivery of multi-modal services on PC, laptops, PDAs and cellular phones. This infrastructure called e-mate is built upon Jini and XML. Core e-mate services address authoring, deployment, publication, advertising and searching. The authoring service provides for service creation either from scratch or by composition of existing services. It also provides for service description by linking various service elements to ontologies specified in XML. Once a service is ready for prime time, the deployment service packages the code and its resources and place the resulting service pack in a distributed queue [Freeman, et al., 1999]. Application servers are listening to this queue. When one is available, an application server retrieves the service pack, puts it in an http server and starts the server part of the service. The service is then registered in E-mate portals. E-mate portals add a semantic layer over the Jini lookup and discovery services. Finally the service is advertised in a yellow page system based on XML. Beside these core services, an ontology service manages ontologies in XML in order to organize and structure the way services share semantic information. A client user may access services through PC, notebook, PDA and mobile phones. When she launches the ServiceViewer on her device, the ServiceViewer registers the device on the e-mate infrastructure, gets access to portals to services, manages the life cycle of “servicelets” and provides hooks for multi-modality, device profiling and user profiling. If a service does not have an ad hoc user interface for the current device type, one is generated on the fly. Security and privacy issues are addressed through encryption and certification.

5.2Service delivery

In our delivery architecture, the first step is to group devices by the capability to dynamically load and execute the mobile code of a service. We distinguish three fundamentals categories of clients:

  • Fat client: the device can download and execute mobile code (desktop-PC, laptops, etc.).
  • Thin client: the device can execute local code and can download/upload data (smart-phones, PDA programmable in Java, etc.).
  • HTTP-only: the device can only download/upload data and can visualize information by means of some pre-installed applications like a browser (VoiceXMLbrowsers, WAP phones, etc.).

When user want to access a service or a specific domain object, a deployment strategy takes charge of distributing the code according to the device capacities.

5.3Dealing with interruptions

Since user and devices are not always connected, off-line agents and sessions are used to allow a user to recover from a session and to switch devices.


[Arnold, et al., 1999] Ken Arnold, Ann Wollrath, Bryan O’Sullivan, Robert Schei er, and Jim Waldo. The Jini specification. Addison-Wesley, Reading, MA, USA, 1999.

[Carboni, et al., 2002] Davide Carboni, Stefano Sanna, Sylvain Giroux, Gavino Paddeu, Interactions Model and CodeGeneration for J2ME Applications, to appear in 4th International Symposium on Human Computer Interaction with Mobile Devices, Mobile HCI 2002, September 18-20, 2002, Pisa, Italy, LNCS 2411, Springer-Verlag, 2002, pp.286-290.

[Carboni, et al., 2003] Davide Carboni, Sylvain Giroux, Gavino Paddeu, Andrea Piras, Stefano Sanna Delivery of services on any device : from Java code to user interface. 10th International Conference on Human - Computer Interaction 2003,June 22-27, 2003, Crète, Grèce. in In Constantine Stephanidis (ed.) and Julie Jacko (ed.) HUMAN-COMPUTER INTERACTION, vol. 1-2, Laurence Erlbaum Associates, 2003.

[Carboni, et al., 2003b] Davide Carboni, Sylvain Giroux, Eloisa Vargiu, Claude Moulin, Stefano Sanna, Alessandro Soro, Gavino Paddeu, e-MATE: An open architecture to support mobility of users, in Hele-Mai Haav and Ahto Kalja, editors,Databases and Information Systems II: Fifth International Baltic Conference, Baltic Dbis &Is'2002 Tallinn, Estonia, June 3-6, 2002: Selected Papers, Kluwer Academic Publishers, 2003.

[Freeman, et al., 1999] Eric Freeman, Susanne Hupfer, and Ken Arnold. JavaSpaces principles, patterns, and practice. Addison-Wesley, Reading, MA, USA, 1999.

[Gamma, et al., 1995] Gamma, Erich, Richard Helm, Ralph Johnson, John Vlissides, Design Patterns, Addison-Wesley;1995.

[Sun, 1997] Sun Microsystems, JavaBeans, v 1.01, 1997.

[Weiser, 1991] Marc Weiser. The computer for the twenty-first century. Scientific American, 265(3):94–104, September 1991.

[1] Model-View-Controller also known as observer design pattern [Gamma, et al., 1995].