Skip to content

Home

PyPI Version Py Version Issues GPL License RxPY

PyMAPE

Distributed and decentralized MonitorAnalyzePlanExecute-Knowledge loops framework

Framework to support the development and deployment of Autonomous (Self-Adaptive) Systems



Requirements

Key features

CONTAINMENT
Reuse, modularity and isolation of MAPE components as first-class entity.
COMMUNICATION INTERFACE (STANDARDIZATION)
Shared interface between components that allow stream communication, filtering, pre/post processing, data exchange communication and routing.
DISTRIBUTION
Multi-device distribution of MAPE loops and components.
DECENTRALIZED PATTERNS
Flat p2p and/or hierarchical architectures of loops and components with concerns separation. Allowing runtime pattern reconfiguration (stopping/starting, (un)linking, adding/removing).
NETWORK COMMUNICATION PARADIGMS
Different paradigms (blackboard, direct message) and protocols for various patterns interactions.
STATE / KNOWLEDGE
Distributed multi-scope (global, level, loop) Knowledge with partitioning and/or (full/partial async) replication.

Paradigms and tools

REACTIVE SYSTEM/PROGRAMMING AND STREAM
System reactive to external event. Pillars: Responsive, Resilient, Elastic and Message Driven. Specific case of event-driven programming to avoid callback hell.
REACTIVEX (OBSERVER PATTERN)
Observables represent a source of events. An observer subscribes to an observable to receive items emitted (Hot, Cold, Subject,etc). Pipe operators modify streams flowing through them.
ASYNCHRONOUS PROGRAMMING
Manage (I/O bound) tasks concurrency with non-blocking I/O operations.
REDIS, IN-MEMORY DATA STRUCTURE SERVER
Distributed, in-memory key-value data structure (strings, hashes, lists, (ordered) sets, queue, lock) store, cache and message broker with keyspace notifications. Partitioning and/or (full/partial async) replication.

Tip

If you already know what is a Self-Adaptive system, a MAPE-K loop and related patterns, jump to:

Installation