SlideShare a Scribd company logo
1 of 48
Download to read offline
On Context-Orientation in Aggregate Programming
Roberto Casadei1
, Danilo Pianini1
, Guido Salvaneschi2
, Mirko Viroli1
1
ALMA MATER STUDIORUM–Università di Bologna, Cesena, Italy
2
Technische Universität Darmstadt, Darmstadt, Germany
4th eCAS Workshop on Engineering Collective Adaptive Systems
Umeå, Sweden
June, 2019
R. Casadei Introduction COP AP AP + COP Wrap-up 1/17
Outline
1 Introduction
2 Context-Oriented Programming (COP)
3 Aggregate Programming
4 Programming Context-aware Systems: AP & COP
5 Wrap-up
R. Casadei Introduction COP AP AP + COP Wrap-up 2/17
motivation—context-aware systems
for contextual service provisioning
for (self-)adaptiveness
R. Casadei Introduction COP AP AP + COP Wrap-up 3/17
motivation—context-aware systems
for contextual service provisioning
for (self-)adaptiveness
R. Casadei Introduction COP AP AP + COP Wrap-up 3/17
motivation—context-aware systems
for contextual service provisioning
for (self-)adaptiveness
R. Casadei Introduction COP AP AP + COP Wrap-up 3/17
motivation—context-aware systems
for contextual service provisioning
for (self-)adaptiveness
and, btw, what is context?
R. Casadei Introduction COP AP AP + COP Wrap-up 3/17
motivation—how to program
context-aware systems?
runtime dependency substitution, AOP, ...
Context-Oriented Programming (COP)
software variability management (SPLs, ...)
self-* research—e.g., Aggregate Programming (AP)
R. Casadei Introduction COP AP AP + COP Wrap-up 4/17
motivation—how to program
context-aware systems?
runtime dependency substitution, AOP, ...
Context-Oriented Programming (COP)
software variability management (SPLs, ...)
self-* research—e.g., Aggregate Programming (AP)
R. Casadei Introduction COP AP AP + COP Wrap-up 4/17
motivation—how to program
context-aware systems?
runtime dependency substitution, AOP, ...
Context-Oriented Programming (COP)
software variability management (SPLs, ...)
self-* research—e.g., Aggregate Programming (AP)
R. Casadei Introduction COP AP AP + COP Wrap-up 4/17
motivation—how to program
context-aware systems?
runtime dependency substitution, AOP, ...
Context-Oriented Programming (COP)
software variability management (SPLs, ...)
self-* research—e.g., Aggregate Programming (AP)
R. Casadei Introduction COP AP AP + COP Wrap-up 4/17
motivation—how to program
context-aware systems?
runtime dependency substitution, AOP, ...
Context-Oriented Programming (COP)
software variability management (SPLs, ...)
self-* research—e.g., Aggregate Programming (AP)
R. Casadei Introduction COP AP AP + COP Wrap-up 4/17
contribution
1) context-orientation in Aggregate Computing
2) potential synergies between Context-Oriented (COP)
and Aggregate Programming (AP)
– AP for COP
– COP for AP
R. Casadei Introduction COP AP AP + COP Wrap-up 5/17
contribution
1) context-orientation in Aggregate Computing
2) potential synergies between Context-Oriented (COP)
and Aggregate Programming (AP)
– AP for COP
– COP for AP
R. Casadei Introduction COP AP AP + COP Wrap-up 5/17
contribution
1) context-orientation in Aggregate Computing
2) potential synergies between Context-Oriented (COP)
and Aggregate Programming (AP)
– AP for COP
– COP for AP
R. Casadei Introduction COP AP AP + COP Wrap-up 5/17
contribution
1) context-orientation in Aggregate Computing
2) potential synergies between Context-Oriented (COP)
and Aggregate Programming (AP)
– AP for COP
– COP for AP
R. Casadei Introduction COP AP AP + COP Wrap-up 5/17
Outline
1 Introduction
2 Context-Oriented Programming (COP)
3 Aggregate Programming
4 Programming Context-aware Systems: AP & COP
5 Wrap-up
R. Casadei Introduction COP AP AP + COP Wrap-up 6/17
ctx-oriented programming (COP) [5, 4]
R. Casadei Introduction COP AP AP + COP Wrap-up 7/17
ctx-oriented programming (COP) [5, 4]
ctx-aware system development as linguistic problem
abstractions for adaptation modularization
– layer
abstractions for dynamic de/activation of layers
– dynamically scoped activation, implicit activation...
R. Casadei Introduction COP AP AP + COP Wrap-up 7/17
ctx-oriented programming (COP) [5, 4]
ctx-aware system development as linguistic problem
abstractions for adaptation modularization
– layer
abstractions for dynamic de/activation of layers
– dynamically scoped activation, implicit activation...
R. Casadei Introduction COP AP AP + COP Wrap-up 7/17
ctx-oriented programming (COP) [5, 4]
ctx-aware system development as linguistic problem
abstractions for adaptation modularization
– layer
abstractions for dynamic de/activation of layers
– dynamically scoped activation, implicit activation...
R. Casadei Introduction COP AP AP + COP Wrap-up 7/17
ctx-oriented programming (COP) [5, 4]
class Storage<K,V> {
V getItem(K key){ println("Lookup."); /*...*/ return result; }
layer logLayer {
print("Logging.")
V getItem(K key){ log("..."); return proceed(); }
}
layer cacheLayer {
print("Cache.")
V getItem(K key){ /*..*/ return res!=null ? res : proceed(); }
}
}
Storage s = new Storage<String,String>();
s.getItem("foo"); // Lookup.
with(cacheLayer){ s.getItem("foo"); } // Cache. Lookup.
with(cacheLayer,logLayer){
s.getItem("foo"); } // Logging. Cache. Lookup.
R. Casadei Introduction COP AP AP + COP Wrap-up 7/17
Outline
1 Introduction
2 Context-Oriented Programming (COP)
3 Aggregate Programming
4 Programming Context-aware Systems: AP & COP
5 Wrap-up
R. Casadei Introduction COP AP AP + COP Wrap-up 8/17
Background » Aggregate Programming (AP) [2, 6]
Aggregate Computing =
paradigm for programming CASs
formally founded (computational field calculus)
continuous execution of a global program
R. Casadei Introduction COP AP AP + COP Wrap-up 9/17
Background » Aggregate Programming (AP) [2, 6]
Aggregate Computing =
paradigm for programming CASs
formally founded (computational field calculus)
continuous execution of a global program
R. Casadei Introduction COP AP AP + COP Wrap-up 9/17
Background » Aggregate Programming (AP) [2, 6]
sensors
local functions
actuators
Application
Code
Developer
APIs
Field Calculus
Constructs
Resilient
Coordination
Operators
Device
Capabilities
functions repnbr
TGCfunctions
communication state
PerceptionPerception
summarize
average
regionMax
…
ActionAction StateState
Collective BehaviorCollective Behavior
distanceTo
broadcast
partition
…
timer
lowpass
recentTrue
…
collectivePerception
collectiveSummary
managementRegions
…
Crowd ManagementCrowd Management
dangerousDensity crowdTracking
crowdWarning safeDispersal
restriction
self­stabilisation
R. Casadei Introduction COP AP AP + COP Wrap-up 9/17
Background » Aggregate Programming (AP) [2, 6]
AP execution model (protocol)
async rounds of computation
1) full run of “aggregate program” against “local context”
device state
sensor readings
neighbourhood coordination data
2) broadcast coordination data to neighbours
R. Casadei Introduction COP AP AP + COP Wrap-up 9/17
Background » Aggregate Programming (AP) [2, 6]
“hello world” example (gradient)
R. Casadei Introduction COP AP AP + COP Wrap-up 9/17
Background » Aggregate Programming (AP) [2, 6]
“hello world” example (gradient)
class MyProgram extends AggregateProgram {
override def main = gradient(sense[Boolean]("source"))
def gradient(source: Boolean): Double =
rep(Double.PositiveInfinity)(distance =>
mux(source){
0.0
}{
minHoodPlus( nbr{distance} + metric )))
}
)
}
R. Casadei Introduction COP AP AP + COP Wrap-up 9/17
key insight
AP enables convenient definition of distributed,
continuous processes of reification, transformation,
fusion, spreading of contexts
AP intrinsically deals with more that one individual
A) usually to drive collective behaviour (local-to-global), &
B) to locally make sense of what happens around
(global-into-local)
branch(gradient(src) < threshold){
// CONTEXT: near to point-of-interest
}{
// CONTEXT: distant to point-of-interest
}
R. Casadei Introduction COP AP AP + COP Wrap-up 10/17
devices as environmental probes
R. Casadei Introduction COP AP AP + COP Wrap-up 10/17
AC for app context management
R. Casadei Introduction COP AP AP + COP Wrap-up 10/17
context in aggregate computing
neighbour
coordination
data
sensor data
state
LOCAL
CONTEXT
GLOBAL
CONTEXT
actuation
R. Casadei Introduction COP AP AP + COP Wrap-up 10/17
Outline
1 Introduction
2 Context-Oriented Programming (COP)
3 Aggregate Programming
4 Programming Context-aware Systems: AP & COP
5 Wrap-up
R. Casadei Introduction COP AP AP + COP Wrap-up 11/17
AC for COP: programming the context
R. Casadei Introduction COP AP AP + COP Wrap-up 12/17
AC for COP: programming the context
COP assumes context is already here
AC enables progressive construction and
propagation of context
– to drive activation of layers
R. Casadei Introduction COP AP AP + COP Wrap-up 12/17
AC for COP: programming the context
COP assumes context is already here
AC enables progressive construction and
propagation of context
– to drive activation of layers
R. Casadei Introduction COP AP AP + COP Wrap-up 12/17
AC for COP: programming the context
R. Casadei Introduction COP AP AP + COP Wrap-up 12/17
COP for AP
R. Casadei Introduction COP AP AP + COP Wrap-up 13/17
COP for AP
layers to modularise alternative collective behaviours
– mainly an aid for code organisation
Ǧ e.g., concrete gradient impl based on system dynamics
R. Casadei Introduction COP AP AP + COP Wrap-up 13/17
COP for AP
layers to modularise alternative collective behaviours
– mainly an aid for code organisation
Ǧ e.g., concrete gradient impl based on system dynamics
R. Casadei Introduction COP AP AP + COP Wrap-up 13/17
COP for AP
class AggregateProgram with Layers {
/* Layer definitions */
layer("HighMobility"){
_.replace("Gradient"){ ULTg /* see[1] */ }
.after("FunctionXXX") { /* side computation */ }
}.on { /* collective estimation of mobility */ }
/* Layered functions */
def gradient(source: Boolean): Double =
layered("Gradient"){
classicGradient(source) // most basic impl
}
def main() = { // program entry point
val leaders = S(grain)
val g = gradient(leaders) // ctx-sensitive
val data = C(g, events) // collect into leaders
// ...
}
}
R. Casadei Introduction COP AP AP + COP Wrap-up 13/17
COP for AP
issues
1) basic HFC cannot align dynamic computations
HFC extended as per [3]
2) devices executing different gradient algorithms cannot
interact!
border nodes must run both algorithms and bridge
values
R. Casadei Introduction COP AP AP + COP Wrap-up 13/17
more on context & AC: aggregate
processes
dynamic, concurrent aggregate computations
see COORD’19 paper [3]
context-oriented lifecycle management
R. Casadei Introduction COP AP AP + COP Wrap-up 14/17
more on context & AC: aggregate
processes
dynamic, concurrent aggregate computations
see COORD’19 paper [3]
context-oriented lifecycle management
R. Casadei Introduction COP AP AP + COP Wrap-up 14/17
more on context & AC: aggregate
processes
dynamic, concurrent aggregate computations
see COORD’19 paper [3]
context-oriented lifecycle management
R. Casadei Introduction COP AP AP + COP Wrap-up 14/17
Outline
1 Introduction
2 Context-Oriented Programming (COP)
3 Aggregate Programming
4 Programming Context-aware Systems: AP & COP
5 Wrap-up
R. Casadei Introduction COP AP AP + COP Wrap-up 15/17
key points
AP is for distributed, continuous processes of
transformation, fusion, spreading of contexts
contextual fields in AP can feed COP modules
AP DSLs can be extended with COP-like features
future work
systematic review on context-orientation in CAS
extend this work with more on AP+COP mixing
R. Casadei Introduction COP AP AP + COP Wrap-up 16/17
References (1/1)
[1] Giorgio Audrito et al. “Compositional blocks for optimal self-healing gradients”. In: Conf. on
Self-Adaptive and Self-Organizing Systems (SASO). IEEE. 2017, pp. 91–100.
[2] Jacob Beal, Danilo Pianini, and Mirko Viroli. “Aggregate Programming for the Internet of Things”. In:
IEEE Computer (2015). ISSN: 1364-503X.
[3] Roberto Casadei et al. “Aggregate Processes in Field Calculus”. In: International Conference on
Coordination Languages and Models. Springer. 2019, pp. 200–217.
[4] Pascal Costanza and Robert Hirschfeld. “Language constructs for context-oriented programming: an
overview of ContextL”. In: Proceedings of the 2005 symposium on Dynamic languages. ACM. 2005,
pp. 1–10.
[5] Guido Salvaneschi, Carlo Ghezzi, and Matteo Pradella. “Context-oriented programming: A software
engineering perspective”. In: Journal of Systems and Software 85.8 (2012), pp. 1801–1817. ISSN:
01641212. DOI: 10.1016/j.jss.2012.03.024. URL:
http://dx.doi.org/10.1016/j.jss.2012.03.024.
[6] Mirko Viroli et al. “From Field-Based Coordination to Aggregate Computing”. In: Int. Conf. on
Coordination Languages and Models. Springer. 2018, pp. 252–279.
R. Casadei Appendix References 17/17

More Related Content

What's hot

Rapid Software Communications Architecture (SCA) Development for DSPs with Sp...
Rapid Software Communications Architecture (SCA) Development for DSPs with Sp...Rapid Software Communications Architecture (SCA) Development for DSPs with Sp...
Rapid Software Communications Architecture (SCA) Development for DSPs with Sp...ADLINK Technology IoT
 
Automated Design Space Exploration and Roofline Analysis for FPGA-based HLS A...
Automated Design Space Exploration and Roofline Analysis for FPGA-based HLS A...Automated Design Space Exploration and Roofline Analysis for FPGA-based HLS A...
Automated Design Space Exploration and Roofline Analysis for FPGA-based HLS A...NECST Lab @ Politecnico di Milano
 
LLVM-based Communication Optimizations for PGAS Programs
LLVM-based Communication Optimizations for PGAS ProgramsLLVM-based Communication Optimizations for PGAS Programs
LLVM-based Communication Optimizations for PGAS ProgramsAkihiro Hayashi
 
LEGaTO: Software Stack Runtimes
LEGaTO: Software Stack RuntimesLEGaTO: Software Stack Runtimes
LEGaTO: Software Stack RuntimesLEGATO project
 
Programming Languages & Tools for Higher Performance & Productivity
Programming Languages & Tools for Higher Performance & ProductivityProgramming Languages & Tools for Higher Performance & Productivity
Programming Languages & Tools for Higher Performance & ProductivityLinaro
 
"The Vision Acceleration API Landscape: Options and Trade-offs," a Presentati...
"The Vision Acceleration API Landscape: Options and Trade-offs," a Presentati..."The Vision Acceleration API Landscape: Options and Trade-offs," a Presentati...
"The Vision Acceleration API Landscape: Options and Trade-offs," a Presentati...Edge AI and Vision Alliance
 
Post-K: Building the Arm HPC Ecosystem
Post-K: Building the Arm HPC EcosystemPost-K: Building the Arm HPC Ecosystem
Post-K: Building the Arm HPC EcosystemLinaro
 
Two-level Just-in-Time Compilation with One Interpreter and One Engine
Two-level Just-in-Time Compilation with One Interpreter and One EngineTwo-level Just-in-Time Compilation with One Interpreter and One Engine
Two-level Just-in-Time Compilation with One Interpreter and One EngineYusuke Izawa
 
RVC: A Multi-Decoder CAL Composer Tool
RVC: A Multi-Decoder CAL Composer ToolRVC: A Multi-Decoder CAL Composer Tool
RVC: A Multi-Decoder CAL Composer ToolMDC_UNICA
 
Stack Hybridization: A Mechanism for Bridging Two Compilation Strategies in a...
Stack Hybridization: A Mechanism for Bridging Two Compilation Strategies in a...Stack Hybridization: A Mechanism for Bridging Two Compilation Strategies in a...
Stack Hybridization: A Mechanism for Bridging Two Compilation Strategies in a...Yusuke Izawa
 
Post-K: Building the Arm HPC Ecosystem
Post-K: Building the Arm HPC Ecosystem	Post-K: Building the Arm HPC Ecosystem
Post-K: Building the Arm HPC Ecosystem Linaro
 
On the Capability and Achievable Performance of FPGAs for HPC Applications
On the Capability and Achievable Performance of FPGAs for HPC ApplicationsOn the Capability and Achievable Performance of FPGAs for HPC Applications
On the Capability and Achievable Performance of FPGAs for HPC ApplicationsWim Vanderbauwhede
 
OpenACC Monthly Highlights: September 2021
OpenACC Monthly Highlights: September 2021OpenACC Monthly Highlights: September 2021
OpenACC Monthly Highlights: September 2021OpenACC
 
TFIDF and Machine Learning – efficient hybrid processing
TFIDF and Machine Learning – efficient hybrid processingTFIDF and Machine Learning – efficient hybrid processing
TFIDF and Machine Learning – efficient hybrid processingMor Krispil
 
IJCAR 2018 keynote: Industrial Data Access
IJCAR 2018 keynote: Industrial Data AccessIJCAR 2018 keynote: Industrial Data Access
IJCAR 2018 keynote: Industrial Data AccessMartin Giese
 
Chapel Comes of Age: a Language for Productivity, Parallelism, and Performance
Chapel Comes of Age: a Language for Productivity, Parallelism, and PerformanceChapel Comes of Age: a Language for Productivity, Parallelism, and Performance
Chapel Comes of Age: a Language for Productivity, Parallelism, and Performanceinside-BigData.com
 
To SQL or No(t)SQL - PFCongres 2012
To SQL or No(t)SQL - PFCongres 2012To SQL or No(t)SQL - PFCongres 2012
To SQL or No(t)SQL - PFCongres 2012Jeroen van Dijk
 
Speeding up Programs with OpenACC in GCC
Speeding up Programs with OpenACC in GCCSpeeding up Programs with OpenACC in GCC
Speeding up Programs with OpenACC in GCCinside-BigData.com
 

What's hot (20)

Rapid Software Communications Architecture (SCA) Development for DSPs with Sp...
Rapid Software Communications Architecture (SCA) Development for DSPs with Sp...Rapid Software Communications Architecture (SCA) Development for DSPs with Sp...
Rapid Software Communications Architecture (SCA) Development for DSPs with Sp...
 
Automated Design Space Exploration and Roofline Analysis for FPGA-based HLS A...
Automated Design Space Exploration and Roofline Analysis for FPGA-based HLS A...Automated Design Space Exploration and Roofline Analysis for FPGA-based HLS A...
Automated Design Space Exploration and Roofline Analysis for FPGA-based HLS A...
 
LLVM-based Communication Optimizations for PGAS Programs
LLVM-based Communication Optimizations for PGAS ProgramsLLVM-based Communication Optimizations for PGAS Programs
LLVM-based Communication Optimizations for PGAS Programs
 
LEGaTO: Software Stack Runtimes
LEGaTO: Software Stack RuntimesLEGaTO: Software Stack Runtimes
LEGaTO: Software Stack Runtimes
 
Programming Languages & Tools for Higher Performance & Productivity
Programming Languages & Tools for Higher Performance & ProductivityProgramming Languages & Tools for Higher Performance & Productivity
Programming Languages & Tools for Higher Performance & Productivity
 
"The Vision Acceleration API Landscape: Options and Trade-offs," a Presentati...
"The Vision Acceleration API Landscape: Options and Trade-offs," a Presentati..."The Vision Acceleration API Landscape: Options and Trade-offs," a Presentati...
"The Vision Acceleration API Landscape: Options and Trade-offs," a Presentati...
 
Post-K: Building the Arm HPC Ecosystem
Post-K: Building the Arm HPC EcosystemPost-K: Building the Arm HPC Ecosystem
Post-K: Building the Arm HPC Ecosystem
 
Two-level Just-in-Time Compilation with One Interpreter and One Engine
Two-level Just-in-Time Compilation with One Interpreter and One EngineTwo-level Just-in-Time Compilation with One Interpreter and One Engine
Two-level Just-in-Time Compilation with One Interpreter and One Engine
 
RVC: A Multi-Decoder CAL Composer Tool
RVC: A Multi-Decoder CAL Composer ToolRVC: A Multi-Decoder CAL Composer Tool
RVC: A Multi-Decoder CAL Composer Tool
 
Stack Hybridization: A Mechanism for Bridging Two Compilation Strategies in a...
Stack Hybridization: A Mechanism for Bridging Two Compilation Strategies in a...Stack Hybridization: A Mechanism for Bridging Two Compilation Strategies in a...
Stack Hybridization: A Mechanism for Bridging Two Compilation Strategies in a...
 
Introduction to DPDK RIB library
Introduction to DPDK RIB libraryIntroduction to DPDK RIB library
Introduction to DPDK RIB library
 
Lecture 1
Lecture 1Lecture 1
Lecture 1
 
Post-K: Building the Arm HPC Ecosystem
Post-K: Building the Arm HPC Ecosystem	Post-K: Building the Arm HPC Ecosystem
Post-K: Building the Arm HPC Ecosystem
 
On the Capability and Achievable Performance of FPGAs for HPC Applications
On the Capability and Achievable Performance of FPGAs for HPC ApplicationsOn the Capability and Achievable Performance of FPGAs for HPC Applications
On the Capability and Achievable Performance of FPGAs for HPC Applications
 
OpenACC Monthly Highlights: September 2021
OpenACC Monthly Highlights: September 2021OpenACC Monthly Highlights: September 2021
OpenACC Monthly Highlights: September 2021
 
TFIDF and Machine Learning – efficient hybrid processing
TFIDF and Machine Learning – efficient hybrid processingTFIDF and Machine Learning – efficient hybrid processing
TFIDF and Machine Learning – efficient hybrid processing
 
IJCAR 2018 keynote: Industrial Data Access
IJCAR 2018 keynote: Industrial Data AccessIJCAR 2018 keynote: Industrial Data Access
IJCAR 2018 keynote: Industrial Data Access
 
Chapel Comes of Age: a Language for Productivity, Parallelism, and Performance
Chapel Comes of Age: a Language for Productivity, Parallelism, and PerformanceChapel Comes of Age: a Language for Productivity, Parallelism, and Performance
Chapel Comes of Age: a Language for Productivity, Parallelism, and Performance
 
To SQL or No(t)SQL - PFCongres 2012
To SQL or No(t)SQL - PFCongres 2012To SQL or No(t)SQL - PFCongres 2012
To SQL or No(t)SQL - PFCongres 2012
 
Speeding up Programs with OpenACC in GCC
Speeding up Programs with OpenACC in GCCSpeeding up Programs with OpenACC in GCC
Speeding up Programs with OpenACC in GCC
 

Similar to On Context-Orientation in Aggregate Programming

A Programming Framework for Collective Adaptive Ecosystems
A Programming Framework for Collective Adaptive EcosystemsA Programming Framework for Collective Adaptive Ecosystems
A Programming Framework for Collective Adaptive EcosystemsRoberto Casadei
 
Scafi: Scala with Computational Fields
Scafi: Scala with Computational FieldsScafi: Scala with Computational Fields
Scafi: Scala with Computational FieldsRoberto Casadei
 
Aggregate Computing Platforms: Bridging the Gaps
Aggregate Computing Platforms: Bridging the GapsAggregate Computing Platforms: Bridging the Gaps
Aggregate Computing Platforms: Bridging the GapsRoberto Casadei
 
Programming Actor-based Collective Adaptive Systems
Programming Actor-based Collective Adaptive SystemsProgramming Actor-based Collective Adaptive Systems
Programming Actor-based Collective Adaptive SystemsRoberto Casadei
 
Bridging the Pervasive Computing Gap: An Aggregate Perspective
Bridging the Pervasive Computing Gap: An Aggregate PerspectiveBridging the Pervasive Computing Gap: An Aggregate Perspective
Bridging the Pervasive Computing Gap: An Aggregate PerspectiveRoberto Casadei
 
On Execution Platforms for Large-Scale Aggregate Computing
On Execution Platforms for Large-Scale Aggregate ComputingOn Execution Platforms for Large-Scale Aggregate Computing
On Execution Platforms for Large-Scale Aggregate ComputingRoberto Casadei
 
Coordinating Computation at the Edge: a Decentralized, Self-organizing, Spati...
Coordinating Computation at the Edge: a Decentralized, Self-organizing, Spati...Coordinating Computation at the Edge: a Decentralized, Self-organizing, Spati...
Coordinating Computation at the Edge: a Decentralized, Self-organizing, Spati...Roberto Casadei
 
Aggregate Processes in Field Calculus
Aggregate Processes in Field CalculusAggregate Processes in Field Calculus
Aggregate Processes in Field CalculusRoberto Casadei
 
FScaFi: A Core Calculus for Collective Adaptive Systems Programming
FScaFi: A Core Calculus for Collective Adaptive Systems ProgrammingFScaFi: A Core Calculus for Collective Adaptive Systems Programming
FScaFi: A Core Calculus for Collective Adaptive Systems ProgrammingRoberto Casadei
 
Practical Aggregate Programming in Scala
Practical Aggregate Programming in ScalaPractical Aggregate Programming in Scala
Practical Aggregate Programming in ScalaRoberto Casadei
 
Large scale logistic regression and linear support vector machines using spark
Large scale logistic regression and linear support vector machines using sparkLarge scale logistic regression and linear support vector machines using spark
Large scale logistic regression and linear support vector machines using sparkMila, Université de Montréal
 
Episode 3: Kubernetes and Big Data Services
Episode 3: Kubernetes and Big Data ServicesEpisode 3: Kubernetes and Big Data Services
Episode 3: Kubernetes and Big Data ServicesMesosphere Inc.
 
RR & Docker @ MuensteR Meetup (Sep 2017)
RR & Docker @ MuensteR Meetup (Sep 2017)RR & Docker @ MuensteR Meetup (Sep 2017)
RR & Docker @ MuensteR Meetup (Sep 2017)Daniel Nüst
 
NVIDIA HPC ソフトウエア斜め読み
NVIDIA HPC ソフトウエア斜め読みNVIDIA HPC ソフトウエア斜め読み
NVIDIA HPC ソフトウエア斜め読みNVIDIA Japan
 
Towards Automated Engineering for Collective Adaptive Systems: Vision and Res...
Towards Automated Engineering for Collective Adaptive Systems: Vision and Res...Towards Automated Engineering for Collective Adaptive Systems: Vision and Res...
Towards Automated Engineering for Collective Adaptive Systems: Vision and Res...Roberto Casadei
 
Apache Spark - Intro to Large-scale recommendations with Apache Spark and Python
Apache Spark - Intro to Large-scale recommendations with Apache Spark and PythonApache Spark - Intro to Large-scale recommendations with Apache Spark and Python
Apache Spark - Intro to Large-scale recommendations with Apache Spark and PythonChristian Perone
 
Modern Release Engineering in a Nutshell - Why Researchers should Care!
Modern Release Engineering in a Nutshell - Why Researchers should Care!Modern Release Engineering in a Nutshell - Why Researchers should Care!
Modern Release Engineering in a Nutshell - Why Researchers should Care!Bram Adams
 
A Physical Units Library for the Next C++
A Physical Units Library for the Next C++A Physical Units Library for the Next C++
A Physical Units Library for the Next C++Mateusz Pusz
 
carrow - Go bindings to Apache Arrow via C++-API
carrow - Go bindings to Apache Arrow via C++-APIcarrow - Go bindings to Apache Arrow via C++-API
carrow - Go bindings to Apache Arrow via C++-APIYoni Davidson
 

Similar to On Context-Orientation in Aggregate Programming (20)

A Programming Framework for Collective Adaptive Ecosystems
A Programming Framework for Collective Adaptive EcosystemsA Programming Framework for Collective Adaptive Ecosystems
A Programming Framework for Collective Adaptive Ecosystems
 
Scafi: Scala with Computational Fields
Scafi: Scala with Computational FieldsScafi: Scala with Computational Fields
Scafi: Scala with Computational Fields
 
Aggregate Computing Platforms: Bridging the Gaps
Aggregate Computing Platforms: Bridging the GapsAggregate Computing Platforms: Bridging the Gaps
Aggregate Computing Platforms: Bridging the Gaps
 
Programming Actor-based Collective Adaptive Systems
Programming Actor-based Collective Adaptive SystemsProgramming Actor-based Collective Adaptive Systems
Programming Actor-based Collective Adaptive Systems
 
Bridging the Pervasive Computing Gap: An Aggregate Perspective
Bridging the Pervasive Computing Gap: An Aggregate PerspectiveBridging the Pervasive Computing Gap: An Aggregate Perspective
Bridging the Pervasive Computing Gap: An Aggregate Perspective
 
On Execution Platforms for Large-Scale Aggregate Computing
On Execution Platforms for Large-Scale Aggregate ComputingOn Execution Platforms for Large-Scale Aggregate Computing
On Execution Platforms for Large-Scale Aggregate Computing
 
Coordinating Computation at the Edge: a Decentralized, Self-organizing, Spati...
Coordinating Computation at the Edge: a Decentralized, Self-organizing, Spati...Coordinating Computation at the Edge: a Decentralized, Self-organizing, Spati...
Coordinating Computation at the Edge: a Decentralized, Self-organizing, Spati...
 
Partial Compilers
Partial CompilersPartial Compilers
Partial Compilers
 
Aggregate Processes in Field Calculus
Aggregate Processes in Field CalculusAggregate Processes in Field Calculus
Aggregate Processes in Field Calculus
 
FScaFi: A Core Calculus for Collective Adaptive Systems Programming
FScaFi: A Core Calculus for Collective Adaptive Systems ProgrammingFScaFi: A Core Calculus for Collective Adaptive Systems Programming
FScaFi: A Core Calculus for Collective Adaptive Systems Programming
 
Practical Aggregate Programming in Scala
Practical Aggregate Programming in ScalaPractical Aggregate Programming in Scala
Practical Aggregate Programming in Scala
 
Large scale logistic regression and linear support vector machines using spark
Large scale logistic regression and linear support vector machines using sparkLarge scale logistic regression and linear support vector machines using spark
Large scale logistic regression and linear support vector machines using spark
 
Episode 3: Kubernetes and Big Data Services
Episode 3: Kubernetes and Big Data ServicesEpisode 3: Kubernetes and Big Data Services
Episode 3: Kubernetes and Big Data Services
 
RR & Docker @ MuensteR Meetup (Sep 2017)
RR & Docker @ MuensteR Meetup (Sep 2017)RR & Docker @ MuensteR Meetup (Sep 2017)
RR & Docker @ MuensteR Meetup (Sep 2017)
 
NVIDIA HPC ソフトウエア斜め読み
NVIDIA HPC ソフトウエア斜め読みNVIDIA HPC ソフトウエア斜め読み
NVIDIA HPC ソフトウエア斜め読み
 
Towards Automated Engineering for Collective Adaptive Systems: Vision and Res...
Towards Automated Engineering for Collective Adaptive Systems: Vision and Res...Towards Automated Engineering for Collective Adaptive Systems: Vision and Res...
Towards Automated Engineering for Collective Adaptive Systems: Vision and Res...
 
Apache Spark - Intro to Large-scale recommendations with Apache Spark and Python
Apache Spark - Intro to Large-scale recommendations with Apache Spark and PythonApache Spark - Intro to Large-scale recommendations with Apache Spark and Python
Apache Spark - Intro to Large-scale recommendations with Apache Spark and Python
 
Modern Release Engineering in a Nutshell - Why Researchers should Care!
Modern Release Engineering in a Nutshell - Why Researchers should Care!Modern Release Engineering in a Nutshell - Why Researchers should Care!
Modern Release Engineering in a Nutshell - Why Researchers should Care!
 
A Physical Units Library for the Next C++
A Physical Units Library for the Next C++A Physical Units Library for the Next C++
A Physical Units Library for the Next C++
 
carrow - Go bindings to Apache Arrow via C++-API
carrow - Go bindings to Apache Arrow via C++-APIcarrow - Go bindings to Apache Arrow via C++-API
carrow - Go bindings to Apache Arrow via C++-API
 

More from Roberto Casadei

Programming (and Learning) Self-Adaptive & Self-Organising Behaviour with Sca...
Programming (and Learning) Self-Adaptive & Self-Organising Behaviour with Sca...Programming (and Learning) Self-Adaptive & Self-Organising Behaviour with Sca...
Programming (and Learning) Self-Adaptive & Self-Organising Behaviour with Sca...Roberto Casadei
 
A Presentation of My Research Activity
A Presentation of My Research ActivityA Presentation of My Research Activity
A Presentation of My Research ActivityRoberto Casadei
 
Self-Organisation Programming: a Functional Reactive Macro Approach (FRASP) [...
Self-Organisation Programming: a Functional Reactive Macro Approach (FRASP) [...Self-Organisation Programming: a Functional Reactive Macro Approach (FRASP) [...
Self-Organisation Programming: a Functional Reactive Macro Approach (FRASP) [...Roberto Casadei
 
Programming Distributed Collective Processes for Dynamic Ensembles and Collec...
Programming Distributed Collective Processes for Dynamic Ensembles and Collec...Programming Distributed Collective Processes for Dynamic Ensembles and Collec...
Programming Distributed Collective Processes for Dynamic Ensembles and Collec...Roberto Casadei
 
Aggregate Computing Research: an Overview
Aggregate Computing Research: an OverviewAggregate Computing Research: an Overview
Aggregate Computing Research: an OverviewRoberto Casadei
 
Introduction to the 1st DISCOLI workshop on distributed collective intelligence
Introduction to the 1st DISCOLI workshop on distributed collective intelligenceIntroduction to the 1st DISCOLI workshop on distributed collective intelligence
Introduction to the 1st DISCOLI workshop on distributed collective intelligenceRoberto Casadei
 
Digital Twins, Virtual Devices, and Augmentations for Self-Organising Cyber-P...
Digital Twins, Virtual Devices, and Augmentations for Self-Organising Cyber-P...Digital Twins, Virtual Devices, and Augmentations for Self-Organising Cyber-P...
Digital Twins, Virtual Devices, and Augmentations for Self-Organising Cyber-P...Roberto Casadei
 
6th eCAS workshop on Engineering Collective Adaptive Systems
6th eCAS workshop on Engineering Collective Adaptive Systems6th eCAS workshop on Engineering Collective Adaptive Systems
6th eCAS workshop on Engineering Collective Adaptive SystemsRoberto Casadei
 
Augmented Collective Digital Twins for Self-Organising Cyber-Physical Systems
Augmented Collective Digital Twins for Self-Organising Cyber-Physical SystemsAugmented Collective Digital Twins for Self-Organising Cyber-Physical Systems
Augmented Collective Digital Twins for Self-Organising Cyber-Physical SystemsRoberto Casadei
 
Tuple-Based Coordination in Large-Scale Situated Systems
Tuple-Based Coordination in Large-Scale Situated SystemsTuple-Based Coordination in Large-Scale Situated Systems
Tuple-Based Coordination in Large-Scale Situated SystemsRoberto Casadei
 
Pulverisation in Cyber-Physical Systems: Engineering the Self-Organising Logi...
Pulverisation in Cyber-Physical Systems: Engineering the Self-Organising Logi...Pulverisation in Cyber-Physical Systems: Engineering the Self-Organising Logi...
Pulverisation in Cyber-Physical Systems: Engineering the Self-Organising Logi...Roberto Casadei
 
Collective Adaptive Systems as Coordination Media: The Case of Tuples in Spac...
Collective Adaptive Systems as Coordination Media: The Case of Tuples in Spac...Collective Adaptive Systems as Coordination Media: The Case of Tuples in Spac...
Collective Adaptive Systems as Coordination Media: The Case of Tuples in Spac...Roberto Casadei
 
Testing: an Introduction and Panorama
Testing: an Introduction and PanoramaTesting: an Introduction and Panorama
Testing: an Introduction and PanoramaRoberto Casadei
 
Engineering Resilient Collaborative Edge-enabled IoT
Engineering Resilient Collaborative Edge-enabled IoTEngineering Resilient Collaborative Edge-enabled IoT
Engineering Resilient Collaborative Edge-enabled IoTRoberto Casadei
 
AWS and Serverless Computing
AWS and Serverless ComputingAWS and Serverless Computing
AWS and Serverless ComputingRoberto Casadei
 
The Rust Programming Language: an Overview
The Rust Programming Language: an OverviewThe Rust Programming Language: an Overview
The Rust Programming Language: an OverviewRoberto Casadei
 
Akka Remoting and Clustering: an Introduction
Akka Remoting and Clustering: an IntroductionAkka Remoting and Clustering: an Introduction
Akka Remoting and Clustering: an IntroductionRoberto Casadei
 
Akka Actors: an Introduction
Akka Actors: an IntroductionAkka Actors: an Introduction
Akka Actors: an IntroductionRoberto Casadei
 
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
 
From Field-based Coordination to Aggregate Computing
From Field-based Coordination to Aggregate ComputingFrom Field-based Coordination to Aggregate Computing
From Field-based Coordination to Aggregate ComputingRoberto Casadei
 

More from Roberto Casadei (20)

Programming (and Learning) Self-Adaptive & Self-Organising Behaviour with Sca...
Programming (and Learning) Self-Adaptive & Self-Organising Behaviour with Sca...Programming (and Learning) Self-Adaptive & Self-Organising Behaviour with Sca...
Programming (and Learning) Self-Adaptive & Self-Organising Behaviour with Sca...
 
A Presentation of My Research Activity
A Presentation of My Research ActivityA Presentation of My Research Activity
A Presentation of My Research Activity
 
Self-Organisation Programming: a Functional Reactive Macro Approach (FRASP) [...
Self-Organisation Programming: a Functional Reactive Macro Approach (FRASP) [...Self-Organisation Programming: a Functional Reactive Macro Approach (FRASP) [...
Self-Organisation Programming: a Functional Reactive Macro Approach (FRASP) [...
 
Programming Distributed Collective Processes for Dynamic Ensembles and Collec...
Programming Distributed Collective Processes for Dynamic Ensembles and Collec...Programming Distributed Collective Processes for Dynamic Ensembles and Collec...
Programming Distributed Collective Processes for Dynamic Ensembles and Collec...
 
Aggregate Computing Research: an Overview
Aggregate Computing Research: an OverviewAggregate Computing Research: an Overview
Aggregate Computing Research: an Overview
 
Introduction to the 1st DISCOLI workshop on distributed collective intelligence
Introduction to the 1st DISCOLI workshop on distributed collective intelligenceIntroduction to the 1st DISCOLI workshop on distributed collective intelligence
Introduction to the 1st DISCOLI workshop on distributed collective intelligence
 
Digital Twins, Virtual Devices, and Augmentations for Self-Organising Cyber-P...
Digital Twins, Virtual Devices, and Augmentations for Self-Organising Cyber-P...Digital Twins, Virtual Devices, and Augmentations for Self-Organising Cyber-P...
Digital Twins, Virtual Devices, and Augmentations for Self-Organising Cyber-P...
 
6th eCAS workshop on Engineering Collective Adaptive Systems
6th eCAS workshop on Engineering Collective Adaptive Systems6th eCAS workshop on Engineering Collective Adaptive Systems
6th eCAS workshop on Engineering Collective Adaptive Systems
 
Augmented Collective Digital Twins for Self-Organising Cyber-Physical Systems
Augmented Collective Digital Twins for Self-Organising Cyber-Physical SystemsAugmented Collective Digital Twins for Self-Organising Cyber-Physical Systems
Augmented Collective Digital Twins for Self-Organising Cyber-Physical Systems
 
Tuple-Based Coordination in Large-Scale Situated Systems
Tuple-Based Coordination in Large-Scale Situated SystemsTuple-Based Coordination in Large-Scale Situated Systems
Tuple-Based Coordination in Large-Scale Situated Systems
 
Pulverisation in Cyber-Physical Systems: Engineering the Self-Organising Logi...
Pulverisation in Cyber-Physical Systems: Engineering the Self-Organising Logi...Pulverisation in Cyber-Physical Systems: Engineering the Self-Organising Logi...
Pulverisation in Cyber-Physical Systems: Engineering the Self-Organising Logi...
 
Collective Adaptive Systems as Coordination Media: The Case of Tuples in Spac...
Collective Adaptive Systems as Coordination Media: The Case of Tuples in Spac...Collective Adaptive Systems as Coordination Media: The Case of Tuples in Spac...
Collective Adaptive Systems as Coordination Media: The Case of Tuples in Spac...
 
Testing: an Introduction and Panorama
Testing: an Introduction and PanoramaTesting: an Introduction and Panorama
Testing: an Introduction and Panorama
 
Engineering Resilient Collaborative Edge-enabled IoT
Engineering Resilient Collaborative Edge-enabled IoTEngineering Resilient Collaborative Edge-enabled IoT
Engineering Resilient Collaborative Edge-enabled IoT
 
AWS and Serverless Computing
AWS and Serverless ComputingAWS and Serverless Computing
AWS and Serverless Computing
 
The Rust Programming Language: an Overview
The Rust Programming Language: an OverviewThe Rust Programming Language: an Overview
The Rust Programming Language: an Overview
 
Akka Remoting and Clustering: an Introduction
Akka Remoting and Clustering: an IntroductionAkka Remoting and Clustering: an Introduction
Akka Remoting and Clustering: an Introduction
 
Akka Actors: an Introduction
Akka Actors: an IntroductionAkka Actors: an Introduction
Akka Actors: an Introduction
 
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
 
From Field-based Coordination to Aggregate Computing
From Field-based Coordination to Aggregate ComputingFrom Field-based Coordination to Aggregate Computing
From Field-based Coordination to Aggregate Computing
 

Recently uploaded

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
 
unit 4 immunoblotting technique complete.pptx
unit 4 immunoblotting technique complete.pptxunit 4 immunoblotting technique complete.pptx
unit 4 immunoblotting technique complete.pptxBkGupta21
 
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
 
TeamStation AI System Report LATAM IT Salaries 2024
TeamStation AI System Report LATAM IT Salaries 2024TeamStation AI System Report LATAM IT Salaries 2024
TeamStation AI System Report LATAM IT Salaries 2024Lonnie McRorey
 
Tampa BSides - Chef's Tour of Microsoft Security Adoption Framework (SAF)
Tampa BSides - Chef's Tour of Microsoft Security Adoption Framework (SAF)Tampa BSides - Chef's Tour of Microsoft Security Adoption Framework (SAF)
Tampa BSides - Chef's Tour of Microsoft Security Adoption Framework (SAF)Mark Simos
 
Sample pptx for embedding into website for demo
Sample pptx for embedding into website for demoSample pptx for embedding into website for demo
Sample pptx for embedding into website for demoHarshalMandlekar2
 
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
 
Transcript: New from BookNet Canada for 2024: Loan Stars - Tech Forum 2024
Transcript: New from BookNet Canada for 2024: Loan Stars - Tech Forum 2024Transcript: New from BookNet Canada for 2024: Loan Stars - Tech Forum 2024
Transcript: New from BookNet Canada for 2024: Loan Stars - Tech Forum 2024BookNet Canada
 
What's New in Teams Calling, Meetings and Devices March 2024
What's New in Teams Calling, Meetings and Devices March 2024What's New in Teams Calling, Meetings and Devices March 2024
What's New in Teams Calling, Meetings and Devices March 2024Stephanie Beckett
 
Anypoint Exchange: It’s Not Just a Repo!
Anypoint Exchange: It’s Not Just a Repo!Anypoint Exchange: It’s Not Just a Repo!
Anypoint Exchange: It’s Not Just a Repo!Manik S Magar
 
From Family Reminiscence to Scholarly Archive .
From Family Reminiscence to Scholarly Archive .From Family Reminiscence to Scholarly Archive .
From Family Reminiscence to Scholarly Archive .Alan Dix
 
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
 
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
 
DevEX - reference for building teams, processes, and platforms
DevEX - reference for building teams, processes, and platformsDevEX - reference for building teams, processes, and platforms
DevEX - reference for building teams, processes, and platformsSergiu Bodiu
 
"ML in Production",Oleksandr Bagan
"ML in Production",Oleksandr Bagan"ML in Production",Oleksandr Bagan
"ML in Production",Oleksandr BaganFwdays
 
The Ultimate Guide to Choosing WordPress Pros and Cons
The Ultimate Guide to Choosing WordPress Pros and ConsThe Ultimate Guide to Choosing WordPress Pros and Cons
The Ultimate Guide to Choosing WordPress Pros and ConsPixlogix Infotech
 
Advanced Computer Architecture – An Introduction
Advanced Computer Architecture – An IntroductionAdvanced Computer Architecture – An Introduction
Advanced Computer Architecture – An IntroductionDilum Bandara
 
The Fit for Passkeys for Employee and Consumer Sign-ins: FIDO Paris Seminar.pptx
The Fit for Passkeys for Employee and Consumer Sign-ins: FIDO Paris Seminar.pptxThe Fit for Passkeys for Employee and Consumer Sign-ins: FIDO Paris Seminar.pptx
The Fit for Passkeys for Employee and Consumer Sign-ins: FIDO Paris Seminar.pptxLoriGlavin3
 
A Journey Into the Emotions of Software Developers
A Journey Into the Emotions of Software DevelopersA Journey Into the Emotions of Software Developers
A Journey Into the Emotions of Software DevelopersNicole Novielli
 
TrustArc Webinar - How to Build Consumer Trust Through Data Privacy
TrustArc Webinar - How to Build Consumer Trust Through Data PrivacyTrustArc Webinar - How to Build Consumer Trust Through Data Privacy
TrustArc Webinar - How to Build Consumer Trust Through Data PrivacyTrustArc
 

Recently uploaded (20)

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
 
unit 4 immunoblotting technique complete.pptx
unit 4 immunoblotting technique complete.pptxunit 4 immunoblotting technique complete.pptx
unit 4 immunoblotting technique complete.pptx
 
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
 
TeamStation AI System Report LATAM IT Salaries 2024
TeamStation AI System Report LATAM IT Salaries 2024TeamStation AI System Report LATAM IT Salaries 2024
TeamStation AI System Report LATAM IT Salaries 2024
 
Tampa BSides - Chef's Tour of Microsoft Security Adoption Framework (SAF)
Tampa BSides - Chef's Tour of Microsoft Security Adoption Framework (SAF)Tampa BSides - Chef's Tour of Microsoft Security Adoption Framework (SAF)
Tampa BSides - Chef's Tour of Microsoft Security Adoption Framework (SAF)
 
Sample pptx for embedding into website for demo
Sample pptx for embedding into website for demoSample pptx for embedding into website for demo
Sample pptx for embedding into website for demo
 
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
 
Transcript: New from BookNet Canada for 2024: Loan Stars - Tech Forum 2024
Transcript: New from BookNet Canada for 2024: Loan Stars - Tech Forum 2024Transcript: New from BookNet Canada for 2024: Loan Stars - Tech Forum 2024
Transcript: New from BookNet Canada for 2024: Loan Stars - Tech Forum 2024
 
What's New in Teams Calling, Meetings and Devices March 2024
What's New in Teams Calling, Meetings and Devices March 2024What's New in Teams Calling, Meetings and Devices March 2024
What's New in Teams Calling, Meetings and Devices March 2024
 
Anypoint Exchange: It’s Not Just a Repo!
Anypoint Exchange: It’s Not Just a Repo!Anypoint Exchange: It’s Not Just a Repo!
Anypoint Exchange: It’s Not Just a Repo!
 
From Family Reminiscence to Scholarly Archive .
From Family Reminiscence to Scholarly Archive .From Family Reminiscence to Scholarly Archive .
From Family Reminiscence to Scholarly Archive .
 
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
 
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
 
DevEX - reference for building teams, processes, and platforms
DevEX - reference for building teams, processes, and platformsDevEX - reference for building teams, processes, and platforms
DevEX - reference for building teams, processes, and platforms
 
"ML in Production",Oleksandr Bagan
"ML in Production",Oleksandr Bagan"ML in Production",Oleksandr Bagan
"ML in Production",Oleksandr Bagan
 
The Ultimate Guide to Choosing WordPress Pros and Cons
The Ultimate Guide to Choosing WordPress Pros and ConsThe Ultimate Guide to Choosing WordPress Pros and Cons
The Ultimate Guide to Choosing WordPress Pros and Cons
 
Advanced Computer Architecture – An Introduction
Advanced Computer Architecture – An IntroductionAdvanced Computer Architecture – An Introduction
Advanced Computer Architecture – An Introduction
 
The Fit for Passkeys for Employee and Consumer Sign-ins: FIDO Paris Seminar.pptx
The Fit for Passkeys for Employee and Consumer Sign-ins: FIDO Paris Seminar.pptxThe Fit for Passkeys for Employee and Consumer Sign-ins: FIDO Paris Seminar.pptx
The Fit for Passkeys for Employee and Consumer Sign-ins: FIDO Paris Seminar.pptx
 
A Journey Into the Emotions of Software Developers
A Journey Into the Emotions of Software DevelopersA Journey Into the Emotions of Software Developers
A Journey Into the Emotions of Software Developers
 
TrustArc Webinar - How to Build Consumer Trust Through Data Privacy
TrustArc Webinar - How to Build Consumer Trust Through Data PrivacyTrustArc Webinar - How to Build Consumer Trust Through Data Privacy
TrustArc Webinar - How to Build Consumer Trust Through Data Privacy
 

On Context-Orientation in Aggregate Programming

  • 1. On Context-Orientation in Aggregate Programming Roberto Casadei1 , Danilo Pianini1 , Guido Salvaneschi2 , Mirko Viroli1 1 ALMA MATER STUDIORUM–Università di Bologna, Cesena, Italy 2 Technische Universität Darmstadt, Darmstadt, Germany 4th eCAS Workshop on Engineering Collective Adaptive Systems Umeå, Sweden June, 2019 R. Casadei Introduction COP AP AP + COP Wrap-up 1/17
  • 2. Outline 1 Introduction 2 Context-Oriented Programming (COP) 3 Aggregate Programming 4 Programming Context-aware Systems: AP & COP 5 Wrap-up R. Casadei Introduction COP AP AP + COP Wrap-up 2/17
  • 3. motivation—context-aware systems for contextual service provisioning for (self-)adaptiveness R. Casadei Introduction COP AP AP + COP Wrap-up 3/17
  • 4. motivation—context-aware systems for contextual service provisioning for (self-)adaptiveness R. Casadei Introduction COP AP AP + COP Wrap-up 3/17
  • 5. motivation—context-aware systems for contextual service provisioning for (self-)adaptiveness R. Casadei Introduction COP AP AP + COP Wrap-up 3/17
  • 6. motivation—context-aware systems for contextual service provisioning for (self-)adaptiveness and, btw, what is context? R. Casadei Introduction COP AP AP + COP Wrap-up 3/17
  • 7. motivation—how to program context-aware systems? runtime dependency substitution, AOP, ... Context-Oriented Programming (COP) software variability management (SPLs, ...) self-* research—e.g., Aggregate Programming (AP) R. Casadei Introduction COP AP AP + COP Wrap-up 4/17
  • 8. motivation—how to program context-aware systems? runtime dependency substitution, AOP, ... Context-Oriented Programming (COP) software variability management (SPLs, ...) self-* research—e.g., Aggregate Programming (AP) R. Casadei Introduction COP AP AP + COP Wrap-up 4/17
  • 9. motivation—how to program context-aware systems? runtime dependency substitution, AOP, ... Context-Oriented Programming (COP) software variability management (SPLs, ...) self-* research—e.g., Aggregate Programming (AP) R. Casadei Introduction COP AP AP + COP Wrap-up 4/17
  • 10. motivation—how to program context-aware systems? runtime dependency substitution, AOP, ... Context-Oriented Programming (COP) software variability management (SPLs, ...) self-* research—e.g., Aggregate Programming (AP) R. Casadei Introduction COP AP AP + COP Wrap-up 4/17
  • 11. motivation—how to program context-aware systems? runtime dependency substitution, AOP, ... Context-Oriented Programming (COP) software variability management (SPLs, ...) self-* research—e.g., Aggregate Programming (AP) R. Casadei Introduction COP AP AP + COP Wrap-up 4/17
  • 12. contribution 1) context-orientation in Aggregate Computing 2) potential synergies between Context-Oriented (COP) and Aggregate Programming (AP) – AP for COP – COP for AP R. Casadei Introduction COP AP AP + COP Wrap-up 5/17
  • 13. contribution 1) context-orientation in Aggregate Computing 2) potential synergies between Context-Oriented (COP) and Aggregate Programming (AP) – AP for COP – COP for AP R. Casadei Introduction COP AP AP + COP Wrap-up 5/17
  • 14. contribution 1) context-orientation in Aggregate Computing 2) potential synergies between Context-Oriented (COP) and Aggregate Programming (AP) – AP for COP – COP for AP R. Casadei Introduction COP AP AP + COP Wrap-up 5/17
  • 15. contribution 1) context-orientation in Aggregate Computing 2) potential synergies between Context-Oriented (COP) and Aggregate Programming (AP) – AP for COP – COP for AP R. Casadei Introduction COP AP AP + COP Wrap-up 5/17
  • 16. Outline 1 Introduction 2 Context-Oriented Programming (COP) 3 Aggregate Programming 4 Programming Context-aware Systems: AP & COP 5 Wrap-up R. Casadei Introduction COP AP AP + COP Wrap-up 6/17
  • 17. ctx-oriented programming (COP) [5, 4] R. Casadei Introduction COP AP AP + COP Wrap-up 7/17
  • 18. ctx-oriented programming (COP) [5, 4] ctx-aware system development as linguistic problem abstractions for adaptation modularization – layer abstractions for dynamic de/activation of layers – dynamically scoped activation, implicit activation... R. Casadei Introduction COP AP AP + COP Wrap-up 7/17
  • 19. ctx-oriented programming (COP) [5, 4] ctx-aware system development as linguistic problem abstractions for adaptation modularization – layer abstractions for dynamic de/activation of layers – dynamically scoped activation, implicit activation... R. Casadei Introduction COP AP AP + COP Wrap-up 7/17
  • 20. ctx-oriented programming (COP) [5, 4] ctx-aware system development as linguistic problem abstractions for adaptation modularization – layer abstractions for dynamic de/activation of layers – dynamically scoped activation, implicit activation... R. Casadei Introduction COP AP AP + COP Wrap-up 7/17
  • 21. ctx-oriented programming (COP) [5, 4] class Storage<K,V> { V getItem(K key){ println("Lookup."); /*...*/ return result; } layer logLayer { print("Logging.") V getItem(K key){ log("..."); return proceed(); } } layer cacheLayer { print("Cache.") V getItem(K key){ /*..*/ return res!=null ? res : proceed(); } } } Storage s = new Storage<String,String>(); s.getItem("foo"); // Lookup. with(cacheLayer){ s.getItem("foo"); } // Cache. Lookup. with(cacheLayer,logLayer){ s.getItem("foo"); } // Logging. Cache. Lookup. R. Casadei Introduction COP AP AP + COP Wrap-up 7/17
  • 22. Outline 1 Introduction 2 Context-Oriented Programming (COP) 3 Aggregate Programming 4 Programming Context-aware Systems: AP & COP 5 Wrap-up R. Casadei Introduction COP AP AP + COP Wrap-up 8/17
  • 23. Background » Aggregate Programming (AP) [2, 6] Aggregate Computing = paradigm for programming CASs formally founded (computational field calculus) continuous execution of a global program R. Casadei Introduction COP AP AP + COP Wrap-up 9/17
  • 24. Background » Aggregate Programming (AP) [2, 6] Aggregate Computing = paradigm for programming CASs formally founded (computational field calculus) continuous execution of a global program R. Casadei Introduction COP AP AP + COP Wrap-up 9/17
  • 25. Background » Aggregate Programming (AP) [2, 6] sensors local functions actuators Application Code Developer APIs Field Calculus Constructs Resilient Coordination Operators Device Capabilities functions repnbr TGCfunctions communication state PerceptionPerception summarize average regionMax … ActionAction StateState Collective BehaviorCollective Behavior distanceTo broadcast partition … timer lowpass recentTrue … collectivePerception collectiveSummary managementRegions … Crowd ManagementCrowd Management dangerousDensity crowdTracking crowdWarning safeDispersal restriction self­stabilisation R. Casadei Introduction COP AP AP + COP Wrap-up 9/17
  • 26. Background » Aggregate Programming (AP) [2, 6] AP execution model (protocol) async rounds of computation 1) full run of “aggregate program” against “local context” device state sensor readings neighbourhood coordination data 2) broadcast coordination data to neighbours R. Casadei Introduction COP AP AP + COP Wrap-up 9/17
  • 27. Background » Aggregate Programming (AP) [2, 6] “hello world” example (gradient) R. Casadei Introduction COP AP AP + COP Wrap-up 9/17
  • 28. Background » Aggregate Programming (AP) [2, 6] “hello world” example (gradient) class MyProgram extends AggregateProgram { override def main = gradient(sense[Boolean]("source")) def gradient(source: Boolean): Double = rep(Double.PositiveInfinity)(distance => mux(source){ 0.0 }{ minHoodPlus( nbr{distance} + metric ))) } ) } R. Casadei Introduction COP AP AP + COP Wrap-up 9/17
  • 29. key insight AP enables convenient definition of distributed, continuous processes of reification, transformation, fusion, spreading of contexts AP intrinsically deals with more that one individual A) usually to drive collective behaviour (local-to-global), & B) to locally make sense of what happens around (global-into-local) branch(gradient(src) < threshold){ // CONTEXT: near to point-of-interest }{ // CONTEXT: distant to point-of-interest } R. Casadei Introduction COP AP AP + COP Wrap-up 10/17
  • 30. devices as environmental probes R. Casadei Introduction COP AP AP + COP Wrap-up 10/17
  • 31. AC for app context management R. Casadei Introduction COP AP AP + COP Wrap-up 10/17
  • 32. context in aggregate computing neighbour coordination data sensor data state LOCAL CONTEXT GLOBAL CONTEXT actuation R. Casadei Introduction COP AP AP + COP Wrap-up 10/17
  • 33. Outline 1 Introduction 2 Context-Oriented Programming (COP) 3 Aggregate Programming 4 Programming Context-aware Systems: AP & COP 5 Wrap-up R. Casadei Introduction COP AP AP + COP Wrap-up 11/17
  • 34. AC for COP: programming the context R. Casadei Introduction COP AP AP + COP Wrap-up 12/17
  • 35. AC for COP: programming the context COP assumes context is already here AC enables progressive construction and propagation of context – to drive activation of layers R. Casadei Introduction COP AP AP + COP Wrap-up 12/17
  • 36. AC for COP: programming the context COP assumes context is already here AC enables progressive construction and propagation of context – to drive activation of layers R. Casadei Introduction COP AP AP + COP Wrap-up 12/17
  • 37. AC for COP: programming the context R. Casadei Introduction COP AP AP + COP Wrap-up 12/17
  • 38. COP for AP R. Casadei Introduction COP AP AP + COP Wrap-up 13/17
  • 39. COP for AP layers to modularise alternative collective behaviours – mainly an aid for code organisation Ǧ e.g., concrete gradient impl based on system dynamics R. Casadei Introduction COP AP AP + COP Wrap-up 13/17
  • 40. COP for AP layers to modularise alternative collective behaviours – mainly an aid for code organisation Ǧ e.g., concrete gradient impl based on system dynamics R. Casadei Introduction COP AP AP + COP Wrap-up 13/17
  • 41. COP for AP class AggregateProgram with Layers { /* Layer definitions */ layer("HighMobility"){ _.replace("Gradient"){ ULTg /* see[1] */ } .after("FunctionXXX") { /* side computation */ } }.on { /* collective estimation of mobility */ } /* Layered functions */ def gradient(source: Boolean): Double = layered("Gradient"){ classicGradient(source) // most basic impl } def main() = { // program entry point val leaders = S(grain) val g = gradient(leaders) // ctx-sensitive val data = C(g, events) // collect into leaders // ... } } R. Casadei Introduction COP AP AP + COP Wrap-up 13/17
  • 42. COP for AP issues 1) basic HFC cannot align dynamic computations HFC extended as per [3] 2) devices executing different gradient algorithms cannot interact! border nodes must run both algorithms and bridge values R. Casadei Introduction COP AP AP + COP Wrap-up 13/17
  • 43. more on context & AC: aggregate processes dynamic, concurrent aggregate computations see COORD’19 paper [3] context-oriented lifecycle management R. Casadei Introduction COP AP AP + COP Wrap-up 14/17
  • 44. more on context & AC: aggregate processes dynamic, concurrent aggregate computations see COORD’19 paper [3] context-oriented lifecycle management R. Casadei Introduction COP AP AP + COP Wrap-up 14/17
  • 45. more on context & AC: aggregate processes dynamic, concurrent aggregate computations see COORD’19 paper [3] context-oriented lifecycle management R. Casadei Introduction COP AP AP + COP Wrap-up 14/17
  • 46. Outline 1 Introduction 2 Context-Oriented Programming (COP) 3 Aggregate Programming 4 Programming Context-aware Systems: AP & COP 5 Wrap-up R. Casadei Introduction COP AP AP + COP Wrap-up 15/17
  • 47. key points AP is for distributed, continuous processes of transformation, fusion, spreading of contexts contextual fields in AP can feed COP modules AP DSLs can be extended with COP-like features future work systematic review on context-orientation in CAS extend this work with more on AP+COP mixing R. Casadei Introduction COP AP AP + COP Wrap-up 16/17
  • 48. References (1/1) [1] Giorgio Audrito et al. “Compositional blocks for optimal self-healing gradients”. In: Conf. on Self-Adaptive and Self-Organizing Systems (SASO). IEEE. 2017, pp. 91–100. [2] Jacob Beal, Danilo Pianini, and Mirko Viroli. “Aggregate Programming for the Internet of Things”. In: IEEE Computer (2015). ISSN: 1364-503X. [3] Roberto Casadei et al. “Aggregate Processes in Field Calculus”. In: International Conference on Coordination Languages and Models. Springer. 2019, pp. 200–217. [4] Pascal Costanza and Robert Hirschfeld. “Language constructs for context-oriented programming: an overview of ContextL”. In: Proceedings of the 2005 symposium on Dynamic languages. ACM. 2005, pp. 1–10. [5] Guido Salvaneschi, Carlo Ghezzi, and Matteo Pradella. “Context-oriented programming: A software engineering perspective”. In: Journal of Systems and Software 85.8 (2012), pp. 1801–1817. ISSN: 01641212. DOI: 10.1016/j.jss.2012.03.024. URL: http://dx.doi.org/10.1016/j.jss.2012.03.024. [6] Mirko Viroli et al. “From Field-Based Coordination to Aggregate Computing”. In: Int. Conf. on Coordination Languages and Models. Springer. 2018, pp. 252–279. R. Casadei Appendix References 17/17