Pre-req: Please visit this repository before advancing below to install the design-time and runtime artifacts.
This repository contains examples of different systems modeled using the CHARIOT-ML (Modeling Language). Following list summarizes these examples:
- HelloWorld: This example models a simple two objective system without any replication constraints. Instantiation of this system results in deployment of three components, each of different type; a component that periodically sends greeting message, a component that receives greeting message and queries for time after receiving each message, and a component that acts as a time server by serving synchronous time requests.
NOTE: Current implementation of CHARIOT-ML does not fully support modeling of component business logic. Therefore, most of the examples in this repository are modeled using external components, i.e., a component's business logic is treated as a black box at design-time. However, to showcase a possible approach, CHARIOT-ML partially implements the concept of CHARIOT components that provides fine-grained control for modeling component behavior and execution. CHARIOT components are partially implemented because although they can be modeled, the design-time interpreter ignores them completely. In this example, each of the aformentioned three components are modeled both as external components and CHARIOT components.
-
SmartParkingBasic: This example models a simple smart parking system that consists of two objectives and two replication constraints. Since this system contains a per node replication constraint, the exact number of components deployed upon system instantiation is not constant and rather depends on the number of available nodes associated with the per node replication constraint. Although the exact number of components deployed depends on the number of nodes available, this example comprises three different types of components; a component type that requests for parking space, a component type that keeps track of available parking spaces and services parking requests, and a component type that periodically determines occupancy status of one or more parking spaces.
-
SmartParkingComplex: Like the previous, this example also models a smart parking system. However, this example is a more complex version because (1) although the number of objectives is the same (i.e., two objectives), the number of functionalities required by these objectives, and therefore the number of component types that provide these functionalities, is greater, (2) the number of replication constraints associated with aforementioned functionatilies is greater, and (3) hardware resources are heterogenous.
-
ImagingSatelliteCluster: This example models a cluster of fractionated satellites that provides an extensible CPS platform that facilitates sharing sensors and other computing and communication resources across multiple applications. This example consists of three objectives and four replication constraints. Since this example also contains per node replication constraints, the exact number of components deuployed upon system instantiation is not constant. However, this example comprises of eight different types of components; a component type to capture low resolution images, a component type to capture high resolution images, a component type to process captured images, a component type to plan trajectories of different satellites, a component type to control a satellite's orbital motion, a component type representing a satellite's information bus, a component type to that sends ground commands, and a component type that receives ground commands.
-
SmartPowerGrid: This example models a simple three-bus power system with three different protection assemblies. Each bus consists of a protection assembly comprising atleast one Phasor Measurement Unit (PMU), one relay, and one breaker. Each protection assembly represents a protection zone and is modeled as a separate objectives. This example consists of nine different component types; three PMUs, three relay, and three breakers. The PMUs and breakers of the three protection zones are replicated using per node replication constraint.