|
2.5 Softwarelösung / Einsatz der Rettungskräfte
Screenshot unserer Software
|
Die unter allen bisherigen Punkten gesammelten Daten werden an
einen Arbeitsplatzrechner eines Rettungsdienstmitarbeiters in einer
Rettungswache weitergeleitet und dort grafisch aufbereitet, damit
von dort aus sofort eine angemessene Reaktion erfolgen kann, also
die Rettungskräfte zum Unfallort dirigiert werden können.
Darüber hinaus kann der Mitarbeiter der Rettungswache eine Sprachverbindung
zu dem Unfallopfer aufbauen und ihn unter anderem beruhigen. Außerdem
kann über die Freisprecheinrichtung auch Helfern am Unfallort direkte
Anweisungen für Erste Hilfe gegeben werden. In den USA ist es beispielsweise
üblich, dass bei Unfällen über Mobiltelefone potentiellen Helfern
genau erklärt wird, wie sie am besten Erste Hilfe leisten können.
Die Software, die von dem Eingehen des Notrufes über die Anfrage
bei dem MPC bis zur Visualisierung auf dem Bildschirm alles koordiniert,
stellt dabei einen wichtigen Punkt unseres Projektes dar und wird
nun näher beschrieben. Einen kleinen Auszug aus dem Quelltext finden
Sie im Anhang der Wettbewerbsarbeit.
Anforderungen an die Software
Um einen Notfall zu bearbeiten, soll die Software folgende Schritte
durchführen:
1. Den Anruf entgegennehmen und die Nummer des Anrufers bestimmen
2. Eine Kommunikation mit dem MPC beginnen und die Positionsbestimmung
vornehmen
3. Weitere Daten über Schnittstellen zu Datenbanken erfragen
4. Die gesammelten Daten intuitiv verständlich grafisch darstellen
5. Möglichkeiten zur Bearbeitung des Notfalls geben.
Bei allen diesen Punkten ist auf die Zuverlässigkeit ganz besonderer
Wert zu legen. Es darf nicht vorkommen, dass ein Notfall lediglich
auf Grund eines technischen Problems nicht erfasst oder fehlerhaft
bearbeitet wird.
Nutzung bereits bestehender Software
Es gibt bereits Softwarelösungen auf dem Markt, die diese Art der
Datenverarbeitung und -nutzung entsprechend unseren Ansprüchen teilweise
realisieren können. Diese Programme haben jedoch den großen Nachteil,
dass sie kommerziell sind, was zu hohen Kosten führt. Vor allem
aber sind sie nicht als Open Source, also mit Quelltexten erhältlich,
was einen Einbau von Zusatzfunktionen durch uns so gut wie unmöglich
macht. Aus diesem Grund entschlossen wir uns, eine komplett neue
Software zu schreiben, die unseren Anforderungen genügt.
Seit dem letzten Bundeswettbewerb haben wir neben der Unfallerkennung
vor allem die Software verbessert. So können wir nun dank einer
Kooperation mit Tele Atlas auf Kartenmaterial von ganz Europa zugreifen
und die Karte dynamisch darstellen. Zuvor mussten wir uns mit statischem
Kartenmaterial von Sachsen-Anhalt benügen.
Natürlich haben wir die Zeit nicht nur zur Darstellungsverbesserung
genutzt sondern vor allem die Stabilität verbessert sowie die Threadsicherheit,
also die Sicherheit mit der mehrere gleichzeitige Notrufe behandelt
werden. Eine ausführliche Demonstration unserer Software werden
wir Ihnen bei der Präsentation auf dem Bundeswettbewerb vorführen.
Wahl der Programmiersprache
Nach einer Sichtung der "nutzbaren" Programme (siehe
voriger Abschnitt), war für uns klar, dass ein recht umfangreiches
Softwareprojekt bevorstand. Die eingesetzte Programmiersprache sollte
also auf jeden Fall eine objektorientierte Hochsprache sein. Wegen
der Plattformunabhänigigkeit, die es ermöglicht eventuell vorhandene
Technik weiterhin einzusetzen, entschieden wir uns für Java. Eine
Nutzung mehrerer Hochsprachen hätte sich negativ auf die Zuverlässigkeit
ausgewirkt und ist zudem mit einem sehr hohen Aufwand verbunden.
Für das Teilproblem des Entgegennehmens des Anrufes kommt die Skriptsprache
awk zum Einsatz, da diese eine schnelle, einfache und vor allem
flexible Anpassung an verschiedene Telekommunikationsstandards und
-anlagen zulässt. Die Entscheidung zu Gunsten Javas hat den Vorteil
der Plattformunabhängigkeit. Damit läuft die Software für den GSM-Schutzengel
auf jedem PC, unabhängig ob Linux, Windows oder ein anderes Betriebssystem
verwendet wird.
Grundgedanken zum Programmaufbau
Die Software sollte auf jeden Fall objektorientiert und modular
sein, um eine einfache und flexible Erweiterung und Verbesserung
zuzulassen. Weiterhin vereinfacht Modularität den Aufbau der einzelnen
Programmteile, da diese fest definierte Aufgabenbereiche haben und
zusätzlich ist eine verteilte Ausführung dieser Module möglich,
was zu einer flexibleren Dimensionierung führt. Besonders wichtig
ist die Möglichkeit, je nach Bélastung Arbeitsplätze zum
System hinzuzufügen oder wieder zu entfernen.
Aufspaltung
Die Datenverarbeitung teilt sich in drei größere, voneinander unabhängige
Teile auf:
- Zum einen in die Entgegennahme des Notrufes, die durch eine ISDN-Karte
ermöglicht wird. Aus den auf dem ISDN-B-Kanal übertragenen Verbindungsdaten
wird nun die Telefonnummer des Anrufers ausgelesen. Diese wird den
internationalen Standards angepasst ( 00 + Nationale Vorwahl + Netzvorwahl
+ Rufnummer) und über eine TCP-Verbindung an die zentrale Verarbeitungsstelle
weitergegeben. Parallel zu dieser automatischen Nummernweitergabe
kann eine Sprechverbindung über ein handelsübliches Telefon aufgebaut
werden, die nicht von Nachteil für die automatischen Abläufe ist.
Damit der Kanal durch die Sprachverbindung nicht blockiert ist,
wird eine Telefonanlage vorgeschaltet, die Anrufe an verschiedene
interne Telefonanschlüsse verteilen kann. Die einzelnen Teile dieses
Moduls sind "readLog.awk" und "sender.java".
- Die zentrale Einheit (im folgenden "Server" genannt)
sorgt für die Koordinierung der Notrufe und verfügt über die Anbindungen
zu externen Teilen des Projektes wie z.B. dem MPC, den Datenbanken
oder einem Web-Server. Hier werden die TCP-Verbindungen der "Empfänger"-Teile
angenommen und die Daten ausgelesen. Zusätzlich werden die angemeldeten
Arbeitsplatzrechner ("Clients") verwaltet. Die Kommunikation
zu den Clients und Empfängern erfolgt über "Threaded Classes",
die für jede Verbindung neu erzeugt werden. Damit ist die Verwaltung
von sehr großen Mengen an Verbindungen möglich. Sind die für die
Darstellung des Notfalles relevanten Daten vollständig vorhanden,
werden die Daten über eine TCP-Verbindung an einen freien Arbeitsplatzrechner
weitergegeben und können so nicht "verloren gehen". Sollte kein
Client frei sein, werden sie zwischengespeichert.
Die Programmteile dieses Moduls sind "server.java", "handleSender.java",
"threaded_SenderSocket.java", "positioner.java",
"handleClientSocket.java" und "threadedClientSocket.java".
Ein Schema des Softwareaufbaus, sowie Auszüge aus dem Quelltext
finden Sie im Anhang und sollten Sie sich anschauen.
Der Arbeitsplatzrechner, auf dem der Notfall dargestellt wird, beinhaltet
das Modul "Client". Hier werden aus den mathematischen
Rohdaten Positionsdaten erzeugt und auf eine Straßenkarte gezeichnet.
Diese wird dann von der Grafischen Oberfläche, die eine Reihe von
Interaktionsmöglichkeiten besitzt, dargestellt. Gerade die aufwendige
Darstellung und die Vielfalt von Interaktions- aber auch Fehlermöglichkeiten
macht diesen Teil zu einer großen Ansammlung von verschiedenen Klassen.
|
|