context-aware computing - tu berlin · context-aware applications will be differantiates by their...

9
Context-Aware Computing Constantin Schmidt Computer Engineering Bachelor of Science Berlin Institute of Technology, Germany Email: [email protected] Abstract—Situations let people act accordingly to it. Smart- phones and other current devices can detect and react on such contextual data, because they have multiple sensors and enough processing performance to analyse that. Such behavior is called context-aware and a key to make devices faster and more efficient in everyday life. This paper describes what context and context-aware is and how applications can be differentiated by their possibilities. Single roles and steps from provisioning to dissemination are mentioned. The modeling and quality of contextual data and services are displayed and subdivided, due to their importance for context-awareness. Some current researches and services are mentioned to provide an insight into the status quo. Crucial questions about context-sensitive applications and their implementation will be discussed and illustrated. I. I NTRODUCTION The computer everyone knows was just a stationary gadget to ease work or manage a bulk of information - in the past. More and more it is used for the purpose of entertainment. If we enlarge our old imagination of a computer, it is a powerful companion in our pocket nowadays. It is a notebook, calendar and telephone and could be easily more than that. Often users complain about their computer 1 not doing what they want it to do or not being helpful by solving a situational problem because of the missing interpretation of the context. Context-Awareness is a possible key to decrease such deficit. Fig. 1 shows the workflow of context-aware entities very generally : Fig. 1. Workflow of context-awareness Gadgets sense their environment independent or with the aid of other nearby entities (PROVISIONING), differentiate what 1 The term is used to describe all types of gadgets like laptops, smartphones and other powerful hardware. data is currently interesting or reusable (REFINEMENT), model this data to an idea of context (ANALYSIS), process it (PROCESSING) and use the information for a context-aware application (OUTPUT) and/or store the data for a later usage (STORAGE) [1]. At first sight that sounds simple, but actually it is a very complex procedure to copy human ways of thinking. For a better understanding serves a fictitious sample of a context-aware scheduler called ZEITGEIST . Fig. 2 shows a possible interface of ZEITGEIST with two context-aware tasks: ”Date with Mary” choose restaurant (blue box) and ”book an interesting activity for me and my son” calculate list (orange box). Fig. 2. Interface of ZEITGEIST (schedular) This schedular does not seem to be different to others, but context-aware abilities do not have to be obvious. Such functionalities have to be embedded to existing frameworks, here a schedular. At this view, gray boxes display normal rhythms like working or free time. Certain boxes are emphasized (colored) adopted to the current situation. In ZEITGEIST , for example: a few moments ago the user of ZEITGEIST got a SMS send by the user’s wife: ”Hey Darling, our son is sick, see you at home, Mary”. ZEITGEIST detects the keywords: ”son” and ”sick” and the sender. If the schedular gets visible at his device, it is probably important to display all alarms and dates related to these keywords ”son”,”sick” and ”wife”. With the help of examples ZEITGEIST and its functionality will be explained more precisely in the following paper.

Upload: others

Post on 27-Jun-2020

4 views

Category:

Documents


0 download

TRANSCRIPT

Page 1: Context-Aware Computing - TU Berlin · context-aware applications will be differantiates by their facilities of action. As the biggest part of this paper, context provisioning will

Context-Aware ComputingConstantin Schmidt

Computer Engineering Bachelor of ScienceBerlin Institute of Technology, Germany

Email: [email protected]

Abstract—Situations let people act accordingly to it. Smart-phones and other current devices can detect and react onsuch contextual data, because they have multiple sensors andenough processing performance to analyse that. Such behavioris called context-aware and a key to make devices faster andmore efficient in everyday life. This paper describes what contextand context-aware is and how applications can be differentiatedby their possibilities. Single roles and steps from provisioningto dissemination are mentioned. The modeling and quality ofcontextual data and services are displayed and subdivided, due totheir importance for context-awareness. Some current researchesand services are mentioned to provide an insight into the statusquo. Crucial questions about context-sensitive applications andtheir implementation will be discussed and illustrated.

I. INTRODUCTION

The computer everyone knows was just a stationary gadgetto ease work or manage a bulk of information - in the past.More and more it is used for the purpose of entertainment. Ifwe enlarge our old imagination of a computer, it is a powerfulcompanion in our pocket nowadays. It is a notebook, calendarand telephone and could be easily more than that.

Often users complain about their computer1 not doingwhat they want it to do or not being helpful by solving asituational problem because of the missing interpretation ofthe context. Context-Awareness is a possible key to decreasesuch deficit. Fig. 1 shows the workflow of context-awareentities very generally :

REFINEMENT

OUTPUT

STORAGE

ANALYSIS

PROVISIONING

PROCESSING

Fig. 1. Workflow of context-awareness

Gadgets sense their environment independent or with the aidof other nearby entities (PROVISIONING), differentiate what

1The term is used to describe all types of gadgets like laptops, smartphonesand other powerful hardware.

data is currently interesting or reusable (REFINEMENT),model this data to an idea of context (ANALYSIS), process it(PROCESSING) and use the information for a context-awareapplication (OUTPUT) and/or store the data for a laterusage (STORAGE) [1]. At first sight that sounds simple, butactually it is a very complex procedure to copy human waysof thinking.

For a better understanding serves a fictitious sample ofa context-aware scheduler called ZEITGEIST . Fig. 2 showsa possible interface of ZEITGEIST with two context-awaretasks: ”Date with Mary” → choose restaurant (blue box) and”book an interesting activity for me and my son” → calculatelist (orange box).

Date (Mary)Choose rest. ...

book interestingactivity forme & my son

calculating...

0 AM

6 AM

12 AM

6 PM

12 PM

MONDAY TUESDAY WEDNESDAY THURSDAY FRIDAY SATURDAY SUNDAY

Date (Mary)Choose rest. ...

book interestingactivity forme & my son

calculating...

0 AM

6 AM

12 AM

6 PM

12 PM

ALARM

ALARM ALARM

ALARM ALARMALARM

Fig. 2. Interface of ZEITGEIST (schedular)

This schedular does not seem to be different to others, butcontext-aware abilities do not have to be obvious. Suchfunctionalities have to be embedded to existing frameworks,here a schedular. At this view, gray boxes display normalrhythms like working or free time. Certain boxes areemphasized (colored) adopted to the current situation.In ZEITGEIST , for example: a few moments ago the userof ZEITGEIST got a SMS send by the user’s wife: ”HeyDarling, our son is sick, see you at home, Mary”. ZEITGEISTdetects the keywords: ”son” and ”sick” and the sender. If theschedular gets visible at his device, it is probably importantto display all alarms and dates related to these keywords”son”,”sick” and ”wife”.With the help of examples ZEITGEIST and its functionalitywill be explained more precisely in the following paper.

Page 2: Context-Aware Computing - TU Berlin · context-aware applications will be differantiates by their facilities of action. As the biggest part of this paper, context provisioning will

It is to consider that context-aware computing is still a chancefor many companies to enter a virgin and nearly unexploitedmarket. Mostly Location-Based-Services dominate the offer.It’s clear as daylight: Location is one of the most importantinformation about the context and a good approach, but itshould not be the only data used.

The remainder of this paper is as follows: The first sectionis about the previous and current understanding of contextand context-awareness, especially for this paper. Afterwards,context-aware applications will be differantiates by theirfacilities of action. As the biggest part of this paper, contextprovisioning will be discussed. In it roles of context-awareservices and their functions are going to be subdivided andexplained, followed by mentioning the sources of contextualinformation and how to exploit them. Before showing qualityaspects of context and services, the modeling of situativedata is figured out. Both are necessary to define, handle andanalyse the environment and its changes, to react sensitive toit. How context and adapting services get send and received,is mentioned in the section of dissemination, followed bya short overview of current researches and services, toshow some capabilities of context-aware software and howdevelopment tools can ease the process of construction.Finally, this paper ends with a short overview and a look intothe future.

II. DEFINITIONS

In order to have a more specific idea of context and context-awareness, definitions in prior works are discussed.

A. Definition of context

An early definition of Schilit and Theimer [2] assumescontext to be information about the location, close people andand its changes. Such definition is very specific, claimed Dey.His more universal definition is: ”Context is any informationthat can be used to characterise the situation of an entity.An entity is a person, place, or object that is consideredrelevant to the interaction between a user and an application,including the user and applications themselves.” [3]. It aimsto be useful for classifying applications to be context-aware.Other authors use the traditional understanding of context ascertain circumstances and surrounding information and dividethem into classes [4] [5].

In this paper, context is used in the following way:Context is a combination of any information that can besensed or received by an entity which is useful to catch eventsand situations.

In ZEITGEIST , for example: Entered dates, meetings,appointments (hairdresser, doctor, ...) can be understood ascontext, because multiple information (time, location, activity,[duration, persons, costs, ...]) belong to one unity.

Context information should be flexible in size (amountof parameters) but should also contain enough data to besignificant.

B. Definition of context-awareness

Now it is necessary to determine how something can beaware of such context we have declared.The first context-aware implementations were developed by[6], collected locational information to improve efficiencyof systems. For instance: a telephone system which patchesthrough a call directly into a room where a requested personcurrently is. Since then, there have been many attemps to useand react to contextual information.

Dey explicitly discerns between presenting relevantinformation and providing services based on context ofa certain task [7]. He put much effort in understanding andusing context and collected synonymously used terms forcontext-awareness:

• adaptive [8]• reactive [9]• responsive [10]• situated [11]• context-sensitive [12]• environment-directed [13]

In this paper, context-awareness is used in the following way:Context-awareness is the ability of an entity to usefully adaptto or react based on context.In ZEITGEIST , for example: A user takes the train whencommuting to work or takes the car if the train delays toomuch. In ZEITGEIST it is entered to pick up his car fromrepairing next friday and ZEITGEIST checks if his train hasa delay. As long as no delay is registered he can sleep, but ifthe delay gets too big, ZEITGEIST calculates a new wake-uptime to get the bus.

III. CLASSIFICATION OF CONTEXT-AWARE SERVICES

Context-aware services can differ strongly, so it is necessaryto classify certain groups. These classes can be seperated bythe aspects of rights of execution and their further possibilities.

Schilit [14] differs between information and commandsand if they are manually or automatically presented /executed.

manual automaticinformation proximate selection, con-

textual informationautomatic contextual recon-figuration

command contextual commands context-triggered actions

TABLE ICLASSIFICATIONS OF CONTEXT-AWARE SERVICES BY SCHILIT [14]

Page 3: Context-Aware Computing - TU Berlin · context-aware applications will be differantiates by their facilities of action. As the biggest part of this paper, context provisioning will

Table I introduces certain classes:• Proximate Selection:

Presents information, which is selected considering somecontext to ease a choice.

• Automatic Contextual Reconfiguration:Current context automatically leads to new information.The entity creates new bindings to context resources.

• Contextual Information and Commands:Information and commands are shown / executed manu-ally and adapted to the current situation.

• Context-Triggered Actions:The current context leads an application to start a processautomatically.

In ZEITGEIST , for example:• Proximate Selection:

A user adds a note for a romantic date directly afterhis labor time and ZEITGEIST calculates a list ofrestaurants nearby his work. He can choose one of thesesuggestions and book it later.

• Automatic Contextual Reconfiguration:Same scenario, but he ”trusts” ZEITGEIST and hespecifies the restaurant to be an italian one. Now theprogram takes the decision.

• Contextual Information and Commands:Unfortunately his date canceled the date because of ill-ness (SMS / EMAIL). ZEITGEIST recognizes the senderand the cancelation. After reading the message it asks towhether cancel the reservation or not.

• Context-Triggered Actions:During such a romantic date ZEITGEIST mutes thesound for nonrelevant callers, but not for his babysitter.

Another idea is to digitally tag context for a later moment.Pascoe [15] developed similar classes like Schilit [14], butthey are additionally containing this tagging aspect. It is calledcontextual augmentation. To abstract all these points it is notimportant to differentiate between information and service.That will create following classes [7] :

• Presentation of information / services• Automatic execution of services• Tagging of context for later retrieval

In ZEITGEIST , for example: If the service in the restaurantwas horrible he can tag this and the rating of the restaurantwill sink. This will be also noted in the database whereZEITGEIST found the restaurant, so it is indirectly helpfulfor other people.

IV. PROVISIONING AND AGGREGATION

Context, context-awareness and features of context-awareapplications are defined. But where do these contextual datacome from? In Fig. 1 we introduced provisioning but nosources or possibilities to gather them.

A. Roles in a context-aware system

Context-aware systems are mostly organized by morethan one entity. Single devices have a limited input ofdata (built-in sensors). In addition, data have to be sensed,refined, compared, evaluated, processed, modeled, stored anddisseminated frequently. Simple portable devices maybe havethe computing power to do that, but not the capacity (e.g.battery) to do that all day long. A division of work allowsthe realization of context-aware systems.The roles will be allocated to the involved gadgets anddescribe the process of trade or exchange (Fig. 3).

PROVIDER CUSTOMER

CONTEXT

SERVICE

BROKER

? + $

Fig. 3. Roles in context-aware system [16]

Figure 3 differentiates between three roles: the PROVIDERsenses data (*) describing the context under certaincircumstances (location, time, ...). It sets properties of thesedata (usage rights, privacy status, ...) and sends these rawdata or even modeled [17] context data to a BROKER.In ZEITGEIST , for example: Some users add notes for anew event in town like a musical. Such information can betyped or a placard can be photographed to indicate interest.The note or photograph contains multiple information thatcan be combined to context.The BROKER gets these data, stores and processes them,due to this it is able to sell / exchange CONTEXT andSERVICE to a CUSTOMER. As a vendor of service he hasthe business to refine data (compare with other sources),model and process them. It has to take care of quality of itsstored contextual data and consequently its offered services.Aspects of quality and how they affect the cost of a serviceare mentioned more precisely in this paper later. It is possibleto subdivide the BROKER into a context broker and a brokerof context-aware service, but in most cases both roles arerealized in a single entity.In ZEITGEIST , for example: Those public information aresent to a provider which can analyze the picture and itscontext, adapt it with information from the internet. Now thismusical is entered in a database and can be used for otherusers / purposes.Finally the CUSTOMER sends his request (?) to the BROKER.If it gets his required CONTEXT or SERVICE, it may haveto pay some credits ($ ).In ZEITGEIST , for example: Another user is watching for

Page 4: Context-Aware Computing - TU Berlin · context-aware applications will be differantiates by their facilities of action. As the biggest part of this paper, context provisioning will

a gift for his wife. He added a note to the schedular tofind a gift for his wife. Because he is intimate to his wifeZEITGEIST has access to her ZEITGEIST -database. Inher interests it is marked that she likes musicals so hisZEITGEIST can propose him this new musical.

In context-aware systems these three roles do not haveto be divided. An example: A customer wants to have somecontext of a broker and has some interesting context forthe broker then the broker may not request credits. In thisexample there is no difference between a provider and acustomer. Analogies of such fusions of roles can be designedeasily.

As displayed in Fig. 4 there are three sources of datato analyze and process as context [18].

1) manual input (INPUT)2) automatic input (SENSORS)3) external input (CONNECTIONS)

SENSORS

F C

INPUT

CONNECTIONS

Fig. 4. Sources of contextual data

Manual input data is willfully given to the entity during aninstall or request. The user feeds the system with his data(name, date of birth, ...). That is the traditional way how anentity acquires information about the user and environment.In most cases it is very time-consuming and annoying. Anautomatic input seems to be the answer to such obstacles.Sensors can detect most of the physical changes aroundthem and, based on them, the system can fill up gaps of

information.In ZEITGEIST , for example: Concerning traffic and how itseffects on scheduling

1) manual input: The user found out / heard about anunheralded strike. Because this disturbs his schedule hetells ZEITGEIST about a total cancellation of the nexttrains and ZEITGEIST can react on it.

2) automatic input: Sensors recognize a heavy movementso the user is probably running and misses the train.

3) external input: The train has a delay and it is announcedon the internet.

Some data that sensors can detect:• location, velocity, acceleration, rotation• temperature, warming, cooling• light intensity• sounds, voices, speech• camera

If there remain ambiguities, the entity could contact externalnearby context-providers or context-broker to clear them.Finally unsolvable questions have to be answered by the user,if he is able to.In ZEITGEIST , for example: If no weather information areavailable (servers are down / no connection) then ZEITGEISTasks the user whether to choose an outdoor pavement cafe ora indoor cafe for break.To use data or service of a broker [1] the device needsmanual or automatic input data. Otherwise it would be ageneral service that is not context-aware.The cooperation of the database in the entity and an externaldatabase enlarges the diversity of possible context enormously.

There are three ways of accessing sources [19]1) direct (sensors / hardware)2) indirect (middle-ware which acquires data from sensors)3) external (context-server or nearby entities)

B. Modeling context

Gathered, stored or received information are the basementfor modeling context. Steps related to modeling are mentionedin Fig. 1 as REFINEMENT, ANALYSIS and PROCESSING.Data become manageable, useful, applicable, shareable andcrucial context to be used for the purpose of a context-awareservice.

In the following, some requirements and approaches ofmodeling are listed. The list is not complete or absolute, butit presents an overview about existing projects or trend-settingideas.

1) requirements: In order to model data to meaningfulcontext there are several requirements to consider [20]:distributed composition, partial validation, richness andquality of information, incompleteness and ambiguity, levelof formality, applicability to existing environments.

Page 5: Context-Aware Computing - TU Berlin · context-aware applications will be differantiates by their facilities of action. As the biggest part of this paper, context provisioning will

But one of the central requirement to modeling is reasoning.It is needed to reach a higher level of context information[21], allows consistency verification and the simulation andunderstanding of complex situations.A good approach of modeling reduces significantly thecomplexity of a context-aware application.

Following approaches aim different targets. Some arevery easy, good to understand, good to implement, able tocapture complex situations or rule-based. Each has its specialfield of duty, roles, components, tiers, pros ,cons, etc. .

2) Approaches:

• Key-value:Easiest way to model context. A contextual informationhas a possible key and an associated value.person (Name → Douglas Adams)person (Age → 42)

• Markup Scheme:Data is ordered in a hierarchy (XML / SGML)<?xml version=”1.0” encoding=”UTF-8”?><person><name>Douglas Adams</name><age>42</age></person>

• Graphical:The Unified Modeling Language (UML) suits to realizeand illustrate complex processes at the same time. Anexample for this approach is given by Bauer [22].

• Object Oriented:This implies the properties encapsulation and reusablity.Therefore applications stay extendable and flexible.Projects with several approaches can be found [23] [24][25].

• Logic Based:Formal rules of conditions and consequences describethe behaviour of a system. This is often very difficultbecause of the high amount of formality. Existentelaborations treat logical modeling of context [26][27], the usage of artificial intelligence [28] [29] or amultimedia system [30].

• Ontology Based:It contains concepts and interrelationships. Psychologicalapproaches [31] or context sharing ones [32] are con-ceived. It is one of the most powerful approaches andoften combined with others to hybrid modeling concepts[33].

All these approaches differ strongly, concerning the describedmodeling requirements and complexity. Some imply multipledemands and others maybe only one.

The diversity of services offered by an application affectsthe choice of one of these approaches. The determination ofthe distance between a user and the next restaurant might berealizable with key-values, but if he wants to get one of hisfavorite meals within the next 30 minutes and he wants topay less then a certain amount then it might be better to usea more complex approach.

To display a sample how to model contextual data,context modeling language (CML) is chosen because it isone of the most demonstrative [21] and high functional andapplicable models. Hence, in this paper the part of a possibleCML-model of ZEITGEIST is presented in Fig. 5:

User

Activity Train

Date

CarBank

works at

uses

has

drives

engaged in

[]

Legend (incomplete) Sensed fact type Profiled fact type Temporal fact type Key/uniqueness constraint Quality annotation

[ ]

Fig. 5. Model of context modeling language for ZEITGEIST

An oval describes an object type, in this example User,Date, Activity, Train, Car, Bank. Each of them may have arepresentation scheme, so users, trains, cars have an identity,Activity, Date have a name and so on. These boxes decribea certain role played by an object type. For example a User(ID) has a Date (name). Further roles can be added to Datefor example located at, accompanied by, during. If the currenttime intersects with the Time of a Date a User is engaged

Page 6: Context-Aware Computing - TU Berlin · context-aware applications will be differantiates by their facilities of action. As the biggest part of this paper, context provisioning will

in this Date. So, it is very easy to build a meaningful andpowerful model to describe in a simple manner a complexbehavior. Moreover, it can differentiate between sensed,static, profiled, derived, temporal and alternative fact types.Each fact type can be evaluated by properties of quality,like actuality or trustworthiness. This is necessary to decidehow to react on certain changes of context. A complete orworking ZEITGEIST CML-model would have much moreobject types, roles and fact types, because it has to senseall parts of everyday life (at home, en route, at work, freetime) to react based on context. A disadvantage of CML isthe ”flat” information model, where all context types are onequal terms [21]. Hybrid models, where it is combined withontology-based models are a possibility to solve that problem[34]. Ontology-based concepts offer more compatibility thenCML [35]. Nevertheless, CML stays a modeling approachthat is descriptive and easy to design and analyze [21]. Amodel of ZEITGEIST has to contain and manage followingobjects and information

• calendar• habbits• contacts• attitudes• interests

Some can be understood as an array of information (e.g.calendar) others as logical network of rules under certainconditions (e.g. habbits).Depending on the demands of the context-aware service,modeling is the most important point of all. Reasoning,linking, recombining and analyzing are the strength ofhuman brain. Modeling has the business to break downthese jobs to easy, useable and calculatable puzzle pieces.If that is achieved, the computer can use its unbelievableperformance to combine them and overview a bulk of dataand dependencies.

The existing variety of approaches has its right to exist,being specialized for certain implementations. But, despiteof the high amount, there is no approach generally able tomaster all the challenges of a universal model. Many paperstry to combine, expand, enrich or ease modeling languages.

The hybrid models seem to have the biggest functionalitywithout getting more complex. Hybrid fact-based / ontologicalmodels [34] ease the checking of consistency. Self-checkingmechanisms are important to evaluate built networks of factsand relations which are based on sensed data. Other hybridconcepts aim efficiency for mobile devices to save resources[36] [37].The multitude of requirements to an universal model turns thedevelopment likely into a search for a ”silver bullet”. If sucha model is found - and this should be possible - context-awareapplications get more and more easy to develop and into thefocus of software companies.

C. Quality of Context

The quality of context is likely the pivot of modeling contextand consequentially context-awareness. If the information isinprecise or blurry the results can be senseless. To analyzeand evaluate the grade of context it is necessary to differentiatethree categories of quality [1].

• QoC - Quality of Context (Quality of information [38])• QoS - Quality of Service• QoD - Quality of Device

Quality of Context is the grade of sensed / received informa-tion, due the following factors [1]:

• Precision: Describes the accuracy of information• Correctness: Implies the chance of true and real data• Trustworthiness: Rates the truth of data from certain

entities• Resolution: Involves the raster of measurement results or

amount of sensing entities• Actuality: Considers the time and accordingly a possible

change of an information

In ZEITGEIST , for example:• Precision: A user adds a note of a musical called ”Foo”

in May, because he heard of it. But actually it ends on1st of May. This information has to be refined by othersources to offer it to a broker.

• Correctness: Maybe he made a typo and typed ”Fool”.• Trustworthiness: He has only heard of a musical, so it

does not mean that the information is right.• Actuality: A user reads about the musical on an old

placard and ignores the year (last one) and enters themusical for this year.

Some applications may need further factors to qualifyinformation, but this is a very general and often applicableset of parameters to evaluate the Quality of Context.

There are two classes of quality of context: static anddynamic [17]. Static context needs no regular updates. Suchcontextual data are entered once and stay true and have noloss of quality. Dynamic context in contrast loses its quality.So correctness, actuality and trustworthiness suffer over timeand have to be updated frequently.Accessing a service that is provided by other entities Qualityof Service and Quality of Device are going to play anadditional role. Quality of Service contains factors likeQuality of Context does. It describes the grade of serviceindependently from Quality of Context. Quality of Devicedescribes how exact hardware can capture data. The grade ofhardware (like sensors of entities) gathering and transmittinginformation to a device, contains a reduced set of theseparameters of quality: Precision, Correctness and Resolution.

D. Dissemination

Modeling makes it possible to send and understand datain a context-aware system. Quality of context and service

Page 7: Context-Aware Computing - TU Berlin · context-aware applications will be differantiates by their facilities of action. As the biggest part of this paper, context provisioning will

determines when it is time to update contextual data.Fig. 6 shows how context-aware service providers can interactwith customers.

CUSTOMER

PUSH-MODE

SEND DATA

REQUEST DATA

PULL-MODE

SUBSCRIBERS

STORED DATA

BROKER

Fig. 6. Interaction between broker and customer

Two modes have to be discerned [1] in it:

• PULL-MODE: A customer wants to use a service andhas to request the service provider / broker.In ZEITGEIST , for example: Last evening, a usertalked to his wife about going to the cinema to watch arecommended movie. He enters this information(”cinemawith my wife”) into a specific frame of time insidethe schedular. So ZEITGEIST searches a currentlyrecommended movie in a nearby cinema and enters thebest fitting result into his schedular.

• PUSH-MODE: A service has a list of subscribers. If thestored context changes decisively for certain subscribers[17], the broker sends an update.In ZEITGEIST , for example: The wife has never enteredanything about going to cinema, but ZEITGEISTcontacts her and proposes this movie show, because herhusband involved her in his ZEITGEIST . If she acceptsthis date, ZEITGEIST pushes the fixed date to his device.

The more updates of context data are sent (push) or requested(pull) the higher is the quality of it. But a very frequentpolling is a waste of energy and bandwidth [1]. Costs ofservice rise with the demand on quality. So it is important tohave economic strategies to save resources, performance andquality. Brokers have to be proactive to update their contextualdata and the caches of customers (subscribers) to guarantee ahomogeneous grade of service.

V. EXAMPLES FOR CONTEXT-AWARE SERVICES

MarcoPolo was developed in 2007 [39]. It is a servicefor Mac OS X that changes system settings for highercomfort based on your location and your surroundingand its changes (Fig. 7). Some supported features: Audiooutput, connections, ambient light level, power sourceand other things can be controlled. Actions triggered bycontext and its changes:default printer, firewall rules, chatstatus, start and quit applications, muting and unmuting, etc. .

Fig. 7. MarcoPolo: Definition of some rules

Context-Aware Mobility Solution - Cisco (2008) [40]is an API for developing context-aware systems. It isspecialized for tasks like Zone or inventory management,Asset tracking, Condition tracking, Presence, Networklocation services. Context-awareness is used to do all thatoperations more intelligent and efficient. Such systems canbe used in hospitals and logistic enterprises, for instance, totrack, find and control entities and activities.Another context-aware application is Google AdSense /AdWords adapts the advertisement to the context of anadvertised webpage, search, mail, etc. .A further location-based service is Foursquare (Fig.8) [44].

Fig. 8. Foursquare: Displays friends and their position [45]

It is a mobile geosocial network service where users tagcertain places and rate them. They can use their accountsof other social networks to be in contact with their friends.Foursquare updates their position, status, actions and so on.On the one hand it is informative and useful, on the otherhand it is attractive to young people being constructed like agame, for example getting so called ”Badges” the more theyrate.

Page 8: Context-Aware Computing - TU Berlin · context-aware applications will be differantiates by their facilities of action. As the biggest part of this paper, context provisioning will

A similar application is Google Latitude [46] that enablesfriends to see your position, but the precision is defined bythe user.Nokia Situations (2010) [41]. It senses data from schedular,location, connectivity and react on it: Change Ringtones,Answer missed calls with SMS, Save Power, Change UI theme/ Wallpaper, Open a Web bookmark or application. Thisapplication has some similarities to ZEITGEIST , like theschedular and its effect to ringtones.A very interesting project is MUSIC-Middleware (2010)[42]. Its target is a cross-platform middleware especially formobile entities. It carries all the stuff like gathering andsupplying context to ease and unify the development ofcontext-aware applications. The concentration on context-aware apps for mobile devices is a contemporary themebecause context-awareness and ubiquitous computing aretwo things that start to belong together more and more. Inaddition, the amount of sold smartphones currently increasesextremely fast [43].

VI. CONCLUSION

Despite the effort that was spent to context-awareness, itis rarely used. Most services are location-based. The reasonfor this is maybe the complexity to sense a situation and toput it in a model that is analyzable. If context is capturedright, there remains the next problem: the device has to reactreasonable to the special situation. But who defines what is”reasonable”? So the user has to define how his device shouldreact and react not. Hence it is necessary that applicationslearn what its user likes, how he behaves and how he wantsit to act. Very important is a certain mutual trust concerningprivacy and the rights of the application. If the user cannot trust his assistant gadget then he will disable all thesecontext-aware functions.

At this point it is time to summerize disadvantages andbenefits of context-aware applications and find ways to avoiddrawbacks.

The biggest problem is privacy. It is not possible toask the user if data can be sent or not every time. Thatwould be annoying. But on the other side, the computercan not publish everything without any request. To managethat, sensing has to detect rather an information is public orprivate.In ZEITGEIST , for example: If you take a picture on apublic street then the status of privacy can be set to probablypublic. Following actions of the user can be used for a moreprecise determination.But if you take a photograph at home, it is only for privateuse. Again, actions of the user (concerning this picture) canchange its status.

Another issue is the usage of energy. Sensors have tobe active for the most of time. GPS, of all sensors, wastes

much of battery and is used for the most purposes. So it is upto research for more efficient technologies and algorithms. Itis important to use the method that returns a sufficient valueand not the most accurate. In most cases, such strategiessave energy. Another fact is that most applications need apermanent connection. Due to this, a wide and sufficientsignal is important. Fortunately the current developmentmoves towards such conditions and offers a high bandwidth.And total connectivity is not important at everytime, becausecaching and evaluating strategies allow a usage even withouta stable connection.

Advantages of context-aware computing are highly visible.Non-ambiguous or static facts do not have to be entered byusers.In ZEITGEIST , for example: If a user told ZEITGEIST tobook a concert for him and his wife then he does not have toenter his name and his bank, account number, prize and soon.Those benefits increase the whole processing time. Fig. 9displays the human as the bottleneck of processing time,because in comparison to an operation and its input byprocessor, humans are very slow.

PROCESSING TIME

NORMAL PROCESSHUMAN INPUTCONTEXT AWARE INPUT

Fig. 9. Human is the bottleneck of processing time

The speed of brain is indeed very fast, but typed, writtenor spoken commands or information are not. So if context-awareness can decrease the amount of such input phases,efficiency of work will raise.The next step into the direction of more context-awareapplications and services is to develop a multifunctionalmodeling language. It is necessary to have an interoperable

Page 9: Context-Aware Computing - TU Berlin · context-aware applications will be differantiates by their facilities of action. As the biggest part of this paper, context provisioning will

model to synthesize sensed data, relationships and properties.Currently, more an more companies try to implement context-aware features to improve comfort and raise productivity.Maybe a system like ZEITGEIST is available in the next fewyears.

REFERENCES

[1] T. Buchholz, A. Kupper, and M. Schiffers, “Quality of context: Whatit is and why we need it,” in Proceedings of the Workshop of the HPOpenView University Association. Citeseer, 2003.

[2] B. Schilit and M. Theimer, “Disseminating active map information tomobile hosts,” Network, IEEE, vol. 8, no. 5, pp. 22 –32, 1994.

[3] A. K. Dey, “Understanding and using context,” Personal UbiquitousComput., vol. 5, pp. 4–7, January 2001. [Online]. Available:http://dx.doi.org/10.1007/s007790170019

[4] T. Rodden, K. Cheverst, K. Davies, and A. Dix, “Exploiting contextin HCI design for mobile systems,” in Workshop on Human ComputerInteraction with Mobile Devices. Citeseer, 1998, pp. 21–22.

[5] P. Brown, “The stick-e document: a framework for creating context-aware applications,” ELECTRONIC PUBLISHING-CHICHESTER-,vol. 8, pp. 259–272, 1995.

[6] R. Want, A. Hopper, V. Falcao, and J. Gibbons, “The active badgelocation system,” ACM Transactions on Information Systems (TOIS),vol. 10, no. 1, pp. 91–102, 1992.

[7] A. Dey and G. Abowd, “Towards a better understanding of context andcontext-awareness,” in CHI 2000 workshop on the what, who, where,when, and how of context-awareness, vol. 4. Citeseer, 2000, pp. 1–6.

[8] M. Brown, “Supporting user mobility,” in International Federation forInformation Processing. Citeseer, 1996.

[9] J. Cooperstock, K. Tanikoshi, G. Beirne, T. Narine, and W. Bux-ton, “Evolution of a reactive environment,” in Proceedings of theSIGCHI conference on Human factors in computing systems. ACMPress/Addison-Wesley Publishing Co., 1995, pp. 170–177.

[10] S. Elrod, G. Hall, R. Costanza, M. Dixon, and J. Des Rivieres, “Respon-sive office environments,” Communications of the ACM, vol. 36, no. 7,pp. 84–85, 1993.

[11] R. Hull, P. Neaves, and J. Bedford-Roberts, “Towards situated comput-ing,” in Wearable Computers, 1997. Digest of Papers., First InternationalSymposium on. IEEE, 2002, pp. 146–153.

[12] J. Rekimoto, Y. Ayatsuka, and K. Hayashi, “Augment-able reality: Sit-uated communication through physical and digital spaces,” in WearableComputers, 1998. Digest of Papers. Second International Symposiumon. IEEE, 2002, pp. 68–75.

[13] S. Fickas, G. Kortuem, and Z. Segall, “Software organization fordynamic and adaptable wearable systems,” in Wearable Computers,1997. Digest of Papers., First International Symposium on. IEEE,2002, pp. 56–63.

[14] B. Schilit, N. Adams, and R. Want, “Context-aware computing applica-tions,” in Mobile Computing Systems and Applications, 1994. WMCSA1994. First Workshop on. IEEE, 2008, pp. 85–90.

[15] J. Pascoe, “Adding generic contextual capabilities to wearable comput-ers,” in Wearable Computers, 1998. Digest of Papers. Second Interna-tional Symposium on. IEEE, 2002, pp. 92–99.

[16] I. Hochstatter, A. Kupper, M. Schiffers, and L. Kothner, “ContextProvisioning In Cellular Networks,” in Proceedings of 8th InternationalWorkshop on Mobile Multimedia Communications, Munchen. Citeseer,2003.

[17] C. Mannweiler, A. Klein, J. Schneider, and H. Schotten, “Context-Awareness for Heterogeneous Access Management,” Advances in RadioScience (ARS)-Klein-heubacher Berichte, 2009.

[18] H. Chen, “An intelligent broker architecture for context-aware systems,”PhD proposal in Computer Science, University of Maryland, BaltimoreCounty, USA, 2003.

[19] C. Mannweiler, A. Klein, J. Schneider, and H. Schotten, “Exploitinguser and network context for intelligent radio network access,” inUltra Modern Telecommunications & Workshops, 2009. ICUMT’09.International Conference on. IEEE, 2009, pp. 1–6.

[20] T. Strang and C. Linnhoff-Popien, “A context modeling survey,” inWorkshop on Advanced Context Modelling, Reasoning and Managementas part of UbiComp. Citeseer, 2004.

[21] C. Bettini, O. Brdiczka, K. Henricksen, J. Indulska, D. Nicklas, A. Ran-ganathan, and D. Riboni, “A survey of context modelling and reasoningtechniques,” Pervasive and Mobile Computing, vol. 6, no. 2, pp. 161–180, 2010.

[22] J. Bauer, R. Kutsche, and R. Ehrmanntraut, “Identification and modelingof contexts for different information scenarios in air traffic,” TechnischeUniversitat Berlin, Diplomarbeit, 2003.

[23] K. Cheverst, K. Mitchell, and N. Davies, “Design of an object modelfor a context sensitive tourist GUIDE,” Computers & Graphics, vol. 23,no. 6, pp. 883–891, 1999.

[24] A. Schmidt and K. Van Laerhoven, “How to build smart appliances?”Personal Communications, IEEE, vol. 8, no. 4, pp. 66–71, 2002.

[25] B. Bouzy and T. Cazenave, “Using the object oriented paradigm tomodel context in computer go,” in Proceedings of the First Internationaland Interdisciplinary Conference on Modeling and Using Context.Citeseer, 1997.

[26] C. Ghidini and F. Giunchiglia, “Local models semantics, or contextualreasoning= locality+ compatibility,” Artificial intelligence, vol. 127,no. 2, pp. 221–259, 2001.

[27] F. Giunchiglia, “Contextual reasoning. Epistemologica, 16: 345-364,”Also IRST-Technical Report 9211-20, IRST, Trento, Italy, Tech. Rep.,1993.

[28] J. McCarthy, “Notes on formalizing context,” in International JointConference on Artificial Intelligence, vol. 13. Citeseer, 1993, pp. 555–555.

[29] J. McCarthy and S. Buvac, “Formalizing context (expanded notes),”Computing natural language, vol. 81, pp. 13–50, 1998.

[30] J. Bacon, J. Bates, and D. Halls, “Location-oriented multimedia,”Personal Communications, IEEE, vol. 4, no. 5, pp. 48–57, 2002.

[31] P. Ozturk and A. Aamodt, “Towards a model of context for case-based diagnostic problem solving,” in Context-97; Proceedings of theinterdisciplinary conference on modeling and using context. Citeseer,pp. 198–208.

[32] T. Strang and C. Linnhoff-Popien, “Service interoperability on contextlevel in ubiquitous computing environments,” in Intl. Conf. on Advancesin Infrastructure for Electronic Business, Education, Science, Medicine,and Mobile Technologies on the Internet (SSGRR2003w). Citeseer.

[33] Z. Yu, X. Zhou, D. Zhang, C. Chin, X. Wang, and J. Men, “Supportingcontext-aware media recommendations for smart phones,” IEEE Perva-sive Computing, pp. 68–75, 2006.

[34] K. Henricksen, S. Livingstone, and J. Indulska, “Towards a hybridapproach to context modelling, reasoning and interoperation,” in Pro-ceedings of the First International Workshop on Advanced ContextModeling, Reasoning, and Management. Citeseer, 2004, pp. 54–61.

[35] T. Strang, C. Linnhoff-Popien, and K. Frank, “CoOL: A context on-tology language to enable contextual interoperability,” in DistributedApplications and Interoperable Systems. Springer, 2003, pp. 236–247.

[36] C. Bettini, D. Maggiorini, and D. Riboni, “Distributed context monitor-ing for the adaptation of continuous services,” World Wide Web, vol. 10,no. 4, pp. 503–528, 2007.

[37] A. Agostini, C. Bettini, and D. Riboni, “Experience report: ontologicalreasoning for context-aware Internet services,” in Pervasive Comput-ing and Communications Workshops, 2006. PerCom Workshops 2006.Fourth Annual IEEE International Conference on. IEEE, 2006, pp.5–12.

[38] M. Ebling, G. Hunt, and H. Lei, “Issues for context services for pervasivecomputing,” in Middleware 2001 Workshop on Middleware for MobileComputing, Heidelberg, 2001.

[39] D. Symonds, “MarcoPolo - Context-aware computing for Mac OS X,”2007, http://www.symonds.id.au/marcopolo/.

[40] C. Systems, “Cisco Systems - Enabling Context-Aware Mobility,” 2008,http://www.cisco.com/en/US/netsol/ns788/index.html.

[41] N. B. Labs, “Nokia Situations - Nokia,” 2010, http://betalabs.nokia.com/apps/nokia-situations.

[42] M. consortium, “MUSIC - Context-aware self-adaptive platform formobile applications,” 2010, http://www.ist-music.eu/MUSIC.

[43] H. Verkasalo, “Contextual patterns in mobile service usage,” Personaland Ubiquitous Computing, vol. 13, no. 5, pp. 331–342, 2009.

[44] Foursquare, “Foursquare,” 2009, http://foursquare.com/about.[45] Dusan, “Foursquare - picture of the friends inter-

face,” 2010, http://www.intomobile.com/2010/01/04/foursquare-now-available-for-palm-pre-too/.

[46] Google, “Google Latitude,” 2009, http://www.google.com/intl/en us/latitude/intro.html.