Context-awareness has been investigated for almost a decade and is considered as a convenient and desirable feature in distributed mobile systems since it allows these systems to benefit from the changes in their users’ context to dynamically tailor services to their users’ current situation and needs. This chapter addresses the research results and challenges of designing a flexible infrastructure to support the development of mobile context-aware applications. We discuss relevant context-awareness concepts, define architectural patterns on context-awareness, present the design of a target infrastructure, and discuss some related research and research trends. The context-aware infrastructure described in this chapter follows the principles of service-oriented architectures in which the dynamic customization of context-aware mobile services is specified by means of application behavior rules that are interpreted and applied by the infrastructure at runtime.
The Merriam-Webster online dictionary (Merriam-Webster, 2005) provides a general definition of context; namely, “the interrelated conditions in which something exists or occurs.” We focus on this definition as the starting point for characterizing context in the scope of context-aware mobile applications. This definition makes clear that it is only meaningful to talk about context with respect to something that exists or occurs, which we call the entity or subject of the context. Since we aim at supporting the development of context-aware applications, we should clearly identify the subject of the context in the scope of these applications.
Key Terms in this Chapter
Service discovery: Process of finding relevant services according to given criteria.
Dynamic Customization of Services: (1) Selection of service configuration options (among a predefined set); (2) runtime composition of a predefined set of services.
Networking Infrastructure: Infrastructure that comprises common resources and services for information exchange (or data communication).
Ontology: Formal and explicit specification of a shared conceptualization.
Context-Aware Services Infrastructure: Services infrastructure that supports context-aware applications.
Context Information: Representation of context, such that it can be communicated in a system (including applications).
Context-Awareness: Property of a system (including applications) to make use of context information.
Services Infrastructure: Infrastructure that comprises common resources and services for application creation, execution, and management (hence excluding networking resources and services).
Event: An occurrence of interest related to context.
Infrastructure: System that comprises common resources and services such that it forms a shared basis for other and otherwise independent systems (including applications).
Telemonitoring: Process of remotely monitoring an entity (e.g., a human being) through an infrastructure.
Rules Description (for Context-Aware Applications): Technique that allows one to specify the behavior of an application in terms of what actions should be taken if certain events occur.
Service: External perspective of a system in terms of the behavior that can be observed or experienced by the environment (users) of the system.
Context: Collection of interrelated conditions in which something exists or occurs.
Action: A service unit that performs a computation with side-effects for one or more parties involved in the system.
Context Modeling: Activity of creating context information with a representation that supports automated reasoning and/or processing.
Service-Oriented Architecture: Architectural style based on the concept of service.