1. Mehr Container an die (Modell-)Bahn!
Expertenkreis Java, 10.01.2019, GEDOPLAN
Dirk Weil, GEDOPLAN GmbH
2. Dirk Weil
GEDOPLAN GmbH, Bielefeld
GEDOPLAN IT Consulting
Consulting, coaching, concepts, reviews, development
GEDOPLAN IT Training
Java, JEE, tools trainings in Berlin, Bielefeld, on-site
JEE since 1998
Speaker and author
Mehr Container an die (Modell-) Bahn! 2gedoplan.de
4. v5t11
Visual Train Control
VT 11.5
http://commons.wikimedia.org/wiki/
File:601_Verkehrsmuseum_Nuernberg_11092010_complete_train.JPG
gedoplan.deMehr Container an die (Modell-) Bahn! 4
5. Aufgaben von V5T11
Visualisierung des Gleisplans.
Anzeige von Gleisbelegungen.
Reservieren und Freigeben von Fahrstraßen inklusive der dazu
nötigen Weichen- und Signalstellungen.
Keine (vollständige) Automatisierung des Fahrbetriebs!
gedoplan.deMehr Container an die (Modell-) Bahn! 5
7. Mehrzugsteuerung Selectrix
Keine getrennten Stromkreise
Loks enthalten
Decoder
erhalten Befehle
über die Gleisspannung
Geschwindigkeit, Richtung
Licht
Horn
…
gedoplan.deMehr Container an die (Modell-) Bahn! 7
9. Selectrix Adapter
Anbindung des Selectrix-Systems
Bidirektionaler Connector nach JCA 1.7
Outbound: Setzen und Abfragen von einzelnen Adressen
setValue(6, 0b01001110)
Geschwindigkeitsstufe 14
vorwärts
Licht an
Horn aus
gedoplan.deMehr Container an die (Modell-) Bahn! 9
10. Selectrix Adapter
Inbound: Melden von Zustandsänderungen
SelectrixMessage(90, 0b00100000)
Gleis 11
Gleis 12
Gleis 1
…
…
gedoplan.deMehr Container an die (Modell-) Bahn! 10
11. Selectrix Adapter
Zugriff auf serielle und parallele Schnittstellen
Java Communications 3.0:
uralt, stagniert
RXTX:
derzeit auf fizzed.com/oss/rxtx-for-java zu finden
benötigt Native Library
keine Implementierung für RaspPi
NRJavaSerial:
github.com/NeuronRobotics/nrjavaserial
RXTX-Fork
Native Librarys im JAR
gedoplan.deMehr Container an die (Modell-) Bahn! 11
12. Node 2
Node 1
Zielumgebung Kubernetes
Mehr Container an die (Modell-) Bahn! 12gedoplan.de
Deployment b
Pod b-1
C y
C z
Deployment a
Pod a-3
C x
RS a RS b
Pod a-2
C x
Pod a-1
C x
Svc a Svc b
Ingress a
Pod
ein Container, ggf. mehrere
Abstraktion eines Rechners
Node
„echter Rechner“
ReplicaSet
sorgt für n laufende Pods
Deployment
ergänzt RS um Rolling
Update
Service
feste IP-Adresse
Load Balancer
Ingress
Reverse Proxy
13. ModellbahnServices im Kubernetes-Cluster
Systemaufbau
Zentrale
SLX 850
Interface
66824
Besetzmelder
BMMiba 3
Weichendecoder
WDMiba 3
Lok-Control
66812
Lok-Decoder
DHL100etc.
Status - Gleisbelegungen,
Weichen-, Signalstellungen
- Lok-Zustände
- Message-Broker
- WAR + RAR auf WildFly 14
gedoplan.deMehr Container an die (Modell-) Bahn! 13
15. Systemaufbau
Probleme
Hardwareausfall RaspPi-Cluster
Multi-Architektur-Docker-Images (amd64, arm32v7)
nur eingeschränkt verfügbar
Instabilität der Comm-API auf RaspPi
Heute leider kein Pi-Cluster
Alternative: Docker for Windows
kein Zugriff auf Devices (Serienschnittstelle, USB, …)
Anbindung Serienschnittstelle über separaten Prozess v5t11-com-server
gedoplan.deMehr Container an die (Modell-) Bahn! 15