Komponentenbasierte Verarbeitung von kontaktlosen SmartCards innerhalb einer
CORBA-Architektur

Simon Eggimann, Horst Schenk

T38.02

 

Einleitung

Die neuste Generation Fahrscheinautomaten der Ascom Autelca AG ist mittels einer komponentenbasierten Software-Architektur mit CORBA realisiert. Jede Baugruppe des Automaten (z.B. Drucker, Banknotenprüfer, usw.) bildet eine Komponente, bestehend aus der Hardware und der dazugehörenden Software. Die Softwarekomponente ist ein ausführbares Programm, welches wie eine Blackbox gekapselte Dienstleistungen an einer definierten Schnittstelle zur Verfügung stellt.

Für das Projekt LTA Singapore der Ascom Autelca AG werden kontaktlose Chipkarten, sogenannte SmartCards, als Fahrscheine verwendet. Der Fahrscheinautomat für dieses Projekt muss deshalb mit einem Schreib-/Lesegerät (Serial Reader) ausgerüstet werden, um diese Karten ausgeben zu können.

Um erste Erfahrungen mit der SmartCard Technologie zu sammeln, ist ein Demonstrationssystem mit dem Namen TIMO Contactless aufgebaut worden. Dieses umfasst ein Ausgabemodul und einen Serial Reader zur Verarbeitung von SmartCards des Typs MIFARE von Philips. Das Ausgabemodul des TIMO Contactless ist für den Transport der Karte vom Magazin zur Antenne des Serial Reader und danach in die Ausgabeeinheit des Automaten verantwortlich. Der Serial Reader ist für den kontaktlosen Datentransfer mit der SmartCard zuständig.

 

Zielsetzung

Das Ziel der Arbeit besteht darin, eine Software zu erstellen, um das Demonstrationssystem anzusteuern und die Funktionalität der SmartCard an einem Interface zur Verfügung zu stellen. Die zu erstellende Software ist in die bestehende CORBA-Architektur zu integrieren, welche sich durch einen stark modularen Aufbau auszeichnet.

Die Arbeit umfasst eine Komponente, einen Simulator und eine Testapplikation:

 

Folgende Abbildung stellt die drei Teile der Arbeit (Komponente, Simulator, Testapplikation) und die Schnittstellen zum Umfeld grafisch dar:

Realisierung

Das Highlevel-Interface der Komponente wurde mit der CORBA Schnittstellen-Beschreibungssprache IDL spezifiziert. Das Design erfolgte konsequent mit Hilfe von Klassen- und Interaktionsdiagrammen nach UML. Innerhalb der Komponente wurde eine Schnittstelle definiert, um die Kommunikationsprotokolle für die Hardwareansteuerung und die Funktionalität der Komponente voneinander zu trennen. Dadurch konnten diese beiden Teile unabhängig voneinander realisiert werden.

Die Phasen Detaildesign, Implementation und Test erfolgten in kleinen Schritten (iterative Softwareentwicklung). Probleme wurden so frühzeitig erkannt und konnten dort gelöst werden, wo sie entstanden.

Für die Implementierung wurde die Programmiersprache C++ verwendet. Als Entwicklungsumgebung diente das Developer Studio von Microsoft.

 

Besprechung

Die Aufgabe, innerhalb des Ascom Component Framework ACFW eine Komponente zur Verarbeitung von kontaktlosen SmartCards zu entwickeln, ist gelöst worden.

Weiterentwicklung

Im Rahmen der Diplomarbeit ist mit einer Prototyp-Hardware gearbeitet worden. Die Ansteuerung und die Funktionalität kann bei einer Weiterentwicklung der TIMO Contactless Hardware ändern. Durch den modularen Aufbau der Software und die strikte Trennung von Kommunikation und Funktionalität können diese Änderungen aber problemlos in die erstellte Software integriert werden.

Zurzeit sind die Zugriffsschlüssel statisch in der Komponente gespeichert. Es ist allerdings kein Problem, die entsprechende Klasse zu erweitern, um die Schlüssel von einem Konfigurationsfile zu lesen. Dadurch würde die Konfiguration der Komponente flexibler. Allerdings muss die Schlüsselverwaltung vor allem organisatorisch geregelt werden.

Das TIMO Contactless Demonstrationssystem bietet keine Möglichkeit, die Präsenz einer SmartCard optisch oder mechanisch zu erkennen. Da momentan keine Aussage über die Zuverlässigkeit der SmartCard's gemacht werden kann, ist zu überprüfen, ob eine solche Kartenerkennung sinnvoll ist, um zwischen einer defekten SmartCard und einem mechanischen Transportproblem unterscheiden zu können.

Der Simulator verhält sich zur Zeit wie eine fehlerfreie Hardware. Er könnte dahingehend erweitert werden, dass interaktiv Fehlersituationen der Hardware simuliert werden können.

Der Simulator und die Testapplikation könnten mit einem graphischen Benutzerinterface (GUI) erweitert werden. Es ist allerdings fraglich, ob der geringe Zusatznutzen den Aufwand lohnt.

Erkenntnisse aus der Diplomarbeit

Für das Pflichtenheft und die Grobspezifikation wurde ein Drittel der verfügbaren Arbeitszeit aufgewendet. Dieser sehr intensive und durch viele Diskussionen geprägte Projektabschnitt lieferte viel mehr als nur die wichtigen Schnittstellen-Definitionen: Viele Abläufe und Abhängigkeiten wurden dadurch klar. Die ersten zwei Wochen der Diplomarbeit waren entscheidend für den weiteren Projektverlauf.

Das an der SWS vermittelte theoretische Wissen konnte während der Diplomarbeit zu grossen Teilen verwendet werden. Vorallem die Wichtigkeit der Definition von Schnittstellen bestätigte sich. Insbesondere in einem grossen Softwaresystem ist dies unumgänglich. Auch das objektorientierte Design konnte erstmals in die Praxis umgesetzt werden. Es zeigte sich, dass dieses Wissen nur durch die praktische Anwendung vertieft werden kann.

Die kompakte Definition der Funktionalität einer Komponente mit Hilfe des IDL-Files hat uns beeindruckt. Die Idee der "Software-IC", welche mittels CORBA miteinander verbunden werden, fördert die Wiederverwendbarkeit von Software entscheidend.