SlideShare una empresa de Scribd logo
1 de 45
Descargar para leer sin conexión
CONTEXT-AWARE MIDDLEWARE

                            Marco Bessi             Leonardo Bruni

                                          June 16, 2009




Context-Aware Middleware                                             Argomenti avanzati di Ingegneria del Software – 1
Outline


Introduction
                             Introduction
Possible approaches
                                 Middleware
                                 Traditional MW
                                 New Generation MW
                                 Is it necessary?
                                 Requirements
                                 Problems
                             Possible approaches
                                Classification
                                Object oriented
                                Ontology oriented
                                Data oriented




  Context-Aware Middleware                           Argomenti avanzati di Ingegneria del Software – 2
Introduction
y Middleware
y Traditional MW
y New Generation MW
y Is it necessary?
y Requirements
y Problems

Possible approaches



                             Introduction




  Context-Aware Middleware                  Argomenti avanzati di Ingegneria del Software – 3
Middleware


Introduction
y Middleware
y Traditional MW
y New Generation MW
y Is it necessary?
y Requirements
y Problems

Possible approaches
                                  “Middleware is an enabling layer of software that resides between
                                 the application program and the networked layer of heterogeneous
                                 platforms and protocols. It decouples applications from any
                                 dependencies on the plumbing layer that consists of
                                 heterogeneous operating systems, hardware platforms and
                                 communication protocols. (Source: Davis Linthicum)”




  Context-Aware Middleware                                                      Argomenti avanzati di Ingegneria del Software – 4
From Traditional Middleware ...


Introduction
                             Existing middleware technologies have been built adhering to the metaphor of
y Middleware
y Traditional MW             the Black Box.
y New Generation MW
y Is it necessary?
                             It provides:
y Requirements
                                q   communication and coordination services;
y Problems

Possible approaches             q   special application services;
                                q   management services.




                             Traditional distributed system assume a stationary execution environment that
                             contrast with the extremely dynamic scenario of the context-aware computing.

  Context-Aware Middleware                                                        Argomenti avanzati di Ingegneria del Software – 5
... to New Generation Middleware


Introduction
                             Modern distributed applications need a middleware that is capable of adapting
y Middleware
y Traditional MW             to environment changes and that supports the required level of quality of
y New Generation MW          service.
y Is it necessary?
y Requirements               Context-awareness involves:
y Problems
                                q   acquisition of contextual information;
Possible approaches
                                q   reasoning about context;
                                q   modifying ones behavior based on the current context.

                             It would define a common model of context.
                             It would also ensure that different agents in the environment have a common
                             semantic understanding of contextual information.




  Context-Aware Middleware                                                        Argomenti avanzati di Ingegneria del Software – 6
Is it necessary?


Introduction
y Middleware                   q   it simplify the task of creating and maintaining context-aware systems;
y Traditional MW
y New Generation MW
                               q   it provide uniform abstraction and reliable service for common application;
y Is it necessary?             q   it make it easy to incrementally deploy new sensors and context-aware
y Requirements
y Problems
                                   agents in the environment;
Possible approaches            q   it would be independent of hardware, operating system and programming
                                   language.




  Context-Aware Middleware                                                         Argomenti avanzati di Ingegneria del Software – 7
Requirements [1]


Introduction
                             Some requirements different from traditional middleware have to be considered
y Middleware
y Traditional MW             for the context-aware scenario.
y New Generation MW
y Is it necessary?              q   support for heterogeneity: hardware components ranging from
y Requirements                      resource-poor sensors, actuators and mobile client devices to
y Problems
                                    high-performance servers must be supported, as must a variety of
Possible approaches
                                    networking interfaces and programming language;
                                q   support for mobility: all components can be mobile, and the
                                    communication protocols must therefore support appropriately flexible
                                    forms of routing; context information may need to migrate with
                                    context-aware components;
                                q   scalability: context processing components and communication protocol
                                    must perform adequately in very changing domains;
                                q   support for privacy: flows of context information between the distributed
                                    components of a context-aware system must be controlling according to
                                    user’s privacy needs and expectations;




  Context-Aware Middleware                                                        Argomenti avanzati di Ingegneria del Software – 8
Requirements [2]


Introduction
y Middleware                   q   tolerance for component failures: sensors are likely to fail in the
y Traditional MW                   ordinary operation of a context-aware system; disconnection may also
y New Generation MW
y Is it necessary?
                                   occur;
y Requirements                 q   ease of deployment and configuration: it must be easily deployed and
y Problems
                                   configured to meet user and environmental requirements;
Possible approaches
                               q   dynamic reconfiguration: detecting changes in available resources and
                                   reallocating them or notify the application to change its behavior;
                               q   asynchronous paradigm: decoupling the client and server components
                                   and delivering multicast messages.




  Context-Aware Middleware                                                       Argomenti avanzati di Ingegneria del Software – 9
Problems [1]


Introduction
                             Balance of user control
y Middleware
y Traditional MW             Context-aware applications:
y New Generation MW
y Is it necessary?              q   not only require middleware for distribution transparency of components;
y Requirements
y Problems                      q   but also support personalization and adaptation based on
Possible approaches                 context-awareness.
                             But, context-aware applications may not always adapt as the user expects, and
                             may cause users to feel loss of control over the behavior of their applications.
                             Autonomous context-aware systems must provide mechanisms to strike a
                             suitable balance between user control and software autonomy.




  Context-Aware Middleware                                                         Argomenti avanzati di Ingegneria del Software – 10
Problems [2]: Conflicts


Introduction
                             A context-aware system may modify its own behavior by means of adaptation.
y Middleware
y Traditional MW
                             Applications may introduce ambiguities, contradictions or other logical
y New Generation MW
y Is it necessary?
                             inconsistencies.
y Requirements
y Problems
                             Typologies:
Possible approaches             q   intra-profile conflict: a conflict exist inside the profile of an application
                                    running on a particular device; it is local to a middleware instance;
                                q   inter-profile conflict: a conflict exist between the profiles of applications
                                    running on different devices; it is distributed among various middleware
                                    instances.

                             Conflict resolution mechanism
                             Whenever a service that incorporates a conflict is requested,a conflict
                             resolution mechanism has to be run to solve the conflict and find out which
                             policy to use to deliver the service.




  Context-Aware Middleware                                                          Argomenti avanzati di Ingegneria del Software – 11
Introduction

Possible approaches
y Classification
y Object oriented
y Ontology oriented
y Data oriented




                             Possible approaches




  Context-Aware Middleware                     Argomenti avanzati di Ingegneria del Software – 12
Classification


Introduction

Possible approaches
                               q   Object-oriented middleware:
y Classification
y Object oriented                    3 Reflection and reflective middleware;
y Ontology oriented
y Data oriented
                                     3 Meta-space, meta-model, meta-object.

                               q   Ontology-oriented middleware:

                                     3 SOCAM: ontology, architecture, performance.

                               q   Data-oriented middleware:

                                     3 Publish-subscribe: adding context, API, SPCF protocol;
                                     3 TOTA: tuples, architecture, API.




  Context-Aware Middleware                                                     Argomenti avanzati di Ingegneria del Software – 13
Background on reflection


Introduction
                             A reflection system is one that is capable of reasoning about itself (besides
Possible approaches
                             reasoning about the application domain).
y Classification
y Object oriented
                                q   In a reflective system, we call
y Ontology oriented
y Data oriented
                                    base-level the part of the system that perform processing about the
                                         application domain as in conventional systems;
                                    meta-level the part of the system whose subject of computation is the
                                        system’s self representation;
                                    meta-object the entities that populate the meta-level.

                                q   Two styles of reflection

                                    procedural: the representation of the system is a program that is
                                         generally written in the same language of the system;
                                    declarative: uses a set of declarative statements as a representation of
                                         the system.




  Context-Aware Middleware                                                         Argomenti avanzati di Ingegneria del Software – 14
Reflective middleware: introduction


Introduction

Possible approaches
                                  q   language independent reflective architecture1 featuring:
y Classification
y Object oriented                        3 a per object meta-space;
y Ontology oriented
y Data oriented                          3 the use of meta-model to structure meta-spaces;
                                         3 the use of object graphs for composite components.

                                  q   focus on:

                                         3 configuration;
                                         3 reconfiguration;
                                         3 extension.




                              1
                                  F. M. Costa, H. A. Duran, N. Parlavantzas, K. B. Saikoski, G. Blair, G. Coulson: Lancaster University

  Context-Aware Middleware                                                                          Argomenti avanzati di Ingegneria del Software – 15
General principles


Introduction

Possible approaches
                               q   use of the CORBA IDL to describe computational interface
y Classification
y Object oriented                    3 object can have multiple interfaces
y Ontology oriented
y Data oriented
                                     3 three kinds of interfaces supported: operational, stream and signal
                                     3 explicit bindings (local or distributed) can be created between
                                        compatible interfaces

                               q   use of procedural reflection

                               q   meta-spaces support objects on a per object (or per interface) basis

                                     3 a fine level of control can be obtained
                                     3 enforces consistency

                               q   the meta-space is structured as a set of four orthogonal meta-models

                                     3 simplifies the meta-interface by maintaining a separation of concern
                                        between different system aspects
                                     3 other meta-models can be defined

  Context-Aware Middleware                                                        Argomenti avanzati di Ingegneria del Software – 16
The structure of meta-space


Introduction

Possible approaches
y Classification
y Object oriented
y Ontology oriented
y Data oriented




  Context-Aware Middleware                                 Argomenti avanzati di Ingegneria del Software – 17
Encapsulation meta-model


Introduction
                             The encapsulation meta-model relates to the set of methods and associated
Possible approaches
                             attributes of a particular object interface.
y Classification
y Object oriented
y Ontology oriented
y Data oriented




  Context-Aware Middleware                                                      Argomenti avanzati di Ingegneria del Software – 18
Compositional meta-model


Introduction
                             The compositional meta-model deals with the way a composite object is
Possible approaches
                             composed, i.e. how its components are inter-connected, and how these
y Classification
y Object oriented
                             connection are manipulated. The composition of an object is represented as an
y Ontology oriented          object graph.
y Data oriented




  Context-Aware Middleware                                                      Argomenti avanzati di Ingegneria del Software – 19
Environment meta-object


Introduction
                             The environment meta-object is in charge of the environmental computation of
Possible approaches
                             an object interface, i.e. how the computation is done. It deals with message
y Classification
y Object oriented
                             arrivals, dispatching, marshalling, concurrency control, etc.
y Ontology oriented
y Data oriented




  Context-Aware Middleware                                                      Argomenti avanzati di Ingegneria del Software – 20
Resource meta-model


Introduction
                             The resource meta-model is concerned with both the resource awareness and
Possible approaches
                             resource management of objects in the platform. Resource provide an
y Classification
y Object oriented
                             operating system independent view of threads, buffer, etc. Resource are
y Ontology oriented          managed by resource managers, which map higher level abstraction of
y Data oriented
                             resource onto lower ones.




  Context-Aware Middleware                                                    Argomenti avanzati di Ingegneria del Software – 21
Performance evaluation


Introduction

Possible approaches
y Classification
y Object oriented
y Ontology oriented
y Data oriented




  Context-Aware Middleware                            Argomenti avanzati di Ingegneria del Software – 22
Ontology oriented


Introduction

Possible approaches
                               q   Ontology
y Classification
y Object oriented                    3 formal explicit description of concepts in a domain of discourse
y Ontology oriented
y Data oriented
                                     3 provides a vocabulary for representing knowledge and for
                                        describing specific situation

                               q   OWL (Web Ontology Language)

                                     3 is an Open W3C standard
                                     3 is much expressive than other languages such as RDFS

                               q   First-order predicate calculus

                                     3 basic form: Predicate(Subject, Value)
                                     3 e.g.: Location(Tom, bathroom) ; Status(Door, closed)
                                     3 possible to combine the predicate and Boolean algebra
                                     3 e.g.: FoodPreference(FamilyMembers, foodItems) ≡
                                        FoodPreference(Tom, FoodList1) ∨ FoodPreference(Alice,
                                        FoodList2)
  Context-Aware Middleware                                                       Argomenti avanzati di Ingegneria del Software – 23
Representation of context


Introduction

Possible approaches
y Classification
y Object oriented
y Ontology oriented
y Data oriented




  Context-Aware Middleware                               Argomenti avanzati di Ingegneria del Software – 24
Representation of context


Introduction

Possible approaches
y Classification
y Object oriented
y Ontology oriented
y Data oriented




                               raw data




  Context-Aware Middleware                               Argomenti avanzati di Ingegneria del Software – 24
Representation of context


Introduction

Possible approaches
y Classification
y Object oriented
y Ontology oriented
y Data oriented




                               raw data




                                               ID = John, Activity = lie down, Place = bed


  Context-Aware Middleware                                                 Argomenti avanzati di Ingegneria del Software – 24
Representation of context


Introduction

Possible approaches
y Classification
y Object oriented
y Ontology oriented
y Data oriented




                                                (John,has posture,lie-down) (John,location,bed)


                               raw data




                                               ID = John, Activity = lie down, Place = bed


  Context-Aware Middleware                                                 Argomenti avanzati di Ingegneria del Software – 24
Representation of context


Introduction

Possible approaches
y Classification
y Object oriented
y Ontology oriented
y Data oriented




                                                (John,has posture,lie-down) (John,location,bed)


                               raw data




                                               ID = John, Activity = lie down, Place = bed


  Context-Aware Middleware                                                 Argomenti avanzati di Ingegneria del Software – 24
Advantages of an ontology-based approach


Introduction

Possible approaches
                               q   describes context semantically in a way which is independent of
y Classification                    programming language or underlying operating system
y Object oriented
y Ontology oriented            q   enables formal analysis of domain knowledge
y Data oriented

                               q   takes in account the following characteristics of context information:

                                     3 context information has a great variety
                                     3 context information varies in different sub-domains
                                     3 context information is interrelated
                                     3 context information inconsistent

                               q   shares common understanding of the structure of context information

                               q   enables reuse of domain knowledge




  Context-Aware Middleware                                                         Argomenti avanzati di Ingegneria del Software – 25
SOCAM


Introduction

Possible approaches
                                  q   SOCAM2 : Service-Oriented Context-Aware Middleware
y Classification
y Object oriented                       3 an architecture for the building and rapid prototyping of
y Ontology oriented
                                            context-aware services
y Data oriented
                                        3 it provides support for
                                               s   acquiring
                                               s   discovering
                                               s   interpreting
                                               s   accessing
                                            various contexts to build context-aware services
                                        3 it’s a distributed middleware




                              2
                                  Tao Gu, Hung Keng Pung, Da Qing Zhang: University of Singapore

  Context-Aware Middleware                                                                   Argomenti avanzati di Ingegneria del Software – 26
SOCAM: Design of context ontology


Introduction

Possible approaches
                               q   two-layer hierarchical approach
y Classification
y Object oriented                  Common upper ontology: it captures general concepts
y Ontology oriented
y Data oriented
                                   Domain-specific ontology: it’s a collection of low-level ontologies which
                                      apply to different sub-domains




  Context-Aware Middleware                                                       Argomenti avanzati di Ingegneria del Software – 27
SOCAM: Context classification


Introduction

Possible approaches
                               q   two main categories
y Classification
y Object oriented                  direct context: directly acquired or obtained from a context provider
y Ontology oriented
y Data oriented
                                        sensed context: acquired from physical sensor
                                        defined context: defined by a user
                                   indirect context: derived by interpreting direct context through context
                                         reasoning




  Context-Aware Middleware                                                        Argomenti avanzati di Ingegneria del Software – 28
SOCAM: Architecture


Introduction

Possible approaches
y Classification
y Object oriented
y Ontology oriented
y Data oriented




  Context-Aware Middleware                         Argomenti avanzati di Ingegneria del Software – 29
SOCAM: Performance evaluation


Introduction

Possible approaches
y Classification
y Object oriented
y Ontology oriented
y Data oriented




  Context-Aware Middleware                                   Argomenti avanzati di Ingegneria del Software – 30
Publish-Subscribe: Why add context? [1]


Introduction
                             Complex communication pattern need to take into account the situation in which
Possible approaches
                             the information to be communicated is produced or consumed.
y Classification
y Object oriented            To convey this information into the published messages, Publish-Subscribe (and
y Ontology oriented
y Data oriented
                             its content-based incarnation) encode the “context” of the publisher into the
                             messages.
                                                This approach is limiting and inefficient.




  Context-Aware Middleware                                                        Argomenti avanzati di Ingegneria del Software – 31
Publish-Subscribe: Why add context? [2]


Introduction
                             Matching inversion
Possible approaches
                             Conventional content-based publish-subscribe system:
y Classification
y Object oriented               q   messages hold data, subscriptions hold constraints on these data;
y Ontology oriented
y Data oriented                 q   the data model and the matching semantics are unsuited for this case.
                             Necessity to invert the conventional matching process to consider constraints
                             embedded into messages and data embedded into subscriptions.

                             Efficiency
                                q   Reduce the overhead of the subscription and unsubscription processes
                                    (saving bandwidth);
                                q   Reduce the time required to match messages.

                             Separation of concerns
                             Components in charge of publishing messages and subscribing to them differ
                             from those in charge to detecting and communicating context change.




  Context-Aware Middleware                                                        Argomenti avanzati di Ingegneria del Software – 32
Publish-Subscribe: API


Introduction
                             Each node n can3 :
Possible approaches
y Classification                    q   set its current context by invoking the setContext(c) operation;
y Object oriented
y Ontology oriented                q   subscribe to messages matching the content filter fmsg and coming from
y Data oriented
                                       publishers whose context matches the context filter fctx through the
                                       subscribe(fmsg ; fctx ); the unsubscribe(fmsg ; fctx ) operation does the
                                       opposite;
                                   q   publish messages for subscribers whose context matches the context
                                       filter fctx by invoking the publish(m; fctx ) operation.




                               3
                                   G. Cugola, A. Margara: Politecnico di Milano; M. Migliavacca: Imperial College London

  Context-Aware Middleware                                                                        Argomenti avanzati di Ingegneria del Software – 33
Publish-Subscribe: Shortest Path Context Forwarding
                             (SPCF) protocol

Introduction
                             Messages are forwarded along the shortest path tree rooted at the publisher,
Possible approaches
                             using information about context and interests of downstream clients to decide
y Classification
y Object oriented
                             the branches to follow and those to prune.
y Ontology oriented
y Data oriented                 q   Each broker runs a link state protocol to built its own view of the
                                    dispatching network (without the client) and calculate the shortest path
                                    trees (SPT) rooted to each broker in the network;
                                q   Message forwarding uses these trees together with two tables (which are
                                    kept by each broker):
                                      3 context table: it maps brokers (identifier) to the set of contexts of
                                        their clients;
                                      3 content table: it stores, for each broker Bp , each context cp among
                                        those of the clients attached to Bp , and each neighbor N, the set of
                                        content filters and contexts coming from attached to brokers that
                                        are downstream along N in the SPT rooted at Bp .




  Context-Aware Middleware                                                          Argomenti avanzati di Ingegneria del Software – 34
Tuples On The Air (TOTA): Approach


Introduction
                             The key objectives of TOTA 4 are:
Possible approaches
y Classification                    q   promotes decoupled and adaptive interactions by providing application
y Object oriented                      components with simple and expressive context information;
y Ontology oriented
y Data oriented                    q   actively support adaptivity by discharging application components from
                                       duty of dealing with network and application dynamics.

                             Relies on “spatially distributed tuples”.
                             TOTA adds and updates information in these tuples to reflect context and
                             connectivity. Agents “sense” these tuples to get context information and to
                             communicate.




                               4
                                   M. Mamei, F. Zambonelli, L. Leonardi: Universit di Modena e Reggio Emilia

  Context-Aware Middleware                                                                       Argomenti avanzati di Ingegneria del Software – 35
TOTA: Overview


Introduction
                             Distributed tuples used to represent context and to support communication;
Possible approaches
y Classification                 q   Tuples are not associated with a node;
y Object oriented
                                q   Tuples autonomously propagate and diffuse through the network.
y Ontology oriented
y Data oriented


                             Computational model
                                q   Peer-to-peer network;
                                q   Nodes may be mobile and have a neighborhood;
                                q   Each agent can store tuples and “lets” tuples diffuse through network.




  Context-Aware Middleware                                                         Argomenti avanzati di Ingegneria del Software – 36
TOTA tuples and propagation rule


Introduction
                             TOTA tuples
Possible approaches
y Classification                 q   Injected into the system from a particular node;
y Object oriented
                                q   Defined by “content” and “propagation rule” T = (C, P );
y Ontology oriented
y Data oriented
                                      3 C is an ordered set of typed fields representing the information
                                        carried on by the tuple;
                                      3 P determines how tuple is distributed and propagated in the
                                        network.


                             Propagation rule
                                q   Determines scope of the tuple (i.e. distance at which such tuple should
                                    be propagated);
                                q   Evaluated at each hop;
                                      3 Determines how the tuples content may be changed;
                                      3 Determines how propagation may be affected by presence/absence
                                         of other tuples.




  Context-Aware Middleware                                                         Argomenti avanzati di Ingegneria del Software – 37
TOTA: Architecture [1]


Introduction

Possible approaches
y Classification
y Object oriented
y Ontology oriented
y Data oriented




  Context-Aware Middleware                            Argomenti avanzati di Ingegneria del Software – 38
TOTA: Architecture [2]


Introduction
                             The TOTA middleware is constituted by three main parts:
Possible approaches
y Classification                 q   TOTA API: it is the main interface between the application and the
y Object oriented
                                    middleware;
y Ontology oriented
y Data oriented                 q   Event interface:
                                      3 it is the component in charge of asynchronously notifying the
                                         application about the income of a new tuple or about the fact a new
                                         node has been connected/disconnected to the node’s
                                         neighborhood;

                                q   TOTA engine: the core of TOTA
                                      3 it is in charge of maintaining the TOTA network by storing the
                                         references to neighboring nodes and to manage tuple’s propagation
                                         by opening communication socket to send and receive tuples.




  Context-Aware Middleware                                                         Argomenti avanzati di Ingegneria del Software – 39
TOTA: API


Introduction

Possible approaches
                               q   void inject(Tuple t): it is used to inject the tuple passed as an argument
y Classification                    in the TOTA network;
y Object oriented
y Ontology oriented
                               q   ArrayList read(Tuple t): it returns a collection of tuples locally present in
y Data oriented                    the tuple space and matching the template passed as parameter;
                               q   ArrayList delete(Tuple t): it extract from the local middleware all the
                                   tuples matching the template and return them to the invoking component;
                               q   void subscribe(Tuple t, String reaction): it associates the execution of
                                   a reaction method in the component in response to the occurrence of
                                   events matching the template tuple passed as first parameter;
                               q   void unsubscribe(Tuple t, String reaction): it removes matching
                                   subscriptions.




  Context-Aware Middleware                                                          Argomenti avanzati di Ingegneria del Software – 40
Introduction

Possible approaches

The end




                             The end




  Context-Aware Middleware             Argomenti avanzati di Ingegneria del Software – 41

Más contenido relacionado

La actualidad más candente

1 deus leaflet wp0
1 deus leaflet wp01 deus leaflet wp0
1 deus leaflet wp0
imec.archive
 
An IOT Based Low Power Health Monitoring with Active Personal Assistance
An IOT Based Low Power Health Monitoring with Active Personal AssistanceAn IOT Based Low Power Health Monitoring with Active Personal Assistance
An IOT Based Low Power Health Monitoring with Active Personal Assistance
ijtsrd
 
Enabling High Level Application Development In The Internet Of Things
Enabling High Level Application Development In The Internet Of ThingsEnabling High Level Application Development In The Internet Of Things
Enabling High Level Application Development In The Internet Of Things
Pankesh Patel
 
A Data Hiding Techniques Based on Length of English Text using DES and Attack...
A Data Hiding Techniques Based on Length of English Text using DES and Attack...A Data Hiding Techniques Based on Length of English Text using DES and Attack...
A Data Hiding Techniques Based on Length of English Text using DES and Attack...
IJORCS
 

La actualidad más candente (18)

IOT - Design Principles of Connected Devices
IOT - Design Principles of Connected DevicesIOT - Design Principles of Connected Devices
IOT - Design Principles of Connected Devices
 
1 deus leaflet wp0
1 deus leaflet wp01 deus leaflet wp0
1 deus leaflet wp0
 
User Controlled Privacy in Participatory Sensing
User Controlled Privacy in Participatory SensingUser Controlled Privacy in Participatory Sensing
User Controlled Privacy in Participatory Sensing
 
Towards Pervasive Computing Environments With Cloud Services
Towards Pervasive Computing Environments With Cloud ServicesTowards Pervasive Computing Environments With Cloud Services
Towards Pervasive Computing Environments With Cloud Services
 
A NOVEL SECURITY PROTOCOL FOR WIRELESS SENSOR NETWORKS BASED ON ELLIPTIC CURV...
A NOVEL SECURITY PROTOCOL FOR WIRELESS SENSOR NETWORKS BASED ON ELLIPTIC CURV...A NOVEL SECURITY PROTOCOL FOR WIRELESS SENSOR NETWORKS BASED ON ELLIPTIC CURV...
A NOVEL SECURITY PROTOCOL FOR WIRELESS SENSOR NETWORKS BASED ON ELLIPTIC CURV...
 
Secure final
Secure finalSecure final
Secure final
 
An IOT Based Low Power Health Monitoring with Active Personal Assistance
An IOT Based Low Power Health Monitoring with Active Personal AssistanceAn IOT Based Low Power Health Monitoring with Active Personal Assistance
An IOT Based Low Power Health Monitoring with Active Personal Assistance
 
"Parallel and Distributed Computing: BOINC Grid Implementation" por Rodrigo N...
"Parallel and Distributed Computing: BOINC Grid Implementation" por Rodrigo N..."Parallel and Distributed Computing: BOINC Grid Implementation" por Rodrigo N...
"Parallel and Distributed Computing: BOINC Grid Implementation" por Rodrigo N...
 
Ws_INREDIS_Publicaciones_científicas_2009-2010
Ws_INREDIS_Publicaciones_científicas_2009-2010Ws_INREDIS_Publicaciones_científicas_2009-2010
Ws_INREDIS_Publicaciones_científicas_2009-2010
 
Enabling High Level Application Development In The Internet Of Things
Enabling High Level Application Development In The Internet Of ThingsEnabling High Level Application Development In The Internet Of Things
Enabling High Level Application Development In The Internet Of Things
 
Pervasive Computing Applications And Its Security Issues & Challenges
Pervasive Computing Applications And Its Security Issues & ChallengesPervasive Computing Applications And Its Security Issues & Challenges
Pervasive Computing Applications And Its Security Issues & Challenges
 
A Data Hiding Techniques Based on Length of English Text using DES and Attack...
A Data Hiding Techniques Based on Length of English Text using DES and Attack...A Data Hiding Techniques Based on Length of English Text using DES and Attack...
A Data Hiding Techniques Based on Length of English Text using DES and Attack...
 
Research Inventy : International Journal of Engineering and Science
Research Inventy : International Journal of Engineering and ScienceResearch Inventy : International Journal of Engineering and Science
Research Inventy : International Journal of Engineering and Science
 
Sirris presentation
Sirris presentationSirris presentation
Sirris presentation
 
Microsoft System Center 2012 Delivering better IT Management
Microsoft System Center 2012 Delivering better IT ManagementMicrosoft System Center 2012 Delivering better IT Management
Microsoft System Center 2012 Delivering better IT Management
 
WIRELESS SENSORS INTEGRATION INTO INTERNET OF THINGS AND THE SECURITY PRIMITIVES
WIRELESS SENSORS INTEGRATION INTO INTERNET OF THINGS AND THE SECURITY PRIMITIVESWIRELESS SENSORS INTEGRATION INTO INTERNET OF THINGS AND THE SECURITY PRIMITIVES
WIRELESS SENSORS INTEGRATION INTO INTERNET OF THINGS AND THE SECURITY PRIMITIVES
 
76 s201913
76 s20191376 s201913
76 s201913
 
Collation of Mobile operatives
Collation of Mobile operativesCollation of Mobile operatives
Collation of Mobile operatives
 

Similar a A survey about context-aware middleware

The real time publisher subscriber inter-process communication model for dist...
The real time publisher subscriber inter-process communication model for dist...The real time publisher subscriber inter-process communication model for dist...
The real time publisher subscriber inter-process communication model for dist...
yancha1973
 
Invited Talk at TU Graz
Invited Talk at TU GrazInvited Talk at TU Graz
Invited Talk at TU Graz
Walid Maalej
 
MICE: Monitoring and modelIng of Context Evolution
MICE: Monitoring and modelIng of Context EvolutionMICE: Monitoring and modelIng of Context Evolution
MICE: Monitoring and modelIng of Context Evolution
Luca Berardinelli
 

Similar a A survey about context-aware middleware (20)

Parallel and Distributed Computing: BOINC Grid Implementation Paper
Parallel and Distributed Computing: BOINC Grid Implementation PaperParallel and Distributed Computing: BOINC Grid Implementation Paper
Parallel and Distributed Computing: BOINC Grid Implementation Paper
 
The real time publisher subscriber inter-process communication model for dist...
The real time publisher subscriber inter-process communication model for dist...The real time publisher subscriber inter-process communication model for dist...
The real time publisher subscriber inter-process communication model for dist...
 
SECURITY FOR SOFTWARE-DEFINED (CLOUD, SDN AND NFV) INFRASTRUCTURES – ISSUES A...
SECURITY FOR SOFTWARE-DEFINED (CLOUD, SDN AND NFV) INFRASTRUCTURES – ISSUES A...SECURITY FOR SOFTWARE-DEFINED (CLOUD, SDN AND NFV) INFRASTRUCTURES – ISSUES A...
SECURITY FOR SOFTWARE-DEFINED (CLOUD, SDN AND NFV) INFRASTRUCTURES – ISSUES A...
 
F5 network presenation 2013 Q1
F5 network presenation 2013 Q1F5 network presenation 2013 Q1
F5 network presenation 2013 Q1
 
The Management of The Future Internet With SDN and NFV
The Management of The Future Internet With SDN and NFV The Management of The Future Internet With SDN and NFV
The Management of The Future Internet With SDN and NFV
 
Magpie Smart Energy Brochure
Magpie  Smart Energy BrochureMagpie  Smart Energy Brochure
Magpie Smart Energy Brochure
 
Why Network Functions Virtualization sdn?
Why Network Functions Virtualization sdn?Why Network Functions Virtualization sdn?
Why Network Functions Virtualization sdn?
 
Virtuora Catalog_lowres
Virtuora Catalog_lowresVirtuora Catalog_lowres
Virtuora Catalog_lowres
 
Smart Grid Telecommunication Challenges
Smart Grid Telecommunication ChallengesSmart Grid Telecommunication Challenges
Smart Grid Telecommunication Challenges
 
Invited Talk at TU Graz
Invited Talk at TU GrazInvited Talk at TU Graz
Invited Talk at TU Graz
 
Secure Desktop Computing In the Cloud
Secure Desktop Computing In the CloudSecure Desktop Computing In the Cloud
Secure Desktop Computing In the Cloud
 
SDN
SDNSDN
SDN
 
IRJET- Build SDN with Openflow Controller
IRJET-  	  Build SDN with Openflow ControllerIRJET-  	  Build SDN with Openflow Controller
IRJET- Build SDN with Openflow Controller
 
Network Programmability for Developers: Why It's Time to Care
Network Programmability for Developers: Why It's Time to CareNetwork Programmability for Developers: Why It's Time to Care
Network Programmability for Developers: Why It's Time to Care
 
A Guide on What Are Microservices: Pros, Cons, Use Cases, and More
A Guide on What Are Microservices: Pros, Cons, Use Cases, and MoreA Guide on What Are Microservices: Pros, Cons, Use Cases, and More
A Guide on What Are Microservices: Pros, Cons, Use Cases, and More
 
55 60
55 6055 60
55 60
 
Thesis presentation: Middleware for Ubicomp - A Model Driven Development Appr...
Thesis presentation: Middleware for Ubicomp - A Model Driven Development Appr...Thesis presentation: Middleware for Ubicomp - A Model Driven Development Appr...
Thesis presentation: Middleware for Ubicomp - A Model Driven Development Appr...
 
MICE: Monitoring and modelIng of Context Evolution
MICE: Monitoring and modelIng of Context EvolutionMICE: Monitoring and modelIng of Context Evolution
MICE: Monitoring and modelIng of Context Evolution
 
Cloud Computing, SOA and Web 2.0, an inevitable convergence
Cloud Computing, SOA and Web 2.0, an inevitable convergenceCloud Computing, SOA and Web 2.0, an inevitable convergence
Cloud Computing, SOA and Web 2.0, an inevitable convergence
 
Cloud Computing, SOA and Web 2.0, an inevitable convergence
Cloud Computing, SOA and Web 2.0, an inevitable convergenceCloud Computing, SOA and Web 2.0, an inevitable convergence
Cloud Computing, SOA and Web 2.0, an inevitable convergence
 

Último

EIS-Webinar-Prompt-Knowledge-Eng-2024-04-08.pptx
EIS-Webinar-Prompt-Knowledge-Eng-2024-04-08.pptxEIS-Webinar-Prompt-Knowledge-Eng-2024-04-08.pptx
EIS-Webinar-Prompt-Knowledge-Eng-2024-04-08.pptx
Earley Information Science
 
Artificial Intelligence: Facts and Myths
Artificial Intelligence: Facts and MythsArtificial Intelligence: Facts and Myths
Artificial Intelligence: Facts and Myths
Joaquim Jorge
 

Último (20)

GenAI Risks & Security Meetup 01052024.pdf
GenAI Risks & Security Meetup 01052024.pdfGenAI Risks & Security Meetup 01052024.pdf
GenAI Risks & Security Meetup 01052024.pdf
 
Exploring the Future Potential of AI-Enabled Smartphone Processors
Exploring the Future Potential of AI-Enabled Smartphone ProcessorsExploring the Future Potential of AI-Enabled Smartphone Processors
Exploring the Future Potential of AI-Enabled Smartphone Processors
 
Presentation on how to chat with PDF using ChatGPT code interpreter
Presentation on how to chat with PDF using ChatGPT code interpreterPresentation on how to chat with PDF using ChatGPT code interpreter
Presentation on how to chat with PDF using ChatGPT code interpreter
 
[2024]Digital Global Overview Report 2024 Meltwater.pdf
[2024]Digital Global Overview Report 2024 Meltwater.pdf[2024]Digital Global Overview Report 2024 Meltwater.pdf
[2024]Digital Global Overview Report 2024 Meltwater.pdf
 
EIS-Webinar-Prompt-Knowledge-Eng-2024-04-08.pptx
EIS-Webinar-Prompt-Knowledge-Eng-2024-04-08.pptxEIS-Webinar-Prompt-Knowledge-Eng-2024-04-08.pptx
EIS-Webinar-Prompt-Knowledge-Eng-2024-04-08.pptx
 
Driving Behavioral Change for Information Management through Data-Driven Gree...
Driving Behavioral Change for Information Management through Data-Driven Gree...Driving Behavioral Change for Information Management through Data-Driven Gree...
Driving Behavioral Change for Information Management through Data-Driven Gree...
 
08448380779 Call Girls In Friends Colony Women Seeking Men
08448380779 Call Girls In Friends Colony Women Seeking Men08448380779 Call Girls In Friends Colony Women Seeking Men
08448380779 Call Girls In Friends Colony Women Seeking Men
 
ProductAnonymous-April2024-WinProductDiscovery-MelissaKlemke
ProductAnonymous-April2024-WinProductDiscovery-MelissaKlemkeProductAnonymous-April2024-WinProductDiscovery-MelissaKlemke
ProductAnonymous-April2024-WinProductDiscovery-MelissaKlemke
 
Apidays Singapore 2024 - Building Digital Trust in a Digital Economy by Veron...
Apidays Singapore 2024 - Building Digital Trust in a Digital Economy by Veron...Apidays Singapore 2024 - Building Digital Trust in a Digital Economy by Veron...
Apidays Singapore 2024 - Building Digital Trust in a Digital Economy by Veron...
 
Finology Group – Insurtech Innovation Award 2024
Finology Group – Insurtech Innovation Award 2024Finology Group – Insurtech Innovation Award 2024
Finology Group – Insurtech Innovation Award 2024
 
GenCyber Cyber Security Day Presentation
GenCyber Cyber Security Day PresentationGenCyber Cyber Security Day Presentation
GenCyber Cyber Security Day Presentation
 
How to convert PDF to text with Nanonets
How to convert PDF to text with NanonetsHow to convert PDF to text with Nanonets
How to convert PDF to text with Nanonets
 
Artificial Intelligence: Facts and Myths
Artificial Intelligence: Facts and MythsArtificial Intelligence: Facts and Myths
Artificial Intelligence: Facts and Myths
 
The Role of Taxonomy and Ontology in Semantic Layers - Heather Hedden.pdf
The Role of Taxonomy and Ontology in Semantic Layers - Heather Hedden.pdfThe Role of Taxonomy and Ontology in Semantic Layers - Heather Hedden.pdf
The Role of Taxonomy and Ontology in Semantic Layers - Heather Hedden.pdf
 
Workshop - Best of Both Worlds_ Combine KG and Vector search for enhanced R...
Workshop - Best of Both Worlds_ Combine  KG and Vector search for  enhanced R...Workshop - Best of Both Worlds_ Combine  KG and Vector search for  enhanced R...
Workshop - Best of Both Worlds_ Combine KG and Vector search for enhanced R...
 
Boost PC performance: How more available memory can improve productivity
Boost PC performance: How more available memory can improve productivityBoost PC performance: How more available memory can improve productivity
Boost PC performance: How more available memory can improve productivity
 
08448380779 Call Girls In Civil Lines Women Seeking Men
08448380779 Call Girls In Civil Lines Women Seeking Men08448380779 Call Girls In Civil Lines Women Seeking Men
08448380779 Call Girls In Civil Lines Women Seeking Men
 
Tech Trends Report 2024 Future Today Institute.pdf
Tech Trends Report 2024 Future Today Institute.pdfTech Trends Report 2024 Future Today Institute.pdf
Tech Trends Report 2024 Future Today Institute.pdf
 
A Domino Admins Adventures (Engage 2024)
A Domino Admins Adventures (Engage 2024)A Domino Admins Adventures (Engage 2024)
A Domino Admins Adventures (Engage 2024)
 
Data Cloud, More than a CDP by Matt Robison
Data Cloud, More than a CDP by Matt RobisonData Cloud, More than a CDP by Matt Robison
Data Cloud, More than a CDP by Matt Robison
 

A survey about context-aware middleware

  • 1. CONTEXT-AWARE MIDDLEWARE Marco Bessi Leonardo Bruni June 16, 2009 Context-Aware Middleware Argomenti avanzati di Ingegneria del Software – 1
  • 2. Outline Introduction Introduction Possible approaches Middleware Traditional MW New Generation MW Is it necessary? Requirements Problems Possible approaches Classification Object oriented Ontology oriented Data oriented Context-Aware Middleware Argomenti avanzati di Ingegneria del Software – 2
  • 3. Introduction y Middleware y Traditional MW y New Generation MW y Is it necessary? y Requirements y Problems Possible approaches Introduction Context-Aware Middleware Argomenti avanzati di Ingegneria del Software – 3
  • 4. Middleware Introduction y Middleware y Traditional MW y New Generation MW y Is it necessary? y Requirements y Problems Possible approaches “Middleware is an enabling layer of software that resides between the application program and the networked layer of heterogeneous platforms and protocols. It decouples applications from any dependencies on the plumbing layer that consists of heterogeneous operating systems, hardware platforms and communication protocols. (Source: Davis Linthicum)” Context-Aware Middleware Argomenti avanzati di Ingegneria del Software – 4
  • 5. From Traditional Middleware ... Introduction Existing middleware technologies have been built adhering to the metaphor of y Middleware y Traditional MW the Black Box. y New Generation MW y Is it necessary? It provides: y Requirements q communication and coordination services; y Problems Possible approaches q special application services; q management services. Traditional distributed system assume a stationary execution environment that contrast with the extremely dynamic scenario of the context-aware computing. Context-Aware Middleware Argomenti avanzati di Ingegneria del Software – 5
  • 6. ... to New Generation Middleware Introduction Modern distributed applications need a middleware that is capable of adapting y Middleware y Traditional MW to environment changes and that supports the required level of quality of y New Generation MW service. y Is it necessary? y Requirements Context-awareness involves: y Problems q acquisition of contextual information; Possible approaches q reasoning about context; q modifying ones behavior based on the current context. It would define a common model of context. It would also ensure that different agents in the environment have a common semantic understanding of contextual information. Context-Aware Middleware Argomenti avanzati di Ingegneria del Software – 6
  • 7. Is it necessary? Introduction y Middleware q it simplify the task of creating and maintaining context-aware systems; y Traditional MW y New Generation MW q it provide uniform abstraction and reliable service for common application; y Is it necessary? q it make it easy to incrementally deploy new sensors and context-aware y Requirements y Problems agents in the environment; Possible approaches q it would be independent of hardware, operating system and programming language. Context-Aware Middleware Argomenti avanzati di Ingegneria del Software – 7
  • 8. Requirements [1] Introduction Some requirements different from traditional middleware have to be considered y Middleware y Traditional MW for the context-aware scenario. y New Generation MW y Is it necessary? q support for heterogeneity: hardware components ranging from y Requirements resource-poor sensors, actuators and mobile client devices to y Problems high-performance servers must be supported, as must a variety of Possible approaches networking interfaces and programming language; q support for mobility: all components can be mobile, and the communication protocols must therefore support appropriately flexible forms of routing; context information may need to migrate with context-aware components; q scalability: context processing components and communication protocol must perform adequately in very changing domains; q support for privacy: flows of context information between the distributed components of a context-aware system must be controlling according to user’s privacy needs and expectations; Context-Aware Middleware Argomenti avanzati di Ingegneria del Software – 8
  • 9. Requirements [2] Introduction y Middleware q tolerance for component failures: sensors are likely to fail in the y Traditional MW ordinary operation of a context-aware system; disconnection may also y New Generation MW y Is it necessary? occur; y Requirements q ease of deployment and configuration: it must be easily deployed and y Problems configured to meet user and environmental requirements; Possible approaches q dynamic reconfiguration: detecting changes in available resources and reallocating them or notify the application to change its behavior; q asynchronous paradigm: decoupling the client and server components and delivering multicast messages. Context-Aware Middleware Argomenti avanzati di Ingegneria del Software – 9
  • 10. Problems [1] Introduction Balance of user control y Middleware y Traditional MW Context-aware applications: y New Generation MW y Is it necessary? q not only require middleware for distribution transparency of components; y Requirements y Problems q but also support personalization and adaptation based on Possible approaches context-awareness. But, context-aware applications may not always adapt as the user expects, and may cause users to feel loss of control over the behavior of their applications. Autonomous context-aware systems must provide mechanisms to strike a suitable balance between user control and software autonomy. Context-Aware Middleware Argomenti avanzati di Ingegneria del Software – 10
  • 11. Problems [2]: Conflicts Introduction A context-aware system may modify its own behavior by means of adaptation. y Middleware y Traditional MW Applications may introduce ambiguities, contradictions or other logical y New Generation MW y Is it necessary? inconsistencies. y Requirements y Problems Typologies: Possible approaches q intra-profile conflict: a conflict exist inside the profile of an application running on a particular device; it is local to a middleware instance; q inter-profile conflict: a conflict exist between the profiles of applications running on different devices; it is distributed among various middleware instances. Conflict resolution mechanism Whenever a service that incorporates a conflict is requested,a conflict resolution mechanism has to be run to solve the conflict and find out which policy to use to deliver the service. Context-Aware Middleware Argomenti avanzati di Ingegneria del Software – 11
  • 12. Introduction Possible approaches y Classification y Object oriented y Ontology oriented y Data oriented Possible approaches Context-Aware Middleware Argomenti avanzati di Ingegneria del Software – 12
  • 13. Classification Introduction Possible approaches q Object-oriented middleware: y Classification y Object oriented 3 Reflection and reflective middleware; y Ontology oriented y Data oriented 3 Meta-space, meta-model, meta-object. q Ontology-oriented middleware: 3 SOCAM: ontology, architecture, performance. q Data-oriented middleware: 3 Publish-subscribe: adding context, API, SPCF protocol; 3 TOTA: tuples, architecture, API. Context-Aware Middleware Argomenti avanzati di Ingegneria del Software – 13
  • 14. Background on reflection Introduction A reflection system is one that is capable of reasoning about itself (besides Possible approaches reasoning about the application domain). y Classification y Object oriented q In a reflective system, we call y Ontology oriented y Data oriented base-level the part of the system that perform processing about the application domain as in conventional systems; meta-level the part of the system whose subject of computation is the system’s self representation; meta-object the entities that populate the meta-level. q Two styles of reflection procedural: the representation of the system is a program that is generally written in the same language of the system; declarative: uses a set of declarative statements as a representation of the system. Context-Aware Middleware Argomenti avanzati di Ingegneria del Software – 14
  • 15. Reflective middleware: introduction Introduction Possible approaches q language independent reflective architecture1 featuring: y Classification y Object oriented 3 a per object meta-space; y Ontology oriented y Data oriented 3 the use of meta-model to structure meta-spaces; 3 the use of object graphs for composite components. q focus on: 3 configuration; 3 reconfiguration; 3 extension. 1 F. M. Costa, H. A. Duran, N. Parlavantzas, K. B. Saikoski, G. Blair, G. Coulson: Lancaster University Context-Aware Middleware Argomenti avanzati di Ingegneria del Software – 15
  • 16. General principles Introduction Possible approaches q use of the CORBA IDL to describe computational interface y Classification y Object oriented 3 object can have multiple interfaces y Ontology oriented y Data oriented 3 three kinds of interfaces supported: operational, stream and signal 3 explicit bindings (local or distributed) can be created between compatible interfaces q use of procedural reflection q meta-spaces support objects on a per object (or per interface) basis 3 a fine level of control can be obtained 3 enforces consistency q the meta-space is structured as a set of four orthogonal meta-models 3 simplifies the meta-interface by maintaining a separation of concern between different system aspects 3 other meta-models can be defined Context-Aware Middleware Argomenti avanzati di Ingegneria del Software – 16
  • 17. The structure of meta-space Introduction Possible approaches y Classification y Object oriented y Ontology oriented y Data oriented Context-Aware Middleware Argomenti avanzati di Ingegneria del Software – 17
  • 18. Encapsulation meta-model Introduction The encapsulation meta-model relates to the set of methods and associated Possible approaches attributes of a particular object interface. y Classification y Object oriented y Ontology oriented y Data oriented Context-Aware Middleware Argomenti avanzati di Ingegneria del Software – 18
  • 19. Compositional meta-model Introduction The compositional meta-model deals with the way a composite object is Possible approaches composed, i.e. how its components are inter-connected, and how these y Classification y Object oriented connection are manipulated. The composition of an object is represented as an y Ontology oriented object graph. y Data oriented Context-Aware Middleware Argomenti avanzati di Ingegneria del Software – 19
  • 20. Environment meta-object Introduction The environment meta-object is in charge of the environmental computation of Possible approaches an object interface, i.e. how the computation is done. It deals with message y Classification y Object oriented arrivals, dispatching, marshalling, concurrency control, etc. y Ontology oriented y Data oriented Context-Aware Middleware Argomenti avanzati di Ingegneria del Software – 20
  • 21. Resource meta-model Introduction The resource meta-model is concerned with both the resource awareness and Possible approaches resource management of objects in the platform. Resource provide an y Classification y Object oriented operating system independent view of threads, buffer, etc. Resource are y Ontology oriented managed by resource managers, which map higher level abstraction of y Data oriented resource onto lower ones. Context-Aware Middleware Argomenti avanzati di Ingegneria del Software – 21
  • 22. Performance evaluation Introduction Possible approaches y Classification y Object oriented y Ontology oriented y Data oriented Context-Aware Middleware Argomenti avanzati di Ingegneria del Software – 22
  • 23. Ontology oriented Introduction Possible approaches q Ontology y Classification y Object oriented 3 formal explicit description of concepts in a domain of discourse y Ontology oriented y Data oriented 3 provides a vocabulary for representing knowledge and for describing specific situation q OWL (Web Ontology Language) 3 is an Open W3C standard 3 is much expressive than other languages such as RDFS q First-order predicate calculus 3 basic form: Predicate(Subject, Value) 3 e.g.: Location(Tom, bathroom) ; Status(Door, closed) 3 possible to combine the predicate and Boolean algebra 3 e.g.: FoodPreference(FamilyMembers, foodItems) ≡ FoodPreference(Tom, FoodList1) ∨ FoodPreference(Alice, FoodList2) Context-Aware Middleware Argomenti avanzati di Ingegneria del Software – 23
  • 24. Representation of context Introduction Possible approaches y Classification y Object oriented y Ontology oriented y Data oriented Context-Aware Middleware Argomenti avanzati di Ingegneria del Software – 24
  • 25. Representation of context Introduction Possible approaches y Classification y Object oriented y Ontology oriented y Data oriented raw data Context-Aware Middleware Argomenti avanzati di Ingegneria del Software – 24
  • 26. Representation of context Introduction Possible approaches y Classification y Object oriented y Ontology oriented y Data oriented raw data ID = John, Activity = lie down, Place = bed Context-Aware Middleware Argomenti avanzati di Ingegneria del Software – 24
  • 27. Representation of context Introduction Possible approaches y Classification y Object oriented y Ontology oriented y Data oriented (John,has posture,lie-down) (John,location,bed) raw data ID = John, Activity = lie down, Place = bed Context-Aware Middleware Argomenti avanzati di Ingegneria del Software – 24
  • 28. Representation of context Introduction Possible approaches y Classification y Object oriented y Ontology oriented y Data oriented (John,has posture,lie-down) (John,location,bed) raw data ID = John, Activity = lie down, Place = bed Context-Aware Middleware Argomenti avanzati di Ingegneria del Software – 24
  • 29. Advantages of an ontology-based approach Introduction Possible approaches q describes context semantically in a way which is independent of y Classification programming language or underlying operating system y Object oriented y Ontology oriented q enables formal analysis of domain knowledge y Data oriented q takes in account the following characteristics of context information: 3 context information has a great variety 3 context information varies in different sub-domains 3 context information is interrelated 3 context information inconsistent q shares common understanding of the structure of context information q enables reuse of domain knowledge Context-Aware Middleware Argomenti avanzati di Ingegneria del Software – 25
  • 30. SOCAM Introduction Possible approaches q SOCAM2 : Service-Oriented Context-Aware Middleware y Classification y Object oriented 3 an architecture for the building and rapid prototyping of y Ontology oriented context-aware services y Data oriented 3 it provides support for s acquiring s discovering s interpreting s accessing various contexts to build context-aware services 3 it’s a distributed middleware 2 Tao Gu, Hung Keng Pung, Da Qing Zhang: University of Singapore Context-Aware Middleware Argomenti avanzati di Ingegneria del Software – 26
  • 31. SOCAM: Design of context ontology Introduction Possible approaches q two-layer hierarchical approach y Classification y Object oriented Common upper ontology: it captures general concepts y Ontology oriented y Data oriented Domain-specific ontology: it’s a collection of low-level ontologies which apply to different sub-domains Context-Aware Middleware Argomenti avanzati di Ingegneria del Software – 27
  • 32. SOCAM: Context classification Introduction Possible approaches q two main categories y Classification y Object oriented direct context: directly acquired or obtained from a context provider y Ontology oriented y Data oriented sensed context: acquired from physical sensor defined context: defined by a user indirect context: derived by interpreting direct context through context reasoning Context-Aware Middleware Argomenti avanzati di Ingegneria del Software – 28
  • 33. SOCAM: Architecture Introduction Possible approaches y Classification y Object oriented y Ontology oriented y Data oriented Context-Aware Middleware Argomenti avanzati di Ingegneria del Software – 29
  • 34. SOCAM: Performance evaluation Introduction Possible approaches y Classification y Object oriented y Ontology oriented y Data oriented Context-Aware Middleware Argomenti avanzati di Ingegneria del Software – 30
  • 35. Publish-Subscribe: Why add context? [1] Introduction Complex communication pattern need to take into account the situation in which Possible approaches the information to be communicated is produced or consumed. y Classification y Object oriented To convey this information into the published messages, Publish-Subscribe (and y Ontology oriented y Data oriented its content-based incarnation) encode the “context” of the publisher into the messages. This approach is limiting and inefficient. Context-Aware Middleware Argomenti avanzati di Ingegneria del Software – 31
  • 36. Publish-Subscribe: Why add context? [2] Introduction Matching inversion Possible approaches Conventional content-based publish-subscribe system: y Classification y Object oriented q messages hold data, subscriptions hold constraints on these data; y Ontology oriented y Data oriented q the data model and the matching semantics are unsuited for this case. Necessity to invert the conventional matching process to consider constraints embedded into messages and data embedded into subscriptions. Efficiency q Reduce the overhead of the subscription and unsubscription processes (saving bandwidth); q Reduce the time required to match messages. Separation of concerns Components in charge of publishing messages and subscribing to them differ from those in charge to detecting and communicating context change. Context-Aware Middleware Argomenti avanzati di Ingegneria del Software – 32
  • 37. Publish-Subscribe: API Introduction Each node n can3 : Possible approaches y Classification q set its current context by invoking the setContext(c) operation; y Object oriented y Ontology oriented q subscribe to messages matching the content filter fmsg and coming from y Data oriented publishers whose context matches the context filter fctx through the subscribe(fmsg ; fctx ); the unsubscribe(fmsg ; fctx ) operation does the opposite; q publish messages for subscribers whose context matches the context filter fctx by invoking the publish(m; fctx ) operation. 3 G. Cugola, A. Margara: Politecnico di Milano; M. Migliavacca: Imperial College London Context-Aware Middleware Argomenti avanzati di Ingegneria del Software – 33
  • 38. Publish-Subscribe: Shortest Path Context Forwarding (SPCF) protocol Introduction Messages are forwarded along the shortest path tree rooted at the publisher, Possible approaches using information about context and interests of downstream clients to decide y Classification y Object oriented the branches to follow and those to prune. y Ontology oriented y Data oriented q Each broker runs a link state protocol to built its own view of the dispatching network (without the client) and calculate the shortest path trees (SPT) rooted to each broker in the network; q Message forwarding uses these trees together with two tables (which are kept by each broker): 3 context table: it maps brokers (identifier) to the set of contexts of their clients; 3 content table: it stores, for each broker Bp , each context cp among those of the clients attached to Bp , and each neighbor N, the set of content filters and contexts coming from attached to brokers that are downstream along N in the SPT rooted at Bp . Context-Aware Middleware Argomenti avanzati di Ingegneria del Software – 34
  • 39. Tuples On The Air (TOTA): Approach Introduction The key objectives of TOTA 4 are: Possible approaches y Classification q promotes decoupled and adaptive interactions by providing application y Object oriented components with simple and expressive context information; y Ontology oriented y Data oriented q actively support adaptivity by discharging application components from duty of dealing with network and application dynamics. Relies on “spatially distributed tuples”. TOTA adds and updates information in these tuples to reflect context and connectivity. Agents “sense” these tuples to get context information and to communicate. 4 M. Mamei, F. Zambonelli, L. Leonardi: Universit di Modena e Reggio Emilia Context-Aware Middleware Argomenti avanzati di Ingegneria del Software – 35
  • 40. TOTA: Overview Introduction Distributed tuples used to represent context and to support communication; Possible approaches y Classification q Tuples are not associated with a node; y Object oriented q Tuples autonomously propagate and diffuse through the network. y Ontology oriented y Data oriented Computational model q Peer-to-peer network; q Nodes may be mobile and have a neighborhood; q Each agent can store tuples and “lets” tuples diffuse through network. Context-Aware Middleware Argomenti avanzati di Ingegneria del Software – 36
  • 41. TOTA tuples and propagation rule Introduction TOTA tuples Possible approaches y Classification q Injected into the system from a particular node; y Object oriented q Defined by “content” and “propagation rule” T = (C, P ); y Ontology oriented y Data oriented 3 C is an ordered set of typed fields representing the information carried on by the tuple; 3 P determines how tuple is distributed and propagated in the network. Propagation rule q Determines scope of the tuple (i.e. distance at which such tuple should be propagated); q Evaluated at each hop; 3 Determines how the tuples content may be changed; 3 Determines how propagation may be affected by presence/absence of other tuples. Context-Aware Middleware Argomenti avanzati di Ingegneria del Software – 37
  • 42. TOTA: Architecture [1] Introduction Possible approaches y Classification y Object oriented y Ontology oriented y Data oriented Context-Aware Middleware Argomenti avanzati di Ingegneria del Software – 38
  • 43. TOTA: Architecture [2] Introduction The TOTA middleware is constituted by three main parts: Possible approaches y Classification q TOTA API: it is the main interface between the application and the y Object oriented middleware; y Ontology oriented y Data oriented q Event interface: 3 it is the component in charge of asynchronously notifying the application about the income of a new tuple or about the fact a new node has been connected/disconnected to the node’s neighborhood; q TOTA engine: the core of TOTA 3 it is in charge of maintaining the TOTA network by storing the references to neighboring nodes and to manage tuple’s propagation by opening communication socket to send and receive tuples. Context-Aware Middleware Argomenti avanzati di Ingegneria del Software – 39
  • 44. TOTA: API Introduction Possible approaches q void inject(Tuple t): it is used to inject the tuple passed as an argument y Classification in the TOTA network; y Object oriented y Ontology oriented q ArrayList read(Tuple t): it returns a collection of tuples locally present in y Data oriented the tuple space and matching the template passed as parameter; q ArrayList delete(Tuple t): it extract from the local middleware all the tuples matching the template and return them to the invoking component; q void subscribe(Tuple t, String reaction): it associates the execution of a reaction method in the component in response to the occurrence of events matching the template tuple passed as first parameter; q void unsubscribe(Tuple t, String reaction): it removes matching subscriptions. Context-Aware Middleware Argomenti avanzati di Ingegneria del Software – 40
  • 45. Introduction Possible approaches The end The end Context-Aware Middleware Argomenti avanzati di Ingegneria del Software – 41