Represents the façade towards the logical (sub)system.
Represents the façade towards the logical (sub)system. Responsibilities
Objects of this class are responsible for the configuration of the actor-based platform.
Objects of this class are responsible for the configuration of the actor-based platform. The façade interface allows the creation of a platform façade.
Defines a behavior for managing actuators.
Defines a behavior for managing actuators.
This is the top-level actor for a given aggregate application in the current subsystem.
This is the top-level actor for a given aggregate application in the current subsystem. Responsibilities
An autonomous scheduler decides how to schedule by applying some ExecStrategy {{strategy}}.
An autonomous scheduler decides how to schedule by applying some ExecStrategy {{strategy}}. Notes:
Base trait for all device actors.
Base trait for all device actors.
Defines a behavior for managing neighbours' info.
Defines a behavior for managing neighbours' info.
Represents the management façade for a single device.
Represents the management façade for a single device. Responsibilities
Behavior for an actor that allows code to be shipped to some recipient actors.
Behavior for an actor that allows code to be shipped to some recipient actors.
Defines a "full" device that, in addition to sensing (SensingBehavior), it also performs a computation, locally, using an {{aggregateExecutor}}.
Defines a "full" device that, in addition to sensing (SensingBehavior), it also performs a computation, locally, using an {{aggregateExecutor}}.
Specializes a ComputationDeviceActor to work in a decentralized, peer-to-peer manner.
Specializes a ComputationDeviceActor to work in a decentralized, peer-to-peer manner. In particular, it needs to propagate each computed state to its neighbors.
It extends a ComputationDeviceActor with a DynamicDeviceLifecycleBehavior.
It extends a ComputationDeviceActor with a DynamicDeviceLifecycleBehavior. In other words, the computation device has a (possibly dynamic) lifecycle that depends on the current execution scope (see ExecScope).
Defines a device lifecycle behavior that depends on the field {{execScope}.
Defines a device lifecycle behavior that depends on the field {{execScope}. The characteristic is that the behavior is dynamic, namely, can accomodate change to its execution scope. (See ExecScope)
A generic scheduler.
A generic scheduler. When it decides or someone decides its time to schedule (reception of a GoOn msg), it determines the next device to run ({{nextToRun: ()=>Option[ID]}}) and, if any, determines the destination mailbox ({{recipientForExecution: ID=>ActorRef}}) and sends to it a schedule tick (GoOn msg).
Behavior that should support the retrieval of missing class dependencies.
Behavior that should support the retrieval of missing class dependencies. - Missing classes are identified through a SystemMsgClassNotFound msg which is produced by the CustomAkkaSerializer when deserialization fails due to ClassNotFoundException, and replaces the original message - Then, requests for dependencies are carried out via MsgRequestClass messages - Finally, responses for dependency requests consist in MsgWithClass or MsgWithClasses messages
This behavior uses: - The CodeMobilityExtension to dynamically access the classloader for loading classes at runtime - The LoadClassBytes utility for getting the bytes of a class
This structure packages together info about a neighbor.
This structure packages together info about a neighbor.
Extends a ComputationDeviceActor with an ObservableActorBehavior.
Extends a ComputationDeviceActor with an ObservableActorBehavior. In other wards, it defines a computation device actors that is also observable, that is, can handle a set of observers and can notify them when certain events occur. In particular, observers are notified:
Neighbourhood management for devices in a P2P platform.
Neighbourhood management for devices in a P2P platform.
***********************
***********************
Defines the query management behavior of a "queryable" device, i.e., a device that can be asked/queried for information.
Defines the query management behavior of a "queryable" device, i.e., a device that can be asked/queried for information.
Defines the basic sensing behavior of a device.
Defines the basic sensing behavior of a device. It might be used to represent a "minimal" device that performs no computation locally.
Defines a behavior for managing sensors.
Defines a behavior for managing sensors.
*************************
*************************
Behavior extension for a computation device that allows its aggregate computation to be updated.
Behavior extension for a computation device that allows its aggregate computation to be updated.
******************************
******************************
(Since version ) see corresponding Javadoc for more information.
Specializes an it.unibo.scafi.distrib.actor.Platform into a "decentralized platform" where