SlideShare une entreprise Scribd logo
1  sur  74
PhD. Dissertation
Candidate:
Ricardo Tesoriero
Supervisors:
PhD. José Antonio Gallud Lázaro
PhD. María Dolores Lozano Pérez
Introduction
CAUCE Model-driven Development
CAUCE CASE tool
Conclusions and Future Work
Introduction

CAUCE MDD

CAUCE CASE

Inspiration
Major trends in computing
Calm Technology
Context awareness
Related Work

Conclusions
“The world is not a desktop”
“A good tool is an invisible tool. By invisible,
we mean that the tool does not intrude on
your consciousness; you focus on the task,
not the tool.”
Eyeglasses are a good tool
Mark Weiser, November 7th, 1993
The major trends in computing



Mainframe computing (N users 1 computer)
Personal computing (1 user 1 computer)
▪



Internet – widespread distributed computing
(transition)

Ubiquitous computing (N users - N computers)

Mark Weiser and John S. Brown (1997)


“Calm technology engages both the center and
the periphery of our attention, and in fact moves
back and forth between the two”
Mark Weiser and John S. Brown



By placing things in the periphery we are able to
attune many more things than we could if
everything had to be at the center



By re-centering something formerly in the
periphery we take control of it.
Context Awareness


The Context is any information that can be used to
characterize the situation of an entity. An entity is a
person, place, or object that is considered relevant to
the interaction between a user and an application,
including users and applications themselves.



A system is context-aware if it uses the context to
provide relevant information and/or services to the
user, where relevancy depends on the user's task
Understanding and using context , A. Dey, 2001
Context awareness feature space
User Information
Human Factors

Social Environment
User Task
Physical conditions

Physical Environment

Infrastructure

Light
Pressure
Acceleration
Audio
Temperature

Level
Flikering
WaveLenght

Location

There is more context than location, Albrecht Schmidt et al., 1999
Development of a set of applications in a
distributed environment
 Do not have a fixed architecture
 Deployed in heterogeneous platforms
 Connectivity affects how the information is
transported
 Multiple devices should exchange information
to carry out system tasks
 Society of entities (collaboration)
 Location of the entity
 Knowledge about which task is being performed
by entities to assist them







The capability to define metamodels to
match specific characteristics of the system,
no matter the level of abstraction it
addresses.
Tools for merging and transforming models
to reuse information from one layer of
abstraction to the next.
Tools to turn these models into source code
for different platforms


A Meta Object Facility (MOF) Metamodel for the Development of Context-Aware
Mobile Applications






Model-driven Composition of Context-aware Web Services Using ContextUML and
Aspects





Entity vision vs. service vision
Low semantic meaning (services)

Context-aware model-driven development by parameterized transformation





Handles business logic and context-dependent service behavior as two separate concerns
Focused in Web applications only (SOA) and services

Towards Context Independence in Distributed Context-aware Applications by the
Model-driven Approach





Provides contextual model independent of the application domain
Manages low level concepts only (event and service) does not support task or role concepts.
Does not take into account deployment issues, it is based on SOA

Different layers of PIMs by parameterized transformations (includes additional information)
Context is not characterized, very high level of abstraction that does not provide enough information
about context

Towards a Model-Driven Approach for Ontology-Based CAA Development: A Case
Study





Step based development
Embraces concepts such as Device, Event, Communication, Channel and Activity
Does not take into account Roles , Location, etc.
Steps are not part of a development process


Model-Driven Development of Context-Aware Services







Managing an Integrated Ubicomp Environment Using Ontologies and Reasoning






Good description of the systems
Enterprise applications only (client-server)
Lack of insulation between context and domain logic, social environment, etc.

An Ontology for Context-Aware Pervasive Computing Environments









Development process (preparation and service creation phases)
Modelling process (PI Service design, PS service design)
Low level concepts (events, queries and actions)
Lack of task, space, location and role concepts

Space composition
Location modelling is not technology independent
Notion of agent (entity)
No role based functionality
Task is taken into account
No history is supported at any level

Aspect-Oriented Model-Driven Development for Mobile Context-Aware
Computing




Combination of AOP and MDD
Attached to AspectJ
Low level concepts, instead of tasks, roles, spaces, entities and so on
Introduction

CAUCE MDD

CAUCE CASE

Conclusions

Main goal
Proposal
The analysis layer
The information layer
Analysis to information layer M2M
transformation
Mapping model
Information to source code M2T transformation


The main goal of this work is:
“The definition of a semi-formal methodology
to tackle the development of Context-aware
Applications for Ubiquitous Computing
Environments”.
1.

Perform a review of the main characteristics of CAAs for UCEs.

2.

Perform a review of the most relevant design processes to
develop CAAs for UCEs.

3.

Define a methodology together with modeling languages to
specify the design of CAAs for UCEs based on the characteristics
presented in 1.

4.

Implement a CASE tool to support the defined methodology
allowing the developer to create and edit models conforming
metamodels as defined in 3.

5.

Define and implement a set of transformations to generate the
basic structure of the system source code.

6.

Apply the process to a set of scenarios that embraces most CAS
features for UCEs to prove the validity of the proposal.
PIM
Information Layer
Software - Characteristics

Social model
Social Metamodel

Entity Context model
EC Metamodel

Referential Space model
RS Metamodel

M2T Transformation

Space model
Space Metamodel

Information Flow model
IF Metamodel
M2M Transformation

Task model
Task Metamodel

Platform Characteristics
Mapping
model
Mapping
Metamodel

Source Code

Analysis Layer
CAS - Characteristics

PSM
Introduction

CAUCE MDD

Analysis layer

Task model
Social Model
Space model

CAUCE CASE

Information layer

Conclusions
Transformation


The goal of this layer is the provision of
modeling tools to represent the high-level
features of CAAs for UCEs defined in (Schmidt,
1999)
Entity Factors

Social
Entity Task
Environment

Social model
Social Metamodel

Entity
Information

Time

Context-aware application feature model

Task model
Task Metamodel

Physical Environment
Physical
Infrastructure Location
Conditions

Space model
Space Metamodel
Introduction
Analysis layer

CAUCE MDD

CAUCE CASE

Information layer

Conclusions
Transformation

The TaMM provides a modeling tool to
represent the relationship between tasks and
entities that are immersed into CAS for UCEs.

Based on:
Petri Nets (Workflows) – To relate tasks and entities
Regular Expressions – To express conditions that relate the TaMM models to
SoMM and SpMM models
Workflow Concept *

TaMM Concept

Task

Task

Condition

Condition

Sequential Routing

Task dependency

Selective Routing

Task dependency

Iteration Routing

Task dependency

Parallel Routing

Task synchronization/Communication

Process

Work session

Token

Entity session

* According to the Workflow Management Coalition.
-outputCondition

-routeTask

TaskOutputCondition

Join
Condition

1

*

-outputConditions

-routeTask
1

-id : int
-socialExpression : SocialExpression
-spaceExpression : SpaceExpression
-taskExpression : TaskExpression
-logicExpression : LogicExpression
-dataExpression : DataExpression

-condition

1

1

-inputConditions

1
1

1..*

Task
-id : int

TaskInputCondition

-inputCondition
-inputCondition
FinalCondition

PreCondition
InitialCondition

1

PostCondition

1 -routeTask
-routeTask

Split

*
1
-precondition
-initialConditions
1..* -postConditions

-system_1
1

-postCondition_1
-systemTask_1
-systemTasks_1
1
1
*

SystemTask

*

-system

-finalConditions

-preConditions
1..*

1

1-system

-systemTask

1

1

1
ContextAwareSystem
1
-system

-system

-id : int
-name : string
1

-system

-routeTask

RouteTask

-routeTasks

*


System Tasks



Route Tasks
Prefix

Condition
Attribute

Metaclass

Regular
Expression

Template

[So:]

socialExpression

SocialInstance
SocialSynchronization
SocialAlternative

Word
Concatenation
Union

socialInstance
socialExpr , socialExpr
socialExpr + socialExpr

[Ta:]

taskExpression

TaskPerformance
TaskDependence
TaskAlternative
TaskRepetition
TaskAtLeastOnce

Word
Concatenation
Union
Kleene Clausure
KleeneClausure +

socialInstance(task)
taskExpr , taskExpr
taskExpr + taskExpr
taskExpr*
taskExpr!

[Sp:]

spaceExpression

SpaceEvent
SpacePath
SpaceAlternative
SpaceRepetition
SpaceAtLeastOnce

Word
Concatenation
Union
Kleene Clausure
KleeneClausure +

socialInstance(event,space)
spaceExpr , spaceExpr
spaceExpr + spaceExpr
spaceExpr*
spaceExpr!

[Lo:]

logicExpression

LogicExpression

-

(string)

[Da:]

dataExpression

DataExpression

-

socialInst(data),...
Introduction
Analysis layer

CAUCE MDD

CAUCE CASE

Information layer

Conclusions
Transformation

The SoMM provides the specification of the
relationships among individuals and group of
individuals that are part of a CAS.

Based on
Subset of Penichet’s Organization Structure Diagram (OSD)
 Elements
▪ Individual: represents particular entity instances (a
token in the workflow during a work session)
▪ Role: represents the characteristics of a group of entities
 Relationships
▪ Initialization: represents the “plays” relationship
▪ Specialization: represents inheritance
-realizes

-source

Realization
0..*
1

-id : int
-name : string

1

-realizations
-isRealizedByIndividual

0..*

SocialInstance

Instance

-individuals

0..*

-target
Role
11

Society
1
-society

-governedBy
-children
-source

-parent
0..*
0..*

-name : string

-society

Specialization
1

1

1

0..*

-id : int
-name : string

-target

-society

0..*

-generalizations

1

-society
Social model
Task model

Task model

X

Social model
Expresses task alternatives according to entity roles

Social model
Task model

X
Expresses tasks performed by actors belonging to different roles

Social model
Task model

any time

any time
Expresses task concurrency or parallelism between two or more entities

Social model
Task model
same time
same time
Expresses a synchronization points among entities

Social model
Task model

same time

same time
Introduction

CAUCE MDD

Analysis layer

CAUCE CASE

Information layer

Conclusions
Transformation

The main goal of SpMM is the expression of
location aware characteristics of CAS for UCEs
Basic concepts:
Positioning reference (space)
Space granularity (composition / grouping)
Space characteristics (generalization)
Time (regular expressions)
1

-universe
Universe

-universe

-id : int
-name : string

LocartionUnit

-universe
1
-child
Space

1
1

1

-universe
1
-universe

-groupedBy

0..*

0..*

1

-id : int
-name : string

-virtualSpaces

-locationUnit
-generalizes

0..*

1

-physicalSpaces

0..*
Grouping

VirtualSpace

-groupRelationships

PhysicalSpace

1

-parent

-contains
0..*

-parent

1
-parent

0..1
-inclusions

Contention
0..*
-container

0..*
-innerSpaces

1

0..*
-generalizations
-generalizes
0..*

1
Generalization

-child
-generalizedBy

0..*
Expresses task execution restrictions according to entity location

Space model
Task model

X
Expresses task execution restrictions according entity location history

Space model
Task model

X


Syntax sugar (abbreviations)



How to represent concepts







Initialization
Pre-conditions
Post-conditions
Roles vs. Instances
Expression calculus
Empty expression interpretations



Extensions (to represent CTT constructors)



Comparison to related work
 Based on Schmidt characteristics we expose the advantages of

this approach compared to related work
Introduction
Analysis layer

CAUCE MDD

CAUCE CASE

Information layer

Information Flow model
Entity Context model
Referential Space model

Conclusions
Transformation


The goal of this layer is the provision of modeling
tools for designers to represent the context of an
entity from the software perspective.

communication Information Flow
features
Metamodel

referential
features

Space Reference
Metamodel

Entity Context contextual
Metamodel
features

Entity Core
Metamodel

Software perspective of a CAS

essential
features

Intra-entity view

Inter-entity view

Two views of the system
Introduction

CAUCE MDD

Analysis layer

CAUCE CASE

Information layer
(Inter-entity view)

Conclusions
Transformation

The goal of the IFMM is the description of the
information flows among entities of a CASs for
UCEs
Basic concepts
Entities involved in the system
The Information flow data exchange through information flows among
entities
The Information flow data definition
How Information is delivered
1
SystemInformationFlow
-id : int
-name : string

1
-system
*

-entities
-system
-target -incomingInformationFlows

ContextAwareEntity

InformationFlow

-id : int
-name : string
+incomingFlow(entrada flow : InformationFlow)

-source -ongoingInformationFlows
1
*
1

CollectionDataDefinition

-name : string
-id : int
+flow()
1

*

-system

*

VaraibleDataDefinition
-name : string

1

-flow

-pointToPointInformationFlows

PointToPointInformationFlow

*

-broadcastInformaitonFlows

BroadcastInformationFlow
-data

-data

UnaryOperationDataDefinition

OutputData

Data

*
NotEmptyCollectionDataDefinition

InputData
1

-param

-param2

1
DataDefinition

*

TerminalDataDefinition
-definition

-name : string

SequenceDataDefinition
-param1

1
TypeDataDefinition

BinaryOperationDataDefinition
AlternativeDataDefinition

ConstantDataDefinition

1
Point to Point information flow

Entity

Output data
Input data

Entity

Broadcast information flow
Entity

Entity
Output data
Inf. Exchange
Actuator

Pooling

Event-driven
Introduction

CAUCE MDD

Analysis layer

CAUCE CASE

Information layer
(Inter-entity view)

Conclusions
Transformation

The goal of the RSMM is the definition of the
runtime environment of the entity contexts in
CASs for UCEs
Basic concepts
Context –aware entity (Context-aware entity reference)
Runtime Environment (Referential Space)
Bounding Relationship (Dependence relationship)
Cardinality
Cardinality (a Shopping cart is associated to a single
user interface)

Cardinality (the Virtual shopping is composed by
many user interfaces)

An entity reference can be defined by the Send button
A referential space can be defined by the Login interface

Dependency relationships
Session modeling

Information Exchange
Information flow model

Referential space model
Introduction

CAUCE MDD

Analysis layer

CAUCE CASE

Information layer
(Intra-entity view)

Conclusions
Transformation

The goal of the ECMM is the description of the
context that an entity is able to perceive from
the environment
Basic concepts:
Entity context
Context situation
Context Condition
Data Definition
Information flow
Referential space model model
1

-variables

EntityCore

VaraibleDataDefinition
-entity

-core
1

-target1

-source

1

UnaryOperationDataDefinition

-name : string

*

1

1

ContextAwareEntity

1

-id : int
-name : string
+incomingFlow(entrada flow : InformationFlow)
+ongoingFlow(entrada flow : InformationFlow)

EntityContext
-entity
*

1
-context

+incoming(entrada flow : InformationFlow)
+ongoing(entrada flow : InformationFlow)

-situations
-context

1

1

ContextSituation
*

-conditions

-situation

-parent

-context

LogicMemory

-name : string
+matches(entrada flow : InformationFlow)
*

ContextCondition

DictionaryMemory
1

+satisfies(entrada flow : InformationFlow) : bool

-situation
-memory

ContextMemory
-name : string

1
SensingContextCondition

-state

+match(entrada expression : string) : bool
+update(entrada expression : string)

HolderMemory

ContextMemoryCondition
-expression

1
-actions

ContextAction

-memory

1

TimeMemory

StackMemory

-expression
-informationFlow

1

*

+execute()

-ongoingInformationFlows

1

-param

-data
InformationFlow

-incomingInformationFlows*

-action

PointToPointInformationFlow

-name : string
-id : int
+flow()

Data

-definition

DataDefinition

*
1

*
BroadcastInformationFlow
1

-flow

OutputData
1

-data
Context-aware sensing

Pooling

Explicit Initialization

Implicit Initialization


The underlying infrastructure
 Detailed description of semantics
 Services provided to support these models (such as, time service)
 Communication infrastructure

 How changes are propagated and assimilated by contexts
 Memory behavior description
 Memory synchronization
 How situations are executed


More patterns



Comparison to related work
Introduction
Analysis layer

CAUCE MDD

CAUCE CASE

Information layer

Conclusions
Transformation

The analysis to information layer
transformation
The information layer to source code
transformation + The mapping model


Main goal:
Social model
(SoMM)

Task model
(TaMM)

Space model
(SpMM)

Multi-model Transformation (ATL)

Entity Context model
(ECMM)

Information Flow model
(IFMM)

Referential Space model
(RSMM)


The transformation is composed by:
 5 modules to process:
▪ regular expressions
▪ the Social model
▪ the Task model
▪ the Space model
▪ a common interface to access these modules
 Containing rules and helper functions


Main goal:

Entity Context model
(ECMM)

Information Flow model
(IFMM)

Model to Text Transformation (MOFScript)

Source Code

Referential Space model
(RSMM)

Mapping model
(Mapping MM)
Introduction

CAUCE MDD

Analysis layer

CAUCE CASE

Information layer

Conclusions
Transformation

The goal of this model is the specification of the
mapping between information layer models and the
source code to be generated
Basic concepts:
•Mapping elements

•Devices
•Connections
•Definition elements

•Protocols
•Mediums
•Operating systems
•Programming languages
-protocol

Protocol
-type : string
-technology : string
-version : string

The same PIM can be defined for several PSMs

1

1
ConnectionPlatform
Medium

*

Connection

-medium

*

1

-protocols

1

1

-informations

-name : string
-edges

Platform
Entity

*

-name : string

-os

-entities

1

*

DevicePlatform
ProgrammingLanguage
-name : string
-version : string
-revision : string
-profile : string

Edge
-id : int

-name : string

*

*

-incoming

Information
-environment
-environment
-environment
1
1
1

1
-environment -environment
OperatingSystem
-os
-name : string
-version : string
-revision : string
*

-programmingLanguages

*

*

DevelopmentEnvironment

1

0..*

-target

* 1
*

-name : string

ConnectionToDeviceEdge

-platforms
-connections

1
-environment -environment

-ongoing

-name : string

-connection

-name : string
-version : string

-mediums

-source

-platforms

-devices
1
Device

1

-language

-target

*

1

*

-name : string
-source

-device
1

*

-ongoing

-incoming
DeviceToConnectionEdge
Underlying infrastructure
(Model semantics)
Modelled by

Conceptual Architecture
(Class level)

Implemented by
Compiles to
Abstract Framework
(Source code)

Generated
Source
code
Introduction

CAUCE MDD

CAUCE CASE Tool
Study cases

CAUCE CASE

Conclusions


The CAUCE CASE tool supports the CAUCE model-driven
development




Developed using the Eclipse platform (EMF, GMF, etc)
Editors:










The Social model editor
The Space model editor
The Task model editor
The Information Flow model editor
The Entity Context model editor
The Referential Space model editor
The Mapping model editor

Transformations
 ATL Model to Model transformation
 MOFScript Model to Text transformation



Abstract Framework structure


For validation purposes we have defined three
scenarios that cover Schmidt CAS characteristics
Scenarios

Feature Light
Controller

Healthy
Screen

Shared
Blackboard

Entity Factors
Information on Entities

X

Social environment

X

Tasks

X

Physical Environment
Physical conditions

X

Infrastructure

X

Location

X
Introduction

CAUCE MDD

Revision
Proposal
Implementation
Contributions
Publications
Future Work

CAUCE CASE

Conclusions


The context awareness concept



The ubiquitous computing concepts



UML, MDA, EMOF, OCL, ATL, MOFScript



Formal Methods:
 Petri Nets
 Workflows
 Regular Expressions



Related work on
 Model-driven development of CAS using MOF
 Model-driven development of CAS using UML profiles
 Ontology driven development of CAS



Implementation
 Eclipse platform (EMF, GMF, etc.)
 Java Technology


The analysis layer to define the characteristics of CAS to be developed,
composed by






The Task metamodel
The Social metamodel
The Space metamodel

The information layer to define the software characteristics of the CAS to be
developed, composed by:




The Information Flow metamodel
The Referential Space metamodel
The Entity Context metamodel



An analysis to information layer M2M transformation to turn CAS characteristics
into software artefacts



An information layer to source code M2T transformation to turn CAS software
characteristics into source code


The Mapping metamodel to specify the PSM of the system



The underlying infrastructure to describe model behaviour



A conceptual architecture to support the proposed models



An abstract framework to decouple generated code from implementation


To develop CAS for UCE we have implemented the CAUCE CASE Tool:









The Space model editor
The Task model editor
The Social model editor
The Information Flow model editor
The Entity Context editor
The Referential Space editor
ATL M2M transformation between analysis and information layer models
MOFScript M2M transformation from information layer models to source
code
 Abstract Conceptual Framework


We have also generated the source code structure for three study cases
covering all CAS for UCE characteristics exposed by Schmidt.
 The light controller
 The healthy screen
 The shared blackboard


MDA




Ubiquitous Computing





Description of interaction elements in terms of regular expressions providing a precise syntax
to describe events

Groupware




The use of semi-formal methods to model high level characteristics (Petri Nets, Workflows
and Regular Expressions)

HCI




3 metamodels and DSLs to describe CAS for UCE characteristics.
3 metamodels and DSLs to describe software characteristics of CAS for UCE

Verification and formal methods




Implementation of the CAUCE CASE tool

Some of the methods used to describe CAS for UCE may be used to describe Groupware
systems

AI and Agents


The ECMM provides designers to model entity contexts in terms of Horn clauses.


About 20 publications
 More than 25% of them were published in journals

that belong to Q1 and Q2 (JCR 2008).
 More that 50 % of them where published in

International congresses


A patent “Interaction device to explore georeferenced documents” (Spain)


Intra-layer inter-model consistency verification



Adaptation to commercial APIs and programming
interfaces



Automatic generation of code for system testing



Verification of Petri Nets properties liveness, bounderness,
etc (export to Petri Nets files)



Simulators for the task and flow models.



Metamodel extension to provide the proposed operators
in the analysis layer



Implementation of the proposed syntax sugar in the
analysis layer
PhD. Dissertation
Candidate:
Ricardo Tesoriero
Supervisors:
PhD. José Antonio Gallud Lázaro
PhD. María Dolores Lozano Pérez

Contenu connexe

Similaire à CAUCE - Model-driven development of ubiquitous computing environments

Domain Specific Mashups
Domain Specific MashupsDomain Specific Mashups
Domain Specific MashupsMuhammad Imran
 
0329.emccormi.ppt
0329.emccormi.ppt0329.emccormi.ppt
0329.emccormi.pptchmeghana1
 
The 27th Australasian Conference on Information Systems
The 27th Australasian Conference  on Information SystemsThe 27th Australasian Conference  on Information Systems
The 27th Australasian Conference on Information SystemsMahdi_Fahmideh
 
Formal Models for Context Aware Computing
Formal Models for Context Aware ComputingFormal Models for Context Aware Computing
Formal Models for Context Aware ComputingEditor IJCATR
 
Presentation 2019 08-30
Presentation 2019 08-30Presentation 2019 08-30
Presentation 2019 08-30Mahdi_Fahmideh
 
A tale of two microservices
A tale of two microservicesA tale of two microservices
A tale of two microservicesPablo Chacin
 
Collective Abstractions and Platforms for Large-Scale Self-Adaptive IoT
Collective Abstractions and Platforms for Large-Scale Self-Adaptive IoTCollective Abstractions and Platforms for Large-Scale Self-Adaptive IoT
Collective Abstractions and Platforms for Large-Scale Self-Adaptive IoTRoberto Casadei
 
A Framework To Generate 3D Learning Experience
A Framework To Generate 3D Learning ExperienceA Framework To Generate 3D Learning Experience
A Framework To Generate 3D Learning ExperienceNathan Mathis
 
Caaa07 Presentation February Final
Caaa07 Presentation February FinalCaaa07 Presentation February Final
Caaa07 Presentation February Finalpbihler
 
Parallel Computing 2007: Overview
Parallel Computing 2007: OverviewParallel Computing 2007: Overview
Parallel Computing 2007: OverviewGeoffrey Fox
 
A Model-Driven Approach to Support Cloud Migration Process- A Language Infras...
A Model-Driven Approach to Support Cloud Migration Process- A Language Infras...A Model-Driven Approach to Support Cloud Migration Process- A Language Infras...
A Model-Driven Approach to Support Cloud Migration Process- A Language Infras...Mahdi_Fahmideh
 
Model-Driven Architecture for Cloud Applications Development, A survey
Model-Driven Architecture for Cloud Applications Development, A surveyModel-Driven Architecture for Cloud Applications Development, A survey
Model-Driven Architecture for Cloud Applications Development, A surveyEditor IJCATR
 
Model-Driven Architecture for Cloud Applications Development, A survey
Model-Driven Architecture for Cloud Applications Development, A survey Model-Driven Architecture for Cloud Applications Development, A survey
Model-Driven Architecture for Cloud Applications Development, A survey Editor IJCATR
 
Model-Driven Architecture for Cloud Applications Development, A survey
Model-Driven Architecture for Cloud Applications Development, A surveyModel-Driven Architecture for Cloud Applications Development, A survey
Model-Driven Architecture for Cloud Applications Development, A surveyEditor IJCATR
 
Data and Computation Interoperability in Internet Services
Data and Computation Interoperability in Internet ServicesData and Computation Interoperability in Internet Services
Data and Computation Interoperability in Internet ServicesSergey Boldyrev
 
Domain Driven Design
Domain Driven DesignDomain Driven Design
Domain Driven DesignMuhammad Ali
 

Similaire à CAUCE - Model-driven development of ubiquitous computing environments (20)

Domain Specific Mashups
Domain Specific MashupsDomain Specific Mashups
Domain Specific Mashups
 
0329.emccormi.ppt
0329.emccormi.ppt0329.emccormi.ppt
0329.emccormi.ppt
 
The 27th Australasian Conference on Information Systems
The 27th Australasian Conference  on Information SystemsThe 27th Australasian Conference  on Information Systems
The 27th Australasian Conference on Information Systems
 
Phd defence presentation
Phd defence presentationPhd defence presentation
Phd defence presentation
 
Formal Models for Context Aware Computing
Formal Models for Context Aware ComputingFormal Models for Context Aware Computing
Formal Models for Context Aware Computing
 
Presentation 2019 08-30
Presentation 2019 08-30Presentation 2019 08-30
Presentation 2019 08-30
 
A tale of two microservices
A tale of two microservicesA tale of two microservices
A tale of two microservices
 
Collective Abstractions and Platforms for Large-Scale Self-Adaptive IoT
Collective Abstractions and Platforms for Large-Scale Self-Adaptive IoTCollective Abstractions and Platforms for Large-Scale Self-Adaptive IoT
Collective Abstractions and Platforms for Large-Scale Self-Adaptive IoT
 
A Framework To Generate 3D Learning Experience
A Framework To Generate 3D Learning ExperienceA Framework To Generate 3D Learning Experience
A Framework To Generate 3D Learning Experience
 
Caaa07 Presentation February Final
Caaa07 Presentation February FinalCaaa07 Presentation February Final
Caaa07 Presentation February Final
 
Parallel Computing 2007: Overview
Parallel Computing 2007: OverviewParallel Computing 2007: Overview
Parallel Computing 2007: Overview
 
A Model-Driven Approach to Support Cloud Migration Process- A Language Infras...
A Model-Driven Approach to Support Cloud Migration Process- A Language Infras...A Model-Driven Approach to Support Cloud Migration Process- A Language Infras...
A Model-Driven Approach to Support Cloud Migration Process- A Language Infras...
 
Model-Driven Architecture for Cloud Applications Development, A survey
Model-Driven Architecture for Cloud Applications Development, A surveyModel-Driven Architecture for Cloud Applications Development, A survey
Model-Driven Architecture for Cloud Applications Development, A survey
 
Model-Driven Architecture for Cloud Applications Development, A survey
Model-Driven Architecture for Cloud Applications Development, A survey Model-Driven Architecture for Cloud Applications Development, A survey
Model-Driven Architecture for Cloud Applications Development, A survey
 
Model-Driven Architecture for Cloud Applications Development, A survey
Model-Driven Architecture for Cloud Applications Development, A surveyModel-Driven Architecture for Cloud Applications Development, A survey
Model-Driven Architecture for Cloud Applications Development, A survey
 
java
javajava
java
 
B1802030511
B1802030511B1802030511
B1802030511
 
Data and Computation Interoperability in Internet Services
Data and Computation Interoperability in Internet ServicesData and Computation Interoperability in Internet Services
Data and Computation Interoperability in Internet Services
 
Domain Driven Design
Domain Driven DesignDomain Driven Design
Domain Driven Design
 
DEVELOPMENT OF A MULTIAGENT BASED METHODOLOGY FOR COMPLEX SYSTEMS
DEVELOPMENT OF A MULTIAGENT BASED METHODOLOGY FOR COMPLEX SYSTEMSDEVELOPMENT OF A MULTIAGENT BASED METHODOLOGY FOR COMPLEX SYSTEMS
DEVELOPMENT OF A MULTIAGENT BASED METHODOLOGY FOR COMPLEX SYSTEMS
 

Plus de Ricardo Tesoriero

Introdución a las Arquitecturas Dirigidas por Modelos
Introdución a las Arquitecturas Dirigidas por ModelosIntrodución a las Arquitecturas Dirigidas por Modelos
Introdución a las Arquitecturas Dirigidas por ModelosRicardo Tesoriero
 
Transformaciones modelo a texto: ACCELEO
Transformaciones modelo a texto: ACCELEOTransformaciones modelo a texto: ACCELEO
Transformaciones modelo a texto: ACCELEORicardo Tesoriero
 
Transformaciones modelo a modelo: ATL (ParteII)
Transformaciones modelo a modelo: ATL (ParteII)Transformaciones modelo a modelo: ATL (ParteII)
Transformaciones modelo a modelo: ATL (ParteII)Ricardo Tesoriero
 
Transformaciones modelo a modelo: ATL (Parte I)
Transformaciones modelo a modelo: ATL (Parte I)Transformaciones modelo a modelo: ATL (Parte I)
Transformaciones modelo a modelo: ATL (Parte I)Ricardo Tesoriero
 
Modelos de Marcas en Arquitecturas dirigidas por Modelos
Modelos de Marcas en Arquitecturas dirigidas por ModelosModelos de Marcas en Arquitecturas dirigidas por Modelos
Modelos de Marcas en Arquitecturas dirigidas por ModelosRicardo Tesoriero
 
Transformaciones de modelos
Transformaciones de modelos Transformaciones de modelos
Transformaciones de modelos Ricardo Tesoriero
 
Lenguajes específicos de dominio
Lenguajes específicos de dominioLenguajes específicos de dominio
Lenguajes específicos de dominioRicardo Tesoriero
 
MOF básico para Arquitecturas dirigidas por Modelos
MOF básico para Arquitecturas dirigidas por ModelosMOF básico para Arquitecturas dirigidas por Modelos
MOF básico para Arquitecturas dirigidas por ModelosRicardo Tesoriero
 
Metamodelos en Arquitecturas dirigidas por Modelos
Metamodelos en Arquitecturas dirigidas por ModelosMetamodelos en Arquitecturas dirigidas por Modelos
Metamodelos en Arquitecturas dirigidas por ModelosRicardo Tesoriero
 
OCL en Arquitecturas dirigidas por Modelos
OCL en Arquitecturas dirigidas por ModelosOCL en Arquitecturas dirigidas por Modelos
OCL en Arquitecturas dirigidas por ModelosRicardo Tesoriero
 
Modelos en Arquitecturas dirigidas por Modelos
Modelos en Arquitecturas dirigidas por ModelosModelos en Arquitecturas dirigidas por Modelos
Modelos en Arquitecturas dirigidas por ModelosRicardo Tesoriero
 
Terminología y conceptos en Arquitecturas dirigidas por Modelos
Terminología y conceptos en Arquitecturas dirigidas por ModelosTerminología y conceptos en Arquitecturas dirigidas por Modelos
Terminología y conceptos en Arquitecturas dirigidas por ModelosRicardo Tesoriero
 
UsiXML Eclipse-based Model Editors
UsiXML Eclipse-based Model EditorsUsiXML Eclipse-based Model Editors
UsiXML Eclipse-based Model EditorsRicardo Tesoriero
 

Plus de Ricardo Tesoriero (13)

Introdución a las Arquitecturas Dirigidas por Modelos
Introdución a las Arquitecturas Dirigidas por ModelosIntrodución a las Arquitecturas Dirigidas por Modelos
Introdución a las Arquitecturas Dirigidas por Modelos
 
Transformaciones modelo a texto: ACCELEO
Transformaciones modelo a texto: ACCELEOTransformaciones modelo a texto: ACCELEO
Transformaciones modelo a texto: ACCELEO
 
Transformaciones modelo a modelo: ATL (ParteII)
Transformaciones modelo a modelo: ATL (ParteII)Transformaciones modelo a modelo: ATL (ParteII)
Transformaciones modelo a modelo: ATL (ParteII)
 
Transformaciones modelo a modelo: ATL (Parte I)
Transformaciones modelo a modelo: ATL (Parte I)Transformaciones modelo a modelo: ATL (Parte I)
Transformaciones modelo a modelo: ATL (Parte I)
 
Modelos de Marcas en Arquitecturas dirigidas por Modelos
Modelos de Marcas en Arquitecturas dirigidas por ModelosModelos de Marcas en Arquitecturas dirigidas por Modelos
Modelos de Marcas en Arquitecturas dirigidas por Modelos
 
Transformaciones de modelos
Transformaciones de modelos Transformaciones de modelos
Transformaciones de modelos
 
Lenguajes específicos de dominio
Lenguajes específicos de dominioLenguajes específicos de dominio
Lenguajes específicos de dominio
 
MOF básico para Arquitecturas dirigidas por Modelos
MOF básico para Arquitecturas dirigidas por ModelosMOF básico para Arquitecturas dirigidas por Modelos
MOF básico para Arquitecturas dirigidas por Modelos
 
Metamodelos en Arquitecturas dirigidas por Modelos
Metamodelos en Arquitecturas dirigidas por ModelosMetamodelos en Arquitecturas dirigidas por Modelos
Metamodelos en Arquitecturas dirigidas por Modelos
 
OCL en Arquitecturas dirigidas por Modelos
OCL en Arquitecturas dirigidas por ModelosOCL en Arquitecturas dirigidas por Modelos
OCL en Arquitecturas dirigidas por Modelos
 
Modelos en Arquitecturas dirigidas por Modelos
Modelos en Arquitecturas dirigidas por ModelosModelos en Arquitecturas dirigidas por Modelos
Modelos en Arquitecturas dirigidas por Modelos
 
Terminología y conceptos en Arquitecturas dirigidas por Modelos
Terminología y conceptos en Arquitecturas dirigidas por ModelosTerminología y conceptos en Arquitecturas dirigidas por Modelos
Terminología y conceptos en Arquitecturas dirigidas por Modelos
 
UsiXML Eclipse-based Model Editors
UsiXML Eclipse-based Model EditorsUsiXML Eclipse-based Model Editors
UsiXML Eclipse-based Model Editors
 

Dernier

"ML in Production",Oleksandr Bagan
"ML in Production",Oleksandr Bagan"ML in Production",Oleksandr Bagan
"ML in Production",Oleksandr BaganFwdays
 
Commit 2024 - Secret Management made easy
Commit 2024 - Secret Management made easyCommit 2024 - Secret Management made easy
Commit 2024 - Secret Management made easyAlfredo García Lavilla
 
Merck Moving Beyond Passwords: FIDO Paris Seminar.pptx
Merck Moving Beyond Passwords: FIDO Paris Seminar.pptxMerck Moving Beyond Passwords: FIDO Paris Seminar.pptx
Merck Moving Beyond Passwords: FIDO Paris Seminar.pptxLoriGlavin3
 
Transcript: New from BookNet Canada for 2024: BNC CataList - Tech Forum 2024
Transcript: New from BookNet Canada for 2024: BNC CataList - Tech Forum 2024Transcript: New from BookNet Canada for 2024: BNC CataList - Tech Forum 2024
Transcript: New from BookNet Canada for 2024: BNC CataList - Tech Forum 2024BookNet Canada
 
Digital Identity is Under Attack: FIDO Paris Seminar.pptx
Digital Identity is Under Attack: FIDO Paris Seminar.pptxDigital Identity is Under Attack: FIDO Paris Seminar.pptx
Digital Identity is Under Attack: FIDO Paris Seminar.pptxLoriGlavin3
 
Unleash Your Potential - Namagunga Girls Coding Club
Unleash Your Potential - Namagunga Girls Coding ClubUnleash Your Potential - Namagunga Girls Coding Club
Unleash Your Potential - Namagunga Girls Coding ClubKalema Edgar
 
Unraveling Multimodality with Large Language Models.pdf
Unraveling Multimodality with Large Language Models.pdfUnraveling Multimodality with Large Language Models.pdf
Unraveling Multimodality with Large Language Models.pdfAlex Barbosa Coqueiro
 
A Deep Dive on Passkeys: FIDO Paris Seminar.pptx
A Deep Dive on Passkeys: FIDO Paris Seminar.pptxA Deep Dive on Passkeys: FIDO Paris Seminar.pptx
A Deep Dive on Passkeys: FIDO Paris Seminar.pptxLoriGlavin3
 
How AI, OpenAI, and ChatGPT impact business and software.
How AI, OpenAI, and ChatGPT impact business and software.How AI, OpenAI, and ChatGPT impact business and software.
How AI, OpenAI, and ChatGPT impact business and software.Curtis Poe
 
Use of FIDO in the Payments and Identity Landscape: FIDO Paris Seminar.pptx
Use of FIDO in the Payments and Identity Landscape: FIDO Paris Seminar.pptxUse of FIDO in the Payments and Identity Landscape: FIDO Paris Seminar.pptx
Use of FIDO in the Payments and Identity Landscape: FIDO Paris Seminar.pptxLoriGlavin3
 
Nell’iperspazio con Rocket: il Framework Web di Rust!
Nell’iperspazio con Rocket: il Framework Web di Rust!Nell’iperspazio con Rocket: il Framework Web di Rust!
Nell’iperspazio con Rocket: il Framework Web di Rust!Commit University
 
Generative AI for Technical Writer or Information Developers
Generative AI for Technical Writer or Information DevelopersGenerative AI for Technical Writer or Information Developers
Generative AI for Technical Writer or Information DevelopersRaghuram Pandurangan
 
Dev Dives: Streamline document processing with UiPath Studio Web
Dev Dives: Streamline document processing with UiPath Studio WebDev Dives: Streamline document processing with UiPath Studio Web
Dev Dives: Streamline document processing with UiPath Studio WebUiPathCommunity
 
Ensuring Technical Readiness For Copilot in Microsoft 365
Ensuring Technical Readiness For Copilot in Microsoft 365Ensuring Technical Readiness For Copilot in Microsoft 365
Ensuring Technical Readiness For Copilot in Microsoft 3652toLead Limited
 
Developer Data Modeling Mistakes: From Postgres to NoSQL
Developer Data Modeling Mistakes: From Postgres to NoSQLDeveloper Data Modeling Mistakes: From Postgres to NoSQL
Developer Data Modeling Mistakes: From Postgres to NoSQLScyllaDB
 
The Role of FIDO in a Cyber Secure Netherlands: FIDO Paris Seminar.pptx
The Role of FIDO in a Cyber Secure Netherlands: FIDO Paris Seminar.pptxThe Role of FIDO in a Cyber Secure Netherlands: FIDO Paris Seminar.pptx
The Role of FIDO in a Cyber Secure Netherlands: FIDO Paris Seminar.pptxLoriGlavin3
 
Are Multi-Cloud and Serverless Good or Bad?
Are Multi-Cloud and Serverless Good or Bad?Are Multi-Cloud and Serverless Good or Bad?
Are Multi-Cloud and Serverless Good or Bad?Mattias Andersson
 
How to write a Business Continuity Plan
How to write a Business Continuity PlanHow to write a Business Continuity Plan
How to write a Business Continuity PlanDatabarracks
 
New from BookNet Canada for 2024: BNC CataList - Tech Forum 2024
New from BookNet Canada for 2024: BNC CataList - Tech Forum 2024New from BookNet Canada for 2024: BNC CataList - Tech Forum 2024
New from BookNet Canada for 2024: BNC CataList - Tech Forum 2024BookNet Canada
 
DSPy a system for AI to Write Prompts and Do Fine Tuning
DSPy a system for AI to Write Prompts and Do Fine TuningDSPy a system for AI to Write Prompts and Do Fine Tuning
DSPy a system for AI to Write Prompts and Do Fine TuningLars Bell
 

Dernier (20)

"ML in Production",Oleksandr Bagan
"ML in Production",Oleksandr Bagan"ML in Production",Oleksandr Bagan
"ML in Production",Oleksandr Bagan
 
Commit 2024 - Secret Management made easy
Commit 2024 - Secret Management made easyCommit 2024 - Secret Management made easy
Commit 2024 - Secret Management made easy
 
Merck Moving Beyond Passwords: FIDO Paris Seminar.pptx
Merck Moving Beyond Passwords: FIDO Paris Seminar.pptxMerck Moving Beyond Passwords: FIDO Paris Seminar.pptx
Merck Moving Beyond Passwords: FIDO Paris Seminar.pptx
 
Transcript: New from BookNet Canada for 2024: BNC CataList - Tech Forum 2024
Transcript: New from BookNet Canada for 2024: BNC CataList - Tech Forum 2024Transcript: New from BookNet Canada for 2024: BNC CataList - Tech Forum 2024
Transcript: New from BookNet Canada for 2024: BNC CataList - Tech Forum 2024
 
Digital Identity is Under Attack: FIDO Paris Seminar.pptx
Digital Identity is Under Attack: FIDO Paris Seminar.pptxDigital Identity is Under Attack: FIDO Paris Seminar.pptx
Digital Identity is Under Attack: FIDO Paris Seminar.pptx
 
Unleash Your Potential - Namagunga Girls Coding Club
Unleash Your Potential - Namagunga Girls Coding ClubUnleash Your Potential - Namagunga Girls Coding Club
Unleash Your Potential - Namagunga Girls Coding Club
 
Unraveling Multimodality with Large Language Models.pdf
Unraveling Multimodality with Large Language Models.pdfUnraveling Multimodality with Large Language Models.pdf
Unraveling Multimodality with Large Language Models.pdf
 
A Deep Dive on Passkeys: FIDO Paris Seminar.pptx
A Deep Dive on Passkeys: FIDO Paris Seminar.pptxA Deep Dive on Passkeys: FIDO Paris Seminar.pptx
A Deep Dive on Passkeys: FIDO Paris Seminar.pptx
 
How AI, OpenAI, and ChatGPT impact business and software.
How AI, OpenAI, and ChatGPT impact business and software.How AI, OpenAI, and ChatGPT impact business and software.
How AI, OpenAI, and ChatGPT impact business and software.
 
Use of FIDO in the Payments and Identity Landscape: FIDO Paris Seminar.pptx
Use of FIDO in the Payments and Identity Landscape: FIDO Paris Seminar.pptxUse of FIDO in the Payments and Identity Landscape: FIDO Paris Seminar.pptx
Use of FIDO in the Payments and Identity Landscape: FIDO Paris Seminar.pptx
 
Nell’iperspazio con Rocket: il Framework Web di Rust!
Nell’iperspazio con Rocket: il Framework Web di Rust!Nell’iperspazio con Rocket: il Framework Web di Rust!
Nell’iperspazio con Rocket: il Framework Web di Rust!
 
Generative AI for Technical Writer or Information Developers
Generative AI for Technical Writer or Information DevelopersGenerative AI for Technical Writer or Information Developers
Generative AI for Technical Writer or Information Developers
 
Dev Dives: Streamline document processing with UiPath Studio Web
Dev Dives: Streamline document processing with UiPath Studio WebDev Dives: Streamline document processing with UiPath Studio Web
Dev Dives: Streamline document processing with UiPath Studio Web
 
Ensuring Technical Readiness For Copilot in Microsoft 365
Ensuring Technical Readiness For Copilot in Microsoft 365Ensuring Technical Readiness For Copilot in Microsoft 365
Ensuring Technical Readiness For Copilot in Microsoft 365
 
Developer Data Modeling Mistakes: From Postgres to NoSQL
Developer Data Modeling Mistakes: From Postgres to NoSQLDeveloper Data Modeling Mistakes: From Postgres to NoSQL
Developer Data Modeling Mistakes: From Postgres to NoSQL
 
The Role of FIDO in a Cyber Secure Netherlands: FIDO Paris Seminar.pptx
The Role of FIDO in a Cyber Secure Netherlands: FIDO Paris Seminar.pptxThe Role of FIDO in a Cyber Secure Netherlands: FIDO Paris Seminar.pptx
The Role of FIDO in a Cyber Secure Netherlands: FIDO Paris Seminar.pptx
 
Are Multi-Cloud and Serverless Good or Bad?
Are Multi-Cloud and Serverless Good or Bad?Are Multi-Cloud and Serverless Good or Bad?
Are Multi-Cloud and Serverless Good or Bad?
 
How to write a Business Continuity Plan
How to write a Business Continuity PlanHow to write a Business Continuity Plan
How to write a Business Continuity Plan
 
New from BookNet Canada for 2024: BNC CataList - Tech Forum 2024
New from BookNet Canada for 2024: BNC CataList - Tech Forum 2024New from BookNet Canada for 2024: BNC CataList - Tech Forum 2024
New from BookNet Canada for 2024: BNC CataList - Tech Forum 2024
 
DSPy a system for AI to Write Prompts and Do Fine Tuning
DSPy a system for AI to Write Prompts and Do Fine TuningDSPy a system for AI to Write Prompts and Do Fine Tuning
DSPy a system for AI to Write Prompts and Do Fine Tuning
 

CAUCE - Model-driven development of ubiquitous computing environments

  • 1. PhD. Dissertation Candidate: Ricardo Tesoriero Supervisors: PhD. José Antonio Gallud Lázaro PhD. María Dolores Lozano Pérez
  • 2. Introduction CAUCE Model-driven Development CAUCE CASE tool Conclusions and Future Work
  • 3. Introduction CAUCE MDD CAUCE CASE Inspiration Major trends in computing Calm Technology Context awareness Related Work Conclusions
  • 4. “The world is not a desktop” “A good tool is an invisible tool. By invisible, we mean that the tool does not intrude on your consciousness; you focus on the task, not the tool.” Eyeglasses are a good tool Mark Weiser, November 7th, 1993
  • 5. The major trends in computing   Mainframe computing (N users 1 computer) Personal computing (1 user 1 computer) ▪  Internet – widespread distributed computing (transition) Ubiquitous computing (N users - N computers) Mark Weiser and John S. Brown (1997)
  • 6.  “Calm technology engages both the center and the periphery of our attention, and in fact moves back and forth between the two” Mark Weiser and John S. Brown  By placing things in the periphery we are able to attune many more things than we could if everything had to be at the center  By re-centering something formerly in the periphery we take control of it.
  • 7. Context Awareness  The Context is any information that can be used to characterize the situation of an entity. An entity is a person, place, or object that is considered relevant to the interaction between a user and an application, including users and applications themselves.  A system is context-aware if it uses the context to provide relevant information and/or services to the user, where relevancy depends on the user's task Understanding and using context , A. Dey, 2001
  • 8. Context awareness feature space User Information Human Factors Social Environment User Task Physical conditions Physical Environment Infrastructure Light Pressure Acceleration Audio Temperature Level Flikering WaveLenght Location There is more context than location, Albrecht Schmidt et al., 1999
  • 9. Development of a set of applications in a distributed environment  Do not have a fixed architecture  Deployed in heterogeneous platforms  Connectivity affects how the information is transported  Multiple devices should exchange information to carry out system tasks  Society of entities (collaboration)  Location of the entity  Knowledge about which task is being performed by entities to assist them 
  • 10.    The capability to define metamodels to match specific characteristics of the system, no matter the level of abstraction it addresses. Tools for merging and transforming models to reuse information from one layer of abstraction to the next. Tools to turn these models into source code for different platforms
  • 11.  A Meta Object Facility (MOF) Metamodel for the Development of Context-Aware Mobile Applications     Model-driven Composition of Context-aware Web Services Using ContextUML and Aspects    Entity vision vs. service vision Low semantic meaning (services) Context-aware model-driven development by parameterized transformation    Handles business logic and context-dependent service behavior as two separate concerns Focused in Web applications only (SOA) and services Towards Context Independence in Distributed Context-aware Applications by the Model-driven Approach    Provides contextual model independent of the application domain Manages low level concepts only (event and service) does not support task or role concepts. Does not take into account deployment issues, it is based on SOA Different layers of PIMs by parameterized transformations (includes additional information) Context is not characterized, very high level of abstraction that does not provide enough information about context Towards a Model-Driven Approach for Ontology-Based CAA Development: A Case Study     Step based development Embraces concepts such as Device, Event, Communication, Channel and Activity Does not take into account Roles , Location, etc. Steps are not part of a development process
  • 12.  Model-Driven Development of Context-Aware Services      Managing an Integrated Ubicomp Environment Using Ontologies and Reasoning     Good description of the systems Enterprise applications only (client-server) Lack of insulation between context and domain logic, social environment, etc. An Ontology for Context-Aware Pervasive Computing Environments        Development process (preparation and service creation phases) Modelling process (PI Service design, PS service design) Low level concepts (events, queries and actions) Lack of task, space, location and role concepts Space composition Location modelling is not technology independent Notion of agent (entity) No role based functionality Task is taken into account No history is supported at any level Aspect-Oriented Model-Driven Development for Mobile Context-Aware Computing    Combination of AOP and MDD Attached to AspectJ Low level concepts, instead of tasks, roles, spaces, entities and so on
  • 13. Introduction CAUCE MDD CAUCE CASE Conclusions Main goal Proposal The analysis layer The information layer Analysis to information layer M2M transformation Mapping model Information to source code M2T transformation
  • 14.  The main goal of this work is: “The definition of a semi-formal methodology to tackle the development of Context-aware Applications for Ubiquitous Computing Environments”.
  • 15. 1. Perform a review of the main characteristics of CAAs for UCEs. 2. Perform a review of the most relevant design processes to develop CAAs for UCEs. 3. Define a methodology together with modeling languages to specify the design of CAAs for UCEs based on the characteristics presented in 1. 4. Implement a CASE tool to support the defined methodology allowing the developer to create and edit models conforming metamodels as defined in 3. 5. Define and implement a set of transformations to generate the basic structure of the system source code. 6. Apply the process to a set of scenarios that embraces most CAS features for UCEs to prove the validity of the proposal.
  • 16. PIM Information Layer Software - Characteristics Social model Social Metamodel Entity Context model EC Metamodel Referential Space model RS Metamodel M2T Transformation Space model Space Metamodel Information Flow model IF Metamodel M2M Transformation Task model Task Metamodel Platform Characteristics Mapping model Mapping Metamodel Source Code Analysis Layer CAS - Characteristics PSM
  • 17. Introduction CAUCE MDD Analysis layer Task model Social Model Space model CAUCE CASE Information layer Conclusions Transformation
  • 18.  The goal of this layer is the provision of modeling tools to represent the high-level features of CAAs for UCEs defined in (Schmidt, 1999) Entity Factors Social Entity Task Environment Social model Social Metamodel Entity Information Time Context-aware application feature model Task model Task Metamodel Physical Environment Physical Infrastructure Location Conditions Space model Space Metamodel
  • 19. Introduction Analysis layer CAUCE MDD CAUCE CASE Information layer Conclusions Transformation The TaMM provides a modeling tool to represent the relationship between tasks and entities that are immersed into CAS for UCEs. Based on: Petri Nets (Workflows) – To relate tasks and entities Regular Expressions – To express conditions that relate the TaMM models to SoMM and SpMM models
  • 20. Workflow Concept * TaMM Concept Task Task Condition Condition Sequential Routing Task dependency Selective Routing Task dependency Iteration Routing Task dependency Parallel Routing Task synchronization/Communication Process Work session Token Entity session * According to the Workflow Management Coalition.
  • 21. -outputCondition -routeTask TaskOutputCondition Join Condition 1 * -outputConditions -routeTask 1 -id : int -socialExpression : SocialExpression -spaceExpression : SpaceExpression -taskExpression : TaskExpression -logicExpression : LogicExpression -dataExpression : DataExpression -condition 1 1 -inputConditions 1 1 1..* Task -id : int TaskInputCondition -inputCondition -inputCondition FinalCondition PreCondition InitialCondition 1 PostCondition 1 -routeTask -routeTask Split * 1 -precondition -initialConditions 1..* -postConditions -system_1 1 -postCondition_1 -systemTask_1 -systemTasks_1 1 1 * SystemTask * -system -finalConditions -preConditions 1..* 1 1-system -systemTask 1 1 1 ContextAwareSystem 1 -system -system -id : int -name : string 1 -system -routeTask RouteTask -routeTasks *
  • 23. Prefix Condition Attribute Metaclass Regular Expression Template [So:] socialExpression SocialInstance SocialSynchronization SocialAlternative Word Concatenation Union socialInstance socialExpr , socialExpr socialExpr + socialExpr [Ta:] taskExpression TaskPerformance TaskDependence TaskAlternative TaskRepetition TaskAtLeastOnce Word Concatenation Union Kleene Clausure KleeneClausure + socialInstance(task) taskExpr , taskExpr taskExpr + taskExpr taskExpr* taskExpr! [Sp:] spaceExpression SpaceEvent SpacePath SpaceAlternative SpaceRepetition SpaceAtLeastOnce Word Concatenation Union Kleene Clausure KleeneClausure + socialInstance(event,space) spaceExpr , spaceExpr spaceExpr + spaceExpr spaceExpr* spaceExpr! [Lo:] logicExpression LogicExpression - (string) [Da:] dataExpression DataExpression - socialInst(data),...
  • 24. Introduction Analysis layer CAUCE MDD CAUCE CASE Information layer Conclusions Transformation The SoMM provides the specification of the relationships among individuals and group of individuals that are part of a CAS. Based on Subset of Penichet’s Organization Structure Diagram (OSD)
  • 25.  Elements ▪ Individual: represents particular entity instances (a token in the workflow during a work session) ▪ Role: represents the characteristics of a group of entities  Relationships ▪ Initialization: represents the “plays” relationship ▪ Specialization: represents inheritance
  • 26. -realizes -source Realization 0..* 1 -id : int -name : string 1 -realizations -isRealizedByIndividual 0..* SocialInstance Instance -individuals 0..* -target Role 11 Society 1 -society -governedBy -children -source -parent 0..* 0..* -name : string -society Specialization 1 1 1 0..* -id : int -name : string -target -society 0..* -generalizations 1 -society
  • 27. Social model Task model Task model X Social model
  • 28. Expresses task alternatives according to entity roles Social model Task model X
  • 29. Expresses tasks performed by actors belonging to different roles Social model Task model any time any time
  • 30. Expresses task concurrency or parallelism between two or more entities Social model Task model same time same time
  • 31. Expresses a synchronization points among entities Social model Task model same time same time
  • 32. Introduction CAUCE MDD Analysis layer CAUCE CASE Information layer Conclusions Transformation The main goal of SpMM is the expression of location aware characteristics of CAS for UCEs Basic concepts: Positioning reference (space) Space granularity (composition / grouping) Space characteristics (generalization) Time (regular expressions)
  • 33. 1 -universe Universe -universe -id : int -name : string LocartionUnit -universe 1 -child Space 1 1 1 -universe 1 -universe -groupedBy 0..* 0..* 1 -id : int -name : string -virtualSpaces -locationUnit -generalizes 0..* 1 -physicalSpaces 0..* Grouping VirtualSpace -groupRelationships PhysicalSpace 1 -parent -contains 0..* -parent 1 -parent 0..1 -inclusions Contention 0..* -container 0..* -innerSpaces 1 0..* -generalizations -generalizes 0..* 1 Generalization -child -generalizedBy 0..*
  • 34.
  • 35. Expresses task execution restrictions according to entity location Space model Task model X
  • 36. Expresses task execution restrictions according entity location history Space model Task model X
  • 37.  Syntax sugar (abbreviations)  How to represent concepts       Initialization Pre-conditions Post-conditions Roles vs. Instances Expression calculus Empty expression interpretations  Extensions (to represent CTT constructors)  Comparison to related work  Based on Schmidt characteristics we expose the advantages of this approach compared to related work
  • 38. Introduction Analysis layer CAUCE MDD CAUCE CASE Information layer Information Flow model Entity Context model Referential Space model Conclusions Transformation
  • 39.  The goal of this layer is the provision of modeling tools for designers to represent the context of an entity from the software perspective. communication Information Flow features Metamodel referential features Space Reference Metamodel Entity Context contextual Metamodel features Entity Core Metamodel Software perspective of a CAS essential features Intra-entity view Inter-entity view Two views of the system
  • 40. Introduction CAUCE MDD Analysis layer CAUCE CASE Information layer (Inter-entity view) Conclusions Transformation The goal of the IFMM is the description of the information flows among entities of a CASs for UCEs Basic concepts Entities involved in the system The Information flow data exchange through information flows among entities The Information flow data definition How Information is delivered
  • 41. 1 SystemInformationFlow -id : int -name : string 1 -system * -entities -system -target -incomingInformationFlows ContextAwareEntity InformationFlow -id : int -name : string +incomingFlow(entrada flow : InformationFlow) -source -ongoingInformationFlows 1 * 1 CollectionDataDefinition -name : string -id : int +flow() 1 * -system * VaraibleDataDefinition -name : string 1 -flow -pointToPointInformationFlows PointToPointInformationFlow * -broadcastInformaitonFlows BroadcastInformationFlow -data -data UnaryOperationDataDefinition OutputData Data * NotEmptyCollectionDataDefinition InputData 1 -param -param2 1 DataDefinition * TerminalDataDefinition -definition -name : string SequenceDataDefinition -param1 1 TypeDataDefinition BinaryOperationDataDefinition AlternativeDataDefinition ConstantDataDefinition 1
  • 42. Point to Point information flow Entity Output data Input data Entity Broadcast information flow Entity Entity Output data
  • 44. Introduction CAUCE MDD Analysis layer CAUCE CASE Information layer (Inter-entity view) Conclusions Transformation The goal of the RSMM is the definition of the runtime environment of the entity contexts in CASs for UCEs Basic concepts Context –aware entity (Context-aware entity reference) Runtime Environment (Referential Space) Bounding Relationship (Dependence relationship) Cardinality
  • 45. Cardinality (a Shopping cart is associated to a single user interface) Cardinality (the Virtual shopping is composed by many user interfaces) An entity reference can be defined by the Send button A referential space can be defined by the Login interface Dependency relationships
  • 46.
  • 47. Session modeling Information Exchange Information flow model Referential space model
  • 48. Introduction CAUCE MDD Analysis layer CAUCE CASE Information layer (Intra-entity view) Conclusions Transformation The goal of the ECMM is the description of the context that an entity is able to perceive from the environment Basic concepts: Entity context Context situation Context Condition Data Definition
  • 49.
  • 51. 1 -variables EntityCore VaraibleDataDefinition -entity -core 1 -target1 -source 1 UnaryOperationDataDefinition -name : string * 1 1 ContextAwareEntity 1 -id : int -name : string +incomingFlow(entrada flow : InformationFlow) +ongoingFlow(entrada flow : InformationFlow) EntityContext -entity * 1 -context +incoming(entrada flow : InformationFlow) +ongoing(entrada flow : InformationFlow) -situations -context 1 1 ContextSituation * -conditions -situation -parent -context LogicMemory -name : string +matches(entrada flow : InformationFlow) * ContextCondition DictionaryMemory 1 +satisfies(entrada flow : InformationFlow) : bool -situation -memory ContextMemory -name : string 1 SensingContextCondition -state +match(entrada expression : string) : bool +update(entrada expression : string) HolderMemory ContextMemoryCondition -expression 1 -actions ContextAction -memory 1 TimeMemory StackMemory -expression -informationFlow 1 * +execute() -ongoingInformationFlows 1 -param -data InformationFlow -incomingInformationFlows* -action PointToPointInformationFlow -name : string -id : int +flow() Data -definition DataDefinition * 1 * BroadcastInformationFlow 1 -flow OutputData 1 -data
  • 52.
  • 54.
  • 55.  The underlying infrastructure  Detailed description of semantics  Services provided to support these models (such as, time service)  Communication infrastructure  How changes are propagated and assimilated by contexts  Memory behavior description  Memory synchronization  How situations are executed  More patterns  Comparison to related work
  • 56. Introduction Analysis layer CAUCE MDD CAUCE CASE Information layer Conclusions Transformation The analysis to information layer transformation The information layer to source code transformation + The mapping model
  • 57.  Main goal: Social model (SoMM) Task model (TaMM) Space model (SpMM) Multi-model Transformation (ATL) Entity Context model (ECMM) Information Flow model (IFMM) Referential Space model (RSMM)
  • 58.  The transformation is composed by:  5 modules to process: ▪ regular expressions ▪ the Social model ▪ the Task model ▪ the Space model ▪ a common interface to access these modules  Containing rules and helper functions
  • 59.  Main goal: Entity Context model (ECMM) Information Flow model (IFMM) Model to Text Transformation (MOFScript) Source Code Referential Space model (RSMM) Mapping model (Mapping MM)
  • 60. Introduction CAUCE MDD Analysis layer CAUCE CASE Information layer Conclusions Transformation The goal of this model is the specification of the mapping between information layer models and the source code to be generated Basic concepts: •Mapping elements •Devices •Connections •Definition elements •Protocols •Mediums •Operating systems •Programming languages
  • 61. -protocol Protocol -type : string -technology : string -version : string The same PIM can be defined for several PSMs 1 1 ConnectionPlatform Medium * Connection -medium * 1 -protocols 1 1 -informations -name : string -edges Platform Entity * -name : string -os -entities 1 * DevicePlatform ProgrammingLanguage -name : string -version : string -revision : string -profile : string Edge -id : int -name : string * * -incoming Information -environment -environment -environment 1 1 1 1 -environment -environment OperatingSystem -os -name : string -version : string -revision : string * -programmingLanguages * * DevelopmentEnvironment 1 0..* -target * 1 * -name : string ConnectionToDeviceEdge -platforms -connections 1 -environment -environment -ongoing -name : string -connection -name : string -version : string -mediums -source -platforms -devices 1 Device 1 -language -target * 1 * -name : string -source -device 1 * -ongoing -incoming DeviceToConnectionEdge
  • 62.
  • 63. Underlying infrastructure (Model semantics) Modelled by Conceptual Architecture (Class level) Implemented by Compiles to Abstract Framework (Source code) Generated Source code
  • 64. Introduction CAUCE MDD CAUCE CASE Tool Study cases CAUCE CASE Conclusions
  • 65.  The CAUCE CASE tool supports the CAUCE model-driven development   Developed using the Eclipse platform (EMF, GMF, etc) Editors:         The Social model editor The Space model editor The Task model editor The Information Flow model editor The Entity Context model editor The Referential Space model editor The Mapping model editor Transformations  ATL Model to Model transformation  MOFScript Model to Text transformation  Abstract Framework structure
  • 66.  For validation purposes we have defined three scenarios that cover Schmidt CAS characteristics Scenarios Feature Light Controller Healthy Screen Shared Blackboard Entity Factors Information on Entities X Social environment X Tasks X Physical Environment Physical conditions X Infrastructure X Location X
  • 68.  The context awareness concept  The ubiquitous computing concepts  UML, MDA, EMOF, OCL, ATL, MOFScript  Formal Methods:  Petri Nets  Workflows  Regular Expressions  Related work on  Model-driven development of CAS using MOF  Model-driven development of CAS using UML profiles  Ontology driven development of CAS  Implementation  Eclipse platform (EMF, GMF, etc.)  Java Technology
  • 69.  The analysis layer to define the characteristics of CAS to be developed, composed by     The Task metamodel The Social metamodel The Space metamodel The information layer to define the software characteristics of the CAS to be developed, composed by:    The Information Flow metamodel The Referential Space metamodel The Entity Context metamodel  An analysis to information layer M2M transformation to turn CAS characteristics into software artefacts  An information layer to source code M2T transformation to turn CAS software characteristics into source code  The Mapping metamodel to specify the PSM of the system  The underlying infrastructure to describe model behaviour  A conceptual architecture to support the proposed models  An abstract framework to decouple generated code from implementation
  • 70.  To develop CAS for UCE we have implemented the CAUCE CASE Tool:         The Space model editor The Task model editor The Social model editor The Information Flow model editor The Entity Context editor The Referential Space editor ATL M2M transformation between analysis and information layer models MOFScript M2M transformation from information layer models to source code  Abstract Conceptual Framework  We have also generated the source code structure for three study cases covering all CAS for UCE characteristics exposed by Schmidt.  The light controller  The healthy screen  The shared blackboard
  • 71.  MDA   Ubiquitous Computing    Description of interaction elements in terms of regular expressions providing a precise syntax to describe events Groupware   The use of semi-formal methods to model high level characteristics (Petri Nets, Workflows and Regular Expressions) HCI   3 metamodels and DSLs to describe CAS for UCE characteristics. 3 metamodels and DSLs to describe software characteristics of CAS for UCE Verification and formal methods   Implementation of the CAUCE CASE tool Some of the methods used to describe CAS for UCE may be used to describe Groupware systems AI and Agents  The ECMM provides designers to model entity contexts in terms of Horn clauses.
  • 72.  About 20 publications  More than 25% of them were published in journals that belong to Q1 and Q2 (JCR 2008).  More that 50 % of them where published in International congresses  A patent “Interaction device to explore georeferenced documents” (Spain)
  • 73.  Intra-layer inter-model consistency verification  Adaptation to commercial APIs and programming interfaces  Automatic generation of code for system testing  Verification of Petri Nets properties liveness, bounderness, etc (export to Petri Nets files)  Simulators for the task and flow models.  Metamodel extension to provide the proposed operators in the analysis layer  Implementation of the proposed syntax sugar in the analysis layer
  • 74. PhD. Dissertation Candidate: Ricardo Tesoriero Supervisors: PhD. José Antonio Gallud Lázaro PhD. María Dolores Lozano Pérez