32 lines
2.5 KiB
Markdown
32 lines
2.5 KiB
Markdown
# Info
|
|
Hier sind die Antworten auf die Auflagen der IHK von meinem Ausbilder aufgelistet.
|
|
|
|
|
|
|
|
# 1. Hintergrund Ihrer Arbeit
|
|
Es geht um einen Materialflussrechner. Die Aufgabe befasst sich mit der Auflösung einer Race Condition zwischen zwei Prozessen beim Starten von Transporten im System.
|
|
|
|
# 2. Welche Prozesse sind beteiligt? Beschreiben Sie diese kurz.
|
|
Beteiligt sind die Prozesse ConveyorDispo und HostBooking.
|
|
Der ConveyorDispo disponiert Transporte, prüft Zielressourcen und deren Verfügbarkeit und startet Transporte. Außerdem übernimmt er das Scheduling mehrerer Transporte für denselben Ladungsträger.
|
|
Der HostBooking verarbeitet Nachrichten eines übergeordneten Host-Systems. Dabei legt er Transporte an und startet in bestimmten Fällen auch direkt Aufträge, zum Beispiel beim Rücktransport eines Behälters vom Arbeitsplatz ins Lager.
|
|
|
|
# 3. Was ist das Ziel der Prozesse?
|
|
Die Prozesse sollen Transporte bzw. Aufträge automatisch starten, damit kein manueller Eingriff erforderlich ist. Zusätzlich sollen sie die Anlage möglichst effizient auslasten und auf Vorgaben des übergeordneten Host-Systems reagieren.
|
|
|
|
# 4. Wer startet die Prozesse?
|
|
Beide Prozesse laufen permanent als Services im Hintergrund.
|
|
Der ConveyorDispo wird zyklisch ausgeführt und prüft in Echtzeit die aktuellen Transportmöglichkeiten der Anlage.
|
|
Der HostBooking wird durch eingehende Host-Nachrichten ausgelöst, die ebenfalls zyklisch aus der Datenbank gelesen werden.
|
|
|
|
# 5. Über welche Schnittstellen werden die Prozesse angesprochen?
|
|
Die Anbindung an das Host-System erfolgt über verschiedene Schnittstellen, zum Beispiel SAP IDoc, TCP/IP, Dateischnittstellen oder Webservices. Die eingehenden Daten werden in einer Datenbank bereitgestellt.
|
|
Der HostBooking liest diese Daten zyklisch aus der Datenbank und legt daraus Auftragsdatensätze an. Der ConveyorDispo greift ebenfalls auf diese Datenbanktabellen zu und startet Transporte, sobald die Bedingungen erfüllt sind.
|
|
|
|
# 6. Welches Problem tritt auf?
|
|
Wenn ein Behälter einen Arbeitsplatz verlässt und kein Transport in der Datenbank vorhanden ist, legt der HostBooking einen Transport an und startet diesen direkt.
|
|
Gleichzeitig kann durch Multithreading ein neuer Host-Auftrag eintreffen, der vom ConveyorDispo verarbeitet und ebenfalls gestartet wird.
|
|
Dadurch entstehen zwei aktive Transporte für denselben Ladungsträger.
|
|
|
|
# 7. Wie soll das Problem gelöst werden?
|
|
Die Lösung besteht darin, alle Auftragsstarts zentral im ConveyorDispo zu bearbeiten. Dadurch können Überschneidungen an einer Stelle erkannt und aufgelöst werden. |