=Paper=
{{Paper
|id=Vol-149/paper-17
|storemode=property
|title=Experiences with Developing Context-Aware Applications with Augmented Artefacts
|pdfUrl=https://ceur-ws.org/Vol-149/paper17.pdf
|volume=Vol-149
|dblpUrl=https://dblp.org/rec/conf/ubipcmm/KawsarFN05
}}
==Experiences with Developing Context-Aware Applications with Augmented Artefacts==
ubiPCMM 2005 111
Experiences with Developing Context-Aware
Applications with Augmented Artefacts
Fahim Kawsar, Kaori Fujinami, Tatsuo Nakajima
2) Rather than providing an analog/digital sensor value,
Abstract—Context-Awareness is a key concept of future sentient artefacts provide a “statement” to the interested
ubiquitous computing. Although various academic and industry applications, for example a sentient chair may provide a
researches are going on around the world to realize context-
statement like “The chair is being used by Rob”.
awareness, we are yet to achieve any substantial success. In this
paper we have reported our experiences of dealing with context 3) Finally, sentient artefacts can also be actuators in some
awareness. We have presented our approach for building cases.
context-aware applications by demonstrating a real life
application development process. Furthermore we have Some services like scheduler or weather forecast monitor
presented two context-aware application frameworks that we etc. are also considered as virtual sentient artefacts. By
have deployed in the roadmap of our research towards context-
augmenting sensors, we make these belongings (micro
awareness. We have discussed our findings and learned lessons
on various issues of context-awareness. component of the environment) smart. Eventually this process
Index Terms— Context-Awareness, Middlewares, Sentient recursively makes our environment smart and context aware in
Artefacts, Smart Environment. a bottom up approach. For context aware services we need to
handle this environment by modeling them in multiple
applications. These applications typically use various
I. INTRODUCTION components of the environment. In our approach, these
components are the sentient artefacts.
U BIQUITOUS computing envisions a future environment
that will be aware of its operating context and that will be
adaptive to ease our interaction [1][3][9][24]. We approach
In this paper we have reported our experience on
developing the context aware applications using these
such an environment by the environment itself. That means artefacts. We have specified the approach centered on the
taking the building blocks of the environment and making sentient artefacts that we have taken and the problems that we
them smart and context aware by capturing people’s implicit have faced during development process. For the ease of
interaction. We have been developing such building blocks, development we have written two context aware application
specifically everyday life objects by augmenting various kinds frameworks from different points of view. These two
of sensors. We call them sentient artefacts. Our vision is to middlewares’ goal is to provide a seamless platform for
utilize these objects for value added services in addition to application development automating many recurring tasks.
their primary roles. For example, consider a frying pan, its However we could not achieve a substantial degree of success.
primary use is in the kitchen. However we can utilize the In the paper we have reported the probable causes that limit
frying pan by augmenting it with some sensors/tags to infer our performance. For clearly demonstrating our approach, we
that its owner is in the kitchen or he/she is cooking while the have selected a context aware application and have shown the
frying pan is being used. Usually these artefacts differ from development process of that application. We have developed
the explicit sensors in three ways: two versions of this application utilizing the two frameworks
to identify the pros and cons of the frameworks. Rather than
1) Sentient artefacts require a small operating specifying the ideal requirements, we will focus mainly on
software/device driver that captures values from multiple sharing our experience of application development in the
sensors embedded in the artefacts and process these values in paper.
a logical way to provide information about its state of use,
properties or anything the software/driver author wants to The remaining paper is organized as follows: In Section II
provide. we have specified the steps that we have followed for
application development. Section III demonstrates our
approach by presenting a hypothetical scenario followed by
Manuscript submitted June 17, 2005.
Fahim Kawsar is a MS student in Computer Science Department at the capability requirements for the scenario functionalities and
Waseda University, Japan (e-mail: fahim@ dcl.info.waseda.ac.jp). the implementation of the scenario. In Section IV we have
Kaori Fujinami is an Assistant Professor of Computer Science Department presented two middlewares and their integration with the
at Waseda University, Japan (e-mail: fujinami@dcl.info.waseda.ac.jp).
Tatsuo Nakajima is a Professor of Computer Science Department at application. Section V discusses the problems and our
Waseda University. (e-mail: tatsuo@dcl.info.waseda.ac.jp).
Fahim Kawsar, Kaori Fujinami, Tatsuo Nakajima 112
experiences. In Section VI we have cited the related works, solving the complexity. We will discuss in detail about this
finally Section VII concludes the paper. complexity in the discussion section.
II. OUR APPROACH III. SAMPLE APPLICATION
In our lab we are constantly drawing real life practical The first step that we follow is to identify an application
scenarios. We use these scenarios as the design base for scenario. In this section we have presented a scenario, then we
deploying the environment components with augmented have demonstrated how we have implemented the scenario.
sensors and for developing integrated applications to
A. Another Morning for Binti
implement those scenarios. We believe capturing users’
context implicitly by their natural interaction with the
environment is a key issue for context awareness. Here natural Binti is a broker at the New York Stock Exchange. During
interaction means interacting with natural interfaces like her daily morning routine in the bathroom, while she is
everyday objects. A natural interface activates the cognitive brushing her teeth and putting on her make-up, her mirror
and cybernetic dynamics that people commonly experience in provides all the information she needs to start her day. During
real life, thus persuading them that they are not dealing with these activities she can watch her daily schedule. Besides that
abstract, digital media but with physical real objects. This she also sees what the weather will be like, so she can dress
results in a reduction of the cognitive load, thus increasing the fittingly. Furthermore she finds out if the subway, which she
amount of attention on content [28]. So our approach is to usually takes from her house to the Stock Exchange, is
make the artefact aware but not to make the user aware of this running properly. The subway is often delayed or closed for
fact by keeping the artefact’s primary role and interaction maintenance, in which case the mirror shows her an
technique intact. Users only use daily life objects in the way alternative route making sure that she does not have to rush to
they are used to. However our infrastructure captures these be on time for the morning breakfast meeting with her team.
natural interactions in order to generate user’s context.
B. Scenario Implementation: What To Sense and How
From our experience of development, we have identified the
essential steps that we followed for building context aware Once we have drawn the application scenario, then we have
applications. These are: to identify the context information and the capability
requirements of the artefacts that we can use to extract the
1) Fixing the goal and the target location of the application, required contexts. This scenario requires a smart mirror to be
that is where and what services to perform, where and what installed in the washroom that can capture users context
information to provide etc. It means drawing the application (specifically detecting user’s identity and user’s presence at
scenario. mirror’s location) and can present him/her with some useful
2) Identifying the context information that is required for information. We have deployed an application AwareMirror
achieving the goal or implementing the scenario. for the functionalities. In the following table we have
3) Identifying the source of the context information that is summarized what is required to be sensed for the proper
how to extract the context information from the target functionalities of the application and what sentient artifacts we
environment. This step can be further sub-divided to answer have used to capture them:
Table I
the following questions: Functionality mapping from requirements to sentient artefacts
a) What context sources are available in the
environment that can provide the required context? Scenario Required Augmented
b) How these sources are acquiring context? If sensors Functionality Capability Artefact
Used
are used then how to model the context from the raw
Display weather, Detecting user’s Mirror augmented
sensor data? schedule, and presence and with proximity
c) Who is responsible for modeling the context, the transportation position. sensors
application or the context source? information related
W to the user on the Identifying user Toothbrush as an
4) Identifying the suitable interaction technique for the end
A mirror authenticator of
users and providing a suitable way for reflecting end users’ S the user
preference. H Extracting Web service
R schedule, treated as virtual
O weather and sentient artefact
These steps are not mutually exclusive and may overlap each
O transport
other. The success of the application depends on satisfying M information
them with the highest degree of precision. However from our Displaying Mirror augmented
experience we have found that it is very difficult to satisfy extracted with acrylic
these steps. There are many issues that contribute to this information magic mirror
board
complexity thus limiting the success of context-aware
applications. In fact we cannot pick a single problem for
ubiPCMM 2005 113
AwareMirror [16] is a smart mirror installed in the is used for tracking the user’s schedule. We have used a
washroom as shown in Figure 1. In addition to its primary task dummy web service for the transportation information.
of reflecting someone’s image, it can also provide some useful
information related to the person who is using the mirror. It D. Functional View
uses two sentient artefacts: a mirror and a toothbrush. It also The application’s control flow can be stated as follows:
uses three web services to collect information about the users’
schedule, transportation information and weather forecasting. 1) During the system initialization, all the components are
When a toothbrush is used, its user is identified and the useful enumerated accordingly.
information related to the user is extracted from various web 2) The user initializes the system by providing necessary
services and is shown on the mirror. information.
3) If the user uses the toothbrush in the morning, while the
system is running, the user is identified by the system and
his/her preference information is loaded.
4) Accordingly the web services are contacted to collect the
information.
5) The system then renders the information to the Mirror.
6) The display has two modes, initially the mirror displays
very abstract information in appropriate positions within the
mirror, making sure that information does not cover the main
portion of the mirror.
7) The slider can be used to change the mode of the display.
By using the slider fabricated in the mirror, the user can
navigate to the detail mode that shows detailed information. In
this case the mirror actually turns into a mere display.
In the next section, we have discussed how these
Fig. 1. AwareMirror in Operation, the mirror displaying weather, functionalities are achieved by utilizing the two different
transportation and schedule information in abstract mode. frameworks.
C. Component View IV. UNDERLYING INFRASTRUCTURE
The following sentient artefacts and sensors have been used
It is obvious that we indeed need a stable platform that
in the AwareMirror application:
makes the application development simple and rapid by
automating many recurring tasks. We have developed two
1) AwareMirror: The mirror is constructed using an acrylic
infrastructures for providing the platform support to context-
magic mirror board and an ordinary computer monitor. The
aware application developers. These two frameworks attack
acrylic board is attached in front of the monitor and only
the problem in different manners. The first one “Bazaar” is a
bright colors from the display can penetrate the board. Two
centralized architecture that attempts to model the
proximity sensors have been embedded into the mirrors. These
environment in a bottom up approach exploiting self-
are used to infer users’ distance/position from the mirror.
descriptive objects, central repository and an inherent location
Furthermore a slide sensor is fabricated on the mirror that is
model. Bazaar is more motivated to provide a suitable world
used to navigate between the abstract and detail mode of the
model than providing support for contextual application.
displayed information.
However it is flexible enough to provide support for handling
2) Toothbrush: A Toothbrush is augmented with a two-axis
contextual information. The second one “Prottoy” is a
accelerometer. It can detect start and end of brushing. This is
distributed one in approach that attempts to model the
achieved by monitoring zero crossing through the
environment in a top down manner and primarily focuses on
differentiation between two latest measurements, i.e. from
providing generic access to the environment for the
plus to minus and vice versa. In addition an RFID tag is
developers. Prottoy is completely dedicated to provide a
fabricated into it, which can be used to detect the toothbrush in
seamless platform for context-aware applications.
a specific location. As a toothbrush is a highly personal
belonging, which is rarely shared with others, we can infer
We have implemented two versions of AwareMirror
that only its owner will use it. This fact we have utilized to
applications using these two frameworks. However before
infer the identification of a person (the owner) by the
giving our experience reports on the development, let us
toothbrush’s state of usage and location.
introduce the two architectures briefly and their integration
3) Web Services: For three categories of information we
with AwareMirror.
have used 3 distinct web services. Yahoo Japan has been used
for the weather forecasting. iCalendar based scheduler service
Fahim Kawsar, Kaori Fujinami, Tatsuo Nakajima 114
A. Bazaar application exists which aggregates information from the two
artefacts and makes this information available to the
Bazaar [17][18] is an infrastructure for modeling the AwareMirror Controller. Upon receiving appropriate context
physical world populated with various sentient artefacts. It information, this controller communicates with the web
provides an application developer with a shared physical space services to extract proper information related to the user and
information repository and with high level APIs to access present them on the mirror.
information and notification of interesting events. The details
of communication between the application space and the
physical space are hidden in Bazaar.
Currently, Bazaar manages and provides the following
types of information: 1) type, 2) location, 3) state-of-use, 4)
owner, 5) timestamp of detection, and 6) IP address/port
number and additional information to control a sentient
artefact. Since Bazaar manages these kinds of information as a
key-value pair, a new one can be easily added.
As can be seen in Figure 2 Bazaar consists of five major
parts. This includes, 1) an identifiable artefact that serves as a
source of low level contextual information and an actuator if Fig. 3. Implementation of AwareMirror using Bazaar
any, 2) an ID detector that provides the approximate location
of a detected artefact within its sensing range, 3) a shared So, here Bazaar acts as the physical space manager, it has the
information repository, 4) a contextual extraction framework snapshot (location, state of use, properties etc) of the self-
that interprets and makes the low level contextual information descriptive artefacts (AwareMirror, Toothbrush) available in
available to the application as highly abstract information, and the environment. The artefacts are identified by the ID
5) an application logic that a developer has to implement. detector component of Bazaar and accordingly their state of
Every artefact is identified using a tag like RFID, where its use and property information is aggregated in the central
related information and the location of the detector are linked repository. The consumer application AwareMirror controller
together. Application can receive artefact specific information exploits this information accordingly to render the output on
specified earlier by querying the shared repository. the mirror.
C. Prottoy
Prottoy [7][8] provides a generic interface to the
applications for interacting with sentient artefacts in a unified
way regardless of their type and properties Prottoy is
composed of few core components and few pluggable
components as shown in Figure 4.
Fig. 2. The architecture of Bazaar, demonstrating major components
B. Implementation of AwareMirror using Bazaar
Figure 3 shows the overall architecture of Aware Mirror on
top of Bazaar. AwareMirror, sentient toothbrush and an
application “AwareMirror Controller” are the components that Fig. 4. The architecture of Prottoy, demonstrating major components
are glued with Bazaar. On top of Bazaar, an integrated
ubiPCMM 2005 115
Core Framework Components: deals with both types of artefacts (physical like toothbrush
and virtual like web service) using the virtual artefact
1) Resource Manager: As the name implies, it simply interfaces. That means application creates instances of virtual
registers the properties, services and context information of artefact by providing the properties of the required artefact.
the artefacts. When application query comes via virtual Virtual artefact internally communicates with the resource
artefacts it responses accordingly manager to locate the AwareMirror, the toothbrush and the
web services. Once these are found, then the application
2) Artefact Wrapper: It encapsulates the sentient artefacts, subscribes to the toothbrush and AwareMirror for context
sensors, actuators or virtual sensors like weather services, information. When the application receives appropriate
scheduler etc. We have provided a template for the developers context information (interpreted by the interpreter), it
to wrap their device drivers or software into this component. communicates with the web services through the virtual
Developers provide the artefact property and location artefact and then actuates the rendering service of
information into this template during deployment. Artefact AwareMirror to display the information. Application uses the
wrapper has its own resource manager that can advertise its interpreter to interpret the context information received from
capabilities when the global resource manager is absent. In the artefacts to map into application specific values. Also the
addition it has a simple security measure using IP filtering, end users of the AwareMirror application can control the
that allows an artefact to control access to its service and participation of the artefacts by the preference manager
protect information from malicious applications. component.
3) Virtual Artefact: It abstracts the smart environments and
provides a unified view. Application constructs virtual artefact
instances from specific context or service requirement. Virtual
artefact communicates with the resource manager and if an
artefact is found virtual artefact communicates with that
artefact. If everything goes fine virtual artefact represents the
artefact in the application. Application can subscribe to this
artefact or can poll for contextual information. Application can
also execute services of the physical artefact. If storage is
enabled, virtual artefact creates storage in the application
layer. If proxy is enabled then the proxy service of virtual
artefact activates when the physical artefact is absent. The
proxy provides the application with a calculated low accurate
context value using the storage.
Components Pluggable to Application:
1) Interpreter: It maps the context value to the interpreted Fig. 5. Implementation of AwareMirror using AwareMirror
value. We argue that context interpretation is highly
application dependent as the same context can be interpreted Virtual artefact solely hides all the communication details
in different ways based on the application requirements. So we and isolates all access issues thus simplifying application
put this component in the application layer. development considerably.
2) Preference Manager: This component is designed for the E. Feature Comparison
end users of the applications, which are developed on top of
Prottoy. It provides the facility to enable or disable the Bazaar’s primary focus is on providing a world model in a
participation of any artefact of the environment in the transparent way centering on the sentient artefact. For that
application based on their preference. purpose Bazaar’s approach is different from Prottoy. As we
have shown Bazaar provides various information of the real
world beyond location to facilitate suitable modeling.
D. Implementation of AwareMirror using Prottoy However modeling the real world is slightly different than the
daily life context aware applications. Thus we felt for another
Figure 5 shows the architecture of AwareMirror using framework concretely focusing on the context aware
Prottoy. The AwareMirror and the toothbrush are wrapped applications and that's how Prottoy came into the scene. In the
into the artefact wrappers. The three web services are also following (Table II) we are providing a comparison of the
wrapped in three distinct wrappers. During the deployment, features between these two frameworks.
these artefacts communicate with the resource manager and
register themselves by providing their identities. Application
Fahim Kawsar, Kaori Fujinami, Tatsuo Nakajima 116
Table II We are not offering them new devices, rather augmenting their
Comparison between Bazaar and Prottoy daily life objects with sensing capability. As a result our
Feature Bazaar Prottoy
approach is well accepted by the end users. This acceptance
Motivation Providing a world Providing a seamless test was done for several applications that integrate multiple
model. platform for context- artefacts [7][16][17].
aware application
development Major Observations:
Approach Centralized and Distributed and top-
bottom-up. Artefact down, Application
itself informs/notifies queries artefact from
However, there are a few issues that we have identified
it’s information. information/event and which require further discussions. First and most
notification important is how can we make a generalized artefact that can
Location-Model Inherent location model No location model is be utilized in multiple scenarios. We must not develop
is present. present. Location application/scenario specific artefacts. Thus deploying
information is statically
artefacts with “one to many” attribute is a big challenge. From
updated.
Attribute Independence Complete. Application Partial. Application
our experience we have identified that it is very difficult to
does need to know any needs to know the generalize an artefacts capability for providing contextual
attribute about the artefacts capability to information as same artefact can be used in different
artefact. acquire the applications in different manner. Still now we could not come
information. up with a guideline that can help us to build a generalized
Security Support No support. Supported.
artefact.
Plug-n-Play Support No support. Full Plug-n-Play via the
Resource Manager
Event Notification Partly event based. Completely event The next issue is what types of sensors are suitable for an
Application needs to based. Application can artefact and where to fabricate it. From our experience we
query for events. be notified instantly have found that, to answer this question first we have to
about low-level events. observe the target environment and the available artefacts.
Context History No historical Context historical
Then we have to identify what information we are looking for
Support information is support is provided.
provided. and what sensors are appropriate for providing the
Proxy Support Not supported. Supported. information. Once this analysis is performed, then we can pick
Preference Support No support. Supported. appropriate artefact and can fabricate the sensors to them. In
most of the cases there are several alternatives, so we cannot
However, since Bazaar’s initial goal is to provide a real confine strict rules here. For example: In AwareMirror we
world model, some features like proxy, security or preference need to identify the presence of a person. For that we used the
support etc. should not be considered as evaluation criterions toothbrush augmented with an accelerometer and an RFID tag.
between the two frameworks. Of course both the architectures These two provides state of use and location. Thus combining
support all other standard requirements like context these information we can infer users’ presence. However we
specification, separation of concern, transparent can also use a shaver or a comb for the same purpose.
However, the reason for which we picked the toothbrush is
communication (spatial and temporal independence), constant
that toothbrush is a personal belonging that is rarely shared
availability etc.
than the other two. So such ad hoc reasoning may lead to the
selection of appropriate artefacts.
V. DISCUSSION
This section discusses about several issues. We have Final issue related to the sentient artefact is what and how
provided our experience on the basis of the performance, context information can be modeled. In our approach we have
advantages, and drawbacks of sentient artefacts and the two provided state-of-use, location and properties (owner, type,
middlewares. However one point to note here is that: though color etc.) of the artefact as the contextual information. The
we have discussed only one application in this paper, our device driver running on the sentient artefacts aggregates this
actual experience has been aggregated from various information. Also some of these are predefined or can be
applications [7][8][17][18][26] that we have developed. manually changed. However we are not claiming these are
sufficient. A new application may come up with a new
requirement. So, we need a guideline that will help us to
A. Sentient Artefact model the low-level sensor data into higher-level context. One
alternative can ontological based context modeling from raw
For developing context-aware application, drawing practical sensor data at individual artefact. Further more same sensor
real life scenario plays the key role. By augmenting data can be modeled in different manner for providing
appropriate artefacts with context sensing capability and by different context. We cannot yet confine any rule for
integrating these artefacts in one or more applications, we can prescribing such context calculation. Thus this issue poses a
eventually implement those scenarios. The major strength of great challenge for the researchers.
considering everyday object as context source is the natural
interaction. Users need not to learn any new technology; they
are using the artefacts in the same manner they are used to.
ubiPCMM 2005 117
B Bazaar specification to the developer during the development time to
Performance and Observation: reduce the probability of such errors.
C. Prottoy
The primary motivation behind the development of these
Performance and Observation:
frameworks was to provide a seamless platform for integrating
multiple sentient artefacts in context-aware applications.
To compensate some of these issues we have build the
Bazaar was our first attempt where we tried to model the real
world exploiting the features of sentient artefacts. Bazaar is second framework. Prottoy’s primary goal is to provide a
successful in hiding the heterogeneity among the artefacts and seamless platform for the application development exploiting
providing a shared repository to the applications. Application it’s distributed nature. This is because during application
developers can use the APIs provided by Bazaar to manipulate development we felt the difficulty of accessing/interfacing
the artefact in an intuitive manner. They don't need to consider with multiple sentient artefacts that have different access
the low level detail of communication or context management. protocols. If the application developer has to handle these
Very simple query semantics are provided by which heterogonous protocols, application development becomes
application can query specific property of the artefacts. Also really cumbersome. One of the major goals of Prottoy is to
these properties are implemented as a key-value pair, thus hide this heterogeneity by providing a unified interface.
adding new property to the artefacts is relatively simple. Application development on top of Prottoy is fairly simple. To
be specific, developers only provide the context to action
The shared repository can support multiple applications at mapping rules. Once the artefacts are wrapped in the artefact
the same time with current context information. So integrating wrapper template, applications can communicate with them in
multiple artefacts has no effect on the applications’ a unified way via the virtual artefact interface. Even the
performance. Thus application development process is very application does not need to know the artefact specific
simple, as we have seen in the AwareMirror application. Once information or even the resource manager. Such simplicity and
the appropriate artefact is deployed, the control flow of the isolation of the access issues make the application
application is clear and smooth due the high level abstraction
development very simple and rapid. Because of its distributed
support from Bazaar. Application only queries the repository
nature, scalability is not a problem. So any number of artefacts
to know the context information and actuate service
can be integrated in a seamless manner to several applications,
accordingly. So, application deals with the repository for
contextual information. Further more Bazaar removes the as long as the artefacts are wrapped in artefact wrapper.
typing conflict and attributes dependency. By providing a
bottom up hierarchy Bazaar relieves the developer from The virtual artefact and artefact Wrapper in conjunction
knowing and analyzing the artefacts’ classes and attributes in provide the generic interface for everything from a sentient
advance. Such simplicity makes Bazaar very flexible to artefact to a single sensor to a web service and to an actuator.
handle. The artefact wrapper provides the generalization that allows
the actual artefact to be replaced anytime with another one.
Drawbacks of Bazaar: The proxy service is a unique feature of Prottoy. Some of the
existing systems provide storage functionality at the artefact
However, Bazaar has some drawbacks also. The layer, our argument is that if the artefact itself is absent in that
centralized approach lacks from the fact of single point of case the storage is also absent. We think the best use of the
failure. Also because of the single-entity, context management context storage or history is the prediction of the context, so it
is difficult when artefacts increase thus paying a scalability should be somewhere that can be accessible when the artefact
penalty. Also Bazaar does not support plug-n-play features. is absent. Virtual artefact perfectly solves the problem by
Thus automatic join/leave of the artefact could not be hosting the storage and providing proxy service. While using
supported. As we have seen, in the AwareMirror application, Prottoy, application developers are free from network
Bazaar could not handle the virtual sentient artefacts like web management issues. The three-layer architecture separates the
services. So the application developer needs to manipulate
application from the physical space completely. Prottoy’s
them manually. This requirement actually was not identified
overall communication model is event based. All the events
when we deploy Bazaar, when our focus was on real world
are handled at real time with proper functioning. Prottoy
modeling. Also complex querying is not well supported in
Bazaar. provides both subscribe-publish and request-response event
models. Furthermore application code is completely
Though Bazaar isolates attribute based access to real world, independent of Prottoy.
from our experience we have identified that developers often
made some mistakes that are revealed at run time. For Prottoy’s distributed nature compensates the problems of
example, if a developer wants to use a “chair”, but by mistake centralized approach of Bazaar; also the resource manager
he/she types “chari”. Bazaar could not provide support for (both global and local) can handle the issue of plug-n-play
such errors. However, as we have mentioned in the future support. Further more in Prottoy any number of
work section that we are working on providing artefacts’ information/properties regarding artefact can be provided at
deployment time or later. Also Prottoy hides the difference
Fahim Kawsar, Kaori Fujinami, Tatsuo Nakajima 118
between the physical artefacts and virtual artefacts like web applications. We are trying to figure out more appropriate
service. Thus application developers can use them in a unified mechanism for the security measure. Regarding the proxy
manner. So Prottoy could handle some of the issues that service, currently we have used only the mean of the stored
Bazaar suffers from. values and the most recent value, but more sophisticated
technique may lead to better predictions. Also, what sort of
Drawbacks of Prottoy: applications are the appropriate clients for the proxy service
and to what extent? The preference component in the current
In spite of having these features, from our experience we version only provides a selection-based approach via a GUI.
have identified that Prottoy suffers from some problems that However, we don’t feel such GUI based preference is suitable
limit its performance. There is no inherent location model in for a context aware application. We are investigating to make
Prottoy; so artefacts location information cannot be updated this component more realistic and effective. One alternative is
dynamically. Currently this information is manually updated. preference by demonstration. We feel this preference policy is
One solution to this problem is adopting Bazaar’s location very important for the practical deployment of the context
detector component. Prottoy cannot advertise automatic aware applications.
contextual information like Bazaar. (The local resource
manager in Prottoy advertises artefacts capability) So Complex query support is another issue. Rule based
applications need to explicitly subscribe/query the artefacts technique has already in the literature but we believe such rule
information. This is a vital issue when we consider the real increases the cognitive burden of the developers. We are
world model. We need substantial level of information from currently working on a prototype physical space programming
the underlying environment beyond location. In this respect IDE [20]. We feel physical space IDE will reduce the
Bazaars performance is well justified. Also Prottoy’s complexity of queries. With such IDE the developer will be
functionality is vastly dependent on artefact wrapper. All automatically informed of available artefacts as he/she
sentient artefacts must need to be wrapped by artefact wrapper plugged into local environment thus isolating the necessity of
for Prottoy’s functionality. complex queries. We are investigating all these issues with
great interest and hope to come up with some interesting
Another issue is the query support. Currently Prottoy results soon.
provides only AND operation, that is artefacts properties and
capabilities can only be concatenated for artefact searching. VI. RELATED WORK
Prottoy cannot handle other combinations (like OR or XOR
etc.) However from the application development experience In this paper we have demonstrated our approach: sentient
we have figured out that our mere AND support is not enough. artefact as context source and middlewares for supporting
application development. So, in this section we have cited the
Prottoy attempts to provide a generic interface by hiding the related work from two points of view; firstly current trend
communication detail, however we cannot prescribe this related to context source and secondly existing context-aware
generalization for heterogeneous sensors. That means how can application frameworks.
we generalize the sensor specific APIs. We could not find any
suitable answer to this question. Also hiding communication A. From Context Source Point of View
from the applications does not always provide optimum
performance. For example how can we ensure such Most of the context aware projects use artefacts that are
communication in a generic way when conserving energy is a either traditional general purpose computing platforms ranging
major requirement (like to communicate with the artefacts from small handheld to large sized high end computers like
connected via wireless network)? Also the proxy and security ParcTabs, or dedicated artefacts designed for providing
component of Prottoy is immature in terms of functionalities. specific contextual information like Active Badge infrared
B. Future Work sensor. However our work is different from these two
approaches as we concretely focus on everyday objects for
In the previous sub-section we have described the problems context capturing without compromising their primary role.
that we are facing currently. Our current research Digital Décor [12] project augments traditional drawer and
investigations are challenging those issues. We are focusing coffee pots to use as a smart storage and a media for informal
on finding a suitable location model that can be adopted for communication respectively. However users are responsible
optimum functionality. The sentient artefact generalization for explicitly using these artefacts for their services. Also they
and context modeling is another big hurdle that we are trying only provide some services (searching, communicating with
to cope with. Several other features that we have introduced in people etc.) rather than any contextual information. Tangible
our two frameworks seek further clarification. For example, Bits [10] project attempts to bridge the physical world and
the access controls mechanism or proxy module’s logic. We virtual world by providing interactive surface, graspable
believe that the simple IP filtering technique used in the objects and ambient media. However such explicit dedicated
current Prottoy prototype is not suitable for all the interfaces violates natural interaction paradigm and natural
augmentation of conventional everyday objects.
ubiPCMM 2005 119
Recently one Internet service [27] provides similar notion addition, by introducing features of the artefact wrapper and
as ours by providing activity information of remote elderly by the virtual artefact, it provides the developer much more
capturing the state of coffee pot. Although they have control and flexibilities over the physical space and the
augmented everyday object the consumer of this information application development process. Bazaar’s information
is not the person who uses the system. It is a kind of repository actively performs the task of Device Agents and
monitoring system, which does not provide any contextual Active maps. However the other components of Bazaar further
information. Paradiso’s work [15] in wearable computing enhance the application development process.
arena matches our vision as he has exploited sensor-
augmented footwear to obtain contextual information. TEA Among the distributed ones, Context Toolkit [2] focuses on
[11][22] project attempts to embed various sensors to augment the component abstraction by providing the notion of Context
handheld devices to provide contextual information. However Widget and Context Aggregator. Discoverer manages these
they only focus on handhelds. MediaCup [21] projects and its components and additionally there is a Context Interpreter
succeeding SmartIts [29] provide insight into the component that performs the task of context interpretation.
augmentation of artefacts with sensing and processing. Our Context Toolkit provides very low-level abstraction.
work is greatly influenced by them and exploits the Aware Developer needs to provide the details about the context
Artefact model introduced in [11]. However our sentient source like location, port etc. Also, the application is
artefacts do not require any explicit interaction as MediaCup inherently dependent on the framework as the application is
or SmartIts based artefact requires. Our approach is to make tightly coupled with the architecture. That means application
artifact aware but not their user aware of this fact. Sentient needs to extend the architecture component and manipulate
artefacts are mere everyday artefacts without any noticeable accordingly. Such low level complexity makes application
feature. Users manipulate them in the natural way they are development very cumbersome. Bazaar approach is different
used to with. They don't need to do something explicitly to than Context Toolkit. Application can access the sentient
make something happen. This natural feature distinguishes our artefacts by the shared repository solely without concerning
work from other projects. any low level detail. Prottoy takes the Context Toolkit
architecture and generalizes it in a single component namely
B. From Middleware Point of View virtual artefact. Using Prottoy, the applications become
independent from the context infrastructure as the virtual
Currently there exist a number of context aware application artefact handles all the lower level tasks. Even the applications
frameworks in the literature. Usually, two approaches have do not need to know about the resource manager. Applications
been investigated for context-aware framework. One is the only use the virtual artefact as a generic component that
centralized server approach, like Schilits System [24] or provides all the infrastructure supports. Prottoy also hides the
Contextual Information Service [14] and the other is the context implementation from the context specification
distributed approach like Context Toolkit [2] or Speitzer’s
work [23]. Speitzer [23] proposed another distributed architecture
based on multicast communication, where context information
Centralized frameworks provide fair performance from the is multicast among the members of the multicast group.
point of view of context acquisition from the sensors and However the disadvantages of their approach are the
providing interpreted context via standard APIs. However they increasing computation and communications thus paying a
suffer from the fact of single point of failure and extensibility scalability penalty. For example an application within a
concerns. Also, collecting information from several sources in multicast group will receive context information even if it
one place makes the framework complex and maintenance does not request for it. The Stick-e Notes system [13] provides
becomes difficult. Bazaar is centered on centralized simple semantics for writing rules that specify what action to
repository. However, as the context sources are distributed perform based on the acquired context, mainly focusing on
among the sentient artefacts, the repository itself is not non-programmers to author context aware services. Both
responsible for modeling or generating the context. Prottoy’s Bazaar and Prottoy generalize this context acquisition from
approach is different from these as it completely distributes programmer’s point of view. Stick-e Notes can be thought of
the context sources into multiple artefact wrappers. as an application on top of Bazaar and Prottoy.
Application can communicate to specific context sources and
can interact with them via the virtual artefact seamlessly. Thus The Sentient Computing Project [1][20] utilizes Active Bat
scalability is well supported in Prottoy. location system to provide an architectural base for indoor
application exploiting a world model. The approach of Bazaar
Schilit’s System [25] deals with the context awareness by and Prottoy is different from the point of view that they offer
Device Agents that maintain the status and the capabilities of the applications to create a context aware environment by
the devices, User Agents that maintain the user policies and constructing an array of artefacts. It means Bazaar and Prottoy
Active Maps that maintain the location information of the specialize the world model creation by allowing developers to
devices and the users. Resource manager and preference construct the model as they want. HP Cool Town [5]
component in Prottoy provide the same functionalities. In encapsulates the world by providing web presence of place,
Fahim Kawsar, Kaori Fujinami, Tatsuo Nakajima 120
people and thing and allows interaction with web presence of [12] Itiro Siio, J. Rowan, N. Mima and E. Mynatt “Digital Decor: Augmented
Everyday Things,” Graphics Interface 2003
these entities primarily exploiting RF technology. Cool Town
[13] J. P. Brown “The Stick-e Document: A framework for creating context
supports only web based context aware applications where aware applications”, In the proceedings of the Electronic Publishing ’96
Bazaar and Prottoy support any classes of context aware [14] J. Pascoe “Adding generic Contextual Capabilities to Wearable
applications. Easy Living [4] focuses on an architecture that Computers ," In the Proceedings of the Second International Symposium
on Wearable Computers, Pages 129-138. IEEE Computer Society Press.
supports the coherent user experience as users interact with
Oct, 1998
variety of devices in a smart environment. Easy Living also [15] J. A. Paradiso, K. Hsiao and A. Benbasat “A. Interfacing the Foot:
utilizes the notion of world model. Open Agent architecture Apparatus and Applications,” CHI 2000 Extended Abstracts
[6] is an agent-based system, which exploits a centralized [16] K. Fujinami, F. Kawsar and T. Nakajima. “AwareMirror: A
Personalized Display using a Mirror” In the proceedings of International
black board to support the contextual behavior. In contrast to
Conference on Pervasive Computing (Pervasive 2005), May 2005
these systems, Bazaar and Prottoy provides a more generic [17] K. Fujinami and T. Nakajima. “Towards System Software for Physical
abstraction as developer has the flexibility to construct the Space Applications” In Proceedings of ACM Symposium on Applied
model by manipulating the sentient artefacts. Computing (SAC) 2005, March 2005.
[18] K. Fujinami, T. Yamabe, and T. Nakajima. “Bazaar: A Conceptual
Framework for Physical Space Applications.” In The 2nd International
VII. CONCLUSION Symposium on Ubiquitous Computing System (UCS2004), November
In this paper we have shared our experiences on building 2004.
[19] K. Fujinami, T. Kambe and Tatsuo Nakajima, “BASE: An Interactive
context-aware applications. We have demonstrated our Location-aware Development Tool for Sentient Environments”, In the
approach by a real life application development process and Poster Proceedings of the Seventh International Conference on
have discussed our findings and difficulties. Two different Ubiquitous Computing, UbiComp2005 (Submitted)
frameworks have also been presented that we have exploited [20] M. Addlesee, R Curwen, S. Hodges, J. Newman, P. Steggels, A. Ward
and A. Hooper. “Implementing a Sentient Computing System” Cover
for developing the applications. Context-Awareness is a key Feature in IEEE Computer, Vol. 34, No. 8, August 2001 pp 50-56
concept of future computing, we believe our experience report [21] M. Beigl, H.W. Gallerson and A. Schmidt “Media Cups: Experience
will help the developers to understand the problems for with design and use of Computer Augmented Everyday Objects,”
realizing some of the issues that are limiting the success of this Computer Networks, special Issue on Pervasive Computing, Mar ’2001
[22] M. Beigl, T. Zimmer and C. Decker. “A Location Model for
key concept. We hope the workshop will provide us with a Communicating and Processing of Context,” Personal and Ubiquitous
good opportunity to share our experiences, to discuss the Computing 6(5-6): 341-357, Dec, 2002
complex issues that mentioned in the paper with the [23] M. Spreitzer “Providing Location Information in a Ubiquitous
researchers and to identify the probable path towards Computing Environment”. In Proceedings of the fourteenth ACM
symposium on Operating System Principles, pages 270-283. ACM Press
resolution. 1993
[24] M. Weiser “The Computer for the 21st Century” Scientific American,
REFERENCES Vol. 265, No.3 1991
[25] N. B. Schilit. “System Architecture for Context Aware mobile
[1] A. Harter, A. Hopper and P. Steggles “The Anatomy of a Context-
Computing” PhD Dissertation, Columbia University New York, 1995
Aware Application,” In Mobile Computing and Networking, pages 59-
[26] T. Yamabe, K. Fujinami and T. Nakajima “Experiences with Building
68, 1999
Sentient Materials using various sensors,” In the Proceedings of the 4th
[2] A. K. Dey, G. Abowd and D. Salber “A Conceptual Framework and a
International Workshop on Smart Appliances and Wearable Computing
toolkit for supporting the rapid prototyping of context-aware
(IWSAWC), pages 445-450, Mar. 2004
applications,” Human-Computer Interaction, Vol-16 2001.
[27] www.mimamori.net
[3] A. Schmidt and V. Laerhoven. “How to build smart appliances,” IEEE
[28] www.naturalinteraction.org
Personal Communications, pages 66-71, 2001
[29] www.smart-its.org
[4] B. L. Brumittet, B. Meyers, J. Krumm, A. Kern and S. Shafer “Easy
Living: technologies for Intelligent Environments” In the proceedings of
the 2nd International Symposium on Handheld and Ubiquitous
Computing ‘2000
[5] C. Deborah and P. Debaty. “Creating Web representations for Places” In
Fahim Kawsar is a MS student in Computer Science
the Proceedings of the 2nd International Symposium on Handheld and
Department of Waseda University. His research interest
Ubiquitous Computing ‘2000.
includes Context-aware Computing, Human Computer
[6] C. Philip R. A. Cheyer, M. Wang and S. C. Baeg “An Open Agent
Interaction, Operating Systems and Web Programming.
Architecture,” In the proceedings of the AAAI Spring Symposium Series
on Software Agents,’94
[7] F. Kawsar, K. Fujinami and T Nakajima “Design and Implementation of
a Software Infrastructure for Integrating Sentient Artefacts,” The 2nd
Annual International Conference on Mobile and Ubiquitous Systems: Kaori Fujinami is an assistant professor of Department
Network and Service, July 2005 (To be published) of Computer Science in Waseda University. His research
[8] F. Kawsar, K. Fujinami and T Nakajima “Prottoy: A Middleware for interest includes Context-aware Computing, Physical
Sentient Environments,” The 2005 IFIP International Conference on Space Oriented Programming, and Information
Presentation.
Embedded And Ubiquitous Computing. Dec 2005, (Submitted)
[9] G.D. Abowd “Software Engineering Issues for Ubiquitous
Computing”, In Proceedings of the 21st International conference on Tatsuo Nakajima is a professor of Department of
Software Engineering, pages 75-84. IEEE Computer Society Press 1999. Computer Science in Waseda University. His interests are
[10] H. Ishii, and B. Ullmer “Tangible Bits: Towards Seamless Interfaces Operating Systems, Distributed Middleware, Real-time
between People, Bits and Atoms,” CHI 1997 Systems and Ubiquitous Computing.
[11] H.W. Gallerson, A. Schmidt and M. Beigl “Adding Some Smartness to
Devices and Everyday Things,” WMCSA 2000