“Context,” according to the dictionary, is defined as “the environmental and social surroundings of a person or an object.” In today’s sense in technology, this means the enabling of applications embedded in various devices to utilize contextual information around them. Such information includes the device user’s location, atmospheric conditions, other people around, time, proximity to landmarks, etc. For example, when it is about to rain, the device should be able to alert the user who requires such information by accurately predicting the weather. Similarly, the device could notify the user when a particular person, for example, a co-worker, is available online. In short, context involves a lot of scenarios, multitudes of people, places, and activities that are about to happen, are happening, or have happened without the need of direct communication between the parties involved. So, what we are going to do is to look at the general framework of this concept, a few vocabularies, usage scenarios, and how this affects security and our precious privacy that we hope we can cash in on someday in multi-million dollar lawsuits.
MCSE Training – Resources (Intense)
Practically, context is the information on the physical surrounding of a device; the information is either captured by sensors of the device or provided by the service provider. Context is different from data in many ways. Unprocessed data is as good as useless. Context output is generated by processing raw sensor data. Using location as an example, global positioning systems (GPS) data has to be processed, checked for consistency, and then converted to a geographical location. The end product is what we refer to as context information.
In this age of smart devices, context computing involves the virtualization of every aspect of our work. As computers become more portable with more processing power, people require access to information every time and everywhere with their electronic or smart devices. Though they are of immense help, traditional instant messaging and notifications applications are not “smart” enough to deliver the required results and are becoming unsuitable for extreme mobile use because they lack several elements that are now essential for modern team and mobile work. For example, a messaging application that can give feedback on the receiver’s location, whether the message has been read, notify the user when someone is out of bounds, and so on without elaborate input by the user. With increasing internet service availability and decreasing cost of new devices, context-aware applications will surely become more common in many aspects, including team collaboration. Although they are able to capture context, they do not have the intelligence to notify other people in the group without additional programmable support.
For most applications with context-aware intelligence, sensors provide information on a wide variety of issues, such as personal interests, socio-political information such as traffic information, headline news, or work-related context such as data/file sharing by workers posted to different sites, but working on the same objective. Infrastructure and service providers are beginning to explore and provide platforms to support new context-aware applications that will be more effective and flexible to users’ information requirements without much input or attention from the user. A device’s context awareness can be categorized either as direct, denoting the context is captured by the device’s sensors, or indirect, in the case where context is acquired from other sources.
Need for Context-Aware Systems
Organizations are struggling to churn out new innovative products in order to remain relevant and remain in business. This makes work processes more complex in terms of planning and execution. Such working environments are dynamic and require lots of resources to run. Context information can be used by workers to coordinate their work in order to reduce running costs, enhance productivity, and save time.
Context can be used to process raw data, thereby making communication much more efficient. By infusing context applications into electronic devices, the ease of communication can be improved and can also be fit seamlessly into the user’s personal, work, and social context requirements, thereby making communication become ubiquitous.
Context is a concept that has been a good time coming into the ICT domain. The main challenge of context computing is to adapt to changing trends by introducing a new set of applications that are aware of the context (environment) they are in. Such context-aware programs deploy according to the location of use, the type of people/events the user is interacting with, servers and network they are hosted on, as well as changes in the environment over time. For example, a cell phone should vibrate and not ring when the user is in a meeting, if the application is aware of the location (e.g., a bank) or the to-do schedule of the user.
Context-aware computing is innovative in theory. The crux of the matter is tinkering to make it work in reality. The idea is more than just collecting contextual information about dynamic situations. Information is a double-edged sword that can be used for good or ulterior motives, in the sense that collecting information about our activities poses a security risk and intrudes on our privacy if accumulated context data falls into the wrong hands. Context information is only useful when it is processed and interpreted in such a way that the user can comprehend.
A traffic statistics-gathering application logs into a live city traffic broadcast service and uses a global positioning system (GPS) to depict areas of traffic congestion and also display alternative traffic-free routes for the user’s perusal. The scenario described above combines together to form a system for building context-aware applications. Context computing completely overhauls the basic essence of computer application interface, deployment, and operation.
Characteristics of Context-Aware Systems
The following describes the four basic characteristics of context-aware systems.
A context-aware system must possess a user interface or mechanism that can provide information to the user about places, people, or objects located nearby to enable the user to choose the options that are relevant; for example, a phone’s contact enhanced with address information or places of interests to the user, such as finding ATM machines nearby.
Automatic context reconfiguration:
This is the adding of new data, and the process involves removing moribund contexts or modifying some data due to changes in context; e.g., automatic update of location or ongoing activity on social media.
Dynamic context commands:
This enables applications to produce different results according to the context in which they are in; e.g., dim screen brightness when it is dark and increase brightness when outdoors.
These are simple “If >Then” rules used to specify how context-aware systems should react if certain events should happen; for example, a context-aware CCTV system triggers an alarm when a human figure or motion is detected in out-of-bound areas.
In addition to the above, context can be utilized either actively or passively.
This applies to an application that automatically reacts to new context by executing some pre-programmed actions or modifying the application’s demeanor. For example, the system could automatically update an application if a new update is released without notifying the user.
This describes the situation when the application process new or updated context and presents the information in the notifications box of the device for the user to give final command or use later as the user deems fit. In this case, the system would notify the user on application updates available and will only update an application if the user gives the command.
Basic Context System Architecture
Context-aware systems can be described as sensors embedded in a device (middleware) which the application makes use of. Each of the components is inter-dependent with the other.
Basic Local Context System Architecture
In a simple context-aware system, the application communicates directly with the sensor; an example would be a retina sensor that automatically turns on the screen when it detects a retina and turns off the screen otherwise in order to optimize battery consumption. This was a major selling feature for many handheld devices.
Context-Aware Systems Can Be Either Local or Remote.
In local systems, the device, sensors, and applications are all in one device, directly connected or coupled inside the hardware. For example, an application that sets the mode to hands-free when the user is driving since the device is connected to the car (driving mode) or when maps is on.
On the other hand, remote systems do not require a direct or physical connection between the sensor and the application, hence it is possible to have multiple applications receiving data from the same sensor. This can also be recycled by having multiple remote sensors receiving data from a single application; e.g., an application that broadcasts a status update when the user is in a meeting in order to reduce the amount of incoming calls when the device is in meeting or silent mode.
In today’s ICT market, there are many vendors offering innovative gadgets at very affordable prices. Computers, servers and mobile devices in a context-aware system all have different specifications and capabilities, especially with regard to the type of device, processing power, and operating system (OS) platforms. The context-aware system should be able to deploy on all types of devices, ranging from mobile phones to cars and even smart refrigerators.
Different devices often run different operating systems and, consequently, different types of software. The same application can be created for different operating systems so that they can interconnect with each other with ease. For example, a context-aware application that runs on my software platforms, thereby promoting simultaneous deployment.
This aspect involves the existence of different network architectures, domains and network protocols. Multiple heterogeneous networks have to be considered before building a context-aware system.
Stages of Context Computing
These sensors can be either miniature pieces of hardware that sense changes in the physical environment or software programs that receive data from other context sources. They include visual sensors (face detection in camera), sound sensors (voice recognition), activity sensors (accelerometer/driving), location sensors (GPS), environmental sensors (thermostats), etc. The main task of context sensors is to collect data for further processing into useful context information.
The context raw data received from sensors are first stored before being sent for processing. Raw context data can be retained according to time, relevance, space available, etc.
In this stage, data is retrieved from the storage area for refining into useful information by the device’s processor or some software programs.
This provides an application program interface (API) for the application to understand or be able to read processed context information. The interface implements the commonly accepted model required by the application’s logic.
After assessing the context satisfactorily from the interface, the application can then apply the processed information when a suitable contextual condition is triggered, such as automatic execution of certain tasks without input from the user, as with active context.
Before or after applying and executing the context, the application needs to provide reports/notifications in such a way that it can be easily understood by the user. Also, since a context-aware system is remote in nature, communication between various context-aware devices needs to be done delicately to prevent misapplication of broadcasts received from other devices on the network.
Security and Privacy
Security issues are a big challenge in running a context-aware system. Context information must always be accurate and authenticated because, if the application can execute incorrect data, it would not only affect the user, but also other people who receive broadcasts from the application. For example, if a user broadcasts notice of a meeting when the device’s time is not correct, it could result in the message recipients arriving either too early or too late for the meeting. Also, a wrong address broadcast to guests can be very frustrating. It is difficult for a context-aware system to authenticate information before utilizing it because sensors only detect changes in context. Whether the change is genuine or not, sensors cannot verify.
Apart from the challenge mentioned above, it is hard to absolutely secure accumulated context data and addresses of connected devices from leakages. Some people rightly feel that context systems violate their privacy because it is like having one’s everyday activities exposed for the world to see. Leakages are even fatal and can result in unimaginable losses. For example, burglars could take advantage of a leaked broadcast that someone is travelling for some time and use the opportunity to burgle the person’s home.
Therefore, it is very important to address the security and privacy challenges of running a context-aware system. The user should have a good degree of control over their accounts and repository data. That way, the service provider will not be liable for damages resulting from data leaked from a user’s device. Though it involves complex programming to tune the application on whom to share or not to share context information with, the system architecture should be able to provide a balance between privacy and efficiency.
*Bill N. Schilit et al: Context-Aware Computing Applications; IEEE Workshop on Mobile Computing, December 1994.
*Guanling Chen and David Kotz: A Survey of Context-Aware Mobile Computing Research; Dartmouth Computer Science Technical Report TR2000-381
*Pedro Alves & Paulo Ferreira: Distributed Context-Aware Systems; INESC-ID/IST, May 2011
*Robert Schmohl, Uwe Baumgarten: Context-Aware Computing: a Survey Preparing a
*Thomas P. Moran, Paul Dourish: Context-Aware Computing; Human-Computer Interaction, Volume 16, Numbers 2-3, 2001.
*W. Keith Edwards: Putting Computing in Context: An Infrastructure to Support Extensible
Context-Enhanced Collaborative Applications; Georgia Institute of Technology.