Project Mobilis
A German-Brazilian collaboration
Technical University Dresden (TUD)
Catholic University of Rio de Janeiro (PUC-Rio)
Federal University of Minas Gerais (UFMG)
2007-2009
Proposal of the General Architecture of the Mobilis Application
Prototype (MAP)
Version
Date
Editor
Description
1.0
9.5. 2008
PUC Team
First, general architecture
1 Introduction
This document presents the proposed general architecture of the Mobilis Application Prototype
(henceforth, named MAP) as it will be implemented by the PUC team. It is based on the overall
requirements specified in 8, and details the work plan [5], but some service names have changed as
follows:
•
CMS has been renamed to Context service
•
MPS has been renamed to Maps service
•
FFS has been renamed to Fun flags service
•
GDDS will be implemented by SDM + NaradaBrokering (see below)
•
GLBS now is just a simple wrapper of positioning information (as part of Context service)
2 Overview
MAP uses OGSi, the Android SDK [2] and the Publish-Subscribe infrastructure NaradaBrokering [3]
for distribution of data and events between the devices. MAP is composed of a client component
executing on the (mobile) user devices, and one or more NaradaBroker servers, executing on
stationary hosts of the wired network. In the following, we describe the structure of a MAP's client.
MAP client is composed of: one Basic service, the Shared Data Manager (SDM), at least three Mobilis
Services: Context service, Maps Service and Fun flags Service, and a common GUI framework (all
but the last are OSGi services). Hence, it will be possible to include or remove new services
dynamically, and OSGi, enables services to announce and discover their interfaces for the purpose of
inter-service method invocation. The set of instantiated Mobilis Services at a client will constitute the
application functionality offered to the users. When MAP is used by a group of users, it is assumed
that the clients have a same set of instances of Mobilis Services executing on the corresponding
devices.
In the first version of MAP, we will consider static user groups, and just implement a simplified
Groups service, which just shares a list of active group members (and some attributes) with the
remaining services. We will also implement a simple Chat Service for Mobilis (but since it is not the
main focus of the Tourist Scenario, it will not be further detailed in this document.
2.1
Shared Data Manager
The SDM is a basic service used by all Mobilis Service executing on the client to exchange data and
events both locally, i.e. with another Mobilis Service, or remotely, with instances of Mobilis Services
executing on remote devices.
It implements both a Request-Reply and a Publish-Subscribe interface to the Mobilis Services, through
which these can explicitly and synchronously (Req/Rep) or anonymously and asynchronously
(Pub/Sub), communicate with each other. SDM also implements the transcoding of local requests to
the NaradaBrokering Pub/sub interface, i.e. each SDM will be both a NaraderBrokering publisher or
subscriber, as a surrogate of the local Mobilis Services demanding some remote sharing of data or
events.
SDM also has a data repository that caches locally data that Mobilis Service instances (local or
remote) are sharing. Figure 1 shows the general structure of the client.
In principle, Mobilis Services can share nearly every type of data, which is also supported by the
Mobilis Prototype - Executive Summary
2 of 7
NaradaBrokering infra-structure. Each sharable data is encapsulated by an object with metainformation. The meta-information will essentially include an objectID, describe the source, the type
(or coding format), the semantics, and other information concerning the shared object. This
information will be used by Mobilis Services to announce, discover and check type compatibility of
shared objects.
In the first version of MAC we will not implement a Discovery Service for sharable data, but the goal
is to later use the pub/sub infra-structure also for this discovery.
Mobilis Application
GUI Framework
Maps Service
Groups Service
Context Service
Fun Flags service
Shared Data Manager
Figure 1: General architecture of a MAP client
2.2
The GUI Framework
The GUI framework is a set of objects used by all Mobilis Services to create standard panels (views)
for receiving user commands and displaying the Mobilis Service's output. Moreover, the GUI
framework provides graphical controls that show all the OSGi services which are executing, and
allows the user to manage them (e.g. start/stop them, or toggle between their GUIs). These general
GUI controls are provided by vertical and horizontal tool or rule bars at the display's border.
Each Mobilis Service has its GUI composed of several independent views (min: 2, max: 4, described
in the following) each of which fills almost the entire area of the device's display (3-5 inches).
Hence, at any time, at most one view of a single Mobilis Service will be the focus of the user's
interactive events - we say that this view is 'open'.
The other views of this Mobilis Services are collapsed (minimized) into a tab shown in a horizontal
ruler at the bottom of the display. As soon as the user selects any such tab, the corresponding view is
opened, and the previous view is collapsed into a new tab. On a vertical ruler, all the remaining
Mobilis Services that are executing, but which have no open view, have a corresponding tab.
The four possible views of any Mobilis Service are, of which only the first is mandatory.
Control: allows the user to input service parameters and preferences, and to manage the service's life
cycle (e.g. start, stop, suspend, resume)
Global: displays a global view (e.g. overview) of the data and supports a macroscopic navigation in
the data space (think of a map)
Focused: displays a focused view (e.g. detailed) of the data, and supports a view-specific navigation
and input commands
Event: displays the set of latest, and yet unvisited, asynchronous events of the Mobilis Service. When
a new event arrives while this view is minimized, the corresponding tab will change its color (or blink)
until it the view is open, in order to direct the user's attention to this fact.
Mobilis Prototype - Executive Summary
3 of 7
3 Basic Functionality of the Mobilis Services
3.1
Application
The application (i.e. an instance of the GUI Framework), when started, requests information about
group members and their context (location and connectivity) and for fun flags within a delimited
region. It requests this information directly to the Groups service and to the fun flag service.
The application opens the map on the screen pin-pointing the objects that represent fun flags and
group members. The further changes in their position or state will be updated through Shared Data
Manager.
3.2
Maps service
Composed by a MapView and a MapController – the Google API view and model classes – Maps
service is responsible for showing the map, fun flags and group members’ location. It permits the
navigation and zooming in the map, as well as the creation of a new fun flag. It does make no
difference between group members and fun flags, it only places graphical objects on the map.
3.3
Groups service
Maintains the information about who are the current group members – including the local user –, their
location and connectivity. If the user is off-line or doesn’t belong to a group, the group is composed
only by himself. The information is updated automatically through the context service.
3.4
Context service
Provides to the groups service the interested users’ location and connectivity. With the information
about who is member of the group, it is possible to locate a member and get information about him. It
alerts the groups service if any change in a group members’ status or location occurs.
3.5
Fun flags service
This service is responsible for managing (creating, removing own, etc.) fun flags and finding and
storing information about fun flags registered from members of the local user’s group on a specified
region and/or interest subject. This information is updated as other fun flags are created or updated.
To reduce the stored information and network traffic, the application can subscribe only to a specific
interest in fun flags. Fun flags will have an attribute that describes their type, which will be used to
differ between different interests.
It is also possible to register for a fun flag only in a specific region, e.g. the region which is shown on
the user’s display.
3.6
Shared Data Manager and its interactions
The Shared Data Manager is responsible for the communication between services on the same device.
It can be used in Req-Reply-mode or Pub/Sub-mode, and delivers the shared data based on a specific
interest.
It is used for the communication between Maps, Groups, Context and Fun flags services, specifically
for information that is updated on-the-fly.
Mobilis Prototype - Executive Summary
4 of 7
From
Application
Maps
Groups
Context
Fun flags
To
Application
Fun flags and
members location
Maps
Information about
group members,
their location and
connectivity
Group members’
fun flags, their
description
and
location
Members updates
Fun flags updates
Specific
users’
location
and
connectivity and
their updates
Groups
Context
Fun flags
Fun flag creation,
deletion or modify
request
Table 1. Interactions among Mobilis services
The items in red are the information exchanged through the Shared Data Manager.
4 Interactions among the Mobilis services
4.1
Initialize map, group members and fun flags position
When the application is opened, it asks groups service for the group members and their context, and
asks Fun flags service for fun flags on a region and a topic.
These services will answer to the application, which is going to show the map on the screen with the
available information.
Fun flags service will exchange information directly to get other members’ fun flags. Groups services
will find out who are the members of the group (including the local user) and ask the context service
about their location and connectivity.
4.2
Update members positions and connectivity information
The groups service has to subscribe to SDM to receive from context service events related to user
moving or connections and disconnections.
The same way, maps service has to subscribe to SDM to be notified from groups service if any
important group members’ context has changed.
The local context service has to propagate any changes to other group members’ Context services.
4.3
Remote updates in fun flags
The Maps service has to subscribe to SDM to be notified from fun flags service if any fun flag was
created, deleted or modified.
Mobilis Prototype - Executive Summary
5 of 7
4.4
Local updates in fun flags
The fun flags service has to subscribe to SDM to receive notifications from maps service about
requests to create, delete or modify a fun flag. It then has to propagate this change to other group
members.
5 Next Steps
1. Define the main user commands and views of the Maps, Context, Groups and FunFlags
Service
2. Set up the general data & meta-data model for sharable data, according to the types of data
shared between the Mobilis Service instances
3. Elaborate use cases of SDM-based data sharing (by the Mobilis Services)
4. Study, and make practical experiments with the google service’s APIs
5. Implement the SDM, its interaction with NaraderBrokering, and early versions of Groups,
Maps and FunFlags Services
6 Main Milestones of the Development
•
April/2008: Draft Architecture of the prototype application as a framework for pluggable
services (done)
•
June/2008: First version of SDM and prototype GUI Framework
•
July/2008: First operational version of Maps, Groups, Context and Fun flags services
•
October/2008: Refined version of the services, and first version of the integrated application
framework with pluggable Mobilis Services
7 Team Members & Main Responsibilities
Name
Contact
Tasks/Responsibilities
Ricardo C.A. da Rocha
[email protected]
Development
of
Context
Development Manager
Skype: rcarocha
Juliana F. S. Aquino
[email protected]
Skype: julianafsa
Hubert da Fonseca
[email protected]
Service
&
Development of Shared Data Manager & GUI
Framework
Development of Maps & FunFlags Service
Skype: ??
Marcelo G. Malcher
[email protected]
Development of Maps (core features) + GLBS
skype: marcelomalcher
Tathiane Mendonça
[email protected]
Skype: tathiane.mendonca
José Viterbo Filho
[email protected]
Skype: jviterbo
Mobilis Prototype - Executive Summary
Development of Chat Service + GUI Framework
(prototype)
Use Cases of user commands and views for
Maps and Fun Flags Services
6 of 7
8 References
[1]
Daniel Schuster, Specification of Mobilis First Prototype, V. 0.2, Dec. 2007
[2]
Android – An Open Handset Alliance Project, http://code.google.com/android/
[3]
The NaradaBrokering Project @ Indiana University, http://www.naradabrokering.org/
[4]
W. Dargie, R.C.A. da Rocha, (Eds.), Requirements for Tourist Application, Mobilis-internal
specification, December 2007.
[5]
PUC-Rio Team, Mobilis First Prototype: Work Plan of the PUC team, v.01, April 2008.
Mobilis Prototype - Executive Summary
7 of 7
Download

Project Mobilis - PUC-Rio