Architekturkonzept und Designaspekte einer...

185
Architekturkonzept und Designaspekte einer signaltechnisch nichtsicheren Kommunikationsplattform für sicherheitsrelevante Bahnanwendungen von Detlef Kendelbacher Dissertation zur Erlangung des Grades eines Doktors der Ingenieurwissenschaften - Dr. Ing. - Vorgelegt im Fachbereich 3 (Mathematik & Informatik) der Universität Bremen im September 2003

Transcript of Architekturkonzept und Designaspekte einer...

Page 1: Architekturkonzept und Designaspekte einer …elib.suub.uni-bremen.de/publications/dissertations/E-Diss835_dis... · matik der gewachsenen heterogenen Struktur der ... Im zweiten

Architekturkonzept und Designaspekte einer signaltechnisch nichtsicheren

Kommunikationsplattform für sicherheitsrelevante Bahnanwendungen

von Detlef Kendelbacher

Dissertation

zur Erlangung des Grades eines Doktors der Ingenieurwissenschaften

- Dr. Ing. -

Vorgelegt im Fachbereich 3 (Mathematik & Informatik) der Universität Bremen

im September 2003

Page 2: Architekturkonzept und Designaspekte einer …elib.suub.uni-bremen.de/publications/dissertations/E-Diss835_dis... · matik der gewachsenen heterogenen Struktur der ... Im zweiten

Datum des Promotionskolloquiums: 28.01.2004 Gutachter: Prof. Dr. Jan Peleska (Universität Bremen) Prof. Dr. Ute Bormann (Universität Bremen)

2

Page 3: Architekturkonzept und Designaspekte einer …elib.suub.uni-bremen.de/publications/dissertations/E-Diss835_dis... · matik der gewachsenen heterogenen Struktur der ... Im zweiten

3

zur Adaption des GSM/R-Systems an die ETCS-Zugsicherungskomponenten (OBU – On Board Unit im Fahrzeug; RBC – Radio Block Center auf der Streckenseite) verwendet.

1 Vorwort Die deutsche Bahn, wie auch viele andere Bahngesellschaften in Europa, stehen unter dem Druck, ihre Unternehmungen betriebswirtschaftlich zu optimieren. Zentrale Bedeutung kommt dabei einem integrierten Konzept zur effektiven und wirtschaftlichen Kommunikation der verschiedenen Bahndienste zu. Die europäischen Bahngesellschaften wollen für mobile Bahndienste das digitale Mobilfunksystem GSM/R (GSM-Railway), welches auf dem GSM-Standard basiert, einführen. Am Beispiel der Zugbeeinflussungssysteme im Regionalverkehr (RMV)- und Hochge-schwindigkeitsverkehr (HGV) sind in entsprechenden Forschungsprojekten (DIBMOF[1]; EIRENE[2]) technische Einsparungspotentiale aufgezeigt worden. Eine Schlüsselrolle spielt in diesen Systemansätzen die signaltechnisch sichere Kommunikation über offene Netze. Die notwendigen technischen Randbedingungen sind in europäischen Normen bzw. Normvor-schlägen (CENELEC[3]) und Standards (UNISIG[4]) festgelegt. Die bisher prototypisch realisierten Systeme sowohl für den HGV als auch für den RMV nutzen ausschließlich Dienste zur Übertragung von signaltechnisch sicheren Daten. Eine Diensteintegration, d.h. die gleichzeitige Übertragung von signaltechnisch sicheren und signal-technisch nichtsicheren Informationen, wird durch die standardisierten Protokollstacks zwar unter-stützt, bleibt aber späteren Produktphasen vorbehalten. Die konsequente Trennung von signaltechnisch sicheren und unterlagerten signaltechnisch nichtsicheren Funktionalitäten eröffnet neue Möglichkeiten in der Kommunikationsarchitektur von Bahnanwendungen. Die kostenintensive Entwicklung signaltechnisch sicherer Komponenten beschränkt sich auf die Realisierung der signaltechnisch sicheren Funktionalitäten in einer signaltechnisch sicheren Ablaufumgebung. Die Adaption der unterlagerten offenen Netze an die speziellen Belange der signaltechnisch sicheren Ablaufumgebung zur Übertragung sicherheitsrelevanter Informationen über ein signaltechnisch nichtsicheres Übertragungsmedium (grauer Kanal), stellt eine spezifische Problematik der oben erwähnten Systemansätze dar. Eine signaltechnisch nichtsichere Kommunikationsplattform als Vermittler zwischen Standard-lösungen aus der Kommunikationswelt und den speziellen Belangen der sicherheitsrelevanten Bahnanwendungen stellt eine notwendige und innovative Komponente zur Lösung des System-ansatzes der signaltechnisch sicheren Kommunikation über offene Netze dar. Die in dieser Arbeit vorgestellte signaltechnisch nichtsichere Kommunikationsplattform entstand im Rahmen der Systementwicklung Funkbasissystem (FBS) – Subsystem Kommunikation (FBS-K; Kommunikationsbasissystem – KBS) des Bereichs Transportation Systems der Siemens AG. Das Kommunikationsbasissystem fand im Forschungsprojekt DIBMOF als signaltechnisch nichtsicherer Kommunikationsrechner in Messsystemen zur GSM/R Nutzkanalanalyse (anwendungsbezogene Quality of Service Messungen) und in Präsentationssystemen Anwendung. Auf der FFB-Pilotstrecke Dissen-Brackwede (siehe [20]) wurde zur Demonstration des Funk Fahr Betriebes (FFB) im Rahmen der EXPO 2000 das Kommunikationsbasissystem in verschiedenen Ausprägungen zur Adaption des GSM/R-Systems an die Komponenten des FFB-Zugsicherungs-systems eingesetzt. Im ETCS 2000 System des Konsortiums AASSAA (ALCATEL und SIEMENS – siehe [21]) wird das Kommunikationsbasissystem in fahrzeug- und streckenseitiger Ausprägung

Page 4: Architekturkonzept und Designaspekte einer …elib.suub.uni-bremen.de/publications/dissertations/E-Diss835_dis... · matik der gewachsenen heterogenen Struktur der ... Im zweiten

Die Zugsicherungssysteme nutzen das Kommunikationsbasissystem zum Austausch kryptografisch

4

Bahnanwendungen sind für die Systementwicklung relevant. Dem Aspekt der sehr langen

gesicherter Zugsicherungsinformationen (z.B. Fahrtfreigaben). Das Kommunikationsbasissystem nutzt das unterlagerte GSM/R System als Übertragungsmedium. Das im Kapitel 4 dieser Arbeit vorgestellte Architekturkonzept wurden im Rahmen der System-entwicklung des Kommunikationsbasissystems vom Autor entworfen. An der Umsetzung der im Kapitel 5 beschriebenen Komponenten sowie an der Entwicklung der Test- und Konformitäts-nachweisstrategie war der Autor maßgeblich beteiligt. Die Entwicklung des Kommunikationsbasissystems wurde durch Anwendung unterschiedlicher Entwurfsstrategien bewältigt: Nutzung klassischer Betriebsmittel und Entwurfsmethoden Die im OS-Kernel-Bereich ablaufenden Softwarekomponenten der Kommunikationsplattform sind als SVR4-STREAMS-Module realisiert worden. Zur Vereinfachung der Lade- und Konfigurations-prozeduren der für die Kommunikationsplattform entwickelten SVR4-STREAMS-Module wurde eine spezielle Bibliothek (siehe 5.2.1) entwickelt. Die in den Kommunikationstasks der Kommunikationsplattform ablaufenden Vermittlungsfunktio-nen sind durch ereignisgetriebene Callback-Funktionen realisiert worden. Die Filedeskriptor-bezogene Multiple-Wait-Ereignisverwaltung der Kommunikationsplattform wird durch eine speziell entwickelte Bibliothek (siehe 5.2.2) organisiert. Systemspezifische Erweiterungen abstrakter Betriebsmittel Die im Rahmen der Entwicklung des Kommunikationsbasissystems erstellte USER-STREAM-Ablaufumgebung (siehe 5.3.3) stellt eine Nachrichten- und Warteschlangen- orientierte Basis zur effektiven Realisierung von Kommunikationsprotokollen im USER-SPACE dar. Die Vermittlungs- und Protokolllogik des Kommunikationsbasissystems wird durch ereignisge-koppelte Zustandsautomaten organisiert. Es kamen unterschiedliche, den speziellen Randbe-dingungen angepasste, Automatenvarianten (siehe 5.3.1) als Bibliotheken zur Anwendung. Zur hierarchisch organisierten Parameterkodierung von Vermittlungsprimitiven wurden spezielle Bibliotheksfunktionen (siehe 5.3.2) entwickelt. Problemspezifische Lösungen Zur Kopplung an signaltechnisch sichere Rechner wurde ein an die spezifischen Bedürfnisse angepasstes Protokoll (siehe 4.7.2) entworfen und als USER-STREAM-Protokollstack realisiert. Bei Verwendung der Kommunikationsplattform als hoch verfügbarer Vermittlungsrechner (siehe 4.7.1) setzt das Redundanzmanagement auf spezielle Eigenschaften des Koppelprotokolls auf. Das Kapitel 3 „Einleitung: Besondere Anforderungen sicherheitsrelevanter Bahnanwendun-gen an unterlagerte nichtsichere Kommunikationsdienste“ beleuchtet die spezifische Proble-matik der gewachsenen heterogenen Struktur der Kommunikationsdienste sicherheitsrelevanter Bahnanwendungen am Beispiel der Deutschen Bahn. Es werden allgemeingültige Forderungen bezüglich Funktionalität und Eigenschaften wie Zuver-lässigkeit und Robustheit von Hardware und Software vorgestellt. Die Bedeutung betriebswirtschaftlicher Forderungen nach Integration von Standardlösungen für Standardfunktionen sowie die kostengünstige Integration nichtsicherer Zusatzdienste wird zukünf-tig weiter zunehmen. Forderungen nach Interoperabilität, Migration und Adaption vorhandener gewachsener Strukturen bei gleichzeitiger Erfüllung eines europaweit gültigen Standards für

Page 5: Architekturkonzept und Designaspekte einer …elib.suub.uni-bremen.de/publications/dissertations/E-Diss835_dis... · matik der gewachsenen heterogenen Struktur der ... Im zweiten

Verwendung eingeführter Systeme mit den entsprechenden Lieferverpflichtungen wird Rechnung

5

funktionalität, sowie der prinzipielle Aufbau des Vermittlungskerns für verbindungsorientierte

getragen. Im zweiten Teil dieses Kapitels wird auf die Anforderungen eingegangen, die sich speziell durch die Verwendung einer einkanaligen signaltechnisch sicheren Datenübertragung über offene Netze ergeben. Stellvertretend für sicherheitsrelevante Bahnanwendungen wird auf den Funk Fahr Betrieb (FFB) mit seinen hohen Forderungen an die Skalierbarkeit (z.B. bezüglich Gruppensteuerung) eingegangen. Spezielle Eigenschaften der Kopplung einer signaltechnisch nichtsicheren Kommunikations-plattform als Bestandteil des „grauen“ Kanals an mehrkanalige redundante signaltechnisch sichere Rechner und die damit verbundenen Forderungen nach Rückwirkungsfreiheit auf signaltechnisch sichere Funktionen von Hardware (z.B. EMV) und Software (Protokolltechnik; Identifikation & Authentifikation) schließen das Anforderungskapitel ab. Das Kapitel 4 „Gatewayarchitektur der Kommunikationsplattform“ stellt eine Lösung vor, welche den im vorhergehenden Kapitel aufgeführten Forderungen prinzipiell gerecht wird. Im Einzelnen wird die weitestgehende Entkopplung der vom jeweils verwendeten Betriebssystem zur Verfügung gestellten Betriebsmittel über ein Schalenmodell vorgestellt, wodurch Forderungen nach Skalierbarkeit und langfristiger Wiederverwendbarkeit, auch über einen Wechsel des Betriebssystems bzw. der Hardware hinaus, in einem sehr hohen Maße abgedeckt werden. Es wird ein einheitliches schichtenförmiges Gatewaymodell mit verschiedenen Kommunikations-stacks beschrieben, welches der Forderung nach Integration in heterogenen Netzwerkumgebungen und Adaption von teilweise sehr unterschiedlichen Kommunikationsanforderungen verschiedener Bahnapplikationen gerecht wird. Die prinzipiellen Varianten der internen Kommunikationsarten innerhalb des Gatewaymodells werden vorgestellt. Im letzten Teil dieses Kapitels wird die Architektur der Kommunikationsplattform zur Realisierung von Rechner-Redundanz bzw. zur Verteilung der Vermittlungslast in Clustern von Vermittlungs-knoten beleuchtet. Das Kapitel 5 „Designaspekte“ stellt auf Basis der im vorhergehenden Kapitel getroffenen Architekturfestlegungen prinzipielle Designansätze für Kommunikationssoftware am Beispiel der realisierten signaltechnisch nichtsicheren Kommunikationsplattform dar, mit deren Hilfe die geforderten Basiseigenschaften realisiert werden können. Im ersten Teil des Kapitels wird der schichtenweise Aufbau der betriebssystemabhängigen Betriebs-mittel sowie eine betriebssystemunabhängige Ablaufumgebung vorgestellt. Es werden die Vorteile der ausgewählten Realisierung den Nachteilen gegenübergestellt. Am Beispiel der ISDN (S2M) – Kopplung der nichtsicheren Kommunikationsplattform für den FFB wird gezeigt, welche Kom-ponenten ungekapselt im Firmware/Kernelbereich ablaufen und welche Protokollschichten betriebssystemunabhängig realisiert werden konnten. Im zweiten Teil des Kapitels werden zwei Beispiele für Betriebssystem-unabhängige Abstraktionen von Betriebsmitteln vorgestellt. Die Betriebsmittel „Zustandsautomat“ und „ASN-Kodierung (Ab-stract Syntax Notation)“ werden dargelegt. Im dritten Teil des Kapitels wird der interne Nachrichtenaufbau der Kommunikationsplattform beleuchtet. Es wird die Nachrichtenstruktur des Streamsmodells als Träger von Protokollprimitiven sowie deren Parameterstrukturierung am Beispiel des TR-Interfaces vorgestellt. Der vierte Teil des Kapitels beschäftigt sich mit der Protokoll- und Vermittlungslogik der Kommunikationsplattform. Es wird der prinzipielle Aufbau einfacher Kommunikationsmodule als Träger von Protokollschichten ohne Vermittlungsfunktionalität und, darauf aufbauend, der prinzipielle Aufbau komplexer Kommunikationsmultiplexer mit statischer Vermittlungs-

Page 6: Architekturkonzept und Designaspekte einer …elib.suub.uni-bremen.de/publications/dissertations/E-Diss835_dis... · matik der gewachsenen heterogenen Struktur der ... Im zweiten

Kommunikation dargestellt. Besondere Aspekte des Adressmanagements, wie beispielsweise die dynamische Nachführung von Adressverzeichnissen in mobilen Entitäten schließen diesen Teil ab. Im Kapitel 6 „Test/Validierung“ wird die Teststrategie zur Validierung der Kommunikations-plattform näher beleuchtet. Am Beispiel des in der Kommunikationsplattform realisierten EURORADIO – Protokollstacks nach UNISIG [4] wird beschrieben, welche Randbedingungen in der Architektur und Designphase beachtet werden sollten, um ein effektives Testen in der Integrationsphase zu ermöglichen. Im zweiten Teil dieses Kapitels werden wesentliche Aspekte des Testkonzepts der Kommunikationsplattform erläutert. Auf Basis des geforderten Lastmodells mit stochastischen Komponenten und den gegebenen Schnittstelleneigenschaften am Nutzerinterface werden geeignete Testszenarien definiert. Im dritten Teil dieses Kapitels wird die Testumgebung für die einfachen Vortests mit lokaler nichtsynchronisierter Steuerung sowie die komplexeren Tests, gesteuert durch ein Echtzeittestsystem, vorgestellt. Die Vorgehensweise bei der Auswertung der Tests wird im letzten Teil des Kapitels behandelt. Im Kapitel 7 „Zusammenfassung und Ausblick“ werden die möglichen Potentiale des in den vorangegangenen Kapiteln beschriebenen Konzeptes aufgezeigt. Es wird gezeigt, wie die diensteintegrierende Kommunikationsplattform eine applikationsunab-hängige Verwaltung beschränkter Netzressourcen unter den speziellen Randbedingungen der Bahnanwendungen bereitstellt. Auch die Unterstützung weiterer komplexer Netzeigenschaften (z.B. dynamische Bandbreitenanforderung wie im ATM) kann unabhängig und ohne spezielle Funktionalitäten in den einzelnen Bahnanwendungen erfolgen. Durch Nutzung dieser Technologie ist es möglich, Standarddienstzugänge (z.B. webserverbasierte Diagnose) für spezifische (proprietäre) Bahnanwendungen effektiv zu realisieren.

6

Page 7: Architekturkonzept und Designaspekte einer …elib.suub.uni-bremen.de/publications/dissertations/E-Diss835_dis... · matik der gewachsenen heterogenen Struktur der ... Im zweiten

7

4.7 DIE GRUNDSTRUKTUR DER KOMMUNIKATIONSTASK............................................................................................. 56 4.7.1 Vermittlungscluster........................................................................................................................................ 59

2 Inhaltsverzeichnis

1 VORWORT.................................................................................................................................................................. 3

2 INHALTSVERZEICHNIS.......................................................................................................................................... 7

3 EINLEITUNG: BESONDERE ANFORDERUNGEN SICHERHEITSRELEVANTER BAHNANWENDUNGEN AN UNTERLAGERTE NICHTSICHERE KOMMUNIKATIONSDIENSTE .......... 11

3.1 ALLGEMEINE ANFORDERUNGEN............................................................................................................................ 11 3.1.1 Betriebszulassung .......................................................................................................................................... 11

3.1.1.1 Systemumgebung Streckeneinrichtung...................................................................................................................... 11 3.1.1.1.1 Umweltbedingungen .......................................................................................................................................... 12 3.1.1.1.2 Stromversorgung................................................................................................................................................ 13 3.1.1.1.3 EMV-Bedingungen............................................................................................................................................ 14

3.1.1.2 Systemumgebung Fahrzeugeinrichtung und dezentrale Streckeneinrichtung............................................................ 14 3.1.1.2.1 Umweltbedingungen .......................................................................................................................................... 14 3.1.1.2.2 Stromversorgung................................................................................................................................................ 17 3.1.1.2.3 EMV-Bedingungen............................................................................................................................................ 17

3.1.2 Organisatorische Randbedingungen ............................................................................................................. 18 3.1.3 Kommunikationsanforderungen des Funk Fahr Betriebes ............................................................................ 19

3.1.3.1 GSM/R ...................................................................................................................................................................... 19 3.1.3.2 Kommunikationsverhalten der FFB-Applikation ...................................................................................................... 22

3.1.3.2.1 Charakteristik der Kommunikation Zentrale - Fahrzeuge/Fahrwegelemente ..................................................... 25 3.1.3.2.2 Charakteristik der Kommunikation Fahrzeug - Fahrwegelemente ..................................................................... 25 3.1.3.2.3 Kommunikationslast zwischen Fahrzeug und Fahrwegelementen ..................................................................... 28

3.1.3.3 Lastmodell................................................................................................................................................................. 28 3.1.3.4 Performanzanforderungen ......................................................................................................................................... 29

3.2 ANFORDERUNGEN BEI VERWENDUNG EINER EINKANALIGEN SIGNALTECHNISCH SICHEREN DATENÜBERTRAGUNG ÜBER OFFENE NETZE ................................................................................................................................................... 34

3.2.1 EURORADIO Sicherungsverfahren .............................................................................................................. 35 3.3 ANFORDERUNGEN DURCH KOPPLUNG EINER SIGNALTECHNISCH NICHTSICHEREN KOMMUNIKATIONSPLATTFORM AN MEHRKANALIG REDUNDANTE SIGNALTECHNISCH SICHERE RECHNER .......................................................................... 36

3.3.1 Mehrkanalig redundante signaltechnisch sichere Rechner ........................................................................... 36 3.3.2 Struktur Koppelprotokoll ............................................................................................................................... 38

3.3.2.1 Linkebene.................................................................................................................................................................. 38 3.3.2.2 Virtuelle Linkebene................................................................................................................................................... 39 3.3.2.3 Redundante Kopplung............................................................................................................................................... 39

3.3.3 Rückwirkungsfreiheit bei einkanalig signaltechnisch sicherer Datenübertragung ....................................... 41 3.3.3.1 Bedrohung durch den grauen Kanal .......................................................................................................................... 41 3.3.3.2 Bedrohung durch Nichtverfügbarkeit der Kommunikation ....................................................................................... 42 3.3.3.3 Bedrohung durch physikalische Einflüsse................................................................................................................. 43

4 GATEWAYARCHITEKTUR DER KOMMUNIKATIONSPLATTFORM ....................................................... 45 4.1 LÖSUNGEN FÜR DEN KOMMUNIKATIONSENGPASS FAHRZEUG - FAHRWEGELEMENTE............................................ 45 4.2 KOMMUNIKATIONSBEZIEHUNGEN.......................................................................................................................... 46

4.2.1 Einzelelemente ............................................................................................................................................... 47 4.2.2 Zentrale Gruppensteuerung........................................................................................................................... 47 4.2.3 Dezentrale Gruppensteuerung....................................................................................................................... 48

4.3 BASISENTSCHEIDUNGEN ........................................................................................................................................ 49 4.4 DAS SCHALENMODELL DER BETRIEBSMITTEL ....................................................................................................... 50 4.5 DAS SCHICHTENMODELL DER KOMMUNIKATIONSSTACKS ..................................................................................... 52 4.6 VARIANTEN INTERNER KOMMUNIKATIONSBEZIEHUNGEN...................................................................................... 55

4.6.1 Verbindungsorientierte Kommunikation........................................................................................................ 55 4.6.2 Interprozesskommunikation ........................................................................................................................... 56 4.6.3 Verbindungslose Kommunikation .................................................................................................................. 56

Page 8: Architekturkonzept und Designaspekte einer …elib.suub.uni-bremen.de/publications/dissertations/E-Diss835_dis... · matik der gewachsenen heterogenen Struktur der ... Im zweiten

4.7.2 Koppelprotokoll der Kommunikationsplattform ............................................................................................ 61

8

6.3.4 Testfall ......................................................................................................................................................... 1406.3.5 Testszenario ................................................................................................................................................. 141

4.7.2.1 Redundanz und Verteilung der Vermittlungslast ...................................................................................................... 63 4.7.2.2 Setupphase ................................................................................................................................................................ 63 4.7.2.3 Die VL-Protokollschicht ........................................................................................................................................... 66

4.7.2.3.1 Protokolldateneinheiten ..................................................................................................................................... 66 4.7.2.3.2 Funktionen ......................................................................................................................................................... 66 4.7.2.3.3 Struktur und Kodierung der VL-PDU´s............................................................................................................. 67 4.7.2.3.4 Zustände und Ereignisse .................................................................................................................................... 69 4.7.2.3.5 Timings VL-Schicht........................................................................................................................................... 71

4.7.2.4 Lastbalance................................................................................................................................................................ 77 5 DESIGNASPEKTE ................................................................................................................................................... 79

5.1 KAPSELUNG DES OS .............................................................................................................................................. 79 5.2 OS - ABHÄNGIGE BETRIEBSMITTEL........................................................................................................................ 80

5.2.1 KS-Modul....................................................................................................................................................... 80 5.2.2 Multiple-Wait-Ereignisverwaltung ................................................................................................................ 84 5.2.3 Zeitereignisverwaltung .................................................................................................................................. 87 5.2.4 Prozesssignalverwaltung ............................................................................................................................... 89 5.2.5 Vermeidung der Nebenläufigkeit in der Ereignisverwaltung......................................................................... 89

5.3 OS - UNABHÄNGIGE BETRIEBSMITTEL................................................................................................................... 91 5.3.1 Statemaschine ................................................................................................................................................ 91

5.3.1.1 Fest kodierte Automaten ........................................................................................................................................... 92 5.3.1.2 Zur Laufzeit kodierte Automaten .............................................................................................................................. 98

5.3.2 ASN – Primitiven – Parameterkodierung an externen Schnittstellen .......................................................... 103 5.3.3 USER-STREAM ........................................................................................................................................... 106

5.3.3.1 USER-STREAM Channel API................................................................................................................................ 108 5.3.3.2 Managementfunktionen........................................................................................................................................... 109 5.3.3.3 Nachrichtenaufbau .................................................................................................................................................. 113 5.3.3.4 Anwendungsbeispiel ............................................................................................................................................... 116 5.3.3.5 Vergleich USER STREAM – SVR4 Streams ......................................................................................................... 120

5.4 VERMITTLUNGSFUNKTIONALITÄTEN.................................................................................................................... 122 5.4.1 Einfache Kommunikationsmodule ............................................................................................................... 122 5.4.2 Kommunikationsmultiplexer mit statischer Vermittlungsfunktionalität....................................................... 123 5.4.3 Vermittlungskern für verbindungsorientierte Kommunikation .................................................................... 125 5.4.4 Adressmanagement ...................................................................................................................................... 126

6 TEST / VALIDIERUNG ......................................................................................................................................... 131 6.1 METHODEN DER VALIDIERUNG............................................................................................................................ 131

6.1.1 Funktions- und Black-Box-Tests.................................................................................................................. 131 6.1.1.1 Tests im Rahmen der Entwicklung FBS-K.............................................................................................................. 131 6.1.1.2 Tests im Rahmen der Verifikation FBS-K .............................................................................................................. 131 6.1.1.3 Tests im Rahmen der Integration und Validierung FBS-K ..................................................................................... 132 6.1.1.4 Grenzwertanalyse .................................................................................................................................................... 132

6.1.2 Leistungstests............................................................................................................................................... 132 6.1.2.1 Avalanche-/Belastungstests ..................................................................................................................................... 132 6.1.2.2 Antwortzeiten .......................................................................................................................................................... 132 6.1.2.3 Speichergrenzen ...................................................................................................................................................... 132

6.2 TESTMANAGEMENT ............................................................................................................................................. 133 6.2.1 Komponenten der Testumgebung ................................................................................................................ 133 6.2.2 Komponenten des Prüflings......................................................................................................................... 134 6.2.3 Varianten des Prüflings ............................................................................................................................... 134 6.2.4 Auswertekonzept .......................................................................................................................................... 134

6.3 GRUNDLAGEN...................................................................................................................................................... 136 6.3.1 Überblick ..................................................................................................................................................... 136 6.3.2 Testschritt .................................................................................................................................................... 137 6.3.3 Testkonfiguration......................................................................................................................................... 137

6.3.3.1 Aktivierungsscript ................................................................................................................................................... 139 6.3.3.2 Testzugangskonfiguration und Zugangslabel .......................................................................................................... 139

Page 9: Architekturkonzept und Designaspekte einer …elib.suub.uni-bremen.de/publications/dissertations/E-Diss835_dis... · matik der gewachsenen heterogenen Struktur der ... Im zweiten

6.4 TESTSZENARIEN .................................................................................................................................................. 144 6.4.1 Testszenario 1/ CON_OK_A (Signalisierung) ............................................................................................. 144 6.4.2 Testszenario 2/ CON_OK_B (Signalisierung) ............................................................................................. 145 6.4.3 Testszenario 3/ CON_NOT_OK_B (Signalisierung).................................................................................... 146 6.4.4 Testszenario 4/ CON_NOT_OK_A (Signalisierung).................................................................................... 147 6.4.5 Testszenario 5/ CON_NOT_OK_N (Signalisierung) ................................................................................... 148 6.4.6 Testszenario 6/ CON_DATA (Datenphase) ................................................................................................. 149 6.4.7 Testszenario 7/ CON_ALL (gemischtes Szenario) ....................................................................................... 150

6.5 KOMPATIBILITÄTS- UND EINGESCHRÄNKTE KONFORMITÄTSNACHWEISSTRATEGIE.............................................. 150 6.5.1 Konfiguration des Prüflings ........................................................................................................................ 151 6.5.2 Randbedingungen ........................................................................................................................................ 153 6.5.3 Beaufschlagung mit Messszenarien ............................................................................................................. 154 6.5.4 Messpunkte im EURORADIO-Stack ............................................................................................................ 154 6.5.5 Realisierung der Messpunkte....................................................................................................................... 156 6.5.6 Statische Konformitätsanalyse..................................................................................................................... 158 6.5.7 Dynamische Konformitätsanalyse ............................................................................................................... 159 6.5.8 Ableitung von Prüfanforderungen ............................................................................................................... 159 6.5.9 Zustandsbezogene Konformitätskriterien .................................................................................................... 160

6.5.9.1 Struktur der gekoppelten Zustandsautomaten zur Überwachung der dynamischen Konformitätsregeln................. 160 6.5.9.2 Zustandsüberwachung Linkstatus HDLC................................................................................................................ 162

6.5.9.2.1 Zustandsübergangsmatrix ................................................................................................................................ 162 6.5.9.2.2 Transitionsbezogene Prüfaktivitäten ................................................................................................................ 163

6.5.9.3 Zustandsüberwachung sendeseitige Flusskontrolle ................................................................................................. 164 6.5.9.3.1 Zustandsübergangsmatrix ................................................................................................................................ 165 6.5.9.3.2 Transitionsbezogene Prüfaktivitäten ................................................................................................................ 165

6.5.9.4 Überwachung von Zeitkriterien............................................................................................................................... 166 7 ZUSAMMENFASSUNG UND AUSBLICK.......................................................................................................... 167

7.1 ZUSAMMENFASSUNG ........................................................................................................................................... 167 7.2 ZUSÄTZLICHE GATEWAYFUNKTIONALITÄTEN...................................................................................................... 168

7.2.1 Verteilung von Managementinformationen ................................................................................................. 168 7.2.1.1 Kommunikationsapplikation zum dynamischen Adressmanagement...................................................................... 169 7.2.1.2 Kommunikationsapplikation zum dynamischen Schlüsselmanagement.................................................................. 170

7.2.2 HTTP – basierte Ansteuerung...................................................................................................................... 171 7.3 ERWEITERUNG DER KONFORMITÄTSNACHWEISSTRATEGIE .................................................................................. 173

8 BEGRIFFE UND ABKÜRZUNGEN ..................................................................................................................... 175

9 NORMEN UND STANDARDS .............................................................................................................................. 181

10 LITERATURANGABEN...................................................................................................................................... 183

9

Page 10: Architekturkonzept und Designaspekte einer …elib.suub.uni-bremen.de/publications/dissertations/E-Diss835_dis... · matik der gewachsenen heterogenen Struktur der ... Im zweiten

10

Page 11: Architekturkonzept und Designaspekte einer …elib.suub.uni-bremen.de/publications/dissertations/E-Diss835_dis... · matik der gewachsenen heterogenen Struktur der ... Im zweiten

3 Einleitung: Besondere Anforderungen sicherheitsrelevanter

Bahnanwendungen an unterlagerte nichtsichere

Kommunikationsdienste

3.1 Allgemeine Anforderungen

3.1.1 Betriebszulassung

Um eine technische Komponente auf Fahrzeugen, in Streckeneinrichtungen oder im Stellwerk der DB AG betreiben zu können, wird eine allgemeine Betriebszulassung benötigt, auch wenn die zu betreibende Komponente keine signaltechnische Sicherheitsverantwortung trägt. Bei der Ent-wicklung der Software einer Komponente ohne Sicherheitsverantwortung sind entsprechend [EN 50128] folgende Minimalforderungen zu beachten:

• Übereinstimmung mit [EN ISO 9000-3] • Qualitätssicherungssystem • Konfigurationsmanagement

Die Betriebszulassung ist verbunden mit dem Nachweis der zufriedenstellenden Funktion und anderer Eigenschaften wie z.B. Verfügbarkeit, Umwelteigenschaften und Wartbarkeit der Komponente unter definierten äußeren Randbedingungen. Weiterhin muss gezeigt werden, dass eine ausreichende Rückwirkungsfreiheit (mechanisch, thermisch, elektro-magnetisch) auf andere Komponenten gewährleistet ist. Die Rückwirkungsfreiheit der Software von signaltechnisch nichtsicheren Komponenten (z.B. durch Kommunikationsprotokolle auf gemeinsamen Schnittstellen) auf Komponenten mit Sicherheitsverantwortung muss von den Komponenten mit Sicherheitsverantwortung gewährleistet werden (in Abweichung zur Luftfahrtnorm [RTCA DO 178B] ist die Rückwirkungsfreiheit der Software von signaltechnisch nichtsicheren Komponenten des Bahnbetriebes durch die Komponenten mit Sicherheitsverantwortung sicherzustellen und nachzuweisen). Dadurch wird verhindert, dass sich Fehler in den signaltechnisch sicheren Kompo-nenten ausbreiten. Andere europäische Bahngesellschaften haben ähnliche Zulassungsverfahren. Im Rahmen der europäischen Standardisierung wird angestrebt, eine gegenseitige Anerkennung der Betriebs-zulassung der verschiedenen Bahngesellschaften zu ermöglichen. Aus den in den nächsten Kapiteln beschriebenen Umgebungsanforderungen wird erkennbar, dass signaltechnisch nichtsichere Komponenten mit Standardlösungen aus der Industrieautomatisierung (z.B. Industrie PC) im Stellwerksbereich ohne größere Probleme eingesetzt werden können. Komponenten auf dem Fahrzeug unterliegen sehr harten Anforderungen speziell im Temperaturbereich und in der Schwingbeanspruchung. Diese Komponenten sind auch im signaltechnisch nichtsicheren Bereich in der Regel angepasste Spezialanfertigungen um eine ausreichend hohe Zuverlässigkeit und Verfügbarkeit garantieren zu können.

3.1.1.1 Systemumgebung Streckeneinrichtung

11

Die im FFB eingesetzte Streckenzentrale (siehe Abbildung 2) weist neben mehreren signaltechnisch sicheren Rechnern auch signaltechnisch nichtsichere Rechnerkomponenten für die Kommunikation

Page 12: Architekturkonzept und Designaspekte einer …elib.suub.uni-bremen.de/publications/dissertations/E-Diss835_dis... · matik der gewachsenen heterogenen Struktur der ... Im zweiten

auf (siehe 3.1.3.2). Sie ist in der Regel in einem klimatisierten Bahngebäude (z.B. Stellwerks-

12

• hoher Luftdruck 106 kPa

gebäude) untergebracht. Für die FFB-Zentrale gelten folgende Umweltanforderungen:

3.1.1.1.1 Umweltbedingungen

Umgebungstemperatur der Baugruppen Durch die beim Betrieb auftretende Erwärmung dürfen die zulässigen Grenztemperaturen der Betriebsmittel nicht überschritten werden. Die Umweltbedingungen des Verschmutzungsgrades 1 [DIN VDE 0110] sollen eingehalten werden. Umgebungstemperatur Rechnerrahmen und Schrank Für den Schaltschrank muss eine Umgebungstemperatur (gemessen am Lufteintritt unterster Baugruppenträger) von + 5°C ... + 40°C festgelegt werden. Durch die beim Betrieb auftretende Erwärmung können die zulässigen Grenztemperaturen der Betriebsmittel nicht überschritten werden. Mit der oben angegebenen Umgebungstemperatur sollen die Anforderungen nach [EN 60721] (Gebäude innen für Umgebungstemperaturen +5°/+40°C) erfüllt werden. Luftfeuchte, Staubgehalt und schädliche Gase Temperatur in Grad Celsius relative Luftfeuchte in

% 5 15 – 85 22 5 – 85 28 5 – 85 40 5 – 50

Tabelle 1: Relative Luftfeuchte

Die Tabelle für die relative Luftfeuchte gilt für in einem Gebäude aufgestellte Rechner für eine Umgebungstemperatur von +5°C bis +40°C nach [EN 60721]. Eine höhere Luftfeuchte darf nach [Mü8004] bei niedrigen Temperaturen kurzzeitig auftreten. z.B. 90% bei +20°C. Sand 30 mg/m3 Staub (Schwebstoffgehalt) 0,2 mg/m3 Staub (Niederschlag) 1,5 mg/(m2 x h)

Tabelle 2: Staubgehalt nach [EN 60721]

Der Schadstoffgehalt in den Betriebsräumen soll die Werte in [EN 60721] nicht überschreiten. Höhenlage Auslegung nach [DIN VDE 804] und [EN 50123] für den ortsfesten Einsatz von -120 m bis 2000 m über NN, Druckausgleich mit der umgebenden Atmosphäre.

• niedriger Luftdruck 70 kPa

Page 13: Architekturkonzept und Designaspekte einer …elib.suub.uni-bremen.de/publications/dissertations/E-Diss835_dis... · matik der gewachsenen heterogenen Struktur der ... Im zweiten

Fremderschütterung

13

ristik erforderlich.

Für stationäre Geräte können sinusförmige Schwingbelastungen nach [EN 60721] auftreten. Amplitude der Auslenkung 1,5 mm - Amplitude der Beschleunigung - 5 m/s2 Frequenzbereich 2 - 9 Hz 9 - 200 Hz

Tabelle 3: Sinusförmige Schwingbelastungen

Dieses gilt für Einsatzorte ohne ausgeprägten oder nur mit geringem Schwingungspegel. Schock-Antwort-Spektrum Typ L Spitzenbeschleunigung à Dauer

40 m/s2 22 ms

Tabelle 4: Stöße nach [EN 60721]

Dies gilt für Einsatzorte ohne ausgeprägte Stoßbeschleunigung und für Einsatzorte, an denen geringe Stoßbeschleunigungen auftreten. Falls die Belastungen zu Fremderschütterungen von der Komponente nicht erfüllt werden können, ist vom EBA eine Sondergenehmigung für die verwendete Rechnerkonfiguration erforderlich. Diese Sondergenehmigung ist vom Hersteller zu beantragen und zu begründen. Grenzwerte Innerhalb der zulässigen Grenzwerte wird die Zuverlässigkeit gewährleistet. Das kurzzeitige Erreichen der zugelassenen Grenzwerte soll nicht zur Einschränkung der Zuverlässigkeit der Anlagen führen. Nur ständiger oder langfristiger Betrieb an den Grenzwerten oder außerhalb der Grenzwerte darf zu Zuverlässigkeitsminderung führen. Um solche Zuverlässigkeitsminderungen zu vermeiden, sind zwischen Errichter und Betreiber Maßnahmen zur Verhinderung derartiger Betriebszustände zu vereinbaren. Schutzart Der Standardschrank ist nach der Schutzklasse IP20 entsprechend [DIN VDE 0470] auszulegen.

3.1.1.1.2 Stromversorgung

Für den Anschluss der Hauptstromversorgung an das Stromversorgungsnetz gelten grundsätzlich die einschlägigen Vorschriften von [DIN VDE 0100] und die technischen Anschlussbedingungen der örtlichen Stromversorgungsunternehmen. Außerdem sind die zutreffenden Arbeitsschutz- und Unfallverhütungsvorschriften zu beachten. Die Hauptstromversorgung muss so beschaffen sein, dass ein bestimmungsgemäßer (hier: hochverfügbarer) Betrieb der Anlage möglich ist. Aus diesem Grund muss eine unterbrechungsfreie Stromversorgung eingesetzt werden. Die Stromversorgung ist nach [DIN VDE 800], [DIN VDE 0831] auszulegen. Die Kommunikationsplattform ist für eine unterbrechungsfreie Stromversorgung von 230 V Wechselspannung auszulegen. Eine Versorgung mit weiteren Spannungen (z.B. Gleichspannung 60 V) ist auf Wunsch zu ermöglichen. Als Leitungsschutz ist eine träge Schmelzsicherung oder ein Sicherungsautomat mit C-Charakte-

Page 14: Architekturkonzept und Designaspekte einer …elib.suub.uni-bremen.de/publications/dissertations/E-Diss835_dis... · matik der gewachsenen heterogenen Struktur der ... Im zweiten

3.1.1.1.3 EMV-Bedingungen

Zur Gewährleistung einer ausreichenden EMV werden die Normen [EN 50121] Teil 4, [EN50081-2] und [EN50082-2] berücksichtigt. Durch EMV-Prüfungen wird die Fähigkeit der Kommunikationsplattform nachgewiesen, zufriedenstellend in der Umgebung zu arbeiten und keine unzulässigen Beeinträchtigungen anderer Komponenten zu bewirken. Erdung Der Betreiber hat in den Gebäuden und Räumen für die Einrichtungen der Kommunikations-plattform ausreichend dimensionierte Anschlussmöglichkeiten (Erdpotentiale) vorzusehen. Die Bezugserde ist in den meisten Fällen die Gebäudeerde in Form der Haupterdsammelschiene. Das Gehäuse des Streckengerätes ist zu erden. Die Schirmung der Außenkabel ist an der Kabel-durchführung des Stellwerksgebäudeeinganges aufzulegen. Beim Einbau der Baugruppenträger in den Tragrahmen ist zu beachten, dass diese impedanzarm miteinander verbunden werden. Für Maßnahmen zum Personenschutz gilt die [DIN VDE 0100]. Isolationskoordination Isolationsstreckenbemessung sind nach [prEN 50124], [DIN VDE 0110], [DIN VDE 0831] und [DIN VDE 804] durchzuführen. Schirmung Die Erfüllung der Forderungen nach einer EMV-gerechten Elektroausrüstung soll im Wesentlichen durch das Gerätekonzept erreicht werden. Die Schirme von Signalkabeln sind so mit Masse zu verbinden, dass Störströme die interne Elektro-nik und das interne Bezugspotential nicht beeinflussen.

3.1.1.2 Systemumgebung Fahrzeugeinrichtung und dezentrale Streckeneinrichtung

Züge für den FFB erhalten eine fahrzeugtaugliche FFB-Rechnereinrichtung. Weiterhin werden die dezentralen Streckeneinrichtungen (Weichen, Bahnübergänge, Gleissperren – im Folgenden auch Fahrwegelemente genannt) mit einer FFB-Steuereinrichtung ausgerüstet. Die Anforderungen zur Systemumgebung der Fahrwegelemente sind mit den Anforderungen zur Systemumgebung auf Fahrzeugen abgedeckt. Beim Funk Fahr Betrieb werden in den Fahrwegelementen die gleichen Komponenten als Kommunikationsplattform wie in den Fahrzeugen verwendet. Aus diesem Grunde werden für die Systemumgebung der Fahrwegelemente die gleichen Anforderungen wie für die Systemumgebung der Fahrzeugeinrichtung angenommen.

3.1.1.2.1 Umweltbedingungen

Umgebungstemperatur der Baugruppen Die Anforderungen an die Betriebssicherheit der Baugruppen ergeben sich aus der [IEC 60571], [EN 50125] und der [EN 50155].

14

Page 15: Architekturkonzept und Designaspekte einer …elib.suub.uni-bremen.de/publications/dissertations/E-Diss835_dis... · matik der gewachsenen heterogenen Struktur der ... Im zweiten

Temperaturbereich Bedingung Von –25°C bis +70°C Dauerbetrieb mit Einhaltung der gewährleisteten

Toleranzen Von –30°C bis -25°Cund von +70°C bis +85°C

Kurzzeitbetrieb (10 min) ohne Einhaltung der Toleranzen Abweichungen mit Wirkung zur sicheren Seite

Von –35°C bis -30°C Keine irreversiblen Schäden bei abgeschaltetem Gerät

Tabelle 5: Baugruppenumgebungstemperatur

Die genannten Temperaturen sind die Bauelemente-Grenztemperaturen in unmittelbarer Umgebung der Bauelemente. Durch die beim Betrieb auftretende Erwärmung sollen die zulässigen Grenztemperaturen der Betriebsmittel nicht überschritten werden. Umgebungstemperatur Rechnerrahmen Für den Rechner muss eine Umgebungstemperatur (Eintrittslufttemperatur unterster Baugruppen-träger) von -25 °C bis +55 °C festgelegt werden. Beim Einschalten des Rechners muss dieser Temperaturbereich eingehalten sein, d.h. die Umge-bungstemperatur muss in diesem Bereich liegen. Luftfeuchte Nach [EN 50155] und [EN 50125] gelten folgende Feuchtebeanspruchungen:

• Jahresmittel <=75% rel. Luftfeuchte • an 30 Tagen im Jahr andauernd = 95% rel. Luftfeuchte • an den übrigen Tagen gelegentlich = 85% rel. Luftfeuchte

Betriebsmäßig verursachte seltene und leichte Feuchtigkeitskondensationen dürfen nicht zu irgendwelchen Funktionsstörungen oder Ausfällen führen. Höhenlage Die signaltechnisch nichtsichere Kommunikationsplattform ist für eine Höhe von -120 m bis zu 2000 m über NN ausgelegt und erfüllt damit die Forderungen der [EN 50123]. Schockbeanspruchung Nach [EN 50125] bzw. [EN 50155] gelten folgende Schockbeanspruchungen. Die Geräte auf Fahrzeugen müssen den mechanischen Beanspruchungen an der Einbaustelle ohne Beeinträchtigung ihrer Funktion und ohne Änderung ihrer Betriebslage standhalten.

15

Page 16: Architekturkonzept und Designaspekte einer …elib.suub.uni-bremen.de/publications/dissertations/E-Diss835_dis... · matik der gewachsenen heterogenen Struktur der ... Im zweiten

Richtung der Beanspruchung Scheitelwert der Amplitude / Dauer der Sinushalbwelle

Lage des Betriebsmittels Vertikal Quer Längs Einrichtungen direkt am Wagenkasten oder Unterflur montiert

30 m/s2 / 30 ms 30 m/s2 / 30 ms 50 m/s2 / 30 ms

Betriebsmittel und Bauelemente in Rahmen und Gehäusen am Wagenkasten oder Unterflur montiert

30 m/s2 / 30 ms 30 m/s2 / 30 ms 50 m/s2 / 30 ms

Tabelle 6: Stoßbeanspruchung für Betriebsmittel auf Bahnfahrzeugen nach [EN 50125]

Schwingbeanspruchung Für die Standfestigkeit gegen Schwingbeanspruchungen im und am Fahrzeugkasten müssen die Betriebsmittel der Signalanlagen nach [EN 50125] und [EN 50155] der unten aufgeführten Tabelle dimensioniert und geprüft werden [IEC 60068]. Lage des Betriebsmittels

Masse des Betriebs-mittels kg

Frequenz-bereich Hz

Übergangs-frequenz Hz

Auslenkungs-amplitude unterhalb der Übergangs-frequenz mm

Beschleunigungsamplitude oberhalb der Übergangs-frequenz m/s2

Einrichtungen direkt am Wagenkasten oder Unterflur montiert

>2000 <2000

1-35 5-100

8,2 7,1

0,75 1,5

2 3

Betriebsmittel und Bauelemente in Rahmen und Gehäusen am Wagenkasten oder Unterflur montiert

>30 3-30 0,3-3 <0,3

5-150

8,2 8,4 8,7 22,5

1,5 2,5 5 1,5

4 7 15 30

Tabelle 7: Schwingbeanspruchung für Betriebsmittel auf Bahnfahrzeugen nach [EN 50125]

Grenzwerte Das kurzzeitige Erreichen der zugelassenen Grenzwerte soll nicht zur Einschränkung der Zuverlässigkeit der Anlagen führen. Ständiger oder langfristiger Betrieb an den Grenzwerten oder außerhalb der Grenzwerte darf zu Zuverlässigkeitsminderungen führen. Um solche Zuverlässig-keitsminderungen zu vermeiden, sind zwischen Errichter und Betreiber Maßnahmen zur Verhinderung derartiger Betriebszustände zu vereinbaren. Schutzart

16

Page 17: Architekturkonzept und Designaspekte einer …elib.suub.uni-bremen.de/publications/dissertations/E-Diss835_dis... · matik der gewachsenen heterogenen Struktur der ... Im zweiten

Der Standardschrank für die Kommunikationsplattform ist zum Einbau in die Fahrgast- oder

17

Bei Spannungen >100 V muss die Rückleitung über die Rückleitungssammelleitungen erfolgen.

Führerstandskabinen der Fahrzeuge bzw. den Maschinenraum vorgesehen. Er ist nach [DIN VDE 0470] in der Schutzklasse IP54 ausgelegt.

3.1.1.2.2 Stromversorgung

Batteriespannungen Die Stromversorgung ist nach [EN 50155] für die Fahrzeugbatteriespannungen von 24 V, 48 V, 72 V und 110 V ausgelegt. Abweichungen der Batteriespannung von der Nennspannung Nach [EN 50155] sind die Geräte bei Speisung aus einer Batterie für folgende Spannungsgrenzen der Nennspannung ausgelegt.

• untere Grenze 0,7fach • obere Grenze 1,25fach

Hierbei muss die Einhaltung der technischen Daten gewährleistet sein. Für 2 sec ist mit der 0,6fachen bis 1,4fachen Nennspannung zu rechnen. Dieses hat üblicherweise keinen Einfluss auf den Betrieb. Unter „worst case“-Bedingungen kann eine Sicherheitsabschaltung erfolgen. Die Schnittstelle für diese Eigenschaften bilden die Übergabeklemmen/-stecker im Einbauraum. Anschluss der Kommunikationsplattform an das Bordnetz Ein gemeinsamer Anschluss artfremder Verbraucher und der Kommunikationsplattform an lange Stichleitungen führt zu unerwünschten Beeinflussungen. Der Anschluss der Kommunikations-plattform an das Versorgungsnetz muss daher unmittelbar an der Batterie erfolgen und separat abgesichert werden. Als Leitungsschutz ist eine träge Schmelzsicherung oder ein Sicherungs-automat mit C-Charakteristik erforderlich.

3.1.1.2.3 EMV-Bedingungen

Die elektrische Ausrüstung des Fahrzeuges mit den Leistungsteilen, der empfindlichen Steuer-elektronik und den Bussystemen erfordert eine Ausführung der Anlage, die der EMV entspricht. Die Kommunikationsplattform muss die EMV-Prüfung nach den Normen [EN 50121] Teile 2 und 3, [EN 50081-2] und [EN50082-2] erfüllen. Es sind Vorkehrungen getroffen, dass die elektronischen Einrichtungen im Fahrzeug nicht gestört werden und das Fahrzeug wiederum nicht die zugelassenen Werte als aktiver Störsender über-schreitet. Erdung Die Erdung der Kommunikationsplattform erfolgt über die Fahrzeugmasse. Der Minuspol der Rechnerspannungen, die Gehäuse, der Schrank und die Rechneraufbauten sind an Fahrzeugmasse/-struktur gelegt. Nach [DIN VDE 0115-1] darf der Fahrzeugkörper bei Spannungen <100 V in den Stromkreis mit einbezogen werden.

Page 18: Architekturkonzept und Designaspekte einer …elib.suub.uni-bremen.de/publications/dissertations/E-Diss835_dis... · matik der gewachsenen heterogenen Struktur der ... Im zweiten

Isolationskoordination Die Isolationsstreckenbemessungen sind nach [prEN 50124] durchzuführen. Bei der Isolations-streckenbemessung ist der Verschmutzungsgrad 2 anzusetzen. Schirmung, Potentialausgleich Die Schirme von Signalkabeln sind so mit Masse verbunden, dass Störströme die interne Elektronik und das interne Bezugspotential nicht beeinflussen. Das Verfahren, wie der Schirm kontaktiert wird, ist ausschlaggebend, ob er schirmtechnisch wirkt oder nicht.

3.1.2 Organisatorische Randbedingungen

Die im Eisenbahnbetrieb eingeführten technischen Systeme haben im Vergleich zu Lösungen in der industriellen Automatisierungstechnik sehr lange Produktlebenszyklen. (Die noch heute bei der Berliner S-Bahn verwendete Fahrsperre wurde schon vor dem 2.Weltkrieg verwendet. Sie ist seit dem konstruktiv nur unwesentlich verändert worden). Werden zur Realisierung von Systemen für den Eisenbahnbetrieb Komponenten aus dem „norma-len“ Markt (IPC, GSM-System) verwendet, so ist der Diskrepanz zwischen den Produkt-lebenszyklen der zugekauften Komponenten und den erwarteten Produktlebenszyklen der eisenbahntechnischen Systeme ausreichend Aufmerksamkeit zu widmen. Aus technischer Sicht, ist in der Architekturphase die Portabilität der zu erstellenden Software zu beachten. Eine weitere, erst in den letzten Jahren verstärkt auftretende Randbedingung, ist die Forderung nach einem interoperablen, offenen System für die Funkzugbeeinflussung. Verschiedene europäische Spezifikationsbemühungen (z.B. UNISIG) unterstreichen dieses Vorhaben. Nationale Bahngesell-schaften, welche Fördermittel der Europäischen Union für Neubau- und Modernisierungsvorhaben ihrer Zugbeeinflussungsanlagen in Anspruch nehmen möchten, dürfen diese Förderungen nur für die Umsetzung europäisch standardisierter Funkzugbeeinflussungssysteme verwenden. Projekte der DB AG verfolgen aus einem weiteren Grund intensive Standardisierungsbemühungen. Durch die Privatisierung der Nebenstrecken müssen viele kleinere Betreibergesellschaften mit eigenen Fahrzeugen das Streckennetz gemeinsam benutzen. Um den Wettbewerb zu fördern und einheitliche Rahmenbedingungen auf dem Streckennetz zu schaffen, fordert das EBA standardisierte offene Systeme zur Zugbeeinflussung. Aus diesen Gründen ist auch für das nationale FFB-System der europäisch standardisierte EURORADIO-Protokollstack als Kommunikationsbasis verbindlich. Die organisatorische Selbstständigkeit von Kommunikationsdienstleistern (z.B. ARCOR) innerhalb der DB AG führt zu einer betriebswirtschaftlichen Abrechnung der Kommunikationsaufwendungen über genutzte Kommunikationsressourcen. Es besteht aus wirtschaftlichen Gründen somit die Forderung, den Verbrauch an Kommunikationsressourcen für die einzelnen Bahndienste zu minimieren. Diese Forderung erhält ebenfalls aus Sicht des beschränkten Frequenzbandes für das GSM/R Netz der Bahn Nachdruck. Als Konsequenz dieser Situation ist eine Integration von verschiedenen Bahndiensten nicht nur im Kommunikationsnetz, sondern auch innerhalb von Kommunikationskanälen angestrebt. Dieses erfordert eine leistungsfähige Kommunikations-plattform zur Diensteintegration auf Funk- und Festnetzabschnitten, die die spezifischen Bedürf-nisse der Bahnapplikationen (z.B. Durchsatz und Delayanforderungen) ausreichend unterstützt.

18

Page 19: Architekturkonzept und Designaspekte einer …elib.suub.uni-bremen.de/publications/dissertations/E-Diss835_dis... · matik der gewachsenen heterogenen Struktur der ... Im zweiten

3.1.3 Kommunikationsanforderungen des Funk Fahr Betriebes

3.1.3.1 GSM/R

Die folgende Abbildung stellt die prinzipielle Struktur eines GSM/R-Netzes dar.

BTS BTS

BTSBTS

BTS BTS

BTSBTS

BTSBTS

BTS BTS

BTS

BTS

BSC

BSC

BSC

BSC

TCE

GMSC

TCE

MSC

S2M

VLR

HLRAC

Applikation

VLR

EIR

mobileApplikation

MS

MT2

OMC

Abbildung 1: Übersichtsbild Netzstruktur GSM/R

Die Netzstruktur eines GSM/R Bahn-Netzes entspricht grundsätzlich dem Aufbau öffentlicher GSM-Netze. In den ersten FFB-Pilotanwendungen wurde die MSC (Mobile Service Switching Center) mit der streckenseitigen Kommunikationsplattform direkt gekoppelt, d.h. die MSC stellte mindestens einen Endteilnehmeranschluss (S2M) zur Verfügung. Im Folgenden werden die Funktionen der einzelnen Netzelemente der GSM/R-Infrastruktur über-blicksmäßig dargestellt: Base Transceiver Station (BTS)

• Sende- und Empfangseinheit für eine oder mehrere Zellen • Kodierung (Verschlüsselung) der auf der Funkschnittstelle übertragenen Informationen • Verbindung zur Mobilstation

Base Station Controller (BSC)

• Verwaltung von bis zu 50 BTS • Zuweisung von Funkkanälen • Inter – BSC – Handover – Steuerung • Relaisfunktion bezüglich Signalisierungsaustausch zwischen MS und MSC

19

Page 20: Architekturkonzept und Designaspekte einer …elib.suub.uni-bremen.de/publications/dissertations/E-Diss835_dis... · matik der gewachsenen heterogenen Struktur der ... Im zweiten

Mobile Service Switching Center (MSC)

20

• Enthält Subscriber Identity Modul (SIM)

• Verbindungsaufbau (MOC – Mobile originating Call; MTC – Mobile terminated Call; MMC – Mobile to Mobile Call)

• Intra – MSC – Handover – Steuerung • Erfassen und Aktualisieren der Aufenthalte der Mobilteilnehmer • GMSC - Gatewayfunktion zu ISDN (Festnetzteilnehmer; andere Netze) • Interworking Unit (Nutzdatenstromadaption)

Transcoding Equipment (TCE)

• Datenratenadaptierung (Fullrate/Halfrate) Home Location Register (HLR)

• Datenbank für Teilnehmerdatenprofile • Berechtigungsprofile der zu verwalteten Teilnehmer • Aktueller MSC – Aufenthalt der verwalteten Teilnehmer

Visitor Location Register (VLR)

• Besucherdatenbank, die jedem MSC assoziiert ist • Temporäre Verwaltung aller Gastteilnehmer, die sich im Bereich dieser MSC aufhalten

(Kennung des jeweiligen Gastteilnehmers - IMSI; Aktueller Aufenthaltsort - Location Area Code;

Liste der Leistungen, die der Gastteilnehmer in Anspruch nehmen darf; Authentifizierungsdaten des Gastteilnehmers zur Nutzdatenverschlüsselung auf der Luftschnittstelle)

Equipment Identity Register (EIR)

• Datenbank, in der die Hardwarekennungen der Endgeräte abgelegt sind • Hardware Identifikation – International Mobil Equipment Identity – IMEI • Schwarze Liste (gesperrte Endgeräte)

Authentication Center (AC)

• Stellt die für die Authentifizierung und Verschlüsselung erforderlichen Informationen auf Anfrage eines VLR’s zur Verfügung

• Schutz der GSM-Netzes vor unbefugter Benutzung • Cloning-Schutz der Mobilteilnehmer (Schutz vor missbräuchlicher Nutzung von

Teilnehmerdatenprofilen) Operations and Maintenance Center (OMC)

• Überwachung aller Netzelemente • Einbringen neuer Softwareversionen (Upgrade)

Mobile Station (MS)

• Mobiles Endgerät inkl. MT2 – Anschluss (Nutzdateninterface)

Page 21: Architekturkonzept und Designaspekte einer …elib.suub.uni-bremen.de/publications/dissertations/E-Diss835_dis... · matik der gewachsenen heterogenen Struktur der ... Im zweiten

Subscriber Identity Module (SIM) • PIN / PUK – Prüfung • Authentifizierung – Assoziiert das Teilnehmerverhältnis • SMS-Speicher

Die folgende Tabelle gibt einen Überblick über die verwendeten Frequenzbereiche von GSM-Systemen im GSM 900 Band:

Frequenzband System MS transmit / BTS receive (MHz)

MS receive / BTS transmit (MHz)

Anzahl verfügbarer FDMA – Trägerfrequenzpaare (Trägerfrequenz-abstand 200 kHz)

Gesamtzahl verfügbarer TDMA-Kanalpaare inklusive Signalisierungskanäle(8 Zeitschlitze pro Trägerfrequenz)

Standard GSM 900 890 - 915 935 - 960 124 992 Extended GSM 900 880 - 915 925 - 960 174 1392 GSM/R (delta zu Extended GSM 900)

876 - 880 921 - 925 19 152

Tabelle 8: Frequenzbereiche von GSM-Systemen

Entsprechend vorstehender Tabelle steht für das GSM/R-Sytem exklusiv nur eine sehr beschränkte Anzahl von FDMA-Trägerfrequenzpaaren zur Verfügung (siehe auch [24]). Der effektiven Nutzung dieser gegebenen Ressourcen kommt daher eine besondere Bedeutung zu. Die folgende Abbildung zeigt beispielhaft die Einbettung signaltechnisch sicherer und nichtsicherer Applikationen (Diensteintegration) mit Hilfe der Kommunikationsplattform (GW) unter Nutzung des GSM/R-Systems und unter Priorisierung des sicherheitsrelevanten Kommunikationsbedarfs.

21

Page 22: Architekturkonzept und Designaspekte einer …elib.suub.uni-bremen.de/publications/dissertations/E-Diss835_dis... · matik der gewachsenen heterogenen Struktur der ... Im zweiten

GSM-R-Netz

Diagnose ATO ATP GW

Mobile

ATP

GW

Mobile

FwE (BÜ)

ATP

GW

Mobile

FwE (Weiche)

ATP

GW

Mobile

FwE (Weiche)

ATP GW

FFB-Zentrale n

ATO GW

Zentrale Dienste

Diagnose

GW

FFB-Zentrale n+1

ATP

Abbildung 2: Diensteintegration der Kommunikationsplattform unter Nutzung des GSM/R-Systems

Durch prioritätsgesteuerte Multiplexmechanismen in der Transportschicht des EURORADIO – Protokollstacks wird die durch den GSM/R-Nutzdatenkanal zur Verfügung gestellte Kommunika-tionsbandbreite optimal entsprechend den Bedürfnissen und Prioritäten der beteiligten Bahnapplikationen (ATP / ATO / Diagnose) aufgeteilt.

3.1.3.2 Kommunikationsverhalten der FFB-Applikation

Die Kommunikationsobjekte eines FFB-Systems sind Objekte, die über eine Kommunikations-plattform verfügen. Sie lassen sich wie folgt klassifizieren:

• FFB-Zentrale • Fahrzeuge • Fahrwegelemente

Fahrwegelemente, die über eine Kommunikationsplattform verfügen sind:

• Weichen • Bahnübergänge (BÜ) und höhengleiche Bahnsteigzugänge • Schlüsselsperren • Gruppen von Fahrwegelementen

22

Page 23: Architekturkonzept und Designaspekte einer …elib.suub.uni-bremen.de/publications/dissertations/E-Diss835_dis... · matik der gewachsenen heterogenen Struktur der ... Im zweiten

23

Übertragung relativ kurzer Diagnoseereignismeldungen (z.B. Replikaausfall siehe 3.3.1) und zum

Die einzelnen Kommunikationsobjekte eines FFB-Systems bestehen je nach Ausprägung aus mindestens einer signaltechnisch sicheren bzw. nichtsicheren Bahnapplikation (siehe Abbildung 2). Die ATP-Applikation (Automatik Train Protection) ist in unterschiedlichen Ausprägungen in allen Kommunikationsobjekten mit Sicherheitsverantwortung vorhanden und muss in einer signaltechnisch sicheren Umgebung ablaufen (siehe 3.3.1). Die ATP-Applikation des Fahrzeuges enthält den Streckenatlas mit allen Informationen (z.B. zulässige Höchstgeschwindigkeit, Langsam-fahrstellen, Weichen, Bahnübergänge) über den Aufbau der befahrbaren Strecken. Entsprechend den ortsbezogenen Informationen des Streckenatlas und dem Aufenthaltsort des Fahrzeuges ermittelt die ATP-Applikation die momentan zulässige Höchstgeschwindigkeit unter Beachtung aller Schutzstrecken und Durchrutschwege (Sicherheitsabstände). Überschreitet die Ist-Geschwindigkeit des Fahrzeuges die momentan zulässige Höchstgeschwindigkeit wird von der ATP-Applikation die Zwangsbremse angesteuert. Die laut Streckenatlas zu befahrenden Fahrwegelemente werden unter Beachtung aller Schutzstrecken und Durchrutschwege von der ATP-Applikation des Zuges signaltechnisch sicher angesteuert. Die ATP-Applikation der FFB-Zentrale erteilt dem Fahrzeuggerät den Auftrag, einen bestimmten Streckenabschnitt zu durchfahren. Die ATP-Applikationen der Fahrwegelemente sind als eigenständige Systeme konzipiert (d.h. ein Stellwerk zur zentralen Ansteuerung von u.a. Weichen wird nicht benötigt – siehe auch [26] und [27]). Jeder Stellauftrag vom Fahrzeug oder ersatzweise von der FFB-Zentrale (bei Fahrzeugen ohne FFB-Ausrüstung) wird bestätigt oder abgelehnt. Die signaltechnisch sichere logische Verriegelung von Stellzuständen (Verhinderung der gleichzeitigen Ausführung konkurrierender Stellanweisungen) der Fahrwegelemente (Weiche: rechtsbelegt/linksbelegt/nicht belegt; BÜ: offen/geschlossen) wird von der ATP-Applikation des entsprechenden Fahrwegelements sichergestellt. Die ATP-Applikation des BÜ verfügt über einen signaltechnisch sicheren, richtungssensitiven Abschaltsensor der vom Zug überfahren wird. Mit Hilfe dieses Sensors ist es der BÜ-ATP-Applikation möglich, nach Durchfahrt des Zuges, den BÜ ohne Stellanweisung der ATP-Applikation des Fahrzeuges zu öffnen (siehe auch [25]). Die Kommunikation zwischen den ATP-Applikationen ist als einkanalig signaltechnisch sichere Datenübertragung realisiert (siehe 3.2 und 3.3.3). Die optionale ATO-Applikation (Automatik Train Operation) kann in unterschiedlichen Aus-prägungen in den Kommunikationsobjekten der Fahrzeuge vorhanden sein. Sind dispositorische Angaben (z.B. angepasster Fahrplan) von den ATO-Applikationen der Fahrzeuge zu berücksichti-gen, ist mindestens eine streckenseitige ATO-Applikation erforderlich. ATO-Applikationen haben keine Sicherheitsverantwortung. Die ATO-Applikation dient u.a. zur Entlastung des Triebfahr-zeugführers indem sie folgende regelungstechnische Aufgaben (oder Teile davon) übernimmt:

• Ansteuerung von Antrieb und Betriebsbremse unter Beachtung der Sollgeschwindigkeit • punktgenaues Halten am Bahnhof bzw. Haltepunkt • energieoptimales Fahren unter Beachtung des Streckenatlas und der momentanen

Fahrplansituation Die fahrzeugseitige Diagnoseapplikation mit Sicherheitsverantwortung (juridical recorder) kommuniziert nicht mit Systemen außerhalb des Fahrzeuges. Eine Schnittstelle zur Kommunika-tionsplattform ist nicht vorhanden. In Abbildung 2 sind neben ATP- und optionaler ATO-Applikation die für eine zentralisierte Fahrzeugdiagnose notwendigen Diagnoseapplikationen dargestellt. Der Kommunikationsbedarf der fahrzeugseitigen Diagnose besteht zum einen in der

Page 24: Architekturkonzept und Designaspekte einer …elib.suub.uni-bremen.de/publications/dissertations/E-Diss835_dis... · matik der gewachsenen heterogenen Struktur der ... Im zweiten

anderen in der niederprioren Übertragung von Massendaten (z.B. Speicherabzug bei Replika-ausfall). Die Kommunikationsplattform (GW) in der Ausprägung als signaltechnisch nichtsicher Vorrechner (siehe Abbildung 20) stellt den angeschlossenen Bahnapplikationen unter Priorisierung des sicherheitsrelevanten Kommunikationsbedarfs Nutzdatenkanäle zur Verfügung. Schnittstellen der Kommunikationsplattform zum GSM/R-ISDN-Netz in den verschiedenen Komponenten sind:

• in der FFB-Zentrale ist die Kommunikationsplattform über eine S2M-Karte mit dem ISDN verbunden

• auf dem Fahrzeug ist die Kommunikationsplattform über ein oder zwei Mobiles mit dem GSM/R-Netz verbunden

• in den Fahrwegelementen ist die Kommunikationsplattform entweder über ein Mobile mit dem GSM/R-Netz oder über eine S0-Karte mit dem ISDN-Netz verbunden.

Die folgende Abbildung stellt die möglichen Kommunikationsbeziehungen im FFB-System (ohne optionale ATO und zentrale Dienste) dar:

FFB-Zentrale

Fahrzeuge Fahrwegelemente

2 1 3 4

5

6

Abbildung 3: Kommunikationsbeziehungen im FFB-System

Über die nummerierten Kommunikationsbeziehungen werden die folgenden Nachrichten der FFB-Anwendung ausgetauscht (siehe auch [28]):

1) Fahrweganforderung, Positionsmeldung (Abschnittsfreigabe), Fehlermeldung 2) Fahrwegzuweisung, Statusabfrage 3) Statusanfrage, Stellanweisung 4) Statusmeldung, Fehlermeldung 5) Stellanweisung, Statusabfrage 6) Statusmeldung, Quittungsmeldung, Fehlermeldung

Die Anzahl der Fahrwegelemente ist im FFB-System deutlich größer, als die Anzahl der Zentralen und Fahrzeuge. Sie bestimmen die FFB-Kommunikationsstruktur und die Anforderungen an die Kommunikationsplattform maßgeblich. Das FFB-System ist durch schnell wechselnde, kurze Kommunikationsbeziehungen zwischen verschiedenen Instanzen gekennzeichnet.

24

Page 25: Architekturkonzept und Designaspekte einer …elib.suub.uni-bremen.de/publications/dissertations/E-Diss835_dis... · matik der gewachsenen heterogenen Struktur der ... Im zweiten

3.1.3.2.1 Charakteristik der Kommunikation Zentrale - Fahrzeuge/Fahrwegelemente

Im FFB-Regelbetrieb verwaltet die FFB-Zentrale Fahrzeugstandorte und Fahrwege, die von Fahr-zeugen angefordert werden. Zusätzlich sind Positionsmeldungen der Fahrzeuge entgegenzunehmen und zu verwalten. Im Fall nichtausgerüsteter Fahrzeuge hat die FFB-Zentrale zusätzlich die Auf-gabe, die variablen Streckenelemente (Weichen werden entsprechend den Anweisungen des Fahr-dienstleiters gestellt; BÜs werden von nichtausgerüsteten Fahrzeugen durch Befahren der Aus-schaltmittel geschlossen) für diese Fahrzeuge einzustellen.

Abbildung 4: Kommunikation der FFB-Zentrale mit Fahrzeugen und Fahrwegelementen

Aufgrund der Verwendung eines Streckenatlas auf den Fahrzeugen sind alle Kommunikationen der FFB-Zentrale mit Fahrzeugen vom Datenvolumen her gering. Die Gesamtdauer einer FFB-Kommunikation inklusive Verbindungsaufbau beträgt in diesem Fall typischerweise 20 bis 30 Sekunden. Die Gesamtzahl der gleichzeitigen Kommunikationsverbindungen zwischen Zentrale, Fahrzeugen und Fahrwegelementen ist im Regelbetrieb im wesentlichen durch die Anzahl der Fahrzeuge bestimmt, die sich gleichzeitig in Betrieb befinden. Zusätzlich kann der Fahrdienstleiter Statusabfragen und Einstellungen von Fahrwegelementen vornehmen. Mit Fahrwegelementen kommuniziert die FFB-Zentrale nur selten (bei Statusabfragen oder Störungen).

3.1.3.2.2 Charakteristik der Kommunikation Fahrzeug - Fahrwegelemente

Im FFB-Regelbetrieb erhält ein Fahrzeug einen Fahrweg von der Zentrale zugeteilt. Aufgabe des Fahrzeugs ist es dann unter anderem, die variablen Fahrwegelemente (z.B. BÜs, Weichen) zeitgerecht einzustellen. Dies geschieht unter Verwendung der auf dem Fahrzeug verfügbaren Streckenatlasdaten.

Abbildung 5: Kommunikation eines Fahrzeugs mit Fahrwegelementen

Aufgrund der Verwendung eines Streckenatlas auf den Fahrzeugen sind alle Kommunikationen des Fahrzeuges mit Fahrwegelementen vom Datenvolumen her gering. Die reine Übertragungszeit der Nutzdaten beträgt ca. 2-5 Sekunden und ist damit deutlich niedriger als die für den Verbindungsaufbau benötigte Zeit, die typischerweise bei ca. 20 Sekunden liegt. FFB-Strecken weisen oft eine relativ hohe Dichte von Fahrwegelementen auf; d.h. die FFB-Kommunikation wird maßgeblich durch die Kommunikationen zwischen Fahrzeugen und Fahrwegelementen bestimmt. Aufgrund der kurzen Anwendungstelegramme ergibt sich abhängig von der Fahrzeuggeschwindigkeit eine rasch wechselnde Folge von kurzen Kommunikationen. Dies

25

Page 26: Architekturkonzept und Designaspekte einer …elib.suub.uni-bremen.de/publications/dissertations/E-Diss835_dis... · matik der gewachsenen heterogenen Struktur der ... Im zweiten

kann bei hohen Fahrzeuggeschwindigkeiten dazu führen, dass das Fahrzeug mit mehreren Fahrweg-elementen gleichzeitig kommunizieren muss. Die folgende Abbildung zeigt für verschiedene Geschwindigkeiten die maximal zur Verfügung stehende Kommunikationszeit für jedes Fahrwegelement als Funktion der Fahrwegelementdichte.

Kommunikationszeit pro Fahrwegelement als Funktion der Fahrwegelementdichte

0

10

20

30

40

50

60

70

80

1 2 3 4

Fahrwegelementdichte (1/km)

Abbildung 6: Zur Verfügung stehende Kommunikationszeit eines Fahrzeuges pro Fahrwegelement für unterschiedliche Fahrzeuggeschwindigkeiten v

Für drei Fahrwegelemente pro Kilometer beispielsweise stehen bei einer Fahrzeuggeschwindigkeit von 80 km/h maximal 15 Sekunden Kommunikationszeit pro Fahrwegelement zur Verfügung. Dies beinhaltet, wie aus der folgenden Abbildung ersichtlich:

• die Zeit für den Verbindungsaufbau (signaltechnisch nichtsicher – GSM/R-Datenlink, asynchrones HDLC der Linkebene des Euroradio Protokollstacks sowie das Transportprotokoll TP2 der Transportebene des Euroradio Protokollstacks[EURORADIO])

• die Authentifizierung inkl. Vereinbarung eines Session-Keys (signaltechnisch sicher – Euroradio Protokoll – Primitiven AU1, AU2, AU3 und AR)

• den Stellbefehl an das Element (Applikations PDU mit kryptologischem Sicherheitsanhang entsprechend Euroradio)

• die Rückmeldung vom Element (Applikations PDU mit kryptologischem Sicherheitsanhang entsprechend Euroradio)

v= 160 km/h

v= 80 km/h

v= 100 km/h

v= 50 km/h

26

Page 27: Architekturkonzept und Designaspekte einer …elib.suub.uni-bremen.de/publications/dissertations/E-Diss835_dis... · matik der gewachsenen heterogenen Struktur der ... Im zweiten

• den Verbindungsabbau (geordneter Verbindungsabbau mit signaltechnisch nichtsicherer Übermittlung des Verbindungsabbaugrundes).

S t e l l b e f e h l

S afty layer

F a h rze u g(a b g e h e n d e r R u f)

A TP -A pplikation

K om m un ikations-plattfo rm (G W )

G S M R(M ob ile)

S icherhe itsve rantw ortung

S A _ C O N _ R E QT _ C O N _ R E Q( i n c l . A U 1 )

E urorad io

signa ltechnisch n ichtsicher

G S M R / IS DNZugsicherung

N _ C O N _ R E Q

F w E(a n k o m m e n d e r R u f)

G S M R(S2M )

E urorad io

K om m unikations-plattfo rm (G W )

S icherhe itsve rantw ortung

S afty layerA TP-A pplikation

Zugsicherung

N _ C O N _ I N D

N _ C O N _ R S P

N _ C O N _ C N F

T P 2 _ C R - T _ P D U

A u f b a u L i n k e b e n e E u r o r a d io p r o t o k o ll ( a s y n c r o n e s H D L C )

T _ C O N _ I N D( i n c l . A U 1 )

T _ C O N _ R S P( i n c l . A U 2 )

T P 2 _ C C - T _ P D U

T _ C O N _ C N F( i n c l . A U 2 )

A U 3 - S A _ P D U

S A _ C O N _ I N D

S A _ C O N _ R S P

A R - S A _ P D U

S A _ C O N _ C N F

R E Q - A T P _ P D U

A K N - A T P _ P D U

R ü c k m e l d u n g

A b b a u L i n k e b e n e E u r o r a d io p r o t o k o l l ( a s y n c r o n e s H D L C )

T P 2 _ D R - T _ P D U

T P 2 _ D C - T _ P D U

S A _ C O N _ R E L T _ C O N _ R E L( i n c l . R E A S O N )

T _ D I S C O N( i n c l . R E A S O N )

S A _ D I S C O N

T _ D I S C O N

S A _ D I S C O N

N _ C O N _ R E L

N _ D I S C O NN _ D I S C O N

S t e l l b e f e h l

R ü c k m e l d u n g

Abbildung 7: Beispiel der Kommunikationsaktivität zwischen Fahrzeug und Fahrwegelement

Es ist abhängig von der Dichte der Fahrwegelemente und der Zuggeschwindigkeit notwendig, mit mehreren Fahrwegelementen gleichzeitig vom Fahrzeug aus zu kommunizieren. Dies stellt eine wesentliche Forderung an das FFB-Kommunikationssystem dar.

27

Page 28: Architekturkonzept und Designaspekte einer …elib.suub.uni-bremen.de/publications/dissertations/E-Diss835_dis... · matik der gewachsenen heterogenen Struktur der ... Im zweiten

3.1.3.2.3 Kommunikationslast zwischen Fahrzeug und Fahrwegelementen

28

Die realen Performance-Anforderungen zwischen Fahrzeugen und Fahrwegelementen liegen zwischen folgenden "best case" und "worst case" Szenarien. Das best case Szenario produziert minimale Kommunikationslast, charakterisiert durch:

• 1 Ruf pro Fahrwegelement (z.B. BÜs ohne Statusrückmeldung) • Positionsmeldungen nur in Bahnhöfen • zuweisbare Fahrwege nur von Bahnhof zu Bahnhof

Das worst case Szenario produziert maximale Kommunikationslast, charakterisiert durch:

• 2 Rufe pro Fahrwegelement (z.B. BÜs mit Statusrückmeldung) • Positionsmeldungen in Bahnhöfen und Haltepunkten • zuweisbare Fahrwege von Bahnhof/Haltepunkt zu Bahnhof/Haltepunkt

3.1.3.3 Lastmodell

Das Lastmodell für den Funk Fahr Betrieb erfordert eine hohe Skalierbarkeit der Kommunikations-plattform. Für die Kommunikationsplattform ist folgendes statische Lastmodell für den Funk Fahr Betrieb (unter Anwendung der Gatewayarchitektur – siehe 4) gefordert: Statisches Lastmodell FFB 1 FFB-Zentrale Fahrzeug FWE Anzahl physikalischer Links (GSM/R-ISDN)

20 ISDN 2 GSM/R 1 GSM/R

Anzahl logischer Verbindungen 12 7 4 Datenübertragung in Senderichtung Telegrammlänge: Telegramme je log. Kanal / Zeit:

25 Bytes 1 / 5 s

120 Bytes 1 / 5 s

25 Bytes 1 / 5 s

Datenübertragung in Empfangsrichtung Telegrammlänge: Telegramme je log. Kanal / Zeit:

240 Bytes 1 / 5 s

240 Bytes 1 / 5 s

25 Bytes 1 / 5 s

Tabelle 9: Statisches Lastmodell FFB

Erläuterungen: 1 Im Modell bestehen alle Verbindungen über die gesamte Zeit (maximale Anzahl). Die Datenübertragung erfolgt unsynchronisiert zwischen den Verbindungen. Über jede logische Verbindung wird periodisch innerhalb der vorgegebenen Zeit ein Telegramm der vorgegebenen Länge gesendet und empfangen. Dieses Lastmodell dient der Simulation und Überprüfung einer maximalen Datenlast.

Weiterhin gilt für die Kommunikationsplattform das folgende dynamische Lastmodell für den Funk Fahr Betrieb:

Page 29: Architekturkonzept und Designaspekte einer …elib.suub.uni-bremen.de/publications/dissertations/E-Diss835_dis... · matik der gewachsenen heterogenen Struktur der ... Im zweiten

Dynamisches Lastmodell FFB 1 FFB-Zentrale, Fahrzeug, Fahrwegelemente

Änderung der aufgebauten Verbindungen / min 6 Anzahl der Telegramme je logischer Verbindung Typischerweise

1 Sendetelegramm 1 Empfangstelegramm

Variable Telegrammlänge in den Grenzen 1 – 240 Bytes

Tabelle 10: Dynamisches Lastmodell FFB

Erläuterungen: 1 Das dynamische Lastmodell ist durch eine permanente Änderung in den Verbindungsrelationen gekennzeichnet. Die Anzahl der Verbindungen wird periodisch von Null bis zum Maximum aufgebaut und nach erfolgter Datenübertragung wieder abgebaut. Die Reihenfolge und die Zuordnung von logischen Verbindungen zu physikalischen Links ist dabei variabel (zufällig). Unmittelbar nach Aufbau jeder logischen Verbindung erfolgt ein Datendialog, bestehend aus einem Sende- und einem Empfangstelegramm. Die Länge und der Inhalt der Telegramme werden zufällig gewählt, mit den Schwerpunkten 25 und 120 Bytes. Das dynamische Lastmodell dient der Simulation und Überprüfung der Verbindungsänderungen.

3.1.3.4 Performanzanforderungen

An der Kommunikationsschnittstelle der FFB-Applikation sind die Performanzanforderungen Ende zu Ende (unter Anwendung der Gatewayarchitektur – siehe 4) entsprechend folgender Tabel-len gefordert. Die Performanzanforderungen an die Kommunikationsplattform setzen voraus, dass das unterlagerte Übertragungsmedium GSM/R-ISDN die erforderliche Dienstgüte dauerhaft erbringt.

29

Page 30: Architekturkonzept und Designaspekte einer …elib.suub.uni-bremen.de/publications/dissertations/E-Diss835_dis... · matik der gewachsenen heterogenen Struktur der ... Im zweiten

Verbindungsaufbaudauer FFB 1 Ende zu Ende (p=95%)

GSM/R-ISDN (komplett, end to end) 14,2 s GSM/R-ISDN-GSM/R (komplett, end to end) 26,2 s GSM/R-ISDN-GSM/R-LAN (komplett, end to end) 27,2 s GSM/R-GSM/R (komplett, end to end) 21,7 s GSM/R-GSM-LAN (komplett, end to end) 22,7 s ISDN-GSM/R (bestehende Verbindung zur Zentrale, Verlängerung des Links GSM/R-ISDN)

26,2 s

GSM/R-LAN (bestehende Verbindung zur Zentrale, Verlängerung des Links GSM/R-GSM/R )

15,7 s

GSM/R-LAN (bestehende Verbindung zur Zentrale, Verlängerung des Links GSM/R-ISDN-GSM/R)

20,2 s

Transferverzögerung FFB Ende zu Ende 2

1 Telegramm 120 Bytes, p = 95 %

GSM/R-ISDN 3 s GSM/R-ISDN-GSM/R 4 s GSM/R-ISDN-GSM/R-LAN 4 s GSM/R-GSM/R 3,5 s GSM/R-GSM/R-LAN 3,5 s Max. Anzahl Verbindungen 3 Physikalisch

ISDN-GSM/R Logisch

FFB-Zentrale 20 ISDN 12 FFB-Fahrzeug 2 GSM/R 7 FFB-Dezentrale 1 GSM/R 4

Tabelle 11: Performanzanforderungen FFB

Erläuterungen: 1 Die Verbindungsaufbaudauer umfasst die Bestandteile Aufbau Netzwerkverbindung(en), Initialisierung der Kommunikationsprotokolle Funk und Sicherung der Verbindung (I&A-Dialog). Sie beginnt mit der Anforderung der neuen Verbindung an der Applikationsschnittstelle und endet mit der Meldung über die bereitstehende gesicherte Verbindung an die anfordernde Applikation. 2 Die Transferverzögerung beginnt mit der Übergabe des Applikationstelegramms an die Komponente Sicherung auf Sendeseite und endet mit der Übergabe des Empfangstelegramms von der Komponente Sicherung auf der Empfangsseite.

3 Die max. Anzahl Verbindungen ist im statischen und dynamischen Lastmodell nachzuweisen. FFB-Zentrale und Fahrwegelemente können als Gateways eingesetzt werden.

Die in den obigen Tabellen genannten Werte für die Performanz der Kommunikationsplattform und des Protokollstacks im signaltechnisch sicheren Rechner wurden unter folgenden Annahmen hergeleitet:

30

Page 31: Architekturkonzept und Designaspekte einer …elib.suub.uni-bremen.de/publications/dissertations/E-Diss835_dis... · matik der gewachsenen heterogenen Struktur der ... Im zweiten

31

D1 = Phys. Verbindungsaufbaudauer GSM/R - ISDN = 6 s D2 = Phys. Verbindungsaufbaudauer ISDN – ISDN = 1 s D3 = Phys. Verbindungsaufbaudauer GSM/R – GSM/R = 10 s K = durchschnittlicher Übertragungszeitanteil für Fehlerkorrektur = GSM-Störungswahrscheinlichkeit [5%] * durchschnittliche Zeitdauer zur Korrektur defekter HDLC-Frames [2 s] = 100 ms Ü1 = Übertragungsverzögerung GSM/R (Mobile to fix) 1 Byte = 300 ms Ü2 = Übertragungsverzögerung GSM/R (Mobile to Mobile) 1 Byte = 600 ms Ü3 = Übertragungsverzögerung ISDN 1 Byte = 50 ms Ü4 = Übertragungsverzögerung LAN = 50 ms L1 = Durchlaufzeit im 4,8 kBit/s Übertragungskanal für 25 Bytes Nutzdaten (= 50 Bytes HDLC Frames) ohne Multiplex = 100 ms L2 = Durchlaufzeit im 4,8 kBit/s Übertragungskanal für 25 Bytes Nutzdaten (= 50 Bytes HDLC Frames) mit Multiplex (vier logische Kanäle) = 400 ms L3 = Durchlaufzeit im 4,8 kBit/s Übertragungskanal für 120 Bytes Nutzdaten (=200 Bytes HDLC Frames) ohne Multiplex = 400 ms L4 = Durchlaufzeit im 4,8 kBit/s Übertragungskanal für 120 Bytes Nutzdaten (=200 Bytes HDLC Frames) mit Multiplex (vier logische Kanäle) = 1600 ms V1 = Verarbeitungsdauer Euroradio-Sicherungsprotokoll inklusive Krypto = 100 ms V2 = Verarbeitungsdauer Rechnerkopplung Kommunikationsplattform – signaltechnisch sicherer Rechner = 100 ms V3 = Verarbeitungsdauer Kommunikationsplattform = 50 ms R = Lastreserve für Kommunikationsplattform = 100 ms T = Anzahl der zu übertragenden Telegramme für Verbindungsaufbau (2 * Netz, 4 * Kommunikationsplattform, 4 * Euroradio Safty Layer) = 10

Die aufgeführten Werte wurden unter den obigen Annahmen nach den Formeln aus nachstehender Tabelle abgeleitet. Dabei ist zu berücksichtigen, dass die angegebenen Werte ohne Berück-sichtigung der FFB-Applikationssoftware auf dem signaltechnisch sicheren Rechner erstellt wurden.

Page 32: Architekturkonzept und Designaspekte einer …elib.suub.uni-bremen.de/publications/dissertations/E-Diss835_dis... · matik der gewachsenen heterogenen Struktur der ... Im zweiten

Verbindungsaufbaudauer FFB Ende zu Ende GSM/R-ISDN (komplett, end to end) D1+T*(Ü1+Ü3+L1+K+2*V3)

+8*(V1+V2)+R = 14,2 s GSM/R-ISDN-GSM/R (komplett, end to end) 2*D1+T*(2*Ü1+2*Ü3+2*L1+2*K

+3*V3)+8*(V1+V2)+R = 26,2 s GSM/R-ISDN-GSM/R-LAN (komplett, end to end) 2*D1+T*(2*Ü1+2*Ü3+Ü4+2*L1

+2*K+4*V3)+8*(V1+V2)+R = 27,2 s

GSM/R-GSM/R (komplett, end to end) D3+T*(Ü2+L1+2*K+2*V3) +8*(V1+V2)+R = 21,7 s

GSM/R-GSM/R-LAN (komplett, end to end) D3+T*(Ü2+Ü4+L1+2*K+3*V3) +8*(V1+V2)+R = 22,7 s

ISDN-GSM/R (Verlängerung ex. Link GSM/R-ISDN) D1+2*T*(Ü1+Ü3+L2+K) +3*T*V3+8*(V1+V2)+R = 26,2 s

GSM/R-LAN (Verlängerung ex. Link GSM/R-GSM/R ) T*(Ü2+Ü4+L2+2*K+3*V3) +8*(V1+V2)+R = 15,7 s

GSM/R-LAN (Verlängerung ex. Link GSM/R-ISDN-GSM/R)

T*(2*Ü1+Ü4+2*L2+2*K+4*V3) +8*(V1+V2)+R = 20,2 s

Transferverzögerung FFB 120 Bytes GSM/R-ISDN Ü1+Ü3+L4+K

+2*(V1+V2+V3)+R = 2,65 s GSM/R-ISDN-GSM/R 2*(Ü1+Ü3+K)+3*V3+L3+L4

+2*(V1+V2)+R = 3,55 s GSM/R-ISDN-GSM/R-LAN 2*(Ü1+Ü3+K)+Ü4+4*V3+L3

+L4+2*(V1+V2)+R = 3,65 s GSM/R-GSM/R Ü2+2*K+L4+2*(V1+V2+V3)

+R = 3,0 s GSM/R-GSM/R-LAN Ü2+Ü4+2*K+L4+2*(V1+V2)

+3*V3+R = 3,1 s

Tabelle 12: Berechnungsgrundlagen Performanzanforderungen FFB

Aus den FFB-Anforderung an die Performanz der Kommunikation Ende zu Ende inklusive signal-technisch sicheren Protokollfunktionalitäten werden folgende test- und validierbare Anforderungen an die Kommunikationsplattform (ohne Sicherungsschicht) in einer Simulationsumgebung GSM/R-ISDN abgeleitet:

32

Page 33: Architekturkonzept und Designaspekte einer …elib.suub.uni-bremen.de/publications/dissertations/E-Diss835_dis... · matik der gewachsenen heterogenen Struktur der ... Im zweiten

Verbindungsaufbaudauer Ende zu Ende Kommunikationsplattform

GSM/R-ISDN (komplett, end to end) D1+T*(Ü1+Ü3+L1+K+2*V3) +8*(V1+V2)+R = 10,15 s

GSM/R-ISDN-GSM/R (komplett, end to end) 2*D1+T*(2*Ü1+2*Ü3+2*L1+2*K+3*V3)+8*(V1+V2)+R = 19,15 s

GSM/R-ISDN-GSM/R-LAN (komplett, end to end) 2*D1+T*(2*Ü1+2*Ü3+Ü4+2*L1 +2*K+4*V3)+8*(V1+V2)+R = 19,75 s

GSM/R-GSM/R (komplett, end to end) D3+T*(Ü2+L1+2*K+2*V3) +8*(V1+V2)+R = 15,65 s

GSM/R-GSM/R-LAN (komplett, end to end) D3+T*(Ü2+Ü4+L1+2*K+3*V3) +8*(V1+V2)+R = 16,25 s

ISDN-GSM/R (Verlängerung ex. Link GSM/R-ISDN) D1+2*T*(Ü1+Ü3+L2+K) +3*T*V3+8*(V1+V2)+R = 16,75 s

GSM/R-LAN (Verlängerung ex Link GSM/R-GSM/R ) T*(Ü2+Ü4+L2+2*K+3*V3) +8*(V1+V2)+R = 8,05 s

GSM/R-LAN (Verlängerung ex Link GSM/R-ISDN-GSM/R)

T*(2*Ü1+Ü4+2*L2+2*K+4*V3) +8*(V1+V2)+R = 10,75 s

Transferverzögerung Kommunikationsplattform 120 Bytes GSM/R-ISDN Ü1+Ü3+L4+K

+2*(V1+V2+V3)+R = 2,3 s GSM/R-ISDN-GSM/R 2*(Ü1+Ü3+K)+3*V3+L3+L4

+2*(V1+V2)+R = 3,1 s GSM/R-ISDN-GSM/R-LAN 2*(Ü1+Ü3+K)+Ü4+4*V3+L3

+L4+2*(V1+V2)+R = 3,2 s GSM/R-GSM/R Ü2+2*K+L4+2*(V1+V2+V3)

+R = 2,55 s GSM/R-GSM/R-LAN Ü2+Ü4+2*K+L4+2*(V1+V2)

+3*V3+R = 2,65 s

Tabelle 13: test – und validierbare Performanzanforderungen Kommunikationsplattform

Randbedingungen und Änderungen gegenüber ursprünglichen FFB-Anforderungen:

K= durchschnittlicher Übertragungszeitanteil für Fehlerkorrektur = 0 ms Begründung: In der Simulationsumgebung treten Übertragungsfehler infolge der drahtgebundenen Übertragung nur sehr selten auf, so dass dieser Einfluss vernachlässigt werden kann. V1 = Verarbeitungsdauer Euroradio-Sicherungsprotokoll inklusive Kryptographie = 0 ms Begründung: Das Euroradio-Sicherungsprotokoll ist in der Testumgebung nicht enthalten. R = Lastreserve für Kommunikationsplattform = 50 ms

33

Page 34: Architekturkonzept und Designaspekte einer …elib.suub.uni-bremen.de/publications/dissertations/E-Diss835_dis... · matik der gewachsenen heterogenen Struktur der ... Im zweiten

Begründung: Die gesamte Lastreserve von 100 ms wird aufgeteilt auf die signaltechnisch sichere und auf die Kommunikationsplattform, so dass für die Testdurchführung mit der Kommunikationsplattform nur 50 ms anzusetzen sind. T = Anzahl der zu übertragenden Telegramme für Verbindungsaufbau (2 * Netz, 4 * Kommunikationsplattform) = 6 Begründung: Die I&A-Telegramme des Euroradio Sicherungsprotokolls sind bei der Testdurchführung nicht relevant.

3.2 Anforderungen bei Verwendung einer einkanaligen signaltechnisch sicheren

Datenübertragung über offene Netze

Der EURORADIO Protokollstack (sichere und nichtsichere Protokolle) dient der sicheren ver-bindungsorientierten Übertragung von Daten zwischen mobilen (Fahrzeugen) und ortsfesten Einrichtungen (Fahrwegelemente, Streckenzentrale) bzw. zwischen ortsfesten Streckenelementen und Streckenzentralen über offene Netze (GSM/R, ISDN). Er besteht aus einem Sicherungs-protokoll, welches signaltechnisch sicher zu entwickeln ist und einem Kommunikationsprotokoll, das keine Sicherheitsverantwortung besitzt (siehe auch [30] und [31]). Gemäß [EN50159-2] ist das signaltechnisch nichtsicheren EURORADIO Protokoll der Kommuni-kationsplattform Teil des grauen Kanals. Die Funktionalitäten mit Sicherheitsverantwortung laufen in einer signaltechnisch sicheren Komponente ‚Sicherung’ auf einem sicheren Mehrrechnersystem (SIL 4) ab. Zwei Kommunikationspartner kommunizieren über verschiedene Protokolle mitein-ander: dem Kommunikationsprotokoll (PNONSAFE) und dem Sicherungsprotokoll (PSAFE) (siehe Abbildung 8). Beide Protokolle sind in [EURORADIO] standardisiert. Das Sicherungsprotokoll (PSAFE) verwendet den kryptographischen Mechanismus Message-Authentifikationscode (MAC) zur Nachrichten-Authentifizierung und ein Identifikationsdialog zur gegenseitigen Partnerinstanz-Authentifizierung. Es bietet entsprechend [EN50159-2] Architektur A1 Schutz gegen die Gefährdungen Manipulation, Verfälschung und Einfügung von Daten. Die kryptographischen Mechanismen werden durch ein Offline-Schlüsselmanagement unterstützt. Der Zugang (DSAFE) zur sicheren Ende-Zu-Ende-Übertragung für Dienstbenutzer (Beispiel: FFB Applikation) wird oberhalb der Komponente Sicherung bereitgestellt. Diese Schnittstelle bietet zusätzlich die Möglichkeit, hochpriore Notinformationen mit direkter Weiterleitung an das Sub-system Kommunikation (signaltechnisch nichtsichere Kommunikationsplattform) zu übermitteln. Diese Daten werden dann ohne Sicherung und an allen Warteschlangen vorbei direkt an den Kom-munikationspartner übertragen.

34

Page 35: Architekturkonzept und Designaspekte einer …elib.suub.uni-bremen.de/publications/dissertations/E-Diss835_dis... · matik der gewachsenen heterogenen Struktur der ... Im zweiten

offenes Netz

grauer Kanal

SubsystemKommunikation(SIL 0)

SubsystemKommunikation(SIL 0)

KomponenteSicherung(SIL 4)

KomponenteSicherung(SIL 4)

Schnittstellezumgrauen Kanal

Schnittstellezumgrauen Kanal

signaltechnisch sichere Umgebung

Schnittstellezur sicherenApplikationl

Schnittstellezur sicherenApplikationl

DSAFE

PSAFE

PNONSAFE

DSAFE

Abbildung 8: prinzipielle Struktur einer einkanalig sicheren Datenübertragung über offene Netze

3.2.1 EURORADIO Sicherungsverfahren

Um die Risiken zu reduzieren, die mit den in [EN 50159-2] genannten Gefährdungen Einfügung, Verfälschung und Manipulation verbunden sind, werden nach [EURORADIO] folgende Sicherungsverfahren (siehe auch [17]) angewendet:

• Nachrichten-Authentifizierung • Partnerinstanz-Authentifizierung

Die eingesetzten Sicherungsverfahren basieren auf den in EURORADIO spezifizierten Sicherungsmechanismen Message Authentication Code (MAC) und Authentifikationsprotokoll. Die nachfolgende Tabelle beschreibt die Beziehungen zwischen den einzelnen Gefährdungen und den zu ihrer Abwehr eingesetzten Sicherungsverfahren:

35

Page 36: Architekturkonzept und Designaspekte einer …elib.suub.uni-bremen.de/publications/dissertations/E-Diss835_dis... · matik der gewachsenen heterogenen Struktur der ... Im zweiten

eingesetzte Sicherungsverfahren Gefahr

36

gebauten, takt-, befehls- oder transaktionssynchron arbeitenden und identisch programmierten Rechnerkanälen (Replika) (siehe [13] Kap. 6.3). Um die Wahrscheinlichkeit eines gleichzeitigen

Nachrichten-Authentifizierung Partnerinstanz-Authentifizierung Einfügung X Verfälschung X Manipulation X X

Tabelle 14: Beziehungen zwischen Gefährdungen und Sicherungsverfahren

Die Sicherungsverfahren Nachrichten-Authentifizierung und Partnerinstanz-Authentifizierung ermöglichen nur ein Erkennen einer Einfügung von Nachrichten durch Dritte. Ist der kryptographische Schlüssel bekannt, so bieten diese Sicherungsverfahren keinen Schutz. Die Risiken, die mit den in [EN 50159-2] genannten Gefährdungen Wiederholung, Auslassung, Resequenzierung und Verzögerung verbunden sind, können mit den in EURORADIO festgelegten Sicherungsverfahren Nachrichten-Authentifikation und Partnerinstanz-Authentifikation nicht reduziert werden. Für die Reduzierung der mit diesen Gefährdungen verbundenen Risiken müssen die sender- und empfangsseitigen Anwendungen Sorge tragen (Anwendungsregel). Weiterhin kann in den folgenden Situationen das Risiko durch die Gefährdungen Manipulation, Einfügung und Verfälschung nicht reduziert werden:

• sicherheitskritische Situation:

- Manipulation auf der Basis eines gültigen Sitzungsschlüssels (z.B. bei Insider-Wissen)

- Einfügung von Nutzerdaten in den Nachrichtenstrom auf der Basis eines gültigen Sitzungsschlüssels

- Verfälschung von Nutzerdaten auf der Basis eines gültigen Sitzungsschlüssels - Übertragung sicherheitsrelevanter Daten als hochpriore Daten

• nicht sicherheitskritische Situationen:

- Unterbrechung der Netzverbindung - Übertragung nicht sicherheitsrelevanter Daten als hochpriore Daten, da die

Anwendungen hochpriore Daten nur zur Übertragung fahrteinschränkender Informationen (z.B. Nothalt) nutzen dürfen (Anwendungsregel)

3.3 Anforderungen durch Kopplung einer signaltechnisch nichtsicheren

Kommunikationsplattform an mehrkanalig redundante signaltechnisch sichere

Rechner

3.3.1 Mehrkanalig redundante signaltechnisch sichere Rechner

Der mehrkanalig redundante signaltechnisch sichere Rechner (n-modulare Redundanz in der Aus-prägung 2-von-3; siehe [10] Kap. 4.5.5.) besteht aus drei voneinander unabhängigen, identisch auf-

Page 37: Architekturkonzept und Designaspekte einer …elib.suub.uni-bremen.de/publications/dissertations/E-Diss835_dis... · matik der gewachsenen heterogenen Struktur der ... Im zweiten

Auftretens von Mehrfachfehlern infolge einer kanalübergreifenden Störbeeinflussung (trotz getroffener EMV-Schutzmaßnahmen) zu senken, können die Replika leicht phasenverschoben betrieben werden (d.h. die Replikas befinden sich dann trotz gleichzeitig auftretender Stör-beeinflussung in unterschiedlichen Programmabarbeitungszuständen). Zur Realisierung eines signaltechnisch sicheren Systems muss die Wahrscheinlichkeit des gleichzeitigen Auftretens von Mehrfachfehlern als hinreichend klein angenommen werden können. Eingelesene Prozessdaten werden parallel verarbeitet. Weicht das Verarbeitungsergebnis einer Replika von den anderen beiden ab, wird diese Störung sofort offenbart und die gestörte Replika inaktiv geschaltet (einfacher Kanalausfall). Das Verarbeitungsergebnis der verbleibenden Replikas wird ausgegeben. Die verbleibenden aktiven Replikas arbeiten als 2-von-2 System ohne Redundanz weiter. Weicht zu einem späteren Zeitpunkt (bevor das System durch Wartungsaktivitäten wieder in den 2-von-3 Betriebsmode überführt wurde) das Verarbeitungsergebnis der verbleibenden Replikas voneinander ab, wird das System inaktiv geschaltet (weiterer Kanalausfall). Mit zusätzlichen, niederprior parallel ablaufenden Prüfprogrammen werden aktive Replikas ständig kontrolliert. Dieses Prinzip garantiert eine sehr kurze Fehleroffenbarungszeit von Rechnerkanalausfällen. Auch zunächst noch verdeckte Kanalausfälle offenbaren sich kurzfristig. Die folgende Abbildung zeigt die prinzipielle Struktur eines mehrkanalig redundanten signaltechnisch sicheren Rechners in 2-von-3-Konfiguration.

Replika AEingabe

Synchronisation

Rechnerkern

Vergleich

Ausgabe

&

Datenaustausch(A --> B)

Datenaustausch(A --> C)

(A -- B)Vergleich

(A -- C)

Replika BEingabe

Synchronisation

Rechnerkern

Vergleich

Datenaustausch(B --> C)

Datenaustausch(B --> A)

(B -- C)Vergleich

(B -- A)

Replika CEingabe

Synchronisation

Rechnerkern

Vergleich

Datenaustausch(C --> A)

Datenaustausch(C --> B)

(C -- A)Vergleich

(C -- B)

Ausgabe

&Ausgabe

&

Abbildung 9: prinzipielle Struktur eines mehrkanalig redundanten signaltechnisch sicheren Rechners

Die ATP-Applikationen (Automatik Train Protection) des FFB-Systems (siehe Abbildung 2) nutzen jeweils als signaltechnisch sichere Ablaufumgebung mehrkanalig redundante signaltechnisch sichere Rechner. Derartige Ablaufumgebungen sind ausreichend robust gegenüber Byzantinischen Fehlern (siehe [10] Kap. 4.5.7.), weil:

• die Komponenten zum Verteilen bzw. Vergleichen der Eingangsdaten und die Votinglogik zur Freigabe der Stellenergie in separater Hardware realisiert sind. Infolge der Separation von Eingabeverteilung, Rechnerkern und Votinglogik ist die Wahrscheinlichkeit des gleichzeitigen Auftretens von verdeckten Mehrfachfehlern auch innerhalb einer Replika ausreichend gering.

12

345

12

345

37

Page 38: Architekturkonzept und Designaspekte einer …elib.suub.uni-bremen.de/publications/dissertations/E-Diss835_dis... · matik der gewachsenen heterogenen Struktur der ... Im zweiten

• jede Replika über alle Eingangsdaten (Prozessgrößen, wie z.B. Momentangeschwindigkeit) verfügt und unabhängig von den anderen Replika verarbeitet.

• ein Datenaustausch (außerhalb der Eingabeverteilers) zwischen den Replika ausschließlich zu Votingzwecken erfolgt.

• die Votinglogik die Stellenergie für Prozessausgaben des ATP-Zugsicherungssystems kontrolliert. Eine fehlerhafte Replika wird durch Mehrheitsentscheidung der Nachbarreplika geblockt (Entzug der Stellenergie und Überführung in den Diagnosemodus), d.h. nur wenn alle anderen nicht geblockten Replika eine fehlerhafte Replika detektieren, blockt die Votinglogik diese Replika (Eine Fehlentscheidung auf Grund der fehlerhaften Replika selbst wird vermieden).

• die ATP-Applikationen des FFB-Systems jeweils nur einen signaltechnisch sicheren Rechner pro zu überwachende Komponente (Fahrzeug, FwE, FFB-Zentrale) nutzen (d.h. alle Prozesseingaben und Prozessausgaben werden komponentenbezogen zentralisiert verarbeitet bzw. angesteuert).

3.3.2 Struktur Koppelprotokoll

Das Koppelprotokoll dient der Organisation von verbindungsorientierten Nutzdatenkanälen zwischen der signaltechnisch nichtsicheren Kommunikationsplattform und dem sicheren Mehrfachrechnersystem. Die Diensteschnittstelle des Koppelprotokollstacks und das Nutzkanal-verhalten (verbindungsorientiert, asynchron, hoch priore Daten unterstützend und Telegramm-integrität bewahrend) sind identisch zum EURORADIO-Protokollstack. Die Eigenschaften des Koppelprotokolls (siehe 3.5.2) entsprechen grundsätzlich einem Tunnelprotokoll (Protokoll orga-nisiert einen Kommunikationsabschnitt zwischen zwei festgelegten Kommunikationspartnern),d.h. die in der Verbindungsanforderungsprimitive enthaltene Adressierungsinformation wird im Koppel-stack unverändert übertragen (getunnelt). Diese Adressierungsinformation ist für den Vermittlungs-akt in der signaltechnisch nichtsicheren Kommunikationsplattform bestimmt. Das Koppelprotokoll ist als einfaches Tunnelprotokoll ausgelegt, um die Komplexität der Kom-munikationsprotokolle im sicheren Mehrrechnersystem zu minimieren (durch das Auslagern signaltechnisch nichtsicherer Kommunikationsprotokolle, z.B. signaltechnisch nichtsicherer Teil der EURORADIO-Protokollschichten entsprechend Abbildung 12, ist die Komplexität der Kommu-nikationsprotokolle im sicheren Mehrrechnersystem auf das Koppelprotokoll reduziert). Der Protokollstack des Koppelprotokolls gliedert sich in eine Linkebene (LK) und eine auf die Dienste der Linkebene aufsetzende virtuelle Linkebene (VL).

3.3.2.1 Linkebene

Die Diensteschnittstelle der Linkebene (LK) (siehe Abbildung 10) stellt einen verbindungs-orientierten, fehlerkorrigierten, hoch priore Daten unterstützenden und die Telegrammintegrität bewahrenden Kanal bereit (bei redundanter Kopplung existieren mehrere Kanäle der Linkebene - siehe Abbildung 11). Der Aufbau und die Überwachung dieses Kanals erfolgt selbständig durch die Linkebene und unabhängig vom Kommunikationsbedarf auf der Virtuellen Linkebene. Beim Zusammenbruch der Linkebene durch äußere Einflüsse (Abschalten eines Kommunikationspartners, Ausfall der physischen Verbindung) versucht die Linkebene periodisch, den Kanal zu reetablieren.

38

Page 39: Architekturkonzept und Designaspekte einer …elib.suub.uni-bremen.de/publications/dissertations/E-Diss835_dis... · matik der gewachsenen heterogenen Struktur der ... Im zweiten

3.3.2.2 Virtuelle Linkebene

Die virtuelle Linkebene (VL) bildet die virtuellen Nutzkanäle an ihrer Diensteschnittstelle auf die unter ihr liegende Diensteschnittstelle der Linkebene ab. Das Verhalten der Diensteschnittstelle der virtuellen Linkebene entspricht grundsätzlich [X.214]. Dementsprechend wird bei der Signalisierung in kommende und gehende Rufe unterschieden. In der folgenden Abbildung wird das prinzipielle Verhalten des Koppelprotokolls in der Setup-Phase dargestellt.

virtuelleLinkebene (VL)

Linkebene (LK)

gehender Ruf

CON_REQ-PDU

CON_CNF-PDU

Invoker

CON_CNF-Primitive

Linkebene (LK)

kommender Ruf

CON_IND-Primitive

CON_RSP-Primitive

Responder

CON_RSP-PDU

CON_REQ-Primitive

CON_IND-PDU

virtuelleLinkebene (VL)

Abbildung 10: Koppelprotokoll in Setup-Phase eines virtuellen Nutzkanals

Infolge der asynchronen Eigenschaften der virtuellen Nutzkanäle ist es notwendig, deren Flusskontrollzustand zu synchronisieren. Im Koppelprotokoll erfolgt diese Synchronisierung durch Flusskontrollprimitiven (VL_XON, VL_XOFF). Die Abbildung der Virtuellen Linkebene (VL_Primitiven) auf die Diensteschnittstelle der Linkebene (VL-PDU) erfordert die Berücksichtigung (Aufschalten) des Flusskontrollzustandes der Linkebene auf die Flusskontrollzustände der virtuellen Linkebene, sowie das korrekte Auslösen bestehender Kanäle an der Diensteschnittstelle der virtuellen Linkebene beim Zusammenbruch der Linkebene.

3.3.2.3 Redundante Kopplung

Um eine vollständig redundante Kopplung zwischen einem 2-von-3 signaltechnisch sicheren Rechner und zwei (redundanten) signaltechnisch nichtsicheren Kommunikationsplattformen zu ermöglichen und dabei sowohl den einfachen Ausfall einer Replika des signaltechnisch sicheren Rechners als auch den Ausfall einer signaltechnisch nichtsicheren Kommunikationsplattform zu kompensieren, werden vier Kopplungsprotokoll-Linkbündel (LK) benötigt. Der auf jeder Replika

39

Page 40: Architekturkonzept und Designaspekte einer …elib.suub.uni-bremen.de/publications/dissertations/E-Diss835_dis... · matik der gewachsenen heterogenen Struktur der ... Im zweiten

des signaltechnisch sicheren Rechners identisch ablaufende Programmcode erhält durch Spiegelung der Eingangsdaten die Daten aller vier Links (Interface LK). Durch das Koppelprinzip erscheinen die zwei signaltechnisch nichtsicheren Kommunikationsplattformen jeweils mit zwei Links in jeder Replika des signaltechnisch sicheren Rechners. Die prinzipielle Verschaltung der redundant gekoppelten Kommunikationspartner ist in der folgenden Abbildung dargestellt.

Replika A

signaltechnisch sichererRechner (2-von-3)

virtu

elle

Lin

kebe

ne (V

L)

LK 1

LK 2

LK 3

LK 4

Inte

rface

LK 2

Inte

rface

LK 1

Replika B

virtu

elle

Lin

kebe

ne (V

L)

LK 1

LK 2

LK 3

LK 4

Inte

rface

LK 4

Inte

rface

LK 3

Replika C

virtu

elle

Lin

kebe

ne (V

L)

LK 1

LK 2

LK 3

LK 4

signaltechnischnichtsichereKommunikations-plattform A

virtu

elle

Lin

kebe

ne (V

L)

LK 1

LK 3

Inte

rface

LK 3

Inte

rface

LK 1

signaltechnischnichtsichereKommunikations-plattform B

virtu

elle

Lin

kebe

ne (V

L)

LK 2

LK 4

Inte

rface

LK 4

Inte

rface

LK 2

Abbildung 11: Prinzip der redundanten Ankopplung an ein 2-von-3 System

Zur effektiven Verwaltung der virtuellen Links (VL) auf den vier Linkbündeln werden Managementfunktionalitäten benötigt. Diese Managementfunktionalitäten lassen sich auch zur

40

Page 41: Architekturkonzept und Designaspekte einer …elib.suub.uni-bremen.de/publications/dissertations/E-Diss835_dis... · matik der gewachsenen heterogenen Struktur der ... Im zweiten

Realisierung von redundanten Vermittlungsclustern der signaltechnisch nichtsicheren Kommunika-tionsplattform verwenden (siehe 4.7.1).

3.3.3 Rückwirkungsfreiheit bei einkanalig signaltechnisch sicherer

Datenübertragung

Die signaltechnisch nichtsichere Kommunikationsplattform als Bestandteil des grauen Kanals trägt keine Sicherheitsverantwortung. Es besteht aber die Möglichkeit der indirekten Beeinflussung des signaltechnisch sicheren Gesamtsystems durch die signaltechnisch nichtsichere Kommunikations-plattform über deren Verfügbarkeit (MTBF). Die Rückwirkungsfreiheit der Schnittstelle im signaltechnisch sicheren Rechner zur Kommunika-tionsplattform ist eine weitere Voraussetzung für das signaltechnisch sichere Verhalten des Gesamt-systems. Im folgenden wird auf die prinzipiellen Bedrohungen und mögliche Schutzmaßnahmen eingegangen.

3.3.3.1 Bedrohung durch den grauen Kanal

Die Protokolle des graue Kanals PNONSAFE sowie das Koppelprotokoll PKOPPEL zwischen der signaltechnisch nichtsicheren Kommunikationsplattform als Bestandteil des grauen Kanals und dem signaltechnisch sicheren Rechner tragen keine Sicherheitsverantwortung. Der signaltechnisch sichere Rechner als Ablaufumgebung des eingesetzten Sicherungsprotokolls (PSAFE) trägt Sicherheitsverantwortung (SIL 4). In der folgenden Abbildung wird die prinzipielle Struktur der Protokollkomponenten und deren Protokollstacks dargestellt.

41

Page 42: Architekturkonzept und Designaspekte einer …elib.suub.uni-bremen.de/publications/dissertations/E-Diss835_dis... · matik der gewachsenen heterogenen Struktur der ... Im zweiten

o ffen e s N e tz

g ra u e r K a n al

S u b sy s te mK o m m u n ik a tion(S IL 0 )

s ig n a lte chn isc h s ich e re U m g e b un g

S chnitts te l lezu r s ichere nA pplika tion l

D S A FE

P S A F E

P N O N S A FE

P K O P P EL

S T A C K N O N S A F E

S T A C K K O P P E L

S T A C K S A F E

S T A C K K O P P E LK om p one nteS ic he ru ng(S IL 4 )

S u b sy s te mK o m m u n ik a tion(S IL 0 )

S chn itts te l lezu r s ichere nA pplika tion l

D S A FE

P K O P P E L

S T A C K N O N S A F E

S T A C K K O P P E L

S T A C K S A F E

S T A C K K O P P E LK om p one nteS ic heru ng(S IL 4 )

Abbildung 12: prinzipielle Struktur der Protokollkomponenten und deren Protokollstacks

Der Protokollstack STACKKOPPEL des signaltechnisch sicheren Rechners trägt aus seiner Koppel-funktion heraus keine Sicherheitsverantwortung. Es müssen aber Schutzmaßnahmen zur Vermei-dung von unzulässigen Rückwirkungen auf die signaltechnisch sichere Umgebung getroffen wer-den. Derartige Schutzmaßnahmen sind für den Koppelprotokollstack in der signaltechnisch nicht-sicheren Kommunikationsplattform nicht erforderlich. Stochastische oder systematische Störangriffe des grauen Kanals (Bedrohung) werden durch das Ende zu Ende wirkende EURORADIO Sicherungsprotokoll (PSAFE) abgewehrt (siehe 3.2.1).

3.3.3.2 Bedrohung durch Nichtverfügbarkeit der Kommunikation

Eine ausgefallene Kommunikation blockiert das gesamte Zugbeeinflussungssystem, so dass der Eisenbahnverkehr nur noch über sicherungstechnische Rückfallebenen (d.h. Deaktivierung des EURORADIO-basierten Zugbeeinflussungssystems und Übergabe der Sicherheitsverantwortung an ein alternatives Zugsicherungssystem u.U. mit geringerem Sicherheitslevel) abgewickelt werden kann. Besonders dann, wenn keine gleichwertige Rückfallebene zum Zugsicherungssystem verfügbar ist und manuelle Mitwirkung erforderlich ist, besteht die Gefahr einer wesentlichen Verschlechterung der Gesamtsystemsicherheit. Deswegen hat die Verfügbarkeit der Kommunikation für die Systemsicherheit einen hohen Stellenwert und führt zu besonderen Anforderungen an die nichtsichere Kommunikationsplattform und die unterlagerten Kommunikationsnetze. Diese Anforderungen können durch folgende Maßnahmen erfüllt werden:

• Einsatz von geeigneter hochverfügbarer Hardware • Verwendung von bewährter, stabiler und robuster Basissoftware (Betriebssystem,

Treiber) und Entwicklungsumgebung • Auswahl geeigneter Testverfahren, Testumgebung und Testziele

42

Page 43: Architekturkonzept und Designaspekte einer …elib.suub.uni-bremen.de/publications/dissertations/E-Diss835_dis... · matik der gewachsenen heterogenen Struktur der ... Im zweiten

• Anwendung eines bewährten Softwareentwicklungsprozesses • Implementierung von Redundanz

3.3.3.3 Bedrohung durch physikalische Einflüsse

Der Nachweis der zufriedenstellenden Funktion der Kommunikationsplattform (Verfügbarkeit, Zuverlässigkeit, Robustheit) unter definierten äußeren Randbedingungen und der zulässigen Rückwirkung (mechanisch, thermisch, elektro-magnetisch) auf andere Komponenten im Zugbeeinflussungssystem ist mit der Betriebszulassung erbracht (Betriebszulassung). Die Nachweisführung beinhaltet auch die Analyse der Bedrohungen durch EMV-Einflüsse an Hardwareschnittstellen des signaltechnisch sicheren Rechners. Die Kopplung zur signaltechnisch nichtsicheren Kommunikationsplattform erfordert eine oder mehrere Hardwareschnittstellen zum signaltechnisch sicheren Rechner. Es müssen Schutzmaßnahmen zur Vermeidung von unzulässigen Rückwirkungen auf die signaltechnisch sichere Umgebung getroffen werden (z.B. unverlierbare Isolation durch spezielle Schutzmaßnahmen, wie z.B. Schutzstreckenbemessung und Schirmungslagen, im Netzteil des signaltechnisch nichtsicheren Kommunikationsrechners). Eine redundante Kopplung stellt höhere Ansprüche an die Schutzmaßnahmen. Es müssen Maßnahmen zur Vermeidung von unzulässigen Wechselwirkungen zwischen den Replikas (des signaltechnisch sicheren Rechners) über die signaltechnisch nichtsichere Kommunikationsplattform getroffen werden (z.B. unverlierbare Isolation durch spezielle Optoelektronische Koppler an den Eingängen des signaltechnisch sicheren Rechners).

43

Page 44: Architekturkonzept und Designaspekte einer …elib.suub.uni-bremen.de/publications/dissertations/E-Diss835_dis... · matik der gewachsenen heterogenen Struktur der ... Im zweiten

44

Page 45: Architekturkonzept und Designaspekte einer …elib.suub.uni-bremen.de/publications/dissertations/E-Diss835_dis... · matik der gewachsenen heterogenen Struktur der ... Im zweiten

4 Gatewayarchitektur der Kommunikationsplattform

4.1 Lösungen für den Kommunikationsengpass Fahrzeug - Fahrwegelemente

Die Kommunikations-Charakteristik der FFB-Anwendung mit schnell wechselnden, kurzen Kommunikationsbeziehungen bei vergleichsweise langen Verbindungsaufbauzeiten führen unter bestimmten Konstellationen (hohe Dichte der Fahrwegelemente und gleichzeitig hohe Zugge-schwindigkeit) zu Performance-Problemen. Die Verwendung der Kommunikationsplattform löst diese Performance-Probleme durch folgende Konfigurationen: Dezentrale Gruppensteuerung Die Zusammenfassung von Streckenelementen zu Gruppen, die über eine Kommunikations-einrichtung angesprochen werden ist dann sinnvoll, wenn die Gruppenelemente räumlich benach-bart sind und ein geringer Verkabelungsaufwand anfällt. Der Verbindungsaufbau auf Netzebene ist nur einmal notwendig, um mit allen Fahrwegelementen der Gruppe zu kommunizieren. Zentrale Gruppensteuerung Multiplexing von Verbindungen und Weitervermittlung via Kommunikationsplattform in der FFB-Zentrale. Bei dieser Lösung werden in Fahrwegbereichen mit hoher Fahrwegelementdichte die Verbindungen vom Fahrzeug zu den Fahrwegelementen über den Umweg der Kommunikations-plattform in der FFB-Zentrale vermittelt (Gatewayfunktion). Die folgende Abbildung veranschaulicht den Mechanismus an einem Beispiel der zentralen Gruppensteuerung mit zwei Weichen und einem BÜ:

45

Page 46: Architekturkonzept und Designaspekte einer …elib.suub.uni-bremen.de/publications/dissertations/E-Diss835_dis... · matik der gewachsenen heterogenen Struktur der ... Im zweiten

Fahrwegrechner GW

Element3ETCS-ID 3

Element2ETCS-ID 2

Element1ETCS -ID 1

Multiplexing

Zentrale

GWW2

GWW1

GWBÜ

Abbildung 13: Multiplexen von Verbindungen in die Zentrale und Weitervermittlung zu den Fahrwegelementen

Nachdem die erste Verbindungsanforderung vom Fahrzeug (adressiert über die entsprechende ETCS-ID) zu einem dieser drei Fahrwegelemente an die Kommunikationsplattform (GW-Gateway) der Zentrale übergeben wurde, baut die Kommunikationsplattform der Zentrale eine Verbindung zum eigentlichen Ziel der Verbindungsanforderung auf. Der Nutzdatenverkehr zwischen Fahrzeug und Fahrwegelement wird dementsprechend über die Kommunikationsplattform der Zentrale geführt. Jede weitere Verbindungsanforderung (logische Verbindung) vom Fahrzeug an ein anderes Fahrwegelement wird über dieselbe physikalische Verbindung vom Fahrzeug in die Zentrale „gemultiplext“ und von dort weiter an das gewünschte Fahrwegelement vermittelt (was den Aufbau weiterer Verbindungen von der Kommunikationsplattform der Zentrale zu den entsprechenden Fahrwegelementen zur Folge hat). Sichere Verbindungen bestehen dabei nur Ende-zu-Ende zwischen dem Fahrzeug und den Fahrwegelementen. Für die FFB-Anwendung ist das Multiplexen via Zentrale transparent; d.h. es ist nicht sichtbar, über welchen Weg die Verbindung vermittelt wird. Die Applikationstelegramme unterscheiden sich nicht von Telegrammen, die direkt (ohne den Umweg über die Zentrale) an ein Fahrwegelement vermittelt werden. Der entscheidende Vorteil dieser Lösung besteht darin, dass ein einziges Mobile auf dem Fahrzeug ausreicht, um gleichzeitig mit mehreren Fahrwegelementen kommunizieren zu können.

4.2 Kommunikationsbeziehungen

Die Kommunikationsbeziehungen des FFB-Systems lassen sich effektiv mit Kommunikations-gateways realisieren, mit deren Hilfe aus mehreren Fahrwegelementen Kommunikationsgruppen gebildet werden. Fahrwegelemente können einzeln oder in Gruppen angesteuert werden (Gruppensteuerung). Die Gruppensteuerung wird wahlweise zentral (bei größerer Entfernung der Gruppenelemente) oder dezentral (bei eng benachbarten Gruppenelementen) organisiert.

46

Page 47: Architekturkonzept und Designaspekte einer …elib.suub.uni-bremen.de/publications/dissertations/E-Diss835_dis... · matik der gewachsenen heterogenen Struktur der ... Im zweiten

4.2.1 Einzelelemente

Im Fall einzelner Fahrwegelemente (keine Gruppe) erfolgt die Kommunikation zwischen Fahrzeug und Fahrwegelement direkt. Es erfolgen Rufe im FFB-Regelbetrieb ausschließlich zu den Fahrweg-elementen, aber nicht umgekehrt. Nur im Störungsfall erfolgen Rufe von den Fahrwegelementen zu einer zugehörigen FFB-Streckenzentrale. Es werden folgende Konfigurationen von Einzelelementen gefordert:

• Fahrzeuggerät mit wahlweise einem oder zwei Mobiles, 2x RS422 (ISO/IEC 2110) • Fahrwegelemente mit einem Mobile, • FFB-Zentrale über S2M an ISDN

In den Bildern ist die signaltechnisch nichtsichere Kommunikationsplattform bzw. dessen Kompo-nenten grau hinterlegt.

FFB-Zentrale

Kommunikations-plattform

S2M

Mobile

ISDN

Kommunikations-plattform

Mobile

MSC

Fahrzeug

Fahrwegelement

Mobile

Fahrwegelement

Mobile

Fahrwegelement

Mobile

Fahrwegelement

GSM-R

GSM-R

GSM-RGSM-RGSM-RGSM-R

Kommunikations-plattform

Kommunikations-plattform

Kommunikations-plattform

Kommunikations-plattform

Abbildung 14: Einzelne Fahrwegelemente

4.2.2 Zentrale Gruppensteuerung

Bei der Konfiguration einzelner Fahrwegelemente zu kommunikationsbezogenen Gruppen erfolgt die Kommunikation zwischen Fahrzeug und Fahrwegelementen generell über ein oder mehrere Gateways (Kommunikationsplattformen). Bei der zentralen Gruppensteuerung gibt es ein einziges Gateway in der FFB-Zentrale. Rufe von Zügen an Fahrwegelemente der zentralen Gruppensteuerung werden über die FFB-Zentrale geleitet. Damit wird erreicht, dass ein Zug nacheinander mit mehreren Fahrwegelementen kommunizieren kann, ohne jedes Mal eine neue zeitaufwendige GSM/R Verbindung einzurichten. Die zeitkritischen Stellvorgänge dicht benachbarter Fahrwegelemente werden dadurch entkoppelt. Für die FFB-Anwendung bleibt der Kommunikationsweg transparent. Es werden folgende Konfigurationen gebildet:

• Fahrzeuggerät mit wahlweise einem oder zwei Mobiles

47

Page 48: Architekturkonzept und Designaspekte einer …elib.suub.uni-bremen.de/publications/dissertations/E-Diss835_dis... · matik der gewachsenen heterogenen Struktur der ... Im zweiten

• Fahrwegelemente mit einem Mobile • FFB-Zentrale über S2M an ISDN, Gatewayfunktion ist in die Zentrale integriert

FFB-Zentrale

Kommunikationsplattform

S2M

Mobile

ISDN

Kommunikations-plattform

MobileGateway

MSC

kommunikationsbezogene Gruppe

Fahrzeug

Fahrwegelement

Mobile

Fahrwegelement

Mobile

Fahrwegelement

Mobile

Fahrwegelement

GSM-R

GSM-RGSM-R

GSM-R

GSM-RGSM-R

Kommunikations-plattform

Kommunikations-plattform

Kommunikations-plattform

Kommunikations-plattform

Abbildung 15: Zentrale Gruppensteuerung

4.2.3 Dezentrale Gruppensteuerung

Bei der dezentralen Gruppensteuerung erfolgt die Kommunikation zwischen Fahrzeug und Fahrwegelementen über ein Gruppen-Gateway. Es erfolgen Rufe im FFB-Regelbetrieb ausschließlich zu den Fahrwegelementen (FwE) aber nicht umgekehrt. Nur im Störungsfall erfolgen Rufe von den FwE zu einer zugehörigen FFB-Zentrale. Die Fahrwegelemente der dezentralen Gruppensteuerung sind untereinander verbunden, z.B. mit LAN. Ein Fahrwegelement in der dezentralen Gruppe besitzt eine zusätzliche Gatewayfunktion und vermittelt die eintreffenden Rufe an die anderen Gruppenmitglieder. Neben der Einsparung von Verbindungsaufbauzeiten für zeitkritisch dicht liegende Fahrwegelemente liegt der Vorteil dieser Gruppensteuerung auch in der Einsparung von GSM/R Mobiles. Für die Anwendung bleibt der Kommunikationsweg transparent. Es werden folgende Konfigurationen gebildet:

• Fahrzeuggerät und wahlweise ein oder zwei Mobiles • Fahrwegelemente über LAN vernetzt • FFB-Zentrale über S2M an ISDN • Fahrwegelement mit zusätzlicher Gateway-Funktionalität in der

Kommunikationsplattform LAN vernetzt und mit Mobilezugang

48

Page 49: Architekturkonzept und Designaspekte einer …elib.suub.uni-bremen.de/publications/dissertations/E-Diss835_dis... · matik der gewachsenen heterogenen Struktur der ... Im zweiten

FFB-Zentrale

Kommunikations-plattform

S2M

Mobile

ISDN

Kommunikations-plattform

Mobile

LAN LAN

Gruppe

Gateway

MSC

Fahrzeug

FahrwegelementFahrwegelement

LAN

Fahrwegelement

GSM-R

GSM-R

GSM-R

Kommunikations-plattform

Kommunikations-plattform

Kommunikations-plattform

Abbildung 16: Dezentrale Gruppensteuerung mit LAN und Zugang über Mobile und Gateway

4.3 Basisentscheidungen

Die signaltechnisch nichtsichere Kommunikationsplattform verwendet in allen Realisierungs-varianten für den Funk Fahr Betrieb die gleichen Software- und Betriebssystemkomponenten. Als Hardwareplattform werden für die Strecken- und Fahrzeugseite unterschiedliche Industrie-PC Systeme verwendet, die die jeweiligen Rahmenbedingungen der Betriebszulassung erfüllen. Als Betriebssystem wird Unixware SVR 4.2 eingesetzt. Durch die starke Entkopplung der Kommunika-tionsplattform vom unterlagerten Betriebssystem sind prinzipiell auch andere Hardwarealternativen möglich. In der mobilen Kommunikationsplattform gibt es aufgrund der mechanischen Umwelteigenschaften keinen beschreibbaren Massenspeicher. System und Daten müssen zur Laufzeit im Hauptspeicher gehalten werden. Die Kommunikationsplattform besitzt eine Gatewaystruktur, deren Kern eine frei projektierbare Vermittlungseinrichtung darstellt, d.h. die Vermittlung erfolgt zwischen beliebig ladbaren Proto-kollstacks (deren Protokollschichten als ablauffähiger Code in der Kommunikationsplattform vorhanden sind), die in Abhängigkeit der angeschlossenen Kommunikationsmedien und der Applikationsforderungen benutzt werden. Durch die verwendete Gatewaystruktur ist die Ankopplung an eine heterogene Infrastruktur mit unterschiedlichen Diensteschnittstellen möglich. Somit sind die in UNISIG spezifizierten Sicherungsverfahren über die Standardanwendung GSM/R hinaus für andere Varianten des „grauen Kanals“ verwendbar. Eine Adaption vorhandener Kommunikationsstrukturen (z.B. Nachbarzen-tralenkopplung über [MAP3.0/ CIRNET]) ist prinzipiell möglich. Die Software des Kommunikationssystems wird funktional und schalenförmig gekapselt. Für Standardfunktionen werden Basisbibliotheken entwickelt, die einheitliche Zugriffsmechanismen,

49

Page 50: Architekturkonzept und Designaspekte einer …elib.suub.uni-bremen.de/publications/dissertations/E-Diss835_dis... · matik der gewachsenen heterogenen Struktur der ... Im zweiten

Schnittstellen und Wiederverwendbarkeit sicherstellen. Dem SW-Entwickler können so konfigurierbare Standardbetriebsmittel auf hohem Abstraktionsniveau angeboten werden. Gleichzeitig wird die Abhängigkeit der Software vom unterlagerten Betriebssystem minimiert. Für die effiziente und performante Verarbeitung von Datenströmen wird der STREAMS-Mechanismus eingesetzt. Er bietet eine einheitliche und bewährte Ablaufumgebung im UNIX-Kernel und eine optimale Ankopplung an externe Schnittstellen (siehe [6] Kap. 17). Zusätzlich zum STREAMS-Mechanismus im UNIX-Kernel wird eine eigene Kommunikations-ablaufumgebung (STREAMS-Mechanismus im USER-SPACE siehe 5.3.3) genutzt. Mit dieser Erweiterung wird es möglich, Verarbeitungsketten aus einzelnen Funktionsmodulen im User-Bereich zu definieren und damit die Vorteile des STREAMS-Konzeptes auch für den User-Bereich zu erschließen.

4.4 Das Schalenmodell der Betriebsmittel

Um eine hohe Portabilität und Skalierbarkeit der Kommunikationsplattform zu ermöglichen, wird die Abhängigkeit von benötigten Betriebsmitteln durch eine schalenförmige Kapselung (Kommunikationsablaufumgebung) minimiert. Diese Ablaufumgebung entkoppelt die Kommunika-tionsfunktionalitäten (Kommunikationsprotokolle und Vermittlung von Kommunikationsverbindun-gen) von den Eigenschaften des verwendeten Betriebssystems und der Hardware.

Kommunikationsapplikation

U_STREAM

UTILS

HW

OS

BASE

US_S

PACE

User-Space

Kernel-Space

POSIX (Schnittstelle OS-Utils)

PC (Schnittstelle HW-OS)

KS_MODUL

Schnittstelle Ablaufumgebung Kommunikat

Abbildung 17: Schalenmodell der Betriebsmittel der Kommunikationsablaufumgebung

Die Softwarebasis bildet das Betriebssystem, das direkt auf der Hardware (z.B. PC-Architektur - TCP/IP over LAN, V24) aufsetzt und dem Anwender eine POSIX-Schnittstelle ([POSIX];[8] S.25, S.726) zur Verfügung stellt. Unterhalb der POSIX-API befindet sich der OS-KERNEL-Bereich, in welchem sich die (STREAMS)-Device-Treiber für die Hardware befinden. Oberhalb der POSIX-Schnittstelle beginnt der USER-Bereich, in welchem andere Programmierparadigmen als im OS-KERNEL-Bereich gelten.

50

Page 51: Architekturkonzept und Designaspekte einer …elib.suub.uni-bremen.de/publications/dissertations/E-Diss835_dis... · matik der gewachsenen heterogenen Struktur der ... Im zweiten

Die Kommunikationsplattform ist sowohl im OS-KERNEL-Bereich, als auch im USER-Bereich

51

aus einzelnen STREAMS-Modulen. Die verwendeten USER-STREAM-Module (Protokollschich-ten) werden in der US-SPACE-Bibliothek bereitgestellt. Sie bestehen aus verschiedenen

angeordnet. Die Kommunikationsapplikationen befinden sich in der äußeren Schale und sind dadurch am stärksten von den Schnittstelleneigenschaften der darunter liegenden Schalen entkoppelt. Betriebsmittel einer bestimmten Schale nutzen nur Betriebsmittel dieser und darunter liegender Schalen. Die Betriebsmittel der Kommunikationsplattform sind entsprechend ihren funktionalen Wechselwirkungen untereinander und dem Betriebssystem gegenüber in Schalen angeordnet. Im OS-KERNEL-Bereich der Kommunikationsplattform befindet sich die SW-Bibliothek KS_MODUL (siehe 5.2.1). Diese Funktionalität ist im Schalenmodell der Betriebsmittel der Kommunikationsplattform unterhalb der POSIX-API angeordnet und daher stark abhängig vom verwendeten Betriebssystem. Falls ein SVR4 UNIX kompatibles Betriebssystem (siehe [6] Kap. 1.1.10.) verwendet wird, ermöglicht diese SW-Bibliothek über die OS-KERNEL-Schnittstelle DDI/DKI (siehe [6] Kap. 16.7 und [14] Kap. 5.11) das Einbringen von Device-Treibern in den OS-KERNEL-Bereich. Die UTILS-Bibliotheken befinden sich im Schalenmodell in der untersten Schicht des USER-Bereichs. Sie stellen eine Reihe von häufig benötigten Grundfunktionen, wie

• Verwaltung von Listen und Datenpuffern, • Verwaltung von Standardschnittstellen (SOCKET, TLI, TTY) inklusive

nichtblockierendes Lesen (MULTIPLE WAIT), • Ereignis- und Zustandsverwaltung, • Trace und DEBUG Unterstützung, • rechner- und plattformübergreifende asynchrone Interprozesskommunikation und • Zeitbasen

für Kommunikationsapplikationen bereit. Mit der Einführung von UTILS wird die Betriebssystemabhängigkeit der Kommunikationsplattform auf die Bereitstellung einer POSIX-Schnittstelle (siehe [6] Kap. 1.1.8.) reduziert. Durch die UTILS-Bibliothek wird die Portierbarkeit der Kommunikationsplattform auf neue Betriebssysteme stark erleichtert, indem der Portierungsaufwand größtenteils auf die Anpassung dieser Bibliothek beschränkt ist. Die BASE-Bibliothek hat eine Sonderstellung im Schalenmodell der Kommunikationsplattform, da sie sowohl auf Systemfunktionen des UNIX SVR4 OS-KERNEL (DDI/DKI siehe [14] Kap. 5.11.), als auch auf UTILS-Funktionen zugreift. Zweck dieser Bibliothek ist es, eine einheitliche Nutzerschnittstelle auf Basis minimaler Betriebsmittel, wie Listenverwaltung, Zustandsverwaltung, Speicherverwaltung und TRACE/DEBUG Unterstützung bereitzustellen. Software, die auf der BASE-Bibliothek aufsetzt, kann sowohl im OS-KERNEL-Bereich, als auch im USER-Bereich ohne Änderungen ablaufen. D.h., BASE bietet die volle Portabilität des Codes zwischen OS-KERNEL- und USER-Space. Für den auf BASE aufsetzenden Code ist es somit unerheblich, ob er im OS-KERNEL-Bereich oder im USER-Bereich läuft. Die Überlappung der Flächen von KS-Modul und BASE-Bibliothek bedeutet, dass ein Teil der Funktionen des KS-Moduls auf der Nutzerschnittstelle von BASE aufsetzt. Auf die Funktionen von UTILS greift die Betriebssystemerweiterung U_STREAM (siehe 5.3.3) zu, die als weitere SW-Schale der Kommunikationsplattform fungiert. U_STREAM bietet eine betriebssystemunabhängige STREAMS-Ablaufumgebung im USER-Bereich, analog zu STREAMS im OS-KERNEL-Bereich. Die Ablaufumgebung erlaubt die Konfiguration von STREAMS-Ketten

Page 52: Architekturkonzept und Designaspekte einer …elib.suub.uni-bremen.de/publications/dissertations/E-Diss835_dis... · matik der gewachsenen heterogenen Struktur der ... Im zweiten

Konvertern, Multiplexern und Ports, die per Konfiguration miteinander verkettet werden und damit den USER-STREAM bilden. Die STREAMS-Module von US_SPACE erfordern die Bereitstellung der Ablaufumgebung U_STREAM. Die Basisbibliotheken UTILS und U_STREAM kapseln die betriebssystemabhängigen System-funktionen von den Kommunikationsplattform-Komponenten. Bei einer Portierung der Kommunikationsplattform auf andere Systeme müssen nur diese Basisbibliotheken sowie die im OS-KERNEL ablaufenden Protokolle portiert werden. Die äußere Schale der Softwarearchitektur wird durch die Kommunikationsapplikation(en) gebildet. Die Applikationen greifen auf die Dienste der USER-STREAM-Ketten (Protokollstacks) zurück. Die USER-STREAM-Ketten stellen für die Applikationen Treiber für die externe Kommunikation (z.B. zum GSM-Mobile) dar, während die Vermittlung zwischen den Nutzdatenkanälen und die Ermittlung und Konvertierung von Rufvektoren in den Applikationen stattfindet (Gatewaytechnologie). Die Applikationen triggern HW-Watchdogs (Ausbleiben des Triggerns mindestens einer Applikation führt zum HW-Reset und damit zum Booten des Systems), die die ordnungsgemäße Funktionalität des Systems überwachen.

4.5 Das Schichtenmodell der Kommunikationsstacks

Die in der Kommunikationsplattform ablaufenden Kommunikationsprotokolle sind entsprechend dem OSI-Schichten-Modell in einzelnen Layern (mit über Diensteschnittstellen definierten Wech-selwirkungen) umgesetzt. Die im USER-Bereich der Kommunikationsplattform ablaufenden Kommunikationsstacks unterliegen der in der folgenden Abbildung dargestellten logischen Struktur.

S c h ic h te n m o d e l l d e r K o m m u n ik a t io n s s ta c k s in d e r K o m m u n ik a t io n s p la tt f o rm

O S -K e rn e l

In p u t/O u tp u t ( fd )

M u lt ip le W a it C a llb a c k ( p o l l /s e le c t )B a s is S c h e d u le

In p u t ( re a d )

In te rp ro ze ss -K o m m u n ik a tio n

C a llb a ck(r c v )

O u tp u t (w r ite )

c ls v r -L ib

P o o l

M u x - P o o l

P o r t -P o o l

K o n v- P o o l

K o m m u n ika t io n s a p p l ik a tio n (V e rm it tlu n gs lo g ik )

S ta c ks

u s _c h a n n e lK o nfig u ra tio nO u tp u t

(s e n d )

U S E n g in e

Q u e u eV e r w a lt u n g

S e r v i ce -S ch e d u le

U se r S tre a m

K o m m u n ika tio n s ta sk(U S E R _ S P A C E )

in te rnF lo w - C n t l

u s- H e a d u s - H e a d u s- H e a d

u s- K o n v

u s- K o n v

u s - K o n v u s- K o n v

u s - M u ltip le x e r

Z e it b a s i s

C a llb a ck(t im e h a n d le r)

u s- K o n v

u s- K o n v

u s - K o n v

u s - K o n v

u s- P o r t u s - P o r t

K o n fig u r a tio n s d a te ie n

T r a c e d a te ie n

F ile sy s t e m

T im e jo b s

D e la y tre ib e r

T T Y T L I /S o ck e t

H a r d w a re tre ib e r

T C P / IP IS D N

C A P I

R S 2 3 2R S 4 2 2T im e r

Abbildung 18: Struktur Kommunikationsstacks der Kommunikationsablaufumgebung

52

Page 53: Architekturkonzept und Designaspekte einer …elib.suub.uni-bremen.de/publications/dissertations/E-Diss835_dis... · matik der gewachsenen heterogenen Struktur der ... Im zweiten

Die im OS-KERNEL-Bereich dargestellten Strukturelemente werden von der Kommunikations-task ausschließlich über Filediskriptoren (Input/Output(fd)) angesprochen. In der Multiple Wait Callback Struktur sind für alle relevanten Filedeskriptoren Callback-Handler registriert. Steht an einem Filedeskriptor ein Ereignis zum Bearbeiten in der Kommunikationstask bereit, wird der entsprechend registrierte Callback-Handler aufgerufen. Der Callback-Handler als Funktion eines höheren Strukturelementes (z.B. us-Port, Zeitbasis oder Interprozesskommunikation) führt alle notwendigen Aktivitäten zur Bearbeitung des Filedeskriptorereignisses inklusive etwaiger (non-blocked) Read/Write-Operationen aus. Nach Abarbeitung aller an den Filedeskriptoren anstehenden Ereignissen wird der Basis Schedule aktiviert. Dieses Strukturelement aktiviert nacheinander alle registrierten sekundären rechenwilligen Scheduler. Beispielsweise ist die Verwaltung der Messagequeues der USER-STREAM Engine (siehe 5.3.3) als sekundärer Scheduler realisiert. Diese Verwaltung aktiviert nacheinander alle rechenwilligen USER-STREAM Messagequeue Service-routinen. Die Rechenwilligkeit von Serviceroutinen hängt von der Anwesenheit von Nachrichten und dem Flusskontrollzustand der jeweiligen Messagequeue ab. Danach geht die Kommunikations-task wieder in den Wartezustand bis zum Eintreffen neuer Filedeskriptor-Ereignisse. Ein laufender Callback-Handler kann nicht durch einen anderen Callback-Handler unterbrochen werden, d.h. zu einem Zeitpunkt läuft maximal ein Callback-Handler (siehe 5.2.2). Die Interprozesskommunikation (siehe 4.6.2) steht der Kommunikationsapplikation (Vermittlungslogik) und den Modulen des USER_STREAM zur Verfügung. Die Anbindung an die OS-KERNEL-abhängigen Betriebsmittel (TTY und TLI) erfolgt über die clsvr-Bibliothek. Die Zeitbasis (siehe 5.2.3) benötigt im OS-KERNEL einen Delaytreiber. Die Kommunikation zwischen Zeitbasis im USER-Space und Delaytreiber im OS-KERNEL-Space erfolgt über einen in der Multiple Wait Callback Struktur registrierten Filedeskriptor. Die Kommunikationsstacks des USER-Bereiches laufen in der USER-STREAM Umgebung (siehe 5.3.3) ab. Der Ablaufcode der Protokollayer ist in Pool-Strukturen organisiert. Entsprechend den Schnittstellenanforderungen der einzelnen Protokollayer werden Konverter (Konv-Pool) oder Multiplexer (Mux-Pool) verwendet. Kommunikationsschnittstellen zwischen dem USER_STREAM-Modell und dem Input/Output Bereich werden über Ports (Port-Pool) realisiert. Ein Port adaptiert den Message-orientierten Nachrichtenverkehr des User-Stream an den jeweiligen (proprietären) Datenverkehr der zu unterstützenden Fildeskriptor-basierten Schnittstelle. Über die us_channel Konfiguration (siehe 5.3.3.1) sind auf Basis der in den Pool-Strukturen hinterlegten Protokollfunktionalitäten Protokollstack-Profile hinterlegt. Die Kommunikations-applikationen können auf Basis dieser Protokollstack-Profile die benötigten Kommunikationsstacks instanziieren. Die USER-STREAM-Engine sorgt für den korrekten Ablauf der instanziirten Kommunikationsstacks entsprechend den Streams-Konventionen. Die folgende Abbildung zeigt den strukturellen Aufbau des Euroradio-Protokollstacks für ein FFB-Fahrzeuggerät als Beispiel (konfigurierte Instanz) für einen nach dem Schichtenmodell der Kommunikationsplattform (siehe Abbildung 18) umgesetzten Protokollstack.

53

Page 54: Architekturkonzept und Designaspekte einer …elib.suub.uni-bremen.de/publications/dissertations/E-Diss835_dis... · matik der gewachsenen heterogenen Struktur der ... Im zweiten

Kommunikationstask

ER Protokolle

TR_T.70

TR _aH D LC

T R _ M D M X

Mobile Kopplung

T R _ M D C V

L K _ P O R T

c o m 1 c o m 2 c o m n + 1

TR-IF(MOD)

TRTR _M UX

Responder

TR-IF

Invoker

Gateway-Vermittlungslogik

TR _ CA LL_ TO TR _ CA LL_ TO

TR_T.70 TR_T.70

TR_aH D LC TR _aHD LC TR-IF

T R _ M D C V

L K _ P O R T

T R _ M D C V

L K _ P O R T

LK-IF

ASY-Treiber

OS-Kernel

M o b i le M o b i le M o b i le

Abbildung 19: EURORADIO-Protokollstack FFB-Fahrzeuggerät

Der EURORADIO-Protokollstack für ein FFB-Fahrzeuggerät stellt eine Kombination von Protokollschichten dar. Entsprechend dem Schichtenmodell der Kommunikationsstacks der Kommunikationsplattform (siehe Abbildung 18) laufen die in der Kommunikationstask realisierten Protokollschichten (ER-Protokolle, Mobile-Kopplung) und die Gateway-Vermittlungslogik (Kommunikationsapplikation) im USER-SPACE ab. Die Funktionalitäten der einzelnen Protokollschichten sind als ablauffähiger Programmcode in den Poolstrukturen der Kommunikationsplattform enthalten. Die Ausprägung der Protokollparameter der einzelnen Protokollschichten (z.B. Windowsize des asynchronen HDLC-Protokolls der Linkebene) sowie die Oberhalb/Unterhalb-Relationen der Protokollschichten im Stack sind in hierarchisch organisierten

Kommunikationsrechner Fahrzeug- Funkstack (V.25ter-Interface) -

54

Page 55: Architekturkonzept und Designaspekte einer …elib.suub.uni-bremen.de/publications/dissertations/E-Diss835_dis... · matik der gewachsenen heterogenen Struktur der ... Im zweiten

us_channel-Konfigurationsfiles definiert. Der verwendete Protokollstack unterteilt sich in drei

55

Bereiche: Ankopplung des GSM/R Endgerätes: Das GSM/R Endgerät ist über eine serielle Schnittstelle an den Kommunikationsrechner angeschlossen. Die serielle Schnittstelle wird vom ASY-Treiber (com1 – com n) angesteuert. Der ASY-Treiber ist als STREAMS-Treiber realisiert und Bestandteil des Betriebssystems. Die Ablaufsteuerung des TR_MDMX organisiert die Aktivierung des Stacks zur Ansteuerung des GSM/R-Endgerätes über die serielle Schnittstelle. Das TR_MDCV-Modul, das während der Aktivierung des Stacks geladen wird, adaptiert die V25.ter Schnittstelle. Der aktivierte Stack wird unterhalb des TR_MDMX-Multiplexers gelinkt. Damit wird die Kommunikationsressource an den TR_MDMX-Multiplexer übergeben. Der TR_MDMX-Multiplexer stellt die Kommunikationsressourcen über das Interface TR_IF den darüber liegenden Protokollen zur Verfügung. In der Kanalabbauphase eines GSM/R Endgerätes wird der Stack, der das GSM/R Endgerät ansteuert, deaktiviert. EURORADIO Protokollkörper: Für den Ablauf des Transportprotokolls stellt der TRTR_MUX über ein internes Interface eine Ablaufumgebung zur Verfügung. Entsprechend der Konfiguration des TRTR_MUX wird die gewünschte Transportprotokollvariante (Euroradio TP2) geladen. Der Zugriff auf die Netzebene und die Stackkonfiguration wird ebenfalls über die TRTR_MUX-Konfiguration ausgewählt. Die Verwaltung der Netzbeziehungen wird durch den TRTR_MUX organisiert. Wird ein Transportkanal angefordert, etabliert der TRTR_MUX den benötigten Netzlink oder verwendet einen bereits bestehenden. Die TR-Interface konformen Module TR_aHDLC und TR_T70 repräsentieren die Link- und Netzschicht des EURORADIO-Stacks. Ankopplung an die Gateway-Vermittlungslogik (Vermittlungskern): Der Vermittlungskern (siehe 5.4.3) ist über einen TR-Interface konformen USER-STREAM-STACK mit dem TRTR_MUX verbunden. Das TR_CALL_TO-Modul erweitert einlaufende Ver-bindungsanforderungen mit zusätzlichen fest projektierten Vermittlungsinformationen für die Gateway-Vermittlungslogik (Festlegung des Protokollstacks für die Weitervermittlung).

4.6 Varianten interner Kommunikationsbeziehungen

4.6.1 Verbindungsorientierte Kommunikation

Die Vermittlungslogik der Kommunikationsapplikation für EURORADIO-Protokoll und Koppel-protokoll ist verbindungsorientiert. Das Verhalten der Diensteschnittstelle der Transportebene entspricht grundsätzlich [X.214]. Dementsprechend wird bei der Signalisierung in kommende und gehende Rufe unterschieden:

• Listener – Signalisierung einlaufender Rufe, • Responder – Annahme eingelaufener Rufe, • Invoker – Versenden abgehender Rufe, • Lokale Aktivitäten – Steuerprimitiven zur Selektion des Betriebsverhaltens.

Page 56: Architekturkonzept und Designaspekte einer …elib.suub.uni-bremen.de/publications/dissertations/E-Diss835_dis... · matik der gewachsenen heterogenen Struktur der ... Im zweiten

Die lokalen Aktivitäten bestehen in der Aktivierung des Diensteproviders zur Festlegung seines Betriebsverhaltens (Listener, Responder oder Invoker) entsprechend übergebener Parameter (z.B. ETCS-Service).

4.6.2 Interprozesskommunikation

Die Interprozesskommunikation der Kommunikationsplattform ist auf Basis der Client-Server Technologie realisiert (siehe [7] Kap. 8.2.4, [8]). Durch die Netzdarstellung (Big Endian) von Parametern ist sie plattformübergreifend ausgelegt. Interne Datenkorrekturverfahren stellen minimale Forderungen an die Basiskommunikationsmittel (TLI/TCP oder TTY). Das Nutzer-interface (API) stellt eine asynchrone Kommunikation zur Verfügung. Für jeden Kommunikations-endpunkt sind zum ereignisorientierten Empfang „callback“ Empfangshandler vorzusehen. Es wird ein prozess- und plattformübergreifendes „Remote Call Verfahren“ bereitgestellt.

4.6.3 Verbindungslose Kommunikation

Die verbindungslose Kommunikation wird in der signaltechnisch nichtsicheren Kommunikations-plattform zum Austausch von Abbildungen des Vermittlungszustandes (d.h. Anzahl der gerade vermittelten Nutzdatenkanäle, sowie die Adressinformation der beiden Kommunikationspartner von bereits vermittelten Nutzdatenkanälen) zwischen redundanten Vermittlungskernen (siehe 5.4.3) verwendet (zyklisch und bei Änderung des Status der Nutzkanalverbindungen). Die verbindungs-lose Kommunikation (Broadcast) hat den Vorteil, alle Gatewayinstanzen (Gatewayinstanz: Ver-mittlungskern inklusive instanziierter Protokollstacks) eines Vermittlungsclusters gleichzeitig zu erreichen und die Gatewayinstanzen eines Vermittlungsclusters (siehe 4.7.1) nicht zu blockieren, falls eine Gatewayinstanz ausfällt.

4.7 Die Grundstruktur der Kommunikationstask

Die grundsätzliche Funktion einer Kommunikationstask, entsprechend der Kommunikations-ablaufumgebung (siehe Abbildung 18), besteht in der Vermittlung von verbindungsorientierten Datenkanälen, welche als kommende oder gehende Verbindungen auf unterschiedlichen, instanziierbaren Protokollstacks abgebildet sind. Einfacher Anwendungsfall – Vorrechner Ein einfacher Anwendungsfall der Kommunikationsplattform besteht in der Verwendung als signaltechnisch nichtsicherer Vorrechner (Kommunikationsgateway) eines signaltechnisch sicheren Applikationsrechners (z.B. FFB-Fahrzeuggerät). Die folgende Abbildung zeigt die gemäß Schichtenmodell (siehe Abbildung 18) in der Kommunikationstask ablaufenden Komponenten für die Vermittlung von Datenkanälen. Aufgabe der Kommunikationsplattform ist neben der Vermittlung von Datenkanälen und der EURORADIO-konformen Datenübertragung, die Ankopplung an den signaltechnisch sicheren Rechner und die Adaption an dessen eingeschränkte Kommunikationsmöglichkeiten.

56

Page 57: Architekturkonzept und Designaspekte einer …elib.suub.uni-bremen.de/publications/dissertations/E-Diss835_dis... · matik der gewachsenen heterogenen Struktur der ... Im zweiten

User Stream

Kommunikationstask

EURORADIO-Protokollstack

Kopplungs-Protokollstack

Kommunikationsapplikation(Gateway-Vermittlungslogik)

Kommunikationsrechner

Kopplung zum signaltechnischsicheren Applikationsrechner

zum externenKommunikationsmedium

Abbildung 20: Kommunikationsplattform als signaltechnisch nichtsicherer Vorrechner

Komplexer Anwendungsfall – Vermittlungscluster Ein komplexer Anwendungsfall der Kommunikationsplattform besteht in der Verwendung von redundant gekoppelten Clusteranordnungen (siehe 4.7.1) mehrerer Kommunikationsgateways. Derartige Vermittlungscluster können als hoch verfügbare Netzübergänge genutzt werden, falls (z.B. in der FFB-Zentrale) neben dem GSM/R-Netz ein weiteres Kommunikationsmedium als Rückfallebene (z.B. öffentliches ISDN/GSM-Netz) zur Verfügung steht. Die folgende Abbildung zeigt die grundsätzliche Verschaltung zweier Kommunikationsplattformen zu einem redundanten Vermittlungscluster:

57

Page 58: Architekturkonzept und Designaspekte einer …elib.suub.uni-bremen.de/publications/dissertations/E-Diss835_dis... · matik der gewachsenen heterogenen Struktur der ... Im zweiten

User Stream

Kommunikationstask

Kopplungs-Protokollstack

Kommunikationsapplikation(Gateway-Vermittlungslogik)

Kommunikationsrechner

clusterinterne Kopplung

zum externenKommunikationsmedium

EURORADIO-Protokollstack

User Stream

User Stream

Kommunikationstask

Kommunikationsapplikation(Gateway-Vermittlungslogik)

Kommunikationsrechner

zum externenKommunikationsmedium

EURORADIO-Protokollstack

User Stream

Kopplungs-Protokollstack

Abbildung 21: Kommunikationsplattform in prinzipieller Ausprägung als Vermittlungscluster

58

Page 59: Architekturkonzept und Designaspekte einer …elib.suub.uni-bremen.de/publications/dissertations/E-Diss835_dis... · matik der gewachsenen heterogenen Struktur der ... Im zweiten

Zur clusterinternen Kommunikation zwischen den Kommunikationsgateways wird der redundante

59

Koppelprotokollstack (siehe 3.3.2) verwendet. Durch die Verwendung des Koppelprotokolls ist die clusterinterne Kommunikation tolerant gegenüber Ausfällen der intern verwendeten Kommunikationsmedien. Die clusterinterne Kommunikation ist für die externen Kommunikations-partner transparent. Die Vermittlung von kommenden und gehenden Nutzdatenkanälen abgebildet auf netzproviderabhängige Protokollstacks (z.B. EURORADIO) zur Kommunikation nach außen wird über diejenige Clusterkomponente realisiert, welche den Zugang zum entsprechenden externen Netz unterhält. Durch die Entkopplung der externen Kommunikationsmedien zum einen, und der Umsetzung der clusterinternen Kommunikation auf ein einheitliches Koppelprotokoll, lassen sich ausschließlich die gewünschten Nutzdatenkanäle über unterschiedliche Kommunikationsmedien und Provider-strukturen abbilden.

4.7.1 Vermittlungscluster

Um das Gesamtsystem tolerant gegenüber Ausfällen in der signaltechnisch nichtsicheren Kommunikationsplattform selbst, sowie Ausfällen der angeschlossenen Kommunikationsmedien (Netzwerk) zu gestalten, werden die Kommunikationsgateways in mehrere Ebenen von Vermittlungsclustern zusammengeschaltet. Ein Vermittlungscluster stellt einen logischen redundanten Anschluss an ein Netzwerk oder ein logischen Netzwerkverbund dar und enthält beliebig viele (redundante) Kommunikationsgateways und Netzzugänge (z.B. ISDN-Basiskanäle). Es ist in der Lage, Verbindungen zu einer Zielinstanz aufzubauen und zu verwalten. In Abhängigkeit von der Ausprägung eines Vermittlungsclusters und den verfügbaren Netzanschlüssen kann ein Vermittlungscluster alternative Verbindungen zu einer Zielinstanz aufbauen. Mit Hilfe einer durch Kopplung bewirkten speziellen Informations-übertragung können ausgefallene Komponenten eines Vermittlungsclusters erkannt und von der Vermittlung von Verbindungen suspendiert werden. Ein Vermittlungscluster kann auf Anforderung (eines externen Anwenders) Verbindungen zwischen verschiedenen externen Netzschnittstellen innerhalb und (bei Vorhandensein weiterer Vermittlungscluster auch) außerhalb des Vermittlungs-clusters vermitteln. Eine redundante Anordnung enthält mindestens ein Vermittlungscluster. Bei Bedarf können auch weitere Vermittlungscluster eingerichtet und verschaltet werden. In diesem Fall können auch alternative Verbindungen zwischen mehreren Vermittlungsclustern vermittelt werden. Die Anzahl der dafür benutzten Rechner ist skalierbar und hängt von den Anforderungen an Last und Verfügbarkeit, der Art und Anzahl der externen Netzschnittstellen und den Gegebenheiten der örtlichen Anlage ab. In nachfolgender Abbildung wird beispielhaft die Architektur und logische Kopplung zweier Vermittlungscluster mit jeweils drei Kommunikationsgateways auf der Basis von drei redundanten signaltechnisch nichtsicheren Kommunikationsplattformen dargestellt. Jeder Rechner enthält dabei je ein Gateway (Gateway-Vermittlungslogik) eines Vermittlungsclusters. Diese Anordnung ist funktionsfähig, solange mindestens ein Rechner mit mindestens 2 Netzanschlüssen (1 x kommend, 1 x gehend) in Betrieb ist. Der Ausfall von Netzanschlüssen, Kopplungsmedien und Gateway-rechnern kann toleriert werden. Die Ausfälle führen ggf. zum Kommunikationsabbruch bestehender Verbindungen und zu Einschränkungen im Hochlastbereich. Solange die Funktionsfähigkeit der Anlage besteht und freie Netzanschlüsse vorhanden sind, können jedoch neue Verbindungen eingerichtet werden.

Page 60: Architekturkonzept und Designaspekte einer …elib.suub.uni-bremen.de/publications/dissertations/E-Diss835_dis... · matik der gewachsenen heterogenen Struktur der ... Im zweiten

EXTERNER ÜBERTRAGUNGS-PROTOKOLLSTACK 1

Gateway 1-1

Kommunikations-plattform 1

Vermittlungs-cluster 1

Gateway 2-1

EXTERNER ÜBERTRAGUNGS-PROTOKOLLSTACK 4

KOPPELSTACKCLUSTEREXTERNEKOPPLUNGCLUSTER 2

KOPPELSTACKCLUSTERINTERNEKOPPLUNGCLUSTER 1

EXTERNER ÜBERTRAGUNGS-PROTOKOLLSTACK 2

Gateway 1-2

KOPPELSTACKCLUSTEREXTERNEKOPPLUNGCLUSTER 2

KOPPELSTACKCLUSTERINTERNEKOPPLUNGCLUSTER 1

EXTERNER ÜBERTRAGUNGS-PROTOKOLLSTACK 3

Gateway 1-3

KOPPELSTACKCLUSTEREXTERNEKOPPLUNGCLUSTER 2

KOPPELSTACKCLUSTERINTERNEKOPPLUNGCLUSTER 1

Vermittlungs-cluster 2

KOPPELSTACKCLUSTERINTERNEKOPPLUNGCLUSTER 2

KOPPELSTACKCLUSTERINTERNEKOPPLUNGCLUSTER 1

Gateway 2-1

EXTERNER ÜBERTRAGUNGS-PROTOKOLLSTACK 4

KOPPELSTACKCLUSTERINTERNEKOPPLUNGCLUSTER 1

KOPPELSTACKCLUSTERINTERNEKOPPLUNGCLUSTER 1

KOPPELSTACKCLUSTERINTERNEKOPPLUNGCLUSTER 1

KOPPELSTACKCLUSTERINTERNEKOPPLUNGCLUSTER 1

KOPPELSTACKCLUSTERINTERNEKOPPLUNGCLUSTER 1

KOPPELSTACKCLUSTERINTERNEKOPPLUNGCLUSTER 1

Kommunikations-plattform 2

Gateway 2-1

EXTERNER ÜBERTRAGUNGS-PROTOKOLLSTACK 4

KOPPELSTACKCLUSTERINTERNEKOPPLUNGCLUSTER 1

KOPPELSTACKCLUSTERINTERNEKOPPLUNGCLUSTER 1

KOPPELSTACKCLUSTERINTERNEKOPPLUNGCLUSTER 1

KOPPELSTACKCLUSTERINTERNEKOPPLUNGCLUSTER 1

KOPPELSTACKCLUSTERINTERNEKOPPLUNGCLUSTER 1

KOPPELSTACKCLUSTERINTERNEKOPPLUNGCLUSTER 1

Gateway 2-2

EXTERNER ÜBERTRAGUNGS-PROTOKOLLSTACK 5

KOPPELSTACKCLUSTERINTERNEKOPPLUNGCLUSTER 1

KOPPELSTACKCLUSTERINTERNEKOPPLUNGCLUSTER 2

KOPPELSTACKCLUSTERINTERNEKOPPLUNGCLUSTER 1

KOPPELSTACKCLUSTEREXTERNEKOPPLUNGCLUSTER 1

Kommunikations-plattform 3

Gateway 2-3

EXTERNER ÜBERTRAGUNGS-PROTOKOLLSTACK 6

KOPPELSTACKCLUSTERINTERNEKOPPLUNGCLUSTER 1

KOPPELSTACKCLUSTERINTERNEKOPPLUNGCLUSTER 2

KOPPELSTACKCLUSTERINTERNEKOPPLUNGCLUSTER 1

(CLUSTER 1, PLATTFORM 1) (CLUSTER 1, PLATTFORM 2) (CLUSTER 1, PLATTFORM 3)

(CLUSTER 2, PLATTFORM 1) (CLUSTER 2, PLATTFORM 2) (CLUSTER 2, PLATTFORM 3)

Abbildung 22: Redundante Kopplung zweier Vermittlungscluster mit jeweils drei Kommunikationsgateways

Die Gateways der Vermittlungscluster sind auf verschiedene Art miteinander gekoppelt: Kopplung der Gateways innerhalb eines Vermittlungsclusters Alle Gateways innerhalb eines Vermittlungsclusters sind derart gekoppelt, dass logische Verbin-dungen von einem Gateway des Vermittlungsclusters zu allen anderen Gateways desselben Vermittlungsclusters einschließlich zu sich selbst eingerichtet werden können. Kopplung der Gateways zwischen unterschiedlichen Vermittlungsclustern Jedes Gateway eines Vermittlungsclusters ist mit allen Gateways eines anderen Vermittlungs-clusters derart gekoppelt, dass logische Verbindungen von einem Gateway eines Vermittlungs-clusters zu allen Gateways eines anderen Vermittlungsclusters eingerichtet werden können. Die protokolltechnische Umsetzung der Kopplung erfolgt mittels Koppelstacks. Ein Koppelstack enthält dabei ein oder mehrere Übertragungsprotokolle. Jeder Gatewayrechner besitzt so viele

60

Page 61: Architekturkonzept und Designaspekte einer …elib.suub.uni-bremen.de/publications/dissertations/E-Diss835_dis... · matik der gewachsenen heterogenen Struktur der ... Im zweiten

Koppelstacks, wie es Vermittlungscluster im Netzwerk gibt. Der erste Koppelstack dient der

61

Kommunikationsplattform besteht in der Bereitstellung von Linkbündeln zur Abbildung von

Kopplung der Gateways eines Vermittlungsclusters untereinander und der Kopplung eines Gateways zu sich selbst (clusterinterne Kopplung). Der zweite Koppelstack dient der Kopplung eines Gateways eines Vermittlungsclusters mit allen Gateways eines anderen Vermittlungsclusters (clusterexterne Kopplung). Werden mehr als zwei Vermittlungscluster miteinander verschaltet, dient jeder weitere Koppelstack der Kopplung eines Gateways eines Vermittlungsclusters mit den Gateways eines weiteren Vermittlungsclusters (clusterexterne Kopplung). Zwei gekoppelte Koppelstacks verwalten ein gemeinsames Kanalbündel (virtuelle Links), in welchem eine oder mehrere logische Verbindungen in beide Richtungen etabliert werden können. Je nach Anzahl der Kopplungen eines Koppelstacks zu einem oder mehreren Gateways verwaltet ein Koppelstack ein oder mehrere Kanalbündel. Die jeweilige Anzahl der Kanalbündel ergibt sich aus der Konfiguration der Gateways und Vermittlungscluster. Die Anzahl der Kanalbündel für die clusterinterne Kopplung eines Koppelstacks ist bestimmt durch die Anzahl der verwendeten Gateways eines Vermittlungsclusters. Die Anzahl der Kanalbündel eines Koppelstacks für die clusterexterne Kopplung zu einem anderen Vermittlungscluster ist bestimmt durch die Anzahl der verwendeten Gateways in dem angekoppelten Vermittlungscluster. Für die physikalische Verbindung von Kommunikationsgateways in verschiedenen Rechnern können sowohl Punkt-zu-Punkt Übertragungsmedien (z.B. serielle Leitung), als auch Bussysteme (z.B. LAN) verwendet werden. Die Übertragungsmedien zwischen den Rechnern der signaltechnisch nichtsicheren Kommunika-tionsplattformen sollten redundant ausgelegt werden, um gegen Ausfälle des Koppelmediums fehlertolerant zu sein. In Richtung des externen Netzwerkes oder Netzwerkverbundes arbeiten die Gatewayrechner mit dem jeweils notwendigen Übertragungsprotokoll der externen Kommunikationspartner. Für Zugsteuerungszwecke kann das z.B. der EURORADIO-Protokollstack sein. Durch das Gateway erfolgt eine vollständige protokolltechnische Entkopplung von externem Übertragungsprotokoll und dem Koppelprotokoll. Dadurch ist die Gatewayfunktion für den externen Kommunikationspartner transparent. Bei Bedarf können durch die Gateways auch verschiedene externe Übertagungsprotokolle parallel bedient werden. Weiterhin ist durch die Gatewaytechnologie auch eine protokolltechnische Umsetzung zwischen verschiedenen externen Übertragungsprotokollen möglich. Die Auswahl der externen Übertragungsprotokolle kann sowohl von den Anforderungen der angeschlossenen Applikationen, als auch von den verwendeten Übertragungsmedien abhängen. Durch die Benutzung verschiedener externer Protokolle und Netzwerke an einem Vermittlungscluster zur Repräsentanz eines externen logischen Netzwerkverbundes, ist neben fehlertoleranten Netzübergängen mit dem beschriebenen Verfahren ebenfalls die Möglichkeit gegeben, alternative Netzwerke als redundantes Gesamtsystem zur Verfügung zu stellen. Die Anzahl der erreichbaren externen Kommunikationspartner der redundant verschalteten Netzvermittlung ist von der Anzahl und Ausprägung der externen Netzanschlüsse abhängig und prinzipiell nicht begrenzt. Das Maß der Ausfallsicherheit einer derart redundant verschalteten Netzvermittlung hängt von Anzahl und Konfiguration der Netzanschlüsse, Gateways, Vermittlungscluster und Rechner ab und kann auf die Bedürfnisse einer konkreten Anlage zugeschnitten werden.

4.7.2 Koppelprotokoll der Kommunikationsplattform

Die grundsätzliche Funktion des clusterinternen und clusterexternen Koppelprotokolls der

Page 62: Architekturkonzept und Designaspekte einer …elib.suub.uni-bremen.de/publications/dissertations/E-Diss835_dis... · matik der gewachsenen heterogenen Struktur der ... Im zweiten

verbindungsorientierten Nutzdatenkanälen, welche als kommende oder gehende Verbindungen zwischen den Kommunikationsgateways etabliert werden. Die Gesamtfunktionalität des Koppelprotokolls ist in Protokollschichten mit speziellen Aufgaben und Eigenschaften unterteilt. In folgender Abbildung ist die logische Struktur der Protokollschichten zur clusterinternen und clusterexternen Kopplung dargestellt:

Kommunikationstask

virtuelle Linkebene

Session

VL-P ro tokoll

Linkebene

L IN K -P ro to k o ll

L K _ P O R T

G atew ay L ink M ultip lexer (G L_M U X)

Responder

TR-IF

Invoker

Gateway - Vermittlungslogik

TR _C ALL_TO TR _C ALL_TO

LK-IF

LK-IF

Providerebene

Session

VL-P rotokoll

L IN K -P ro to k o ll

L K _ P O R T

Session

VL-P ro tokoll

L IN K -P ro to k o ll

L K _ P O R T

L IN K - B ü n d e l -Z u g a n g

L IN K - B ü n d e l -Z u g a n g

L IN K - B ü n d e l -Z u g a n g

VL-IF

OS-Kernel

Abbildung 23: Struktur der Protokollschichten zur clusterinternen und clusterexternen Kopplung

Entsprechend dem Schichtenmodell der Kommunikationsstacks der Kommunikationsplattform (siehe Abbildung 18) laufen die in der Kommunikationstask realisierten Protokollschichten (Linkebene, virtuelle Linkebene) und die Gateway-Vermittlungslogik im USER-SPACE ab. Die Providerebene besteht aus den im OS-Kernel-Bereich vorhandenen Treiber- und Protokoll-funktionalitäten (z.B. TCP). Mit der gewählten Aufteilung ist eine weitgehend flexible Anpassung an verschiedene Übertragungsmedien (Providerebene) und Ablaufumgebungen (Die Koppelprotokollschichten der

Kommunikationsrechner- clusterinterne Kopplung -

62

Page 63: Architekturkonzept und Designaspekte einer …elib.suub.uni-bremen.de/publications/dissertations/E-Diss835_dis... · matik der gewachsenen heterogenen Struktur der ... Im zweiten

virtuellen Linkebene (VL) und Linkebene (LK) sind als USER-STREAM-Module realisiert) möglich. Durch Anpassungen der Koppelprotokolle der Linkebene sind bereits vorhandene Funktionen (z.B. Framing, Fehlerkorrektur) der Treiberschichten des jeweiligen Betriebssystems (z.B. TCP/IP over LAN) nutzbar. Das TR_CALL_TO-Modul erweitert einlaufende Verbindungsanforderungen mit zusätzlichen fest projektierten Vermittlungsinformationen für die Gateway-Vermittlungslogik (Festlegung des Proto-kollstacks für die Weitervermittlung). Der Gateway-Link-Multiplexer verwaltet die Kommunikationsressourcen mehrerer Linkbündel. Die Session-Protokollschicht dient der Bewertung einlaufender Verbindungsanforderungen hinsichtlich Balance der Vermittlungslast der einzelnen Kommunikationsgateways eines Vermittlungsclusters. Des weiteren ergänzt die Session-Protokollschicht einlaufende Verbindungsanforderungen mit zusätzlichen Vermittlungsinformationen (GSM/R-Telefonnummer und Service) aus dem Local Directory. Das VL-Protokoll (Virtual Link Protokoll) stellt einen verbindungsorientierten bidirektionalen Datendienst für die Verwendung innerhalb der Kopplung bereit. Durch das VL-Protokoll werden mehrere virtuelle Verbindungen (Kanalbündel) zur gleichen Zeit unterstützt. Das VL-Protokoll setzt eine bidirektionale, vollständige und folgerichtige Übertragung von an die unterlagerte Linkebene übergebenen Datagrammen voraus. Das LINK-Protokoll kompensiert die funktionalen Defizite der verwendeten Providerebene hin-sichtlich der Anforderungen der virtuellen Linkebene (z.B. Fehlerkorrektur). Verbindungsstörungen der Providerebene werden durch das LINK-Protokoll erkannt und führen zur zeitweiligen Suspen-dierung des Kanalbündels.

4.7.2.1 Redundanz und Verteilung der Vermittlungslast

Die in der Kopplung (Ankopplung an signaltechnisch sichere Rechner bzw. clusterinterne Kopplung von Kommunikationsgateways) der nichtsicheren Kommunikationsplattform verwendeten Protokollfunktionalitäten zum Redundanz- und Loadbalance-Management greifen nur in den Setupphasen einer Nutzdatenverbindung ein. Beim Ausfall einer Komponente, die die Nutzdatenverbindung führt, bricht die Verbindung zusammen. Der von der Applikation (Nutzer der Nutzdatenverbindung) infolge des Abbruchs der Nutzdatenverbindung neu angeforderte Kanal wird dann über alternative Kommunikationsressourcen (bei sicherer Verbindung mit neu abgeleitetem kryptographischen Sitzungsschlüssel) aufgebaut. Falls diese Eigenschaft vom Dienstenutzer nicht benötigt wird, kann ein für die Applikation verdeckter Wiederaufbau des durch Komponentenausfall verursachten Abbruchs der Nutzdatenverbindung durch eine zusätzliche Ende- zu Ende Protokollschicht erfolgen. Das Redundanzkonzept der signaltechnisch nichtsicheren Kommunikationsplattform ermöglicht die redundante Ankopplung an signaltechnisch sichere Rechner nach dem 2 von 3 oder nach dem 2 x 2 von 2 Prinzip (siehe 3.3.2.3).

4.7.2.2 Setupphase

Während der Verbindungsaufbauphase einer logischen Verbindung wird zu jedem erreichbaren Gateway im angewählten Vermittlungscluster je eine Ressource im jeweiligen Kanalbündel temporär belegt. Nach der Auswahl und Etablierung der logischen Verbindung werden die nicht mehr benötigten, temporär belegten Ressourcen freigegeben und stehen damit dem weiteren Vermittlungsprozess wieder zur Verfügung.

63

Page 64: Architekturkonzept und Designaspekte einer …elib.suub.uni-bremen.de/publications/dissertations/E-Diss835_dis... · matik der gewachsenen heterogenen Struktur der ... Im zweiten

Logische Verbindungen werden auf Anforderung externer Instanzen im Kanalbündel eingerichtet und zwischen den Koppelstacks getunnelt (virtuelle Linkebene Koppelprotokoll). Die Anzahl der logischen Verbindungen hängt von der Art und Anzahl der externen Schnittstellen und den Verbindungsanforderungen externer Instanzen ab. Der Koppelstack enthält Funktionen, die eine Selektion eines geeigneten Gateways aus einem Vermittlungscluster ermöglichen. Dazu können spezielle Protokollprimitive eingeführt werden, welche über die logischen Verbindungen eines Koppelstacks an die erreichbaren Gateways über-tragen werden. Die Sequenz von Protokollprimitiven besteht aus drei Phasen:

• Nach Anforderung durch eine rufende Instanz sendet ein rufendes Gateway ein Aufruf-telegramm an alle über einen Koppelstack erreichbaren Gateways. Im Falle der Kopplung der Gateways eines Clusters untereinander erreicht das Aufruftelegramm (CON_REQ-CON_IND) auch das rufende Gateway, wo es in gleicher Weise wie bei den übrigen parallel redundanten Gateways verarbeitet wird.

• Die funktionsfähigen gerufenen Gateways prüfen die Möglichkeit der angeforderten

Verbindung und generieren ein Antworttelegramm (RDY_REQ-RDY_IND) an das rufende Gateway. Das Antworttelegramm kann außerdem einen individuell ermittelten Bewertungsparameter enthalten, anhand dessen eine Optimierung (z.B. Lastverteilung) durchgeführt werden kann. Der Bewertungsparameter wird entsprechend des momentanen Vermittlungszustandes des gerufenen Gateways, sowie des Abbildes des Vermittlungszustandes der Nachbargateways des Vermittlungsclusters (siehe 4.6.3) gebildet. Neben der Anzahl der gerade vermittelten Kanäle wird die Adressinformation des Kommunikationspartners der bereits vermittelten Kanäle berücksichtigt. Dadurch kann eine zu etablierende Nutzkanalverbindung in der 3. Phase auf einen bereits bestehenden Netzkanal des Vermittlungsclusters gemultiplext werden.

• Durch das rufende Gateway erfolgt anhand der übertragenen Informationen in den

Antworttelegrammen die Beurteilung, welche der angeschlossenen Gateways erreichbar sind. Enthalten die Antworttelegramme außerdem einen Bewertungsparameter, so kann durch das rufende Gateway außerdem bewertet werden, welche der möglichen Ver-bindungen am besten für die neue Verbindung geeignet ist. Mit dem Bewertungs-parameter kann z.B. eine Lastoptimierung zwischen den Gatewayrechnern erfolgen. Über die ausgewählte Verbindung wird daraufhin der Link zum Anwender eingerichtet, indem die Verbindung vom rufenden Gateway zum ausgewählten Gateway selektiert wird (RDY_RSP-RDY_CNF) und nach externer Rufbestätigung (CON_RSP-CON_CNF) für die Nutzdatenübertragung zur Verfügung steht. Alle anderen Ver-bindungsoptionen werden freigegeben.

Das Primitivenspiel zur Selektion eines Gateways ist beispielhaft für eine Konfiguration mit vier alternativer Linkbeziehungen in nachfolgender Abbildung dargestellt.

64

Page 65: Architekturkonzept und Designaspekte einer …elib.suub.uni-bremen.de/publications/dissertations/E-Diss835_dis... · matik der gewachsenen heterogenen Struktur der ... Im zweiten

externer Ruf

Koppelstack (rufend)

externeRufbestätigung

AnforderungAlternative 1

AnzeigeBewertung 1

FreigabeAlternative 1

FreigabeanzeigeAlternative 1

UP DN

abgehende RufeUPDN

ankommender Rufe

Übertragung Anforderung an Gateway 1 Anforderungsanzeige

Alternative 1

BewertungAlternative 1

Übertragung Bewertung von Gateway 1

Übertragung Freigabean Gateway 1

FreigabeanzeigeAlternative 1

externeRufanzeige

Übertragung Freigabequittungvon Gateway 1

BestätigungAlternative 2

externeRufbestätigung

Übertragung Verbindungs-bestätigung von Gateway 2

Koppelstacks (gerufen)

Übertragung Anforderung an Gateway 2

Übertragung Anforderung an Gateway 3

Übertragung Anforderung an Gateway 4

Übertragung Bewertungvon Gateway 2

Übertragung Bewertungvon Gateway 3

Übertragung Bewertungvon Gateway 4

Übertragung Belegungan Gateway 2

Übertragung Freigabean Gateway 4

Übertragung Freigabean Gateway 3

Anforderungsanzeige Alternative 2

Anforderungsanzeige Alternative 3

Anforderungsanzeige Alternative 4

AnforderungAlternative 2

AnforderungAlternative 3

AnforderungAlternative 4

BewertungAlternative 2

BewertungAlternative 3

BewertungAlternative 4

AnzeigeBewertung 2

AnzeigeBewertung 3

AnzeigeBewertung 4

BelegungAlternative 2

FreigabeAlternative 3

FreigabeAlternative 4

BelegungsanzeigeAlternative 2

FreigabeanzeigeAlternative 3

FreigabeanzeigeAlternative 4

Übertragung Freigabequittungvon Gateway 3

Übertragung Freigabequittungvon Gateway 4

FreigabeanzeigeAlternative 3

FreigabeanzeigeAlternative 4

AnzeigeBestätigungAlternative 2

Abbildung 24: prinzipielles Protokolltiming bei redundantem Verbindungsaufbau

Die Nutzdatenverbindung wird über die Alternative 2 etabliert.

65

Page 66: Architekturkonzept und Designaspekte einer …elib.suub.uni-bremen.de/publications/dissertations/E-Diss835_dis... · matik der gewachsenen heterogenen Struktur der ... Im zweiten

4.7.2.3 Die VL-Protokollschicht

66

den Protokollschicht verwaltet.

Im folgenden wird die VL-Protokollschicht der clusterinternen und clusterexternen Kopplung der Kommunikationsplattform dargestellt. Die VL-Protokollschicht stellt die virtuellen Linkbündel bereit (Tunnelprotokoll) und stellt damit die Kernfunktionen der Kopplung dar. Die mit der VL-Protokollschicht gekoppelten Kommunikationspartner verhalten sich bezüglich des Koppelprotokollstacks unterschiedlich. Der eine Kommunikationspartner betreibt die VL-Protokollschicht im User-Mode (Applikationsrechnerverhalten bezüglich VL-Protokoll), während der andere Kommunikationspartner im Gateway-Mode (Vorrechnerverhalten bezüglich VL-Protokoll) betrieben wird (siehe4.7.2.3.3). Die beiden Betriebsmodi der VL-Protokollschicht beziehen sich nur auf den Koppelprotokollstack, d.h. eine mit mehreren Koppelprotokollstacks ausgerüstete Kommunikationsplattform kann unterschiedliche Betriebsmodi verwenden, solange die gekoppelten Partnerinstanzen den entgegengesetzten (komplementären) Betriebsmode verwenden. Innerhalb eines Linkbündels (Koppelprotokollstack) verwenden beide Kommunikationspartner für alle virtuellen Links den gleichen (bezüglich des Kommunikationspartners aber entgegengesetzten) Betriebsmode.

4.7.2.3.1 Protokolldateneinheiten

Die folgende Tabelle beschreibt die Bedeutung der verwendeten PDUs der VL-Protokollschicht des redundanten Koppelprotokolls der Kommunikationsplattform. Bezeichnung der PDU (gehend/kommend)

Bedeutung

(VL_) CON_REQ-CON_IND Anzeige eines Verbindungsaufbauwunsches

(VL_) RDY_REQ-RDY_IND Bewertung des Verbindungsaufbauwunsches

(VL_) RDY_RSP-RDY_CNF Selektion/Bestätigung des Verbindungsaufbauwunsches

(VL_) CON_RSP-CON_CNF Bestätigung der Verbindung (VL_) CON_REL Aufforderung zum Auslösen (VL_) DISCON Anzeige Auslösen

Tabelle 15: PDUs der VL-Protokollschicht des redundanten Koppelprotokolls

4.7.2.3.2 Funktionen

Beim VL-Protocol wird immer ein Partner im Gateway- und der andere im User-Modus betrieben. Die Betriebsart wird durch Konfiguration festgelegt. Diese Festlegung ist infolge der Aufteilung des Adressraumes in gehende und kommende Kanaladressen notwendig. Wegen der getrennten Adressräume ist keine Kollisionsbehandlung von Verbindungsanforderungen und nur ein Minimum an Protokollinformationen je Kanal erforderlich. Die Kennzeichnung der Modi erfolgt mit GATEWAY (Gateway-Modus) und USER (User-Modus). Zwischen den beiden Nutzern des VL-Protokolls können auf einer Verbindung des LINK-Protokolls (LK) mindestens 127 virtuelle Verbindungen unterhalten werden. Die Kanal-Identifikatoren [Kanal-ID] der virtuellen Verbindungen werden von der darüber liegen-

Page 67: Architekturkonzept und Designaspekte einer …elib.suub.uni-bremen.de/publications/dissertations/E-Diss835_dis... · matik der gewachsenen heterogenen Struktur der ... Im zweiten

Für die Anforderung oder Anzeige einer virtuellen Verbindung wird der Wertebereich 1 bis 254 verwendet. Andere Identifikatoren dürfen nicht genutzt werden. Wenn die empfangene PDU nicht eindeutig identifizierbar ist, d.h. keiner bestehenden virtuellen Verbindung zugeordnet werden kann, ist eine neue Verbindung zu etablieren, wenn es sich um eine PDU vom Typ VL_CON_IND/ VL_CON_REQ handelt und die [Kanal-ID] im Wertebereich 1 - 254 liegt, anderenfalls ist die PDU zu verwerfen und der physikalische Link (Linkebene/Providerebene) auszulösen. Alle VL-PDU´s werden zur Übertragung in Daten-PDU´s des LINK-Protokolls kodiert.

4.7.2.3.3 Struktur und Kodierung der VL-PDU´s

Jede VL-PDU enthält: Das VL-Präambel-Feld. Die VL-PDU kann, abhängig von der VL-Präambel folgende Felder enthalten:

• Ein Primitiventyp - Feld • Ein Kanal-ID-Feld • Null, ein oder mehrere ASN - kodierte(s) Parameter-Feld(er) • Null oder ein Daten-Feld.

1. Oktett 2. - n-tes Oktett VL-Präambel variabel

Tabelle 16: VL-PDU Aufbau

Daten-Felder und Primitiventyp- / Parameter-Felder schließen sich gegenseitig aus. Das VL-Präambel-Feld ist in jeder VL-PDU enthalten.

67

Page 68: Architekturkonzept und Designaspekte einer …elib.suub.uni-bremen.de/publications/dissertations/E-Diss835_dis... · matik der gewachsenen heterogenen Struktur der ... Im zweiten

Kodierung Bedeutung

68

Der Inhalt des Datenfeldes ist nicht beschränkt und stellt die zu übertragende Nutzdateninformation

1 1 1 1 1 1 1 1 Primitive folgt

Kan

alric

htun

g K

anal

num

mer

hi

gh

Kan

alnu

mm

er

Kan

alnu

mm

er

Kan

alnu

mm

er

Kan

alnu

mm

er

Kan

alnu

mm

er

Kan

alnu

mm

er

low

0 X X X X X X X Daten in Kanal Nr. 0XXX XXXX, Gateway, kommend bezüglich Netzebene

1 X X X X X X X Daten in Kanal Nr. 1XXX XXXX, Gateway, gehend bezüglich Netzebene

0 X X X X X X X Daten in Kanal Nr. 1XXX XXXX, User, gehend bezüglich Netzebene

1 X X X X X X X Daten in Kanal Nr. 0XXX XXXX, User, kommend bezüglich Netzebene

Tabelle 17: VL-Präambel Aufbau

Das Kanal-ID-Feld, gefolgt vom Primitiventyp-Feld, folgt dem VL-Präambel-Feld, wenn das VL-Präambel-Feld mit 0xFF belegt ist (Signalisierungsinformation). Das Kanal-ID-Feld hat eine Länge von einem Oktett und stellt eine Referenz der VL-Signalisierungsprimitive auf den virtuellen Kanal dar. Die folgende Tabelle beschreibt die Kodierung des Primitiventyp-Feldes: Primitive Kodierung Bedeutung VL_CON_REQ 0000 0000 Verbindungsaufbauanforderung VL_CON_RSP 0000 0001 Verbindungsaufbauantwort VL_CON_REL 0000 0010 Verbindungsabbauanforderung VL_CON_IND 0000 0011 Verbindungsaufbauanzeige VL_CON_CNF 0000 0100 Verbindungsaufbaubestätigung VL_RDY_REQ 0000 0101 Redundanzkanalanforderung VL_ RDY _RSP 0000 0110 Redundanzkanalantwort VL_ RDY _IND 0000 0111 Redundanzkanalanzeige VL_ RDY _CNF 0000 1000 Redundanzkanalbestätigung VL_DISCON 0000 1001 Verbindungsabbaubestätigung VL_XON 0000 1010 Flusssteuerung aus VL_XOFF 0000 1011 Flusssteuerung ein

Tabelle 18: Kodierung Primitiventyp

Dem Primitiventyp-Feld kann ein ASN-kodiertes Parameter-Feld folgen, falls die übermittelte Signalisierungsprimitive zusätzliche Informationen enthält (z.B. Zieladresse bei VL_CON_REQ). Das Daten-Feld ist in der VL-PDU enthalten, wenn das VL-Präambel-Feld nicht mit 0xFF belegt ist.

Page 69: Architekturkonzept und Designaspekte einer …elib.suub.uni-bremen.de/publications/dissertations/E-Diss835_dis... · matik der gewachsenen heterogenen Struktur der ... Im zweiten

dar. Die Referenzierung auf den virtuellen Kanal ist durch die sieben niederwertigsten Bit der VL-Präambel gegeben.

4.7.2.3.4 Zustände und Ereignisse

Zur Beschreibung der VL-Protokollschicht des redundanten Koppelprotokolls mittels Zustands-tabelle werden folgende Zustände eingeführt: Zustand Abkürzung Beschreibung ST_VL_IDLE sta_0 Keine Verbindung aufgebaut ST_VL_WACK_CREQ sta_1 Warten auf VL_RDY_IND/ VL_RDY_REQ ST_VL_ WCON_CREQ sta_2 Warten auf VL_CON_CNF/ VL_CON_RSP ST_VL_WACK_RIND sta_3 Warten auf VL_RDY_RSP/ VL_RDY_CNF ST_VL_WRES_CIND sta_4 Warten auf VLCONrsp ST_VL_DATA_XFER sta_5 Datenübertragung ST_VL_WCON_DREQ sta_6 Warten auf VL_DISCON ST_VL_DOWN sta_7 Endzustand

Tabelle 19: Zustände der VL-Protokollschicht des redundanten Koppelprotokolls

Neben den VL-PDU`s (Informationsaustausch zwischen beiden über die LINK-Protokollebene kommunizierenden VL-Protokollinstanzen) werden Schnittstellen-Primitiven (VLSDU-Informa-tionsaustausch zwischen VL-Protokollinstanz und VL-Protokoll-Nutzer) eingeführt. Bezogen auf den Zustandsautomaten der jeweiligen VL-Protokollinstanz wird jede PDU bzw. SDU als ankommendes bzw. abgehendes Ereignis entsprechend folgender Tabelle aufgefasst:

69

Page 70: Architekturkonzept und Designaspekte einer …elib.suub.uni-bremen.de/publications/dissertations/E-Diss835_dis... · matik der gewachsenen heterogenen Struktur der ... Im zweiten

Ereignis Typ Richtung bezüglich VL-Protokollschicht

VL_CON_REQ VLPDU abgehend / ankommend VL_CON_RSP VLPDU abgehend / ankommend VL_CON_IND VLPDU abgehend / ankommend VL_CON_CNF VLPDU abgehend / ankommend VL_RDY_REQ VLPDU abgehend / ankommend VL_RDY_RSP VLPDU abgehend / ankommend VL_RDY_IND VLPDU abgehend / ankommend VL_RDY_CNF VLPDU abgehend / ankommend VL_CON_REL VLPDU abgehend / ankommend VL_DISCON VLPDU abgehend / ankommend M_DATA VLPDU abgehend / ankommend VL_XON VLPDU abgehend / ankommend VL_XOFF VLPDU abgehend / ankommend VLCONind VLSDU abgehend VLCONcnf VLSDU abgehend VLxon VLSDU abgehend / ankommend VLxoff VLSDU abgehend / ankommend VLdiscon VLSDU abgehend VLCONreq VLSDU ankommend VLCONrsp VLSDU ankommend VLCONrel VLSDU ankommend

Tabelle 20: Ereignisse der VL-Protokollschicht des redundanten Koppelprotokolls

Da die Datenfelder keine Primitivenkennung haben, sind sie in der Ereignistabelle als M_DATA aufgeführt. Die folgende Tabelle beschreibt die zulässigen ereignisabhängigen Zustandsübergänge der VL-Protokollschicht des redundanten Koppelprotokolls als Zustandsübergangsmatrix:

70

Page 71: Architekturkonzept und Designaspekte einer …elib.suub.uni-bremen.de/publications/dissertations/E-Diss835_dis... · matik der gewachsenen heterogenen Struktur der ... Im zweiten

Ereignis Zustand ST_ VL_IDLE

sta_0 ST_VL_ WACK_CREQ sta_1

ST_VL_ WCON_CREQ sta_2

ST_VL_ WACK_RIND sta_3

ST_VL_ WRES_CIND sta_4

ST_VL_ DATA_XFER sta_5

ST_VL_ WCON_DREQ sta_6

ST_VL_ DOWN sta_7

VL_CON_REQ sta_3 VL_CON_IND sta_3 VL_CON_RSP sta_5 VL_CON_CNF sta_5 VL_RDY_IND sta_2 VL_RDY_CNF sta_4 VL_RDY_REQ sta_2 VL_RDY_RSP sta_4 VL_CON_REL sta_7 sta_7 sta_7 sta_7 sta_6 VL_DISCON sta_7 sta_7 sta_7 sta_7 sta_7 sta_7 sta_7 VL_XON sta_5 VL_XOFF sta_5 M_DATA sta_5 VLCONreq sta_1 VLCONrsp sta_5 VLCONrel sta_7 sta_6 sta_6 sta_7 sta_7 sta_6 VLxon sta_5 VLxoff sta_5

Tabelle 21: Zustandsübergänge der VL – Protokollschicht des redundanten Koppelprotokolls

4.7.2.3.5 Timings VL-Schicht

Verbindungsaufbau – User initiiert: Die Anforderung einer Verbindung erfolgt durch ein VL_CON_REQ. Durch die Primitive VL_RDY_IND wird dem Anfordernden ein Kanal angezeigt, der die Anforderung erfüllen könnte. Der Parameter "OPTIMIZE LEVEL" der Primitive VL_RDY_IND zeigt den Grad des Vermittlungsaufwandes für die Verbindung an. Mit der Primitive VL_RDY_RSP etabliert die anfordernde Seite den ausgewählten Kanal oder weist ihn mit VL_CON_REL zurück. Nach dem Empfang eines VL_CON_CNF ist der Verbindungsaufbau abgeschlossen (User initiiert). Verbindungsaufbau – Gateway initiiert: Die Anforderung einer Verbindung erfolgt durch ein VL_CON_IND. Durch die Primitive VL_RDY_REQ wird dem Anfordernden ein Kanal angezeigt, der die Anforderung erfüllen könnte. Der Parameter "OPTIMIZE LEVEL" der Primitive VL_RDY_REQ zeigt den Grad des Vermittlungsaufwandes für die Verbindung an. Mit der Primitive VL_RDY_CNF etabliert die anfordernde Seite den ausgewählten Kanal oder weist ihn mit VL_CON_REL zurück. Nach dem Empfang eines VL_CON_RSP ist der Verbindungsaufbau abgeschlossen (Gateway initiiert). Die VL_RDY_IND- und VL_RDY_CNF-Antwortzeit wird durch einen Timer überwacht.

71

Page 72: Architekturkonzept und Designaspekte einer …elib.suub.uni-bremen.de/publications/dissertations/E-Diss835_dis... · matik der gewachsenen heterogenen Struktur der ... Im zweiten

U

[VL_CON_REQ]

[VL_RDY_IND]

[VL_RDY_RSP]

[VL_CON_CNF]

G U

[VL_CON_IND]

[VL_RDY_REQ]

[VL_RDY_CNF]

[VL_CON_RSP]

Abbildung 25: Verbindungsaufbau vollständig (links: User initiiert; rechts: Gateway initiiert)

G

[VL_CON_REQ]

U

[VL_DISCON]

U

[VL_CON_IND]

[VL_DISCON]

Abbildung 26: Verbindungsaufbau unvollständig – Rufrückweisung (links: User initiiert; rechts: Gateway initiiert)

72

Page 73: Architekturkonzept und Designaspekte einer …elib.suub.uni-bremen.de/publications/dissertations/E-Diss835_dis... · matik der gewachsenen heterogenen Struktur der ... Im zweiten

G

[VL_CON_REQ]

[VL_CON_REL]

[VL_DISCON]

U

[VL_CON_IND]

[VL_CON_REL]

[VL_DISCON]

U

Abbildung 27: Verbindungsaufbau unvollständig – Rufrücknahme (links: User initiiert; rechts: Gateway initiiert)

G

[VL_CON_REQ]

[VL_RDY_IND]

[VL_CON_REL]

[VL_DISCON]

U U

[VL_CON_IND]

[VL_RDY_REQ]

[VL_CON_REL]

[VL_DISCON]

Abbildung 28: Verbindungsaufbau unvollständig – Rufrücknahme nach Kanalanzeige (links: User initiiert; rechts: Gateway initiiert)

73

Page 74: Architekturkonzept und Designaspekte einer …elib.suub.uni-bremen.de/publications/dissertations/E-Diss835_dis... · matik der gewachsenen heterogenen Struktur der ... Im zweiten

G

[VL_CON_REQ]

[VL_RDY_IND][VL_DISCON]

U U

[VL_CON_IND]

[VL_RDY_REQ]

[VL_DISCON]

Abbildung 29: Verbindungsaufbau unvollständig – Rufrückweisung nach Kanalanzeige (links: User initiiert; rechts: Gateway initiiert)

[VL_CON_IND]

[VL_RDY_REQ]

[VL_RDY_CNF]

[VL_DISCON]

G

[VL_CON_REQ]

[VL_RDY_IND]

[VL_RDY_RSP]

U

[VL_DISCON]

U

Abbildung 30: Verbindungsaufbau unvollständig – Rufrückweisung nach Kanalauswahl (links: User initiiert; rechts: Gateway initiiert)

74

Page 75: Architekturkonzept und Designaspekte einer …elib.suub.uni-bremen.de/publications/dissertations/E-Diss835_dis... · matik der gewachsenen heterogenen Struktur der ... Im zweiten

[VL_CON_IND]

[VL_RDY_REQ]

[VL_RDY_CNF]

[VL_DISCON]

G

[VL_CON_REQ]

[VL_RDY_IND]

[VL_RDY_RSP]

U

[VL_DISCON]

U

[VL_CON_REL] [VL_CON_REL]

Abbildung 31: Verbindungsaufbau unvollständig – Rufrücknahme nach Kanalauswahl (links: User initiiert; rechts: Gateway initiiert)

Nutzdatenübertragung: Daten-PDU's werden durch die Kanal-ID gekennzeichnet ( 0 < KANAL-ID < 255) und dadurch eindeutig einer virtuellen Verbindung zugeordnet. Hochpriore Daten (z.B. Notbremsinformation) sind wie normale Daten gekennzeichnet. Sie erhalten vom Nutzer der VL - Protokollschicht lokal (d.h. nicht in der VL-PDU kodiert) ein Attribut, das die höhere Priorität kennzeichnet. Dieses Attribut wird von der VL-Protokollschicht nicht ausgewertet, aber an den Diensterbringer zusammen mit den hochprioren Daten übergeben. Der Diensterbringer für die VL–Schicht (LINK-Protokoll) muss ein geeignetes Verfahren für die Übertragung der hochprioren Daten bereitstellen. Hochpriore Daten unterliegen keiner Flusssteuerung, d.h. sie werden immer (unabhängig vom Flußkontrollzustand der VL-Protokollschicht ) an den Dienst-erbringer übergeben. Flusssteuerung wird also nur bei der Übertragung von Daten-PDU's normaler Priorität verwendet. Wird eine VL-PDU vom Typ XON empfangen, dürfen Daten an den Absender der PDU gesendet werden. Wird eine VL-PDU vom Typ XOFF empfangen, ist das Senden von Daten auf dieser virtuellen Verbindung einzustellen. Innerhalb der Grenzen des Flusskontrollspeichers (Projektierungsparameter) werden aufgrund von Laufzeiten Datenpakete noch akzeptiert.

75

Page 76: Architekturkonzept und Designaspekte einer …elib.suub.uni-bremen.de/publications/dissertations/E-Diss835_dis... · matik der gewachsenen heterogenen Struktur der ... Im zweiten

G

[M_DATA]

U U

[M_DATA]

[VL_XOFF] [VL_XOFF]

[VL_XON] [VL_XON]

M_DATA] [M_DATA]

Abbildung 32: Nutzdatenübertragung (links: User initiiert; rechts: Gateway initiiert)

Auslösen: Der Verbindungsabbau kann von jeder Entität, die an der virtuellen Verbindung teilnimmt, erfolgen. Eine Verbindungsabbauanforderung wird durch einen Timer überwacht. Die Protokolldateneinheiten zur Verbindungsabbauanforderung und Verbindungsabbaubestätigung können Nutzdaten (als Parameter) übertragen. Die vollständige Übertragung der Nutzdaten wird nicht garantiert. Eine Abbauanforderung VL_CON_REL ist mit einem VL_DISCON zu bestätigen. Die Überlagerung von Abbauanforderungen beider Kommunikationspartner ist zulässig.

GU

[VL_DISCON]

[VL_CON_REL]

U

[VL_CON_REL]

G

[VL_DISCON]

Abbildung 33: Verbindungsabbau (links: User initiiert; rechts: Gateway initiiert)

76

Page 77: Architekturkonzept und Designaspekte einer …elib.suub.uni-bremen.de/publications/dissertations/E-Diss835_dis... · matik der gewachsenen heterogenen Struktur der ... Im zweiten

Bei nichtregulären Betriebsfällen (lokale Fehler) kann das Protokoll spontan ausgelöst werden.

GU

[VL_DISCON]

U G

[VL_DISCON]

Abbildung 34: Verbindungsabbau; lokaler Fehler (links: User initiiert; rechts: Gateway initiiert)

4.7.2.4 Lastbalance

Zur Bewertung eines Verbindungsaufbauwunsches benötigt die Kommunikationsplattform ein Verständnis aller im Vermittlungscluster momentan vorhandenen Nutzkanalverbindungen. Die einzelnen Kommunikationsplattformen eines Vermittlungsclusters tauschen dazu zyklisch und bei Änderung den Status der vermittelten Nutzkanalverbindungen aus (siehe 4.6.3). Eine einlaufende Anzeige eines Verbindungsaufbauwunsches (CON_REQ-CON_IND) wird entsprechend den existierenden Nutzkanalverbindungen (einschließlich der Nachbargateways eines Vermittlungsclusters) bewertet. In Abhängigkeit der Vermittlungslast und der Präsenz nutzbarer Netzverbindungen der Kommunikationsplattform wird ein Bewertungsparameter (Optimize-Level) ermittelt. Dieser Bewertungsparameter wird als Parameter der RDY_REQ-RDY_IND - PDU der rufenden Instanz übermittelt. Die rufende Instanz entscheidet entsprechend der eingelaufenen Be-wertungsparameter (Optimize-Level), welcher der angeforderten redundanten Kanäle zur Etablierung der Nutzdatenverbindung verwendet wird. Die restlichen angeforderten redundanten Kanäle werden wieder freigegeben (Auslösen). Durch dieses Verfahren wird die Vermittlungslast (Nutzdatenkanäle) auf die Gateway-Instanzen eines Vermittlungsclusters gleichmäßig verteilt. Das Verständnis der Gateway-Instanzen kann auch genutzt werden, um unterlagerte Netzprovider dynamisch an die Verhältnisse der Vermittlungslast anzupassen (Lastmonitor zur Anforderung von Netzbandbreiten z.B. bei ATM).

77

Page 78: Architekturkonzept und Designaspekte einer …elib.suub.uni-bremen.de/publications/dissertations/E-Diss835_dis... · matik der gewachsenen heterogenen Struktur der ... Im zweiten

78

Page 79: Architekturkonzept und Designaspekte einer …elib.suub.uni-bremen.de/publications/dissertations/E-Diss835_dis... · matik der gewachsenen heterogenen Struktur der ... Im zweiten

79

Die folgende Abbildung zeigt die Adaption eines Treiberinterfaces (S2M-Karte CAPI-Version) an einen „USER-STREAM Port“ der Ablaufumgebung (als konfigurierte Instanz entsprechend dem

5 Designaspekte

5.1 Kapselung des OS

Die folgende Tabelle gibt einen Überblick, über die in der Kommunikationsplattform in der untersten Schicht der Kommunikationstask (z.B. UTILS-Bibliotheken) bzw. als OS-Kernel-Erweiterung verwendeten betriebssystemabhängigen Betriebsmittel und Basisfunktionen, entsprechend dem Schalenmodell der Betriebsmittel der Kommunikationsablaufumgebung (siehe Abbildung 17). Betriebsmittel/Basisfunktion Bedeutung Speicherverwaltung Verwaltung und Überwachung des

dynamischen Speichers Trace- und Debugunterstützung Standardfunktionen zur Trace- und

Debugausgabe auf Konsole oder Tracefiles

KS-Modul Managementfunktionen zum einheitlichen Laden und Konfigurieren von in der Kommunikationsplattform verwendeten SVR4-Streams Modulen

Konfigurationsdatenverwaltung (ASCII-Parser)

Einheitliches Format der Konfigurationsdaten in den Konfigurationsdateien

Ereignisverwaltung (Multiple Wait) Abstraktion Multiple/Wait – Betriebsmittel (select/poll) Verwaltung Basisscheduler

Zeitereignisverwaltung Verwaltung Timerschnittstelle, Koordination von Zeitereignissen mit Multiple/Wait – I/O Ereignissen

Prozesssignalverwaltung Kapselung der Signale des Betriebssystems

I/O - Kapselung(TLI,TTY) Abstraktion von Schnittstellen bezüglich Konfigurations- und Adressparametern

Tabelle 22: betriebssystemabhängige Betriebsmittel und Basisfunktionen

Die Protokoll- und Vermittlungsfunktionalitäten der Kommunikationsplattform laufen in einer vom unterlagerten Betriebssystem weitgehend unabhängigen Ablaufumgebung „USER-STREAM“ (siehe 5.3.3) im USER-Space ab. Zur Umsetzung von komplexen Protokollschichten mit Multiplexfunktionalitäten werden „US_MULTIPLEXER“ (siehe 5.4.2) verwendet. „US_KONVERTER“ (siehe 5.4.1) bilden einfache Protokollschichten ab. Der Zugriff auf die im Betriebssystem vorhandenen Standard-Treiber und -Protokolle wird in der Ablaufumgebung mit Hilfe von „US_PORTS“ sichergestellt.

Page 80: Architekturkonzept und Designaspekte einer …elib.suub.uni-bremen.de/publications/dissertations/E-Diss835_dis... · matik der gewachsenen heterogenen Struktur der ... Im zweiten

Schichtenmodell der Kommunikationsplattform; siehe Abbildung 18) zur Verwendung in der Streckenzentrale des Funk Fahr Betriebes.

OS-KERNEL

Kommunikationsapplikation (Vermittlungslogik)

Stacks

User Stream

Kommunikationstask

us-Head us-Head us-Head

us-Konv

us-Konv

us-Konv us-Konv

us-Multiplexer

us-Konv

us-Konv

us-Konv

us-Konv

S2M - Hardwaretreiber

CAPI - Interface

us-Port us-Port

CAPI-PortCAPI-CNTL

/dev/capi (fd)CAPI-Daemon

/dev/capi (fd)

Konfiguration

Firmware-Loader

Interface CNTL

S2M - Firmware - Interface

S2M-Firmware

Signalisierungsstack B - Kanal - Stack

Abbildung 35: Prinzipieller Aufbau der Adaption des S2M-Treiber für die Streckenzentrale des Funk Fahr Betriebes

Dem Vorteil der hohen Portabilität und leichten Adaptierbarkeit an vorhandene Treiber stehen moderate Performanzeinbußen und die Notwendigkeit der Präsenz von Kommunikationsbasis-bibliotheken gegenüber. Für die Anwendungen der Kommunikationsplattform im Funk Fahr Betrieb sind die genutzten Hardware- und Betriebssystemressourcen inklusive der Protokoll- und Vermittlungslogik kein begrenzender Faktor. Die verwendeten GSM/R-Netzlinks (Bearer Service 25) im Zusammenspiel mit den verwendeten EURORADIO-Protokollen begrenzen die Gesamt-performanz des Kommunikationssystems.

5.2 OS - abhängige Betriebsmittel

5.2.1 KS-Modul

Die Bibliothek zum einheitlichen Laden und Konfigurieren von in der Kommunikationsplattform verwendeten SVR4-Streams-Modulen stellt folgende Anforderungen an die zu verwaltenden Einheiten:

80

Page 81: Architekturkonzept und Designaspekte einer …elib.suub.uni-bremen.de/publications/dissertations/E-Diss835_dis... · matik der gewachsenen heterogenen Struktur der ... Im zweiten

• Eine spezifische Funktion zum Parsen der modulspezifischen Konfigurationsparameter und

81

KS_MODUL: BLK_CHK

Generieren der modulspezifischen IOCTL-Konfigurationsnachrichten wird in der KS-Modul-bibliothek registriert.

• Die schreibseitige Empfangsroutine (wput) der SVR4-Streams-Module wertet die modul-spezifischen IOCTL-Konfigurationsinformationen aus. Von der KS-Modul-Bibliothek ver-waltete SVR4-Streams-Module müssen dementsprechend eine spezifische Funktion (im nach-folgenden C-Quellcode-Beispiel: stx_etx_putioc) enthalten, welche die schreibseitig empfange-nen M_IOCTL-Konfigurationsdaten auswertet.

Um das Laden und Konfigurieren der im OS-Kernel ablaufenden SVR4-Streams-Module der Kommunikationsplattform zu vereinfachen, stellt die KS-Modul-Bibliothek eine Management-funktion zur Verfügung. Die folgende Tabelle beschreibt die Managementfunktion der Bibliothek zum einheitlichen Laden und Konfigurieren von in der Kommunikationsplattform verwendeten SVR4-Streams-Modulen. Management Multiple-Wait-Ereignisverwaltung

Beschreibung

ksm_up Dieser Funktion wird ein Filedeskriptor und ein Konfigurationsstring übergeben. In diesem Konfigurationsstring sind die SVR4-Streams-Module, die geladen werden sollen und deren Konfigurationsdaten eingetragen. Auf den übergebenen Filedeskriptor (des geöffneten Streams) werden nacheinander die entsprechend der Konfiguration festgelegten SVR4-Streams-Module geladen (push) und über IOCTL-Messages mit Konfigurationsparametern versorgt.

Tabelle 23: Managementfunktionen zum Laden und Konfigurieren von SVR4-Streams Modulen

In der Reihenfolge der im Konfigurationsstring angegebenen Modulkennungen werden die Streamsmodule geladen und entsprechend den modulspezifischen Parametern im Konfigurations-string mit Konfigurationsdaten (M_IOCTL) versorgt, d.h. die vom Streamsmodul benötigten spezi-fischen Konfigurationsparameter werden nach dem Laden (push) des jeweiligen Moduls in den Stream mit Hilfe von in der KS-Modul-Bibliothek registrierten, modulspezifischen Funktionen (im USER SPACE ablaufend) als IOCTL - Rufe an das Modul gesendet. In der folgenden Beispielkonfiguration sind die Parameter für zwei zu ladende einfache Streamsmodule (STX_ETX-Quotingmodul und BLK_CHK-Prüfsummenmodul) angegeben. Die Streamsmodule selber sind mit dem Schlüsselword "KS_MODUL" gekennzeichnet. # STX_ETX-MODULE-CONFIGURATION STX: 0x02 ETX: 0x03 DLE: 0x10 # BLK_CHK-MODULE-CONFIGURATION BLK_CHK_MODE: CRC_32 KS_MODUL: STX_ETX

Page 82: Architekturkonzept und Designaspekte einer …elib.suub.uni-bremen.de/publications/dissertations/E-Diss835_dis... · matik der gewachsenen heterogenen Struktur der ... Im zweiten

82

}

In dem folgenden C-Quellcode-Beispiel (USER SPACE) sind nach der Ausführung der Managementfunktion „ksm_up“ auf einem geöffneten Filedeskriptor eines seriellen Interfaces (z.B. „/dev/tty00“) die Streamsmodule entsprechend der Beispielkonfiguration „param_string“ geladen und konfiguriert: ... if (( fd = open( “/dev/tty00”, O_RDWR)) < 0) { printf(“open error!\n”); exit( ERROR); } ... if ( ksm_up( fd, param_string) == ERROR) { printf(“ksm_up error!\n”); exit( ERROR); } ... In dem folgenden C-Quellcode-Beispiel (OS-KERNEL) ist die PUT-Prozedur der Schreibwarte-schlange (wqueue) des STX_ETX-Quotingmoduls abgebildet. Die Funktion „stx_etx_putioc“ enthält die Behandlung der modulspezifischen Konfigurationsdaten. /**************************************************************** * * stx_etx_wput - Module write queue put procedure. * ****************************************************************/STATIC int stx_etx_wput( queue_t *q, mblk_t *mp) { switch ( mp->b_datap->db_type) { case M_DATA: if (putq( q,mp) == 0) { cmn_err(CE_WARN,"^stx_etx: putq out of blocks!"); freemsg( mp); return( ENXIO); } break; case M_IOCTL: return( stx_etx_putioc( q, mp)); break; default: putnext( q, mp); break; } return( OK);

Page 83: Architekturkonzept und Designaspekte einer …elib.suub.uni-bremen.de/publications/dissertations/E-Diss835_dis... · matik der gewachsenen heterogenen Struktur der ... Im zweiten

/* * stx_etx parameter setzen */ int stx_etx_putioc( queue_t* q, mblk_t* mp) { struct iocblk *iocp; int i; iocp = ( struct iocblk *)mp->b_rptr; /* fremdes IOCTL */ if (((stx_etx_privat_t*)(q->q_ptr))->param != NULL) { putnext( q, mp); return( OK); } /* falsches IOCTL */ if ( (iocp->ioc_cmd != SET_STX_ETX_PARAM) || (iocp->ioc_count != sizeof( stx_etx_param_t)) || (mp->b_cont == NULL) || (((stx_etx_param_t*)mp->b_cont->b_rptr)->max_len < 0) || (((stx_etx_param_t*)mp->b_cont->b_rptr)->dummy < 0)) { mp->b_datap->db_type = M_IOCNAK; iocp->ioc_count = 0; qreply( q, mp); return( OK); } /* Speicher fuer Parameterstruktur holen */ if ((((stx_etx_privat_t*)q->q_ptr)->param = kmem_zalloc( sizeof(stx_etx_param_t), KM_NOSLEEP)) == NULL) { cmn_err(CE_WARN,"^stx_etx: stx_etx_putioc: out of memory!"); return( ENOMEM); } /* Parameter uebernehmen */ ((stx_etx_privat_t*)q->q_ptr)->param->STX = ((stx_etx_param_t*)mp->b_cont->b_rptr)->STX; ((stx_etx_privat_t*)q->q_ptr)->param->ETX = ((stx_etx_param_t*)mp->b_cont->b_rptr)->ETX; ((stx_etx_privat_t*)q->q_ptr)->param->DLE = ((stx_etx_param_t*)mp->b_cont->b_rptr)->DLE; /* ACK fuer ioctl */ mp->b_datap->db_type = M_IOCACK; iocp->ioc_count = 0; qreply( q, mp); /* q' s aktivieren */ enableok( q);

83

enableok( RD( q)); qenable( q);

Page 84: Architekturkonzept und Designaspekte einer …elib.suub.uni-bremen.de/publications/dissertations/E-Diss835_dis... · matik der gewachsenen heterogenen Struktur der ... Im zweiten

qenable( RD( q)); #ifdef DEBUG cmn_err( CE_NOTE, "^Stream STX_ETX-Module ready"); #endif return( OK); }

5.2.2 Multiple-Wait-Ereignisverwaltung

Der gesamte über die Grenzen der Kommunikationstask hinwegführende Informationsaustausch erfolgt ausschließlich über Filedeskriptoren (Devices, Pseudodevices, Pipes, Files). Sowohl in schreibender als auch in lesender Richtung werden ausschließlich nichtblockierende Systemrufe verwendet. Befindet sich die Kommunikationsplattform (bezüglich der Kommunikationstask) in einem Zustand, in dem „momentan“ keine Informationen zu verarbeiten sind, so verharrt die Task auf einem blockierenden Multiple-Wait-Systemaufruf (poll/select). Die Koordination der einlaufenden Informationen, ihre Interpretation als Ereignis und Verteilung auf die zugehörigen Callback-Funktionen wird durch die Multiple-Wait-Ereignisverwaltung reali-siert. Die folgende Abbildung zeigt den prinzipiellen Aufbau der in der Kommunikationsplattform ver-wendeten Multiple-Wait-Ereignisverwaltung.

Basis Schedule

Multiple Wait Callback

fd_poll_data_list

pollfd_1fd_to_poll

revents

events

fd

pollfd_2revents

events

fd

pollfd_3revents

events

fd

pollfd_4revents

events

fd

pollfd_nrevents

events

fd

fd_poll_data_n

usr_arg

handle

revents

events

fd

fd_poll_data_4

usr_arg

handle

revents

events

fd

fd_poll_data_3

usr_arg

handle

revents

events

fdfd_poll_data_2

usr_arg

handle

revents

events

fdfd_poll_data_1

usr_arg

handle

revents

events

fd

fd_poll_schedule_n

usr_arghandle

fd_poll_schedule_3

usr_arghandle

fd_poll_schedule_2

usr_arghandle

fd_poll_schedule_1

usr_arghandle

Callback-Multiple-Wait-Ereignisverwaltung der Kommunikationsplattform

Abbildung 36: Struktur der Multiple-Wait-Ereignisverwaltung

84

Page 85: Architekturkonzept und Designaspekte einer …elib.suub.uni-bremen.de/publications/dissertations/E-Diss835_dis... · matik der gewachsenen heterogenen Struktur der ... Im zweiten

Alle in der Multiple-Wait-Ereignisverwaltung registrierten Ereignisquellen sind in der Liste

85

Wait-Ereignisverwaltung der Kommunikationsplattform) aktiviert:

„fd_poll_data_list“ hinterlegt. Jedes Element dieser Liste enthält neben dem zu überwachenden Filedeskriptor eine Bytemaske (events) zur Selektion der gewünschten Ereignisarten des „poll“-Systemrufs und ein Bytefeld (revents) zur Anzeige der am Filedeskriptor anliegenden Ereignisse (z.B. POLLIN, POLLOUT, POLLERR, POLLNVAL). Vor Eintritt in den blockierenden Multiple-Wait-Systemaufruf wird aus der Liste der registrierten Ereignisquellen eine systemaufrufabhängige Verwaltungsstruktur aufgebaut bzw. aktualisiert. Bei Verwendung des „poll“-Systemaufrufs besteht diese Verwaltungsstruktur aus einem Array (fd_to_poll). Kehrt der blockierende Multiple-Wait-Systemaufruf einer wartenden Kommunikationstask infolge anliegender Ereignisse zurück, so wird die Verwaltungsstruktur des Systemaufrufs genutzt, um die Liste der registrierten Ereignisquellen zu aktualisieren. Anschließend werden nacheinnander alle Callback-Funktionen aufgerufen, deren Filedeskriptoren anliegende Ereignisse (revents) angezeigt haben. Es ist Aufgabe der Callback-Funktion, auf Basis der am Filedeskriptor anliegenden Ereig-nisse, mit Hilfe nichtblockierender Systemrufe (z.B. read/getmsg), die bereitstehenden Informa-tionen vom entsprechenden Fileskriptor abzuholen und in der Softwarekomonente (z.B. USER-STREAM-Port – siehe 5.3.3), welche die Callback-Funktion in der Multiple-Wait-Ereignisver-waltung registrierte, zu bearbeiten. Nach der Abarbeitung aller anliegenden Ereignisse, also vor Wiedereintritt in den blockierenden Multiple-Wait-Systemaufruf, werden alle in der Scheduleliste registrierten Callback-Funktionen solange wechselseitig aktiviert, bis die jeweils aktivierte Callback-Funktion durch Rückgabewert anzeigt, dass kein Bearbeitungsbedarf mehr vorliegt. Die folgende Tabelle beschreibt die grundsätzlichen Managementfunktionen der Multiple-Wait-Ereignisverwaltung der Kommunikationsplattform: Management Multiple-Wait-Ereignisverwaltung

Beschreibung

ins_fd_poll Ein Auftrag zur filedeskriptorbezogenen Ereignisverwaltung eines Callback-Handlers wird übergeben.

del_fd_poll Ein bestehender Auftrag zur filedeskriptorbezogenen Ereignisverwaltung wird zurückgenommen.

run_fd_poll Die Steuerung der Kommunikationstask wird an die Multiple-Wait-Ereignisverwaltung übergeben. (d.h. nach Abschluß der Initialisierungsphase werden sämtliche Aktivitäten der Kommunikationstask ausschließlich über Callback-Handler gesteuert)

fd_poll_ins_schedule Der übergebene Callback-Handler wird in die Scheduleverwaltung aufgenommen.

fd_poll_del_schedule Der übergebene Callback-Handler wird aus der Scheduleverwaltung entfernt.

Tabelle 24: Managementfunktionen zur Multiple-Wait-Ereignisverwaltung

In dem folgenden C-Quellcode-Beispiel (USER SPACE) wird nach der Ausführung der Manage-mentfunktion „ins_fd_poll“ der Callback-Handler „example_fd_poll_handler“ bei einlaufenden Er-eignissen am Filedeskriptor „example_fd“ durch die fd_poll-Bibliothek (Ausprägung der Multiple-

Page 86: Architekturkonzept und Designaspekte einer …elib.suub.uni-bremen.de/publications/dissertations/E-Diss835_dis... · matik der gewachsenen heterogenen Struktur der ... Im zweiten

86

... polldata.fd = example_fd; polldata.events = POLLIN; polldata.handle = example_fd_poll_handler; polldata.usr_data = (void*)example_usr_data_ptr; /* register callback */ if ( ins_fd_poll( &polldata) == ERROR) { printf("ins_fd_poll error!\n"); exit( ERROR); } ... Das folgende C-Quellcode-Beispiel (USER SPACE) enthält den Callback-Handler „example_fd_poll_handler“: /************************************************************** * * example_fd_poll_handler – Example fd_poll-Callback * *************************************************************/ void example_fd_poll_handler( fd_poll_data_t *polldata_ptr) { if ( polldata_ptr == NULL) { printf("polldata_ptr error!\n"); exit( ERROR); } /* example_usr_data */ example_usr_data_ptr = ( example_usr_data_t*)( polldata_ptr->usr_data); /* special poll revents */ if (( polldata_ptr->revents & ( POLLERR | POLLHUP | POLLNVAL)) != 0) { printf( "example_fd_poll_handle:” "special poll revents[%d] at fd[%d]\n", polldata_ptr->revents, polldata_ptr->fd); /* special poll service */ ... } /* POLLIN revent */ if (( polldata_ptr->revents & ( POLLIN)) != 0) { printf( "example_fd_poll_handle: POLLIN at fd[%d]\n", polldata_ptr->fd);

Page 87: Architekturkonzept und Designaspekte einer …elib.suub.uni-bremen.de/publications/dissertations/E-Diss835_dis... · matik der gewachsenen heterogenen Struktur der ... Im zweiten

/* POLLIN service */ ... } return; } Ein Callback-Handler kann für unterschiedliche Instanzen gleichzeitig genutzt werden. Der Bezug vom auftretenden Ereignis, infolge dessen der Callback-Handler aufgerufen wird und der zuständigen Verwaltungsinstanz (welche den Callback-Handler auf dem Filedeskriptor durch die fd_poll-Bibliothek registrierte) ist durch eine dem Nutzer der fd_poll-Bibliothek zur Verfügung gestellte „usr_arg“-Pointerreferenz gegeben.

5.2.3 Zeitereignisverwaltung

Die folgende Abbildung zeigt den prinzipiellen Aufbau der in der Kommunikationsplattform verwendeten Zeitereignisverwaltung.

Callback-Ereignissteuerung

Kommunikationstask

OS-KERNEL

fd -- time_base

non-blocked-write

Timebase-Ereignissteuerung

time_job_list

time_job_n

usr_arghandletime_out

time_job_2

usr_arghandletime_out

time_job_1

usr_arghandletime_out

time_job_control

delta-time-akndelta-time-req

time_base-callback_handle

select_actual_time_job

timebase-Treiber

Kernel- time_job_listtime_job_1

to_idtime_job_ref time_job_2

to_idtime_job_ref time_job_n

to_idtime_job_refStreams - Head

Kernel- time_job_control

untimeoutitimeout

Abbildung 37: Struktur der Zeitereignisverwaltung

Die Zeitereignisverwaltung der Kommunikationsplattform nutzt zur Registrierung von Verzögerungsaufträgen der Kommunikationstask die Liste „time_job_list. Durch diese Liste wird jedem laufenden Verzögerungsauftrag neben der Callback-Funktion eine eindeutige Referenz und

Timebase-Ereignissteuerung der Kommunikationsplattform

87

Page 88: Architekturkonzept und Designaspekte einer …elib.suub.uni-bremen.de/publications/dissertations/E-Diss835_dis... · matik der gewachsenen heterogenen Struktur der ... Im zweiten

die restliche Verzögerungszeit zugeordnet. Der Listeneintrag zur restlichen Verzögerungszeit wird nur bei Verzögerungsaufträgen großer Zeitintervalle verwendet (z.B. größer eine Sekunde). • Verzögerungsaufträge großer Zeitintervalle

Um die Anzahl von Verzögerungsaufträgen im Treiber zu reduzieren, werden alle Verzögerungsaufträge großer Zeitintervalle über eine Zeitbasis abgebildet. Dazu startet die Zeitereignisverwaltung zyklisch einen Verzögerungsauftrag (kleines Zeitintervall) konstanter Länge. Alle hinterlegten Verzögerungsaufträge großer Zeitintervalle werden modulo einer konstanten Verzögerungszeit (z.B. 100 Millisekunden), repräsentiert durch den zyklischen Verzögerungsauftrag der Zeitereignisverwaltung selbst, dekrementiert.

• Verzögerungsaufträge kleiner Zeitintervalle

Verzögerungsaufträge kleiner Zeitintervalle werden über Austauschprimitiven an den Timebase-Treiber der Zeitereignisverwaltung übergeben. Jeder an den Timebase-Treiber übergebene Verzögerungsauftrag bleibt solange registriert, bis der Timebase-Treiber, auf Anforderung durch die Timebase-Ereignissteuerung, die Freigabe des Verzögerungsauftrages angezeigt hat. Der Timebase-Treiber bildet die Verzögerungsanforderungen auf die OS-KERNEL – spezifischen Systemrufe „itimeout“ bzw. „intimeout“ ab.

Die folgende Tabelle beschreibt die Austauschprimitiven zwischen der Timebase-Ereignissteuerung und dem Timebase-Treiber der Zeitereignisverwaltung der Kommunikationsplattform: Austauschprimitive Beschreibung TIME_JOB_REQ Die Kommunikationstask aktiviert im Timebase-Treiber einen

Verzögerungsauftrag. (Die Verzögerungszeit und eine eindeutige Referenz werden übergeben)

TIME_JOB_AKN Der Timebase-Treiber zeigt der Kommunikationstask den Ablauf eines Verzögerungsauftrages an. (Die eindeutige Referenz des Verzögerungsauftrages bleibt bis zum Löschauftrag belegt)

TIME_JOB_ERASE_REQ Die Kommunikationstask fordert den Treiber auf, die eindeutige Referenz eines (abgelaufenen oder noch nicht abgelaufenen) Verzögerungsauftrages freizugeben.

TIME_JOB_ERASE_AKN Der Timebase-Treiber zeigt der Kommunikationstask die geforderte Freigabe einer eindeutigen Referenz an.

Tabelle 25: Austauschprimitiven der Zeitereignisverwaltung

Die folgende Tabelle beschreibt die grundsätzlichen Managementfunktionen der Zeitereignis-verwaltung der Kommunikationsplattform:

88

Page 89: Architekturkonzept und Designaspekte einer …elib.suub.uni-bremen.de/publications/dissertations/E-Diss835_dis... · matik der gewachsenen heterogenen Struktur der ... Im zweiten

Management Beschreibung Zeitereignisverwaltung activate_timebase Die Bibliothek zur Zeitereignisverwaltung wird aktiviert. deactivate_timebase Die Bibliothek zur Zeitereignisverwaltung wird deaktiviert. ins_time_job Ein Auftrag zur zeitverzögerten Ausführung einer Callback-

Funktion wird übergeben. del_time_job Ein noch nicht abgelaufener Auftrag zur zeitverzögerten

Ausführung wird zurückgenommen.

Tabelle 26: Managementfunktionen zur Zeitereignisverwaltung

5.2.4 Prozesssignalverwaltung

Die für die Kommunikationsapplikation relevanten Prozesssignale werden in der Initialisierungs-phase mit speziellen Signalhandlern versehen. Nach Eintreffen eines Prozesssignals (z.B. SIGTERM) wird der in der Initialisierungsphase registrierte Signalhändler aufgerufen. Der Signal-händler aktiviert in der Zeitereignisverwaltung einen Timejob mit einer Delay-Zeit von null. Die direkte Aktivität des Signalhändlers ist damit abgeschlossen. Die eigentlichen prozesssignalbedingten Aktivitäten werden vom Callback-Handler des aktivierten Timejobs der Zeitereignisverwaltung übernommen. Somit ist sichergestellt, dass normale Prozess-signale die Abarbeitung von Callback-Ereignishandlern nicht unterbrechen können.

5.2.5 Vermeidung der Nebenläufigkeit in der Ereignisverwaltung

Die Kapazität (Durchsatz) des GSM/R Kanals ist die begrenzende Größe des EORORADIO-basierten Kommunikationssystems der FFB-Anwendung. Die Rechenleistung der Gatewayrechner ist ausreichend, um die Protokollfunktionalitäten (EURORADIO und Koppelprotokoll) mit den notwendigen Echtzeiteigenschaften ablaufen zu lassen. Eine Multiprozessornutzung innerhalb einer Vermittlungstask wird dementsprechend nicht benötigt. Innerhalb des Kommunikationsframeworks (siehe 4.5) wird die Repräsentationsform einlaufender Informationen in den Multiple-Wait-Callback-Handlern (in Abbildung 38: get_info) in das USER STREAM Messagequeue Modell (siehe 5.3.3) überführt. Diese Überführung kostet wenig Rechenleistung und benötigt keine Priorisierung bzw. Nebenläufigkeit (parallele Nutzung von Ausführungsfäden). Der Informationsfluss durch die Kommunikationsstacks des USER STREAM wird mittels prioritätsbehafteter Nachrichten auf flusskontrollgesteuerten asynchronen Kommunikationskanälen organisiert. Bei Verlassen des USER STREAM Messagequeue Modells wird in den USER STREAM Ports die als USER STREAM Message vorliegende Information in die außerhalb benötigten Formate gewandelt. Diese Umwandlung kostet wenig Rechenleistung und benötigt keine Priorisierung bzw. Nebenläufigkeit. Zustandsbehaftete Protokolleigenschaften werden über ereignisgekoppelte Automaten (siehe 5.3.1) realisiert. Die Bearbeitung der einzelnen Transitionen erfolgt nichtblockierend und erfordert auf Grund der ausreichenden Rechenleistung keine Priorisierung bzw. Nebenläufigkeit. Die folgende Abbildung zeigt das Prinzip der nachrichten-orientierten Informationsverarbeitung der Vermittlungstask.

89

Page 90: Architekturkonzept und Designaspekte einer …elib.suub.uni-bremen.de/publications/dissertations/E-Diss835_dis... · matik der gewachsenen heterogenen Struktur der ... Im zweiten

get_info(callback)

EventMsg

STM

US_MSG Queue

US_PORT

WR RD

WR RDWR RD

WR RD

put_q/putnextput/srv(callback)

put_info

EventMsg

STM

put_q/putnext put/srv(callback)

US_MODUL (MUX/KONV)

Abbildung 38: Nachrichtenorientierte Informationsverarbeitung der Vermittlungstask

Die Zuteilung der Verarbeitungsaktivitäten erfolgt durch den Scheduler der USER STREAM Ablaufumgebung entsprechend den Flusskontrollzuständen der Messagequeues oder indirekt durch die Flusskontrollautomaten-abhängige Speisung der Messagequeus der einzelnen Protokollschich-ten. Die Notwendigkeit der Organisation nebenläufiger Programmablaufaktivitäten innerhalb der Vermittlungstask wird durch die Anwendung der nachrichtenorientierten-Schedulingaktivitäten (prioritätsgesteuert und flusskontrollabhängig) des Kommunikationsframeworks (siehe 4.5) ver-mieden. Die Kombination von Multiple-Wait-Ereignissteuerung mit eingebetteter Zeitereignis-steuerung und Messagequeue - orientierter Ablaufumgebung macht die Verwendung von Betriebs-

90

Page 91: Architekturkonzept und Designaspekte einer …elib.suub.uni-bremen.de/publications/dissertations/E-Diss835_dis... · matik der gewachsenen heterogenen Struktur der ... Im zweiten

mitteln zum Management paralleler Ausführungsfäden (Multithreading) in der Vermittlungstask der Kommuniukationsplattform überflüssig. Die Verwaltung der nebenläufigen Ausführungsfäden (z.B. gegenseitiger Ausschluss zur Vermeidung von Inkonsistenzen) würde die Komplexität des Kommunikationsframeworks unnötigerweise erheblich steigern.

5.3 OS - unabhängige Betriebsmittel

5.3.1 Statemaschine

Die folgende Abbildung zeigt beispielhaft das Modell der in der Kommunikationsplattform ver-wendeten Zustandsautomaten.

Abbildung 39: Beispiel eines Zustandsautomaten der Kommunikationsplattform

Die folgende Tabelle beschreibt die Elemente des allgemeinen Modells der in der Kommunikations-plattform verwendeten Zustandsautomaten.

EXAMPLE_ST_IDLE

EXAMPLE_ST_DOWN

EXAMPLE_EV_START

example_idle_activ_1_handleexample_idle_activ_2_handle

EXAMPLE_ST_ACTIV

EXAMPLE_EV_DEACTIVATE

EXAMPLE_EV_DOWN

example_active_idle_1_handleexample_active_idle_2_handle

EXAMPLE_EV_DEACTIVATE

example_idle_down_1_handleexample_idle_down_2_handle

example_activ_down_1_handleexample_activ_down_2_handle

91

Page 92: Architekturkonzept und Designaspekte einer …elib.suub.uni-bremen.de/publications/dissertations/E-Diss835_dis... · matik der gewachsenen heterogenen Struktur der ... Im zweiten

Bezeichnung des Bedeutung Elements STATE Zustand des Automaten EVENT Ereignis (Anstoß für Zustandsübergang) ACTION Transition (Zustandsübergang) HANDLERLIST Liste mit auszuführenden Händlern (beim

Zustandsübergang) HANDLER Funktion, die beim Zustandsübergang ausgeführt

wird.

Tabelle 27: Elemente des Zustandsautomaten

Das allgemeine Modell der in der Kommunikationsplattform verwendeten Zustandsautomaten wird in zwei unterschiedlichen Ausprägungen (siehe 5.3.1.1 und 5.3.1.2), welche sich in der Art der Verwaltung der Zustandsübergangslogik unterscheiden, genutzt. Jede Instanz eines Zustandsautomaten der Kommunikationsplattform verwaltet die aktuelle Bearbeitungssituation (Actual Condition). Wird ein Ereignis an die Instanz eines Zustands-automaten übergeben, hängt die Reaktion der Automateninstanz von der aktuellen Bearbeitungs-situation ab. Ein übergebenes Ereignis wird als sekundäres Ereignis betrachtet, wenn die Abarbei-tung vorher übergebener Ereignisse noch nicht abgeschlossen ist. Sekundäre Ereignisse werden in der Reihenfolge ihres Eintreffens in der Automateninstanz zwischengespeichert (Eventcache). Befindet sich die Automateninstanz nicht im Zustand der Abarbeitung eines Ereignisses, so wird das übergebene Ereignis als primäres Ereignis behandelt. Ein primäres Ereignis wird sofort bearbeitet, indem die entsprechend des Ausgangszustandes (STATE) der Automateninstanz und des übergebenen Ereignisses hinterlegte Transition (ACTION) ausgeführt wird. Nach Bearbeitung der Transition aktualisiert die Automateninstanz ihren Zustand (STATE). Damit ist die Bearbeitung eines primären Ereignisses abgeschlossen. Anschließend wird, falls vorhanden, das älteste sekun-däre Ereignis aus dem Zwischenspeicher der Automateninstanz entfernt und als primäres Ereignis abgearbeitet. Transitionen der Zustandsautomaten der Kommunikationsplattform werden durch Handlerlisten (HANDLERLIST) repräsentiert.

5.3.1.1 Fest kodierte Automaten

Die folgende Abbildung zeigt den prinzipiellen strukturellen Aufbau der Zustandsübergangslogik eines fest kodierten Automaten.

92

Page 93: Architekturkonzept und Designaspekte einer …elib.suub.uni-bremen.de/publications/dissertations/E-Diss835_dis... · matik der gewachsenen heterogenen Struktur der ... Im zweiten

F IX _S T M _S T A T E _TF IX _ S T M _T

IN T LA ST A C TIO NIN T S T AT EC H A R *ST A T E _ N A M E

IN T E VE N T

F IX _ S T M _ A C T IO N _T

IN T D E S T IN A T IO N _ ER R O R

C H A R *AC T IO N _N A M E

IN T EV E N T

IN T D E ST IN A TI O N _ O K

IN T (* F U N C )( ...)

C H A R *H A N D L E _ N A M E

F IX _ S T M _ H A N D L E _ T

IN T L AS T H A N D LE

IN T (*F U N C )(...)

C H A R *H A N D L E_ N A M E

F I X _S T M _H A N D L E _T

IN T ( *F U N C )(...)

C H AR *H AN D L E _ N AM E

F IX _ S T M _ H A N D L E _ T

IN T EV E N T

F IX _S T M _A C T IO N _T

IN T D E ST IN A TIO N _ E R R O R

C H AR *A C T IO N _ N AM E

IN T E V EN T

IN T D E ST IN AT IO N _ O K

IN T (*F U N C )( ...)

C H A R *H A N D LE _ N A M E

F I X _S T M _ H A N D L E _T

IN T L A S T H A N D L E

IN T (*F U N C )(.. .)

C H AR *H AN D L E _ N AM E

F IX _ S T M _ H A N D L E _ T

IN T (*F U N C )(...)

C H A R * H A N D L E _ N A M E

F IX _ S T M _ H A N D L E _ T

IN T E V EN T

F IX _ S T M _ A C T IO N _ T

IN T D ES T IN A T IO N _ E R R O R

C H A R *A C T IO N _ N A M E

IN T E VE N T

IN T D E S T IN A T IO N _ O K

IN T (*F U N C )(...)

C H AR *H AN D L E _ N AM E

F IX _ S T M _ H A N D L E _ T

IN T L A ST H AN D L E

IN T (*F U N C )(...)

C H A R *H A N D L E _N A M E

F IX _ S T M _ H A N D L E _ T

IN T (*F U N C )(...)

C H A R *H A N D L E_ N A M E

F I X _S T M _H A N D L E _T

F IX _S T M _S T A T E _T

IN T LA ST A C T IO NIN T S T AT EC H A R *ST A T E_ N A M E

IN T E VE N T

F IX _S T M _A C T IO N _T

IN T D E S T IN A T IO N _ ER R O R

C H A R *A C TI O N _ N A M E

IN T EV E N T

IN T D E ST IN A TIO N _ O K

IN T (* F U N C )( ...)

C H A R *H A N D LE _ N A M E

F I X _ S T M _ H A N D L E _ T

IN T L A S T H A N D L E

IN T (* FU N C )( ...)

C H AR *H A N D L E_ N A M E

F IX _S T M _H A N D L E _T

IN T ( *F U N C )(...)

C H A R *H AN D L E _N AM E

F IX _ S T M _ H A N D L E _ T

I N T EV E N T

F IX _S T M _A C T IO N _T

IN T D E ST IN AT IO N _ E R R O R

C H AR *A C T IO N _ N AM E

IN T E V EN T

IN T D ES T IN AT IO N _ O K

IN T (*F U N C )( ...)

C H A R *H A N D L E_ N A M E

F I X _S T M _H A N D L E _T

IN T L A S TH A N D L E

IN T (*F U N C )(...)

C H AR *H AN D L E _ N AM E

F IX _ S T M _ H A N D L E _ T

IN T (* F U N C )( ...)

C H A R *H A N D L E _ N A M E

F IX _ S T M _ H A N D L E _ T

IN T E V EN T

F IX _ S T M _ A C T IO N _ T

IN T D ES T IN A T IO N _ E R R O R

C H A R * AC T IO N _ N A M E

IN T E VE N T

IN T D E S T IN A T IO N _ O K

IN T (*F U N C )(...)

C H A R *H AN D L E _N AM E

F IX _ S T M _ H A N D L E _ T

IN T L AS T H AN D L E

IN T (*F U N C )(...)

C H A R *H A N D L E _N A M E

F I X _ S T M _ H A N D L E _ T

IN T (* FU N C )( ...)

C H AR *H A N D L E_ N A M E

F IX _S T M _H A N D L E _T

F IX _S T M _S T A T E _T

IN T LA S TA C T IO NIN T S T A TEC H A R *S TA T E _ N A M E

IN T E V EN T

F IX _ S T M _ A C T IO N _ T

IN T D E S T IN A T IO N _ ER R O R

C H A R *AC T IO N _ N A M E

IN T EV E N T

IN T D E S TI N A T IO N _ O K

I N T (* F U N C )( ...)

C H A R *H A N D LE _ N A M E

F IX _ S T M _ H A N D L E _ T

IN T LAS T H A N D LE

IN T (* F U N C )( ...)

C H A R *H A N D L E _ N A M E

F I X _S T M _ H A N D L E _ T

IN T ( *F U N C )( ...)

C H AR *H AN D L E_ N AM E

F IX _ S T M _H A N D L E _ T

IN T E VE N T

F IX _S T M _A C T IO N _T

IN T D E S TI N A T IO N _ E R R O R

C H AR *A C TIO N _ N A M E

IN T E V E N T

IN T D E ST IN AT IO N _ O K

IN T (*F U N C )( ...)

C H A R *H A N D LE _ N A M E

F I X _S T M _ H A N D L E _ T

IN T L A S T H A N D L E

IN T (*FU N C )( ...)

C H AR *H A N D L E_ N A M E

F IX _ S T M _H A N D L E _T

IN T (*F U N C )( ...)

C H A R *H A N D L E _ N AM E

F IX _ S T M _ H A N D L E _ T

IN T E V E N T

F IX _ S T M _ A C T IO N _ T

IN T D ES T IN AT IO N _ E R R O R

C H A R * A C T IO N _ N A M E

IN T E VE N T

IN T D ES T IN A T IO N _ O K

IN T (*F U N C )( ...)

C H AR *H AN D L E_ N AM E

F IX _ S T M _H A N D L E _ T

IN T L A ST H AN D L E

I N T (*F U N C )(...)

C H A R *H A N D L E _N A M E

F IX _ S T M _ H A N D L E _ T

IN T (*F U N C )(...)

C H A R * H A N D L E _ N A M E

F I X _S T M _ H A N D L E _ T

C H A R *ST M _ N A M E IN T L A S TS T A T E

Abbildung 40: struktureller Aufbau der Zustandsübergangslogik eines fest kodierten Automaten

Alle Elemente der Zustandsübergangslogik sind in festen Arrays gespeichert. Die Längen der Arrays sind separat vermerkt. Neben der Zustandsübergangslogik, die für alle Instanzen des fest kodierten Automaten gemeinsam genutzt wird, benötigt eine Instanz eines fest kodierten Automaten einen Ereignisspeicher (Eventcache) und eine Struktur zum Vermerken der aktuellen Bearbeitungssituation (Actual Condition). Fest kodierte Automaten werden in der Kommunikationsplattform vorrangig im OS-Kernel-Bereich genutzt, um die benötigten Ressourcen (OS-Kernelspeicher und Speicherverwaltung des OS-Kernel) zu minimieren. Das folgende C-Quellcode-Beispiel enthält die Strukturdefinition der in der Kommunikations-plattform verwendeten Ausprägung (HCSTM-HardCoded STateMachine) eines fest kodierten Automaten (FIX_STM_T):

93

Page 94: Architekturkonzept und Designaspekte einer …elib.suub.uni-bremen.de/publications/dissertations/E-Diss835_dis... · matik der gewachsenen heterogenen Struktur der ... Im zweiten

typedef struct hcstm_v { /*********************************/ /*** Core structure definition ***/ /*********************************/ const struct hcstm_core_v { char *name; int laststate; struct hcstm_state_v { char *name; int state; int lastaction; struct hcstm_action_v { char *name; int event; int destination_ok; int destination_error; int lasthandle; struct hcstm_handle_v { char *name; int (*func)(struct hcstm_v *,void *); } *handle; } *action; } *state; } *core; /*****************************************/ /* Current state record of this instance */ /*****************************************/ /*** Internal event cache ***/ struct hcstm_event_v { int event; void *argmt; struct hcstm_event_v *next; } *cache; struct hcstm_event_v *event; /* Current event */ struct hcstm_state_v *here; /* Current state entry */ unsigned flag; /* Internal flagbuffer */ unsigned tracelevel; char *tracelable; /*** Userdefined data and Error handle ***/ void *arg; int (*error)(struct hcstm_v *, void *); } hcstm_t; typedef const struct hcstm_core_v hcstm_core_t; typedef struct hcstm_state_v hcstm_state_t; typedef struct hcstm_action_v hcstm_action_t; typedef struct hcstm_handle_v hcstm_handle_t; typedef struct hcstm_event_v hcstm_event_t;

94

Page 95: Architekturkonzept und Designaspekte einer …elib.suub.uni-bremen.de/publications/dissertations/E-Diss835_dis... · matik der gewachsenen heterogenen Struktur der ... Im zweiten

/************ Macros for core creation ***********************/ #define MAXACTION(X) (sizeof(X)/sizeof(hcstm_action_t)) #define MAXSTATE(X) (sizeof(X)/sizeof(hcstm_state_t)) #define MAXHANDLE(X) (sizeof(X)/sizeof(hcstm_handle_t)) #define LEER_HANDLE (char*)0,(int)0 #define EXEC(X) MAXHANDLE(X),X #define LEER 0,(hcstm_handle_t*)0 /********* User available functions for stm handling *********/ hcstm_t *hcstm_create( hcstm_core_t*, int (*)(hcstm_t*, void*), int , void*); int hcstm_put(hcstm_t *, int, void *); hcstm_t *hcstm_free(hcstm_t *);

95

EXEC( st_idle_ev_start_st_activ)},

In dem folgenden C-Quellcode-Beispiel (USER SPACE) wird die Konstruktion eines Zustands-automaten nach Abbildung 39 in der Variante eines fest kodierten Automaten dargestellt: /*************************************************************//* EXAMPLE_ST_IDLE - HANDLELIST */ /* * st_idle_ev_start_st_activ */ hcstm_handle_t st_idle_ev_start_st_activ[] = { {"example_idle_activ_1_handle", example_idle_activ_1_handle}, {"example_idle_activ_2_handle", example_idle_activ_2_handle} }; /* * st_idle_ev_deactivate_st_down */ hcstm_handle_t st_idle_ev_deactivate_st_down[] = { {"example_idle_down_1_handle", example_idle_down_1_handle}, {"example_idle_down_2_handle", example_idle_down_2_handle} }; /*************************************************************//* EXAMPLE_ST_IDLE - ACTION */ hcstm_action_t st_idle_action[] = { /* st_idle_ev_start_st_activ */ {"EXAMPLE_EV_START", EXAMPLE_EV_START, EXAMPLE_ST_ACTIV, EXAMPLE_ST_ACTIV,

Page 96: Architekturkonzept und Designaspekte einer …elib.suub.uni-bremen.de/publications/dissertations/E-Diss835_dis... · matik der gewachsenen heterogenen Struktur der ... Im zweiten

/* st_idle_ev_deactivate_st_down */ {"EXAMPLE_EV_DEACTIVATE", EXAMPLE_EV_DEACTIVATE, EXAMPLE_ST_DOWN, EXAMPLE_ST_DOWN, EXEC( st_idle_ev_deactivate_st_down )} }; /*************************************************************//* EXAMPLE_ST_ACTIV - HANDLELIST */ /* * st_activ_ev_down_st_idle */ hcstm_handle_t st_activ_ev_down_st_activ[] = { {"example_activ_idle_1_handle", example_activ_idle_1_handle}, {"example_activ_idle_2_handle", example_activ_idle_2_handle} }; /* * st_activ_ev_deactivate_st_down */ hcstm_handle_t st_activ_ev_deactivate_st_down[] = { {"example_activ_down_1_handle", example_activ_down_1_handle}, {"example_activ_down_2_handle", example_activ_down_2_handle} }; /*************************************************************//* EXAMPLE_ST_ACTIV - ACTION */ hcstm_action_t st_activ_action[] = { /* st_activ_ev_down_st_idle */ {"EXAMPLE_EV_DOWN", EXAMPLE_EV_DOWN, EXAMPLE_ST_IDLE, EXAMPLE_ST_IDLE, EXEC( st_activ_ev_down_st_idle)}, /* st_activ_ev_deactivate_st_down */ {"EXAMPLE_EV_DEACTIVATE", EXAMPLE_EV_DEACTIVATE, EXAMPLE_ST_DOWN, EXAMPLE_ST_DOWN, EXEC( st_activ_ev_deactivate_st_down )} }; /*************************************************************//* EXAMPLE_ST_DOWN - ACTION */ hcstm_action_t st_down_action[] = { {LEER} };

96

/*************************************************************/

Page 97: Architekturkonzept und Designaspekte einer …elib.suub.uni-bremen.de/publications/dissertations/E-Diss835_dis... · matik der gewachsenen heterogenen Struktur der ... Im zweiten

/* STATES */ hcstm_state_t example_states[] = { /* EXAMPLE_ST_IDLE */ { "EXAMPLE_ST_IDLE", EXAMPLE_ST_IDLE, MAXACTION( st_idle_action), st_idle_action}, /* EXAMPLE_ST_ACTIV */ { "EXAMPLE_ST_ACTIV", EXAMPLE_ST_ACTIV, MAXACTION( st_activ_action), st_activ_action}, /* EXAMPLE_ST_DOWN */ { "EXAMPLE_ST_DOWN", EXAMPLE_ST_DOWN, MAXACTION( st_down_action), st_down_action} }; /*************************************************************/hcstm_core_t example_core[] = { /* EXAMPLE_STM */ { "EXAMPLE_STM_LABEL", MAXSTATE( example_states), example_states} }; /*************************************************************/ /* * example_hcstm_create */ hcstm_t *example_hcstm_create() { hcstm_t *example_hcstm; /* stm erzeugen */ if (( example_hcstm = hcstm_create( example_core, example_unexpected_event_handle, EXAMPLE_ST_IDLE, example_usr_arg_ptr)) == NULL) { printf("example_hcstm_create: hcstm_create error!\n"); exit( ERROR); } return( example_hcstm); }

97

Die Verwendung der Managementfunktion des fest kodierten Automaten zur Ereignisübergabe zeigt das folgenden C-Quellcode-Beispiel (USER SPACE):

Page 98: Architekturkonzept und Designaspekte einer …elib.suub.uni-bremen.de/publications/dissertations/E-Diss835_dis... · matik der gewachsenen heterogenen Struktur der ... Im zweiten

... if ( hcstm_put( example_hcstm, EXAMPLE_EV_START, ev_start_usr_arg_ptr) == ERROR) { printf("example: hcstm_put error!\n"); exit( ERROR); } ...

98

Automaten.

In Folge der Ereignisübergabe „EXAMPLE_EV_START“ im Zustand „EXAMPLE_ST_IDLE“ werden die Funktionen „example_idle_activ_1_handle“ und „example_idle_active_2_handle“ aufgerufen. Anschließend wird vom Automaten der Zustand „EXAMPLE_ST_ACTIV“ – als Zielzustand – eingenommen. Bricht eine der beiden Funktionen „example_idle_activ_1_handle“ und „example_idle_active_2_handle“ die Bearbeitung mit Fehlermeldung ab, so wird ebenfalls der Zustand „EXAMPLE_ST_ACTIV“ – als Fehlerzustand – eingenommen. Falls sich der Automat „example_hcstm“ bei Abarbeitung des Ereignisses „EXAMPLE_EV_START“ nicht im Zustand „EXAMPLE_ST_IDLE“ befindet, wird die Fehlerbehandlungsfunktion des Automaten „example_unexpected_event_handle“ ausgeführt.

5.3.1.2 Zur Laufzeit kodierte Automaten

Die Zustandsübergangslogik der zur Laufzeit kodierten Automaten ist in Listen hinterlegt. In der Initialisierungsphase der Instanz des zur Laufzeit kodierten Automaten werden die Zustände, die Zustandsübergänge und die Ausführungslisten registriert. Neben der Zustandsübergangslogik benötigt eine Instanz eines zur Laufzeit kodierten Automaten einen Ereignisspeicher (Eventcache), eine Struktur zum Vermerken gelöschter Zustände während der Bearbeitung von Ereignissen und eine weitere Struktur zum Vermerken der aktuellen Bearbeitungssituation (Actual Condition). In der Kommunikationsplattform werden zwei Modi für zur Laufzeit kodierte Automaten verwendet:

• Zur Laufzeit kodierte Automaten ohne Transitionsabbruch Alle Händler, der in einer Transition vermerkten Händlerliste, werden nacheinander ausgeführt. Die Händler haben keine Möglichkeit die Transition abzubrechen. Der Endzustand der Transition wird nach Abarbeitung aller Händler eingenommen.

• Zur Laufzeit kodierte Automaten mit Transitionsabbruch

Alle Händler, der in einer Transition vermerkten Händlerliste, werden im Normalfall nacheinander ausgeführt. Jeder Händler hat die Möglichkeit die Transition abzubrechen. Der Endzustand der Transition wird nur nach normaler Abarbeitung aller Händler eingenommen. Im Falle des Abbruchs durch einen Händler wird ein alternativer Zustand eingenommen.

Zur Laufzeit kodierte veränderliche Automaten Zur Laufzeit können aus diesen Automaten Zustände, inklusive der zugehörigen Transitionen, entfernt bzw. neue Zustände und Transitionen eingefügt werden (Automatenmutation). Die Ausführung des Entfernens von Zuständen wird, um Konsistenzprobleme zu vermeiden, verzögert, (Registrierung gelöschter Zustände) bis alle anstehenden (auch sekundären) Ereignisse abgearbeitet sind. Die folgende Abbildung zeigt den prinzipiellen strukturellen Aufbau eines zur Laufzeit kodierten

Page 99: Architekturkonzept und Designaspekte einer …elib.suub.uni-bremen.de/publications/dissertations/E-Diss835_dis... · matik der gewachsenen heterogenen Struktur der ... Im zweiten

IN T S T A T E

C H A R * S T M _ N A M E

S T M _S T A T E _ T

S T M _ S T A N D A R D _T R A N S I T I O N _ L IS T

S T M _ E X T E N D E D _ T R A N S I T I O N _L IS T

C H A R *S T A T E _ N A M E IN T (* E R R O R _ F U N C )( . .. )

S T M _ E X T E N D E D _T R A N S IT IO N _ T

I N T E V E N T

I N T O K _S T A T E

IN T E R R _ S T A T E S T M _ E X T E N D E D _ H A N D L E _ L IS T

C H A R * T R A N S I T IO N _ N A M E

C H A R * E X T_ H A N D LE _ N A M E

IN T ( *S T M _E X T _ H A N D L E ) ( .. . )

S T M _ E X T E N D E T _H A N D LE _ T

S T M _ S T A N D A R D _ T R A N S IT IO N _ T

I N T E V E N T

I N T E N D _ S T A T E

S T M _ S T A N D A R D _H A N D L E _ L IS T

C H A R * T R A N S I T I O N _ N A M E

C H A R *H A N D L E _N A M E

I N T (*S T M _ H A N D LE ) (. . .)

S T M _H A N D LE _ T

C H A R *E X T _H A N D L E _ N A M E

IN T ( *S T M _ E X T _H A N D LE ) ( .. . )

S T M _ E X T E N D E T _ H A N D L E _ T

C H A R * E X T_ H A N D LE _ N A M E

I N T ( *S T M _ E X T_ H A N D L E ) ( . .. )

S T M _ E X T E N D E T _ H A N D LE _ T

S T M _E X T E N D E D _ T R A N S IT I O N _T

IN T E V E N T

IN T O K _ S T A T E

IN T E R R _ S T A T E S T M _ E X T E N D E D _ H A N D L E _L IS T

C H A R * T R A N S IT IO N _ N A M E

C H A R * E X T_ H A N D LE _ N A M E

I N T (*S TM _ E X T_ H A N D L E ) ( . .. )

S T M _ E X T E N D E T _ H A N D L E _T

C H A R * E X T_ H A N D LE _ N A M E

IN T ( *S T M _E X T _ H A N D L E ) (.. . )

S T M _ E X T E N D E T _ H A N D L E _ T

C H A R *E X T _ H A N D L E _N A M E

I N T ( * S TM _ E X T_ H A N D L E )( . .. )

S TM _ E X T E N D E T_ H A N D L E _ T

S T M _ E X T E N D E D _ T R A N S I T I O N _ T

IN T E V E N T

IN T O K _ S T A T E

I N T E R R _ S T A T E S T M _ E X T E N D E D _ H A N D L E _ L IS T

C H A R * T R A N S IT I O N _ N A M E

C H A R *E X T _ H A N D L E _N A M E

I N T ( * S T M _ E X T _ H A N D L E )( . . .)

S T M _ E X TE N D E T _ H A N D L E _ T

C H A R *E X T_ H A N D L E _ N A M E

I N T ( * S TM _ E X T_ H A N D L E ) ( . .. )

S TM _E X T E N D E T _ H A N D L E _ T

C H A R *E X T _ H A N D L E _N A M E

I N T ( *S T M _ E X T _ H A N D LE ) (. . .)

S T M _E X TE N D E T _ H A N D L E _ T

C H A R * H A N D LE _ N A M E

IN T ( *S T M _H A N D LE ) ( .. . )

S T M _ H A N D L E _T

C H A R *H A N D LE _ N A M E

IN T ( *S T M _H A N D LE ) ( . . . )

S T M _ H A N D L E _T

S T M _S T A N D A R D _ T R A N S I T I O N _ T

IN T E V E N T

IN T E N D _ S T A T E

S TM _ S T A N D A R D _ H A N D L E _ L IS T

C H A R * T R A N S I T I O N _ N A M E

C H A R *H A N D L E _ N A M E

I N T ( * S TM _ H A N D L E ) ( . .. )

S T M _ H A N D L E _ T

C H A R *H A N D L E _N A M E

I N T (*S T M _ H A N D L E ) (. . .)

S T M _H A N D L E _ T

C H A R *H A N D L E _ N A M E

I N T ( * S T M _ H A N D L E ) ( . . .)

S T M _H A N D L E _ T

S T M _ S T A N D A R D _T R A N S I T I O N _ T

IN T E V E N T

IN T E N D _ S T A T E

S T M _ S TA N D A R D _ H A N D L E _L IS T

C H A R *T R A N S IT IO N _ N A M E

C H A R * H A N D L E _ N A M E

I N T ( *S T M _ H A N D L E ) ( .. . )

S TM _ H A N D L E _ T

C H A R *H A N D L E _N A M E

I N T ( * S TM _ H A N D L E )( . .. )

S T M _ H A N D L E _ T

C H A R *H A N D L E _N A M E

I N T (* S TM _ H A N D L E )( . .. )

S T M _ H A N D L E _ T

I N T S T A T E

S T M _ S T A T E _ T

S T M _ S T A N D A R D _ T R A N S IT IO N _L IS T

S T M _ E X T E N D E D _ T R A N S IT IO N _ L I S T

C H A R * S T A T E _ N A M E I N T (* E R R O R _F U N C )( ... )

S T M _E X T E N D E D _ T R A N S I T I O N _T

IN T E V E N T

IN T O K _ S T A T E

IN T E R R _ S T A T E S T M _ E X T E N D E D _ H A N D L E _ L IS T

C H A R *T R A N S IT IO N _ N A M E

C H A R *E X T _ H A N D L E _N A ME

I N T ( * S TM _ E X T _ H A N D L E ) (. .. )

S TM _E X T E N D E T _ H A N D L E _ T

S T M _ S T A N D A R D _ T R A N S I T I O N _ T

I N T E V E N T

IN T E N D _ S T A T E

S T M _S T A N D A R D _ H A N D LE _ L IS T

C H A R * T R A N S IT IO N _ N A M E

C H A R * H A N D LE _ N A M E

IN T ( *S T M _ H A N D L E )( .. . )

S T M _ H A N D L E _ T

C H A R * E X T_ H A N D LE _ N A M E

I N T ( *S T M _ E X T_ H A N D L E ) ( . .. )

S T M _ E X T E N D E T _ H A N D LE _ T

C H A R *E X T _ H A N D L E _ N A M E

I N T ( * S TM _E X T _ H A N D L E ) ( . . .)

S T M _ E X TE N D E T _H A N D L E _ T

S T M _ E X T E N D E D _ T R A N S I T I O N _ T

IN T E V E N T

IN T O K _ S T A T E

I N T E R R _ S T A T E S T M _ E X T E N D E D _ H A N D L E _L IS T

C H A R * T R A N S IT I O N _ N A M E

C H A R *E X T _H A N D L E _ N A M E

I N T (* S T M _ E X T _H A N D LE ) ( . . .)

S T M _ E X TE N D E T _ H A N D L E _T

C H A R *E X T _ H A N D L E _N A M E

I N T ( * S TM _ E X T _ H A N D L E )( . .. )

S TM _ E X T E N D E T_ H A N D L E _ T

C H A R *E X T _ H A N D L E _ N A M E

I N T (*S T M _ E X T _ H A N D LE )( . . .)

S T M _ E X T E N D E T _ H A N D L E _ T

S T M _ E X T E N D E D _T R A N S I T IO N _ T

I N T E V E N T

I N T O K _ S T A T E

I N T E R R _ S T A T E S T M _ E X T E N D E D _ H A N D L E _ L I S T

C H A R * T R A N S I T I O N _ N A M E

C H A R *E X T _ H A N D LE _ N A M E

IN T (*S T M _ E X T _ H A N D L E ) ( .. . )

S T M _ E X T E N D E T _ H A N D L E _ T

C H A R *E X T _ H A N D L E _ N A M E

I N T ( *S T M _E X T _ H A N D LE ) (. . .)

S T M _E X TE N D E T _ H A N D L E _ T

C H A R * E X T_ H A N D LE _ N A M E

IN T ( *S T M _ E X T _ H A N D L E )( .. . )

S T M _ E X T E N D E T _ H A N D LE _ T

C H A R *H A N D L E _ N A M E

I N T ( * S TM _ H A N D L E ) ( . .. )

S TM _ H A N D L E _ T

C H A R *H A N D L E _ N A M E

I N T ( * S TM _ H A N D L E ) ( . .. )

S TM _ H A N D L E _ T

S T M _ S T A N D A R D _ T R A N S IT IO N _ T

I N T E V E N T

I N T E N D _ S T A T E

S T M _ S T A N D A R D _ H A N D L E _ L IS T

C H A R * T R A N S I T IO N _ N A M E

C H A R *H A N D L E _ N A M E

I N T ( *S T M _H A N D LE ) ( . . .)

S T M _ H A N D LE _ T

C H A R * H A N D LE _ N A M E

IN T (*S T M _ H A N D L E )( .. . )

S T M _ H A N D L E _ T

C H A R * H A N D LE _ N A M E

IN T (*S T M _ H A N D LE ) (.. . )

S T M _ H A N D L E _ T

S T M _ S T A N D A R D _ T R A N S IT IO N _T

IN T E V E N T

IN T E N D _S T A T E

S T M _ S T A N D A R D _H A N D L E _L I S T

C H A R * T R A N S I T I O N _ N A M E

C H A R *H A N D L E _ N A M E

I N T ( * S T M _ H A N D L E ) ( . . .)

S T M _ H A N D L E _ T

C H A R *H A N D LE _ N A M E

IN T ( *S T M _ H A N D LE ) ( . . .)

S T M _ H A N D LE _ T

C H A R *H A N D LE _ N A M E

IN T ( *S T M _ H A N D LE )( . . .)

S T M _ H A N D LE _ T

I N T S T A T E

S T M _ S T A T E _ T

S T M _ S T A N D A R D _ T R A N S I T I O N _L IS T

S T M _ E X T E N D E D _ T R A N S IT IO N _ L I S T

C H A R * S T A T E _ N A M E I N T ( * E R R O R _ F U N C )( . .. )

S T M _E X T E N D E D _ T R A N S IT I O N _T

IN T E V E N T

IN T O K _ S T A T E

IN T E R R _ S T A T E S T M _ E X T E N D E D _ H A N D LE _ L IS T

C H A R *T R A N S IT IO N _ N A M E

C H A R *E X T_ H A N D L E _N A M E

I N T ( * S TM _ E X T_ H A N D L E ) (. .. )

S TM _ E X T E N D E T_ H A N D L E _ T

S T M _ S T A N D A R D _ T R A N S I T I O N _ T

I N T E V E N T

I N T E N D _ S T A T E

S T M _ S T A N D A R D _ H A N D LE _ L IS T

C H A R * T R A N S IT IO N _ N A M E

C H A R * H A N D LE _ N A M E

IN T ( *S T M _ H A N D L E ) ( .. . )

S T M _ H A N D L E _ T

C H A R * E X T_ H A N D LE _ N A M E

I N T ( *S T M _ E X T_ H A N D L E ) ( . .. )

S T M _ E X T E N D E T _ H A N D LE _ T

C H A R *E X T _ H A N D L E _ N A M E

I N T ( * S TM _ E X T _ H A N D L E ) ( . . .)

S TM _E X T E N D E T _ H A N D L E _ T

S T M _ E X T E N D E D _ T R A N S I T I O N _ T

IN T E V E N T

IN T O K _ S T A T E

I N T E R R _ S T A T E S T M _ E X T E N D E D _ H A N D L E _L IS T

C H A R * T R A N S IT I O N _ N A M E

C H A R *E X T _H A N D L E _ N A M E

I N T (* S T M _ E X T _H A N D LE ) ( . . .)

S T M _ E X TE N D E T _ H A N D L E _T

C H A R *E X T_ H A N D L E _N A M E

I N T ( * S TM _ E X T_ H A N D L E )( . .. )

S TM _ E X T E N D E T _ H A N D L E _ T

C H A R *E X T _ H A N D L E _ N A M E

I N T (*S T M _ E X T _ H A N D LE ) ( . . .)

S T M _ E X TE N D E T _ H A N D L E _ T

S T M _ E X T E N D E D _T R A N S I T IO N _ T

I N T E V E N T

I N T O K _ S T A T E

I N T E R R _ S T A T E S T M _ E X T E N D E D _ H A N D L E _ L I S T

C H A R * T R A N S I T I O N _ N A M E

C H A R *E X T _ H A N D L E _ N A M E

IN T (*S T M _ E X T _ H A N D LE ) ( .. . )

S T M _ E X T E N D E T _ H A N D L E _ T

C H A R *E X T _ H A N D L E _N A M E

I N T ( *S T M _ E X T _ H A N D LE ) (. . .)

S T M _ E X TE N D E T _ H A N D L E _ T

C H A R * E XT _ H A N D LE _ N A M E

IN T ( *S T M _ E X T _ H A N D L E )( .. . )

S T M _ E X T E N D E T _ H A N D L E _ T

C H A R *H A N D L E _ N A M E

I N T ( * S TM _ H A N D L E ) ( . .. )

S TM _ H A N D L E _ T

C H A R * H A N D L E _ N A M E

I N T ( *S T M _ H A N D L E ) ( .. . )

S TM _ H A N D L E _T

S T M _ S T A N D A R D _ T R A N S IT IO N _ T

I N T E V E N T

I N T E N D _ S T A T E

S T M _ S T A N D A R D _ H A N D L E _ L IS T

C H A R * T R A N S I T I O N _ N A M E

C H A R *H A N D L E _ N A M E

I N T ( *S T M _ H A N D LE ) ( . . .)

S T M _ H A N D LE _ T

C H A R * H A N D LE _ N A M E

IN T (*S T M _ H A N D LE )( .. . )

S T M _ H A N D L E _ T

C H A R *H A N D LE _ N A M E

IN T (*S T M _ H A N D LE ) (. . . )

S T M _ H A N D L E _ T

S T M _ S T A N D A R D _ T R A N S IT IO N _T

IN T E V E N T

IN T E N D _ S T A T E

S T M _ S T A N D A R D _H A N D L E _L I S T

C H A R * T R A N S I T I O N _N A M E

C H A R *H A N D L E _ N A M E

I N T ( * S TM _ H A N D L E ) ( . .. )

S T M _H A N D L E _ T

C H A R *H A N D LE _ N A M E

IN T ( *S T M _ H A N D LE ) ( . . .)

S T M _ H A N D LE _ T

C H A R *H A N D L E _ N A M E

I N T ( *S T M _ H A N D LE ) ( . . .)

S T M _ H A N D LE _ T

E V E N T E V E N T E V E N T E V E N T E V E N T E V E N T

Abbildung 41: struktureller Aufbau eines zur Laufzeit kodierten Automaten

Die folgende Tabelle beschreibt die grundsätzlichen Managementfunktionen der zur Laufzeit kodierten Automaten der Kommunikationsplattform:

S T M _ S T A T E _ L I S T

S T M _ T

E V E N T C A C H E

99

Page 100: Architekturkonzept und Designaspekte einer …elib.suub.uni-bremen.de/publications/dissertations/E-Diss835_dis... · matik der gewachsenen heterogenen Struktur der ... Im zweiten

Management Basisfunktion Beschreibung

100

*/

zur Laufzeit kodierter Automaten stm_create Erzeugt die Verwaltungsstruktur eines abstrakten Automaten

(Instanz). stm_up Definiert den Startzustand,

Aktiviert den Automaten. stm_down Deaktiviert den Automaten. stm_free Gibt die Verwaltungsstruktur des Automaten frei. stm_ins_state Fügt einen Zustand in einen Automaten ein. stm_del_state Entfernt einen Zustand inklusive zugehöriger Transitionen

(Automatenmutation). stm_ins_action Definiert einen Zustandsübergang ohne Möglichkeit des

Transitionsabbruchs. stm_ins_ext_action Definiert einen Zustandsübergang mit der Möglichkeit des

Transitionsabbruchs. stm_put_event Übergibt dem Automaten ein Ereignis. Falls sich der Automat in

der Abarbeitung einer Transition befindet, wird das Ereignis im „Event cache“ zwischengespeichert.

Tabelle 28: Managementfunktionen der zur Laufzeit kodierten Automaten

Das folgende C-Quellcode-Beispiel enthält die Strukturdefinition der in der Kommunikations-plattform verwendeten Ausprägung (stm) eines zur Laufzeit kodierten Automaten (STM_T): # define TRACE_MODE_ON 1 # define TRACE_MODE_OFF 0 # define STM_STATE_UNDEF -1 typedef enum { STM_MODE_NEW = 1, STM_MODE_LOAD, STM_MODE_RUN, STM_MODE_DOWN, STM_MODE_FREE } stm_mode_t; /* * Interne Steuerflags */ # define STM_WORK_FLAG 0x0001U # define STM_CONSIST 0x0002U # define STM_CTRL_MASK 0x0003U /* * Default Strings

Page 101: Architekturkonzept und Designaspekte einer …elib.suub.uni-bremen.de/publications/dissertations/E-Diss835_dis... · matik der gewachsenen heterogenen Struktur der ... Im zweiten

# define STM_NOT_RUNNING "STM: is not running" # define STM_NO_NAME "STM: has no name" # define STM_EMPTY "STM: empty" # define STM_STATE_NO_NAME "STM: actual state has no name" # define STM_STATE_EMPTY "STM: state empty" # define STM_ACTION_NO_NAME "STM: action has no name" # define STM_ACTION_EMPTY "STM: action empty" /* * FEHLER ID's der stm Bibliothek */ typedef enum { STM_ERR_NO, STM_PARAM_ERROR, STM_NOT_ACTIVE, STM_EVENT_WORK_FLAG_OFF, STM_NOT_DEFINED_STATE, STM_FREE_BEFORE_STM_DOWN, STM_FREE_NO_HANDLE_LIST, STM_NOT_IN_RUN_MODE, STM_NO_ACTION_FOUND, STM_NO_PERMIT, STM_UNKNOWN, STM_ERR_UNKNOWN, STM_MAX_ERR_NUM } stm_errno_t; /* Struktur zum mehrfachen Einfuegen von Handlerlisten */ struct handle_list_v{ listelement_t *list; int count; }; /* * Definition von Handlerlisten fuer normale und ext Handlerlisten */ typedef struct handle_list_v handle_list_t; typedef struct handle_list_v ext_handle_list_t; /* Grundverwaltungsstruktur des Automaten */ typedef struct stm_v { stm_mode_t mode; /* Mode des Automaten */ unsigned int ctrl; /* interne Steuerflags */ int trace; /* Tracelevel Automaten*/ /* Zustandsverwaltungsstruktur des Automaten */ struct stm_state_v { int state_nr; void (*error_handle) (struct stm_v *, void *); void *error_usr_arg;

101

char *trace_label; void *usr_arg;

Page 102: Architekturkonzept und Designaspekte einer …elib.suub.uni-bremen.de/publications/dissertations/E-Diss835_dis... · matik der gewachsenen heterogenen Struktur der ... Im zweiten

listelement_t *action_list; listelement_t *ext_action_list; } *state; /* Zustand des Automaten*/ listelement_t *del_queue; /* Liste fuer geloeschte States */ listelement_t *event_list; /* Event Eingangspuffer */ listelement_t *state_list; /* Liste aller States */ char *trace_label; /* stm Infostring */ void *usr_arg; /* stm User Argument */ struct stm_actual_cond_v{ /* Aktionsverwaltungsstruktur des Automaten */ struct stm_action_v { int event; struct stm_state_v *new_state; char *trace_label; void *usr_arg; handle_list_t *handle_list; } *action; struct stm_ext_action_v { int event; struct stm_state_v *OK_state; struct stm_state_v *ERR_state; char *trace_label; void *usr_arg; ext_handle_list_t *ext_handle_list; } *ext_action; /* Ereignisdatenstruktur des Automaten */ struct stm_event_v { int id; void *usr_arg; } *event; }*actual; } stm_t; /* Ereignisdatenstruktur des Automaten */ typedef struct stm_event_v stm_event_t; /* Zustandsverwaltungsstruktur des Automaten */ typedef struct stm_state_v stm_state_t; /* Aktionsverwaltungsstruktur des Automaten */ typedef struct stm_action_v stm_action_t; typedef struct stm_ext_action_v stm_ext_action_t; /* Haendlerverwaltungsstruktur des Automaten */ typedef struct stm_handle_v { void (*handle)(stm_t* stm, void* usr_arg); void *handle_usr_arg;

102

char *handle_trace_label; } stm_handle_t;

Page 103: Architekturkonzept und Designaspekte einer …elib.suub.uni-bremen.de/publications/dissertations/E-Diss835_dis... · matik der gewachsenen heterogenen Struktur der ... Im zweiten

typedef struct stm_ext_handle_v { int (*ext_handle)(stm_t* stm, void* usr_arg); void *ext_handle_usr_arg; char *ext_handle_trace_label; } stm_ext_handle_t; /* Aktueller Arbeitszustand der Statemaschine */ typedef struct stm_actual_cond_v stm_actual_cond_t;

5.3.2 ASN – Primitiven – Parameterkodierung an externen Schnittstellen

Signalisierungsprimitiven an externen Schnittstellen der Kommunikationsplattform bestehen generell aus zwei logischen Informationseinheiten mit unterschiedlichen Darstellungsprinzipien (Primitivenkopf und Primitivenparameter). Der Kopf der Signalisierungsprimitive ist in feste Strukturen gegliedert. Der Aufbau der Struktur ist in seiner konkreten Form von der Ausprägung der jeweiligen Schnittstelle abhängig (z.B. Kanalreferenz und Typ der VL-Primitive des Koppelprotokolls – siehe 4.7.2.3.3). Der Vorrat an Primitiven und deren struktureller Aufbau (Kopf) ist mit der Definition der externen Schnittstelle abgeschlossen. Im Unterschied zur ASN.1 Kodierung / ILC-Verfahren (Identifier, Length, Content) (siehe [19]) wird zur Parameterdarstellung (z.B. der VL-Primitiven des Kopplungsprotokolls zwischen der Kommunikationsplattform und dem signaltechnisch sicheren Rechner – siehe 3.3.2.2) eine an den spezifischen Bedarf (eingeschränkte Möglichkeiten der signaltechnisch sicheren Ablaufumgebung und Programmierrichtlinien [Mü 8004]) orientierte, anwendungsspezifische ASN-Kodierung von hierarchisch organisierten Parameterlisten verwendet. Die ASN-Kodierung unterstützt die universelle und konkrete Repräsentation von Datenobjekten, deren Syntax abstrakt beschrieben wird. Sie ermöglicht, unabhängig von Rechnerarchitektur und Programmiersprache, den Austausch von Applikationsdatenstrukturen über Netzwerke. Jede ASN-kodierte Information der Kommunikationsplattform ist durch eine systemweit eindeutige Kennung (TAG) identifizierbar. Der dieser Kennung folgendende Längenindikator weist auf das Ende des eigentlichen Informationsfeldes. Diesem können weitere TAGs folgen, die wiederum selbst eine Kette von ASN-kodierten Informationen enthalten können (Möglichkeit der Kodierung hierarchisch strukturierter Informationen).

ASN_PARAMHead

KANAL_REF TYP TAG LEN VALUETAG LEN VALUE TAG LEN VALUE

prinzipieller Aufbau einer Signalisierungsprimitive mit ASN-kodierten Parametern

Abbildung 42: Signalisierungsprimitive mit ASN-kodierten Parametern

Im Schichtenmodell ermöglicht dieses Verfahren eine transparente Übertragung von Protokollinformationen, deren Inhalt und Bedeutung nur dem Absender und dem passenden Empfänger bekannt sein müssen. Gleichzeitig können „fremde“ Schichten eigene Informationen

103

Page 104: Architekturkonzept und Designaspekte einer …elib.suub.uni-bremen.de/publications/dissertations/E-Diss835_dis... · matik der gewachsenen heterogenen Struktur der ... Im zweiten

ergänzen bzw. entfernen, ohne die Bedeutung und den inneren Aufbau aller übertragenen TAGs kennen zu müssen. Auf Grund der transparenten Übertragung von Protokollinformationen an den Schnittstellen ist es möglich, Systemkomponenten schrittweise auf neuere Releasestände umzurüsten, falls Abwärts-kompatibilität benötigt wird. Die folgende Tabelle beschreibt die grundsätzlichen ASN-Managementfunktionen: ASN Management Basisfunktion

Beschreibung

TAG lesen Entsprechend dem angegebenen TAG wird eine in der ASN-kodierten Struktur enthaltene Informationseinheit gelesen.

TAG schreiben Eine Informationseinheit wird unter dem angegebenen TAG in der ASN-kodierten Struktur gespeichert.

TAG entfernen Entsprechend dem angegebenen TAG wird eine in der ASN-kodierten Struktur enthaltene Informationseinheit gelöscht.

Tabelle 29: ASN-Managementfunktionen

Jede ASN Management Basisfunktion zeigt der aufrufenden Instanz ihre korrekte Ausführung an. Dadurch ist die Verwaltung mehrerer gleicher ASN-TAGs in einer ASN-kodierten Struktur möglich („TAG entfernen“ entfernt - wenn vorhanden - immer nur eine dem ASN-TAG entsprechende Informationseinheit ). Die folgende Abbildung zeigt beispielhaft die Traceausgabe (Nachricht bestehend aus zwei USER-STREAM-Nachrichtenblöcken – siehe Abbildung 46) einer vom signaltechnisch sichern Rechner an die Kommunikationsplattform übergebenen VL_CON_REQ-VL_CON_IND – PDU bestehend aus Primitivenkopf (siehe 4.7.2.3.1) und Primitivenparameter:

===================================================== #0000 FF 01 00 .. .. .. .. .. .. .. .. .. .. .. .. .. ----------------------------------------------------- #0000 02 00 00 13 02 07 00 04 01 01 01 01 02 06 00 02 #0010 11 01 02 09 00 01 01 02 01 00 08 02 07 00 04 01 #0020 01 02 00 02 02 00 01 11 02 03 00 20 00 01 02 03 #0030 04 05 06 07 08 09 0A 0B 0C 0D 0E 0F 10 11 12 13 #0040 14 15 16 17 18 19 1A 1B 1C 1D 1E 1F .. .. .. .. =====================================================

Abbildung 43: Trace einer VL_CON_REQ-VL_CON_IND – PDU

Die logische Struktur der Traceausgaben aus Abbildung 43 ist in folgender Tabelle dargestellt:

104

Page 105: Architekturkonzept und Designaspekte einer …elib.suub.uni-bremen.de/publications/dissertations/E-Diss835_dis... · matik der gewachsenen heterogenen Struktur der ... Im zweiten

105

PDU aus Abbildung 43 und der ASN-Kennung ASN_TAG_VL_CALLED ADDR liefert die ASN-kodierte Adressinformation des gerufenen Kommunikationspartners. Wird auf die ASN-kodierten

PDU-Information Bedeutung 0xFF VL - Präambel - Feld ( 0xFF-Signalisierungsinformation). 0x01 Nummer des virtuellen Kanals

Primitiven- kopf

0x00 Kodierung VL-Primitiventyp (VL_CON_REQ) 0x02 0x00 ASN-Kennung ASN_TAG_VL_CALLED ADDR 0x00 0x13 Länge der ASN-kodierten Adressinformation des

gerufenen Kommunikationspartners (19 Oktetts)

0x02 0x07 ASN-Kennung ASN_STAG_ETCS_ADDR 0x00 0x04 Länge der ETCS-Adresse des gerufenen

Kommunikationspartners (4 Oktetts)

0x01 0x01 0x01 0x01 ETCS-Adresse des gerufenen Kommunikationspartners

0x02 0x06 ASN-Kennung ASN_STAG_GSM_NR 0x00 0x02 Länge der GSM/R Telefonnummer des gerufenen

Kommunikationspartners (2 Oktetts bzw. 4 Halbbytes)

0x11 0x01 GSM/R Telefonnummer: 1101 (Testrufnummer)

0x02 0x09 ASN-Kennung ASN_STAG_N_QOS

0x00 0x01 Länge des netzbezogenen Quality of Service Class Deskriptors (N_QOS)

0x01 Deskriptor 1 (entspricht 4800 bit/s)

0x02 0x01 ASN-Kennung ASN_TAG_VL_CALLING ADDR

0x00 0x08 Länge der ASN-kodierten Adressinformation des rufenden Kommunikationspartners (8 Oktetts)

0x02 0x07 ASN-Kennung ASN_STAG_ETCS_ADDR

0x00 0x04 Länge der ETCS-Adresse des rufenden Kommunikationspartners (4 Oktetts)

0x01 0x01 0x02 0x00 ETCS-Adresse des rufenden Kommunikationspartners

0x02 0x02 ASN-Kennung ASN_TAG_VL_SERVICE

0x00 0x01 Länge des ASN-kodierten Serviceinformation / Applikationsidentifikation (1 Oktetts)

0x11 Applikationsidentifikation FFB-System

0x02 0x03 ASN-Kennung ASN_TAG_VL_USR_ARG

0x00 0x20 Länge der Nutzerinformation (der Sicherungsschicht) der VL_CON_REQ-PDU (32 Oktetts)

Primitiven-parameter

0x00 0x01 0x02 0x03 0x04 0x05 0x06 0x07 0x08 0x09 0x0A 0x0B 0x0C 0x0D 0x0E 0x0F 0x10 0x11 0x12 0x13 0x14 0x15 0x16 0x17 0x18 0x19 0x1A 0x1B 0x1C 0x1D 0x1E 0x1F

Testpattern zur Simulation der AU1-Information der Sicherungsschicht (siehe Abbildung 7)

Tabelle 30: logische Struktur einer VL_CON_REQ-VL_CON_IND – PDU

Die ASN-Managementfunktion „TAG lesen“ angewendet auf die VL_CON_REQ-VL_CON_IND –

Page 106: Architekturkonzept und Designaspekte einer …elib.suub.uni-bremen.de/publications/dissertations/E-Diss835_dis... · matik der gewachsenen heterogenen Struktur der ... Im zweiten

Adressinformation des gerufenen Kommunikationspartners in einem weiteren Schritt die ASN-

106

die einzelnen Konverter abwärts gereicht und durch den Port an das externe (Pseudo-) Gerät

Managementfunktion „TAG lesen“ mit der ASN-Kennung ASN_STAG_ETCS_ADDR ange-wendet, so wird die ETCS-Adresse des gerufenen Kommunikationspartners ermittelt.

5.3.3 USER-STREAM

STREAMS wurde von D. Rietchie 1983 als Mechanismus zur Verbindung zwischen einem Nutzerprozess und einem STREAMS-Treiber vorgestellt. Dieser Mechanismus basiert auf einer Vollduplex-Verbindung (dem „Datenstrom“) und mehreren „Verarbeitungseinheiten“, die sequentiell zur Verkörperung bestimmter Funktionalitäten in konfigurierbarer Reihenfolge und Anzahl angeordnet werden können. STREAMS besteht i.a. aus einer Reihe von Systemaufrufen, Systemkern-Betriebsmitteln und Systemkern-Routinen (siehe [6] Kap.17 und [9] Kap.10.5.4). Der in der Kommunikationsplattform verwendete USER-STREAM Mechanismus erlaubt es, den STREAMS-Ansatz auch im Nutzerbereich (Kommunikationstask) oberhalb der POSIX-API zu realisieren. Dadurch ist es möglich, die in der Kommunikationsplattform realisierte USER-STREAM-Ablaufumgebung auch auf POSIX-konformen Systemen ohne STREAMS-Unterstützung (z.B. LINUX – siehe [5], [12]) zu nutzen. USER-STREAMS:

• verwendet für STREAMS definierte Mechanismen, • definiert einheitliche Schnittstellen für die Aus- und Eingabe, • ermöglicht eine modulare, portable Entwicklung sowie eine einfache Integration von

Diensten, • liefert eine flexible, portable und wiederverwendbare Menge von Werkzeugen für die

Entwicklung von Kommunikationsdiensten, • erlaubt die einfache Erzeugung von Modulen, die Standarddienste anbieten, • ermöglicht die dynamische Einbindung von Modulen durch einen Nutzerprozess, • bietet flexible Konfigurationsmöglichkeiten für einen Datenstrom, • ermöglicht einem Nutzerprozess das Senden und Empfangen von USER-STREAMS-

Nachrichten (us_messages), • erlaubt das Puffern von Nachrichten in den Warteschlangen.

Datenstrom: Ein Datenstrom (US-Channel) ist ein bidirektional arbeitender Pfad für die Übertragung und Verarbeitung von Daten zwischen einem USER-STREAMS-Treiber und einem Nutzerprozess. Ein Datenstrom repräsentiert i.a. die Verknüpfung eines Datenstromkopfes, eines Treibers sowie kein, ein oder mehrere Module. Ein Datenstrom wird durch Öffnen eines USER-STREAMS-Ports und Einfügen von Konvertern erzeugt und durch Schließen des Datenstromkopfes abgebrochen. Der Datenstromkopf ist dabei dem Nutzerprozess am nächsten. Er verarbeitet alle Nutzerprozess-Aufrufe für den Datenstrom. Der USER-STREAMS-Port adaptiert ein Geräte- oder ein Software-Treiber (Pseudo-Gerätetreiber). Ein USER-STREAMS-Konverter repräsentiert Funktionen, die es erlauben, die Daten im Datenstrom zu bearbeiten. Ein Konverter kommuniziert mit seinen Nachbarn durch Übergabe von Nachrichten. In Schreibrichtung (stromabwärts) werden die Nachrichten ausgehend vom Datenstromkopf durch

Page 107: Architekturkonzept und Designaspekte einer …elib.suub.uni-bremen.de/publications/dissertations/E-Diss835_dis... · matik der gewachsenen heterogenen Struktur der ... Im zweiten

ausgegeben. In der stromaufwärts gerichteten Leserichtung werden Nachrichten vom Gerätetreiber (adaptiert über den Port) durch die Konverter zum Nutzerprozess transportiert. Die Kommunikationsapplikation kann Nachrichten in den Datenstrom schreiben. Für den Empfang einer Nachricht ist durch die Kommunikationsapplikation eine Funktion bereitzustellen, die zum Empfangszeitpunkt ausgeführt wird. Der Ablaufcode von Modulen (Konverter/ Multiplexer und Ports) wird in entsprechenden Pools (Konverterpool, Portpool, Muxpool) verwaltet. Die Initialisierungsstruktur eines Moduls (Port, Konverter, Multiplexer) muss zur Benutzung durch USER-STREAMS in einem Modul-Pool hinterlegt werden. Dafür ist eine Modul-Kennung anzugeben. Beim Einfügen eines Moduls in einen Datenstrom muss ein Konfigurationsstring angegeben werden, der mindestens die Modul-Kennung enthalten muss. Über die Kennung wird das Modul im Pool selektiert. USER-STREAM Port: Der Port bildet aus Sicht der Kommunikationsapplikation das Ende des Datenstromes. Er kann ein Geräte- oder ein Software-Treiber (Pseudo-Gerätetreiber) adaptieren. Er bearbeitet die Daten nicht bzw. nur insofern, dass die USER-STREAM-Datenstrukturen an die Datenstrukturen angepasst werden, die das Gerät versteht. Datenstromkopf: Der Datenstromkopf bildet die Schnittstelle des instanziierten USER-STREAM-Protokollstacks zur Kommunikationsapplikation. Er beinhaltet einen Zeiger auf die Handlerfunktion der Kommunikationsapplikation, die bei empfangenen Nachrichten durch die interne put-Prozedur der Lesewarteschlange aufgerufen wird. Ein Zeiger auf Argumente der Kommunikationsapplikation kann beim Einrichten des Datenstromes im Datenstromkopf hinterlegt werden. USER-STREAM Konverter: Ein USER-STREAM-Konverter repräsentiert Funktionen, die es erlauben, die Daten im Datenstrom zu bearbeiten. Ein Konverter kommuniziert mit seinen Nachbarn durch Übergabe von Nachrichten. In einem Datenstrom können keine oder beliebig viele Module vorhanden sein. Ein Konverter wird mit push geöffnet, initialisiert und unterhalb des Datenstromkopfes in den Datenstrom eingefügt. Beim Abbau eines Datenstromes (close) werden seine Module geschlossen und die entsprechenden Datenstrukturen freigegeben. Jeder USER-STREAMS-Konverter besteht aus zwei Warteschlangen (Queues); jeweils eine in die Schreib- (stromabwärts) und Lese-Richtung (stromaufwärts). Beide Warteschlangen arbeiten unab-hängig voneinander. Sie besitzen generell unabhängige Verarbeitungsprozeduren und -daten. Jede Warteschlange kann direkt auf die benachbarte Warteschlange in Richtung des Datenflusses, sowie innerhalb des Moduls auf ihr Pendant zugreifen. In USER-STREAMS können Nachrichten in den Warteschlangen eines Konverters gepuffert werden (putq). USER-STREAM Multiplexer: Multiplexer stellen eine spezielle Form eines Ports (Treibers) dar. Ein Multiplexer ist in der Lage, Daten von n höheren Datenströmen an m tieferliegende Datenströme weiterzuleiten (und umge-kehrt).

107

Page 108: Architekturkonzept und Designaspekte einer …elib.suub.uni-bremen.de/publications/dissertations/E-Diss835_dis... · matik der gewachsenen heterogenen Struktur der ... Im zweiten

In einem Datenstrom können keine oder beliebig viele Multiplexer vorhanden sein. Der obere Teil des Multiplexers verhält sich wie das Ende eines Datenstromes; der untere Teil wie der Kopf eines Datenstromes.

5.3.3.1 USER-STREAM Channel API

Die USER-STREAM-Channel-API erleichtert dem Anwender die Initialisierung und Zusammen-stellung eines Kommunikations-Channels (Datenstrom). Diese Funktionalität setzt auf den Basis-SVR4-Stream-Managementfunktionen auf. Durch funktionale Kapselung der normalen USER-Stream-Managementfunktionen wird die Instanziierung von Komplexen US-Channel Konfigurationen vereinfacht. Die zu instanziierenden Kommunikationsstacks sind über hierarchisch organisierte Konfigurationsfiles definiert. Zur Beschreibung von Kommunikations-Channels dienen Profiles, deren prinzipieller Aufbau im folgenden erläutert wird. Ein Profile besteht aus einem eindeutigen Bezeichner (PROFILEKENNUNG). Diese Profileken-nung wird durch ein eindeutiges Schlüsselwort (US_PROFILE) identifiziert. Anschließend folgen 0 bis n Konverterkonfigurationsdateien, welche durch das Schlüsselwort KONVERTER gekennzeichnet werden. Die Reihenfolge (Oberhalb- / Unterhalb – Relation) der Konverter werden im USER-Stream nachgebildet. Der letzte Eintrag im Profile ist eine Portkonfigurationsdatei (Verweis auf Port- oder Muliplexerzugang). Die folgende Abbildung stellt eine schematische Konfiguration eines US-Channels mit einem Port und 0...n Konvertern dar:

US_PORT

US_KONV

US_HEAD

0 ... n

US_PORT

US_KONV

US_HEAD

0 ... n

US_PORT

US_KONV

US_HEAD

0 ... n

Port PoolPort PoolPort PoolPort Pool

Port Pool List

Konv Pool

Konv Pool List

Konv PoolKonv Pool

Konv Pool

Abbildung 44: einfache US-Channel Konfiguration

Die folgende Abbildung stellt eine schematische Konfiguration eines US-Channels mit 0...n Konvertern, einem Multiplexer und mehreren hinzugelinkten US-Channels dar:

108

Page 109: Architekturkonzept und Designaspekte einer …elib.suub.uni-bremen.de/publications/dissertations/E-Diss835_dis... · matik der gewachsenen heterogenen Struktur der ... Im zweiten

US_PORT

US_KONV

US_HEAD

0 ... n

US_PORT

US_KONV

US_HEAD

0 ... n

Port PoolPort PoolPort PoolMUX Pool

MUX Pool List

Konv Pool

Konv Pool List

Konv PoolKonv Pool

Konv Pool

US_MUX

US_KONV

US_HEAD

0 ... n

US_PORT

US_KONV

US_HEAD

0 ... n

US_PORT

US_KONV

US_HEAD

0 ... n

US_PORT

US_KONV

US_HEAD

0 ... n

Port PoolPort PoolPort PoolPort Pool

Port Pool List

Konv Pool

Konv Pool List

Konv PoolKonv PoolKonv Pool

Abbildung 45: US-Channel Konfiguration mit Multiplexer

5.3.3.2 Managementfunktionen

Die folgende Tabelle beschreibt die Basis-USER-STREAM-Managementfunktionen der Kom-munikationsapplikation:

109

Page 110: Architekturkonzept und Designaspekte einer …elib.suub.uni-bremen.de/publications/dissertations/E-Diss835_dis... · matik der gewachsenen heterogenen Struktur der ... Im zweiten

Basis-USER-STREAM- Beschreibung Managementfunktion us_up Konstruktor der USER-STREAM Bibliothek – ruft die

Konstruktoren der Konverter, Multiplexer und Ports auf. Ohne mindestens einmaligen Aufruf des Konstruktor ist die USER-STREAM Bibliothek nicht aktiviert.

us_down Destruktor der USER-STREAM Bibliothek – ruft die Destruktoren der übergebenen Konverter und Ports auf. Anschließend werden die Datenstrukturen der USER-STREAM Bibliothek freigegeben.

us_open Generiert und öffnet den Kommunikationsport entsprechend übergebener Konfiguration. Der Aufruf von us_open schlägt dann fehl, wenn die USER-STREAM Bibliothek nicht aktiviert wurde

us_close Schließt den Kommunikationsport und evtl. im Stack vorhandene Konverter und gibt die mit us_open generierte Datenstrukturen frei. Der Aufruf von us_close schlägt dann fehl, wenn die USER-STREAM Bibliothek nicht aktiviert wurde

us_push Öffnet und initialisiert einen Konverter entsprechend übergebener Konfiguration und fügt diesen in die vorher erzeugte (durch us_open) USER-STREAM-Instanz ein. Der Aufruf von us_push schlägt dann fehl, wenn die USER-STREAM Bibliothek nicht aktiviert wurde

us_put Schreibt eine Message in die angegebenen USER-STREAM-Instanz. Der Aufruf von us_put schlägt dann fehl, wenn die USER-STREAM Bibliothek nicht aktiviert wurde

Tabelle 31: Basis-SVR4-Stream-Managementfunktionen

Die folgende Tabelle beschreibt die USER-STREAM-Message bezogenen Managementfunktionen: USER-STREAM-Message bezogenen Managementfunktion

Beschreibung

adjmsg Richtet die Bytes am Kopf oder am Ende der angegebenen Nachricht aus.

alloc_b Erzeugt einen Nachrichtenblock des Typs M_DATA, in dem der Datenpuffer mindestens die geforderte Anzahl Bytes enthält.

copyb Kopiert den Inhalt eines Nachrichtenblocks in einen neu erzeugten.copymsg Die Funktion verwendet copyb(), um die Nachrichtenblöcke einer

Nachricht in neu erzeugte Nachrichtenblöcke zu kopieren. Anschließend verkettet sie die neuen Nachrichtenblöcke, um eine neue Nachricht zu bilden.

110

Page 111: Architekturkonzept und Designaspekte einer …elib.suub.uni-bremen.de/publications/dissertations/E-Diss835_dis... · matik der gewachsenen heterogenen Struktur der ... Im zweiten

USER-STREAM-Message Beschreibung bezogenen Managementfunktion adjmsg Richtet die Bytes am Kopf oder am Ende der angegebenen

Nachricht aus. alloc_b Erzeugt einen Nachrichtenblock des Typs M_DATA, in dem der

Datenpuffer mindestens die geforderte Anzahl Bytes enthält. copyb Kopiert den Inhalt eines Nachrichtenblocks in einen neu erzeugten.copymsg Die Funktion verwendet copyb(), um die Nachrichtenblöcke einer

Nachricht in neu erzeugte Nachrichtenblöcke zu kopieren. Anschließend verkettet sie die neuen Nachrichtenblöcke, um eine neue Nachricht zu bilden.

dupb Die Funktion dupliziert den Nachrichtenblock-Deskriptor, indem dieser in einen neu erzeugten Nachrichtenblock-Deskriptor kopiert wird. Der neue Nachrichtenblock wird derart gebildet, dass der neue Nachrichtenblock-Deskriptor auf den selben Datenblock zeigt, wie der ursprüngliche Deskriptor. Der Verweiszähler im Datenblock-Deskriptor ( dblk_t) wird um den Wert 1 erhöht. dupb() kopiert nicht den Datenpuffer, nur der Nachrichtenblock-Deskriptor wird kopiert.

dumpmsg Die Funktion ruft dupb() auf, um die Nachricht zu duplizieren, indem sie alle einzelnen Nachrichtenblock-Deskriptoren kopiert, um dann die neue Nachricht zu bilden. dupmsg() kopiert keinen Datenpuffer, nur Nachrichtenblock-Deskriptoren werden kopiert.

freeb Die Funktion gibt den Nachrichtenblock-Deskriptor frei, und ebenso den entsprechenden Datenblock, wenn der Verweiszähler im Datenblock-Deskriptor gleich 1 ist. Wenn der Verweiszähler größer als 1 ist, dann gibt freeb() den Datenblock nicht frei, sondern vermindert deren Verweiszähler um 1.

freemsg Die Funktion verwendet freeb(), um alle Nachrichtenblöcke samt den zugehörigen Datenblöcken für die Nachricht freizugeben.

linkb Die Funktion fügt den Inhalt einer gegebenen Nachricht an eine andere gegebene Nachricht an.

msgdsize Die Funktion liefert die Anzahl der Datenbytes in der Nachricht. Nur Bytes in den Datenblöcken des Typs M_DATA werden in dieser Summe mitgezählt.

rmvb Die Funktion entfernt einen gegebenen Nachrichtenblock aus der Nachricht und stellt dann die Verkettung der in der Nachricht verbleibenden Nachrichtenblöcke wieder her. rmvb() gibt den entfernten Nachrichtenblock nicht frei.

unlinkb Die Funktion entfernt den ersten Nachrichtenblock und liefert einen Zeiger auf den Anfang der restlichen Nachricht.

111

Page 112: Architekturkonzept und Designaspekte einer …elib.suub.uni-bremen.de/publications/dissertations/E-Diss835_dis... · matik der gewachsenen heterogenen Struktur der ... Im zweiten

USER-STREAM-Message Beschreibung

112

USER-Stream-Ablaufumgebung der Kommunikationsplattform:

bezogenen Managementfunktion adjmsg Richtet die Bytes am Kopf oder am Ende der angegebenen

Nachricht aus. alloc_b Erzeugt einen Nachrichtenblock des Typs M_DATA, in dem der

Datenpuffer mindestens die geforderte Anzahl Bytes enthält. copyb Kopiert den Inhalt eines Nachrichtenblocks in einen neu erzeugten.copymsg Die Funktion verwendet copyb(), um die Nachrichtenblöcke einer

Nachricht in neu erzeugte Nachrichtenblöcke zu kopieren. Anschließend verkettet sie die neuen Nachrichtenblöcke, um eine neue Nachricht zu bilden.

linmsg Die Funktion erstellt einen neuen Nachrichtenblock ohne angehangene Nachrichtenblöcke aus der übergebenen Nachricht, die ( evtl.) aus mehreren Nachrichtenblöcken besteht.

Tabelle 32: USER-STREAM-Message bezogene Managementfunktionen

Die folgende Tabelle beschreibt die USER-STREAM-Messagequeue bezogenen Management-funktionen: USER-STREAM-Messagequeue bezogenen Managementfunktion

Beschreibung

alloc_queue Die Funktion alloziiert und initialisiert eine Messagequeue. free_queue Die Funktion gibt eine Messagequeue frei. canput Die Funktion überprüft die Möglichkeit des Schreibens auf eine

Messagequeue. enableok Die Warteschlangen-Steuerung einer Messagequeue wieder

erlauben. flushq Die Nachrichten einer Warteschlange löschen. getq Die Funktion holt die erste Nachricht aus einer Messagequeue. insq Die Funktion fügt eine Nachricht ab einer bestimmten Position in

die Warteschlange ein. noenable Die Warteschlangensteuerung einer Messagequeue wird

suspendiert. putbq Die Funktion fügt eine Nachricht an den Anfang einer

Warteschlange ein. putq Die Funktion fügt eine Nachricht an das Ende einer Warteschlange

ein. qenable Die Warteschlangensteuerung einer Messagequeue wird aktiviert. rmvq Die Funktion entfernt eine Nachricht aus einer Warteschlange.

Tabelle 33: USER-STREAM-Messagequeue bezogene Managementfunktionen

Die folgende Tabelle beschreibt die Managementfunktionen der US-Channel-Erweiterungen der

Page 113: Architekturkonzept und Designaspekte einer …elib.suub.uni-bremen.de/publications/dissertations/E-Diss835_dis... · matik der gewachsenen heterogenen Struktur der ... Im zweiten

US-Channel- Beschreibung Managementfunktion us_create_channel Öffnet und initialisiert einen USER-Streamstack mit Multiplexern,

Port und Konvertern. Die Beschreibung des Stacks mit Channel Namen, Konvertern und Ports / Multiplexerzugängen befindet sich im Profile.Der angegebene Ereignishandler wird aufgerufen, wenn eine Message am Datenstromkopf empfangen worden ist.

us_destroy_channel Schließt und deinitialisiert einen USER-STREAM-Stack mit seinem Port und Konvertern. Der alloziierte Speicher wird freigegeben.

us_make_profile Generieren eines Profiles (interne Stackbeschreibungsstruktur) aus den hierarchisch organisierten Konfigurationsfiles.

us_free_profile Der alloziierte Speicher des USER-Stream Profile wird freigegeben.

Tabelle 34: US - Channel - Managementfunktionen

5.3.3.3 Nachrichtenaufbau

Der Aufbau einer Nachricht der USER-STREAM-Ablaufumgebung entspricht dem STREAMS-Modell. Alle Nachrichten in USER-STREAMS verwenden die folgenden zwei Datenstrukturen:

• Nachrichtenblock msgb • Datenblock datab

Ein Datenblock ist der (Nutzdaten-) Teil einer Nachricht. Ein Datenblock wird durch (mindestens) einen Nachrichtenblock referenziert. Nachrichtenblöcke können verkettet werden und dadurch eine aus mehreren Teilen bestehende Nachricht bilden. Zu einer Nachricht gehört mindestens ein Nachrichtenblock. Der Nachrichtenblock verwaltet das Lesen und Beschreiben des zugeordneten Datenpuffer-Blocks. Eine Nachricht kann aus mehreren Nachrichtenblöcken bestehen, wenn die Puffergröße begrenzt ist oder wenn die Nachricht im Ergebnis der Bearbeitung erweitert wird. Jedem Nachrichtenblock ist ein Datenblock zugeordnet. Ein Datenblock enthält:

• die Art des Nachrichtenblocks, • die Grenzen des Datenpuffer-Blocks und • eine Variable (Referenzenzähler) mit der Anzahl der Nachrichtenblöcke, die auf den

Datenblock verweisen. Der dem ersten Nachrichtenblock zugeordnete Datenblock bestimmt die Art der gesamten Nachricht. Mehrere Nachrichtenblöcke können auf den selben Datenblock zeigen, um Speicher zu sparen, bzw. ein unnötiges Kopieren zu vermeiden. Die folgende Abbildung zeigt den prinzipiellen Aufbau einer STREAMS – Nachricht.

113

Page 114: Architekturkonzept und Designaspekte einer …elib.suub.uni-bremen.de/publications/dissertations/E-Diss835_dis... · matik der gewachsenen heterogenen Struktur der ... Im zweiten

Datenpuffer

Nachrichtenblock

Datenblock

Verw eis auf erstes Byte des

Verw eis auf letztes Byte des Puffers + 1

Referenzen-Zähler

Art des Nachrichtenblocks

Nachrichtenblock

Verw eis auf nächsten

Verw eis auf erstes nicht gelesenes

Verw eis auf erstes nicht geschriebenes Byte

Verw eis auf zugehörigen Datenblock

Nachrichtenpriorität

Abbildung 46: Struktur einer USER-STREAM Nachricht

Folgende Nachrichtentypen sind in der Kommunikationsplattform definiert:

• M_DATA – regular data • M_PROTO – protocol control • M_CTL – device specific control message • M_BREAK – line break • M_DELAY – delay • M_IOCTL – ioctl set/get params • M_IOCACK – acknowledge ioctl • M_IOCNAK – negative ioctl acknowledge • M_PCPROTO – priority proto message • M_STOP – stop transmission immediately • M_START – restart transmission after stop • M_HANGUP – line disconnect • M_ERROR – fatal error • M_PCCTL – priority control message

Die internen Diensteschnittstellen der Kommunikationsplattform verwenden folgenden grundsätzlichen Primitivenaufbau basierend auf M_PROTO bzw. M_CTL - Nachrichten:

114

Page 115: Architekturkonzept und Designaspekte einer …elib.suub.uni-bremen.de/publications/dissertations/E-Diss835_dis... · matik der gewachsenen heterogenen Struktur der ... Im zweiten

• Transferinterface (TR)

M_PROTO TR-Head

CALL_REFTYP MODE

Abbildung 47: Primitivenaufbau des Transferinterfaces

Strukturelement Bedeutung TYP Type der TR-IF – Primitive. MODE Betriebsmodus der TR-IF – Primitive (bei ATTACH)

• SIGN (Listener) • RESP (Ruf annehmen) • INVO (Ruf absetzen).

CALL_REF Eindeutige Referenz zur Rufannahme.

Tabelle 35: Elemente der M_PROTO-Primitive des Transferinterfaces

Der Vermittlungskern (Transferkern) kommuniziert mit unterlagerten Kommunikationsstacks ausschließlich über das Transferinterface.

• Virtuelles Linkinterface (VL)

M_PROTO VL-Head

KANAL_REF TYP

M_CTL VL-Head

TYP

Abbildung 48: Primitivenaufbau des Virtuellen Linkinterfaces

Strukturelement Bedeutung TYP Type der VL-IF – (M_PROTO/M_CTL) – Primitive.KANAL_REF Eindeutige Referenz auf einen virtuellen Kanal.

Tabelle 36: Elemente der M_PROTO-Primitive des Virtuellen Linkinterfaces

Das virtuelle Linkinterface (VL) wird als Zugang zu den Linkbündeln (Kanalbündel) von Koppelstacks verwendet.

115

Page 116: Architekturkonzept und Designaspekte einer …elib.suub.uni-bremen.de/publications/dissertations/E-Diss835_dis... · matik der gewachsenen heterogenen Struktur der ... Im zweiten

• Linkinterface (LK)

M_CTL LK-Head

TYP

Abbildung 49: Primitivenaufbau des Linkinterfaces

Strukturelement Bedeutung TYP Type der LK-IF – Primitive.

Tabelle 37: Elemente der M_CTL-Primitive des Linkinterfaces

Die Linkbündel von Koppelstacks setzen über das Linkinterface (LK) auf die unterlagerten Provider auf. Die Strukturierung der variablen Parameter, der in den internen Diensteschnittstellen auf M_PROTO-Nachrichten basierenden Primitiven, unterscheidet eine interne und eine externe Darstellung:

• Parameterstrukturierung ASCII (intern) Die Parameter werden als M_DATA – Nachricht mit dem M_PROTO – Primitivenkopf verkettet. Die Parameter sind als ASCII-Daten kodiert und entsprechen der Datendarstellung in den Konfigurationsdateien der Kommunikationsplattform.

• Parameterstrukturierung ASN (extern)

Die Parameter werden als M_DATA – Nachricht mit dem M_PROTO – Primitivenkopf verkettet. Die Parameter selbst sind ASN – kodiert (siehe 5.3.2).

5.3.3.4 Anwendungsbeispiel

Bei Tests im Rahmen der Entwicklung der Kommunikationsplattform (siehe 6.1.1.1) werden u.a. die untersten Protokollschichten (aHDLC und T.70) des EURORADIO-Protokollstacks über einem CAPI-Interface zur Ansteuerung der S2M-Schnittstelle (ISDN-GSM/R Anschluss der FFB-Zentrale – siehe Abbildung 14) entsprechend folgender Abbildung betrieben:

116

Page 117: Architekturkonzept und Designaspekte einer …elib.suub.uni-bremen.de/publications/dissertations/E-Diss835_dis... · matik der gewachsenen heterogenen Struktur der ... Im zweiten

CAPI-Port

Konfigurationsdateien

aHDLC-Modul

TI_L2_ER-STACK

T.70-Modul

US-Profile

T.70-Modul

Konfiguration

aHDLC-ModulKonfiguration

CAPI-PortKonfiguration

T.70-ModulInstanz

aHDLC-ModulInstanz

CAPI-PortInstanz

TI_L2_ER-Stack

Kommunikationstask

Filesystem

Testapplikation

117

Abbildung 50: Testkonfiguration zweier Protokollschichten des EURORADIO-Protokollstacks

In der folgenden Beispielkonfiguration sind die Dateiverweise (relative Pfadangaben) der zu ladenden USER-STREAM-Module (T.70 over aHDLC) und, unter dem Schlüsselwort „PORT“, des zu nutzenden USER-STREAM-Ports angegeben. Der Name des USER-STREAM-Profiles ist mit dem Schlüsselwort "US_PROFILE" gekennzeichnet. # ti_l2_er_stack.conf US_PROFILE: TI_L2_STACK KONVERTER: ./konv/tr/t70/default.conf KONVERTER: ./konv/tr/hdlc/default.conf PORT: ./port/tr/capi/port/euroradio/standard/etsi/4800_8N1.port In den folgenden Beispielkonfigurationen sind die Parameter der zu testenden Protokollschichten (T.70 over aHDLC) enthalten: # ./konv/tr/t70/default.conf KONV_TYPE: US_T70 T70_SIZE: 25 T70_MORE: 0x8001 T70_LAST: 0x0001 T70_IFTYPE: TR-IF # ./konv/tr/hdlc/default.conf

Page 118: Architekturkonzept und Designaspekte einer …elib.suub.uni-bremen.de/publications/dissertations/E-Diss835_dis... · matik der gewachsenen heterogenen Struktur der ... Im zweiten

KONV_TYPE: US_HDLC HDLC_IFTYPE: TR-IF HDLC.RETRIES: 10 HDLC.WINDOW: 8 HDLC.USESREJ: Y HDLC.T1: 1000 HDLC.T3: 30000 HDLC.INTRACE: 0x00 # 0x00 Tracemeldungen aus # 0x01 Ausnahmebehandlungen ein # 0x02 STM-Trace der Link-Stm ein # 0x04 STM-Trace der Sender-Stm ein # 0x08 STM-Trace der Empfaenger-Stm ein # 0x10 FRAME-Trace ein # 0x20 Ablauf-Trace ein # 0x40 "unsolicated DM" ein HDLC.TRACELEVEL: 0 # 00 TR-IF-Trace aus # 01 TR-IF-STM-Trace ein # 02 TR-IF-STM+TR-IF-FLOW-Trace ein

118

„test_appl_us_rcv“ bei einlaufenden Nachrichten am USER_STREAM-Head zur Übergabe an die Testapplikation durch die USER-STREAM-Ablaufumgebung aktiviert :

Wesentliche Parameter zur Konfiguration des CAPI-Ports zur Ansteuerung der S2M-Schnittstelle über ein CAPI-Interface sind in der folgenden Beispielkonfiguration dargestellt: # ./port/tr/capi/port/euroradio/standard/etsi/4800_8N1.port PORT_TYPE: TR_CAPI TR_CAPI_CIP_VALUE: 0x0002 TR_CAPI_BC_SOKTETT3: 0x88 TR_CAPI_BC_SOKTETT3_MASK: 0xff TR_CAPI_BC_SOKTETT4: 0x10_70_90 TR_CAPI_BC_SOKTETT4_MASK: 0x7f_7f_ff TR_CAPI_BC_SOKTETT5: 0x21_45_20_3b_ff TR_CAPI_BC_SOKTETT5_MASK: 0xff_7f_7f_7f_c0 TR_CAPI_LLC_SOKTETT3: 0x08_80 TR_CAPI_LLC_SOKTETT3_MASK: 0x7f_ff TR_CAPI_LLC_SOKTETT4: 0x10_70_90 TR_CAPI_LLC_SOKTETT4_MASK: 0x7f_7f_ff TR_CAPI_LLC_SOKTETT5: 0x21_45_20_3b_ff TR_CAPI_LLC_SOKTETT5_MASK: 0xff_7f_7f_7f_c0 ... In dem folgenden C-Quellcode-Beispiel (USER SPACE) erzeugt die Testapplikation mit Hilfe von Managementfunktionen der US-Channel-Erweiterungen der USER-Stream-Ablaufumgebung (siehe Tabelle 34) eine Instanz des zu testenden Protokollstacks entsprechend Abbildung 50. Nach der Ausführung der Managementfunktionen „us_create_channel“ wird die Callbackfunktion

Page 119: Architekturkonzept und Designaspekte einer …elib.suub.uni-bremen.de/publications/dissertations/E-Diss835_dis... · matik der gewachsenen heterogenen Struktur der ... Im zweiten

119

/* Testapplikation M_DATA Service */

... /* us_profile entsprechend konfiguration erzeugen */ if (( example_us_profile = us_make_profile( “/config/ti”, “ti_l2_er_stack.conf”)) == NULL) { printf(“test_applikation: us_make_profile error!\n”); exit( ERROR); } /* Instanz des Protokollstacks erzeugen */ if (( example_us = us_create_channel( example_us_profile, test_appl_us_rcv, test_appl_usr_arg_ptr)) == NULL) { printf(“test_applikation: us_create_channel error!\n”); exit( ERROR); } ... In dem folgenden C-Quellcode-Beispiel (USER SPACE) sind Teile der Callbackfunktion der Testapplikation abgebildet: /************************************************************* * * test_appl_us_rcv – us rcv procedure. * *************************************************************/int test_appl_us _rcv( us_t *us, mblk_t *mp) { test_appl _t *test_appl_usr_arg_ptr; if ( mp == NULL) { printf(“test_appl_us _rcv: mp == NULL!\n”); exit( ERROR); } if ( us == NULL) { printf(“test_appl_us _rcv: us == NULL!\n”); freemsg( mp); exit( ERROR); } if ((test_appl_usr_arg_ptr = (test_appl _t*)us_get_us_usr_arg( us)) == NULL) { printf ("test_appl_us _rcv: us->usr_arg == NULL!\n"); freemsg( mp); exit( ERROR); } if ( mp->b_datap->db_type == M_DATA) {

Page 120: Architekturkonzept und Designaspekte einer …elib.suub.uni-bremen.de/publications/dissertations/E-Diss835_dis... · matik der gewachsenen heterogenen Struktur der ... Im zweiten

... } if ( mp->b_datap->db_type != M_PROTO) { /* Testapplikation M_PROTO Service */ ... } ... return( OK); } Die Callbackfunktion kann für unterschiedliche Instanzen in der Testapplikation gleichzeitig genutzt werden. Der Bezug der eintreffenden Nachricht, infolge dessen die Callbackfunktion aufgerufen wird und der zuständigen Verwaltungsinstanz in der Testapplikation (welche die Nachrichten kanalbezogen analysiert) ist durch eine dem Nutzer der USER-STREAM-Ablaufumgebung zur Verfügung gestellte „usr_arg“-Pointerreferenz gegeben.

5.3.3.5 Vergleich USER STREAM – SVR4 Streams

Die SVR4 Streams Ablaufumgebung ist nur auf wenigen Betriebssystemplattformen verfügbar. Eine Wiederverwendung von Protokollmodulen auf andere Plattformen (z.B. Linux) ist aufwendig. In der SVR4 Streams Ablaufumgebung implementierte Protokollmodule laufen im Kernelbereich ab. Die eingeschränkte Verfügbarkeit von Betriebsmitteln im Kernelbereich (DDI/DKI) erzwingt eine Abspaltung von Funktionalitäten (welche komplexere Betriebsmittel - z.B. Zugriff auf Konfigurationsdaten - nutzen müssen) in einen im USER SPACE ablaufenden Daemonprozess. Die Folge dieser Abspaltung ist die zusätzliche Kommunikation zwischen Kernelmodul und Daemonprozess (siehe auch 5.2.1). Für die Umsetzung der Protokollfunktionalitäten in der USER STREAM Ablaufumgebung ist die Trennung in Daemon und Kernelmodul nicht notwendig (Bereitstellung aller im USER SPACE verfügbaren Betriebsmittel im USER STREAM). Durch diese Vereinfachung entfällt auch die zusätzliche Kommunikation zwischen Kernelmodul und Daemonprozess. Die folgende Abbildung zeigt die prinzipiellen Unterschiede beim Laden von Konfigurationsparametern.

120

Page 121: Architekturkonzept und Designaspekte einer …elib.suub.uni-bremen.de/publications/dissertations/E-Diss835_dis... · matik der gewachsenen heterogenen Struktur der ... Im zweiten

K o m m u n ika tio n sta s k

O S -K E R N E L

fd - - S tream s D e v ic e

k s_ load

ioctl (Pa ram e te r M odu l 1 )

S tre am s - H ead

S tre am s P ro tok o lls tac k

S tre am s - M odu l 1

S tre am s T re ibe r

S tre am s - M o du l 2

S tre am s - M o du l 1S tre am s - M o du l n

F i le s ys te m

S tre am K on figu ra tion

K on figu ra tions pa ram e te r 1

K on figu ra tions pa ram e te r n

P a ra m e te r M odu l 1

ioctl (Pa ram e te r M odu l 2 )

ioctl (Pa ram e te r M odu l n )

K on figu ra tions pa ram e te r 1

K on figu ra tions pa ram e te r n

P a ra m e te r M odu l 2

K on figu ra tions pa ram e te r 1

K on figu ra tions pa ram e te r n

P a ra m e te r M odu l n

K o m m u n ika tio n sta s k

O S -K E R N E L

fd - - S tream s D ev ic e

S tre am s - H ead

U S E R S T R E A M P ro toko llstack

U S E R S T R E A M - M o du l 1

S tre am s T re ibe r

S tre am s - M od u l 1

F i le s ys te m

S tre am K on figu ra tion

K on fig u ra tions pa ram e te r 1

K on fig u ra tions pa ram e te r n

P a ra m e te r M odu l 1

K on fig u ra tions pa ram e te r 1

K on fig u ra tions pa ram e te r n

P a ra m e te r M odu l 2

K on fig u ra tions pa ram e te r 1

K on fig u ra tions pa ram e te r n

P a ra m e te r M odu l n

U S E R S T R E A M - M odu l 2

U S E R S T R E A M - M o du l n

S tre am s - M o du l 1U S E R S T R E A M - P o rt

S tre am s - M od u l 1U S E R S T R E A M - H ead

Abbildung 51: Laden von Konfigurationsparametern

Im oberen Teil der Abbildung 51 ist das Laden von Konfigurationsparametern für SVR4-Streamsmodule dargestellt. Mit Hilfe eines im USER SPACE ablaufenden Daemonprozesses (Kommunikationstask), welcher auf die Konfigurationsdateien zugreift, werden die im Kernelbereich ablaufenden SVR4-Streamsmodule mit Konfigurationsparametern versorgt (z.B. über IOCTL-Aufrufe des Streams-Treibers). Durch die Anordnung der USER STREAM Module (Port, Konverter bzw. Multiplexer) im USER SPACE (siehe unteren Teil der Abbildung 51) ist der direkte Zugriff auf die in Konfigurations-dateien enthaltenen Konfigurationsparameter möglich.

K o n fig u ra t io n v o n S V R 4 S tre a m s M o d u le n

K o n fig u ra t io n v o n U S E R S T R E A M M o d u le n

121

Page 122: Architekturkonzept und Designaspekte einer …elib.suub.uni-bremen.de/publications/dissertations/E-Diss835_dis... · matik der gewachsenen heterogenen Struktur der ... Im zweiten

Die geringfügigen Performanceeinbußen durch die Verlagerung der Protokollfunktionalität der Streamsmodule in den USER SPACE (z.B. Prozesswechselaktivitäten) sind für die bahntechnischen Anwendungen akzeptabel. EURORADIO Anwendungen haben keine harten Echtzeitanforderungen, da bereits das unterlagerte GSM/R nur weiche Echtzeitanforderungen erfüllen kann. Die Echtzeiteigenschaften der USER STREAM Ablaufumgebung hängen von dem unterlagerten POSIX-konformen Betriebssystem, insbesondere von dessen Prozessverwaltung, ab.

5.4 Vermittlungsfunktionalitäten

5.4.1 Einfache Kommunikationsmodule

Einfache Kommunikationsprotokolle ohne Multiplexfunktionalitäten werden in der Kommunika-tionsplattform durch Konvertermodule umgesetzt. Die folgende Abbildung zeigt die grundsätzliche Struktur eines Konvertermoduls.

oberes Interface

unteres Interface

Message

Event

STM(Signalisierung)

STM(Flow RCV)

w_srv(...)

Message

w_put(...)M_PROTO-Message

Event

r_srv(...)

Read QueueM_DATA-Message

Event

M_DATA

M_PROTO-Message

M_DATA-Message

Event

r_put(...)

Event

STM(Flow SND)

Write Queue

EV_DATA

EV_XON; EV_XOFF

EV_DATA

EV_XON; EV_XOFF

EV_CON_REQ;EV_CON_RSP;EV_CON_REL

M_DATA

EV_START; EV_DOWN

EV_START; EV_DOWN

EV_CON_IND;EV_CON_CNF;EV_DISCON

M_PROTO

M_PROTO M_PROTO

M_PROTO

(X_ON;X_OFF)

(X_ON;X_OFF)

Abbildung 52: Grundsätzliche Struktur eines Konvertermoduls (TR-IF)

Die folgende Tabelle beschreibt die grundsätzlichen Strukturelemente eines einfachen Konvertermoduls der signaltechnisch nichtsicheren Kommunikationsplattform:

USER STREAM Konverter

122

Page 123: Architekturkonzept und Designaspekte einer …elib.suub.uni-bremen.de/publications/dissertations/E-Diss835_dis... · matik der gewachsenen heterogenen Struktur der ... Im zweiten

Strukturelement Beschreibung W_PUT Übergabefunktion in Schreibrichtung, wandelt Streamsmessages in

Ereignisse zur Bearbeitung in Automaten. W_SRV Durch Scheduler zu aktivierende Bearbeitungsroutine der

Nachrichtenwarteschlange in Schreibrichtung. W_QUEUE Nachrichtenwarteschlange in Schreibrichtung (stromabwärts) R_PUT Übergabefunktion in Leserichtung, wandelt Streamsmessages in

Ereignisse zur Bearbeitung in Automaten. R_SRV Durch Scheduler zu aktivierende Bearbeitungsroutine der

Nachrichtenwarteschlange in Leserichtung. R_QUEUE Nachrichtenwarteschlange in Leserichtung (stromaufwärts) STM – Signalisierung Zustandsautomat zur Verwaltung der Signalisierungsphase STM – Flow SND Zustandsautomat zur Verwaltung der sendeseitigen Flusskontrolle

(Beeinflussung oberes Interface) STM – Flow RCV Zustandsautomat zur Verwaltung der empfangsseitigen

Flusskontrolle (Beeinflussung unteres Interface)

Tabelle 38: Strukturelemente eines einfachen Konvertermoduls

5.4.2 Kommunikationsmultiplexer mit statischer Vermittlungsfunktionalität

Komplexere Kommunikationsprotokolle mit Multiplexfunktionalitäten werden in der Kommuni-kationsplattform durch Multiplexer umgesetzt. Die folgende Abbildung zeigt die grundsätzliche Struktur eines Multiplexers (n Transportkanäle auf einen Netzkanal).

123

Page 124: Architekturkonzept und Designaspekte einer …elib.suub.uni-bremen.de/publications/dissertations/E-Diss835_dis... · matik der gewachsenen heterogenen Struktur der ... Im zweiten

oberes Interface 1

unteres Interface

Message

Event

STM(Netz-Signalisierung)

STM(Flow RCV)

w_srv(...)

Message

w_put(...)M_PROTO-Message

Event

r_srv(...)

Read QueueM_DATA-Message

Event

M_DATA

M_PROTO-Message

M_DATA-Message

Event

r_put(...)

Event

STM(Flow SND)

Write Queue

EV_DATA

EV_XON; EV_XOFF

EV_DATA

M_DATA

EV_START; EV_DOWN

EV_START; EV_DOWN

EV_CON_IND;EV_CON_CNF;EV_DISCON

M_PROTO

M_PROTO

Event

STM(Transport-Signalisierung)

STM(Flow RCV)

STM(Flow SND)

EV_DATA

EV_XON; EV_XOFF

EV_DATA

EV_XON; EV_XOFF

EV_START; EV_DOWN

EV_START; EV_DOWN

EV_CON_REQ;EV_CON_RSP;EV_CON_REL

Multiplexreferenz

M_PROTO(X_ON; X_OFF)

PDU - Analyse PDU - Generierung

EV_CON_IND;EV_CON_CNF;EV_DISCON

EV_DOWN

EV_DOWN

Netz -Flußkontrolle

Signalisierung Daten Flußkontrolle Signalisierung Daten Flußkontrolle

oberes Interface n

Message

w_put(...)M_PROTO-Message

Event

r_srv(...)

Read QueueM_DATA-Message

Event M_DATAM_PROTO

Event

STM(Transport-Signalisierung)

STM(Flow RCV)

STM(Flow SND)

EV_DATA

EV_XON; EV_XOFF

EV_DATA

EV_XON; EV_XOFF

EV_START; EV_DOWN

EV_START; EV_DOWN

EV_CON_REQ;EV_CON_RSP;EV_CON_REL

EV_CON_IND;EV_CON_CNF;EV_DISCON

EV_DOWN

USER STREAM Multiplexer

Abbildung 53: Grundsätzliche Struktur eines Multiplexers (TR/TR-IF)

Die folgende Tabelle beschreibt die grundsätzlichen Strukturelemente eines Multiplexers der Kommunikationsplattform: Strukturelement Beschreibung W_PUT Übergabefunktion in Schreibrichtung, wandelt Streamsmessages in

Ereignisse zur Bearbeitung in Automaten der Transportebene um. W_SRV Durch Scheduler zu aktivierende Bearbeitungsroutine der

Nachrichtenwarteschlange in Schreibrichtung. W_QUEUE Nachrichtenwarteschlange in Schreibrichtung (Netzebene) R_PUT Übergabefunktion in Leserichtung, wandelt Streamsmessages in

Ereignisse zur Bearbeitung in Automaten um. R_SRV Durch Scheduler zu aktivierende Bearbeitungsroutine der

Nachrichtenwarteschlange in Leserichtung. R_QUEUE Nachrichtenwarteschlange in Leserichtung (Transportebene) Transport – STM – Signalisierung

Zustandsautomat zur Verwaltung der Signalisierungsphase der Transportebene

124

Page 125: Architekturkonzept und Designaspekte einer …elib.suub.uni-bremen.de/publications/dissertations/E-Diss835_dis... · matik der gewachsenen heterogenen Struktur der ... Im zweiten

Strukturelement Beschreibung Transport – STM – Flow SND

Zustandsautomat zur Verwaltung der sendeseitigen Flusskontrolle der Transportebene (Beeinflussung oberes Interface)

Transport – STM – Flow RCV

Zustandsautomat zur Verwaltung der empfangsseitigen Flusskontrolle der Transportebene (Beeinflussung der Netzebene)

Netz – STM – Signalisierung Zustandsautomat zur Verwaltung der Signalisierungsphase der Netzebene

Netz – STM – Flow SND Zustandsautomat zur Verwaltung der sendeseitigen Flusskontrolle der Netzebene (Beeinflussung Transportebene)

Netz – STM – Flow RCV Zustandsautomat zur Verwaltung der empfangsseitigen Flusskontrolle der Netzebene (Beeinflussung unteres Interface)

PDU-Analyse Analyse der Protokoll Daten Einheiten zur Ereignissteuerung der Transportebene

PDU-Generierung Erzeugung von Protokoll Daten Einheiten entsprechend eintreffender Ereignisse

Netz-Flusskontrolle Beaufschlagung der Transportebenen Flusskontrollinstanzen mit dem Flusskontrollzustand der Netzebene

Tabelle 39: Strukturelemente eines Multiplexers

5.4.3 Vermittlungskern für verbindungsorientierte Kommunikation

Die Weitervermittlung der einlaufenden Rufe auf die angeforderten Kommunikationsressourcen zur Etablierung der abgehenden Rufe erfolgt in der Kommunikationsplattform durch den Vermittlungs-kern. Die folgende Abbildung zeigt die grundsätzliche Struktur des Vermittlungskerns für ver-bindungsorientierte Kommunikation (siehe 4.6.1).

Vermittlungs-kernSig-Bridge

Listening Service 1

Data-bridge 2

Data-bridge x1

Data-bridge 1

Invo

-Sta

ck

Invo

ker S

ervi

ce A

Invo

ker S

ervi

ce B

Invo

ker S

ervi

ce C

Resp-Stack

Resp-Stack

Resp-Stack

Sign-Stack

Sig-Bridge

Listening Service 2

Data-bridge 2

Data-bridge x2

Data-bridge 1

Invo

ker S

ervi

ce D

Invo

ker S

ervi

ce E

Invo

ker S

ervi

ce F

Resp-Stack

Resp-Stack

Resp-Stack

Sign-Stack

Sig-Bridge

Listening Service n

Data-bridge 2

Data-bridge x3

Data-bridge 1

Invo

ker S

ervi

ce G

Invo

ker S

ervi

ce H

Invo

ker S

ervi

ce I

Resp-Stack

Resp-Stack

Resp-Stack

Sign-Stack

Responder

Invoker

Invo

-Sta

ck

Invo

-Sta

ck

Invo

-Sta

ck

Invo

-Sta

ck

Invo

-Sta

ck

Invo

-Sta

ck

Invo

-Sta

ck

Invo

-Sta

ck

Abbildung 54: Prinzipieller Aufbau des Vermittlungskerns

Die Vermittlungsapplikation besteht aus dem eigentlichen Vermittlungskern, der den verbindungs-orientierten Kanalaufbau realisiert, und den Responder- und Invokerstacks. Eingehende Rufe werden von der Responderseite verarbeitet. Abgehende Rufe werden von der Invokerseite initiiert.

Kommunikationsrechner- Vermittlungsapplikation -

125

Page 126: Architekturkonzept und Designaspekte einer …elib.suub.uni-bremen.de/publications/dissertations/E-Diss835_dis... · matik der gewachsenen heterogenen Struktur der ... Im zweiten

Der Vermittlungskern bedient die Responder und Invoker ausschließlich über das TR-Interface (Transfer-Interface). Die Responderseite zeigt eingehende Rufe über das im Signalisierungsmode aktivierte TR-Interface an. Die Annahme eingehender Rufe erfolgt ausschließlich im Respondermode des TR-Interfaces. Für jeden Transportservice, der vom Vermittlungskern bedient werden soll, wird ein entsprechender Signalisierungsstack instanziiert. Die Signalisierungsbridge erzeugt infolge eines über den Signalisierungsstack eingehenden Rufes eine für die Etablierung des Vermittlungswunsches verantwortliche Datenbridge. Eine Callreferenz als eindeutige Referenz des Rufes wird der Datenbridge übergeben. Die Datenbridge erzeugt eine Kopie des Signalisierungsstacks und betreibt den neuen Stack im Respondermode. Die im eingelaufenen Ruf enthaltene Callvektor-Information zur Weitervermittlung wird in der Datenbridge ausgewertet und führt zur Etablierung eines Invokerstacks entsprechend des im Callvektor enthaltenen Invokerprofiles. Die geforderte Verbindung wird über den Invokerstack durch einen abgehenden Ruf von der Datenbridge initiiert. Kann die durch den Callvektor geforderte Verbindung nicht etabliert werden, wird durch die Datenbridge versucht, einen alternativen Callvektor zu nutzen, um die geforderte Verbindung zu realisieren. Kann keine gehende Verbindung aufgebaut werden, wird von der Datenbridge der zugehörige kommende Ruf am Responder Stack abgewiesen. Ist der gehende Link vom Invokerstack etabliert, wird der eingegangene Ruf von der Datenbridge über den Responderstack als Link bestätigt. Der Datenverkehr (Traffic) zwischen kommendem und gehendem Link wird von der Datenbridge übertragen. Der Abbau der Verbindung wird von der für den Link zuständigen Datenbridge organisiert.

5.4.4 Adressmanagement

Die Kommunikationsapplikationen des Funk Fahr Betriebes adressieren ihren Kommunikations-partner mit Hilfe einer applikationsbezogenen ETCS-Adresse. Diese ETCS-Adresse besteht aus vier Oktetts. Das erste Oktett bestimmt den Typ des Kommunikationspartners (Fahrzeuggerät, Strecken-zentrale oder Fahrwegelement). Die letzten drei Oktetts entsprechen der ETCS-ID des Kommunika-tionspartners. Die ETCS-ID ist innerhalb eines Typs eindeutig. Die ETCS-Adresse ist im gesamten System eindeutig. Zusätzlich kann die Kommunikationsapplikation (beim Funk Fahr Betrieb nicht genutzt) neben der ETCS-Adresse des Kommunikationspartners auch die Netzadresse (GSM/R Nummer) des Kom-munikationspartners übergeben. In diesem Fall kann die Gatewayfunktionalität der Kommuni-kationsplattform sowie die Verwendung alternativer Netzadressen nicht genutzt werden. Die folgende Abbildung beschreibt die Adresskonvertierungsaktivitäten zur Qualifizierung einer eingelaufenen Verbindungsanforderung mit allen notwendigen Informationen zur Weitervermittlung im Vermittlungskern für verbindungsorientierte Kommunikation (siehe 5.4.3).

126

Page 127: Architekturkonzept und Designaspekte einer …elib.suub.uni-bremen.de/publications/dissertations/E-Diss835_dis... · matik der gewachsenen heterogenen Struktur der ... Im zweiten

Local Directory Management

defaultETCS_ADDRpresent ?

N

J

ETCS_ADDRpresent ?

N

J

DISCONNECT

START

ETCS_ADDRunknown ?

N

J unknownETCS_ADDRpresent ?

N

J

DISCONNECT

ETCS_ADDR.routepresent ?

N

J Load Router - ETCS_ADDR

Netvectorcount = 0

ETCS_ADDR.Netvectorcountpresent ?

N

J Load ETCS_ADDR.Netvectorcount

Netvectorcount ++

Net QoS Parameter Management

GSM/R Nummerpresent ?

N

J

alternativeNetvectorpresent ?

N

J

ETCS_ADDRpresent ?

N

J

DISCONNECT

Load Net - QoSParameter

get nextNetvector

Net - QoSpresent ?

N

J

defaultNet - QoSpresent ?

N

J

DISCONNECT

Load defaultNet - QoS

END

Abbildung 55: Adresskonvertierungsaktivitäten zur Qualifizierung einer eingelaufenen Verbindungsanforderung

Die folgende Tabelle beschreibt die einzelnen Adresskonvertierungsaktivitäten zur Qualifizierung einer eingelaufenen Verbindungsanforderung der Kommunikationsplattform: Aktivität Beschreibung GSM/R Nummer present ? Es wird geprüft, ob in der Verbindungsanforderung eine

GSM/R – Telefonnummer des gewünschten Kommunikationspartners vorhanden ist.

127

Page 128: Architekturkonzept und Designaspekte einer …elib.suub.uni-bremen.de/publications/dissertations/E-Diss835_dis... · matik der gewachsenen heterogenen Struktur der ... Im zweiten

Aktivität Beschreibung ETCS_ADDR present ? Es wird geprüft, ob in der Verbindungsanforderung die

ETCS_ADDR des gewünschten Kommunikationspartners vorhanden ist.

default ETCS_ADDR present ? Es wird geprüft, ob im Local Directory eine default ETCS_ADDR vorhanden ist.

ETCS_ADDR unknown ? Es wird geprüft, ob die in der Verbindungsanforderung enthaltene ETCS_ADDR des gewünschten Kommunikationspartners im Local Directory nicht vorhanden ist.

unknown ETCS_ADDR present ? Es wird geprüft, ob im Local Directory eine unknown ETCS_ADDR vorhanden ist.

ETCS_ADDR.route present ? Es wird geprüft, ob für die in der Verbindungsanforderung enthaltene ETCS_ADDR des gewünschten Komunikationspartners im Local Directory eine Router – ETCS_ADDR vorhanden ist (Gateway-Struktur).

Load Router – ETCS_ADDR Die Adresse des Routers für den nächsten Verbindungsabschnitt, entsprechend der in der Verbindungsanforderung enthaltenen ETCS_ADDR des gewünschten Kommunikationspartners, wird aus dem Local Directory geladen.

Netzvectorcount = 0 Mit dem ersten Eintrag der Netzadressinformation zur gewünschten ETCS_ADDR wird begonnen.

ETCS_ADDR.Netzvectorcount present ?

Es wird geprüft, ob der n. Eintrag der Netzadressinformation zur gewünschten ETCS_ADDR im Local Directory vorhanden ist.

Load ETCS_ADDR.Netzvectorcount

Die Verbindungsanforderung wird um den aktuellen Eintrag der Netzadressinformation erweitert.

Netzvectorcount ++ Der nächste Eintrag der Netzadressinformation zur gewünschten ETCS_ADDR ist zu bearbeiten.

Net – QoS present ? Es wird geprüft, ob im aktuellen Eintrag der Netzadressinformation ein Net – QoS Wert vorhanden ist.

default Net – QoS present? Es wird geprüft, ob ein default Net – QoS Wert vorhanden ist. Load default Net – QoS Der n. Eintrag der Netzadressinformation der

Verbindungsanforderung wird mit dem default Net – QoS Wert ergänzt.

Load Net – QoS Parameter Der n. Eintrag der Netzadressinformation der Verbindungsanforderung wird entsprechend dem Net – QoS Wert mit Net – QoS Parametern ergänzt.

alternative Netvector present ? Es wird geprüft, ob ein weiterer Eintrag mit Netzadressinformationen in der Verbindungsanforderung vorhanden ist.

128

Page 129: Architekturkonzept und Designaspekte einer …elib.suub.uni-bremen.de/publications/dissertations/E-Diss835_dis... · matik der gewachsenen heterogenen Struktur der ... Im zweiten

Aktivität Beschreibung get next Netvector Der nächste Eintrag der Netzadressinformation in der

Verbindungsanforderung ist zu bearbeiten.

Tabelle 40: Adresskonvertierungsaktivitäten zur Qualifizierung einer eingelaufenen Verbindungsanforderung

Alle notwendigen Informationen zur Qualifizierung der Verbindungsanforderungen sind im Local Directory der Kommunikationsplattform für den Funk Fahr Betrieb fest projektiert. Für größere verteilte Systeme ist eine Beeinflussung dieser Datenbasis zur Laufzeit notwendig (siehe 7.2.1.1).

129

Page 130: Architekturkonzept und Designaspekte einer …elib.suub.uni-bremen.de/publications/dissertations/E-Diss835_dis... · matik der gewachsenen heterogenen Struktur der ... Im zweiten

130

Page 131: Architekturkonzept und Designaspekte einer …elib.suub.uni-bremen.de/publications/dissertations/E-Diss835_dis... · matik der gewachsenen heterogenen Struktur der ... Im zweiten

6 Test / Validierung Eine Ausprägung der signaltechnisch nichtsicheren Kommunikationsplattform für den Funk Fahr Betrieb ist der Kommunikationsteil des Funk Basis Systems (Subsystem Kommunikation / FBS-K) des Bereiches Transportation Systems der Siemens AG. Die in den folgenden Abschnitten beschriebenen Test- und Validierungsaktivitäten wurden im Rahmen der Systementwicklung des FBS-K für den Funk Fahr Betrieb in Zusammenarbeit mit der Verified Systems International GmbH durchgeführt.

6.1 Methoden der Validierung

6.1.1 Funktions- und Black-Box-Tests

6.1.1.1 Tests im Rahmen der Entwicklung FBS-K

In der Phase Entwicklung des FBS Subsystem Kommunikation werden die SW-Module der unteren Schichten der Kommunikationstask bzw. der OS-Kernel-Erweiterungen des FBS-K (siehe 5.2 und 5.3) im Rahmen der Modultests schrittweise integriert und mit Hilfe von einfachen Beispiel-applikationen auf der Entwicklungsplattform (PC) getestet und Aussagen zur prinzipiellen Funktion gewonnen. Nach Abschluss dieser Modultests steht die Ablaufumgebung der Kommunikations-plattform zur Verfügung. In der nächsten Phase der Entwicklung des FBS Subsystem Kommunikation werden die auf die Ablaufumgebung aufsetzenden SW-Komponenten (siehe 5.4 ) mit Hilfe einfacher Systemkon-figurationen (z.B. Teile eines Kommunikationsstacks) im Rahmen der Softwareintegrationstests schrittweise integriert und durch eine einfache Testapplikation (welche das Schnittstellenverhalten des Vermittlungskerns nachbildet – siehe 5.4.3) auf der Entwicklungsplattform (PC) getestet und Aussagen zur prinzipiellen Funktion gewonnen.

6.1.1.2 Tests im Rahmen der Verifikation FBS-K

In der Phase Teilintegration des FBS Subsystem Kommunikation werden einzelne SW-Komponenten des FBS-K schrittweise integriert und getestet und Aussagen zu Funktion, Schnittstellen und Leistungsfähigkeit gewonnen. Die Teilintegrationsschritte werden für den Euroradio-Stack, den Koppelstack und den Transferkern durchgeführt, deren Funktion damit verifiziert wird. Im letzen Schritt der Teilintegration wird bereits das gesamte FBS Subsystem Kommunikation auf der Entwicklungsplattform (PC) integriert und getestet. Die Verifikation der kundenseitig festgelegten Zugangsschnittstellen zum GSM/R Mobilfunkgerät und zum ISDN-Netz erfolgt ebenfalls im Rahmen der Teilintegration. Damit wird bereits durch die Teilintegration der Nachweis der Erfüllung der diesbezüglichen Anforderungen erbracht. Für die im Rahmen der Validierung durchzuführenden Tests werden die Schnittstellen zum GSM/R und ISDN anforderungsgemäß verwendet. Dadurch wird deren Verwendungsfähigkeit erneut geprüft und im Rahmen der Subsystemintegration validiert. Kundenanforderungen hinsichtlich der Eigenschaften der verwendeten Hardware des FBS Subsystems Kommunikation werden durch HW-Erprobungsberichte nachgewiesen.

131

Page 132: Architekturkonzept und Designaspekte einer …elib.suub.uni-bremen.de/publications/dissertations/E-Diss835_dis... · matik der gewachsenen heterogenen Struktur der ... Im zweiten

6.1.1.3 Tests im Rahmen der Integration und Validierung FBS-K

Die Validierungstests erfolgen mit den vollständigen FBS-K Komponenten auf der Zielhardware und sind als symmetrische Black-Box-Tests konzipiert. Durch die Validierungstests werden die Requirements geprüft. Insbesondere wird das prinzipielle Zusammenwirken der Komponenten des FBS-K in allen benötigten Konfigurationen getestet. Gemäß [EN 50128], Tabelle A.7 sind Funktions- und Black-Box-Tests die empfohlene Methode für Software-Validierung der Sicherheitsstufe SIL 0.

6.1.1.4 Grenzwertanalyse

Mit den Testfällen der Validierungstests werden die Grenzwerte der an den Schnittstellen definierten Wertebereiche überprüft. Die Testfälle sollen dabei nicht nur den Grenzwert selbst testen, sondern auch Werte außerhalb der Grenzwerte prüfen. Die Grenzwertanalyse wird in [EN 50128], Tabelle A.14 als Methode für Funktions- und Black-Box-Tests empfohlen.

6.1.2 Leistungstests

Im Rahmen der Validierung sollen Aussagen über die Erfüllung der definierten Performance- und Lastanforderungen seitens des FBS-K gemacht werden. Dazu werden die nachfolgend aufgeführten Leistungstest im Rahmen der Validierungstests durchgeführt.

6.1.2.1 Avalanche-/Belastungstests

Im Rahmen der Validierungstests werden die Anforderungen an das FBS-K bezüglich des statischen und dynamischen Lastmodells geprüft. Zu testen ist das Systemverhalten bei maximaler Belastung beim Verbindungsaufbau und -abbau:

• Es bauen mehrere Kommunikationspartner quasi gleichzeitig sehr viele Verbindungen auf und ab.

Zu testen ist das Systemverhalten bei maximaler Belastung im laufenden Betrieb (d.h. bei mehreren bestehenden Verbindungen):

• Burst von maximaler Sendeleistung auf mehreren gleichzeitig bestehenden Verbindungen zu einem oder mehreren Empfängern zum Test des korrekten Empfangs.

6.1.2.2 Antwortzeiten

Im Rahmen der Validierungstests werden die Anforderungen an das FBS-K bezüglich der Performance geprüft. Dazu werden aus den definierten Performance-Anforderungen die An-forderungen an das FBS-K abgeleitet. Es wird dabei von den in den Anforderungen aufgeführten Annahmen bezüglich der Performanz der verschiedenen involvierten Komponenten ausgegangen. Während der Testsdurchführung werden die erreichten Antwortzeiten protokolliert. Diese Werte werden anschließend ausgewertet. Aufgrund dieser Auswertungen kann dann auf das Verhalten des FBS-K unter realen Bedingungen zuverlässig geschlussfolgert werden.

6.1.2.3 Speichergrenzen

132

Die Speichergrenzen sind durch die Systemressourcen der Zielplattform festgelegt.

Page 133: Architekturkonzept und Designaspekte einer …elib.suub.uni-bremen.de/publications/dissertations/E-Diss835_dis... · matik der gewachsenen heterogenen Struktur der ... Im zweiten

Um sicherzustellen, dass die festgelegten Limits nie erreicht werden, wird die Speichernutzung des

133

UnixWare

FBS-K im Dauerbetrieb geprüft. Damit wird sichergestellt, dass keine memory leaks vorhanden sind.

6.2 Testmanagement

6.2.1 Komponenten der Testumgebung

Die Architektur der Testanlage ist in [18] ausführlich beschrieben. Die wesentlichen Komponenten sind die RT-Tester-Engine und der Testkoppelrechner.

• Die RT-Tester Engine (Test Engine, TE) steuert die jeweilige Testsuite in Bezug auf Testkonfiguration, Testdatenerzeugung, Protokollierung und On-the-fly bzw. Offline-Auswertung. Dies geschieht mit Hilfe des generischen Echtzeit-Testsystems RT-Tester, welches für FBS-K Tests unter dem Betriebssystem Linux (siehe [5], [12]) auf PC-Hardware instantiiert wird. Die verschiedenen zu prüfenden Testszenarios werden mit RT-Tester als Netzwerke Abstrakter Maschinen, d.h. kommunizierender Echtzeit-Zustandsmaschinen beschrieben, so dass die Testkonfiguration sowie das Verhalten von Sendern und Empfängern jeweils durch eigene Abstrakte Maschinen modelliert werden kann. Abstrakte Maschinen operieren mit logischen Events, die Testkonfigurationsbefehle, Verbindungsaktivitäten sowie das Senden und Empfangen von Daten in abstrakter, d.h. von der konkreten Schnittstelle unabhängiger Weise spezifizieren. Die Umsetzung zwischen abstrakten Events und konkreten Konfigurationsbefehlen bzw. Kommunikationstelegrammen wird von einer untergeordneten Softwareschicht auf der TE, dem Interface Module Layer durchgeführt.

• Der Testkoppelrechner (TK) bildet das Verbindungsstück zwischen dem Prüfling und

der RT-Tester Engine. Der TK simuliert für den Prüfling (FBS-K) das Verhalten der signaltechnisch nichtsicheren Applikation und stellt der Test-Engine die Testkonfigurationsschnittstelle zur Verfügung. Weiterhin realisiert der TK für die Test Engine eine Interfaceabstraktion: Die Allokation der Prüflings-Software auf konfigurationsabhängige Hardwarekomponenten bleibt hierdurch für die Test Engine transparent. Eine Zuordnung von logischen Kommunikationskanälen auf die konfigurationsabhängigen Schnittstellen des Prüflings wird vom TK vorgenommen.

TE und TK kommunizieren über Ethernet und TCP/IP unter Verwendung der Interface-Library des RT-Tester-Systems. Testumge-bung Nr.

Kurzbeschreibung HW, SW, Gerät

1 RT-Tester-Engine TE, Basis Standard PC/ Notebook mit SuSe Linux

2 RT-Tester-Engine, Software RT-Tester 3 Interface-Modul IFM-FBS IFM-FBS 4 Testkoppelrechner TK, Basis Standard PC mit

Page 134: Architekturkonzept und Designaspekte einer …elib.suub.uni-bremen.de/publications/dissertations/E-Diss835_dis... · matik der gewachsenen heterogenen Struktur der ... Im zweiten

5 Testkoppelrechner TK, Software zur Kopplung: FRTA FBS Realtime Test Agent inkl. FRTA-RTT-Plug-In

6 ISDN-Vermittlungsstelle TELES 7 ISDN-Terminal-Adapter ISDN-TA

Tabelle 41: Komponenten der Testumgebung

6.2.2 Komponenten des Prüflings

Prüfling ist das FBS Subsystem Kommunikation. Die Softwarekomponenten des Prüflings sind in folgender Abbildung dargestellt.

Prüfling

Transferkern

Koppel- stack

Eurora-dio-Stack

Abbildung 56: Softwarekomponenten des Prüflings

Prüfling und Testkoppelrechner (TK) kommunizieren über V.24.

6.2.3 Varianten des Prüflings

Der Prüfling wird in folgenden Konfigurationen eingesetzt:

• Auf AT96 (Fahrzeugtauglicher Rechner) zur Darstellung von FFB-Fahrzeuggerät und FFB-Fahrwegelement (z.B. Weichenansteuerung).

• Auf IPC (Industrie PC) zur Darstellung der FFB-Zentrale

6.2.4 Auswertekonzept

FBS-K - Testläufe können in Bezug auf folgende Aspekte ausgewertet werden:

• Auswertung im Datenbereich: Datentelegramme werden unverfälscht kommuniziert

• Auswertung im Kausalbereich: Datentelegramme werden in der richtigen Reihenfolge und ohne Telegrammverlust kommuniziert

• Auswertung im Zeitbereich: Datentelegramme treffen im geforderten Zeitintervall ein.

134

Page 135: Architekturkonzept und Designaspekte einer …elib.suub.uni-bremen.de/publications/dissertations/E-Diss835_dis... · matik der gewachsenen heterogenen Struktur der ... Im zweiten

• Statistische Auswertung: (1) Verteilung der Verbindungsaufbaudauer auf der Basis des

dynamischen Lastmodells (inkl. Multiplex von virtuellen Verbindungen) für jeden FBS-Basistyp (Fahrzeug, Fahrwegelement, Streckenzentrale) in Abhängigkeit der Verbindung (HAYES-HAYES, HAYES-S2M, S2M-S2M, S2M-HAYES) (2) Verteilung der Transferverzögerung auf der Basis des statischen und dynamischen Lastmodells für jeden FBS-Basistyp in Abhängigkeit der Verbindung.

Die Dokumentation der Auswertung enthält folgende Komponenten:

• Verweis auf die im vorliegenden Dokument festgelegten Testziele, erwarteten Resultate und Testendekriterien.

• Gesamtresultat: Testfall korrekt/mit Fehler(n) durchgeführt

• Verweise auf On-The-Fly Fehlermeldungen: Abweichungen vom spezifizierten

Zustandsmaschinen-Verhalten werden durch einen Verweis auf die entsprechende Stelle im Testprotokoll (PDF- bzw. HTML-Link) vermerkt.

• Verweise auf besondere Testereignisse: Optional können bestimmte Testsituationen

(z.B. das Prüfen einer bestimmten Anforderung, oder im Test erwartete zulässige Fehlersituationen wie Rufkollisionen, Fehler durch Einfluss der Übertragungsstrecke auf das FBS-Verhalten [QoS, fehlerhafte ISDN-TA]) durch Hilfsereignisse im Testprotokoll vermerkt und analog zu Fehlermeldungen mit einem Verweis vom Auswertungsdokument auf das Testprotokoll versehen werden.

• Statistische Auswertungen: Für Verteilungen von Kommunikationszeiten bzw.

Fehlern beim Verbindungsaufbau werden y-t-Diagramme als Plots ausgegeben.

• Requirements-Tracing Matrix: Eine Matrix mit Zuordnung der im Test geprüften bzw. noch nicht abgedeckten Anforderungen.

• Anhang Testprotokoll: Das detaillierte, alle Kommunikationsereignisse enthaltende

Testprotokoll bildet eine Anlage zum Testauswertungsdokument.

• Anhang Testspezifikationen: Die kommentierten CSP-Zustandsmaschinenspezifikationen mit detaillierter Beschreibung der erwarteten Resultate in Bezug auf Werte, Kommunikationsreihenfolge und Kommunikationszeitpunkte bilden einen weiteren Anhang zum Testauswertungsdokument.

• Anhang Testkonfiguration: Die Testkonfigurationsdateien, welche die verwendeten

Testzugangslabel sowie die im Test kooperierenden Abstrakten Maschinen spezifizieren, sind als weiterer Anhang dem Testauswertungsdokument beigefügt.

135

Page 136: Architekturkonzept und Designaspekte einer …elib.suub.uni-bremen.de/publications/dissertations/E-Diss835_dis... · matik der gewachsenen heterogenen Struktur der ... Im zweiten

6.3 Grundlagen

6.3.1 Überblick

Die Validierungstests erfolgen mit den vollständigen FBS-K Komponenten auf der Zielhardware und sind als symmetrische Black-Box-Tests konzipiert. Die Komponenten der Testumgebung und des Prüflings werden dazu, wie in folgender Abbildung verdeutlicht, miteinander gekoppelt. Dabei sind hier beispielhaft zwei Prüflinge angegeben.

RTT Test Engine

Testkoppelrechner

Kop-pel- stack

FRTA

RTT-Plugin

IFM-FBS

TE

TK

Prüfling A

Transferkern

Kop-pel- stack

Euroradiostack

FBS-K

Prüfling B

Transferkern

Kop-pel- stack

Euroradiostack

FBS-KGrauer Kanal

Abbildung 57: Überblick Testaufbau

Die Anzahl der Prüflinge, deren Hardware-Konfiguration und die Verbindungsart, mit der die Prüflinge miteinander kommunizieren, variieren in den unterschiedlichen Validierungstests. In den folgenden Kapiteln werden alle erforderlichen Kriterien und Parameter für diese Variationen dargelegt.

136

Page 137: Architekturkonzept und Designaspekte einer …elib.suub.uni-bremen.de/publications/dissertations/E-Diss835_dis... · matik der gewachsenen heterogenen Struktur der ... Im zweiten

6.3.2 Testschritt

Die Validierungstests werden in den folgenden zwei aufeinander aufbauenden Testschritten durchgeführt, um bei Abweichungen von den erwarteten Prüfergebnissen an den Prüflings-schnittstellen die Ursachen des abweichenden Verhaltens einzugrenzen (Basisfunktionen TP2 oder Vermittlungsfunktionen der Gruppensteuerung) und die Prüflingskonfigurationsvarianten im Testschritt 2 zu reduzieren: Nr. Testschritt Name Testschritt Bezeichnung Testschritt 1 Integration FBS-K mit TP2 (EURORADIO) i_tp (TP2) 2 Integration FBS-K mit Gruppensteuerung und

TP2 i_tp (GR/TP2)

Tabelle 42: Testschritte

Bei jedem Testschritt handelt es sich um einen Integrationsschritt und die zugehörige Prüfung des Entwicklungs-/Funktionsstands des Prüflings im Rahmen dieser Integration. In jedem Testschritt sind geeignete Testkonfigurationen des Prüflings erforderlich. Testschritt 1 wird mit zwei Testkonfigurationen (Prüflingskonfigurationen) durchgeführt. Für Testschritt 2 wird nur eine Testkonfiguration benötigt.

6.3.3 Testkonfiguration

Eine Testkonfiguration besteht aus einer individuell konfigurierten HW- und SW-Architektur. In jeder verwendeten Testkonfiguration sind mehrere FBS-K-Rechner über eine ISDN-Nebenstellen-anlage miteinander verbunden. Die folgende Abbildung stellt beispielhaft den Hardwareaufbau einer FFB-Testanlage dar:

137

Page 138: Architekturkonzept und Designaspekte einer …elib.suub.uni-bremen.de/publications/dissertations/E-Diss835_dis... · matik der gewachsenen heterogenen Struktur der ... Im zweiten

FBS-K - Testanlage

2 HE

Industrie-PC B4 HE

Industrie-PC A

4 HE

TELS-PC4 HE

5 10 1 5 20 25 30 35 40 45 5 0 55 115 12 0 125 13 0 135 1 40 145 150 15 5 160 1 6560 65 70 7 5 80 85 90 95 10 0 1 05 110

Industrie-PC

4 HE

Umschalteinheit

Tastatur

2 HE

2 HE

2 HE

3 HE

5 HE

ISDN-TA

230VIN

230VOUTISDN-SoLANLANLANLANLAN

LAN HUBISDN-Router

Monitor

USV 230V

2 HE

ISDN-TAISDN-TA

ISDN-TA

S2M :-1100 -1200

S0 :-2040 -2041 -2050 -2051

IP: 192.168.100.225

IP: 192.168.100.226

IP: 192.168.100.228

IP: 192.168.100.220

IP: 192.168.100.221

IP: 192.168.100.222

S0: -2040B1: COM1S0: -2041B1: COM2

AT96-B1 AT96-B2

S0: -2050B2: COM1S0: -2051B2: COM2

Testkoppelrechner

S2M : -1100

S2M : -1200

COM 1

COM 1

COM 1COM 2COM 3COM 4

IP: 192.168.100.229

Schnittstellenkabel SUB-D 9 polBuchse/25 pol Stecker(PC-Modem)

Patchkabel (Cat. 5), 100 Ohm

BNC-Kabel RG58

Schnittstellenkabel SUB-D 9 pol Buchse/9 pol Buchse(PC-PC)

Patchkabel (Cat. 5), 100 Ohm(TELES S2M/BINTEC S2M)

Abbildung 58: Beispiel Testaufbau

Die Testumgebung hat über TR-Schnittstellen Zugang zur Testkonfiguration und steuert damit die Testdurchführung. In den Testschritten der Validierungstests (siehe 6.3.2 ) wird zusätzlich zur Testkonfiguration ein Hilfsrechner (TK) als Testmittel zur Ansteuerung der Testkonfiguration benötigt. Für die Kopplung Hilfsrechner-Prüflingsrechner wird eine serielle Kopplung über V.24 verwendet. Wesentliche Konfigurationsmerkmale sind durch die Verbindungsart gegeben. Zur Kennzeichnung dieser Merkmale werden die folgenden Abkürzungen eingeführt. Diese werden in den Bezeichnern für Testschritte und Testfälle (s.u.) verwendet.

VGA

C OM 1

K eyb.

C OM 2

LP T R S422*

L AN

C OM 3

V GA

C OM 1

K eyb .

C OM 2

LP T R S42 2*

LA N

C OM 3

138

Page 139: Architekturkonzept und Designaspekte einer …elib.suub.uni-bremen.de/publications/dissertations/E-Diss835_dis... · matik der gewachsenen heterogenen Struktur der ... Im zweiten

Beschreibung Verbindungsart Konfigurationsmerkmal Point-to-Point pp Point-to-Multipoint pmp Gruppensteuerung, Verbindung über Gateway gr

Tabelle 43: Verbindungsart

Folgende Testkonfigurationen, werden in den Testschritten verwendet: Kurzbeschreibung der Testkonfiguration Testkonfigurationsname Testschritt 1, Point-to-Point 1_pp Testschritt 1, Point-to-Multipoint 1_pmp Testschritt 2, Gruppensteuerung 2_gr

Tabelle 44: Testkonfiguration

6.3.3.1 Aktivierungsscript

Zur Konfiguration der FBS-Software auf den unterschiedlichen Prüflingsrechnern und dem Testhilfsrechner werden spezielle Konfigurationseinstellungen für SW-Komponenten benötigt. Das Aktivierungsscript ist ein rechnerspezifisches ausführbares Shellscript, welches alle für den jeweiligen Test auf der entsprechenden Testhardware erforderlichen SW-Komponenten in der notwendigen Konfiguration aktiviert.

6.3.3.2 Testzugangskonfiguration und Zugangslabel

Für den Zugang des Testsystems zu einer Testkonfigurationen werden verschiedene Testzugangs-konfigurationen (TZK) benötigt. Mit Hilfe der Testzugangskonfigurationen wird der Zugang des Testsystems zu den FBS-K-Rechnern so konfiguriert, dass die für die Testdurchführung erforder-lichen Kommunikationsverbindungen auf Anforderung des Testsystems eingerichtet werden können (Kommunikationsstacks und Kommunikationsadressen). Für die Identifikation der Testzugangskonfigurationen wird ein Zugangslabel eingeführt. Das Zu-gangslabel ist generisch aufgebaut und beschreibt den Filename (inkl. Teilpfad) der Testzugangs-konfiguration. Das Zugangslabel beinhaltet folgende, durch „/“ getrennte Angaben: 1. Testzugangskonfiguration [tzk] 2. Auswahl Testschritt [i_tp] 3. Auswahl Verbindungsbeziehung [pp; pmp] 4. Auswahl Callrichtung [in; out] 5. Für incoming Calls: Auswahl Testinstanz mit Extension tzk [a.tzk; b.tzk; b1.tzk; b2.tzk] 6. Für outgoing Calls: Auswahl der Testinstanzen für Quelle und Ziel des Rufes mit Extension tzk

[a_b.tzk; a_b1.tzk; a_b2.tzk; b_a.tzk; b1_a.tzk; b2_a.tzk; b1_b2.tzk; b2_b1.tzk] 7. Nach der Angabe des Zieles kann bei Bedarf noch die Angabe der Netzzugangsvariante

(Telefon-Nr. zur Selektion B-Kanal oder ISDN-TA) erfolgen, Beispiel: a_b1_1. Damit kann festgelegt werden, welche Transportkanäle auf welchen Netzkanälen abzubilden sind.

Beispiel: tzk/ti_tp/pp/in/a.tzk

139

Page 140: Architekturkonzept und Designaspekte einer …elib.suub.uni-bremen.de/publications/dissertations/E-Diss835_dis... · matik der gewachsenen heterogenen Struktur der ... Im zweiten

Dieser Dateiname verweist auf eine Testzugangskonfiguration, die im Testschritt 1 (Integration FBS-K mit TP2) für die Verbindungsbeziehung Point-to-Point (Prüfling B kommuniziert bidirektional mit Prüfling A) für eintreffende Rufe in Prüfling A verwendet wird.

6.3.4 Testfall

Ein Testfall beschreibt die in einer festgelegten Testkonfiguration durchzuführenden Prüfaktivitäten an den Prüflingsschnittstellen. Die Prüfaktivitäten werden dabei durch mehrere Szenarien an den Prüflingsschnittstellen definiert, die typische Schnittstellenfunktionen nachbilden (siehe auch 6.3.5). In jedem Testschritt wird mit jeder Testkonfiguration mindestens ein Testfall durchgeführt. Je nachdem, welche Variationen in der jeweiligen Testkonfiguration möglich sind, unterscheiden sich die Testfälle z.B. in der Anzahl der Verbindungspartner, den Verbindungsarten, der Anzahl der aufgebauten Verbindungen etc. Ein Testfall ist festgelegt durch:

• Die Testziele, • Die Testendekriterien, • die Testkonfiguration, in welcher der Testfall abläuft, • eine vom Testfall genutzte Auswahl von Testzugangslabeln der Testkonfiguration, • Parameter für die Durchführung der Testszenarien (siehe 6.3.5), • sowie formale CSP-Spezifikationen (siehe [15], [16]), die die konkrete

Testdurchführung und die dabei erwarteten Testergebnisse formal beschreiben. In die CSP-Spezifikationen gehen alle zuvor genannten Punkte ein.

In jedem Testfall werden alle Testszenarien aus Kapitel 6.3.5 mit den für den Testfall festgelegten Parametern ausgeführt. Dies ist in den CSP-Spezifikationen des Testfalls berücksichtigt. Um sowohl Funktionstests als auch Belastungstest abzudecken, wird jeder Testfall in zwei Modi ausgeführt: Funktionstest (Modus f) und Dauertests (Modus d). Modus f/Funktionstest: Jedes Szenario wird für die Dauer von ca. 15 Minuten ausgeführt. Falls Fehler auftreten, wird der Testfall nach Fehlerkorrektur wiederholt. Modus d/Dauertests: Dauertests werden nach erfolgreicher Durchführung der Funktionstest gestartet. Sie dienen dazu, insbesondere Stabilität und Speicherverbrauch des Prüflings unter Langzeitbelastung zu testen. Ein Dauertest besteht aus mehreren nacheinander abzuarbeitenden Szenarien über eine Gesamtzeitdauer von mindestens 24 h. Das System wird beim Wechsel zwischen verschiedenen Szenarien dabei nicht heruntergefahren. Auftretende Fehler werden protokolliert, führen aber nicht zum Testabbruch. Nach Fehlerkorrektur wird der Dauertest wiederholt. Als Fehler gelten: 1. Datenfehler (CRC-Fehler) 2. Fehlende Ereignisse 3. Falsche Reihenfolge von Ereignissen 4. Unerwartete Ereignisse (z.B. Fehlermeldungen) 5. Verletzung von Zeitschranken

140

Page 141: Architekturkonzept und Designaspekte einer …elib.suub.uni-bremen.de/publications/dissertations/E-Diss835_dis... · matik der gewachsenen heterogenen Struktur der ... Im zweiten

6.3.5 Testszenario

Der Zugang der Testumgebung zu den Testkonfigurationen erfolgt in allen Fällen einheitlich über FBS-interne TR-Schnittstellen. Diese Schnittstellen stellen verbindungsorientierte Nutzdatenkanäle zur Verfügung. Die folgende Abbildung zeigt das Zustandsübergangsverhalten an der TR-Schnittstelle:

ST_TR_IDLE

ST_TR_INCOMING

ST_TR_CONNECTED

TR_DOWN

TR_CON_IND

ST_TR_OUTGOING

ST_TR_DISCON_PENDING

TR_CON_REQ

TR_CON_REL

TR_CON_REL

TR_CON_CNF

TR_CON_RSP

TR_CON_REL

TR_DOWN

TR_DOWN

TR_DOWN

Abbildung 59: Zustandsübergangsverhalten des Zugangs der Testumgebung (TR-Schnittstelle)

Zum Test des Prüflings über diese Schnittstellen werden sieben Testszenarien festgelegt. Fünf Testszenarien (siehe 6.4.1 bis 6.4.5) decken die Möglichkeiten der Verbindungssteuerung (Transitionen entsprechend Abbildung 59) inkl. einer Testdatensequenz (zur Prüfung des Nutzdatenkanals und der Verbindungsabbausynchronisierung der beiden über die Schnittstelle kommunzierenden Teilnehmer) ab. Ein Szenario (siehe 6.4.6) steuert den Test in der Datenübertra-gungsphase. Ein weiteres Szenario (gemischtes Szenario - siehe 6.4.7) ist eine Kombination der Testszenarien zur Verbindungssteuerung und Datenübertragung.

141

Page 142: Architekturkonzept und Designaspekte einer …elib.suub.uni-bremen.de/publications/dissertations/E-Diss835_dis... · matik der gewachsenen heterogenen Struktur der ... Im zweiten

Die Funktionalität an der TR-Schnittstelle kann durch diese sieben Testszenarien ausreichend

142

TDB Wartetimer zwischen 2 Datenpaketen bei Prüfling B

getestet werden. Alle Testszenarien werden grundsätzlich in jedem Testfall, mit jeder Testkon-figuration und in jedem Testschritt durchgeführt. Das Verhalten bei gleichzeitiger Belastung mehrerer Netz- bzw. Transportressourcen wird durch parallele Ausführung von Szenarien realisiert. Die einzelnen Szenarien sind voneinander unab-hängig und verfügen über Timer, in denen stochastische Komponenten enthalten sind. Dadurch ergibt sich ein stochastisches Gesamtbelastungsmodell. Szenario Nummer

Bezeichnung Beschreibung

1 con_ok_a Verbindungsaufbau vollständig Abbau durch rufenden Teilnehmer

2 con_ok_b Verbindungsaufbau vollständig Abbau durch gerufenen Teilnehmer

3 con_not_ok_b Verbindungsaufbau unvollständig Abweisung durch gerufenen Teilnehmer

4 con_not_ok_a Verbindungsaufbau unvollständig Abweisung durch rufenden Teilnehmer

5 con_not_ok_n Verbindungsaufbau unvollständig Abweisung durch Netz

6 con_data Verbindungsaufbau vollständig Bidirektionale Datenübertragung

7 con_all Bidirektionale Datenübertragung. Nichtdeterministisch gesteuerter Verbindungsabbau durch einen der Kommunikationspartner in jeder Phase der Kommunikation. Dies entspricht der nichtdeterministischen Auswahl aus den Szenarien con_ok_a, con_ok_b, con_not_ok_a, con_not_ok_b und con_data. Unabhängig voneinander parallel pro TR-Interface. Neuauswahl nach jedem Durchlauf.

Tabelle 45: Testszenarien

In den Testszenarien werden Timer verwendet, die als Parameter ausgelegt sind. Für jeden Testfall müssen die Timer-Parameter der Testszenarien geeignet festgelegt werden. Timer Name

Beschreibung

TESTB Timer für Maximaldauer zum vollständigen Ablauf eines Verbindungsaufbauszenarios. Bei Signalisierungstests ist auch ein bidirektionaler Datenaustausch zur Überprüfung der Verbindung enthalten. Der Ablauf von TESTB stellt in allen Szenarien außer CON_ALL ein Fehlerereignis dar.

TW Wartetimer für Restart des Szenarios TREJ Wartetimer für Verbindungsabweisung oder -rücknahme TDA Wartetimer zwischen 2 Datenpaketen bei Prüfling A

Page 143: Architekturkonzept und Designaspekte einer …elib.suub.uni-bremen.de/publications/dissertations/E-Diss835_dis... · matik der gewachsenen heterogenen Struktur der ... Im zweiten

Timer Beschreibung Name TCONREL Timer für Maximaldauer zwischen Verbindungsabbau-Anforderung und

Abbau der Verbindung TTEST Gesamttestdauer eines Szenarios. Das Szenario wird solange wiederholt, bis

TTEST abgelaufen ist. Bei Szenario con_data bestimmt TTEST die Dauer eines Szenariodurchlaufs.

Tabelle 46: Timer

Der Timer TESTB wird für jedes Szenario einzeln spezifiziert, diese Timer werden entsprechend TCON_OK_A ... TCON_ALL genannt. Auch der Wartetimer TW wird für jedes einzelne Szenario festgelegt. TREJ wird für Szenario con_not_ok_a und con_not_ok_b einzeln spezifiziert. Alle Wartetimer TX können bei wiederholter Durchführung von Testszenarien in ihrer Größe variiert werden. Dazu wird für einen Timer TX ein fester Anteil TX BASE definiert, der um einen zufälligen Anteil im Intervall 0 ... TX DELTA ergänzt wird. Die konkrete Definition der Abläufe in einzelnen Testszenarien erfolgt an Hand von Message Sequence Charts.

143

Page 144: Architekturkonzept und Designaspekte einer …elib.suub.uni-bremen.de/publications/dissertations/E-Diss835_dis... · matik der gewachsenen heterogenen Struktur der ... Im zweiten

6.4 Testszenarien

6.4.1 Testszenario 1/ CON_OK_A (Signalisierung)

• Verbindungsaufbau (vollständig) • Verbindungsabbau durch rufenden Teilnehmer

TR_CON_REQ

TR_CON_IND

TR_CON_RSP

M_DATA

M_DATA

M_DATA

M_DATA

M_DATA

M_DATA

TR_CON_CNF

T estb

T w

TR_CON_REQ

TR_CON_REL

TR_DOWNTR_DOWN

Abbildung 60: Testszenario 1

144

Page 145: Architekturkonzept und Designaspekte einer …elib.suub.uni-bremen.de/publications/dissertations/E-Diss835_dis... · matik der gewachsenen heterogenen Struktur der ... Im zweiten

6.4.2 Testszenario 2/ CON_OK_B (Signalisierung)

• Verbindungsaufbau (vollständig) • Abbau durch gerufenen Teilnehmer

TR_CON_REQ

TR_CON_IND

TR_CON_RSP

M_DATA

M_DATA

M_DATA

M_DATA

TR_CON_CNF

T estb

T w

TR_CON_REQ

TR_CON_REL

TR_DOWN TR_DOWN

M_DATA

M_DATA

Abbildung 61: Testszenario 2

145

Page 146: Architekturkonzept und Designaspekte einer …elib.suub.uni-bremen.de/publications/dissertations/E-Diss835_dis... · matik der gewachsenen heterogenen Struktur der ... Im zweiten

6.4.3 Testszenario 3/ CON_NOT_OK_B (Signalisierung)

• Verbindungsaufbau (unvollständig) • Abweisung durch gerufenen Teilnehmer

TR_CON_REQ

TR_CON_IND

TR_CON_REL

TR_DOWN

T w

TR_CON_REQ

T rej

Abbildung 62: Testszenario 3

146

Page 147: Architekturkonzept und Designaspekte einer …elib.suub.uni-bremen.de/publications/dissertations/E-Diss835_dis... · matik der gewachsenen heterogenen Struktur der ... Im zweiten

6.4.4 Testszenario 4/ CON_NOT_OK_A (Signalisierung)

• Verbindungsaufbau (unvollständig) • Rücknahme durch rufenden Teilnehmer

TR_CON_REQ

TR_CON_IND

TR_CON_REL

TR_DOWN

T w

TR_CON_REQ

T rej

TR_DOWN

Abbildung 63: Testszenario 4

147

Page 148: Architekturkonzept und Designaspekte einer …elib.suub.uni-bremen.de/publications/dissertations/E-Diss835_dis... · matik der gewachsenen heterogenen Struktur der ... Im zweiten

6.4.5 Testszenario 5/ CON_NOT_OK_N (Signalisierung)

CON_NOT_OK_N entspricht CON_OK_A oder CON_OK_B jeweils mit Testb = ∞.

• Verbindungsaufbau (unvollständig) • Abbruch durch Netz

TR_CON_REQ

TR_DOWN

T w

TR_CON_REQ

Abbildung 64: Testszenario 5

148

Page 149: Architekturkonzept und Designaspekte einer …elib.suub.uni-bremen.de/publications/dissertations/E-Diss835_dis... · matik der gewachsenen heterogenen Struktur der ... Im zweiten

6.4.6 Testszenario 6/ CON_DATA (Datenphase)

• Verbindungsaufbau (vollständig) • Bidirektionale Datenübertragung

TR_CON_REQ

TR_CON_IND

TR_CON_RSP

M_DATA

M_DATA

M_DATA

M_DATA

TR_CON_CNF

T estb

Tda Tdb

Tdb

Tdb

Tdb

Tda

Tda

M_DATA

M_DATA

M_DATA

M_DATA

M_DATA

M_DATA

M_DATA

M_DATA

M_DATA

M_DATA

M_DATA

M_DATA

Tdb

Abbildung 65: Testszenario 6

Der Datenaustausch erfolgt solange, bis TTEST abgelaufen ist. Danach führt nicht deterministisch gesteuert einer der beiden Verbindungspartner TR_CON_REL durch. Der Test ist beendet, wenn beiden Kommunikationspartnern TR_DOWN gemeldet wurde. Durch Wahl der Parameter für die Durchführung des Testszenarios (Wartetimer TDA bzw. TDB und Nachrichtengröße der zu

149

Page 150: Architekturkonzept und Designaspekte einer …elib.suub.uni-bremen.de/publications/dissertations/E-Diss835_dis... · matik der gewachsenen heterogenen Struktur der ... Im zweiten

versendenden Testdaten) können die Eigenschaften des zu testenden Nutzkanals (z.B.

150

besteht in der Minimierung von Risiken der Inkompatibilität der Kommunikationsplattform mit anderen Realisierungen des EURORADIO-Protokollstacks gemäß UNISIG CLASS 1. Der

Durchsatz/Übertragungsbandbreite und Flusskontrollverhalten) berücksichtigt werden.

6.4.7 Testszenario 7/ CON_ALL (gemischtes Szenario)

Das Testszenario con_all entspricht im Wesentlichen dem Szenario con_data mit folgenden Unter-schieden: Nach dem Ablauf von TESTB führt der Invoker (A) TR_CON_REL durch. Der Ablauf von TESTB stellt in diesem Szenario kein Fehlerereignis dar. Der Responder (B) kann wahlweise auf TR_CON_IND mit TR_CON_REL oder TR_CON_RSP reagieren. TDA und TDB sind für das erste zu sendende Telegramm gleich null, d.h. nach TR_CON_RSP bzw. TR_CON_CNF wird sofort ein Telegramm gesendet bzw. mit TR_CON_REL reagiert. Sowohl Responder als auch Invoker können nach dem Ablauf von TDB bzw. TDA wahlweise ein Telegramm senden oder TR_CON_REL durchführen. Nach vollzogenem Verbindungsabbau wird das Szenario nach Ablauf von TW wiederholt, es sei denn TTEST ist zwischenzeitlich abgelaufen.

6.5 Kompatibilitäts- und eingeschränkte Konformitätsnachweisstrategie

UNISIG CLASS 1 definiert eine Vielzahl von Anforderungen an die EURORADIO-Protokoll-stacks. Der Nachweis der korrekten Realisierung der EURORADIO-Protokollstacks kann durch Testen nicht erfolgen, da:

• Die Kombination aller geforderten Protokollzustände und -optionen einen riesigen Zustandsraum bildet, der unter wirtschaftlichen Gesichtspunkten nicht abgedeckt werden kann.

• Die äußeren Bedingungen für die Beaufschlagung der Protokolle an den Schnittstellen

nicht eingegrenzt sind und deshalb der Zustandsraum nicht beschränkt wird. Dieses für komplexe Übertragungsprotokolle typische Nachweisproblem kann gelöst werden, indem ein Referenzprotokollstack und ein Set von Referenztestfällen geschaffen wird. Dadurch könnten neue Implementierungen auf Konformität überprüft werden. Diese Referenzlösungen existieren nicht für die signaltechnisch nichtsicheren Protokollstacks der UNISIG CLASS 1 Spezifikation. Eine Protokollspezifikation ohne Referenztestfälle kann zwar als Eingangsanforderung für die Entwicklung gelten und auch bei der Realisierung verfolgt werden. Problematisch ist aber deren Nachweis. Nach Abschluss der Entwicklung und Test der EURORADIO-Protokollstacks nach UNISIG CLASS 1 verbleibt ein erhebliches Risiko, so dass sich das System in bestimmten Situationen nicht UNISIG-konform verhält und nachgebessert werden muss. Dieses Risiko tritt dann auf, wenn innerhalb einer Anlage unterschiedliche UNISIG-Implementierungen kommunizieren sollen (z.B. ausländische ETCS-Fahrzeuge fahren auf dem Streckennetz der DB). Die Nachbesserungen sind aufwendig (Traceauswertungen), unplanmäßig und kostenintensiv, da bereits ausgelieferte Systeme geändert werden müssen. Das Ziel der Kompatibilitäts- und eingeschränkten Konformitätsnachweisstrategie (siehe auch [29])

Page 151: Architekturkonzept und Designaspekte einer …elib.suub.uni-bremen.de/publications/dissertations/E-Diss835_dis... · matik der gewachsenen heterogenen Struktur der ... Im zweiten

Gesamtaufwand für die Minimierung der Risiken bezüglich Inkompatibilität soll in vertretbaren Grenzen gehalten werden. Eine Realisierung des EURORADIO-Protokollstacks besitzt bestimmte Eigenschaften, die sich in Aufbau und Struktur der PDU´s und/oder im Zustandsverhalten der Protokollschicht wiederspiegeln. Das Zustandsverhalten einer Protokollschicht beeinflusst ebenfalls den PDU-Inhalt, weil die PDU´s neben Daten auch Ereignisse für Zustandswechsel übertragen. Diese Eigenschaften können im PDU-Strom am Ausgang einer Protokollschicht geprüft werden. Alle relevanten UNISIG-Anforderungen können deswegen in Anforderungen an Aufbau/Struktur der PDU´s (=statische Anforderungen) und Anforderungen an die Zustandslogik (=dynamische Anforderungen) für jede Protokollschicht überführt werden. Die statischen Konformitätsanforderungen bestimmen, welcher PDU-Aufbau am Ausgang einer Protokollschicht prinzipiell zulässig ist. Diese PDU-Regeln werden im Analyse-Testsystem hinterlegt. Neben dem PDU-Format können auch bestimmte Inhalte der PDU´s auf Konformität geprüft werden. Die dynamischen Konformitätsanforderungen bestimmen, welche Zustandswechsel in Abhängigkeit welcher Ereignisse in einer Protokollschicht auftreten können. Das aus UNISIG abgeleitete Zustandsmodell wird ebenfalls im Analyse-Testsystem hinterlegt. Folgende Vorteile bestehen bei der Anwendung eines rein passiven Analyse-Testsystems bei konsequenter Trennung von Stimulation und Prüfung des SUT:

• geringere Komplexität des passiven Analyse-Testsystems (Orakels) gegenüber einem Referenzstack (lokale Zwischenzustände und Diensteschnittstellen eines aktiven Protokollstacks brauchen nicht realisiert zu werden)

• diversitärer Implementierungsansatz (das Analyse-Testsystem prüft entsprechend

abgeleiteter Regeln)

• Verwendung zur Analyse von Inkompatibilitätsproblemen auch im Feldeinsatz ("Konformitätsmonitoring" auch bei regulärem Nutzdatenverkehr).

6.5.1 Konfiguration des Prüflings

Die folgende Abbildung zeigt die benötigte SUT Konfiguration (nur ein Rechner mit emulierter Teststrecke).

151

Page 152: Architekturkonzept und Designaspekte einer …elib.suub.uni-bremen.de/publications/dissertations/E-Diss835_dis... · matik der gewachsenen heterogenen Struktur der ... Im zweiten

Test-szenarien

Regelverstößedyn. Konf.TracesRegelverstöße

stat. Konf.Traces

Zustands-automat

PDU-Definition

AnalysierterProtokolllayer Analyse

statischeKonformität

AnalysedynamischeKonformität

Testsystem Stimulation

StimulationSchnittstellen KBS

SUT

Testsystem Analyse

Unisig-Requirements

eingeschränkte Konformitätsanforderungen

Meßpunkt

PDU Event

statische dyna-mische

Vereinfachtes KanalmodellGSM-R/ISDN

Abbildung 66: SUT Konfiguration

Für die Durchführung der eingeschränkten Konformitätsanalyse werden zwei EURORADIO-Stacks über ein Übertragungsmedium miteinander gekoppelt. Das Übertragungsmedium ersetzt das GSM/R-ISDN-Netz und stellt ein vereinfachtes Kanalmodell dar, in welchem das Zeitverhalten eines fehlerfreien GSM/R-ISDN-Kanals nachgebildet wird. Zusätzlich werden im Kanalmodell deterministische Fehlermuster erzeugt, die verschiedene Fehlerzustände im Netzkanal nachbilden und damit Fehlerreaktionen in den Protokollstacks aus-lösen. An den äußeren Schnittstellen (Kopplungsschnittstelle zum sicheren Rechner bzw. SA-Schnittstelle im sicheren Rechner) werden die EURORADIO-Stacks mit Testszenarien stimuliert, die das Regel-verhalten von FFB-Systemen nachbilden Die untere Dienstschnittstelle der auf Konformität zu untersuchenden Protokollschicht im SUT bil-det einen Messpunkt, an dem das Analyse-Meßsystem passiv den gesamten PDU-Verkehr abgreift und zur Analyse herausführt. Für den Betrieb der Kommunikationsplattform ist die Monitoring-Funktion transparent. Der herausgeführte PDU-Strom wird im Analyse-Testsystem on the fly ausgewertet. Dazu werden die PDU´s zunächst hinsichtlich ihres strukturellen Aufbaus auf Regelkonformität überprüft, indem sie mit den hinterlegten PDU-Definitionen verglichen werden. Für diese Auswertung sind keinerlei Informationen über Zustände in der Protokollschicht notwendig. Es erfolgt ausschließlich eine Formatanalyse. PDU´s, die Abweichungen von den hinterlegten Definitionen aufweisen, werden als Konformitätsverstoß registriert und abgespeichert. Zur Kontrolle wird ebenfalls der gesamte PDU-Strom als Trace abgelegt.

152

Page 153: Architekturkonzept und Designaspekte einer …elib.suub.uni-bremen.de/publications/dissertations/E-Diss835_dis... · matik der gewachsenen heterogenen Struktur der ... Im zweiten

PDU´s, die regelkonform sind, werden anschließend auf enthaltene Informationen bezüglich Zustandswechsel untersucht. Wird ein Event erkannt, erfolgt eine Meldung an das Auswertemodul für dynamische Konformität. In diesem Modul wird analysiert, ob das Event im gegenwärtigen Zustand erlaubt ist und ob der Folgezustand dem Zustandsmodell entspricht. Die zugeordnete Zustandsmaschine im Auswertemodul wird bei gültigen Events entsprechend umgeschaltet. Fehlerhafte Events werden als Regelverstöße protokolliert. Alle Aktivitäten der Zustandslogik werden als Trace parallel abgelegt. Im Ergebnis der Testdurchführung liegen Protokolle für alle Konformitätsverletzungen hinsichtlich statischer und dynamischer Konformität vor. Außerdem stehen Traces für ggf. notwendige Auswer-tungen und Fehlersuche bereit. Folgende Vorteile ergeben sich bei Verwendung eines passiven Analysesystems zur Konformitäts-prüfung (kein aktiver Referenzstack):

• ein Referenzstack wird nicht benötigt,

• das Analysesystem kann auch während des Regelbetriebes verwendet werden (z.B. zur Analyse auch von sporadisch auftretenden Kompatibilitätsproblemen),

• die Komplexität eines passiven Analysesystems ist im Vergleich zum kompletten

Protokollstack geringer (die Verwaltung von lokalen Steuerprimitiven, Zwischenzuständen usw. fällt weg),

• das passive Analysesystem kann schichtenweise skalierbar verwendet werden (nur ein

Teil der Schichten des zu analysierenden Protokollstacks kann betrachtet werden),

• das passive Analysesystem kann funktional skalierbar verwendet werden (nur ein Teil des Regelwerkes der zu analysierenden Protokollschicht kann betrachtet werden),

• das Zeitverhalten der SUT-Protokollstacks wird nicht oder nur unwesentlich (Tracelast)

verändert. Durch den passiven Analyseansatz sind sporadisch auftretende Fehlerbilder nur beschränkt reprodu-zierbar. Bei entsprechend ausgelegten Trace- und Ereignisspeichergrößen des Analysesystems ist ein sporadisch aufgetretener Konformitätsverstoß und die Randbedingungen, die zu dem Fehlerbild führten, erkennbar. Auf Basis der durch das Analysesystem gewonnenen Tracedaten im zeitlichen Umfeld eines Konformitätsverstoßes, ist eine systematische Verifikation in komplexeren Simulationsumgebungen (bzgl. Netzproviderkanalverhalten und Nutzdatenverkehr der Applikation) möglich.

6.5.2 Randbedingungen

Der eingeschränkte Konformitätsnachweis beschränkt sich nur auf den Regelbetrieb der Kommunikationsplattform. Das heißt, der Nachweis der Konformität bei regelwidrigem Verhalten an den Dienstzugangsschnittstellen der Kommunikationsplattform, bei nicht protokollkonformer Gegenstelle und bei PDU-Verfälschung an den Dienstzugangsschnittstellen der Protokollschichten wird nicht betrachtet.

153

Page 154: Architekturkonzept und Designaspekte einer …elib.suub.uni-bremen.de/publications/dissertations/E-Diss835_dis... · matik der gewachsenen heterogenen Struktur der ... Im zweiten

Der Nachweis der eingeschränkten Konformität beschränkt sich auf die Beaufschlagung der Kom-munikationsplattform mit Testdaten an den Dienstzugangsschnittstellen, sowie Monitoringaktivi-täten an definierten Messpunkten im Euroradiostack. Für die Stimulation der Dienstzugangsschnittstellen werden Szenarien definiert, die den Standard-abläufen bei der Nutzung der Kommunikationsplattform als Datenübertragungseinrichtung für FFB entsprechen. Die Szenarien sind über verschiedene Parameter an gewünschte Testfälle anpassbar. Darüber hinaus gibt es keine weiteren Stimulationen der Kommunikationsplattform. Der Netzprovider GSM/R-ISDN wird durch ein Kanalmodell nachgebildet, welches das Zeitverhalten eines Datenkanals simuliert. Die Monitoringaktivitäten beschränken sich auf insgesamt drei Messpunkte. An diesen Mess-punkten werden die Protokolle des EURORADIO-Sicherungs-Layers, des EURORADIO-Transport-Layers und des EURORADIO-Link-Layers analysiert. Die Analyse weiterer Protokolle oder Schnittstellen ist nicht vorgesehen. Das Testverfahren zur statischen und dynamischen Konformitätsanalyse besteht in der auto-matischen Analyse und Protokollierung von Abweichungen zum spezifizierten Protokollverhalten. Deshalb erfolgt der Nachweis aller Testrequirements eines Messpunktes indirekt durch fehlerfreien Durchlauf der messpunktbezogenen Testfälle. Ein Einzelnachweis der Testrequirements entfällt damit. Die Nachvollziehbarkeit ist durch Traces gegeben.

6.5.3 Beaufschlagung mit Messszenarien

Zum Nachweis der eingeschränkten Konformität wird die Kommunikationsplattform an seinen Dienstzugangsschnittstellen mit Testszenarien entsprechend der Validierungstests beaufschlagt. Die Stimulation des EURORADIO-Stacks erfolgt durch ein Echtzeit-Testsystem (siehe RTTDOC). Dieses kommuniziert über den Testagent (FRTA) mit der Kommunikationsplattform.

6.5.4 Messpunkte im EURORADIO-Stack

In den EURORADIO-Stack werden an verschiedenen Stellen Module „US_SNIFF“ eingefügt, die jeweils einen Messpunkt repräsentieren.

154

Page 155: Architekturkonzept und Designaspekte einer …elib.suub.uni-bremen.de/publications/dissertations/E-Diss835_dis... · matik der gewachsenen heterogenen Struktur der ... Im zweiten

Funk-Stack

ER Protokolle

TR _T.70

TR _ aH D L C

Netzprovider TCP

TR _TR _M U X(TP2)

FRTA

TR _T.70 TR _T.70

TR _ aH D L C TR _ aH D L C

TR-IF

TR_TLI_PORTTR_TLI_PORT TR_TLI_PORT

US _SNIFF TR-IFUS _SNIFF US _SNIFF

US _SNIFF US _SNIFF US _SNIFF

US _SNIFF US _SNIFF US _SNIFF

Abbildung 67: Messpunkte im EURORADIO-Stack

Es sind Messpunkte an folgenden Layern des EURORADIO-Stacks für die eingeschränkte Konfor-mitätsanalyse vorgesehen:

• Messpunkt unterhalb des Linklayers (aHDLC); an diesem Messpunkt wird der bidirektionale Datenstrom von und zum HDLC-Protokoll abgegriffen. Er dient dem Nachweis des konformen Verhaltens des Linklayers.

• Messpunkt unterhalb des Transportprotokolls (TP2); an diesem Messpunkt wird der

bidirektionale Datenstrom von und zum TP2-Protokoll abgegriffen. Er dient dem Nachweis des konformen Verhaltens des Transportlayers.

• Messpunkt unterhalb des Sicherungsprotokolls (= oberhalb des Transportprotokolls); an

diesem Messpunkt wird der bidirektionale Datenstrom vom und zum Safetylayer abgegriffen. Er dient dem Nachweis des konformen Verhaltens des Sicherungsprotokolls.

Meßpunkte Konformitätnachweis

155

Page 156: Architekturkonzept und Designaspekte einer …elib.suub.uni-bremen.de/publications/dissertations/E-Diss835_dis... · matik der gewachsenen heterogenen Struktur der ... Im zweiten

6.5.5 Realisierung der Messpunkte

Die EURORADIO-Protokolle der Kommunikationsplattform sind als USER-STREAM-Module realisiert. Für das Tracen des Datenstroms wird ein Sniffermodul („US_SNIFF“) verwendet, das im USER-STREAM als Tracepunkt an verschiedene Stellen eingefügt werden kann. „US_SNIFF“ erhält Konfigurationsmöglichkeiten zur Anpassung an die verschiedenen Protokollebenen und kann somit für verschiedene Tracepunkte im EURORADIO-Stack verwendet werden. Innerhalb der Kommunikationsplattform werden im EURORADIO-Stack mehrere Sniffermodule „US_SNIFF“ konfiguriert. Jede Instanz eines Sniffermoduls bildet eine logische Einheit mit jeweils einer Instanz zur Auswertung der statischen Konformität sowie einer Instanz zur Auswertung der dynamischen Konformität. Die Varianten der Auswertungsinstanzen werden passend zum Tracepunkt konfiguriert. Das Tracemodul verhält sich für den Nutzdatenstrom transparent.

T es tsyste m

U S _ S N IF F

P r o to k o l ls ta c k T R A C E -L o g

E R R O R - L o g

T R A C E -L o g

E R R O R - L o g

C S P - A u to m a tIF M

d yn am ische K onfo rm itä t

P D U E v e n t

S U T

F R T A

P r o v id e r

M o n i t o rD a te n

s ta t is c h e K o n fo rm itä t

Abbildung 68: Komponenten eines Messpunktes

Das „Sniffer-Modul“ ist als USER-STREAM-Konverter realisiert. Der strukturelle Aufbau ist in nachfolgender Abbildung dargestellt.

K o m p o n e n te n e in e s M e ß p u n k te s

156

Page 157: Architekturkonzept und Designaspekte einer …elib.suub.uni-bremen.de/publications/dissertations/E-Diss835_dis... · matik der gewachsenen heterogenen Struktur der ... Im zweiten

SUT-Stack

Modul

UP

Down

r_put

putnext

r_put_monw_putputnext

w_put_m on

Mon

itor I

nter

face

R TTM on ito rP lug in

initup_mon_if

close

close_mon

open_mon

open

destructdown_mon_if

Struktur Modul "US_SNIFF"

Abbildung 69: Struktur SNIFFER-Modul

Zur Ankopplung verschiedener Monitorapplikationen wird eine interne Monitor-Plugin-API realisiert. Die folgende Tabelle beschreibt die einzelnen Funktionen der Registrierungsstruktur. Funktionsbezeichnung Beschreibung void us_sniff_up_mon_if(); Das Monitorplugin aktiviert entsprechend

hinterlegter Konfigurationsdaten (us_master_data) Basis-Monitorkanäle zu Monitor-IFM-Modulen.

void us_sniff_down_mon_if(); Das Monitorplugin deaktiviert die Basis-Monitorkanäle zu Monitor-IFM-Modulen.

void *us_sniff_open_mon_if( us_sniff_param_t *param);

Dem Monitorplugin wird das Belegen eines zu überwachenden Kanals (Messpunkt) angezeigt. Entsprechend eines Konfigurationslabels wird der Messpunkt auf den zuständigen Basis-Monitorkanal zugeordnet. Eine Referenz auf die Verwaltungsstruktur des Messpunktes wird der Funktion als Rückgabewert zur Verfügung gestellt.

157

Page 158: Architekturkonzept und Designaspekte einer …elib.suub.uni-bremen.de/publications/dissertations/E-Diss835_dis... · matik der gewachsenen heterogenen Struktur der ... Im zweiten

void us_sniff_w_put_mon_if( Dem Monitorplugin wird neben der void *us_sniff_mon_ref, mblk_t *mp);

Verwaltungsstruktur des Messpunktes eine Kopie, einer den Messpunkt in Down-Stream-Richtung durchlaufenden Message, übergeben.

void us_sniff_r_put_mon_if( void *us_sniff_mon_ref, mblk_t *mp);

Dem Monitorplugin wird neben der Verwaltungsstruktur des Messpunktes eine Kopie, einer den Messpunkt in Up-Stream-Richtung durchlaufenden Message, übergeben.

void us_sniff_close_mon_if( void *us_sniff_mon_ref);

Dem Monitorplugin wird die Freigabe eines zu überwachenden Kanals (repräsentiert durch Referenz auf die Verwaltungsstruktur des Messpunktes) angezeigt.

Tabelle 47: Funktionen der Registrierungsstruktur

6.5.6 Statische Konformitätsanalyse

Zur Auswertung der statischen Konformität wird ein „IFM-Modul“ mit folgendem prinzipiellen Aufbau verwendet:

T es tsystem

C S P - A u to m a t 1M o n i to rD a te n

L A N (T C P )

S U T

S ta c k

M P

IF M

rttif

lib

rttif

lib

T R A C E -L o g

P D U - P a r s e r

P D U - L o g

E v e n t- G e n e r a t o r

C S P - A u to m a t 2

C S P - A u to m a t n

E R R O R - L o g

C S P -C h a n n e l

P D UE v e n ts

C h a n n e l-M a p p e r

IF M - A u s w e rtu n g s ta t is c h e K o n fo rm itä t

Abbildung 70: Struktur IFM

Das IFM-Modul hat folgende Komponenten und Funktionen: IFM Komponente Funktion Rttiflib Interface-Bibliothek zur Übertragung der Monitordaten vom

SUT(System unter Test) zum IFM über TCP/IP TRACE-Log Logdatei zum Protokollieren der unbehandelten Monitordaten PDU-Parser Diese SW-Komponente analysiert die Monitordaten entsprechend den

Anforderungen der statischen Konformität des Messpunktes. Die erkannten PDU-Informationen werden an die SW-Komponenete Event-Generator übergeben.

PDU-Log Die empfangenen PDU-Informationen (Protokoll Data Unit) werden in dieser Logdatei abgelegt.

158

Page 159: Architekturkonzept und Designaspekte einer …elib.suub.uni-bremen.de/publications/dissertations/E-Diss835_dis... · matik der gewachsenen heterogenen Struktur der ... Im zweiten

ERROR-Log Regelverstöße entsprechend der statischen Konformität der Monitordaten werden in der ERROR-Logdatei aufgezeichnet.

Event-Generator Diese SW-Komponente wandelt die übergebenen PDU-Informationen in PDU-Events und übergibt sie dem Channel-Mapper.

Channel-Mapper In dieser SW-Komponente werden die PDU-Events den zuständigen CSP-Kanälen zugeordnet.

Tabelle 48: Komponenten und Funktionen des IFM

6.5.7 Dynamische Konformitätsanalyse

Die Regeln der dynamischen Konformität des Messpunktes werden über mehrere Ebenen gekoppelter CSP-Automaten abgebildet. Die Kopplung der Automaten untereinander und zum IFM erfolgt mit Hilfe von CSP-Channels.

Testsystem

CSP-Autom at 1

IFM

CSP-Autom at 2

CS P-Autom at n

CSP-C hannel

PDUEvents

Channel-M apper

CSP-ChannelCSP-Channel

CSP-Automat 1.1

CSP-C hannelCSP-C hannel

CSP-Automat 1 .2

CSP-Automat 2.1

CSP-Automat 2 .2

CSP-Automat n.1

CSP-Automat n .2

Basisebene virtuelle Ebene

Abbildung 71: Struktur der Bewertungslogik zur dynamischen Konformität

Jeder einzelne CSP-Automat überwacht zustandsbezogen die ihm übergebenen PDU-Ereignisse und leitet die PDU-Ereignisse in bestimmten Transitionen an andere CSP-Automaten weiter. Verstöße gegen die dynamische Konformität werden vom erfassenden CSP-Automat protokolliert.

6.5.8 Ableitung von Prüfanforderungen

Die Prüfanforderungen zur statischen und dynamischen Konformitätsanalyse werden in mehreren Schritten abgeleitet:

Auswertung dynamische Konformität

159

Page 160: Architekturkonzept und Designaspekte einer …elib.suub.uni-bremen.de/publications/dissertations/E-Diss835_dis... · matik der gewachsenen heterogenen Struktur der ... Im zweiten

Analyse der Normentexte – Ableitung von Normenanforderungen: Es werden aus den zugrundeliegenden Normen Normenanforderungen abgeleitet. Dies geschieht indem die Kapitel/Abschnitte/Sätze stichwortartig beschrieben und mit einem Identifikator versehen werden. Anwendbare Anforderungen: Es werden die Normenanforderungen in Beziehung zueinander gesetzt. Dabei kann eine Normenanforderung eine andere deaktivieren, weiter spezifizieren oder überschreiben. Einzelne Normenanforderungen können auch identisch sein. Aus dem Ergebnis werden anwendbare Anforderungen (im Sinne der Konformitätsnachweisstrategie) definiert. Es werden auch die Normenanforderungen identifiziert, die nicht im Rahmen dieser Konformitätsnachweisstrategie prüfbar sind. Die anwendbaren Anforderungen bilden damit eine Teilmenge der Normenanforderungen, die sich aus deren Zusammenfassung und Konkretisierung ergibt. Zu jeder Normenanforderung, die nicht durch eine andere Normenanforderung gelöscht oder überschrieben wurde, wird die resultierende anwendbare Anforderung aufgeführt, in welche diese einfließt. Prüfanforderungen: Es werden aus den anwendbaren Anforderungen Prüfanforderungen (statische und dynamische Konformitätsregeln) abgeleitet. Um die notwendigen Prüfanforderungen lückenlos zu erfassen, kann ein an die FMEA (failure modes and effects analysis) angelehntes Verfahren verwendet werden (siehe [13] Kap. 3.3). Für jede anwendbare Anforderung werden die Fehler identifiziert, die zu einer Verletzung dieser anwendbaren Anforderungen führen. Für jeden Fehler werden die Möglichkeiten aufgeführt, wie sich der Fehler nach außen hin äußert. Diese werden Effekte genannt. Für jeden Effekt wird eine Prüfanforderung definiert, so dass dieser Effekt detektiert werden kann. Die Verletzung einer anwendbaren Anforderung kann sich auf mehrere Arten, d.h. durch die Verletzung verschiedener Prüfanforderungen, äußern. Umgekehrt kann sich auch die Verletzung verschiedener anwendbarer Anforderungen auf die gleiche Art äußern.

6.5.9 Zustandsbezogene Konformitätskriterien

Die Einhaltung der Regeln der dynamischen Konformität (siehe 6.5.7) wird unter anderem in Form von zustandsbezogenen Konformitätskriterien überwacht. Am Beispiel der Prüfstruktur zur Überwachung der dynamischen Konformitätsregeln am Messpunkt unterhalb des Linklayers (aHDLC) des EURORADIO-Protokollstacks wird eine Auswahl an zu-standsbezogenen Konformitätskriterien dargestellt.

6.5.9.1 Struktur der gekoppelten Zustandsautomaten zur Überwachung der dynamischen

Konformitätsregeln

Die folgende Abbildung stellt den prinzipiellen Aufbau der Prüfstruktur zur Überwachung der dynamischen Konformitätsregeln am Messpunkt unterhalb des Linklayers (aHDLC) des EURORADIO-Protokollstacks dar:

160

Page 161: Architekturkonzept und Designaspekte einer …elib.suub.uni-bremen.de/publications/dissertations/E-Diss835_dis... · matik der gewachsenen heterogenen Struktur der ... Im zweiten

T es tsys tem

Z u s t a n d s k r i t e r ie n

dynam ische K on fo rm itä t

P D U E v e n tM o n i to rD a te n

s ta t is c h e K o n fo rm itä t

P D U -E v e n t G e n e ra to r

P D U -F ra m e P a rs e r

E R R O R -L o g

F r a m e E r r o r

S t a te E r r o rD u m p

D u m p c h a c h e

M o m e n ta n -z u s ta n d s a b b ild

P D U E v e n t. . .P D U E v e n t. . . . Counterkriterien

Z e itk r ite r ie n

V e rs to ß g e g e nK o n fo rm i tä t

T 1 * T 2 * T n *V 1 * V 2 * V n *

Ü b e rw a c h u n g L in k s ta tu s Ü b e rw a c h u n g F lu ß k o n t ro lleL in k S n d

T r a n s it io n s b e z o g e n e P r ü fa k t iv i tä te n

. . . .

K o m p o n e n te n z u r Ü b e rw a c h u n g d e r d y n a m is c h e n K o n fo rm itä ts re g e ln

Abbildung 72: Prüfstruktur zur Überwachung der dynamischen Konformitätsregeln

Aus der statischen Konformitätsanalyse des Messpunktes (siehe 6.5.6) werden ‚externe’ Ereignisse (PDU Events) generiert und der dynamischen Konformitätsanalyse zugeführt. Diese wirken auf den oder die jeweiligen für die Analyse des Ereignisses zuständigen Zustandsautomaten ein. Werden durch transitionsbezogene Prüfaktivitäten ‚interne’ Ereignisse generiert, wirken diese als interne Wechselwirkung auf den oder die jeweiligen für die Analyse des Ereignisses zuständigen Zustandsautomaten ein. Zeitkriterien werden durch retriggerbare Timer überwacht. Counterkriterien werden durch zusätzliche Zustandsvariablen repräsentiert. Wird durch die Prüfstruktur ein Verstoß gegen eine Konformitätsregel detektiert, wird die Über-wachung auf Konformität für die beteiligten HDLC-Instanzen abgebrochen (EXEPTION) und der Konformitätsverstoß protokolliert. Im Folgenden wird am Beispiel der Zustandsüberwachung des Linkstatus und der sendeseitigen Flusskontrolle das Prinzip für die Umsetzung der notwendigen Prüfbedingungen dargestellt. Die folgende Tabelle gibt einen Überblick der in den aufgeführten transitionsbezogenen Prüf-kriterien verwendeten Zustandsvariablen: Zustandsvariable Bedeutung n_snd Übertragungswiederholungen bezüglich unbestätigter SABM snd. n_rcv Übertragungswiederholungen bezüglich unbestätigter SABM rcv. UNA Ältester unbestätigter Frame. NXT Nächster zu sendender Frame. NR Quittungsnummer aus empfangenen I/S-Frame. NS Quittungsnummer des gesendeten I-Frame.

Tabelle 49: Zustandsvariablen der Prüfstruktur

Die folgende Tabelle gibt einen Überblick der Protokollüberwachungsparameter:

161

Page 162: Architekturkonzept und Designaspekte einer …elib.suub.uni-bremen.de/publications/dissertations/E-Diss835_dis... · matik der gewachsenen heterogenen Struktur der ... Im zweiten

Protokollüberwachungs- Bedeutung parameter N2 zulässige Anzahl der Übertragungswiederholungen. T3* Timer 3 zzgl. Korrekturoffset (Bearbeitungszeit, Bitrepräsentanzzeit) k Windowsize

Tabelle 50: Protokollüberwachungsparameter der Prüfstruktur

6.5.9.2 Zustandsüberwachung Linkstatus HDLC

Die Zustandsüberwachung des Linkstatus HDLC ist durch folgende Zustände gekennzeichnet: Zustände Linkstatus HDLC

Bedeutung

CLSD Der Monitorkanal ist geschlossen. I Der Monitorkanal ist geöffnet. Es wurden noch keine PDU`s detektiert. CIPA Die HDLC-Instanz oberhalb des MP hat den Aufbau des HDLC-Links initiert. (aktiv) CIPP Die HDLC-Instanz oberhalb des MP hat die Aufforderung zum Aufbau des HDLC-Links

erhalten. (passiv) C Der HDLC-Link ist etabliert. (Datenübertragungsphase) DIPA Die HDLC-Instanz oberhalb des MP hat den Abbau des HDLC-Links initiert. (aktiv) DIPP Die HDLC-Instanz oberhalb des MP hat die Aufforderung zum Abbau des HDLC-Links

erhalten. (passiv) CONTNE Beide HDLC-Instanzen des HDLC-Links stehen in Konkurrenzsituation. DM Der HDLC-Link ist vollständig abgebaut.

Tabelle 51: Zustände der Linkstatusüberwachung

Folgende Ereignisse wirken auf die Zustandsüberwachung des Linkstatus HDLC ein: Ereignis Bedeutung open mon Der Monitorkanal wird geöffnet. close mon Der Monitorkanal wird geschlossen. SABME snd Die HDLC-Instanz oberhalb des MP sendet einen SABME-Frame. SABME rcv Die HDLC-Instanz oberhalb des MP empfängt einen SABME-Frame. UA snd Die HDLC-Instanz oberhalb des MP sendet einen UA-Frame. UA rcv Die HDLC-Instanz oberhalb des MP empfängt einen UA-Frame. DISC snd Die HDLC-Instanz oberhalb des MP sendet einen DISC-Frame. DISC rcv Die HDLC-Instanz oberhalb des MP empfängt einen DISC-Frame. DM snd Die HDLC-Instanz oberhalb des MP sendet einen DM-Frame. DM rcv Die HDLC-Instanz oberhalb des MP empfängt einen DM-Frame.

Tabelle 52: Ereignisse der Linkstatusüberwachung

6.5.9.2.1 Zustandsübergangsmatrix

Die folgende Tabelle definiert zulässige ereignisabhängige Zustandsübergänge der Linkstatusüber-wachung HDLC:

162

Page 163: Architekturkonzept und Designaspekte einer …elib.suub.uni-bremen.de/publications/dissertations/E-Diss835_dis... · matik der gewachsenen heterogenen Struktur der ... Im zweiten

Zustandsübergänge Ausgangszustand Linkstatus HDLC CLSD I CIPA CIPP C DIPA DIPP CONTNE DM Folgezustand CLSD close mon close mon close mon close mon close mon close mon close mon close mon

I open mon DISC rcv

CIPA SABME snd SABME snd DM rcv

SABME snd SABME snd

CIPP SABME rcv SABME rcv SABME rcv SABME rcv SABME rcv SABME rcv SABME rcv

C UA rcv UA snd

DIPA DISC snd DISC snd DISC snd

DIPP DISC rcv DISC rcv DISC rcv DISC rcv

CONTNE SABME rcv DISC rcv

DISC rcv

DM UA snd DM snd

DM snd UA snd UA rcv DISC rcv DM snd

Tabelle 53: Zustandsübergänge der Linkstatusüberwachung

6.5.9.2.2 Transitionsbezogene Prüfaktivitäten

Folgende transitionsbezogenen Prüfaktivitäten werden bei Vorliegen der entsprechenden Voraus-setzung (Zustand des Linkstatus und einwirkendes Ereignis) zur Konformitätsprüfung ausgeführt: Voraussetzung CLSD Ereignis Open mon Prüfaktivität /* Rücksetzen aller Zustandsvariablen*/

n_snd = 0; n_rcv = 0;

Voraussetzung I | CIPA | C Ereignis SABM snd Prüfaktivität n_snd++;

IF (n_snd > N2) THEN EXEPTION; Voraussetzung I | CIPP | C | DIPP | CONTNE | DM Ereignis SABM rcv Prüfaktivität n_rcv++;

IF (n_rcv > N2) THEN EXEPTION; Voraussetzung CIPA Ereignis UA rcv Prüfaktivität n_snd = 0; Voraussetzung CIPP Ereignis UA snd Prüfaktivität n_rcv = 0; Voraussetzung I Ereignis SABME snd Prüfaktivität aktivate(T3*); Voraussetzung I Ereignis SABME rcv Prüfaktivität activate(T3*);

163

Page 164: Architekturkonzept und Designaspekte einer …elib.suub.uni-bremen.de/publications/dissertations/E-Diss835_dis... · matik der gewachsenen heterogenen Struktur der ... Im zweiten

Voraussetzung CIPA

164

Ereignis UA rcv Prüfaktivität deactivate(T3*); Voraussetzung CIPP Ereignis UA snd Prüfaktivität deactivate(T3*); Voraussetzung C Ereignis DISC snd Prüfaktivität aktivate(T3*); Voraussetzung C Ereignis DISC rcv Prüfaktivität activate(T3*); Voraussetzung I|CIPA|CIPP|C|DIPA|DIPP|CONTNE|DM Ereignis close mon Prüfaktivität deactivate(T3*); Voraussetzung CIPA Ereignis UA rcv Prüfaktivität put(open snd);

put(open rcv); Voraussetzung CIPP Ereignis UA snd Prüfaktivität put(open snd);

put(open rcv); Voraussetzung C Ereignis close mon|SABME snd|SABME rcv|DISC snd|DISC rcv Prüfaktivität put(close snd);

put(close rcv);

6.5.9.3 Zustandsüberwachung sendeseitige Flusskontrolle

Die Zustandsüberwachung der sendeseitigen Flusskontrolle (sendeseitig bezüglich der HDLC-Instanz oberhalb des MP) ist durch folgende Zustände gekennzeichnet: Zustände sendeseitige Flußkontrolle HDLC

Bedeutung

SND_CLSD Die Prüfinstanz zur sendeseitigen Flusskontrolle ist deaktiviert. SND_READY Die sendeseitige Flusskontrolle ist sendebereit. SND_REJ Die sendeseitige Flusskontrolle befindet sich im Fehlerkorrekturmodus. SND_BUSY Die Windowsize der sendeseitigen Flusskontrolle ist ausgeschöpft.

Tabelle 54: Zustände der sendeseitigen Flusskontrolle

Folgende Ereignisse wirken auf die Zustandsüberwachung der sendeseitigen Flusskontrolle ein:

Page 165: Architekturkonzept und Designaspekte einer …elib.suub.uni-bremen.de/publications/dissertations/E-Diss835_dis... · matik der gewachsenen heterogenen Struktur der ... Im zweiten

Ereignis Bedeutung

165

/* NS im Fenster ? – UNA <= NS <= NXT */

open snd Die Prüfinstanz zur sendeseitigen Flusskontrolle wird aktiviert. close snd Die Prüfinstanz zur sendeseitigen Flusskontrolle wird deaktiviert. I snd Die HDLC-Instanz oberhalb des MP sendet einen I-Frame. RNR rcv Die HDLC-Instanz oberhalb des MP empfängt einen RNR-Frame. SREJ rcv Die HDLC-Instanz oberhalb des MP empfängt einen SREJ-Frame. ACK rcv Die HDLC-Instanz oberhalb des MP empfängt eine NR aus I/S-Frame. FULL (intern) Generierung infolge Prüfbedingung (bei I-snd, wenn Windowsize erreicht ist). CONT (intern) Generierung infolge Prüfbedingung (bei ACK rcv, wenn ACK.NR im Sendefenster liegt).

Tabelle 55: Ereignisse der sendeseitigen Flusskontrolle

6.5.9.3.1 Zustandsübergangsmatrix

Die folgende Tabelle definiert die zulässigen ereignisabhängigen Zustandsübergänge der sende-seitigen Flusskontrollüberwachung bezüglich der HDLC-Instanz oberhalb des MP: Zustandsübergänge Ausgangszustand sendeseitige Flusskontrolle HDLC SND_CLSD SND_READY SND_REJ SND_BUSY Folgezustand SND_CLSD close snd close snd close snd

SND_READY open snd CONT ACK rcv I snd

CONT CONT

SND_REJ SREJ rcv FULL ACK rcv SREJ rcv I snd

SREJ rcv

SND_BUSY FULL RNR rcv

ACK rcv RNR rcv

Tabelle 56: Zustandsübergänge der sendeseitigen Flusskontrolle

6.5.9.3.2 Transitionsbezogene Prüfaktivitäten

Folgende transitionsbezogenen Prüfaktivitäten werden bei Vorliegen der entsprechenden Voraus-setzung (Zustand der sendeseitigen Flusskontrollüberwachung bezüglich der HDLC-Instanz ober-halb des MP und einwirkendes Ereignis) zur Konformitätsprüfung ausgeführt: Voraussetzung SND_CLSD Ereignis open snd Prüfaktivität /* Rücksetzen aller Zustandsvariablen*/

UNA = 0; NXT = 0;

Voraussetzung SND_READY|SND_REJ|SND_BUSY Ereignis I snd Prüfaktivität /* Fenster nachführen */

IF( NS == NXT) THEN { /* NXT Aktualisierung */ NXT = (NS+1)%128 ; };

Page 166: Architekturkonzept und Designaspekte einer …elib.suub.uni-bremen.de/publications/dissertations/E-Diss835_dis... · matik der gewachsenen heterogenen Struktur der ... Im zweiten

IF( !(( NS – UNA) < ( NXT – UNA)) ) THEN EXEPTION; /* Flusskontolle pruefen */ IF( NXT == (( UNA+k)%128)) THEN { put(FULL); };

Voraussetzung SND_READY|SND_REJ|SND_BUSY Ereignis ACK rcv Prüfaktivität /* NR im Fenster ? – UNA <= NR <= NXT */

IF ( !(( NR – UNA) <= ( NXT – UNA))) THEN EXEPTION; /* UNA Aktualisierung – UNA < NR <= NXT */ IF ((( NR – UNA) < ( NXT – UNA)) || ( NR==NXT)) THEN { UNA = NR; put(CONT); };

6.5.9.4 Überwachung von Zeitkriterien

Innerhalb der dynamischen Konformitätsanalyse werden zeitlich instabile Protokollzustände durch Timer überwacht. Transitionsbezogene Prüfaktivitäten haben die Möglichkeit Überwachungstimer zu aktivieren, zu restarten oder zu deaktivieren. Bei der Festlegung der Überwachungszeiten sind neben den normspezifischen Festlegungen Aufschläge für die systembedingten Verzögerungszeiten (z.B. Bitrepräsentanzzeit auf seriellem Kanal, PDU-Verarbeitungszeit in den HDLC-Instanzen) zu berücksichtigen. Ein Ablauf eines Überwachungstimers ist als ein Verstoß gegen eine Konformitätsregel zu werten. Die Überwachung auf Konformität für die beteiligten HDLC-Instanzen wird auch in diesem Fall abgebrochen.

166

Page 167: Architekturkonzept und Designaspekte einer …elib.suub.uni-bremen.de/publications/dissertations/E-Diss835_dis... · matik der gewachsenen heterogenen Struktur der ... Im zweiten

167

Analyse des Protokolldatenstromes des zu testenden Kommunikationsstacks beruht. Die Protokoll-konformität wird dabei messpunktbezogen hinsichtlich statischer Bedingungen (Wohlgeformtheit

7 Zusammenfassung und Ausblick

7.1 Zusammenfassung

In dieser Arbeit wird, orientiert an den Phasen der Systementwicklung (Anforderung – Architektur – Design – Test/Integration), der Entwurf einer Kommunikationsplattform für verteilte Bahn-anwendungen vorgestellt. Der Architekturentwurf der Kommunikationsplattform ist sowohl für die fahrzeugseitige, als auch für die streckenseitige Anwendung als signaltechnisch nichtsicheres Gateway geeignet. Die Koordination des Kommunikationsbedarfs der unterschiedlichen bahntechnischen Anwendungen über eine vorgeschaltete Gatewayinstanz stellt ein wesentliches Entwurfsmerkmal dar. Die konsequente Trennung von signaltechnisch nichtsicheren und sicheren Funktionalitäten und die weitestgehende Entkopplung von Kommunikationsfunktionalitäten aus den bahntechnischen Anwendungen, macht die Nutzung standardisierter Kommunikations-infrastrukturen (wie z.B. GSM/R) und Technologien aus dem Bereich der verteilten Kommunikation möglich. Durch diese Vorgehensweise werden die einzelnen Bahnanwendungen in ihrer Komplexität bezüglich der Übertragungsfunktionalität erheblich reduziert. Durch die Diensteintegration der vorgelagerten Gatewayfunktionalität kann die Ausnutzung der beschränkten Übertragungskapazität der vorhanden Kommunikationsinfrastruktur erheblich gesteigert werden. Die hohen Anforderungen an die Zuverlässigkeit des Gesamtsystems werden durch die Nutzung spezieller ausfalltoleranter Koppelprotokolle und die Verschaltung in redundanten Gatewayclustern erfüllt. Der Vorteil in der Verwendung spezieller Koppelprotokolle besteht in der Kom-plexitätsreduktion auf der signaltechnisch sicheren Seite (im Vergleich zu den EURORADIO-Protokollen). Zur Umsetzung von Vermittlungs- und Protokollfunktionalitäten der vorgeschalteten Gatewayinstanz wurde innerhalb der Kommunikationsplattform ein im USER SPACE ablaufendes Framework mit speziellen Betriebsmitteln entworfen:

• Kapselung von Multiple-Wait- und Zeit-Ereignissteuerung (siehe 5.2.2 und 5.2.3) • nachrichtenorientierte USER STREAM Ablaufumgebung (siehe 5.3.3) • interpretatives Zustandsautomatenmodell (siehe 5.3.1) • Funktionen zur Manipulation variabler Primitivenparameter (siehe 5.3.2).

Zur Validierung der Kommunikationsplattform (Anwendung in FFB-Sytemen) wurde folgende Hardware-in-the-Loop Teststrategie angewandt: Die Tests beruhen auf der Abwicklung von Kommunikationsszenarien, welche das Kommunikationsverhalten der FFB-Applikation nachbilden. Diese Szenarien werden von einer Testumgebung stimuliert und automatisiert geprüft. Neben der Prüfung der Korrektheit der ausgetauschten Daten und der Konsistenz der am Nutzerinterface des Prüflings empfangenen Protokollprimitiven, können auch die Transfers an den Übergängen zwischen den Protokollschichten beobachtet werden. Hierzu wurden die Protokollstacks mit Hilfsmodulen zur Realisierung von Messpunkten erweitert. Die Szenarien können durch Konfiguration hinsichtlich der Anzahl der Prüflinge und des Lastverhaltens (Anzahl virtueller Verbindungen, Dichte der Anforderungen zum Verbindungsaufbau, Menge der übertragenen Daten) modifiziert werden. Für den Nachweis der Konformität wurde ein Konzept entwickelt, welches auf der schichtenweisen

Page 168: Architekturkonzept und Designaspekte einer …elib.suub.uni-bremen.de/publications/dissertations/E-Diss835_dis... · matik der gewachsenen heterogenen Struktur der ... Im zweiten

der Telegramme) und dynamischer Bedingungen (Korrektheit des implementierten Zustands-verhaltens) geprüft. Mit Hilfe der in dieser Arbeit vorgestellten Kommunikationsplattform können die beschriebenen systemtechnischen Gesamtanforderungen (siehe 2) abgedeckt werden. In den folgenden Abschnitten wird ein Ausblick über mögliche Erweiterungen der Gatewayfunktionalität zur Vereinfachung der Handhabung bei Einsatz in großen verteilten Anwendungen gegeben. Im Abschnitt 7.3 werden Erweiterungsmöglichkeiten der Konformitäts-nachweisstrategie dargestellt.

7.2 Zusätzliche Gatewayfunktionalitäten

7.2.1 Verteilung von Managementinformationen

Bei der Verwendung der Kommunikationsplattform in FFB-Systemen auf dem Streckennetz der Deutschen Bahn ergibt sich das Problem des Managements großer offener mobiler Kommuni-kationsstrukturen. Die folgende Abbildung zeigt einen Lösungsansatz zur Verteilung von Manage-ment-Informationen unter Nutzung der Kanalpriorität des EURORADIO-Protokollstacks, ohne die hochprioren Zugsicherungsapplikationen zu beeinflussen.

fester Kommunikationsteilnehmer 1

fester Kommunikationsteilnehmer 1

Managementinformationen

Nachbarteilnehmer

fester Kommunikationsteilnehmer 2

mobiler Kommunikationsteilnehmer

Managementinformationen

fester Kommunikationsteilnehmer 1

mobiler Kommunikationsteilnehmer

fester Kommunikationsteilnehmer 2

Managementinformationen

Nachbarteilnehmer

fester Kommunikationsteilnehmer 3

Managementinformationen

Nachbarteilnehmer

fester Kommunikationsteilnehmer 4

Managementinformationen

Nachbarteilnehmer

fester Kommunikationsteilnehmer 5

Managementinformationen

Nachbarteilnehmer

fester Kommunikationsteilnehmer 6

Managementinformationen

Nachbarteilnehmer

fester Kommunikationsteilnehmer 7

Managementinformationen

Nachbarteilnehmer

fester Kommunikationsteilnehmer 2

fester Kommunikationsteilnehmer 1

fester Kommunikationsteilnehmer 3

fester Kommunikationsteilnehmer 6

fester Kommunikationsteilnehmer 3 fester Kommunikationsteilnehmer 4 fester Kommunikationsteilnehmer 5

fester Kommunikationsteilnehmer 2

fester Kommunikationsteilnehmer 4

fester Kommunikationsteilnehmer 6

fester Kommunikationsteilnehmer 3

fester Kommunikationsteilnehmer 5fester Kommunikationsteilnehmer 4

fester Kommunikationsteilnehmer 6

fester Kommunikationsteilnehmer 2

fester Kommunikationsteilnehmer 3

fester Kommunikationsteilnehmer 7

fester Kommunikationsteilnehmer 7

fester Kommunikationsteilnehmer 6

fester Kommunikationsteilnehmer 2

fester Kommunikationsteilnehmer 3

fester Kommunikationsteilnehmer 6

Managementinformationen

fester Kommunikationsteilnehmer 3

fester Kommunikationsteilnehmer 4

fester Kommunikationsteilnehmer 5

mobiler Kommunikationsteilnehmer

Managementinformationen

fester Kommunikationsteilnehmer 2

fester Kommunikationsteilnehmer 3

fester Kommunikationsteilnehmer 6

fester Kommunikationsteilnehmer 7

zentrale Informationsbasis

Managementinformationen

fester Kommunikationsteilnehmer 5

fester Kommunikationsteilnehmer 6

fester Kommunikationsteilnehmer 7

fester Kommunikationsteilnehmer 1

fester Kommunikationsteilnehmer 2

fester Kommunikationsteilnehmer 3

fester Kommunikationsteilnehmer 4

Abbildung 73: Verteilung von Managementinformationen auf mobile Kommunikationsteilnehmer

Sämtliche Managementinformationen des Gesamtsystems sind in der zentralen Informationsbasis streckenseitig hinterlegt. Jeder ortsfeste Kommunikationsteilnehmer hat Zugriff auf die zentrale Informationsbasis bzw. stellt einen Teil dieser (dann dezentral organisierten) Informationsbasis dar.

Prinzip zur Verteilung vonManagementinformationen

168

Page 169: Architekturkonzept und Designaspekte einer …elib.suub.uni-bremen.de/publications/dissertations/E-Diss835_dis... · matik der gewachsenen heterogenen Struktur der ... Im zweiten

Jeder ortsfeste Kommunikationsteilnehmer stellt neben seinen Managementinformationen auch die Managementinformationen der ortsfesten Nachbarn an der Schnittstelle zu mobilen Kommuni-kationsteilnehmern zur Verfügung. Jeder noch nicht verbundene mobile Kommunikationsteilnehmer verfügt über fest vorgegebene, systemweit geltende Managementinformationen. Mit Hilfe dieser Informationen ist der mobile Kommunikationsteilnehmer in der Lage, die für seinen Aufenthaltsort notwendigen Management-informationen von der zentralen Informationsbasis über Hilfsverbindungen abzurufen. Auf Basis der Managementinformationen kann der mobile Teilnehmer den gewünschten ortsfesten Kommunikationspartner erreichen. Die Zugsicherungsapplikationen können daraufhin Daten aus-tauschen. Im allgemeinen sind die Zugsicherungsapplikationen so dimensioniert, dass durchschnitt-lich nur ein Teil der Nutzdatenkanalkapazität benötigt wird. Der Datenübertragungsbedarf stößt nur bei bestimmten betrieblichen Situationen an die Nutzdatenkanalkapazität (z.B. bei Fahrprofilup-date). Durch diese Auslastungscharakteristik der höherprioren Nutzdatenkanäle und die prioritätsge-steuerten Multiplexmechanismen des EURORADIO-Protokollstacks ist es möglich, niederpriore Managementinformationen quasi im Hintergrund zu übertragen. Somit wird erreicht, dass jeder mobile Kommunikationsteilnehmer über die Managementinfor-mationen seines ortsfesten Kommunikationspartners, sowie dessen Nachbarn verfügt. Beim Ver-bindungsaufbau zum Wechsel des ortsfesten Kommunikationspartners kann von vorliegenden Managementinformationen für die gewünschte Übertragungsstrecke ausgegangen werden. Eine Hilfsverbindung mit zentralen Informationsbasen wird nur in Ausnahmesituationen benötigt.

7.2.1.1 Kommunikationsapplikation zum dynamischen Adressmanagement

Eine Anwendung von im Hintergrund ladbaren Managementinformationen stellt das dynamische Adressmanagement als Kommunikationsapplikation der Kommunikationsplattform dar. Die folgende Abbildung zeigt die Informationsflüsse zwischen den Komponenten.

169

Page 170: Architekturkonzept und Designaspekte einer …elib.suub.uni-bremen.de/publications/dissertations/E-Diss835_dis... · matik der gewachsenen heterogenen Struktur der ... Im zweiten

mobiler Kommunikationsteilnehmer (Kommunikationsplattform)

Kommunikationsgateway

KoppelstackAddressmanagement

Vermittlungskern(Transferkern)

EURORADIOProtokollstack

local directory

Kommunikationsapplikationdynamisches Adressmanagement(Updateprozess Informationsziel)

statische Adressmanagementinfo

dynamische Adressmanagementinfo

KoppelstackZugsicherung

zur Zugsicherungsapplikation

ortsfester Kommunikationsteilnehmer (Kommunikationsplattform)

Kommunikationsgateway

KoppelstackAddressmanagement

Vermittlungskern(Transferkern)

EURORADIOProtokollstack

Management-Informationsbasis

Kommunikationsapplikationdynamisches Adressmanagement(Updateprozess Informationquelle)

AdressmanagementinfoNachbarteilnehmer

AdressmanagementinfoKommunikationsplattform

KoppelstackZugsicherung

zur Zugsicherungsapplikation

zur zentralenInformationsbasis

zumNachbarteilnehmer

nied

erpr

iore

r Upd

atek

anal

höhe

rerp

riore

r Zug

sich

erun

gska

nal

Abbildung 74: Informationsflüsse zum dynamischen Adressmanagement

Das Local Directory stellt eine lokale Datenbasis zur Ermittlung von Netzadressvarianten des in der Applikations-ETCS-Adresse festgelegten Kommunikationsziels dar. In kleineren Systemen enthält das Local Directory eines mobilen Kommunikationsteilnehmers alle Netzadressvarianten aller möglicher Kommunikationsteilnehmer. Beim dynamischen Adressmanagement besteht der statische Teil nur aus einer kleinen statischen Datenbasis (Netzadressvarianten zur zentralen Informations-basis). Alle andern Netzadressvarianten werden über die Kommunikationsapplikation zum dyna-mischen Adressmanagement (Updateprozess) über niederpriore Nutzdatenkanäle von ortsfesten Kommunikationsteilnehmern nachgeladen. Die ortsfesten Kommunikationsteilnehmer realisieren ein Informationsabgleich mit den Nachbar-teilnehmern und der zentralen Informationsbasis.

7.2.1.2 Kommunikationsapplikation zum dynamischen Schlüsselmanagement

Signaltechnisch sichere Zugsteuerungsapplikationen, welche den EURORADIO-Protokollstack nutzen, verwenden zur Abwehr von systematischen Störangriffen symmetrische kryptographische Verfahren. Dadurch muss jeder Kommunikationsteilnehmer für alle Kommunikationspartner, mit denen der Kommunikationsteilnehmer Kommunikationsbeziehungen aufnehmen können muss,

dynamisches Adressmanagement

170

Page 171: Architekturkonzept und Designaspekte einer …elib.suub.uni-bremen.de/publications/dissertations/E-Diss835_dis... · matik der gewachsenen heterogenen Struktur der ... Im zweiten

kryptographische Schlüssel lokal vorhalten. Die Anzahl der möglichen Kommunikations-beziehungen und damit die Anzahl der vorzuhaltenden kryptographischen Schlüssel wächst mit der Anzahl der Kommunikationsteilnehmer überproportional. Werden die kryptographischen Schlüssel mit Transferschlüsseln verschlüsselt, können diese Informationen als im Hintergrund ladbare Managementinformationen aufgefasst werden. Durch die zeitliche Entkopplung und ortsbezogene Selektion der dynamisch im Hintergrund ladbaren, kryptographischen Schlüsselinformation wird die Setupphase der signaltechnisch sicheren Applikation nicht verlängert.

7.2.2 HTTP – basierte Ansteuerung

Als MMI für Projektierungs- und Maintenanceaktivitäten wird bei der Kommunikationsplattform eine WEB-Browser basierte Lösung angewendet. Als Schnittstelle zur Ansteuerung der Projektierungsscripts wird das CGI-Interface eines HTTP-Servers verwendet. Die benötigten Projektierungsparameter werden über HTTP-Formulare abgefragt und als MIME-kodierte Para-meter an Perl-Scripts zur Parameter-Dekodierung übergeben. Alle erfolgten Projektierungsmani-pulationen werden in XML-codierten Datenstrukturen abgelegt (siehe auch [32]). Die eigentliche Projektierungsmanipulationen erfolgt über Shell-Scripts. Die Bereitstellung von Trace-Information, der upload-Prozess von Trace und Projektierungsinformationen sowie der download-Prozss von vorgefertigten Projektierungsinformationen wird ebenfalls über CGI-Scriptaufrufe gesteuert. Spezielle Clientfunktionen werden als JAVA-Applet (Beispielsweise JAVA-Telnet) zur Verfügung gestellt. Die nachfolgende Abbildung stellt den prinzipiellen Aufbau dar.

Clientsystem (Anwender)

automatischerzeugteHTML-Datei

HTTPD

Kommunikationsplattform

HTTP-Browser

HTML-DateimitFormular

WWW-Server

CGI-Interface

Perl-Script-Ebene

Shell-Script-Ebene

Local-Directory-Management

Betriebssystem-Management

Content-Parameter-Adaption

HTML-Dateimit

Telnet-Applikation Telnet-Server

TELNETD

LD-Script-Interface OS-Script-Interface

JAVA-TelnetApplet

Formular(Request)HTML

HTMLHTML

STDIN STDOUT

script.sh(param) script.sh(param)

script.pl

scrip

t.sh

HTM

L

scrip

t.sh

HTM

L

script.sh(param) STDOUT script.sh(param) STDOUT

TelnetTelnet

Abbildung 75: Struktur HTTP-basierte Ansteuerung

LD – Script – Interface

171

Page 172: Architekturkonzept und Designaspekte einer …elib.suub.uni-bremen.de/publications/dissertations/E-Diss835_dis... · matik der gewachsenen heterogenen Struktur der ... Im zweiten

Die folgende Tabelle zeigt die prinzipiell notwendigen Funktionen zum Management der Local Directory Datenbasis (siehe 5.4.4). Script Parameter Beschreibung ld_set_route_entry ETCS_ADDR;

ROUTER_ETCS_ADDR

Im Local Directory wird ein Router-Eintrag zu einem bestimmten Kommunikationspartner vermerkt. Falls ein Router-Eintrag bereits vermerkt war, wird dieser überschrieben.

ld_set_telno_entry ETCS_ADDR; TELNO

Im Local Direktory wird ein Netzvektoreintrag zu einem gegebenen GSM/R Kommunikationspartner ergänzt.

ld_set_ip_entry ETCS_ADDR; CALL_IP

Im Local Direktory wird ein Netzvektoreintrag zu einem gegebenen LAN Kommunikationspartner ergänzt.

ld_erease_entry ETCS_ADDR Alle im Local Direktory vermerkten Netzvektoreinträge zu einem gegebenen Kommunikationspartner werden gelöscht.

Tabelle 57: Managementfunktionen Local Directory

OS – Script – Interface Die folgende Tabelle zeigt die prinzipiell notwendigen Funktionen zum Management der projektierbaren Basiseigenschaften des Betriebssystems der Kommunikationsplattform. Script Parameter Beschreibung os_set_root_fs_rw - Das Root – Filesystem des FBS-Rechners wird auf

READ/WRITE gesetzt und steht nach dem Booten beschreibbar zur Verfügung.

os_set_root_fs_ro - Das Root – Filesystem des FBS-Rechners wird auf READONLY gesetzt und ist nach dem Booten gegen Inkonsistenz geschützt.

os_reboot - Das System wird gebootet.

172

Page 173: Architekturkonzept und Designaspekte einer …elib.suub.uni-bremen.de/publications/dissertations/E-Diss835_dis... · matik der gewachsenen heterogenen Struktur der ... Im zweiten

Script Parameter Beschreibung

173

• Stimulation des SUT entsprechend Regelverhalten von FFB-Applikationen

os_set_lan IF_Nr; Hostname; Host-IP-Adresse; Netmask (optional)

Es werden abhängig von der IF_Nr unterschiedliche Manipulationen ausgeführt. IF_Nr = 0: Der übergebene Hostname wird mit der Host-IP-Adresse in /etc/hosts vermerkt. Ein evtl. schon vorhandener Eintrag zum übergebenen Hostnamen wird überschrieben. IF_Nr = 1: Der übergebene Hostname wird mit der Host-IP-Adresse in /etc/hosts vermerkt. Ein evtl. schon vorhandener Eintrag zum übergebenen Hostnamen wird überschrieben. Es wird der übergebene Hostname als Nodename (/etc/nodename) des Systems verwendet. Das erste LAN-Interface erhält die übergebene Host-IP-Adresse, sowie, wenn übergeben, die Netzmaske. IF_Nr >1: Der übergebene Hostname wird mit der Host-IP-Adresse in /etc/hosts vermerkt. Ein evtl. schon vorhandener Eintrag zum übergebenen Hostnamen wird überschrieben. Das n. LAN-Interface erhält die übergebene Host-IP-Adresse, sowie, wenn übergeben, die Netzmaske.

os_set_lan_route_entry Host|Net; Destination; Gateway-IP-Adresse; Metric (optional)

Die übergebenen Informationen werden als Routeeintrag vermerkt.

os_reset_entrys - Das System wird bezüglich der Routeeinträge, LAN-IF – Parameter und Hosteinträge in den Auslieferungszustand zurückgesetzt.

os_get_param - Es werden die im System konfigurierten Einträge ausgegeben.

Tabelle 58: Managementfunktionen Systemprojektierung

7.3 Erweiterung der Konformitätsnachweisstrategie

Der im Rahmen der Systemvalidierung der Kommunikationsplattform durchgeführte Konformitätsnachweis entspricht der unter Abschnitt 6.5 vorgestellten Nachweisstrategie. Um die Komplexität gering zu halten, wurden die Testaktivitäten mit folgenden, von einander unabhängigen Komponenten, durchgeführt:

Page 174: Architekturkonzept und Designaspekte einer …elib.suub.uni-bremen.de/publications/dissertations/E-Diss835_dis... · matik der gewachsenen heterogenen Struktur der ... Im zweiten

• Simulation des unterlagerten Kanalmodells entsprechend der zugesicherten QoS-Eigenschaften auf Basis deterministischer Fehlermuster

• Messpunktbezogene Analysesysteme (Konformitätsorakel). Die Unabhängigkeit der einzelnen Testsystemkomponenten, der pseudo-stochastische Charakter des simulierten Kanalmodells und die unsynchronisierte Simulation des Applikationsverhaltens setzten dem Grad der Testabdeckung und der Reproduzierbarkeit von Konformitätsverletzungen gewisse Grenzen. Durch die Koordination von Stimulation, Fehlersimulation und Konformitätsmonitor lässt sich die Durchführung von Konformitätsnachweisen gegenüber unkoordinierter (stochastischer) Betriebsweise optimieren. Eine Vereinfachung des abgeleiteten Regelwerkes und damit eine Verkleinerung des Analyse-Testsystems bietet die Möglichkeit der Integration in das SUT. Durch eine solche Integration kann die Kommunikationsplattform um eine Diagnosefunktionalität erweitert werden, welche ein adaptives Tracen der Kommunikationsaktivitäten ermöglicht. Ein solches Kommunikationssystem kann auch seltene und nur im Feldeinsatz auftretende Fehlerbilder als Tracedaten über lange Zeiträume erfassen. Der Transport von Applikationsdaten durch die Kommunikationsplattform macht ein adaptives Tracen von Applikationsdaten bzw. die Anwendung des Konformitätsnachweiskonzeptes auf Applikationsniveau möglich. Für einen umfassenden Konformitätsnachweis auf Applikationsniveau ist das koordinierte Monitoring weiterer, unterschiedlich ausgeprägter Schnittstellen (z.B. Ortung) notwendig.

174

Page 175: Architekturkonzept und Designaspekte einer …elib.suub.uni-bremen.de/publications/dissertations/E-Diss835_dis... · matik der gewachsenen heterogenen Struktur der ... Im zweiten

175

8 Begriffe und Abkürzungen Begriff Erläuterung / Referenz Antwort (response)

Die Antwort ist ein Dienstelement, das vom Dienstbenutzer als Antwort auf ein vorhergehendes Anzeige-Dienstelement verwendet wird.

Anzeige (indication)

Die Anzeige ist ein Dienstelement, das vom Diensterbringer zum Aufruf einer Funktion beim Dienstbenutzer verwendet wird.

API Application Programmer Interface ATM Asynchronous Transfer Mode; http://www.atmforum.com ATO Automatik Train Operation

(signaltechnisch nichtsichere Zugsteuerungsapplikation) ATP Automatik Train Protection

(signaltechnisch sichere Zugsicherungsapplikation) Authentizität Authentizität ist die Eigenschaft einer Information, die zeigt, dass die

Information gültig ist und durch die angegebene Quelle erzeugt wurde. Bestätigung (confirm)

Die Bestätigung ist ein Dienstelement, das vom Diensterbringer als Antwort auf ein vorhergehendes Anforderungs-Dienstelement verwendet wird.

CENELEC Europäisches Komitee für Elektrotechnische Normung; http://www.cenelec.org

CBC-MAC CBC-MAC ist eine kryptographische Berechnungsfunktion, die als Eingangsdaten einen den miteinander kommunizierenden Komponenten bekannten geheimen Schlüssel K Initialisierungsvektor IV und einen beliebigen String der Nutzdaten X verwendet.

Datagrammdienst Low Level Dienst zur physikalischen Übertragung von Datenblöcken. Die Auswahl der jeweiligen konkreten Ausprägung des Datagrammdienstes sollte sich nach dem verwendeten Übertragungsmedium, den Hardwarekomponenten und den Eigenschaften des Betriebssystems richten. In Senderichtung an der Schnittstelle entgegen genommene Nachrichten, so genannte Datagramme erreichen den Empfänger auf der Gegenstelle entweder vollständig oder überhaupt nicht. Der Datagrammdienst enthält Komponenten, die beim Empfang eine Erkennung von Übertragungsfehlern ermöglichen. Während der Übertragung zerstörte Datagramme werden von diesem Dienst verworfen.

Datenelement Ein Datenelement ist eine Nachricht oder ein Teil einer Nachricht. Datenelemente werden zwischen Schichten oder zwischen Partnerinstanzen ausgetauscht.

DIBMOF DiensteIntegrierender BahnMobilFunk deutsches Forschungsprojekt in den Jahren 1989 –1996; BMBF(Bundesministerium für Bildung und Forschung) Fördernummer: 19 R 9404 A

Page 176: Architekturkonzept und Designaspekte einer …elib.suub.uni-bremen.de/publications/dissertations/E-Diss835_dis... · matik der gewachsenen heterogenen Struktur der ... Im zweiten

Begriff Erläuterung / Referenz Dienst Ein Dienst ist eine Leistung, die der Diensterbringer der darüber liegenden

Schicht anbietet. (service)

Dienstbenutzer Ein Dienstbenutzer (service user) ist der Benutzer eines durch den Diensterbringer bereitgestellten Dienstes.

Dienstdaten-element

Ein Dienstdatenelement ist ein Datenelement, das über eine am Dienstzugangspunkt bereitgestellte Verbindung transportiert werden soll oder worden ist. (service data unit)

Dienstelement / Dienstprimitiv e

Ein Dienstelement ist eine abstrakte implementierungsunabhängige Interaktion zwischen Dienstbenutzer und Diensterbringer. (service primitive)

Diensterbringer Ein Diensterbringer stellt dem Nutzer einen oder mehrere Dienste bereit. (service provider)

EBA Eisenbahnbundesamt, verantwortlich für die Zulassung von bahntechnischen Systemen

EIRENE europäisches Forschungsprojekt in den Jahren 1997 – 1999; http://eirene.uic.asso.fr

Entität Eine Entität ist eine Komponente im System, die über eine eigene Anwender-Identität (i.a. ETCS-Adresse) verfügt, z. B. Streckenzentrale, Fahrzeuggerät, Feldelement.

Ereignis Ein Ereignis ist ein Geschehen, das in einem gegebenen Kontext eine Bedeutung hat, sich räumlich und zeitlich lokalisieren lässt und einen Zustandsübergang (Transition) veranlasst.

ETCS European Train Control System Europäisch standardisiertes Zugbeeinflussungssystem für den HGV. (siehe auch [22] und [23])

ETCS identifier Der ETCS Identifier (ETCS Identifikator) kennzeichnet zusammen mit ETCS type eineindeutig eine ETCS-Entität.

ETCS type Der ETCS type (ETCS-Typ) kennzeichnet den Typ einer ETCS-Entität. ETCS-Adresse Die ETCS-Adresse kennzeichnet eineindeutig eine ETCS-Entität.

Die ETCS-Adresse ist die Konkatenation von ETCS type und ETCS identifier.

Fehlerursache Abnormaler Zustand, der zu einem Fehler oder einer Fehlfunktion in einem System führen kann. Eine Fehlerursache kann zufällig oder systematisch sein. (fault)

Fehlfunktion Eine Fehlfunktion ist das vom spezifizierten Verhalten abweichende Verhalten des Systems. Eine Fehlfunktion ist die Folge einer Fehlerursache oder eines Fehlzustandes im System. (failure)

Fehlzustand Ein Fehlzustand ist die Abweichung vom beabsichtigten Entwurf, die zu unerwünschtem Systemverhalten oder Fehlfunktion/Ausfall führen kann. (error)

176

Page 177: Architekturkonzept und Designaspekte einer …elib.suub.uni-bremen.de/publications/dissertations/E-Diss835_dis... · matik der gewachsenen heterogenen Struktur der ... Im zweiten

Begriff Erläuterung / Referenz

177

Die Datenbasis dient zur Adresskonvertierung im EURORADIO-Stack.

FFB Funkbasierter Fahrbetrieb; Zugbeeinflussungssystem für den RMV Diese Bahnapplikation verwendet neue Ansätze der Zugsicherung durch verteilte Intelligenzen und dezentrale Verriegelungslogik. Fahrzeuggeräte und Feldelemente (Bahnübergänge, Weichen und Schlüsselsperren) tauschen signaltechnisch sichere Informationen über den unterlagerten „grauen“ Kanal aus. Das klassische Stellwerk wird nicht benötigt. Die FFB-Zentrale wird nur zum Herunterladen von Fahrwegsinformationen verwendet. Durch die vielen Kommunikationspartner entsteht eine hohe Signalisierungslast. Diese Signalisierungslast ist vom GSM/R System mit vertretbarem Aufwand nur durch den Einsatz von applikationsbezogenen Gatewaystrukturen zu bewerkstelligen.

FMEA Fault Management and Effects Analyses GW Gateway (Anwendung der Kommunikationsplattform) Gefährdung Eine Gefährdung ist eine Bedingung, die zu einem Unfall führen kann. Grauer Kanal offenes Übertragungssystem;

Übertragungssystem, welches für verschiedene Telekommunikations- dienste genutzt wird, mit einer unbekannten Anzahl von Teilnehmern und mit variablen Eigenschaften (z.B. Weg der Daten, Zeitverhalten, Speicherverhalten). Die Eigenschaften des Übertragungssystems sind aus sicherungstechnischer Sicht nicht vorhersagbar, so dass mit einer Reihe von Bedrohungen für die Datenübertragung im Grauen Kanal gerechnet werden muss. Das Risiko von nichtautorisiertem Zugriff besteht. (siehe EN 50159-2)

HGV Hochgeschwindigkeitsverkehr Zugfernverkehr im Geschwindigkeitsbereich bis 500 km/h mit hoher Verkehrsdichte. Eine linienförmige Zugbeeinflussung, d.h. kontinuierliche Datenübertragung zwischen Zug und Strecke, ist zwingend erforderlich. Es bestehen hohe Anforderungen an Datendurchsatz und Transitdelay infolge potentieller Notwendigkeit der hochprioren Übertragung von Notin-formationen. Im allgemeinen verfügen die eingesetzten Systeme über keine Rückfallebene mit vergleichbarer Performance, was eine sehr hohe Verfügbarkeit voraussetzt.

Information Eine Information ist die Darstellung des Zustandes oder der Ereignisse eines Prozesses in der Form, wie es durch den Prozess verstanden wird.

Integrität Integrität ist die Eigenschaft einer Nachricht, die anzeigt, dass die Information komplett und unverändert ist.

Kanal Ein Kanal ist ein Weg zur Übertragung von Daten. Ein Kanal muss eindeutig identifizierbar sein.

Konfiguration Zusammenstellung von Protokollschichten zu Protokollstacks und Festlegung der Protokollparameterwerte (z.B. Windowsize des Link-protokolls)

Link Ein Link ist die physikalische Verbindung zwischen zwei Geräten. Local Directory Nichtflüchtige Datenbasis zur Zuordnung von Netzadressen (GSM/R

Telefonnummer und Service) zu gegebener (ETCS) Applikationsadresse.

Page 178: Architekturkonzept und Designaspekte einer …elib.suub.uni-bremen.de/publications/dissertations/E-Diss835_dis... · matik der gewachsenen heterogenen Struktur der ... Im zweiten

Begriff Erläuterung / Referenz

178

provider) bereitgestellten Dienstes.

Kommunikations-plattform

Schalenförmig strukturierte softwaretechnische Ablaufumgebung zur Umsetzung von ereignisbezogenen, zustandsbehafteten und gatewayorientierten Vermittlungsstrukturen auf Basis schichtenförmiger Protokollstacks.

Verbindung, logische

Eine logische Verbindung ermöglicht während einer Sitzung die Kommunikation zwischen 2 Nutzern; Sie benutzt dazu einen Kanal.

Manipulations-entdeckungscode (MDC)

MDC ist eine Funktion von der gesamten Nachricht, aber im Gegensatz zum MAC ist kein geheimer Schlüssel einbezogen worden. Mit der gesamten Nachricht sind auch implizite Daten der Nachricht gemeint, die nicht zum Übertragungssystem gesendet werden.

MS Mobile Station – Mobiles Endgerät inkl. MT2 – Anschluss (Nutzdateninterface)

Nachricht Eine Nachricht ist eine Information, die von einem Sender (Datenquelle) zu einem oder mehreren Empfängern (Datensenke, Datensenken) übertragen wird.

Nachricht, ausgelassene

Eine ausgelassene Nachricht ist eine Nachricht, die aus dem Nachrichtenstrom entfernt wurde.

Nachricht, authentische

Eine authentische Nachricht ist eine Nachricht, von deren Information bekannt ist, dass sie durch die angegebene Quelle erzeugt wurde.

Nachricht, eingefügte

Eine eingefügte Nachricht ist eine Nachricht, die zusätzlich in den Datenstrom eingefügt wurde.

Nachricht, gültige Nachricht, deren Form in jeder Hinsicht den spezifizierten Anforderungen des Nutzers entspricht.

Nachricht, manipulierte

Eine manipulierte Nachricht ist eine eingefügte Nachricht, bei der eine nichtauthentische Nachricht so entworfen wurde, dass sie authentisch erscheint.

Nachricht, resequenzierte

Eine resequenzierte Nachricht ist eine Nachricht, deren Platz in einem Nachrichtenstrom verändert wurde.

Nachricht, verfälschte

Eine verfälschte Nachricht ist eine Nachricht, bei der eine Datenver-fälschung vorliegt.

Nachricht, verzögerte

Eine verzögerte Nachricht ist eine Nachricht, die später als erwartet empfangen wird.

Nachricht, wiederholte

Eine wiederholte Nachricht ist eine Nachricht, die mehr als einmal empfangen wurde.

Nachrichten-Authentifizierung

Die Nachrichten-Authentifizierung ist ein Verfahren zur Beglaubigung der Herkunft und der Integrität von Nachrichten.

Nachrichten-authentifi-zierungscode (MAC)

MAC ist eine kryptographische Funktion von der gesamten Nachricht und eines geheimen oder öffentlichen Schlüssels. Mit der gesamten Nachricht sind auch implizite Daten der Nachricht gemeint, die nicht zum Übertragungssystem gesendet werden.

Netzwerkformat Netzwerkformat ist ein Format zur Speicherung von Werten mit einer Länge von mehr als ein Oktett (Byte). Dabei erhält das Oktett(Byte) mit der niederwertigsten Adresse den höchstwertigen Wert.

Nutzer Ein Nutzer ist der Benutzer eines durch den Diensterbringer (service

Page 179: Architekturkonzept und Designaspekte einer …elib.suub.uni-bremen.de/publications/dissertations/E-Diss835_dis... · matik der gewachsenen heterogenen Struktur der ... Im zweiten

Begriff Erläuterung / Referenz

179

(interface control information)

OS-KERNEL UNIX-Betriebssystemkern, stellt POSIX-konforme Systemaufrufe zur Verfügung.

Partnerinstanz-Authentifizierung

Die Partnerinstanz-Authentifizierung ist ein Verfahren zum Nachweis, dass die Partnerinstanz bei einer Verbindung die geforderte ist.

Partnerinstanzen Partnerinstanzen sind Instanzen der selben Schicht. Projektierung Auswahl von vorkonfigurierten Kommunikationsstacks und

Zusammenstellung zu einer Vermittlungslogik (Gatewayinstanz). Protokoll Ein Protokoll gibt die Regeln für den Datenaustausch zwischen

Partnerinstanzen vor. PDU (Protokolldaten-element)

Ein Protokolldatenelement ist ein Datenelement, das zwischen den Partnerinstanzen einer Schicht zur Abwicklung von Protokollen ausgetauscht wird, wobei die Dienste der darunter liegenden Schichten genutzt werden. (protocol data unit)

Protokollnutz-datum

Ein Protokollnutzdatum ist der Teil des Protokolldatenelementes, der die Daten enthält, die im Rahmen des durch die Schicht zu erbringenden Dienstes zu transportieren sind. (user data)

Protokollsteuer-datum

Ein Protokollsteuerdatum ist der Teil des Protokolldatenelementes, der zur Koordinierung der Partnerinstanzen benötigt wird. (protocol control information)

RMV Regionalverkehr Zugverkehr im Geschwindigkeitsbereich von 0 bis 160 km/h mit geringer Verkehrsdichte. Moderate Forderungen an die Systemverfügbarkeit der Zugsicherungssysteme des RMV führen zu kostengünstigen und dezentralen Lösungen.

S2M 2 Mbit Primärmultiplexendteilnehmeranschluss; Primärratenanschluß ETSI: http://www.etsi.org Technische Richtlinien der Deutschen Telekom AG: 1TR237, " Spezifikation der Schnittstelle S2M zwischen Endeinrichtung und Netzabschluss beim Primärmultiplexanschluss im Euro-ISDN" Stand 11/1995

Schicht Eine Schicht ist die Gesamtheit der Teilsysteme der gleichen Stufe aller kommunizierenden Systeme im Bereich des Bezugsmodells. (layer)

Schnittstellen-datenelement

Ein Schnittstellendatenelement ist ein Datenelement, das zwischen den Instanzen zweier übereinander liegender Schichten ausgetauscht wird. (interface data unit)

Schnittstellen-nutzdatum

Ein Schnittstellennutzdatum ist der Teil des Schnittstellendatenelementes, der die Nutzdaten des Dienstbenutzers enthält, die über eine am Dienstzugangspunkt bereitgestellte Verbindung transportiert werden. (interface data)

Schnittstellen-steuerdatum

Ein Schnittstellensteuerdatum ist der Teil des Schnittstellendatenelemen-tes, der zur Koordinierung der durch einen Dienstzugangspunkt verbun-denen Instanzen benötigt wird.

Page 180: Architekturkonzept und Designaspekte einer …elib.suub.uni-bremen.de/publications/dissertations/E-Diss835_dis... · matik der gewachsenen heterogenen Struktur der ... Im zweiten

Begriff Erläuterung / Referenz Sicherer Zustand Der sichere Zustand einer signaltechnisch sicheren Einrichtung ist eine

Abweichung von fehlerfreien Zustand als Resultat einer Sicherheits-reaktion, die zu einer reduzierten Funktionalität der signaltechnisch sicheren und möglicherweise nichtsicheren Funktionen führt.

Sicherheits-reaktion

eine Aktion, die vom Sicherheitsprozess als Antwort auf ein Ereignis (wie ein Ausfall eines Kommunikationssystems) ausgelöst wird. Diese führt zum sicheren Zustand der Einrichtung. sicherheits-relevant Ein System, ein Teilsystem oder eine Komponente ist sicherheitsrelevant, wenn es/sie Sicherheitsverantwortung trägt.

Sicherungsschicht Die Sicherungsschicht ist die Schicht, die Dienste zur Übertragung von zu sichernden Nutzernachrichten sowie zur Übertragung von hochprioren, nicht zu sichernden Nachrichten bereitstellt. (safety layer)

SIL 4 Safety Integrity Level 4 (höchste Sicherheitsanforderungsstufe) nach EN 50128

Socket API zum Netzwerkzugang – siehe [7], [8], [11] STREAMS Nachrichtenwarteschlangenbezogene Ablaufumgebung; siehe auch:

UNIX System V Release 4.0: Leitfaden für Programmierer: STREAMS Version 1.0, SIEMENS AG, 1992

TLI Transport Layer Interface – Transportdienstschnittstelle unter UNIX - siehe [7], [8], [11]

Treiber/ Device-Treiber

Softwarekomponente zur Adaption von Hardwarekomponenten an die Betriebsmittelschnittstellen des Betriebssystems (z.B. ASY-Treiber zur Adaption der V24 – Schnittstelle)

TTY Terminal device – Treiberzugang zum asynchronen seriellen Interface (z.B. com bei PC-Architektur)

UNISIG Zusammenschluss europäischer Signalbaufirmen mit dem Ziel der Erstellung von Vorschlägen für Standards und Vorschriften der Eisenbahnsignaltechnik im Rahmen der Europäischen Union; http://www.aeif.org

Verbindung Eine Verbindung ist die Kommunikationsbeziehung zwischen Partner-instanzen. (connection)

Tabelle 59: Begriffe und Referenzen

180

Page 181: Architekturkonzept und Designaspekte einer …elib.suub.uni-bremen.de/publications/dissertations/E-Diss835_dis... · matik der gewachsenen heterogenen Struktur der ... Im zweiten

181

Nennspannungen bis 1000 V, 31.05.73, VDE [DIN VDE 0110] Isolationskoordination für elektrische Betriebsmittel in

9 Normen und Standards

Norm / Standard Erläuterung [EURORADIO] EURORADIO FIS, Subset-037, 2.0.0, 30-Mar-2000 [GSM05.05] 3GPP TS 05.05: "Digital cellular telecommunications system (Phase 2+)"

3rd Generation Partnership Project; Technical Specification Group GSM/EDGE Radio Access Network; Radio transmission and reception (Release 1999)

[POSIX] Portable Open System Interface Unix; International Standard 9945-1

[EN50081-2] Elektromagnetische Verträglichkeit (EMV) Fachgrundnorm Störaussendung Teil 2: Industriebereich, 08/1993, CENELEC

[EN50082-2] Elektromagnetische Verträglichkeit (EMV) Fachgrundnorm Störfestigkeit Teil 2: Industriebereich, 03/1995, CENELEC

[EN 50121] Railway Applications: Electro-Magnetic Compatibility (EMC) Teil 1-4, 09/2000, CENELEC

[EN 50123] Bahnanwendungen – Ortsfeste Anlagen – Gleichstrom-Schalteinrichtungen, 31.05.95, CENELEC

[PrEN 50124] Railway Applications: Insulation Coordination, Teil 1: 04/1999, Teil 2: 04/1998, Pr, CENELEC

[EN 50125] Railway Applications: Environmental Conditions for Rolling Stock, 09/1999, CENELEC

[EN 50128] Bahnanwendungen – Telekommunikationstechnik, Signaltechnik und Datenverarbeitungssysteme - Software für Eisenbahnsteuerungs- und Überwachungssysteme; 2001-03-01 DIN EN 50128 * VDE 0831 Teil 128 / 01.11.2001/ Deutsche Fassung EN 50128:2001

[EN 50155] Railway Applications: Electronic Equipment Used on Rail Vehicles, 30.11.95, CENELEC

[EN 50159-2] bahnanwendungsbezogene Norm: Bahnanwendungen Teil 2: Sicherheitsrelevante Kommunikation in offenen Übertragungssystemen, 03/2001

[EN 60721] Klassifizierungen von Umweltbedingungen Teil 3, 31.07.93, CENELEC [EN ISO 9000-3] DIN EN ISO 9000-3 Normen zum Qualitätsmanagement und zur

Qualitätssicherung/QM-DarlegungTeil 3: Leitfaden für die Anwendung von ISO 9001 auf Entwicklung, Lieferung, Installierung und Wartung von Computer-Software, Zweisprachige Fassung, August 1998

[DIN VDE 800] Fernmeldetechnik; Übergangsfestlegungen für Errichtung und Betrieb der Anlagen, 31.03.93, VDE

[DIN VDE 804] Fernmeldetechnik; Zusatzfestlegungen für die Herstellung und Prüfung der Geräte, 31.05.89, VDE

[DIN VDE 0100] Bestimmungen für das Errichten von Starkstromanlagen mit

Page 182: Architekturkonzept und Designaspekte einer …elib.suub.uni-bremen.de/publications/dissertations/E-Diss835_dis... · matik der gewachsenen heterogenen Struktur der ... Im zweiten

Norm / Standard Erläuterung Niederspannungsanlagen, 30.04.94, VDE

[DIN VDE 0115-1] Bahnen, Allgemeine Bau- und Schutzbedingungen, 30.06.82, VDE [DIN VDE 0470] Schutzarten durch Gehäuse (IP Code) (auch als IEC 60529 und EN

60529), 31.03.92, VDE [DIN VDE 0831] Elektrische Bahn-Signalanlagen, 31.08.90, VDE [ISO/IEC 2110] Information technology - Data communication - 25-pole DTE/DCE

interface connector and contact number assignments, 1989-12, International Electrotechnical Commission

[IEC 60571] Elektronische Einrichtungen zur Verwendung auf Schienenfahrzeugen, 07.90, IEC

[MAP3.0/ CIRNET] MAP/MMS – Protokoll verwendet in der Automatisierungstechnik (siehe IS0 9506) CIRNET – kryptologische Erweiterung auf Basis MAP3.0 zur einkanalig signaltechnisch sicheren Datenübertragung (z.B. Stellwerkskopplung) über geschlossene Netze (Leitungen der DB AG) (siehe Pflichtenheft der Übertragungsprozedur für die LAN-Kopplung ESTW-LZB; DB AG – GB Netz – Technik / Projekte – NGT 444 vom 24.02.94; Geprüft und genehmigt am 30.08.95: Eisenbahn – Bundesamt Außenstelle München GZ: 7011 SSR(LAN) )

[RTCA DO 178B] Software Considerations in Airborne Systems and Equipment Certification; http://www.rtca.org

[Mü 8004] Technische Anforderungen an Sicherungsanlagen der Elektronik, Eisenbahn-Bundesamt

[X.208] ITU-T rec. X.208; Specification of Abstract Syntax Notation One (ASN.1) T-REC-X.208-198811-W http://www.itu.int/

[X.209] ITU-T rec. X.209; Specification of Basic Encoding Rules for Abstract Syntax Notation One (ASN.1) T-REC-X.209-198811-W http://www.itu.int/

Tabelle 60: Normen und Standards

182

Page 183: Architekturkonzept und Designaspekte einer …elib.suub.uni-bremen.de/publications/dissertations/E-Diss835_dis... · matik der gewachsenen heterogenen Struktur der ... Im zweiten

10 Literaturangaben Referenz Quellenangabe [1] DIBMOF

BMBF(Bundesministerium für Bildung und Forschung) Fördernummer: 19 R 9404 A

[2] EIRENE http://eirene.uic.asso.fr

[3] CENELEC http://www.cenelec.org

[4] UNISIG http://www.aeif.org

[5] D.P. Bovet, M. Cesati: Understanding the Linux kernel, 1st edition. O'Reilly & Associates, 2001

[6] U. Vahalia: Unix Internals - The New Frontiers, Prentice Hall 1996. [7] A. Tanenbaum: Modern Operating Systems, 2nd edition. Prentice Hall,

2001 [8] A. Tanenbaum: Moderne Betriebssysteme, Hanser 1995 [9] A. Tanenbaum, A. S. Woodhull: Operating Systems: Design and

Implementation, 2nd edition. Prentice Hall, 1997.

[10] A. Tanenbaum: Distributed Operating Systems, Prentice Hall 1995 [11] W.R. Stevens: Unix Network Programming, Prentice Hall 1990. [12] Alessandro Rubini: Linux Gerätetreiber, O’Reilly 1998 [13] N.Storey: Safety-Critical Computer Systems, Addison Wesley Longman

1996 [14] Berny Goodheart, James Cox: UNIX System V Release 4 –

Reise durch den Zaubergarten, Prentice Hall Verlag GmbH München, 1994. ISBN 3-930436-05-1

[15] Steve Schneider: An Operational Semantics for Timed CSP. Information and Computation, 116:193-213

[16] Michael Schronen: Methodology for the Development of Microprocessor-Based Safty-Critical Systems. Dissertation, Universität Bremen, Sep. 1998 Published in Gogolla et al. (Eds.): Monographs of the Bremen Institute of Safe Systems, Volume 8. Shaker Verlag, ISBN 3-8265-4521-4

[17] Claudia Eckert: IT-Sicherheit: Konzepte, Verfahren, Protokolle 2. überarbeitete und erweiterte Auflage, R. Oldenbourg Verlag, 2003 ISBN 3-486-27205-5

[18] Dokumentation RT-Tester (RTTDOC) http://www.verified.de

183

Page 184: Architekturkonzept und Designaspekte einer …elib.suub.uni-bremen.de/publications/dissertations/E-Diss835_dis... · matik der gewachsenen heterogenen Struktur der ... Im zweiten

Referenz Quellenangabe

184

GSM-R-Verkehrsmodell für den FunkFahrBetrieb

[19] Abstract Syntax Notation One (ASN.1) Basic Encoding Rules (BER) ITU-T rec. X.208; ILC-Verfahren (Identifier, Length, Content): ITU Rec. X.209 http://www.itu.int/ITU-T/asn1/index.html

[20] Dirk Haselmeyer, Holm Hofestädt, Reinhard Kraftschik: SIMIS FFB - FunkFahrBetrieb zur EXPO 2000 SIGNAL + DRAHT 10/2000 http://www.eurailpress.com/archiv/

[21] Olaf Mense: European Train Control System – Von der UNISIG-Spezifikation zur Pilotanwendung SIGNAL + DRAHT 01+02/2003 http://www.eurailpress.com/archiv/

[22] A. Janhsen, K. Lemmer, M. Meyer zu Hörste, E. Schnieder: Migration strategy for different levels of the European Train Control system to existing railway environment World Congress on Railway Research, Florence, 1997, Volume C, pp 335 - 341.

[23] M. Meyer zu Hörste: Die formale Modellierung und Simulation von ERTMS / ETCS auf der Basis von Petrinetzen FORMS ' 98, Braunschweig, 1998.

[24] Hill, P.: Funkmessungen für den Aufbau des GSM-R-Netzes SIGNAL + DRAHT 10/2000 http://www.eurailpress.com/archiv/

[25] Referenzfallstudie Verkehrsleittechnik: funkbasierte Bahnübergangs-steuerung Dipl.-Inform. L. Jansen: TU Braunschweig http://www.iva.ing.tu-bs.de/forms/aktuell/workshops/2000/fallbeispiele/ funk_bahnubergang.pdf

[26] Anne E. Haxthausen and Jan Peleska: Formal Development and Verification of a Distributed Railway Control System. IEEE Transactions on Software Engineering Vol. 26, No. 8, pp. 687-701, 2000.

[27] Anne E. Haxthausen and Jan Peleska: Formal Methods for the Specification and Verification of Distributed Railway Control Systems: From Algebraic Specifications to Distributed Hybrid Real-Time Systems. In E. Schnieder (Ed.): Forms '99 - Formale Techniken für die Eisenbahnsicherung. Fortschritt-Berichte VDI, Reihe 12, Nr. 436, VDI-Verlag, Düsseldorf, pp. 263-271, 2000.

[28] Hillenbrand, W.; Hofestädt, H:

Page 185: Architekturkonzept und Designaspekte einer …elib.suub.uni-bremen.de/publications/dissertations/E-Diss835_dis... · matik der gewachsenen heterogenen Struktur der ... Im zweiten

185

Referenz Quellenangabe SIGNAL + DRAHT 06/2001 http://www.eurailpress.com/archiv/

[29] Stein, F.; Kendelbacher, D.: EURORADIO – Kommunikationsbasissystem für ETCS SIGNAL + DRAHT 6/2002 (Teil 1) SIGNAL + DRAHT 7+8/2002 (Teil 2) http://www.eurailpress.com/archiv/

[30] Denecke, F.: EI S Public net – Das Elektronische Stellwerk mit Datenübertragung über „Öffentliche Netze“ DER EISENBAHNINGENIEUR 12 / 2002 S. 58 http://www.eurailpress.com/archiv/

[31] Roland Passern: Datenübertragung in elektronischen Stellwerken über öffentliche Netze SIGNAL + DRAHT 11/2002 http://www.eurailpress.com/archiv/

[32] Jens Eisen; Egbert Voigt: XML-basierte Prüfung der RBC-Streckenprojektierung SIGNAL + DRAHT 05/2003 http://www.eurailpress.com/archiv/

Tabelle 61: Literaturangaben