Wednesday, May 13, 2009

Context Aware Middleware

Grounded Theory for the survery. The theory emerges from the interrelatons of general categories

Traditional Middleware: Hide heterogeneity and distribution

in Pervasive Computing this heterogeneity and distribution is dealt with in Middleware, without hiding them.

Types of Context
  • Environment (infra-structure, vs, or self-contained)
  • Storage (ordering data based on context information, vs, centralized storage facilities for storing
  • Reflection (reification and absorption) (aapplication, middlware, context info)
  • Quality
  • Adaption (transparent, profile, rules)
  • Migrationi (adaptive middleware systems)
  • Composition
Aura
1. task oriented
2. task manager: managing tasks
3. environment manager: managing services
4. context observer: managing context (i.e., the intent of the user)

CARMEN:
1. proxies
2. proxy will migrate with the user
  • resource move with the agent
  • copy the resources when they agent migrates
  • using remote reference
  • re-binding to new resources
Resources have profiles
  • user profiles: preferences, security, ...
  • device profiles: hardware and software devices, ...
  • service component profiles: interface for services
  • site profiles: a group of profiles belonging to a single location
CARISMA
Profile: metadata of the middleware
1. passive profiles: actions the middleware should take when specific context events occur
2. active profiles: relations between services used by the application and the policies to deliver them

reflection is used to alter the profile kept by the middleware

Cooltown
Devices, People, and things are identified by a URL
  • context (where, when, who, what, how)
  • relationships (Contains, isContainedIn, isNextTo, isCarriedBy)
CORTEX
based on sentient objects: sense and views the behavior of neighbouring objects, reasons about it, and manipulates physical objects accordingly. They dynamically discover each other and share context information
  • Publisher - Subscriber: discovery
  • Group Communication
  • Context
  • QoS management
configured at deployment time, configured at run-time using Java Reflection

Gaia
a meta-operating system
  • location
  • context: collected by context providers
  • event
Entities:
  • application
  • services
  • device
  • person
MiddleWhere
uses location providers
  • location service
  • spatial database
  • reasoning engine
The model for location consists of (Points, Lines, Polygons)

Quality of location information (resolution, freshness, confidence)

MobiPADS
Mobilet is the entity that provides a service
  • slave: resides on the server
  • master: resides on the mobile device
context of mobile devices: 1. processing power, 2. memory, 3. storage, 4. network device, 5. battery

applications have access to reflective interfaces for context, service configurations, and adaption strategies

SOCAM: ontologies to model context

Context Provider: external or internal context
Context Interpreter: external context provider
Context Database: instance of the ontology of context
Context Reasoner: to derive more contextual information
Service Location Service: the registry for locating services of Context Providers
Context-aware Mobile Service: services that a context provider registers with the Service Location Service

rules are used to associate services with context information

Types of Context
Geographical Context
Physical Context
Social Context
Organisational Context
User Context
Action Context
Time Context

Monday, May 11, 2009

A survey of Adaptive Middleware

  • Middleware is connectivity software that encapsulates a set of services residing above the network operating system layer

Taxonomy of Middleware (Emmerich)
  • Transactional
  • Message-oriented
  • Object-oriented
  • Procedural

Types of Object-oriented programming models
  1. CORBA
  2. RMI
  3. DCOM

Supporting paradigms for adaptation include:
  • Computational Reflection:
  • Component-based design
  • Aspect oriented programming
  • Software design patterns
Computation Reflection:
  • the ability of a program to reason about and alter its own behavior
- Reflective Systems (Base-level objects): functinal aspects of the syste
- Self representation (meta-level objects): implementation aspects of the system
- MOP (meta object protocol): an interface to inspect and modify the base level objects

*Behavioral reflection in middleware: modify the behavior of a program by generating code at the self representation level and injecting it to the base level

Component-based design:

components are self-contained
large scal reuse of components for COTS
late composition and late binding are supported

Examples: DCOM, EJB, Corba Component Model (CCM)

Aspect Oriented Programming

* intervened cross-cutting concerns in complex programs
* disentangling the cross cutting concerns leads to simpler software development, maintenance, and evolution

Software Design Patterns
The goal of software design patterns is to create a common vocabulary for communicating insight and experience about recurring problems and their known refined solutions

4.Taxonomy of Adaptive Middleware

1. Schmidt's classification:
  • host infra-structure: higher level API than the OS, NP, generic services
  • distributioin: RMI, solves heterogenity of NPs and OSs
  • common services: common functionalities such as fault tolerance, security, load balancing, event propagaion, logging, persistence, ...
  • domain services: specific class of distributed applications
  • application
2. Adaptation type
  • Customizable -> static compile time
  • Configurable -> static, before starting the system
  • Tunable-> dynamic, before using the system. The middleware core remains intact
  • Mutable-> dynamic during run-time
3. Application Domain
  • QoS
  • Dependable
  • Embedded
QoS-oriented middleware is classified to the following categories:
  • Real-time middleware
  • Stream-oriented middleware
  • Reflection-oriented middleware
  • Aspect-oriented middleware
Reflection
  • Structural: ability of a system to inspect and modify its internal architecture (architecture and interface)
  • Behavioral: ability of a system to inspect and modify its computation(interception and resources)
Existing Aproaches and middleware system

Ace
  • Layer: Host-infrastructure
  • Pattern: Service configurator pattern
  • Type: repeatedly tunnable middleware
ACE ORB (TAO)
  • Pattern: Strategy Design Pattern
  • Type: configurable middleware - repeatedly tunnable middleware
  • Layer: distribution
Component-Integrated ACE ORB (CIAO)
  • Pattern: component based design
  • Layer: distribution
  • Type: configurable middleware
DynamicTAO
  • Pattern: Service configurator
  • Type: repeatedly tunnable middleware
OpenORB
  • component based design
Squirrel
  • Layer: distribution
  • Type: Tunnable and Mutable - (not repeatedly tunnable tho! tunning happens just once)
MetaSockets
  • Type: repeatedly tunnable middleware
  • Layer: Host infra-structure layer
OpenCorba
  • Type: repeatedly tunnable middleware
  • Layer: Distribution
FlexiNet
  • both fine-grained (per interface) and coarse grained adaptation