SlideShare ist ein Scribd-Unternehmen logo
1 von 39
Downloaden Sie, um offline zu lesen
Programming Actor-based Collective Adaptive Systems
Roberto Casadei Mirko Viroli
Department of Computer Science and Engineering
University of Bologna
AGERE! Workshop, co-located with SPLASH, Amsterdam 2016
Slides available at http://www.slideshare.net/RobertoCasadei/presentations
R. Casadei (Università di Bologna) Programming Actor-based CASs PMLDC 2016 1 / 23
Outline
1 Aggregate Computing: the Basics
2 Aggregate Computing and the Actor Model
3 Conclusion
R. Casadei (Università di Bologna) Programming Actor-based CASs PMLDC 2016 2 / 23
Aggregate Computing: the Basics
Outline
1 Aggregate Computing: the Basics
2 Aggregate Computing and the Actor Model
3 Conclusion
R. Casadei (Università di Bologna) Programming Actor-based CASs PMLDC 2016 3 / 23
Aggregate Computing: the Basics
Problem: design/programming CASs
Collective/Complex Adaptive Systems (CASs)
Structure: Environment + (Mobile, Large-scale) Networks of { people + devices }
Global interpretation: embedded devices collectively form a “diffused” computational system
R. Casadei (Università di Bologna) Programming Actor-based CASs PMLDC 2016 4 / 23
Aggregate Computing: the Basics
An approach to CAS development
Issues ⇒ approach
• Large-scale ⇒ decentralised coordination
• Situatedness + distributed autonomy ⇒ substantial unpredictability ⇒ self-*
• Complex collective behavior ⇒ good abstractions, layered approach, compositionality
Shifting the mindset: from local to global
• Declarativeness and the global viewpoint
• Crowd-aware services
• Failure recovery of enterprise services
• Distributed monitoring and reacting (e.g., temperature, fire)
• Expected global behavior vs. traditional device-centric interface
⇒ Aggregate Programming [BPV15]: a paradigm for programming whole aggregates of devices.
R. Casadei (Università di Bologna) Programming Actor-based CASs PMLDC 2016 5 / 23
Aggregate Computing: the Basics
Aggregate programming [BPV15]
From the local/device-centric viewpoint to the global/aggregate viewpoint
Aggregate programming: what
Goal: programming the collective behaviour of aggregates (of devices) ⇒ global-to-local
Aggregate programming: how
Prominent approach (generalizing over several prior approaches and strategies [BDU+
12])
founded on field calculus and self-org patterns
• Computational fields as unifying abstraction of local/global viewpoints
R. Casadei (Università di Bologna) Programming Actor-based CASs PMLDC 2016 6 / 23
Aggregate Computing: the Basics
Computational fields [DVB16]
• (Abstract interpretation) Mapping space-time to computational objects
• (Concrete interpretation) Mapping devices to values: φ : δ →
• “Distributed” data structure working as the global abstraction
• The bridge abstraction between local behavior and global behavior
Discrete systems as an approximation of
spacetime
R. Casadei (Università di Bologna) Programming Actor-based CASs PMLDC 2016 7 / 23
Aggregate Computing: the Basics
SCAFI: Scala with Computational Fields
Goal: bring Aggregate Computing to the field of mainstream software development
What
SCAFI [CV16] is an integrated framework for building systems with aggregate programming.
• Scala-internal DSL for expressing aggregate computations.
• Linguistic support + execution support (interpreter/VM)
• Correct, complete, efficient impl. of the Higher-Order Field Calculus
semantics [DVPB15]
• Distributed platform for execution of aggregate systems.
• Support for multiple architectural styles and system configurations.
• Actor-based implementation (based on Akka).
Where
• https://bitbucket.org/scafiteam/scafi
libraryDependencies += "it.unibo.apice.scafiteam" % "scafi-core_2.11" % "0.1.0" // on Maven Central
R. Casadei (Università di Bologna) Programming Actor-based CASs PMLDC 2016 8 / 23
Aggregate Computing: the Basics
Aggregate (computing) systems & Execution model
Structure ⇒ (network/graph)
• A set of devices.
• Each device is able to communicate with a subset of devices known as its neighbourhood.
Dynamics
Each device is given the same aggregate program and works at async / partially-sync rounds:
(1) Retrieve context
⇐ Messages from neighbours
⇐ Sensor values
(2) Aggregate program execution
⇒ export + output
(3) Broadcast export to neighbourhood
(4) Execute actuators
R. Casadei (Università di Bologna) Programming Actor-based CASs PMLDC 2016 9 / 23
Aggregate Computing: the Basics
Computing with fields I
Expressing aggregate/field computations in SCAFI
trait Constructs {
def rep[A](init: A)(fun: (A) => A): A
def nbr[A](expr: => A): A
def foldhood[A](init: => A)(acc: (A,A)=>A)(expr: => A): A
def aggregate[A](f: => A): A
// Not primitive, but foundational
def sense[A](name: LSNS): A
def nbrvar[A](name: NSNS): A
def branch[A](cond: => Boolean)(th: => A)(el: => A): A
}
• Mechanisms for context-sensitiveness: nbr, nbrvar, sense
• Mechanisms for field evolution: rep
• Mechanisms for interaction: nbr
• Mechanisms for field domain restriction and partitioning: aggregate, branch
• Reference formal system: field calculus [DVB16, DVPB15]
R. Casadei (Università di Bologna) Programming Actor-based CASs PMLDC 2016 10 / 23
Aggregate Computing: the Basics
Computing with fields II
Global-level semantics, intuitively
0
(x)=>x+1
true t<0,1>
()0
1
+
-
1
-1
ef(0,1)
ef
rep
0
(x)=>x+1
t
v0
t
v1
..
rep(0){(x)=>x+1}
nbr de
nbr{e}
φd=[d1→v1,..,dn→vn]
R. Casadei (Università di Bologna) Programming Actor-based CASs PMLDC 2016 11 / 23
Aggregate Computing: the Basics
Example: the channel I
R. Casadei (Università di Bologna) Programming Actor-based CASs PMLDC 2016 12 / 23
Aggregate Computing: the Basics
Example: the channel II
Each device is given the same aggregate program:
class ChannelProgram extends AggregateProgram with ChannelAPI {
def main = channel(isSource, isDestination, width)
}
Gradient: field of min distances from source(s)
def channel(src: Boolean, dest: Boolean, width: Double) =
distanceTo(src) + distanceTo(dest) <= distBetween(src, dest) + width
R. Casadei (Università di Bologna) Programming Actor-based CASs PMLDC 2016 13 / 23
Aggregate Computing: the Basics
Example: the channel III
1 trait ChannelAPI extends Language with Builtins {
2 def channel(src: Boolean, dest: Boolean, width: Double) =
3 distanceTo(src) + distanceTo(dest) <= distBetween(src, dest) + width
4
5 def G[V:OB](src: Boolean, field: V, acc: V=>V, metric: =>Double): V =
6 rep( (Double.MaxValue, field) ){ dv =>
7 mux(src) { (0.0, field) } {
8 minHoodMinus {
9 val (d, v) = nbr { (dv._1, dv._2) }
10 (d + metric, acc(v))
11 }
12 }
13 }._2
14
15 def broadcast[V:OB](source: Boolean, field: V): V =
16 G[V](source, field, x=>x, nbrRange())
17
18 def distanceTo(source: Boolean): Double =
19 G[Double](source, 0, _ + nbrRange(), nbrRange())
20
21 def distBetween(source: Boolean, target: Boolean): Double =
22 broadcast(source, distanceTo(target))
23
24 def nbrRange(): Double = nbrvar[Double](NBR_RANGE_NAME)
25 def isSource = sense[Boolean]("source"); def isDestination = sense[Boolean]("destination")
26 }
R. Casadei (Università di Bologna) Programming Actor-based CASs PMLDC 2016 14 / 23
Aggregate Computing: the Basics
Aggregate Programming Stack
R. Casadei (Università di Bologna) Programming Actor-based CASs PMLDC 2016 15 / 23
Aggregate Computing and the Actor Model
Outline
1 Aggregate Computing: the Basics
2 Aggregate Computing and the Actor Model
3 Conclusion
R. Casadei (Università di Bologna) Programming Actor-based CASs PMLDC 2016 16 / 23
Aggregate Computing and the Actor Model
Embedded actors
• The Actor model & distributed systems – a good fit
• Actors for distributed situated systems and IoT – a natural extension
• Embedded actor [HCS14]: plain Actor model + situatedness.
• Actors for avatars [Zam16]
How can actors be used to implement complex decentralised behaviours?
R. Casadei (Università di Bologna) Programming Actor-based CASs PMLDC 2016 17 / 23
Aggregate Computing and the Actor Model
(Fully operational) Device actors
Responsibilities
(i) Sensing/actuating
(ii) Aggregate program execution
(iii) Broadcasting/receiving the exports of computation
to/from neighbours
(iv) Storing state (last computation, exports from
neighbours)
• Each one may be reified as an actor/subcomponent
R. Casadei (Università di Bologna) Programming Actor-based CASs PMLDC 2016 18 / 23
Aggregate Computing and the Actor Model
Execution strategies and architectures [VCP16]
R. Casadei (Università di Bologna) Programming Actor-based CASs PMLDC 2016 19 / 23
Aggregate Computing and the Actor Model
Setup of an (actor-based) aggregate system
// STEP 1: CHOOSE INCARNATION
import scafi.incarnations.{ BasicActorP2P => Platform }
import Platform.{AggregateProgram,Settings,PlatformConfig}
// STEP 2: DEFINE AGGREGATE PROGRAM SCHEMA
class Program extends AggregateProgram with CrowdAPI {
// Specify a "dangerous density" aggregate computation
override def main(): Any = dangerousDensity()
}
// STEP 3: PLATFORM SETUP
val settings = Settings()
val platform = PlatformConfig.setupPlatform(settings)
// STEP 4: NODE SETUP
val sys = platform.newAggregateApplication()
val dm = sys.newDevice(id = Utils.newId(),
program = Program,
neighbours = Utils.discoverNbrs())
val devActor = dm.actorRef // get underlying actor
R. Casadei (Università di Bologna) Programming Actor-based CASs PMLDC 2016 20 / 23
Aggregate Computing and the Actor Model
Integrating Aggregate Computing into actor-based applications
Key idea
• AC system as coordinator or CAS service within a
larger system.
• In particular, AC actors can integrate with
application-specific actors.
– Through the AC system/actor’s in/out message
interfaces
• This integration can be achieved in multiple ways:
– Application actors as sensors for device actors
– Application actors as managers of the aggregate
platform (e.g., fine-tune neighbourhood)
– Application actors as observers of device actors
– Device actors as actuators for application logic
R. Casadei (Università di Bologna) Programming Actor-based CASs PMLDC 2016 21 / 23
Conclusion
Outline
1 Aggregate Computing: the Basics
2 Aggregate Computing and the Actor Model
3 Conclusion
R. Casadei (Università di Bologna) Programming Actor-based CASs PMLDC 2016 22 / 23
Conclusion
Summary: key ideas
Aggregate programming
• An programmingengineering approach to CASs, formally grounded in the Field Calculus.
• Allows to compose “emergent” phenomena & defines layers of (self-stabilizing) building blocks.
• Comes with a Scala framework (SCAFI) for building aggregate systems.
Aggregate computing and the Actor model
• Actors for implementing aggregate systems.
• Application actors interacting with aggregate systems through message-oriented boundaries.
• Plain actors + embedded actors + "aggregate" actors seems to be nice mix for IoT apps.
Future work
• Evolve SCAFI to support scalable computations in cluster- and cloud-based systems.
• What does it take to set up a framework for adaptive execution strategies?
R. Casadei (Università di Bologna) Programming Actor-based CASs PMLDC 2016 23 / 23
Conclusion
Question time
Questions?
R. Casadei (Università di Bologna) Programming Actor-based CASs PMLDC 2016 24 / 23
Conclusion
What is an aggregate program?
• May take the form of field calculus programs (in the representation given by some PL)
• Actually, the field calculus is like FJ for Java, or the lambda calculus for Haskell
• An aggregate program consists of
1) A set of function definitions
2) A body of expressions.
• Example: an aggregate program in SCAFI
class MyProgram extends AggregateProgram with MyAPI {
def isSource = sense[Boolean]("source")
// Entry point for execution
override def main() = gradient(isSource)
}
– Each device of the aggregate system is given an instance of MyProgram.
– Each device repeatedly runs the main method at async rounds of execution.
R. Casadei (Università di Bologna) Programming Actor-based CASs PMLDC 2016 25 / 23
Conclusion
How do AC achieve reliable CAS engineering?
The Aggregate Computing way
• Abstraction gap — i.e., the distance from the problem to the solution
=⇒ Abstractions close to problem domain
=⇒ Declarative approach – from how to what
=⇒ Layered approach – raising abstraction incrementally
• Capturing complex behaviours in a simple way
=⇒ Instrumental assumptions + effective building blocks
=⇒ Balance of top-down and bottom-up problem solving (sort of match-in-the-middle)
• Supporting modularity and reusability
=⇒ Compositional approach
• Guiding engineering for resilience
=⇒ Adaptation by construction
R. Casadei (Università di Bologna) Programming Actor-based CASs PMLDC 2016 26 / 23
Conclusion
On aggregate computing and abstraction
(Partial) insensitiveness to system structure and situation details [BVPD16a]
Aggregate behaviours are highly insensitive to network size/density/topology [BVPD16b].
It makes algorithms intrinsically robust to failures & changes to working conditions [VBDP15].
(Partial) insensitiveness to execution strategy
Note: the nodes of an aggregate system are the logical counterparts of components operating in
some context via sensors/actuators.
Aggregate computations can be carried out in different ways [VCP16]:
• Computing nodes and “native” local (P2P) communication;
• Computations performed by a central server;
• Computations performed in the cloud; ...
Idea: opportunistically exploit the underlying infrastructure
R. Casadei (Università di Bologna) Programming Actor-based CASs PMLDC 2016 27 / 23
Conclusion
(On execution strategies/architectures) Wait! Why are you
introducing centralisations? I
p2p
• Processing occurs locally
• The export of computation has to be broadcasted to the neighbourhood
• Sensor and actuator values readily available
• Device-to-device communication may be onerous
R. Casadei (Università di Bologna) Programming Actor-based CASs PMLDC 2016 28 / 23
Conclusion
(On execution strategies/architectures) Wait! Why are you
introducing centralisations? II
server/cloud
• Sensor values upstream, actuations downstream
⇒ convenient when sensor readings do not change quickly
• Neighbour exports readily available
• Necessary when p2p interactions not supported at infrastructure-level
• Because of (i) communication technology, or (ii) logical neighbouring relation
• Necessary when devices have no processing capabilities (i.e., may only sense/act/communicate)
• Even if p2p is possible, may still be useful for optimisations or for easier management
R. Casadei (Università di Bologna) Programming Actor-based CASs PMLDC 2016 29 / 23
Conclusion
(On execution strategies/architectures) Wait! Why are you
introducing centralisations? III
Elements to be considered
• Number of communication acts
• Frequency of execution
• Energetic issues
• Other costs (e.g., pay-per-use in cloud)
Key idea
• Use available infrastructure and adapt so as to maximize QoS!
Dynamic and opportunistic exploitation of networking/computing resources.
• Computation may flow "up" and "down" depending on context and contingencies.
• In this sense, AC is similar to MapReduce—but for distributed and situated computations.
R. Casadei (Università di Bologna) Programming Actor-based CASs PMLDC 2016 30 / 23
Conclusion
The origins: space-time programming, bio-inspired patterns, ... I
Decentralised spatial computing [Duc13] – Computing “somewhere”
• Location-related information + spatial constraints to communication
Space-time programming [BV15]
• Computation expressed in terms of the physical space/time in which it occurs
• Discrete system vs. continuous space-time
R. Casadei (Università di Bologna) Programming Actor-based CASs PMLDC 2016 31 / 23
Conclusion
The origins: space-time programming, bio-inspired patterns, ... II
Bio-inspired self-organisation patterns [FMSM+
13]
Generalizing from several prior approaches and strategies [BDU+
12]
• Making device interaction implicit – e.g., TOTA
• Means to compose geometric/topological constructions – e.g., Origami Shape Language
• General space-time computing approaches – e.g., Protelis, Proto, MGS
• Automatically splitting computational behavior for cloud-style execution – e.g., MapReduce
R. Casadei (Università di Bologna) Programming Actor-based CASs PMLDC 2016 32 / 23
Conclusion
Related works
[BDU+
12] provides an analysis of several prior (spatial computing) approaches for CAS
development.
A number of approaches sharing one or more aspects include:
• ActorSpace [CA94] extends Actors with destination patterns.
• ActorNet [KSMA06] is a mobile actor platform for WSNs.
• AmbientTalk [VCMB+
07] is a DSL for orchestrating service discovery and composition in
MANETs.
• Bulk Synchronous Parallel (BSP) model [Val90] (and BSP-based models such as
Diderot [RS15]) – based on a sequence of parallel supersteps separated by global
synchronization barriers.
• Kairos [GGG05]: a macro-programming approach to WSNs
R. Casadei (Università di Bologna) Programming Actor-based CASs PMLDC 2016 33 / 23
Appendix References
References I
[BDU+
12] Jacob Beal, Stefan Dulman, Kyle Usbeck, Mirko Viroli, and Nikolaus Correll.
Organizing the aggregate: Languages for spatial computing.
CoRR, abs/1202.5509, 2012.
[BPV15] Jacob Beal, Danilo Pianini, and Mirko Viroli.
Aggregate Programming for the Internet of Things.
IEEE Computer, 2015.
[BV15] Jacob Beal and Mirko Viroli.
Space–time programming.
Phil. Trans. R. Soc. A, 373(2046):20140220, 2015.
[BVPD16a] Jacob Beal, Mirko Viroli, Danilo Pianini, and Ferruccio Damiani.
Self-adaptation to device distribution changes in situated computing systems.
In IEEE Conference on Self-Adaptive and Self-Organising Systems (SASO 2016).
IEEE, 2016.
To appear.
R. Casadei (Università di Bologna) Programming Actor-based CASs PMLDC 2016 34 / 23
Appendix References
References II
[BVPD16b] Jacob Beal, Mirko Viroli, Danilo Pianini, and Ferruccio Damiani.
Self-adaptation to device distribution changes in situated computing systems.
2016.
To appear.
[CA94] Christian J Callsen and Gul Agha.
Open heterogeneous computing in actorspace.
Journal of Parallel and Distributed Computing, 21(3):289–300, 1994.
[CV16] Roberto Casadei and Mirko Viroli.
Towards aggregate programming in Scala.
In First Workshop on Programming Models and Languages for Distributed
Computing, PMLDC ’16, pages 5:1–5:7, New York, NY, USA, 2016. ACM.
[Duc13] Matt Duckham.
Decentralized Spatial Computing - Foundations of Geosensor Networks.
Springer, 2013.
R. Casadei (Università di Bologna) Programming Actor-based CASs PMLDC 2016 35 / 23
Appendix References
References III
[DVB16] Ferruccio Damiani, Mirko Viroli, and Jacob Beal.
A type-sound calculus of computational fields.
Science of Computer Programming, 117:17 – 44, 2016.
[DVPB15] Ferruccio Damiani, Mirko Viroli, Danilo Pianini, and Jacob Beal.
Code mobility meets self-organisation: A higher-order calculus of computational
fields.
volume 9039 of Lecture Notes in Computer Science, pages 113–128. Springer
International Publishing, 2015.
[FMSM+
13] Jose Luis Fernandez-Marquez, Giovanna Di Marzo Serugendo, Sara Montagna,
Mirko Viroli, and Josep Lluís Arcos.
Description and composition of bio-inspired design patterns: a complete overview.
Natural Computing, 12(1):43–67, 2013.
R. Casadei (Università di Bologna) Programming Actor-based CASs PMLDC 2016 36 / 23
Appendix References
References IV
[GGG05] Ramakrishna Gummadi, Omprakash Gnawali, and Ramesh Govindan.
Macro-programming wireless sensor networks using kairos.
In International Conference on Distributed Computing in Sensor Systems, pages
126–140. Springer, 2005.
[HCS14] Raphael Hiesgen, Dominik Charousset, and Thomas C Schmidt.
Embedded actors – towards distributed programming in the IoT.
In 2014 IEEE Fourth International Conference on Consumer Electronics Berlin
(ICCE-Berlin), pages 371–375. IEEE, 2014.
[KSMA06] YoungMin Kwon, Sameer Sundresh, Kirill Mechitov, and Gul Agha.
Actornet: An actor platform for wireless sensor networks.
In Proceedings of the fifth international joint conference on Autonomous agents and
multiagent systems, pages 1297–1300. ACM, 2006.
R. Casadei (Università di Bologna) Programming Actor-based CASs PMLDC 2016 37 / 23
Appendix References
References V
[RS15] John Reppy and Lamont Samuels.
Bulk-synchronous communication mechanisms in diderot.
2015.
[Val90] Leslie G Valiant.
A bridging model for parallel computation.
Communications of the ACM, 33(8):103–111, 1990.
[VBDP15] Mirko Viroli, Jacob Beal, Ferruccio Damiani, and Danilo Pianini.
Efficient engineering of complex self-organising systems by self-stabilising fields.
2015.
[VCMB+
07] Tom Van Cutsem, Stijn Mostinckx, Elisa Gonzalez Boix, Jessie Dedecker, and
Wolfgang De Meuter.
Ambienttalk: object-oriented event-driven programming in mobile ad hoc networks.
In Chilean Society of Computer Science, 2007. SCCC’07. XXVI International
Conference of the, pages 3–12. IEEE, 2007.
R. Casadei (Università di Bologna) Programming Actor-based CASs PMLDC 2016 38 / 23
Appendix References
References VI
[VCP16] Mirko Viroli, Roberto Casadei, and Danilo Pianini.
On execution platforms for large-scale aggregate computing.
In Proceedings of the 2016 ACM International Joint Conference on Pervasive and
Ubiquitous Computing: Adjunct, pages 1321–1326. ACM, 2016.
[Zam16] Franco Zambonelli.
Towards a general software engineering methodology for the internet of things.
arXiv preprint arXiv:1601.05569, 2016.
R. Casadei (Università di Bologna) Programming Actor-based CASs PMLDC 2016 39 / 23

Weitere ähnliche Inhalte

Was ist angesagt?

Simulating Large-scale Aggregate MASs with Alchemist and Scala
Simulating Large-scale Aggregate MASs with Alchemist and ScalaSimulating Large-scale Aggregate MASs with Alchemist and Scala
Simulating Large-scale Aggregate MASs with Alchemist and ScalaDanilo Pianini
 
MPEG-4 BIFS and MPEG-2 TS: Latest developments for digital radio services
MPEG-4 BIFS and MPEG-2 TS: Latest developments for digital radio servicesMPEG-4 BIFS and MPEG-2 TS: Latest developments for digital radio services
MPEG-4 BIFS and MPEG-2 TS: Latest developments for digital radio servicesCyril Concolato
 
Parametric surface visualization in Directx 11 and C++
Parametric surface visualization in Directx 11 and C++Parametric surface visualization in Directx 11 and C++
Parametric surface visualization in Directx 11 and C++Alejandro Cosin Ayerbe
 
Dynamic Program Problems
Dynamic Program ProblemsDynamic Program Problems
Dynamic Program ProblemsRanjit Sasmal
 
Computer Graphics Project on Sinking Ship using OpenGL
Computer Graphics Project on Sinking Ship using OpenGLComputer Graphics Project on Sinking Ship using OpenGL
Computer Graphics Project on Sinking Ship using OpenGLSharath Raj
 
Whats new in ES2019
Whats new in ES2019Whats new in ES2019
Whats new in ES2019chayanikaa
 
RedisConf18 - Lower Latency Graph Queries in Cypher with Redis Graph
RedisConf18 - Lower Latency Graph Queries in Cypher with Redis GraphRedisConf18 - Lower Latency Graph Queries in Cypher with Redis Graph
RedisConf18 - Lower Latency Graph Queries in Cypher with Redis GraphRedis Labs
 
Shape Safety in Tensor Programming is Easy for a Theorem Prover -SBTB 2021
Shape Safety in Tensor Programming is Easy for a Theorem Prover -SBTB 2021Shape Safety in Tensor Programming is Easy for a Theorem Prover -SBTB 2021
Shape Safety in Tensor Programming is Easy for a Theorem Prover -SBTB 2021Peng Cheng
 
4Developers 2018: Beyond c++17 (Mateusz Pusz)
4Developers 2018: Beyond c++17 (Mateusz Pusz)4Developers 2018: Beyond c++17 (Mateusz Pusz)
4Developers 2018: Beyond c++17 (Mateusz Pusz)PROIDEA
 
Halide - 2
Halide - 2 Halide - 2
Halide - 2 Kobe Yu
 
Assignment sw solution
Assignment sw solutionAssignment sw solution
Assignment sw solutionH K
 
Building blocks for aggregate programming of self-organising applications
Building blocks for aggregate programming of self-organising applicationsBuilding blocks for aggregate programming of self-organising applications
Building blocks for aggregate programming of self-organising applicationsFoCAS Initiative
 
Learn basics of Clojure/script and Reagent
Learn basics of Clojure/script and ReagentLearn basics of Clojure/script and Reagent
Learn basics of Clojure/script and ReagentMaty Fedak
 
G-TAD: Sub-Graph Localization for Temporal Action Detection
G-TAD: Sub-Graph Localization for Temporal Action DetectionG-TAD: Sub-Graph Localization for Temporal Action Detection
G-TAD: Sub-Graph Localization for Temporal Action DetectionMengmeng Xu
 
Kepler vs Xeon Phi
Kepler vs Xeon Phi Kepler vs Xeon Phi
Kepler vs Xeon Phi Mert Akın
 
A Multidimensional Distributed Array Abstraction for PGAS (HPCC'16)
A Multidimensional Distributed Array Abstraction for PGAS (HPCC'16)A Multidimensional Distributed Array Abstraction for PGAS (HPCC'16)
A Multidimensional Distributed Array Abstraction for PGAS (HPCC'16)Menlo Systems GmbH
 

Was ist angesagt? (19)

Simulating Large-scale Aggregate MASs with Alchemist and Scala
Simulating Large-scale Aggregate MASs with Alchemist and ScalaSimulating Large-scale Aggregate MASs with Alchemist and Scala
Simulating Large-scale Aggregate MASs with Alchemist and Scala
 
MPEG-4 BIFS and MPEG-2 TS: Latest developments for digital radio services
MPEG-4 BIFS and MPEG-2 TS: Latest developments for digital radio servicesMPEG-4 BIFS and MPEG-2 TS: Latest developments for digital radio services
MPEG-4 BIFS and MPEG-2 TS: Latest developments for digital radio services
 
Parametric surface visualization in Directx 11 and C++
Parametric surface visualization in Directx 11 and C++Parametric surface visualization in Directx 11 and C++
Parametric surface visualization in Directx 11 and C++
 
Dynamic Program Problems
Dynamic Program ProblemsDynamic Program Problems
Dynamic Program Problems
 
Computer Graphics Project on Sinking Ship using OpenGL
Computer Graphics Project on Sinking Ship using OpenGLComputer Graphics Project on Sinking Ship using OpenGL
Computer Graphics Project on Sinking Ship using OpenGL
 
Whats new in ES2019
Whats new in ES2019Whats new in ES2019
Whats new in ES2019
 
MPEG-4 BIFS Overview
MPEG-4 BIFS OverviewMPEG-4 BIFS Overview
MPEG-4 BIFS Overview
 
RedisConf18 - Lower Latency Graph Queries in Cypher with Redis Graph
RedisConf18 - Lower Latency Graph Queries in Cypher with Redis GraphRedisConf18 - Lower Latency Graph Queries in Cypher with Redis Graph
RedisConf18 - Lower Latency Graph Queries in Cypher with Redis Graph
 
Shape Safety in Tensor Programming is Easy for a Theorem Prover -SBTB 2021
Shape Safety in Tensor Programming is Easy for a Theorem Prover -SBTB 2021Shape Safety in Tensor Programming is Easy for a Theorem Prover -SBTB 2021
Shape Safety in Tensor Programming is Easy for a Theorem Prover -SBTB 2021
 
4Developers 2018: Beyond c++17 (Mateusz Pusz)
4Developers 2018: Beyond c++17 (Mateusz Pusz)4Developers 2018: Beyond c++17 (Mateusz Pusz)
4Developers 2018: Beyond c++17 (Mateusz Pusz)
 
Halide - 2
Halide - 2 Halide - 2
Halide - 2
 
Assignment sw solution
Assignment sw solutionAssignment sw solution
Assignment sw solution
 
Building blocks for aggregate programming of self-organising applications
Building blocks for aggregate programming of self-organising applicationsBuilding blocks for aggregate programming of self-organising applications
Building blocks for aggregate programming of self-organising applications
 
Learn basics of Clojure/script and Reagent
Learn basics of Clojure/script and ReagentLearn basics of Clojure/script and Reagent
Learn basics of Clojure/script and Reagent
 
Soln dc05
Soln dc05Soln dc05
Soln dc05
 
Beyond C++17
Beyond C++17Beyond C++17
Beyond C++17
 
G-TAD: Sub-Graph Localization for Temporal Action Detection
G-TAD: Sub-Graph Localization for Temporal Action DetectionG-TAD: Sub-Graph Localization for Temporal Action Detection
G-TAD: Sub-Graph Localization for Temporal Action Detection
 
Kepler vs Xeon Phi
Kepler vs Xeon Phi Kepler vs Xeon Phi
Kepler vs Xeon Phi
 
A Multidimensional Distributed Array Abstraction for PGAS (HPCC'16)
A Multidimensional Distributed Array Abstraction for PGAS (HPCC'16)A Multidimensional Distributed Array Abstraction for PGAS (HPCC'16)
A Multidimensional Distributed Array Abstraction for PGAS (HPCC'16)
 

Andere mochten auch

Programming in Scala: Notes
Programming in Scala: NotesProgramming in Scala: Notes
Programming in Scala: NotesRoberto Casadei
 
Functional Programming in Scala: Notes
Functional Programming in Scala: NotesFunctional Programming in Scala: Notes
Functional Programming in Scala: NotesRoberto 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
 
Aggregate Programming in Scala
Aggregate Programming in ScalaAggregate Programming in Scala
Aggregate Programming in ScalaRoberto Casadei
 
Practical Aggregate Programming in Scala
Practical Aggregate Programming in ScalaPractical Aggregate Programming in Scala
Practical Aggregate Programming in ScalaRoberto Casadei
 
Towards Aggregate Programming in Scala
Towards Aggregate Programming in ScalaTowards Aggregate Programming in Scala
Towards Aggregate Programming in ScalaRoberto Casadei
 
Engaging e-Patients in a Digital World: How Collaboration, Transparency, and ...
Engaging e-Patients in a Digital World: How Collaboration, Transparency, and ...Engaging e-Patients in a Digital World: How Collaboration, Transparency, and ...
Engaging e-Patients in a Digital World: How Collaboration, Transparency, and ...Daniel Sands
 
Scaling modern JVM applications with Akka toolkit
Scaling modern JVM applications with Akka toolkitScaling modern JVM applications with Akka toolkit
Scaling modern JVM applications with Akka toolkitBojan Babic
 
Software Engineering Thailand: Programming with Scala
Software Engineering Thailand: Programming with ScalaSoftware Engineering Thailand: Programming with Scala
Software Engineering Thailand: Programming with ScalaBrian Topping
 
Functional Scala II (in practice)
Functional Scala II (in practice)Functional Scala II (in practice)
Functional Scala II (in practice)Mario Gleichmann
 
Functional Programming in Scala Reading #2
Functional Programming in Scala Reading #2Functional Programming in Scala Reading #2
Functional Programming in Scala Reading #2Naoyuki Yamada
 
Scala 2.10.0 (english version)
Scala 2.10.0 (english version)Scala 2.10.0 (english version)
Scala 2.10.0 (english version)Daniel Sobral
 
Basic Wicket and Scala
Basic Wicket and ScalaBasic Wicket and Scala
Basic Wicket and Scalastuq
 
Taller de Resiliencia y Agilidad en la conferencia Ágiles 2015, Montevideo 23...
Taller de Resiliencia y Agilidad en la conferencia Ágiles 2015, Montevideo 23...Taller de Resiliencia y Agilidad en la conferencia Ágiles 2015, Montevideo 23...
Taller de Resiliencia y Agilidad en la conferencia Ágiles 2015, Montevideo 23...Pablo Lischinsky
 
Scala: Object-Oriented Meets Functional, by Iulian Dragos
Scala: Object-Oriented Meets Functional, by Iulian DragosScala: Object-Oriented Meets Functional, by Iulian Dragos
Scala: Object-Oriented Meets Functional, by Iulian Dragos3Pillar Global
 

Andere mochten auch (20)

Programming in Scala: Notes
Programming in Scala: NotesProgramming in Scala: Notes
Programming in Scala: Notes
 
Functional Programming in Scala: Notes
Functional Programming in Scala: NotesFunctional Programming in Scala: Notes
Functional Programming in Scala: Notes
 
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
 
Effective unit testing
Effective unit testingEffective unit testing
Effective unit testing
 
Aggregate Programming in Scala
Aggregate Programming in ScalaAggregate Programming in Scala
Aggregate Programming in Scala
 
Haskell
HaskellHaskell
Haskell
 
Practical Aggregate Programming in Scala
Practical Aggregate Programming in ScalaPractical Aggregate Programming in Scala
Practical Aggregate Programming in Scala
 
Towards Aggregate Programming in Scala
Towards Aggregate Programming in ScalaTowards Aggregate Programming in Scala
Towards Aggregate Programming in Scala
 
Engaging e-Patients in a Digital World: How Collaboration, Transparency, and ...
Engaging e-Patients in a Digital World: How Collaboration, Transparency, and ...Engaging e-Patients in a Digital World: How Collaboration, Transparency, and ...
Engaging e-Patients in a Digital World: How Collaboration, Transparency, and ...
 
Scaling modern JVM applications with Akka toolkit
Scaling modern JVM applications with Akka toolkitScaling modern JVM applications with Akka toolkit
Scaling modern JVM applications with Akka toolkit
 
Lembaran kerja Imbuhan 01
Lembaran kerja Imbuhan 01Lembaran kerja Imbuhan 01
Lembaran kerja Imbuhan 01
 
Functional Scala I
Functional Scala IFunctional Scala I
Functional Scala I
 
Software Engineering Thailand: Programming with Scala
Software Engineering Thailand: Programming with ScalaSoftware Engineering Thailand: Programming with Scala
Software Engineering Thailand: Programming with Scala
 
Functional Scala II (in practice)
Functional Scala II (in practice)Functional Scala II (in practice)
Functional Scala II (in practice)
 
F*** the Manifesto
F*** the ManifestoF*** the Manifesto
F*** the Manifesto
 
Functional Programming in Scala Reading #2
Functional Programming in Scala Reading #2Functional Programming in Scala Reading #2
Functional Programming in Scala Reading #2
 
Scala 2.10.0 (english version)
Scala 2.10.0 (english version)Scala 2.10.0 (english version)
Scala 2.10.0 (english version)
 
Basic Wicket and Scala
Basic Wicket and ScalaBasic Wicket and Scala
Basic Wicket and Scala
 
Taller de Resiliencia y Agilidad en la conferencia Ágiles 2015, Montevideo 23...
Taller de Resiliencia y Agilidad en la conferencia Ágiles 2015, Montevideo 23...Taller de Resiliencia y Agilidad en la conferencia Ágiles 2015, Montevideo 23...
Taller de Resiliencia y Agilidad en la conferencia Ágiles 2015, Montevideo 23...
 
Scala: Object-Oriented Meets Functional, by Iulian Dragos
Scala: Object-Oriented Meets Functional, by Iulian DragosScala: Object-Oriented Meets Functional, by Iulian Dragos
Scala: Object-Oriented Meets Functional, by Iulian Dragos
 

Ähnlich wie Programming Actor-based Collective Adaptive Systems

Scafi: Scala with Computational Fields
Scafi: Scala with Computational FieldsScafi: Scala with Computational Fields
Scafi: Scala with Computational FieldsRoberto Casadei
 
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
 
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 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
 
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
 
NVIDIA HPC ソフトウエア斜め読み
NVIDIA HPC ソフトウエア斜め読みNVIDIA HPC ソフトウエア斜め読み
NVIDIA HPC ソフトウエア斜め読みNVIDIA Japan
 
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
 
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
 
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
 
On Context-Orientation in Aggregate Programming
On Context-Orientation in Aggregate ProgrammingOn Context-Orientation in Aggregate Programming
On Context-Orientation in Aggregate ProgrammingRoberto Casadei
 
Aggregate Processes in Field Calculus
Aggregate Processes in Field CalculusAggregate Processes in Field Calculus
Aggregate Processes in Field CalculusRoberto Casadei
 
Interactive Editing of Signed Distance Fields
Interactive Editing of Signed Distance FieldsInteractive Editing of Signed Distance Fields
Interactive Editing of Signed Distance FieldsMatthias Trapp
 
A Future for R: Parallel and Distributed Processing in R for Everyone
A Future for R: Parallel and Distributed Processing in R for EveryoneA Future for R: Parallel and Distributed Processing in R for Everyone
A Future for R: Parallel and Distributed Processing in R for Everyoneinside-BigData.com
 
Compositional Blocks for Optimal Self-Healing Gradients
Compositional Blocks for Optimal Self-Healing GradientsCompositional Blocks for Optimal Self-Healing Gradients
Compositional Blocks for Optimal Self-Healing GradientsRoberto Casadei
 
breaking_dependencies_the_solid_principles__klaus_iglberger__cppcon_2020.pdf
breaking_dependencies_the_solid_principles__klaus_iglberger__cppcon_2020.pdfbreaking_dependencies_the_solid_principles__klaus_iglberger__cppcon_2020.pdf
breaking_dependencies_the_solid_principles__klaus_iglberger__cppcon_2020.pdfVishalKumarJha10
 
Design the implementation of Anytime D Star on an Occupancy Grid
Design the implementation of Anytime D Star on an Occupancy GridDesign the implementation of Anytime D Star on an Occupancy Grid
Design the implementation of Anytime D Star on an Occupancy GridAnkita Tiwari
 
HDFS-HC: A Data Placement Module for Heterogeneous Hadoop Clusters
HDFS-HC: A Data Placement Module for Heterogeneous Hadoop ClustersHDFS-HC: A Data Placement Module for Heterogeneous Hadoop Clusters
HDFS-HC: A Data Placement Module for Heterogeneous Hadoop ClustersXiao Qin
 
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
 

Ähnlich wie Programming Actor-based Collective Adaptive Systems (20)

Scafi: Scala with Computational Fields
Scafi: Scala with Computational FieldsScafi: Scala with Computational Fields
Scafi: Scala with Computational Fields
 
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
 
Aggregate Computing Platforms: Bridging the Gaps
Aggregate Computing Platforms: Bridging the GapsAggregate Computing Platforms: Bridging the Gaps
Aggregate Computing Platforms: Bridging the Gaps
 
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...
 
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
 
NVIDIA HPC ソフトウエア斜め読み
NVIDIA HPC ソフトウエア斜め読みNVIDIA HPC ソフトウエア斜め読み
NVIDIA HPC ソフトウエア斜め読み
 
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) [...
 
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...
 
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...
 
On Context-Orientation in Aggregate Programming
On Context-Orientation in Aggregate ProgrammingOn Context-Orientation in Aggregate Programming
On Context-Orientation in Aggregate Programming
 
Aggregate Processes in Field Calculus
Aggregate Processes in Field CalculusAggregate Processes in Field Calculus
Aggregate Processes in Field Calculus
 
Interactive Editing of Signed Distance Fields
Interactive Editing of Signed Distance FieldsInteractive Editing of Signed Distance Fields
Interactive Editing of Signed Distance Fields
 
Hems
HemsHems
Hems
 
A Future for R: Parallel and Distributed Processing in R for Everyone
A Future for R: Parallel and Distributed Processing in R for EveryoneA Future for R: Parallel and Distributed Processing in R for Everyone
A Future for R: Parallel and Distributed Processing in R for Everyone
 
Compositional Blocks for Optimal Self-Healing Gradients
Compositional Blocks for Optimal Self-Healing GradientsCompositional Blocks for Optimal Self-Healing Gradients
Compositional Blocks for Optimal Self-Healing Gradients
 
PointNet
PointNetPointNet
PointNet
 
breaking_dependencies_the_solid_principles__klaus_iglberger__cppcon_2020.pdf
breaking_dependencies_the_solid_principles__klaus_iglberger__cppcon_2020.pdfbreaking_dependencies_the_solid_principles__klaus_iglberger__cppcon_2020.pdf
breaking_dependencies_the_solid_principles__klaus_iglberger__cppcon_2020.pdf
 
Design the implementation of Anytime D Star on an Occupancy Grid
Design the implementation of Anytime D Star on an Occupancy GridDesign the implementation of Anytime D Star on an Occupancy Grid
Design the implementation of Anytime D Star on an Occupancy Grid
 
HDFS-HC: A Data Placement Module for Heterogeneous Hadoop Clusters
HDFS-HC: A Data Placement Module for Heterogeneous Hadoop ClustersHDFS-HC: A Data Placement Module for Heterogeneous Hadoop Clusters
HDFS-HC: A Data Placement Module for Heterogeneous Hadoop Clusters
 
RR & Docker @ MuensteR Meetup (Sep 2017)
RR & Docker @ MuensteR Meetup (Sep 2017)RR & Docker @ MuensteR Meetup (Sep 2017)
RR & Docker @ MuensteR Meetup (Sep 2017)
 

Mehr von 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
 
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
 
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
 
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
 

Mehr von 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
 
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...
 
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
 
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
 
NodeJS: an Introduction
NodeJS: an IntroductionNodeJS: an Introduction
NodeJS: an Introduction
 

Kürzlich hochgeladen

Botany krishna series 2nd semester Only Mcq type questions
Botany krishna series 2nd semester Only Mcq type questionsBotany krishna series 2nd semester Only Mcq type questions
Botany krishna series 2nd semester Only Mcq type questionsSumit Kumar yadav
 
Vip profile Call Girls In Lonavala 9748763073 For Genuine Sex Service At Just...
Vip profile Call Girls In Lonavala 9748763073 For Genuine Sex Service At Just...Vip profile Call Girls In Lonavala 9748763073 For Genuine Sex Service At Just...
Vip profile Call Girls In Lonavala 9748763073 For Genuine Sex Service At Just...Monika Rani
 
Pests of cotton_Sucking_Pests_Dr.UPR.pdf
Pests of cotton_Sucking_Pests_Dr.UPR.pdfPests of cotton_Sucking_Pests_Dr.UPR.pdf
Pests of cotton_Sucking_Pests_Dr.UPR.pdfPirithiRaju
 
❤Jammu Kashmir Call Girls 8617697112 Personal Whatsapp Number 💦✅.
❤Jammu Kashmir Call Girls 8617697112 Personal Whatsapp Number 💦✅.❤Jammu Kashmir Call Girls 8617697112 Personal Whatsapp Number 💦✅.
❤Jammu Kashmir Call Girls 8617697112 Personal Whatsapp Number 💦✅.Nitya salvi
 
Green chemistry and Sustainable development.pptx
Green chemistry  and Sustainable development.pptxGreen chemistry  and Sustainable development.pptx
Green chemistry and Sustainable development.pptxRajatChauhan518211
 
TEST BANK For Radiologic Science for Technologists, 12th Edition by Stewart C...
TEST BANK For Radiologic Science for Technologists, 12th Edition by Stewart C...TEST BANK For Radiologic Science for Technologists, 12th Edition by Stewart C...
TEST BANK For Radiologic Science for Technologists, 12th Edition by Stewart C...ssifa0344
 
Recombinant DNA technology (Immunological screening)
Recombinant DNA technology (Immunological screening)Recombinant DNA technology (Immunological screening)
Recombinant DNA technology (Immunological screening)PraveenaKalaiselvan1
 
Pests of mustard_Identification_Management_Dr.UPR.pdf
Pests of mustard_Identification_Management_Dr.UPR.pdfPests of mustard_Identification_Management_Dr.UPR.pdf
Pests of mustard_Identification_Management_Dr.UPR.pdfPirithiRaju
 
GUIDELINES ON SIMILAR BIOLOGICS Regulatory Requirements for Marketing Authori...
GUIDELINES ON SIMILAR BIOLOGICS Regulatory Requirements for Marketing Authori...GUIDELINES ON SIMILAR BIOLOGICS Regulatory Requirements for Marketing Authori...
GUIDELINES ON SIMILAR BIOLOGICS Regulatory Requirements for Marketing Authori...Lokesh Kothari
 
VIRUSES structure and classification ppt by Dr.Prince C P
VIRUSES structure and classification ppt by Dr.Prince C PVIRUSES structure and classification ppt by Dr.Prince C P
VIRUSES structure and classification ppt by Dr.Prince C PPRINCE C P
 
COST ESTIMATION FOR A RESEARCH PROJECT.pptx
COST ESTIMATION FOR A RESEARCH PROJECT.pptxCOST ESTIMATION FOR A RESEARCH PROJECT.pptx
COST ESTIMATION FOR A RESEARCH PROJECT.pptxFarihaAbdulRasheed
 
Formation of low mass protostars and their circumstellar disks
Formation of low mass protostars and their circumstellar disksFormation of low mass protostars and their circumstellar disks
Formation of low mass protostars and their circumstellar disksSérgio Sacani
 
Animal Communication- Auditory and Visual.pptx
Animal Communication- Auditory and Visual.pptxAnimal Communication- Auditory and Visual.pptx
Animal Communication- Auditory and Visual.pptxUmerFayaz5
 
Botany 4th semester series (krishna).pdf
Botany 4th semester series (krishna).pdfBotany 4th semester series (krishna).pdf
Botany 4th semester series (krishna).pdfSumit Kumar yadav
 
Kochi ❤CALL GIRL 84099*07087 ❤CALL GIRLS IN Kochi ESCORT SERVICE❤CALL GIRL
Kochi ❤CALL GIRL 84099*07087 ❤CALL GIRLS IN Kochi ESCORT SERVICE❤CALL GIRLKochi ❤CALL GIRL 84099*07087 ❤CALL GIRLS IN Kochi ESCORT SERVICE❤CALL GIRL
Kochi ❤CALL GIRL 84099*07087 ❤CALL GIRLS IN Kochi ESCORT SERVICE❤CALL GIRLkantirani197
 
SCIENCE-4-QUARTER4-WEEK-4-PPT-1 (1).pptx
SCIENCE-4-QUARTER4-WEEK-4-PPT-1 (1).pptxSCIENCE-4-QUARTER4-WEEK-4-PPT-1 (1).pptx
SCIENCE-4-QUARTER4-WEEK-4-PPT-1 (1).pptxRizalinePalanog2
 
Labelling Requirements and Label Claims for Dietary Supplements and Recommend...
Labelling Requirements and Label Claims for Dietary Supplements and Recommend...Labelling Requirements and Label Claims for Dietary Supplements and Recommend...
Labelling Requirements and Label Claims for Dietary Supplements and Recommend...Lokesh Kothari
 
GBSN - Microbiology (Unit 2)
GBSN - Microbiology (Unit 2)GBSN - Microbiology (Unit 2)
GBSN - Microbiology (Unit 2)Areesha Ahmad
 
Isotopic evidence of long-lived volcanism on Io
Isotopic evidence of long-lived volcanism on IoIsotopic evidence of long-lived volcanism on Io
Isotopic evidence of long-lived volcanism on IoSérgio Sacani
 

Kürzlich hochgeladen (20)

Botany krishna series 2nd semester Only Mcq type questions
Botany krishna series 2nd semester Only Mcq type questionsBotany krishna series 2nd semester Only Mcq type questions
Botany krishna series 2nd semester Only Mcq type questions
 
Vip profile Call Girls In Lonavala 9748763073 For Genuine Sex Service At Just...
Vip profile Call Girls In Lonavala 9748763073 For Genuine Sex Service At Just...Vip profile Call Girls In Lonavala 9748763073 For Genuine Sex Service At Just...
Vip profile Call Girls In Lonavala 9748763073 For Genuine Sex Service At Just...
 
Pests of cotton_Sucking_Pests_Dr.UPR.pdf
Pests of cotton_Sucking_Pests_Dr.UPR.pdfPests of cotton_Sucking_Pests_Dr.UPR.pdf
Pests of cotton_Sucking_Pests_Dr.UPR.pdf
 
❤Jammu Kashmir Call Girls 8617697112 Personal Whatsapp Number 💦✅.
❤Jammu Kashmir Call Girls 8617697112 Personal Whatsapp Number 💦✅.❤Jammu Kashmir Call Girls 8617697112 Personal Whatsapp Number 💦✅.
❤Jammu Kashmir Call Girls 8617697112 Personal Whatsapp Number 💦✅.
 
Green chemistry and Sustainable development.pptx
Green chemistry  and Sustainable development.pptxGreen chemistry  and Sustainable development.pptx
Green chemistry and Sustainable development.pptx
 
TEST BANK For Radiologic Science for Technologists, 12th Edition by Stewart C...
TEST BANK For Radiologic Science for Technologists, 12th Edition by Stewart C...TEST BANK For Radiologic Science for Technologists, 12th Edition by Stewart C...
TEST BANK For Radiologic Science for Technologists, 12th Edition by Stewart C...
 
Recombinant DNA technology (Immunological screening)
Recombinant DNA technology (Immunological screening)Recombinant DNA technology (Immunological screening)
Recombinant DNA technology (Immunological screening)
 
Pests of mustard_Identification_Management_Dr.UPR.pdf
Pests of mustard_Identification_Management_Dr.UPR.pdfPests of mustard_Identification_Management_Dr.UPR.pdf
Pests of mustard_Identification_Management_Dr.UPR.pdf
 
GUIDELINES ON SIMILAR BIOLOGICS Regulatory Requirements for Marketing Authori...
GUIDELINES ON SIMILAR BIOLOGICS Regulatory Requirements for Marketing Authori...GUIDELINES ON SIMILAR BIOLOGICS Regulatory Requirements for Marketing Authori...
GUIDELINES ON SIMILAR BIOLOGICS Regulatory Requirements for Marketing Authori...
 
VIRUSES structure and classification ppt by Dr.Prince C P
VIRUSES structure and classification ppt by Dr.Prince C PVIRUSES structure and classification ppt by Dr.Prince C P
VIRUSES structure and classification ppt by Dr.Prince C P
 
COST ESTIMATION FOR A RESEARCH PROJECT.pptx
COST ESTIMATION FOR A RESEARCH PROJECT.pptxCOST ESTIMATION FOR A RESEARCH PROJECT.pptx
COST ESTIMATION FOR A RESEARCH PROJECT.pptx
 
Formation of low mass protostars and their circumstellar disks
Formation of low mass protostars and their circumstellar disksFormation of low mass protostars and their circumstellar disks
Formation of low mass protostars and their circumstellar disks
 
Animal Communication- Auditory and Visual.pptx
Animal Communication- Auditory and Visual.pptxAnimal Communication- Auditory and Visual.pptx
Animal Communication- Auditory and Visual.pptx
 
Botany 4th semester series (krishna).pdf
Botany 4th semester series (krishna).pdfBotany 4th semester series (krishna).pdf
Botany 4th semester series (krishna).pdf
 
Kochi ❤CALL GIRL 84099*07087 ❤CALL GIRLS IN Kochi ESCORT SERVICE❤CALL GIRL
Kochi ❤CALL GIRL 84099*07087 ❤CALL GIRLS IN Kochi ESCORT SERVICE❤CALL GIRLKochi ❤CALL GIRL 84099*07087 ❤CALL GIRLS IN Kochi ESCORT SERVICE❤CALL GIRL
Kochi ❤CALL GIRL 84099*07087 ❤CALL GIRLS IN Kochi ESCORT SERVICE❤CALL GIRL
 
SCIENCE-4-QUARTER4-WEEK-4-PPT-1 (1).pptx
SCIENCE-4-QUARTER4-WEEK-4-PPT-1 (1).pptxSCIENCE-4-QUARTER4-WEEK-4-PPT-1 (1).pptx
SCIENCE-4-QUARTER4-WEEK-4-PPT-1 (1).pptx
 
CELL -Structural and Functional unit of life.pdf
CELL -Structural and Functional unit of life.pdfCELL -Structural and Functional unit of life.pdf
CELL -Structural and Functional unit of life.pdf
 
Labelling Requirements and Label Claims for Dietary Supplements and Recommend...
Labelling Requirements and Label Claims for Dietary Supplements and Recommend...Labelling Requirements and Label Claims for Dietary Supplements and Recommend...
Labelling Requirements and Label Claims for Dietary Supplements and Recommend...
 
GBSN - Microbiology (Unit 2)
GBSN - Microbiology (Unit 2)GBSN - Microbiology (Unit 2)
GBSN - Microbiology (Unit 2)
 
Isotopic evidence of long-lived volcanism on Io
Isotopic evidence of long-lived volcanism on IoIsotopic evidence of long-lived volcanism on Io
Isotopic evidence of long-lived volcanism on Io
 

Programming Actor-based Collective Adaptive Systems

  • 1. Programming Actor-based Collective Adaptive Systems Roberto Casadei Mirko Viroli Department of Computer Science and Engineering University of Bologna AGERE! Workshop, co-located with SPLASH, Amsterdam 2016 Slides available at http://www.slideshare.net/RobertoCasadei/presentations R. Casadei (Università di Bologna) Programming Actor-based CASs PMLDC 2016 1 / 23
  • 2. Outline 1 Aggregate Computing: the Basics 2 Aggregate Computing and the Actor Model 3 Conclusion R. Casadei (Università di Bologna) Programming Actor-based CASs PMLDC 2016 2 / 23
  • 3. Aggregate Computing: the Basics Outline 1 Aggregate Computing: the Basics 2 Aggregate Computing and the Actor Model 3 Conclusion R. Casadei (Università di Bologna) Programming Actor-based CASs PMLDC 2016 3 / 23
  • 4. Aggregate Computing: the Basics Problem: design/programming CASs Collective/Complex Adaptive Systems (CASs) Structure: Environment + (Mobile, Large-scale) Networks of { people + devices } Global interpretation: embedded devices collectively form a “diffused” computational system R. Casadei (Università di Bologna) Programming Actor-based CASs PMLDC 2016 4 / 23
  • 5. Aggregate Computing: the Basics An approach to CAS development Issues ⇒ approach • Large-scale ⇒ decentralised coordination • Situatedness + distributed autonomy ⇒ substantial unpredictability ⇒ self-* • Complex collective behavior ⇒ good abstractions, layered approach, compositionality Shifting the mindset: from local to global • Declarativeness and the global viewpoint • Crowd-aware services • Failure recovery of enterprise services • Distributed monitoring and reacting (e.g., temperature, fire) • Expected global behavior vs. traditional device-centric interface ⇒ Aggregate Programming [BPV15]: a paradigm for programming whole aggregates of devices. R. Casadei (Università di Bologna) Programming Actor-based CASs PMLDC 2016 5 / 23
  • 6. Aggregate Computing: the Basics Aggregate programming [BPV15] From the local/device-centric viewpoint to the global/aggregate viewpoint Aggregate programming: what Goal: programming the collective behaviour of aggregates (of devices) ⇒ global-to-local Aggregate programming: how Prominent approach (generalizing over several prior approaches and strategies [BDU+ 12]) founded on field calculus and self-org patterns • Computational fields as unifying abstraction of local/global viewpoints R. Casadei (Università di Bologna) Programming Actor-based CASs PMLDC 2016 6 / 23
  • 7. Aggregate Computing: the Basics Computational fields [DVB16] • (Abstract interpretation) Mapping space-time to computational objects • (Concrete interpretation) Mapping devices to values: φ : δ → • “Distributed” data structure working as the global abstraction • The bridge abstraction between local behavior and global behavior Discrete systems as an approximation of spacetime R. Casadei (Università di Bologna) Programming Actor-based CASs PMLDC 2016 7 / 23
  • 8. Aggregate Computing: the Basics SCAFI: Scala with Computational Fields Goal: bring Aggregate Computing to the field of mainstream software development What SCAFI [CV16] is an integrated framework for building systems with aggregate programming. • Scala-internal DSL for expressing aggregate computations. • Linguistic support + execution support (interpreter/VM) • Correct, complete, efficient impl. of the Higher-Order Field Calculus semantics [DVPB15] • Distributed platform for execution of aggregate systems. • Support for multiple architectural styles and system configurations. • Actor-based implementation (based on Akka). Where • https://bitbucket.org/scafiteam/scafi libraryDependencies += "it.unibo.apice.scafiteam" % "scafi-core_2.11" % "0.1.0" // on Maven Central R. Casadei (Università di Bologna) Programming Actor-based CASs PMLDC 2016 8 / 23
  • 9. Aggregate Computing: the Basics Aggregate (computing) systems & Execution model Structure ⇒ (network/graph) • A set of devices. • Each device is able to communicate with a subset of devices known as its neighbourhood. Dynamics Each device is given the same aggregate program and works at async / partially-sync rounds: (1) Retrieve context ⇐ Messages from neighbours ⇐ Sensor values (2) Aggregate program execution ⇒ export + output (3) Broadcast export to neighbourhood (4) Execute actuators R. Casadei (Università di Bologna) Programming Actor-based CASs PMLDC 2016 9 / 23
  • 10. Aggregate Computing: the Basics Computing with fields I Expressing aggregate/field computations in SCAFI trait Constructs { def rep[A](init: A)(fun: (A) => A): A def nbr[A](expr: => A): A def foldhood[A](init: => A)(acc: (A,A)=>A)(expr: => A): A def aggregate[A](f: => A): A // Not primitive, but foundational def sense[A](name: LSNS): A def nbrvar[A](name: NSNS): A def branch[A](cond: => Boolean)(th: => A)(el: => A): A } • Mechanisms for context-sensitiveness: nbr, nbrvar, sense • Mechanisms for field evolution: rep • Mechanisms for interaction: nbr • Mechanisms for field domain restriction and partitioning: aggregate, branch • Reference formal system: field calculus [DVB16, DVPB15] R. Casadei (Università di Bologna) Programming Actor-based CASs PMLDC 2016 10 / 23
  • 11. Aggregate Computing: the Basics Computing with fields II Global-level semantics, intuitively 0 (x)=>x+1 true t<0,1> ()0 1 + - 1 -1 ef(0,1) ef rep 0 (x)=>x+1 t v0 t v1 .. rep(0){(x)=>x+1} nbr de nbr{e} φd=[d1→v1,..,dn→vn] R. Casadei (Università di Bologna) Programming Actor-based CASs PMLDC 2016 11 / 23
  • 12. Aggregate Computing: the Basics Example: the channel I R. Casadei (Università di Bologna) Programming Actor-based CASs PMLDC 2016 12 / 23
  • 13. Aggregate Computing: the Basics Example: the channel II Each device is given the same aggregate program: class ChannelProgram extends AggregateProgram with ChannelAPI { def main = channel(isSource, isDestination, width) } Gradient: field of min distances from source(s) def channel(src: Boolean, dest: Boolean, width: Double) = distanceTo(src) + distanceTo(dest) <= distBetween(src, dest) + width R. Casadei (Università di Bologna) Programming Actor-based CASs PMLDC 2016 13 / 23
  • 14. Aggregate Computing: the Basics Example: the channel III 1 trait ChannelAPI extends Language with Builtins { 2 def channel(src: Boolean, dest: Boolean, width: Double) = 3 distanceTo(src) + distanceTo(dest) <= distBetween(src, dest) + width 4 5 def G[V:OB](src: Boolean, field: V, acc: V=>V, metric: =>Double): V = 6 rep( (Double.MaxValue, field) ){ dv => 7 mux(src) { (0.0, field) } { 8 minHoodMinus { 9 val (d, v) = nbr { (dv._1, dv._2) } 10 (d + metric, acc(v)) 11 } 12 } 13 }._2 14 15 def broadcast[V:OB](source: Boolean, field: V): V = 16 G[V](source, field, x=>x, nbrRange()) 17 18 def distanceTo(source: Boolean): Double = 19 G[Double](source, 0, _ + nbrRange(), nbrRange()) 20 21 def distBetween(source: Boolean, target: Boolean): Double = 22 broadcast(source, distanceTo(target)) 23 24 def nbrRange(): Double = nbrvar[Double](NBR_RANGE_NAME) 25 def isSource = sense[Boolean]("source"); def isDestination = sense[Boolean]("destination") 26 } R. Casadei (Università di Bologna) Programming Actor-based CASs PMLDC 2016 14 / 23
  • 15. Aggregate Computing: the Basics Aggregate Programming Stack R. Casadei (Università di Bologna) Programming Actor-based CASs PMLDC 2016 15 / 23
  • 16. Aggregate Computing and the Actor Model Outline 1 Aggregate Computing: the Basics 2 Aggregate Computing and the Actor Model 3 Conclusion R. Casadei (Università di Bologna) Programming Actor-based CASs PMLDC 2016 16 / 23
  • 17. Aggregate Computing and the Actor Model Embedded actors • The Actor model & distributed systems – a good fit • Actors for distributed situated systems and IoT – a natural extension • Embedded actor [HCS14]: plain Actor model + situatedness. • Actors for avatars [Zam16] How can actors be used to implement complex decentralised behaviours? R. Casadei (Università di Bologna) Programming Actor-based CASs PMLDC 2016 17 / 23
  • 18. Aggregate Computing and the Actor Model (Fully operational) Device actors Responsibilities (i) Sensing/actuating (ii) Aggregate program execution (iii) Broadcasting/receiving the exports of computation to/from neighbours (iv) Storing state (last computation, exports from neighbours) • Each one may be reified as an actor/subcomponent R. Casadei (Università di Bologna) Programming Actor-based CASs PMLDC 2016 18 / 23
  • 19. Aggregate Computing and the Actor Model Execution strategies and architectures [VCP16] R. Casadei (Università di Bologna) Programming Actor-based CASs PMLDC 2016 19 / 23
  • 20. Aggregate Computing and the Actor Model Setup of an (actor-based) aggregate system // STEP 1: CHOOSE INCARNATION import scafi.incarnations.{ BasicActorP2P => Platform } import Platform.{AggregateProgram,Settings,PlatformConfig} // STEP 2: DEFINE AGGREGATE PROGRAM SCHEMA class Program extends AggregateProgram with CrowdAPI { // Specify a "dangerous density" aggregate computation override def main(): Any = dangerousDensity() } // STEP 3: PLATFORM SETUP val settings = Settings() val platform = PlatformConfig.setupPlatform(settings) // STEP 4: NODE SETUP val sys = platform.newAggregateApplication() val dm = sys.newDevice(id = Utils.newId(), program = Program, neighbours = Utils.discoverNbrs()) val devActor = dm.actorRef // get underlying actor R. Casadei (Università di Bologna) Programming Actor-based CASs PMLDC 2016 20 / 23
  • 21. Aggregate Computing and the Actor Model Integrating Aggregate Computing into actor-based applications Key idea • AC system as coordinator or CAS service within a larger system. • In particular, AC actors can integrate with application-specific actors. – Through the AC system/actor’s in/out message interfaces • This integration can be achieved in multiple ways: – Application actors as sensors for device actors – Application actors as managers of the aggregate platform (e.g., fine-tune neighbourhood) – Application actors as observers of device actors – Device actors as actuators for application logic R. Casadei (Università di Bologna) Programming Actor-based CASs PMLDC 2016 21 / 23
  • 22. Conclusion Outline 1 Aggregate Computing: the Basics 2 Aggregate Computing and the Actor Model 3 Conclusion R. Casadei (Università di Bologna) Programming Actor-based CASs PMLDC 2016 22 / 23
  • 23. Conclusion Summary: key ideas Aggregate programming • An programmingengineering approach to CASs, formally grounded in the Field Calculus. • Allows to compose “emergent” phenomena & defines layers of (self-stabilizing) building blocks. • Comes with a Scala framework (SCAFI) for building aggregate systems. Aggregate computing and the Actor model • Actors for implementing aggregate systems. • Application actors interacting with aggregate systems through message-oriented boundaries. • Plain actors + embedded actors + "aggregate" actors seems to be nice mix for IoT apps. Future work • Evolve SCAFI to support scalable computations in cluster- and cloud-based systems. • What does it take to set up a framework for adaptive execution strategies? R. Casadei (Università di Bologna) Programming Actor-based CASs PMLDC 2016 23 / 23
  • 24. Conclusion Question time Questions? R. Casadei (Università di Bologna) Programming Actor-based CASs PMLDC 2016 24 / 23
  • 25. Conclusion What is an aggregate program? • May take the form of field calculus programs (in the representation given by some PL) • Actually, the field calculus is like FJ for Java, or the lambda calculus for Haskell • An aggregate program consists of 1) A set of function definitions 2) A body of expressions. • Example: an aggregate program in SCAFI class MyProgram extends AggregateProgram with MyAPI { def isSource = sense[Boolean]("source") // Entry point for execution override def main() = gradient(isSource) } – Each device of the aggregate system is given an instance of MyProgram. – Each device repeatedly runs the main method at async rounds of execution. R. Casadei (Università di Bologna) Programming Actor-based CASs PMLDC 2016 25 / 23
  • 26. Conclusion How do AC achieve reliable CAS engineering? The Aggregate Computing way • Abstraction gap — i.e., the distance from the problem to the solution =⇒ Abstractions close to problem domain =⇒ Declarative approach – from how to what =⇒ Layered approach – raising abstraction incrementally • Capturing complex behaviours in a simple way =⇒ Instrumental assumptions + effective building blocks =⇒ Balance of top-down and bottom-up problem solving (sort of match-in-the-middle) • Supporting modularity and reusability =⇒ Compositional approach • Guiding engineering for resilience =⇒ Adaptation by construction R. Casadei (Università di Bologna) Programming Actor-based CASs PMLDC 2016 26 / 23
  • 27. Conclusion On aggregate computing and abstraction (Partial) insensitiveness to system structure and situation details [BVPD16a] Aggregate behaviours are highly insensitive to network size/density/topology [BVPD16b]. It makes algorithms intrinsically robust to failures & changes to working conditions [VBDP15]. (Partial) insensitiveness to execution strategy Note: the nodes of an aggregate system are the logical counterparts of components operating in some context via sensors/actuators. Aggregate computations can be carried out in different ways [VCP16]: • Computing nodes and “native” local (P2P) communication; • Computations performed by a central server; • Computations performed in the cloud; ... Idea: opportunistically exploit the underlying infrastructure R. Casadei (Università di Bologna) Programming Actor-based CASs PMLDC 2016 27 / 23
  • 28. Conclusion (On execution strategies/architectures) Wait! Why are you introducing centralisations? I p2p • Processing occurs locally • The export of computation has to be broadcasted to the neighbourhood • Sensor and actuator values readily available • Device-to-device communication may be onerous R. Casadei (Università di Bologna) Programming Actor-based CASs PMLDC 2016 28 / 23
  • 29. Conclusion (On execution strategies/architectures) Wait! Why are you introducing centralisations? II server/cloud • Sensor values upstream, actuations downstream ⇒ convenient when sensor readings do not change quickly • Neighbour exports readily available • Necessary when p2p interactions not supported at infrastructure-level • Because of (i) communication technology, or (ii) logical neighbouring relation • Necessary when devices have no processing capabilities (i.e., may only sense/act/communicate) • Even if p2p is possible, may still be useful for optimisations or for easier management R. Casadei (Università di Bologna) Programming Actor-based CASs PMLDC 2016 29 / 23
  • 30. Conclusion (On execution strategies/architectures) Wait! Why are you introducing centralisations? III Elements to be considered • Number of communication acts • Frequency of execution • Energetic issues • Other costs (e.g., pay-per-use in cloud) Key idea • Use available infrastructure and adapt so as to maximize QoS! Dynamic and opportunistic exploitation of networking/computing resources. • Computation may flow "up" and "down" depending on context and contingencies. • In this sense, AC is similar to MapReduce—but for distributed and situated computations. R. Casadei (Università di Bologna) Programming Actor-based CASs PMLDC 2016 30 / 23
  • 31. Conclusion The origins: space-time programming, bio-inspired patterns, ... I Decentralised spatial computing [Duc13] – Computing “somewhere” • Location-related information + spatial constraints to communication Space-time programming [BV15] • Computation expressed in terms of the physical space/time in which it occurs • Discrete system vs. continuous space-time R. Casadei (Università di Bologna) Programming Actor-based CASs PMLDC 2016 31 / 23
  • 32. Conclusion The origins: space-time programming, bio-inspired patterns, ... II Bio-inspired self-organisation patterns [FMSM+ 13] Generalizing from several prior approaches and strategies [BDU+ 12] • Making device interaction implicit – e.g., TOTA • Means to compose geometric/topological constructions – e.g., Origami Shape Language • General space-time computing approaches – e.g., Protelis, Proto, MGS • Automatically splitting computational behavior for cloud-style execution – e.g., MapReduce R. Casadei (Università di Bologna) Programming Actor-based CASs PMLDC 2016 32 / 23
  • 33. Conclusion Related works [BDU+ 12] provides an analysis of several prior (spatial computing) approaches for CAS development. A number of approaches sharing one or more aspects include: • ActorSpace [CA94] extends Actors with destination patterns. • ActorNet [KSMA06] is a mobile actor platform for WSNs. • AmbientTalk [VCMB+ 07] is a DSL for orchestrating service discovery and composition in MANETs. • Bulk Synchronous Parallel (BSP) model [Val90] (and BSP-based models such as Diderot [RS15]) – based on a sequence of parallel supersteps separated by global synchronization barriers. • Kairos [GGG05]: a macro-programming approach to WSNs R. Casadei (Università di Bologna) Programming Actor-based CASs PMLDC 2016 33 / 23
  • 34. Appendix References References I [BDU+ 12] Jacob Beal, Stefan Dulman, Kyle Usbeck, Mirko Viroli, and Nikolaus Correll. Organizing the aggregate: Languages for spatial computing. CoRR, abs/1202.5509, 2012. [BPV15] Jacob Beal, Danilo Pianini, and Mirko Viroli. Aggregate Programming for the Internet of Things. IEEE Computer, 2015. [BV15] Jacob Beal and Mirko Viroli. Space–time programming. Phil. Trans. R. Soc. A, 373(2046):20140220, 2015. [BVPD16a] Jacob Beal, Mirko Viroli, Danilo Pianini, and Ferruccio Damiani. Self-adaptation to device distribution changes in situated computing systems. In IEEE Conference on Self-Adaptive and Self-Organising Systems (SASO 2016). IEEE, 2016. To appear. R. Casadei (Università di Bologna) Programming Actor-based CASs PMLDC 2016 34 / 23
  • 35. Appendix References References II [BVPD16b] Jacob Beal, Mirko Viroli, Danilo Pianini, and Ferruccio Damiani. Self-adaptation to device distribution changes in situated computing systems. 2016. To appear. [CA94] Christian J Callsen and Gul Agha. Open heterogeneous computing in actorspace. Journal of Parallel and Distributed Computing, 21(3):289–300, 1994. [CV16] Roberto Casadei and Mirko Viroli. Towards aggregate programming in Scala. In First Workshop on Programming Models and Languages for Distributed Computing, PMLDC ’16, pages 5:1–5:7, New York, NY, USA, 2016. ACM. [Duc13] Matt Duckham. Decentralized Spatial Computing - Foundations of Geosensor Networks. Springer, 2013. R. Casadei (Università di Bologna) Programming Actor-based CASs PMLDC 2016 35 / 23
  • 36. Appendix References References III [DVB16] Ferruccio Damiani, Mirko Viroli, and Jacob Beal. A type-sound calculus of computational fields. Science of Computer Programming, 117:17 – 44, 2016. [DVPB15] Ferruccio Damiani, Mirko Viroli, Danilo Pianini, and Jacob Beal. Code mobility meets self-organisation: A higher-order calculus of computational fields. volume 9039 of Lecture Notes in Computer Science, pages 113–128. Springer International Publishing, 2015. [FMSM+ 13] Jose Luis Fernandez-Marquez, Giovanna Di Marzo Serugendo, Sara Montagna, Mirko Viroli, and Josep Lluís Arcos. Description and composition of bio-inspired design patterns: a complete overview. Natural Computing, 12(1):43–67, 2013. R. Casadei (Università di Bologna) Programming Actor-based CASs PMLDC 2016 36 / 23
  • 37. Appendix References References IV [GGG05] Ramakrishna Gummadi, Omprakash Gnawali, and Ramesh Govindan. Macro-programming wireless sensor networks using kairos. In International Conference on Distributed Computing in Sensor Systems, pages 126–140. Springer, 2005. [HCS14] Raphael Hiesgen, Dominik Charousset, and Thomas C Schmidt. Embedded actors – towards distributed programming in the IoT. In 2014 IEEE Fourth International Conference on Consumer Electronics Berlin (ICCE-Berlin), pages 371–375. IEEE, 2014. [KSMA06] YoungMin Kwon, Sameer Sundresh, Kirill Mechitov, and Gul Agha. Actornet: An actor platform for wireless sensor networks. In Proceedings of the fifth international joint conference on Autonomous agents and multiagent systems, pages 1297–1300. ACM, 2006. R. Casadei (Università di Bologna) Programming Actor-based CASs PMLDC 2016 37 / 23
  • 38. Appendix References References V [RS15] John Reppy and Lamont Samuels. Bulk-synchronous communication mechanisms in diderot. 2015. [Val90] Leslie G Valiant. A bridging model for parallel computation. Communications of the ACM, 33(8):103–111, 1990. [VBDP15] Mirko Viroli, Jacob Beal, Ferruccio Damiani, and Danilo Pianini. Efficient engineering of complex self-organising systems by self-stabilising fields. 2015. [VCMB+ 07] Tom Van Cutsem, Stijn Mostinckx, Elisa Gonzalez Boix, Jessie Dedecker, and Wolfgang De Meuter. Ambienttalk: object-oriented event-driven programming in mobile ad hoc networks. In Chilean Society of Computer Science, 2007. SCCC’07. XXVI International Conference of the, pages 3–12. IEEE, 2007. R. Casadei (Università di Bologna) Programming Actor-based CASs PMLDC 2016 38 / 23
  • 39. Appendix References References VI [VCP16] Mirko Viroli, Roberto Casadei, and Danilo Pianini. On execution platforms for large-scale aggregate computing. In Proceedings of the 2016 ACM International Joint Conference on Pervasive and Ubiquitous Computing: Adjunct, pages 1321–1326. ACM, 2016. [Zam16] Franco Zambonelli. Towards a general software engineering methodology for the internet of things. arXiv preprint arXiv:1601.05569, 2016. R. Casadei (Università di Bologna) Programming Actor-based CASs PMLDC 2016 39 / 23