Rule Based Programming and Safety in Railway Control Systems

#Information Security (MA) #Institut für IT Sicherheitsforschung #Studierenden-Projekt

Es wurde Software für eine Modelleisenbahnanlage entwickelt. Dabei wurden Rule-Based Techniken verwendet, um den hohen Sicherheitsanforderungen eines Eisenbahnsteuerungssystems gerecht zu werden.

Rule Based Programming and Safety in Railway Control Systems

Der Schulungsraum der Ausbildungseinrichtung der ÖBB in Hart-Wörth besitzt eine Modelleisenbahnanlage, die sich über zwei Räume erstreckt und durch verschiedene Stellwerke gesteuert wird. Diese Anlage wird sowohl für den täglichen Unterricht als auch für Prüfungen (Fahrdienstleiter, Triebfahrzeugführer) genutzt und ist einer der wichtigsten Bestandteile des Ausbildungsprogramms. Auf Grund der laufenden Weiterentwicklung der Eisenbahnsteuerungstechnik war es notwendig, die Anlage den neuen Anforderungen anzupassen. Eine Anforderung war, eine möglichst realitätsnahe Benutzerschnittstelle zu implementieren, wie sie die SchulungsteilnehmerInnen in ihrer Berufspraxis auf einem österreichischen Bahnhof vorfinden werden. Dazu wurde das derzeit eingesetzte System als Modell genommen und entsprechende Vereinfachungen für den Schulbetrieb vorgenommen.

Die andere Anforderung bezog sich auf die hohen Sicherheitsanforderungen, wie sie im Eisenbahnwesen vorgegeben sind. Diesen wurde durch die Verwendung von Rule-Based Programmiertechniken Rechnung getragen. Dabei werden die Regeln, welche die Sicherheit des Betriebs gewährleisten, – etwa es darf nicht möglich sein, dass 2 Antriebsfahrzeuge denselben Streckenabschnitt gleichzeitig befahren, was beim Stellen von Weichen oder Signalen zu berücksichtigt werden muss – nicht direkt im Code des Programms implementiert, sondern in ein externes Regel-File ausgelagert. Um Regeln außerhalb des Source Codes zu formulieren und zu verwalten, wurde die Rule Engine „DRools“ eingesetzt. Diese Rule Engine basiert auf Charles Forgy’s Rete Algorithmus welcher in einer Version als .NET Library verwendet wurde. Der wesentliche Vorteil dieser Programmiertechnik besteht darin, dass die Regeln getrennt vom Programm erstellt und gewartet werden können (wozu Personal mit spezialisiertem Eisenbahnwissen, aber nicht notwendigerweise EDV-Wissen erforderlich ist). Andererseits liegen die Regeln dann in einer Art und Weise vor, die es ermöglicht, mit speziellen Theorem-Provern (halb-)automatisch bestimmte Sicherheitseigenschaften des Regelwerks formal zu beweisen.