Bei der ML4P-Verarbeitungspipeline handelt es sich um einen gerichteten Graphen, der aus voneinander entkoppelten ML4P-Softwarekomponenten besteht. Die ML4P-Komponenten setzen dabei zumeist auf offener und frei verfügbarer Software auf. Neben den internen ML4P-Komponenten für die Verarbeitung von Datenströmen (z. B. via Apache Kafka), die persistente Speicherung (z. B. in einer Zeitreihendatenbank) oder das Monitoring, können bereits vorhandene Tools über ML4P-Konnektoren an die ML-Pipeline angebunden werden. So kann die Datenerfassung von Maschinen und Anlagen bspw. über einen ML4P-Konnektor zu Industrie 4.0-Verwaltungsschale und OPC Unified Architecture (OPC UA) erfolgen.
Die IT-Architektur ist in Abbildung 1 dargestellt. Der*die Benutzer*in konfiguriert die gewünschte ML-Pipeline, die anschließend von der Komponente „Pipeline Manager“ geladen werden kann. Der „Pipeline Manager“ überprüft die Korrektheit der ML-Pipeline-Konfiguration und sucht nach den in der Konfiguration vorhandenen ML4P-Komponenten in ihm bekannten „Component Server“.
In der „Registry“ werden unter anderem Schemata für den Datenaustausch zwischen ML4P-Komponenten zur Verfügung gestellt. Über diese wird sichergestellt, dass unterschiedliche ML4P-Komponenten ausgetauschte Daten stets korrekt interpretieren
Auf der „Datenebene“ sind die in der ML-Pipeline-Konfiguration enthaltenen und über spezifizierte Schnittstellen miteinander verknüpften ML4P-Komponenten dargestellt. Die Verbindung zwischen ML4P-Komponenten verwendet je nach Konfiguration Apache Kafka oder https/ReST.
Grundbausteine sind Komponenten, die jeweils spezifische Funktionalität bereitstellen und die über Ports genannte Schnittstellen miteinander kommunizieren. Ports sind typisiert, d. h. Daten, die geschrieben oder gelesen werden, müssen den Anforderungen eines spezifizierten Datenschemas genügen.
Eine ML4P Anwendung besteht aus einem Netzwerk solcher Komponenten in einer Pipeline. Pipelines werden durch einen Supervisor gestartet, überwacht und angehalten. Pipelines werden in Form einer Spezifikation definiert.
Diese Struktur erlaubt ein Höchstmaß an Flexibilität. Komponenten können in verschiedenen Programmiersprachen geschrieben werden und auf verschiedenen Plattformen laufen und der Transport von Daten kann über verschiedene Transportkanäle erfolgen.