Information Filtering and Retrieving of Context-Aware Applications Within The Mobe Framework
Information Filtering and Retrieving of Context-Aware Applications Within The Mobe Framework
http://www.mobe.it
Abstract. Due to the appearance and widespread diffusion of new mobile de-
vices (PDAs, smartphones etc.), the traditional notion of computing is quickly
fading away, giving birth to new paradigms and to new non-trivial problems.
Hence, the scientific community is searching for models, technologies, and ar-
chitectures in order to suitably describe and guide the implementation of this
new computing scenario. It is clear that the notion of context (whether physical
or “virtual” or a mixture of both) plays a fundamental role, since it influences
the computational capabilities of the devices that are in it. The present work di-
rectly addresses this problem proposing MoBe, a novel architecture for sending,
in push mode, mobile applications (that we call MoBeLets) to the mobile de-
vices (cellular phones, smartphones, PDAs, etc.) on the basis of the current con-
text the user is in. The context is determined by both an ad-hoc MoBe infra-
structure and data from sensors on the mobile device (or in its surroundings).
To avoid a “MoBeLet overload”, our architecture exploits context-aware infor-
mation retrieval and filtering techniques, which are briefly discussed.
1 Introduction
We envisage a world in which the mobile devices that everybody currently uses (cel-
lular phones, smart phones, PDAs, and so on) constantly and frequently change their
functioning mode, automatically adapting their features to the surrounding environ-
ment and to the current context of use. For instance, when the user enters a shopping
mall, the mobile phone can provide him/her with applications suitable for shopping,
i.e., article locator, savings advertiser, etc; when entering in a train station, the same
device becomes a train timetable able to give information about the right platform,
delays, etc. Even if it is well known that current mobile devices can be used as com-
puters, since they have computational and communication capabilities similar to com-
puters of a decade ago, how to achieve this goal is not clear. One approach might be
to have an operating system continuously monitoring sensors on the mobile device,
thus adapting backlight, volume, orientation, temperature, and so on, to the changing
environment. Another approach is to have a Web browser showing to the user con-
text-aware data selected by means of information filtering techniques. In our opinion
both these alternatives suffer from a lack of flexibility and a waste of computational
power.
We propose a different approach, in which servers continuously push software ap-
plications to mobile devices, depending on the current context of use. Inspired by the
Nicholas Negroponte’s “Being Digital” term, we name our approach MoBe (Mobile
Being), and the context-aware applications, pushed and executed on the mobile de-
vice, MoBeLets. This is an interdisciplinary work: mobile agent community, context
aware computing, software engineering and middleware, interaction with mobile
devices applications, information retrieval and filtering, and privacy and security
management are all disciplines that are deeply involved in our project.
In this paper we describe our approach and some details of its ongoing implemen-
tation. In Section 2 we recall the state-of-the-art in the related literature. In Section 3
we describe the structure of our model, detailing the key submodules. Section 4 pre-
sents some examples of MoBeLets. Section 5 discusses the information retrieval and
filtering issues. The last section discusses several practical problems we found devel-
oping our first prototype of the MoBe architecture.
2 Related Work
Several research fields are related to this work. Context-aware computing is more
than 10 years old, as it was first discussed in [1]. However, the field seems still in its
infancy, as even the core definition of context is still unsatisfying. Some definitions
are, like dictionary definitions, rather circular, since they simply define context in
term of concepts like “situation”, “environment”, etc. Some researchers tried to define
this concept by means of examples [2, 3]; other researchers searched for a more for-
mal definition [2, 4, 5]; others identified context with location [1] or with location,
time, season, etc. [6, 7]. Another related research field concerns mobile agents [8].
Our approach tries to avoid all the resource load that these architectures usually carry
with, and to provide a simpler implementation. Information retrieval, context aware
retrieval, just-in-time information retrieval, and information filtering deal with the
information overload problem from different facets [9, 10]. As an example, Google is
starting to provide contextual (actually, localized) services as well. Peer-to-peer net-
works and wireless networks and technologies are of course involved as well.
A much related work is the AmbieSense System (www.ambiesense.com) which pro-
vides the user with context-aware information, while the MoBe framework is de-
signed to push both data and applications to mobile devices on the basis of the current
context they are in.
Figure 1. MoBe overall architecture.
3 The Overall Architecture of MoBe
Figure 1 shows the overall MoBe architecture. The mobile device runs a software
module called MoBeSoul which is responsible of managing the whole lifecycle of a
context-aware application. Let’s follow the events that lead to pushing, downloading,
and executing a MoBeLet on the mobile device.
The last entity of the pipeline is the Execution submodule. Its aim is to run each
downloaded MoBeLet inside a Sandbox, managed by a Security Manager, in order to
avoid malicious MoBeLets to use resources against user’s will. Once downloaded, the
code of each MoBeLet is first checked by a Code Integrity Checker component which
verifies whether it has been corrupted during the download (and in this case asks the
Filter & Retrieval submodule to repeat the download).
After this phase each MoBeLet is passed to the Scheduler, which has in charge its
actual execution. This component is capable of starting, pausing, stopping, and de-
stroying the MoBeLets and is notified of context exit (and entry) events, to stop or
pause those MoBeLets that go out of context. Each MoBeLet can register itself with
the Registry component inside the Context submodule, in order to be directly notified
of relevant context change events.
The MoBeLets that have to use resources outside their sandbox are allowed to ac-
cess those resources only through the Security Manager, which denies requests that
are incompatible with MoBeLet manifest and prompts the user to confirm more heavy
resource usages.
The framework is at its early stages of implementation. On the server side, simple
prototypes for MDSE, MMS, and MCS have been realized (the latter providing only
simple localization information; therefore, we currently handle only artificial con-
texts). On the client side, developed prototype modules include the Execution (with
the exception of Security Manager), the Download and a rough Context module. The
framework is currently being exploited for domotics applications.
4 A MobeLets Portfolio
In order to show the feasibility of the proposed approach in this section we provide a
list of realistic MoBeLets. Here we present only few of them; the reader can further
imagine several sensible examples to confirm that the scenario described above is
feasible.
MoBeDisc: MoBeLet designed in order to provide to the user the following informa-
tion and services: map of a discotheque, illustrating the different rooms along with
the relative activities; possibility to get in contact with people with similar inter-
ests (matches inferred according to the information of the user profiles); in case of
emergency the nearest safety exit is indicated.
MoBeCrash: in the case of a car accident this MoBeLet can automatically perform an
emergency call, alerting both the rescue units and the police and an information
center which, in turn, can alert other car drivers to pay attention when passing near
the zone of the car accident. The information sent by the MoBeLet can be very ac-
curate, including the geographic position, the identity of the driver and other use-
ful information items obtained by querying the computer system of the car. Thus,
the rescuers can have a clear idea of the number of cars involved in the accident
and plan an adequate intervention.
MoBeBus: this MoBeLet informs the user about the route performed by the bus,
displaying all the stops. It can also suggest the nearest stop for the desired destina-
tion, alerting the user when the bus is approaching it.
MoBeShop: news about particular offers and discounts. Possibility to be informed
about the availability of a given product and to pay electronically (with an even-
tual separate shipment of the goods), using the mobile device by means of a secure
connection to a payment gateway.
MoBeWakeUp: the usual alarm clock application, already installed on today mobile
phones. Since the alarm clock is used in well specific contexts (i.e., before going
to sleep and at wake up), it might be a (very simple) MoBeLet as well, thus free-
ing the resources when it is not used (during the day).
MoBeJam: this MoBeLet downloads a traffic profile of the current road and monitors
the car sensors to detect abnormal traffic situations. In case a traffic jam is de-
tected, the data are sent back to a centralized server, which informs all the other
MoBeJam users about the traffic jam and suggests them alternative roads.
MoBeQueue: when standing in a queue, a user can use this MoBeLet in order to
register him/herself, obtaining a virtual ticket with its position in the queue. Then
he/she can make some queries in order to know the average time needed to serve
him/her and other useful information.
MoBeSales: when the traveling salesman/saleswoman comes back to the factory, this
application updates his/her records about the products (including newly produced
ones) and the payment situations of his/her customers.
MoBeMuseum: when a tourist enters a museum empowered with the MoBe technol-
ogy, this MoBeLet can be both an effective navigation aid (showing to the user a
detailed map of the building with clear indications about the rooms and their con-
tents) and a rich source of information about the item the user is currently looking
at.
MoBeAirport: when a traveler enters into an airport, this MoBeLet can warn him
about the scheduling time of his/her check-in. Moreover, the right path through the
terminals can be indicated by means of a visual map. Other useful information
displayed by the MoBeLet can be the locations of toilets, emergency exits etc.
MoBeHome: a useful suite of MoBeLets being able to control several facilities of a
modern house. For instance, it is possible to enable/disable the alarm system
(when exiting/coming back to home respectively). Moreover, for each room it is
possible to control the temperature, to switch on/off the lights and to control sev-
eral household-electric appliances (e.g.: TV, microwave oven etc.).
MoBeCar: this MoBeLet can ease the interaction with several electronic components
of a modern car. For instance, it can automatically program the satellite navigator
in order to show the best route to the next destination, according to the current
time and the appointments recorded in the PDA’s agenda. Moreover, it can show
diagnostic information about critical components of the car by communicating
with the on-board computer, alerting the driver if there is something wrong.
MoBeLibrary: when the user wants to quickly find a book about a particular topic,
without disturbing the librarian, he/she can use this MoBeLet. Specifying some
search keywords, it is possible to query the library database in order to find only
the relevant records, suggesting the best path to reach them from the current posi-
tion in the building.
The architecture proposed in this paper is still in early development phase and in this
section we briefly discuss some open issues. Since the MoBe framework is still in an
early development stage, this section is rather speculative. Nonetheless, the following
discussion can be useful in order to forecast some realistic scenarios of deployment of
the MoBe architecture, highlighting in advance some crucial implementation prob-
lems and possible solutions.
MoBe architecture should be scalable for what concerns MCS and MMS: simply,
more servers can be added at will, since each of them does not provide a centralized
service. The bottleneck of this architecture is the MDS: in some cases, the MoBeLet
descriptors request will be sent to some local server (when the MCS provides a con-
text ID); but in some other cases the MoBeLet contextual queries will be sent to the
main MDSE server (when the ID can’t be provided). In the last case, there is the risk
of overloading the main MDSE server. To understand if this is a serious problem, let
us try to compare it to nowadays Google statistics. Google receives, and processes
almost immediately, thousands of queries per second (let’s say 1000). If MoBe will be
adopted, we can estimate about 1 billion of MoBe enabled mobile devices, each of
which will probably perform, on average, about 1000 context change per day (in
daytime, about 50-100 context change per hour; no context change during the night).
This would mean a total of 1012 context change per day, i.e., (1012) / (24 * 60 * 60) ≈
107 ca. context change per second. Not all of them will be taken into account from
MoBeSoul, since the Filter component selects and queues some public context de-
scriptors, but let us be pessimistic and assume that this does not decrease significantly
the number of requests to the public server. Let us assume instead that the local server
6
allow to decrease of another factor of 10, leading to 10 . This is 1000 times higher
than today’s Google, but it is not so frightening; at worst, we might deploy 1000
MDSE around the world, and configure the MoBeSouls so that each of them talks to
one of these (e.g., randomly, or statically), thus distributing the load. As a last note on
this issue, let us remark that in principle MCS, MDSE and MMS can be the same
server.
Turning to more general issues, we see two trends in current computer science and
web technologies. The first trend is to provide structure in the produced data: in data-
bases, data are stored and retrieved accordingly to well defined schema; XML,
HTML, XHTML can instill semantic information in otherwise almost unstructured
natural language text; Web services are described on the basis of specific XML for-
mats; Semantic Web is a hot word in the community; and one might go on. Research
within the second trend is devoted to empower current algorithms, techniques, and
software applications in order to deal with unstructured data: search engines are the
second activity of web users (after email); Google GMail fosters an unstructured view
of one’s own mailboxes; images, sounds, and videos are often searched on the basis
of their semantic content, which is hard to encapsulate in a priori textual descriptions;
and so on. MoBe tries to combine both approaches: a context descriptor is made of
structured data; a MoBeLet descriptor can be mainly made of structured data, pro-
vided by the MoBeLet creator, but in principle it is possible to have also unstructured
data like, e.g., the comments inserted in the code by the programmer and to exploit
state-of-the-art software retrieval and filtering techniques [11]. Also comments by
other users are exploitable through social and collaborative filtering techniques.
Within MoBe, applications are sent around, not just data. Of course, this is an arbi-
trary distinction. However, from an abstract/semantic viewpoint, it is perfectly rea-
sonable to distinguish between the two. Therefore, MoBe approach is different from
current mainstream, that relies on Web browsers based on HTTP-like protocols,
which, we believe, is a short-sighted view or from systems like AmbieSense which
are limited to sending context-aware data to mobile devices. Using a well known
metaphor, we might be experiencing the QWERTY of mobile/contextual applica-
tions/devices. MoBe is a much more flexible and powerful architecture. Of course, we
are aware that it has its own weaknesses: someone has to write a particular kind of
content (i.e., software, not just data – this is another reason, besides portability, to use
J2ME: it is rather easy to find Java programmers today); sending applications might
lead to a proliferation of malicious MoBeLets (i.e., viruses); privacy issues, that we
tackled by distinguishing between public and private context parts, are indeed much
more complex, and so on.
Downloaded and executed MoBeLets can be selected not only on the basis of the
current context, but also exploiting the Statistics & Log databases inside the Filter &
Download and Executor submodules.
This is another point in which the above mentioned separation between context and
personalization is, although tricky, advantageous, since context histories management
can be simplified and empowered by such a separation. Indeed, statistics and logs of
MoBeLet usage by a user are rather sensible data, and therefore they can be exploited
at Personalization (rather than Context) level. On the other side, average statistics on
MoBeLets download and usage could be kept on the MDS, to provide a more effec-
tive filtering by the public context descriptors. Finally, the distinction between con-
text-aware and personalization (and public and private context) is a not simple issue
that deserves further work.
7 Conclusions
We have presented a novel approach for retrieving and filtering context-aware appli-
cations on mobile devices, and discussed the important role that information retrieval
and filtering techniques have in this novel scenario. Since MoBe architecture is not
fully developed yet, there is plenty of work to be done, on both the theoretical and
practical sides. We are currently working at refining the contextual model we
sketched in Section 5, at a complete and formal definition of context, and at complet-
ing the implementation of the infrastructure. We are also implementing the first
MoBeLets and a set of MoBeLets descriptors to evaluate our approach.
References