This repository holds engineering artifacts associated with the Munin project.
Munin is the nickname for an application called 'Protocol Verifier' (PV).
Fundamentally, the Protocol Verifier observes and confirms that a job running on a system under observation does what it was defined to do. On the flip side, the Protocol Verifier detects when a job running on a system under observation violates the protocol prescribed for it.
The PV verifies that units of work (jobs) running within a system are doing what they were designed to do and neither more nor less. "Are you doing what you said you are doing?"
The Protocol Verifier reports each job as finishing with status 'success', 'fail' or 'alarm'.
The Protocol Verifier and associated utilities are Open Source Software. You are welcome to fork, clone, raise issues and join in the collaboration.
-
Protocol Verifier Capabilities defines fundamental terms and gives a brief overview of what the PV can do. (It is recommended to visit this document and read the technical terms before looking at anything else.)
-
Munin Protocol Verifier is a 27 minute youtube video that was presented at the 2023 Shlaer-Mellor Day conference. It explains protocol verification, describes the Protocol Verifier and shows a running demonstration.
-
Audit Event Tutorial is an instructive slide presentation explaining the various means of observation and constraint application.
-
HOWTO Munin explains how to build (from source) and run the Protocol Verifier. (Warning, as of Summer 2024, it is a bit out of date.)
-
plus2json - PLUS to JSON git repository is a utility for converting PLUS (PlantUML) job definitions into the JSON format consumed by Protocol Verifier. This utility also runs in '--play' mode which interprets a job definition and produces a compliant stream of run-time audit events. In other words,
plus2json --play
can simulate any system under observation. -
PLUS (PlantUML) job definitions used for regression testing - These PLUS job definitions provide examples of all of the various topologies and constraints supported by the Protocol Verifier. (Edit them with a PlantUML capable editor to see the graphical representation.)