Toolkit for Context-Aware Applications

Do you need this or any other assignment done for you from scratch?
We have qualified writers to help you.
We assure you a quality paper that is 100% free from plagiarism and AI.
You can choose either format of your choice ( Apa, Mla, Havard, Chicago, or any other)

NB: We do not resell your papers. Upon ordering, we do an original paper exclusively for you.

NB: All your data is kept safe from the public.

Click Here To Order Now!

Introduction

Behaviour enhancement in computer applications with respect to their operating environment is one way in which to boost their productivity. Behaviour enhancement is achievable through feeding computer applications with real time information on the context in which they are being made use of. This real time information enlightens the computer applications on changes in its operating environment prompting it to make intelligent behavioural adjustments that ensure that its users get results that are more accurate hence the boost in productivity. This real time information supplied to the computer application is the characteristics that define the situation in which the computer application, its user and the surrounding environment are interacting (Dey and Abowd, n.d. p.2). Context-aware applications promise behaviour enhancement capabilities, however, according to Dey and Abowd (n.d., p.2) the realization is still a challenge due to slowed down research in the field due to three main problems.

Discussion

Prerequisites

Problems slowing down research in context-aware applications

One of these problems is that the field lacks an accepted definition of what a context is (Dey and Abowd, n.d. p.2). Another problem as given by Dey and Abowd (n.d, p.2) is that the field lacks conceptual models and methods, which these two authors feel are critical in driving the design of the applications (Dey and Abowd, n.d. p.2). Another problem as given by Dey and Abowd (n.d, p.2) is that the field lacks tools that can jump-start the creation of context-aware applications. In discussing a toolkit for context-aware applications there must exist a known definition of what a context is and in addition a laid down conceptual framework for driving the design of these applications. In this research paper, the definition of context that is given by Dey and Abowd is adopted. Similarly, this research paper adopts the conceptual framework laid down by Dey and Abowd for handling contexts.

Functional challenges in the design of context-aware applications

Before proceeding to discuss context toolkit we must have a look at four functional challenges that need to be addressed in the design of context-aware applications. One such functional challenge as given by Coulouris, Dollimore and Kindberg is Integration of idiosyncratic sensors (2005, p.684). The issue in this functional challenge is the need for specialized knowledge to deploy sensors, which are basic components of context-aware applications that are characterized with an unusual construction and programming interface (Coulouris, Dollimore and Kindberg, 2005, p.684-p.685). Another functional challenge that has to be addressed in the design of context-aware applications is abstracting from sensor data (Coulouris, Dollimore and Kindberg, 2005, p.685). A context-aware application can consist of varying sensors that output different types of data for a given attribute an undesirable outcome, thus, there is need for an attribute to be defined so that even its output is well defined and structured.

Another functional challenge that has to be overcome in the design of context-aware applications is the need for combination of sensor outputs. Particular tasks handled by context-aware applications require that individual sensor outputs from the different sensors making the application be combined through the process of sensor fusion so that the accuracy and reliability of their results are enhanced (Coulouris, Dollimore and Kindberg, 2005, p.685). The final challenge that has to be overcome in the design of context-aware applications as given by Coulouris, Dollimore and Kindberg is context dynamism. The issue in this challenge is that context-aware applications have to be dynamic as the context in which they operate in meaning that they have to respond to changes that take place in these contexts (Coulouris, Dollimore and Kindberg, 2005, p.685).

Context and Conceptual frame work for handling context

Context

As pointed out above the definition of context adopted in this research paper is that given by Dey and Abowd where a context is taken as any information that can characterize the situation in which a context-aware application, its user and operating environment are interacting (Dey and Abowd, n.d., p.11). The information can be the state, location, identification and activity of a particular people, group and object (Salba, Dey and Abowd, 1999, p.1).

Context information according to Dey and Abowd can be broadly categorized into four categories, namely, identity, location status and time (Dey and Abowd, n.d., p.12). The identity category of context information captures unique identities assigned to the entities that make up a context, namely, people, places and things. The location category captures dimensions that can be used to pin point the exact physical location of an entity. The status category of context information captures built-in characteristics of an entity that enable it to be sensed by a context-aware application. Time is a category of context information that enables the characterization of a situation with respect to context-aware application scenarios.

Conceptual framework for handling context

As pointed out above the conceptual framework for handling context adopted in this research paper is that given by Dey and Abowd in which five distinct functions are performed by five distinct components, namely, context widgets, interpreters, aggregators, services and discoverers (Dey and Abowd, n.d., p.23). The first function identified in the framework is acquiring context information. According to the framework, this function is carried out by the context widget component of a context-aware application. The second function identified in the framework is abstraction of context information. According to the framework, this function is carried out by the interpreter component of a context-aware application. The third function identified in the framework is gathering context information for a given entity for easier access by a context-aware application. According to the framework, this function is carried out by the aggregator component of a context-aware application.

The fourth function in the framework is behaviour execution based on acquired context information, a function, which according to the framework, is carried out by the service component of context-aware applications. The fifth function in the framework is determining the capabilities of the operating environment and taking advantage of them, a function, which according to the framework is carried out by the service component of a context-aware application. In this framework the relationship that exists between a context widget and another context widget, application or interpreter is such that it is a supplier of resources such as context information on changes in the operating environment (Dey and Abowd, n.d., p.23).

According to the framework, the relationship that exists between aggregators, applications and context widgets is such that aggregators act as bridges between applications and context widgets., applications, context widgets and aggregators can request the service of an interpreter at any given instance (Dey and Abowd, n.d., p.23). Additionally according to this framework, applications trigger services whereas discoverers communicate with the other four components: a process that is characterized with acquisition of context information from context widgets, interpreters and aggregators and providence of this information to applications through notifications or queries (Dey and Abowd, n.d., p.23).

The Context toolkit

Overview of the toolkit

The context toolkit is according to Day and Abowd (n.d., p. 27) the implementation of the conceptual framework for handling context such as the one discussed above. It is a platform that facilitates easy construction and deployment of context-aware applications (Context Toolkit Home, 2003, p.2). There are six services offered by context toolkit. These are sensor encapsulation, data access, context data abstraction, context data sharing, context data storage and access sharing (Dey, 2002, p.3). According to the conceptual framework adopted by this research paper for handling context these services are performed by five components of a context-aware application. These are context widgets, interpreters, aggregators, services and discoverers.

Components of the toolkit

Context widgets

The fundamental building blocks of context toolkits are context widgets, which are software components of context-aware applications that acquire context information from the applications operating environment (Salba, Dey and Abowd, 1999, p.2). The acquisition of context information is achievable through a group of devices known as sensors, which in their way not only measure the physical parameters in an application’s operating environment but additionally supply their findings to software in a non conflicting manner (Coulouris, Dollimore and Kindberg, 2005, p.663). Example of sensors can include active budges and floor sensors. Context widgets provide context-aware applications with a number of benefits.

The first benefit is that they assimilate the complexity of sensors and in return provide the application with data that is easier to comprehend. The second benefit provided by context widgets to a context-aware application is the abstraction of context information in a manner that suits the configuration done on context-aware application. Thus, a context aware application can be supplied with data that is discrete and not a stream of data. Basic programming of context widgets ensures that they can determine and prioritize the needs of an application and therefore provide abstracted information accordingly. The third benefit provided by context widgets is their provision of context sensing building blocks that are reusable and customizable. Thus, the functionality of a given context widget that is created for a given purpose is extended e.g. widgets for providing context information regarding location can be used with applications spanning typical office space to applications that span more broader geographical spaces such as tour guides.

Interpreter

Another component that is created as part of the context toolkit is the interpreter. The function performed by this component as discussed in the conceptual framework section above is abstraction of context information (Dey and Abowd, n.d., p.23). Primary abstraction of context information is carried out by the context widget component, however, this abstraction is amplified further using the interpreter component. To elaborate, the context widget can provide the location of an entity as geographical coordinates, however, the interpreter working in conjunction with the context widget can provide more detailed location information such as street address. One way in which this amplification of context information is achieved is through the use of database systems that work with data originating from the context widget. For instance, in the example above for a given street the database can hold both its geographical coordinates and street address data. In this way, information is available to a context-aware application in any level desired. Interpreters are designed in such a way that they have a common interface so that other components of the toolkit working in conjunction with them e.g. context widgets know their capabilities as well as know how to communicate with them (Dey and Abowd, n.d., p.20).

Aggregator

Another component that is created as part of the context toolkit is the aggregator. The function performed by this component as discussed in the in the conceptual framework section above is gathering context information for a given entity for easier access by a context-aware application. According to Dey and Abowd, the process of aggregation performed by aggregators involves collection of logically related context information on a logical entity and depositing it in a common repository (n.d., p.21). Aggregators are an essential part of the context toolkit as context information is of a distributed nature since it is acquired by context widgets using sensors that work with distributed systems (Dey and Abowd, n.d., p.21). Aggregators reduce complexity in access of information pertaining to a particular entity and are designed in such a way that they can support multiple access of information from multiple applications (Dey and Abowd, n.d., p.21). By making information access easy, they also make it fast. The importance of aggregators as part of context toolkits is further underlined in scenarios where information extraction is dictated by a profile. Such cases are characterized with queries specifying multiple conditions.

Service

Another component that is created as part of the context toolkit is the service. The function performed by this component as discussed in the conceptual framework section above is behaviour execution based on acquired context information. A service using a device known as an actuator controls and changes state information pertaining specifically to the operating environment of an application (Dey and Abowd, n.d., p.22). Context services supported by the context toolkit are broadly categorized as either synchronous services or asynchronous services. Synchronous services capture services that do not necessitate feedback from a user whereas asynchronous services are those that require customer feedback for the service to be complete (Dey and Abowd, n.d., p.22).

Discoverer

Another component that is created as part of the context toolkit is the discoverer. The function performed by this component as discussed in the conceptual framework section above is determining the capabilities of the operating environment and taking advantage of them. Discoverers communicate with the other four components: a process that is characterized with acquisition of context information from context widgets, interpreters and aggregators and providence of this information to applications through notifications or queries. The information collected by discoverers is compiled into a registry whose maintenance and upkeep is yet another function that is carried out by discoverers. Entries in this registry include details such as the availability to applications of the other components making up the context toolkit e.g. context widgets. Applications find discoverers particularly useful when they are in search of a particular component or set of components in the toolkit and are equipped only with such details such as component name or identity.

Implementation of the context toolkit

Distributed communications

The context toolkit finds its use in a computing environment that is distributed in nature. Thus, in its implementation its communication mechanism must support portability (Dey and Abowd, n.d., p.27). One way of achieving such a mechanism is using communication infrastructure that supports the TCP/IP protocol and communication objects that are developed using the HyperText Transfer Protocol (HTTP) and eXtensible Markup language (XML). By achieving such a communication mechanism we ensure that the context toolkit supports all computing devices that make up the distributed computing environment e.g. mobile phones, two-way pagers etc. (Dey and Abowd, n.d., p.27). One problem that is of concern with this implementation approach is limited scalability, a condition that occurs when the number of components rises. The BaseObject is a component created in the implementation of the context toolkit within which there is an encapsulation of the distributed communication mechanism (Dey and Abowd, n.d., p.27). The BaseObject is created as a class whose properties are inherited by the context widget, interpreter and aggregator.

Subscriptions

In the context toolkit, subscriptions for context widgets by applications are implemented through a three stage process. The first stage in the process is the application acquiring a handle to the context widget (Dey and Abowd, n.d., p.28). Owing to the computing environment in which the toolkit is used, the handle is created in such a way that it is programming-language independent. The first stage is completed through the application working in conjunction with the discoverer component to secure the context of its interest. Once the application acquires a handle to the context widget, the second stage in the subscription process is the application contacting context widget (Dey and Abowd, n.d., p.28). The medium of communication between the context widget and the application is the BaseObject (Context Toolkit Home, 2000, p.1). The request from the application is sent using the BaseObject and is received by the context widget using the same. Once the request is received by the context widget, the third stage in the subscription process is updating the widget’s list of subscribers to include this latest subscriber, this subscriber’s contact information and any customization information specified by this subscriber (Dey and Abowd, n.d., p.28).

Event handling

Events in the context toolkit originate are triggered by context changes and it is a common thing for them to be processed remotely. Event handling in the context toolkit unlike in GUI Windowing system is not designed to be carried out in a sequential fashion (Dey and Abowd, n.d., p.29). The design of the context toolkit is such that individual components of the toolkit are always on standby waiting for events, which they process through a structure called a thread (Dey and Abowd, n.d., p.29). Events in the context toolkit can be processed simultaneously. This event handling approach adopted by the context toolkit has one misgiving which is limited scalability (Dey and Abowd, n.d., p.29). The approach is well suited for cases that involve processing of small amounts of events, however, it collapses when the number rises.

Discovery and context services

The discovery process in the context toolkit is implemented through a centralized mechanism of discovery (Dey and Abowd, n.d., p.30). In this mechanism, it is the duty of the context widgets, aggregators and interpreters to express their interest to be registered by the discoverer component. The discoverer registers a particular component after a verification process known as pinging and if a component fails to be verified it is deregistered by the discoverer and its position made available to other components that had expressed their interest in the services of the discoverer (Dey and Abowd, n.d., p.30). In the context toolkit, context services are implemented through widgets, which are simply transducers that mediate between an application and its operating environment (Dey and Abowd, n.d., p.30). By implementing services in this manner, programmers are provided with a way in which to program their applications so that they can change the state of the operating environment.

Conclusion

The context toolkit presented in this research paper is an implementation of a robust conceptual framework for handling context and thus is suitable in supporting the development of context-aware systems. The conceptual framework is robust as it comprehensively identifies the major basic components that make up a context toolkit. These are context widgets, interpreters, aggregators, services and discoverers.

References

Coulouris, G. Dollimore, J. & Kindberg, T. ( 2005). Distributed systems concepts and design. Pearson Education Limited: England.

Context Toolkit Home. (2003). Context toolkit user’s guide. Web.

Context Toolkit Home. (2003). Context toolkit: tutorial: base object. Web.

Dey, A. K. (2002). The context toolkit. Web.

Dey A. K. and Abowd, G. D. [n.d]. A conceptual framework and a toolkit for supporting the rapid prototyping of context-aware applications: Georgia

Salber, D. Dey A. K. and Abowd, G. D. (1999). The context toolkit: aiding the development of context-enabled applications. Web.

Do you need this or any other assignment done for you from scratch?
We have qualified writers to help you.
We assure you a quality paper that is 100% free from plagiarism and AI.
You can choose either format of your choice ( Apa, Mla, Havard, Chicago, or any other)

NB: We do not resell your papers. Upon ordering, we do an original paper exclusively for you.

NB: All your data is kept safe from the public.

Click Here To Order Now!