Zum Inhalt springen
JelinaJelina DocumentationTechnische Dokumentation
Zur Website

Native Anwendungen und Programmsammlungen

An industriellen Standorten laufen viele Programme auf herkömmliche Weise: Datenerfassungsskripte, Daemons zur Protokollumsetzung oder Binärprogramme von Drittanbietern. Bisher wurden sie manuell gestartet, arbeiteten unabhängig voneinander und fielen mitunter unbemerkt aus. JelinaOS integriert sie in ein einheitliches deklaratives Verwaltungssystem: die Programmsammlung (ProgramSet). So profitieren auch bestehende Programme von konfigurationsbasierter Verwaltung, automatischer Fehlerbehebung und automatischem Start zusammen mit dem System.

Eine Programmsammlung umfasst mehrere nicht containerisierte Anwendungen. Jede Anwendung wird durch eine deklarative Konfiguration beschrieben:

  • Startverhalten: Befehl, Arbeitsverzeichnis und Ausführungsidentität;
  • Programmquelle: Das Programmpaket wird über die Download-Adresse in der Release-Konfiguration bezogen;
  • Betriebsrichtlinien: Neustartrichtlinie, Umgebungsvariablen und Stoppsignal;
  • Abhängigkeiten: Startreihenfolge, gegenseitiger Ausschluss sowie starke und schwache Abhängigkeiten;
  • Überwachungsfunktionen: Neustartbegrenzung, Beibehaltung des aktiven Zustands nach Prozessende sowie vor- und nachgelagerte Befehle.

Nach der Konfiguration werden die Anwendungen zentral vom System verwaltet. Startskripte müssen nicht manuell geschrieben werden.

Programmsammlungen werden über die Cloud oder die lokale Verwaltungsschnittstelle konfiguriert. Der Geräteagent übernimmt die Ausführung:

Zugang Einsatzbereich Beschreibung
Release aus der Cloud (empfohlen) Anbindung an JelinaCloud Programmsammlung beim Erstellen eines Releases deklarieren und zusammen mit dem Release an mehrere Geräte verteilen
Lokale Verwaltungsschnittstelle Lokale / isolierte Umgebung Zielkonfiguration über die lokale Verwaltungsschnittstelle des Geräts übermitteln

Das folgende Beispiel zeigt die Deklaration einer Programmsammlung in einem Cloud-Release. Das Programmpaket wird über eine Download-Adresse verteilt:

programs:
collector:
uri: http://files.example.com/collector/collector.tar.gz # Downloadadresse des Programmpakets
command: collector --config /data/collector.conf
running: true
restart: always
environment:
SITE_ID: plant-01
working_directory: /opt/collector
user: root
  • command: Startbefehl (Pflichtfeld);
  • running: Gibt an, ob das Programm ausgeführt werden soll; Standardwert: true;
  • restart: Neustartrichtlinie; always bewirkt einen automatischen Neustart nach unerwarteter Beendigung;
  • environment: Umgebungsvariablen;
  • working_directory: Arbeitsverzeichnis.
Einstellung Beschreibung
uri Download-Adresse des Programmpakets
command Startbefehl (Pflichtfeld)
running Gibt an, ob das Programm ausgeführt werden soll; Standardwert: true
restart Neustartrichtlinie: unter anderem no / on-failure / always
environment Umgebungsvariablen
working_directory Arbeitsverzeichnis
user / group Ausführungsidentität
after / before, wants / requires, conflicts Abhängigkeiten und Reihenfolge
Unter anderem start_limit_*, remain_after_exit, exec_start_* Überwachungs- und Wiederherstellungsverhalten

Die vollständige Feldbeschreibung finden Sie unter docker-compose-Kompatibilität und Erweiterungen.

Erweiterte Konfiguration: automatischer Systemstart und Bedingungsprüfungen

Abschnitt betitelt „Erweiterte Konfiguration: automatischer Systemstart und Bedingungsprüfungen“
programs:
myapp:
command: run.sh
restart: always
Install:
WantedBy: multi-user.target # Beim Systemstart automatisch starten
Unit:
ConditionPathExists: /data/app/config.json # Nur starten, wenn die Konfigurationsdatei vorhanden ist

Anwendungen einer Programmsammlung werden zentral vom Geräteagenten betreut und als Systemdienste ausgeführt. Bei der Überprüfung und Bedienung der Dienste gelten die Namensregeln des Systems. Die tatsächlichen Dienstnamen können Sie mit den Gerätestatusbefehlen ermitteln:

Terminal window
systemctl status <Dienstname-der-Programmsammlung> # Status anzeigen; tatsächlichen Dienstnamen auf dem Gerät prüfen
systemctl restart <Dienstname-der-Programmsammlung> # Neu starten
systemctl stop <Dienstname-der-Programmsammlung> # Anhalten
  • Herkömmliche Industrieprogramme: Moderne Verwaltung von Daemons für Datenerfassung, Steuerung und Kommunikation;
  • Skripte und Werkzeugketten: Vorübergehend eingesetzte Skripte in eine geregelte Verwaltung mit automatischer Wiederherstellung bei Fehlern überführen;
  • Hybride Architekturen: Zusammenarbeit mit Containeranwendungen innerhalb desselben Orchestrierungssystems.

Auswahl zwischen nativen Anwendungen und Containeranwendungen

Abschnitt betitelt „Auswahl zwischen nativen Anwendungen und Containeranwendungen“
Szenario Empfehlung
Direkter Hardwarezugriff und hohe Echtzeitanforderungen Native Anwendung (Programmsammlung)
Vorhandene herkömmliche Programme und hohe Sensibilität für Migrationskosten Native Anwendung (Programmsammlung)
Mehrere Programmiersprachen, viele Abhängigkeiten und erforderliche Umgebungsisolation Containeranwendung
Moderne Microservice-Architektur und schnelle Iteration Containeranwendung