und des Attributs col kann bei tabellarischen Rückgabewerten
festgelegt werden, ob nur eine oder mehrere Spalten angezeigt werden sollen. Dies ist z. B. bei
einer zweispaltigen Tabelle als Rückgabewert sinnvoll, bei der sich in der ersten Spalte die dar-
zustellenden Werte und in der zweiten die dazugehörigen Identifikationsnummern befinden, die
80
zum Aufruf des nachfolgenden Service benötigt werden. Zur Verdeutlichung soll auch hier das
Beispiel aus der Definition eines Serviceaufrufs (siehe Abbildung 6.5) dienen.
Damit der Benutzer eine Kaffeesorte aus der Liste auswählen kann, soll diese in Form von Ra-
diobuttons angezeigt werden. Die Auswahl soll sowohl von einem Standard-PC als auch von ei-
nem PDA aus möglich sein, jedoch nicht von einem mobilen Telefon. Zudem wird für den je-
weiligen Client ein eigenes Stylesheet zur Formatierung festgelegt. Da der Benutzer mit den
eindeutigen Id’s nichts anfangen kann, soll nur die Spalte mit den Namen der Kaffeesorten an-
gezeigt werden. Dies führt zur folgenden Definition der Datenaufbereitung für den Service „Li-
ste_der_Kaffeesorten“:
1:
2: Kaffeesorten des Kaffeeautomaten
3: Diese Kaffeesorten können von dem
4: Kaffeeautomaten produziert werden.
5:
6:
7:
8:
9:
10:
12:
13:
14:
15:
Abbildung 6.8: Datenaufbereitung des Services „Liste_der_Kaffeesorten“
In den Zeilen 5 bis 8 wird ein spezifisches Stylesheet für die PC-Clients (html_pc.xsl) und in
den Zeilen 9 bis 12 dasselbe für die PDA-Clients (html_pda.xsl) festgelegt.
Der zweite Service „erstelle_Kaffee“ gibt die Meldung zurück, dass der Kaffee beim Kaffeeau-
tomaten abgeholt werden kann. Diese Meldung kann auf dem Client einfach angezeigt werden
(z. B. in Form „Der Kaffee ist fertig!“). In Abbildung 6.9 ist der Vorgang der Datenaufbereitung
des Service „erstelle_Kaffee“ dargestellt.
1:
2: Kaffee erstellt
3: Der Kaffee ist fertig!
4:
5:
81
6:
7:
8:
9:
10:
11:
Abbildung 6.9: Datenaufbereitung des Services „Erstelle_Kaffee“
Das Stylesheet für die Meldung an PC-Clients wird in den Zeilen 5 bis 7 und für die PDA-Cli-
ents in den Zeilen 8 bis 10 festgelegt. Die Struktur der Datenaufbereitung eines Services in
SDML ist in Abbildung 6.10 grafisch dargestellt.
Service
DefinitionDataProcessing
Title
ClientType
Description
form
enumeration
type
enumeration
Stylesheet link
string
DisplayReturnValue col
string
Abbildung 6.10: Struktur der Datenaufbereitung eines Services in SDML
Die vorgestellte Spezifikationssprache SDML stellt einen Ansatz einer allgemein gültigen Be-
schreibungssprache zum Aufruf von Services dar. Speziell bei der Abbildung komplexer Struk-
turen hierarchisch verschachtelter Services stößt die derzeitige Version der SDML an ihre Gren-
zen. Mit der Einführung von Logikelementen zur Definition der Serviceaufrufe könnte die Fle-
xibilität erhöht werden.
82
7 Funktionaler Aufbau der universellen Fernservice-
Infrastruktur
Nachdem die abstrakten Aufgaben einzelner Schichten erläutert wurden, wird nun in diesem
Kapitel der funktionale Aufbau aller Knoten beschrieben. Für die Anbindung wird das einge-
bettete System um eine spezielle Anbindungskomponente (sAk) erweitert. Diese spezielle An-
bindungskomponente hat die Funktion einer Adapterkomponente und bietet eine einheitliche
Schnittstelle für den Zugriff auf Prozessdaten. Die spezifische Schnittstelle des eingebetteten
Systems wird in eine einheitlich definierte Schnittstelle umgewandelt. Die Funktionalität der
speziellen Anbindungskomponente (sAk) wird im Abschnitt 7.1.2 beschrieben. Der Fernzugriff-
Server (FzS) kann, ausgerüstet mit der allgemeinen Anbindungskomponente (aAk), eine Verbin-
dung zur speziellen Anbindungskomponente des eingebetteten Systems herstellen und auf Pro-
zessdaten zugreifen. Der Aufbau des Fernzugriff-Servers (FzS) wird in Abschnitt 7.2 behandelt.
Abschließend beschreibt Abschnitt 7.3, wie ein Client eine Anfrage an den Fernzugriff-Server
(FzS) senden kann.
7.1 Das Gerät als Datenquelle
Ein eingebettetes System verfügt über eine Steuerung, die mittels Sensoren aktuelle Informatio-
nen über den Prozess erhält und mit Hilfe von Aktoren den Ablauf des eingebetteten Systems
regelt. Der Zugriff auf Prozessdaten erfolgt dabei mit Hilfe der Methoden der Steuerung. Die
Methoden, die für den Fernzugriff auf die Prozessdaten vom eingebetteten System zur Verfü-
gung gestellt werden, werden im Folgenden als „Service“ bezeichnet.
Für den Zugriff des Fernzugriff-Servers (FzS) auf Prozessdaten wird das eingebettete System
um eine spezielle Anbindungskomponente (sAk) erweitert. Über diese Komponente kann der
Fernzugriff-Server mittels der allgemeinen Anbindungskomponenten (aAk) eine Netzwerkver-
bindung zum eingebetteten System herstellen. Der Zugriff auf die Prozessdaten erfolgt über
Aufruf der Services, die vom eingebetteten System zur Verfügung gestellt werden. Für den Auf-
ruf dieser Services wurde eine abstrakte Methode „callService“ eingeführt, die wie nachfolgend
beschrieben von der sAk implementiert wird.
7.1.1 Abstrakte Methode „callService“
Mit der abstrakten Methode „callService“ wird eine übergeordnete Methode definiert, die den
eigentlichen Serviceaufruf wie einen Umschlag umhüllt. Die spezielle Anbindungskomponente
(sAk) bietet dem Fernzugriff-Server somit nur diese eine abstrakte Methode für den Fernzugriff
an. Die Funktionsweise ist dabei wie folgt:
83
• Ein Client stellt eine Anfrage nach einem Service (z. B. "Zustand_Ventil_Heisswasser") an
den Fernzugriff-Server.
• Auf Grund der Beschreibung in der „Geräteinformation“ wird der „callService-Aufruf“ vom
Fernzugriff-Server für diesen Aufruf parametrisiert.
• Der parametrisierte „callService“-Aufruf wird mittels der allgemeinen Anbindungskompo-
nente (aAk) via Netzwerk an die spezielle Anbindungskomponente (sAk) des eingebetteten
Systems übermittelt.
• Die spezielle Anbindungskomponente (sAk) ermittelt auf Grund der Parametrisierung den
eigentlichen Serviceaufruf und führt diesen durch.
Das Ergebnis des Serviceaufrufs wird der abstrakten Methode „callService“ als Rückgabewert
mitgegeben. Abbildung 7.1 stellt diesen Vorgang grafisch dar.
Eingebettetes System (ES)
spezielle Anbindungskomponente
(sAk)
Steuerung
Service 1 Service n........
Sensor Aktor
Fernzugriff-Server (FzS)
allgemeine Anbindungskomponente
(aAk)
Datenaufbereitungskomponente
(DaK)
Webserver
Internet)
Client-Anfrage:
"Zustand_Ventil_Heisswasser"
callService
("Zustand_Ventil_Heisswasser")
callService
("Zustand_Ventil_Heisswasser")
Zustand_Ventil_Heisswasser
1
2
3
4
Abbildung 7.1: Abstrakte Methode „callService“
7.1.2 Spezielle Anbindungskomponente
Die spezielle Anbindungskomponente (sAk) besteht aus einer Fernzugriffskomponente und einer
Wrapper-Komponente. Die Fernzugriffskomponente stellt die abstrakte Methode „callService“
für den Fernzugriff zur Verfügung. Der Fernzugriff soll unter Sockets, Remote Method Invoca-
tion (RMI) und der Common Object Request Broker Architecture (CORBA) möglich sein. Da-
mit wird eine Plattformunabhängigkeit auch bei der Kommunikation erreicht. Die Wrapper-
Komponente zerlegt Parameter der abstrakten Methode „callService“ und wertet diese aus. Auf
84
Grund dieser Parameter erfolgt der eigentliche Serviceaufruf durch die Wrapper-Komponente
beim eingebetteten System. Abbildung 7.2 dient zur Veranschaulichung.
spezielle Anbindungskomponente
(sAk)
Internet
callService
("Zustand_Ventil_Heisswasser")
Wrapper
Service/1
Service/1
Fernzugriff
Socket
RMI
CORBA
Abbildung 7.2: Aufbau der speziellen Anbindungskomponente
Der Ansatz des abstrakten Serviceaufrufs in Verbindung mit der speziellen Anbindungskompo-
nente, die auf Grund der Parametrisierung den eigentlichen Serviceaufruf durchführt, ermöglicht
die Anbindung beliebiger eingebetteter Systeme an den Fernzugriff-Server. Der Fernzugriff-
Server (FzS) ruft dabei immer nur eine Methode auf, die abstrakte Methode „callService“. Hier-
durch ist gewährleistet, dass der Fernzugriff-Server (FzS) nicht neu implementiert oder verän-
dert werden muss. Die Parametrisierung des abstrakten „callService“ reicht aus, um einen be-
stimmten Service im eingebetteten System aufzurufen und somit den Zugriff auf Prozessdaten
zu erlangen. Die Parametrisierung erfolgt mittels der Geräteinformation.
7.1.3 Anbindung beliebiger Anwendungen an den Fernzugriff-Server
Durch den beschriebenen Lösungsansatz können neben eingebetteten Systemen auch beliebige
Applikationen an den Fernzugriff-Server (FzS) angebunden werden. Dies bietet z. B. die Mög-
lichkeit, Daten einer Diagnose-Applikation über den Fernzugriff-Server einem Client zur Verfü-
gung zu stellen. Dabei ist das Prinzip der Anbindung analog zur Anbindung des eingebetteten
Systems aufgebaut. Die Anwendung, die ihre Daten mittels Service bereitstellen möchte, wird
ebenfalls um die spezielle Anbindungskomponente (sAk) erweitert, womit der Zugriff auf die
Daten der Applikation mit Hilfe von Serviceaufrufen ermöglicht wird. Als Services werden in
diesem Fall die Methoden der Applikation bezeichnet. Der Service, der bereitgestellt werden
soll, wird analog zur Geräteinformation über das eingebettete System in einer Applikationsin-
formation beschrieben und kann dann vom Fernzugriff-Server aufgerufen werden.
Abbildung 7.3 zeigt eine mögliche Erweiterung des Fernzugriff-Servers um zwei weitere Fern-
service-Applikationen.
85
Eingebettetes System (ES)
spezielle Anbindungskomponente
(sAk)
Steuerung
Service 1 Service n........
Sensor Aktor
Fernzugriff-Server (FzS)
Dak
WebserverWartung sAk
Diagnose sAk
Internet
allgemeine Anbindungskomponente
(aAk)
aAk
aAk
Abbildung 7.3: Erweiterung des Fernzugriff-Servers um weitere Fernservice-Applikationen
Beim vorgestellten Ansatz spielt es keine Rolle, ob die anzubindende Anwendung oder das ein-
gebettete System über ein Netzwerk oder direkt angesprochen wird. Dadurch ist es z. B. mög-
lich, die Diagnose-Anwendung auf einem separaten Rechner unterzubringen. Des Weiteren
bietet es sich an, auch den Zugriff der Diagnose- bzw. Wartungs-Applikation auf das eingebet-
tete System mit Hilfe des vorgestellten Konzeptes umzusetzen, um so eine einheitliche Infra-
struktur zu schaffen.
Abbildung 7.4 zeigt eine mögliche Verknüpfung zwischen eingebettetem System, Diagnose-
Applikation und Fernservice-Server. Die Diagnose-Applikation übernimmt dabei zwei Rollen:
Sie greift auf Daten des eingebetteten Systems zu und liefert Daten an den Fernservice-Server.
Der Ansatz bietet somit die Möglichkeit, Systemkomponenten nach dem Baukastenprinzip be-
liebig miteinander zu verknüpfen. Die Herkunft der Daten wird transparent.
86
Diagnose-Server
Diagnose-
Applikation
Eingebettetes
System (ES)
spezielle Anbindungs-
komponente (sAk)
aAk sAk
Fernzugriff-Server
(FzS)
allgemeine Anbindungs-
komponente (aAk)
Datenaufbereitung
Webserver
Internet
Internet
Abbildung 7.4: Anbindung beliebiger Applikationen nach dem Baukastenprinzip
7.2 Fernzugriff-Server
Der Fernzugriff-Server spielt eine zentrale Rolle in der Realisierung der universellen Fernser-
vice-Infrastruktur. Er besteht aus drei Komponenten (Webserver, Dak und aAk), einem Editor,
den Geräteinformationen und zwei allgemeingültigen Schnittstellen. Die Schnittstelle aAK er-
möglicht die einheitliche Anbindung unterschiedlicher eingebetteter Systeme, der Webserver
bietet eine universelle Kommunikation zu verschiedenen Clients wie PDA, mobiles Telefon
oder PC. Dieses Prinzip schafft die Voraussetzung für eine einmalige Implementierung des
Fernzugriff-Servers, der dann in der Lage ist, mehrere Geräte bzw. Clients anzubinden. Die
einmalig entstehenden Kosten für die Realisierung des Fernzugriff-Servers minimieren sich auf
Grund der Anbindung einer großen Anzahl von Geräten und Anwendern. Abbildung 7.5 zeigt
den Aufbau des Fernzugriff-Servers in der realisierten Form.
87
Fernzugriff-Server (FzS)
allgemeine
Anbindungskomponente
(aAk)
Datenaufbereitungs-
komponente (Dak)
Webserver
SDML
Editor
Geräte-
Information
Geräte-
Information
Geräte-
Information
Internet
Internet
Abbildung 7.5: Aufbau des Fernzugriff-Servers
Die allgemeine Anbindungskomponente (aAk) dient als Schnittstelle zu den Geräten und ist für
die Anbindung unterschiedlicher eingebetteter Systeme zuständig. Die Webserver-Komponente
übernimmt die Kommunikation mit Clientstationen. Die Datenaufbereitungskomponente wie-
derum nimmt Service-Aufrufe der Clients und geforderte Prozessdaten entgegen und bereitet die
Informationen für die Clients auf. Schließlich übernimmt die Geräteinformation die Konfigura-
tion des Fernzugriff-Servers. Für die Erstellung der Geräteinformation wurde im Rahmen dieser
Arbeit ein Editor realisiert, der auf dem Fernzugriff-Server integriert ist. Die einzelnen Kompo-
nenten können dabei beliebig verteilt werden. Die Geräteinformation wird für jedes Gerät spezi-
fisch erstellt. Hierzu ist das Fachwissen des Geräteherstellers notwendig. Aus diesem Grunde ist
es sinnvoll, dass der SDML-Editor und die Geräteinformation auf einem Server beim Hersteller
lokalisiert werden. Der Fernzugriff-Server kann bei einem Dienstleistungsanbieter, der z. B. die
Diagnose, Wartung und das Software-Update der Geräte durchführt, vorhanden sein.
Abbildung 7.6 veranschaulicht dieses Vorgehen.
88
Internet
Fernzugriff-Server (FzS)
allgemeine
Anbindungskomponente
(aAk)
Datenaufbereitungs-
komponente (Dak)
Webserver
Geräteverwaltung-
Server
SDML
Editor
Geräte-
Information
Geräte-
Information
Geräte-
Information
Internet InternetGeräte Clients
Abbildung 7.6: Eine mögliche Verteilung des Fernzugriff-Servers
Hier kümmert sich der Hersteller lediglich um die Erstellung der Geräteinformation, die in sei-
nem Kompetenzbereich liegt. Sie kann von ihm leicht aktualisiert und gepflegt werden. Der
Dienstleistungsanbieter kümmert sich nur um die Wartung der Geräte. Im Folgenden werden die
einzelnen Komponenten näher beschrieben.
7.2.1 Allgemeine Anbindungskomponente
Die allgemeine Anbindungskomponente (aAk) besteht aus einer Fernzugriffskomponenten und
einer definierten Schnittstelle (siehe Abbildung 7.7). Über die Fernzugriffskomponente wird die
Verbindung zur speziellen Anbindungskomponente eines eingebetteten Systems via Netzwerk
hergestellt. Die Fernzugriffskomponente ermöglicht es, eine Verbindung mittels Sockets, RMI
oder CORBA aufzubauen. Die Fernzugriffskomponente erlaubt den Aufruf der abstrakten Me-
thode „callService“ bei der speziellen Anbindungskomponente (sAk). Die definierte Schnittstelle
(aAk-Schnittstelle) stellt alle Funktionen der allgemeinen Anbindungskomponente bereit, unab-
hängig von der verwendeten Verbindungsart.
89
allgemeine Anbindungskomponente
(aAk)
callService
("Zustand_Ventil_Heisswasser")aAk
Schnittstelle
Fernzugriff
Socket
RMI
CORBA
Internet
callService
("Zustand_Ventil_Heisswasser")
Abbildung 7.7: Aufbau der allgemeinen Anbindungskomponente
7.2.2 Aufbau der Datenaufbereitungskomponente
Die Datenaufbereitungskomponente bereitet die Daten, die durch einen Serviceaufruf geliefert
werden, in die benutzergerechte Form des anfragenden Clienttyps auf. In der Geräteinformation
ist dabei festgelegt, wie die Aufbereitung für den jeweiligen Clienttyp erfolgen soll.
Abbildung 7.8 veranschaulicht den Aufbau der Datenaufbereitungskomponente.
Fernzugriff-Server (FzS)
allgemeine Anbindungskomponente
(aAk)
Datenaufbereitungskomponente
(Dak)
Webserver
Internet
Internet
Geräte-
Information
Geräte-
Information
Geräte-
Information
Handy
PDA
Laptop
Abbildung 7.8: Aufbau der Datenaufbereitungskomponente
7.2.2.1 Funktionsweise der Datenaufbereitungskomponente
Die Anfrage eines Clients wird von der Datenaufbereitungskomponente entgegengenommen.
Aus dieser Anfrage wird der aufzurufende Service extrahiert. Die Datenaufbereitungskompo-
nente parametrisiert dementsprechend die abstrakte Methode „callService“ und ruft diese über
die allgemeine Anbindungskomponente auf. Das Ergebnis des eigentlichen Serviceaufrufs beim
Gerät wird als Rückgabewert der abstrakten Methode „callService“ in definierter Form zurück-
geliefert. Die Datenaufbereitungskomponente generiert aus diesem Rückgabewert eine XML-
90
basierte Antwortsseite für den anfragenden Fernservice-Client. Der Aufbau der Seite richtet sich
dabei nach der Beschreibung in der SDML-Instanz. Ebenso ist in der SDML-Instanz ein Ver-
weis auf ein Stylesheet untergebracht, das mit dieser Seite verknüpft werden soll. Durch das
Stylesheet wird die XML-basierte Antwortsseite vor der Auslieferung durch den Webserver in
das richtige Ausgabeformat konvertiert. Abbildung 7.9 zeigt die Anfrage eines Clients, die
durch die Datenaufbereitungskomponente bearbeitet wird.
Anfrage
Aufruf
des Services
Geräte-
Information
Aufbereitung
des Ergebnisses
XSL
PC
FormatierenXSL
PDA
XSL
Handy
Geräte-
Information
Geräte-
Information
HTML, WML, PDF, ....
Datenaufbereitungs-
komponente (Dak)
XML
Antwort
Abbildung 7.9: Funktionsweise der Datenaufbereitungskomponente
7.2.3 Aufbau des SDML-Editors
Im vorherigen Kapitel wurde die Spezifikation der Beschreibungssprache SDML erläutert. Die-
ser Abschnitt widmet sich dem SDML-Editor, der zur Entwicklung von SDML-Dokumenten
konzipiert und realisiert wurde. Dazu wird zunächst die grafische Benutzungsoberfläche präsen-
tiert, die eine komfortable Erstellung von SDML-Dokumenten ermöglicht. Danach werden Ar-
chitektur und einzelne Bedienelemente der Software vorgestellt.
7.2.3.1 Grafische Benutzungsoberfläche des SDML-Editors
Nachdem die Spezifikation der SDML vorgestellt wurde, ist es offensichtlich, dass für die Ent-
wicklung eines SDML-Dokuments zur Beschreibung einer Geräteinformation umfassende
Kenntnisse über die Struktur der Beschreibungssprache SDML Voraussetzung sind. Außerdem
muss der Entwickler des SDML-Dokuments unbedingt die Semantik der Sprache sehr gut be-
91
herrschen. Der Entwickler einer Geräteinformation ist in der Regel mit dem eingebetteten Sy-
stem vertraut und kennt dessen Dienste gut. Um nun den zusätzlichen Aufwand für die Erstel-
lung der Geräteinformationen mittels SDML zu minimieren, wurde ein Editor entwickelt. Der
Editor wurde durch den Einsatz von XML so spezifiziert und dokumentiert, dass der Anwen-
dungsentwickler bei der Erstellung von SDML-Dokumenten möglichst umfassend unterstützt
wird.
Der Editor besteht aus insgesamt vier Dialogfenstern, die über Tabulatoren auszuwählen sind.
Die SDML-Auszeichnungselemente sind thematisch gruppiert auf folgende vier Dialoge ver-
teilt:
• Author
• Server-Definition
• Service-Definition
• Datenaufbereitung (Data-Processing)
Abbildung 7.10 zeigt die wesentlichen Elemente der Benutzungsoberfläche, die zur Steuerung
des Werkzeugs und zur Erstellung der SDML-Dokumente benötigt werden.
Abbildung 7.10: Benutzungsoberfläche des SDML-Editors
92
Das Werkzeug verfügt über ein Menü und drei Dialog-Tabs, die einen schnellen Zugriff auf die
wichtigsten Funktionen des Werkzeuges ermöglichen. Mittels dieser Elemente der Benutzungs-
oberfläche ist eine intuitive Bedienung des Editors, wie z. B. das Öffnen bereits entwickelter
SDML-Dokumente, das Anlegen neuer Dokumente, das Speichern von Eingabedaten des An-
wendungsentwicklers oder die Generierung der Anwendungen möglich.
Die drei Dialog-Tabs dienen zur Beschreibung von Konfigurationsmanagement, Server-Defini-
tion und Services. Das Dialog-Tab „Service“ ist in zwei Bereiche unterteilt, einen für die Be-
schreibung der Services und einen für die Datenaufbereitung.
7.2.3.2 Software-Architektur
Maßgebend für den Entwurf der Software-Architektur sind folgende Anforderungen:
• Unterstützung des Anwendungsentwicklers: Dem Anwendungsentwickler soll ohne großen
Einarbeitungsaufwand ein effizientes Arbeiten mit dem Editor ermöglicht werden.
• Funktionalität: Die Funktionen des Editors sollen stabil und fehlerfrei sein.
• Erweiterbarkeit: Da die SDML-Sprache weiter entwickelt wird, soll der Editor modular auf-
gebaut sein und leicht erweitert und modifiziert werden können.
Um die zuletzt genannten Anforderungen in Hinblick auf Erweiterbarkeit und Modifizierbarkeit
des Werkzeuges zu erreichen, wurden weitere Entscheidungen gefällt, die nachfolgend benannt
werden:
• Strikte Trennung zwischen Dokument (Daten) und Ansicht,
• ein der Struktur der SDML angepasstes Objekt-Modell,
• eine einheitliche Schnittstelle zur Darstellungskomponente,
• eine einheitliche Schnittstelle zur Erzeugung der SDML-Daten.
Der Editor wurde daher in zwei Komponenten gegliedert, die View-Komponente und die Docu-
ment-Komponente. Die View-Komponente ist für die Visualisierung der Informationen zustän-
dig. Sie besteht aus einem Dialog, der Daten aufnimmt und anzeigt. Die eingegebenen Daten
werden in der Document-Komponente abgelegt. Sie stellt eine Objektsstruktur dar, welche dem
Aufbau der SDML nachempfunden ist. Diese Objektsstruktur ist serialisierbar, d. h. sie kann auf
permanenten Speichermedien gesichert und wiederhergestellt werden. Außerdem enthält jede
Klasse die Funktionalität, einen String auszugeben, der die in ihr gekapselten Daten in SDML
darstellt. Diese Funktionalität wird beim Erzeugen einer SDML-Datei aufgerufen.
Auf Grund positiver persönlicher Erfahrungen in vorangegangenen Projekten wurde die Pro-
grammiersprache Java als Implementierungssprache gewählt. Abbildung 7.11 zeigt die Softwa-
93
rearchitektur des SDML-Editors. Durch die strikte Trennung zwischen Daten und Ansicht einer-
seits und modular aufgebauter Benutzungsoberfläche andererseits wird eine Erweiterung des
Editors gewährleistet. In den folgenden Abschnitten werden einzelne Bedienelemente und deren
Aufgaben genauer betrachtet.
SDML-Editor
GUI des Editors
Main Frame
Tab 3
(Service)
Tab 2
(Server Definition)
Tab 1
(Configuration
Management)
Tab 3-1
(Definition)
Tab 3-2
(DataProcessing)
Dokument-Klassen des Editors
CSDML
C ServiceC Server DefinitionC ConfigurationManagement
C Definition C DataProcessing
Abbildung 7.11: Statische Struktur des SDML-Editors
Bedienelemente des SDML-Editors
File Operations
Das Menü File Operations hat drei Funktionalitäten (siehe Abbildung 7.12). Mittels Load file
kann eine vorher gespeicherte SDML-Datei geladen werden. Diese Dateien enthalten die in den
Editor eingegebenen Daten. Die eingegebenen Daten können in einer SDML-Datei gespeichert
werden (Save file). Mit Hilfe der Funktion Create SDML file kann eine SDML-Datei aus den in
den Editor eingegebenen oder geladenen Dateien erzeugt werden.
Abbildung 7.12: Menü File Operation
Configuration Management
Diese Ansicht stellt Informationen über die Version der SDML sowie über Autoren und Versio-
nen dieser SDML-Datei dar (siehe Abbildung 7.13). Zunächst kann im Bereich SDML eine ID
für das zu erstellende Dokument, die Versionsnummer und der Status eingegeben werden. Im
94
Bereich Version Control werden Informationen über letzte Änderungen eingetragen. Falls es
sich um eine neue Version handelt, können die Informationen über diese neue Version im Feld
Versions eingegeben werden. Das Ergebnis der eingegebenen Daten in Abbildung 7.13 führt zu
einem SDML-Dokument, das in Abbildung 7.14 zu sehen ist.
Abbildung 7.13: Dialogfeld für Konfigurationsmanagement-Daten
1:
2:
3:
4:
5:
6:
7:
8: 1.1
11:
12:
13:
Abbildung 7.14: Generiertes SDML-Dokument aus Abbildung 7.13
95
Server
Die Information über den Server ist ein wesentlicher Teil eines SDML-Dokuments, da an einen
Fernzugriff-Server mehrere eingebettete Systeme angebunden werden können. Diese müssen
eindeutig identifizierbar sein. Der Fernzugriff-Server muss außerdem über die Art der Verbin-
dung zu jedem Gerät informiert werden. Die Ansicht Server im SDML-Editor bietet die Mög-
lichkeit zur Eingabe dieser Informationen (siehe Abbildung 7.15).
Abbildung 7.15: Dialogfeld für Server-Daten
Neben ID und Name des eingebetteten Systems muss die Host-Adresse (URL-Adresse) im Be-
reich Server Definition eingegeben werden. Der Bereich Connection Type ist für Informationen
über die Art der Verbindung reserviert.
1:
2:
3:
5: Socket-Verbindung
6:
7:
8:
Abbildung 7.16: Generiertes SDML-Dokument aus Abbildung 7.15
96
Services
Die Ansicht Service dient zur Definition der Dienste eines eingebetteten Systems. Die Anzahl
der Dienste ist unbegrenzt und kann beliebig wiederholt werden. Die Ansicht Services ist in
zwei weitere Fenster (Sub-Panes), Definition und Data-Processing, unterteilt. Abbildung 7.17
zeigt die Ansicht Services/Definition.
Abbildung 7.17: Dialogfeld für die Definition der Services
Im Feld Services kann mittels Auswahl-Button New ein neuer Service definiert werden. Im
Textfeld Call wird angegeben, wie der Service genannt werden soll. Im Listenfeld Access Level
kann entschieden werden, wer Informationen zu sehen bekommt. Derzeit ist eine Unterschei-
dung zwischen Gast, Anwender und Administrator vorgesehen. Im Beispiel aus Abbildung 7.17
wurde die Option Administrator ausgewählt, was bedeutet, dass nur die Administratoren diese In-
formation abfragen dürfen. Im Bereich Return Type kann Typ und Dimension des Rückgabe-
werts bestimmt werden. Über In Parameter kann ein Parameter definiert werden, der für den
Serviceaufruf benötigt wird. Ist im Feld Pre Condition ein Serviceaufruf als Vorbedingung fest-
gelegt, so wird der Parameter aus dessen Rückgabewert ermittelt. Der Eintrag im Feld Exception
veranlasst, dass beim Auftreten eines Fehlers während des Aufrufs eines Service eine Nachricht
an den Benutzer gesandt wird. Abbildung 7.18 zeigt das generierte SDML-Dokument aus
Abbildung 7.17.
97
1:
2:
3:
4:
5:
7:
8:
9:
10:
11:
12:
13:
Abbildung 7.18: Generiertes SDML-Dokument aus Abbildung 7.17
Ein weiterer Unterbereich der Ansicht Services ist Data-Processing, welches für die Datenauf-
bereitung der Prozessdaten für verschiedene Clients zuständig ist. Abbildung 7.19 zeigt die An-
sicht Services/ Data-Processing.
Aktuelle Prozessdaten
Abbildung 7.19: Dialogfeld für Datenaufbereitung
Mit Hilfe dieses Dialogfelds kann bestimmt werden, wie die angeforderten Prozessdaten bei den
jeweiligen Clients aussehen sollen. Falls zur Darstellung der Prozessdaten bei einem Client ein
98
Stylesheet existiert, kann dies im Feld Link eingetragen werden. Abbildung 7.20 zeigt das gene-
rierte SDML-Dokument aus Abbildung 7.19.
1:
2:
3:
4: Aktuelle Prozessdaten
5: Zeigt die aktuelle Prozessdaten
des industriellen Kaffeeautomaten
6:
7:
8:
9:
10:
11:
Abbildung 7.20: Generiertes SDML-Dokument aus Abbildung 7.19
7.3 Anwender-Schicht
Der Anwender (Client) verwendet einen gängigen Browser zur Kommunikation mit dem Fern-
zugriff-Server. Der Verbindungsaufbau erfolgt mittels URL (Uniform Resource Locator). Der
Nutzer gibt die URL-Adresse des Fernzugriff-Servers ein und gelangt damit zur Startseite dieses
Servers. Um die gesamte Kommunikation zwischen Anwender (Client) und Fernzugriff-Server
erläutern zu können, muss zunächst der Begriff Session definiert werden.
Begriffsdefinition Session
„Eine Sitzung (engl. Session, Anm. des Verf.) besteht aus einer Reihe von Request-Response-
Transaktionen mit demselben Client.“ [NaMy00]
Bei der ersten Anfrage an den Fernservice-Server wird der Anwender aufgefordert, sich einzu-
loggen. Durch den Benutzernamen und das Passwort wird die Zugangsberechtigung des An-
wenders ermittelt. Auf Grund dieser Berechtigung ergeben sich im weiteren Verlauf die Servi-
ces, die für diesen Anwender zur Auswahl stehen. Die Auswahl der zur Verfügung stehenden
Service ist vom jeweiligen Clienttyp abhängig. Hat der Anwender einen Service ausgewählt, er-
scheint das Ergebnis des Serviceaufrufs auf dem nächsten Screen5. Hier können dann weitere
Service zur Auswahl stehen, die eventuell durch das gezeigte Ergebnis parametrisiert werden.
5 Screnn = Bildschirmseite
99
Zudem hat der Anwender auf jeder Seite die Möglichkeit, die Session zu beenden oder ins
Hauptmenü zurückzukehren. Abbildung 7.21 beschreibt den Ablauf einer Session.
new page with
selection of Services
Fernzugriff-Server
Login
User in
UserAdminDB
?
yes
yes
Service
selected
?
no
main
menu
?
no
end
no
yes
new session
Abbildung 7.21: Ablauf einer Sitzung
Der Einsatz eines PDA als Client funktioniert genau wie bei einem PC, da für beinahe alle Ge-
räte der aktuellen Generation von Personal Digital Assistants inzwischen einfache Browser vor-
handen sind. Allerdings kennen diese Browser meist keine aktiven Elemente wie JavaScript,
Applets oder ActiveX-Controlls, sondern verstehen ausschließlich HTML 2.0. Diese Einschrän-
kung wirkt sich in einer reduzierte Möglichkeit der Darstellung der Information aus, sodass
komplexe Bilder vermieden werden müssen.
Für Geräte mit sehr kleinen Displays, die nur etwa 10 bis 20 Wörter in 2 bis 5 Zeilen darstellen
können, wie ein mobiles Telefon, müssen die Informationen im Allgemeinen extra aufbereitet
werden, und zwar in einem stark gekürzten und wesentlich kompakteren Format. Da solche Ge-
räte meist auch über geringere Rechen-Ressourcen verfügen als PCs oder Workstations, muss
100
außerdem ein Format und ein Protokoll verwendet werden, das möglichst effizient verarbeitet
werden kann.
Der Anwender, der sich mittels eines mobilen Telefons mit dem FzS verbinden möchte, muss
ein WAP-fähiges (Wireless Application Protocol) Gerät verwenden, das das WML-Protokoll
(Wireless Markup Language) unterstützt. Im Folgenden werden die zwei Protokolle kurz erläu-
tert.
WAP
1997 wurde das WAP-Forum gegründet (u. a. von Ericsson, Motorola und Nokia), das einen
neuen Standard für die kabellose Kommunikation verschiedener Endgeräte (Palmtops, Mobilte-
lefone etc.) mit verschiedenen Betriebssystemen (Palm OS, Windows CE, EPOC) über unter-
schiedliche Netze (GSM, UMTS etc.) entwickeln sollte. Besonders wurde dabei auf die sichere
Übertragung der Daten zwischen zwei Anwendern geachtet. Entwickelt wurde schließlich WAP,
das inzwischen de facto Standard für die Kommunikation von mobilen Telefonen mit dem In-
ternet bildet.
Bei der Entwicklung des WAP-Standards wurde besonders auf die eingeschränkten Möglich-
keiten der mobilen Endgeräte Rücksicht genommen. Diese besitzen zugunsten längerer Akku-
laufzeiten oftmals eine relativ langsame Rechenleistung und nur wenig Speicher. Auch bleibt
auf den immer kleiner werdenden Geräten kaum noch Platz für ein Anzeige-Element. Jeder
Punkt des kleinen Bildschirms ist also kostbar und muss möglichst effizient genutzt werden.
Klassische WAP-Anwendungen kommen mit gerade mal vier Zeilen à 10 Zeichen aus. Je nach
Endgerät hat der Anwender unterschiedliche Möglichkeiten, mit der Anwendung zu kommuni-
zieren: Mal ist eine Stifteingabe vorgesehen, mal ist eine winzige Schreibmaschinen-Tastatur im
Gehäuse zu finden und oftmals müssen sich Mobiltelefon-Besitzer mit 12 kleinen Tasten zufrie-
den geben. Auf all das galt es während der Entwicklung des Standards Rücksicht zu nehmen.
Die Anwendungen sollen jedoch nicht nur den kleinsten gemeinsamen Nenner unterstützen,
sondern müssen „skalierbar“ sein. Das heißt, ein Anwender, der mit einem farbfähigen Endgerät
via Breitband-Übertragung auf die Dienstleistung zugreift, muss sich nicht mit einer briefmar-
kengroßen Schwarzweiß-Oberfläche begnügen, sondern die Anwendungen lassen sich benutzer-
spezifisch anpassen. Des Weiteren greifen Dienste, die über den WAP-Standard Daten austau-
schen, nicht nur auf spezifische Möglichkeiten eines bestimmten Netzes zurück, sondern sind in
ihrer Funktionalität von den darunter liegenden digitalen Netzen unabhängig.
Der Datenaustausch zwischen Kunden und Dienstleistungsanbieter erfolgt im WAP-Modell
nicht direkt. Im Gegensatz zum „konventionellen“ Internetzugriff befinden sich beide Geräte in
unterschiedlichen Netzen bzw. Netzwerksystemen. Ein WAP-Zugangsrechner (WAP-Gateway)
übernimmt die Vermittlerrolle zwischen drahtgebundenem und kabellosem Netzwerk. Dabei er-
folgt die Kommunikation zwischen Zugangsrechner und Dienstleistungs-Anbieter wie gewohnt
101
über das HTTP-Protokoll. Bei der drahtlosen Übertragung zum Endanwender kommt das WAP-
Protokoll zum Einsatz. Ähnlich wie bei der Datenübertragung im Internet via TCP/IP besteht
auch das WAP-Protokoll aus verschiedenen Schichten, also spezialisierten und gruppierten
Merkmalen des Protokolls, die aufeinander aufbauen. Jede „Schicht“ ist dabei durch ihre eige-
nen Richtlinien, gewissermaßen „Unterprotokolle“, geprägt.
Auf das netzabhängige System, das nicht direkt mit WAP in Verbindung steht und sozusagen als
„Träger-Medium“ der Kommunikation fungiert, setzt die Übertragungsschicht auf. Das „Daten-
paket-Protokoll“ (Wireless Datagramm Protocol) übernimmt die Funktion des Vermittlers zwi-
schen dem Träger und der weiteren Verarbeitung der Daten. Dabei wird auf die spezifischen Ei-
genschaften des Trägers eingegangen, zum Beispiel auf eine niedrige Bandbreite. Dazu wurde
eine neue Sprache entwickelt, die den Anforderungen mobiler Endgeräte gerecht werden soll,
die „drahtlose Markierungssprache“ WML, eine Ausprägung von XML. Die WML Sprache
wird im Folgenden kurz beschrieben.
WML
Im Gegensatz zu HTML enthält WML6 eine Art „Ereignismodell“, das dem Entwickler erlaubt,
einfache Funktionen wie das Zurücknavigieren o.Ä. als Reaktion auf ein bestimmtes Ereignis
(Drücken einer Taste, Ablauf einer Stoppuhr ...) zu definieren.
Diese Möglichkeiten sind jedoch stark eingeschränkt. Zum Beispiel lassen sich Berechnungen
mit WML nicht durchführen. Dafür gibt es jedoch WMLScript, eine Sprache, mit der sich Pro-
gramm-Fragmente in WAP-Seiten einbinden lassen. Dieses Programm wird auf dem Endgerät
ausgeführt, um z. B. vor der Übertragung Formulardaten auf ihre Gültigkeit hin zu überprüfen.
Da die Bandbreite der Netze jedoch sehr gering ist, wird WMLScript, wie übrigens WML-Sei-
ten auch, direkt in Binärdarstellung zum Endgerät übertragen. Einziges Manko beim Einsatz von
WMLScript ist die bisher fehlende Unterstützung durch Endgeräte.
Seiten, die durch die Markierungssprache WML beschrieben werden, halten ihre Informationen
auf so genannten „Karten“, die jeweils einer Seite auf dem Anzeigeelement des Endgerätes ent-
sprechen. Mehrere Karten werden in einem Karteikasten (engl. „deck“) zusammengefasst und
jeder Kasten entspricht einer Datei im Dateisystem des Dienstleistungsrechners.
Konventionsgemäß enden die Namen dieser Dateien mit „.wml“. Da die Speicher der mobilen
Geräte sehr eingeschränkt sind, muss man darauf achten, dass die gesamte Datei nicht größer als
1.400 Zeichen wird – ansonsten erscheint womöglich gar nichts beim Anwender. Aufgrund die-
ser Einschränkung soll besonders darauf geachtet werden, welche Fernservice-Funktionen den
„Mobilen Telefon-Clients“ zur Verfügung gestellt werden.
6 Wireless Markup Language
102
Abbildung 7.22 zeigt ein Beispiel für eine WML-Datei.
1:
2:
3:
4:
5: Ventil_Heisswasser offen!
6:
7:
Abbildung 7.22: Aufbau einer WML-Datei
Wie jedes XML-Dokument beginnt auch eine WML-Datei mit der obligatorischen Kopfzeile. In
der ersten Zeile wird angezeigt, dass WML von der XML-Version 1.0 abstammt. Die zweite
Zeile legt den Dokumententyp fest und spezifiziert den verwandten WML-Standard, hier 1.1.
Untergeordnet befinden sich die einzelnen Karten des Karteikastens, jeweils in „card“-Tags ein-
gebettet. Das Attribut „id“ stellt dabei eine eindeutige Bezeichnung der Karte innerhalb des Sta-
pels und „title“ die Überschrift, die im Anzeigeelement des mobilen Gerätes eingeblendet wird,
dar. Die Karten enthalten die Information, wobei wie in HTML die Texte jeweils in Abschnitte
durch markiert und eingeteilt werden.
Bei der Anzeige im Endgerät fällt auf, dass schon relativ viel Anzeigefläche verbraucht wurde,
obwohl der Informationsgehalt der WAP-Seite noch nicht besonders groß ist. Bei der Entwick-
lung von Internet-Seiten für mobile Geräte steht demnach der Informationsgehalt im Vorder-
grund, das Design ist fast zu vernachlässigen. Daher haben Auszeichnungen wie fett, kursiv oder
unterstrichen eine größere Bedeutung als bei herkömmlichen Internetseiten. Bei WML-Seiten
kommen die eingeschränkten Anzeigefähigkeiten des Endgerätes hinzu: Kann ein Entwickler
bei einem normalen Monitor immerhin noch von mindestens 640x480 Bildpunkten ausgehen,
muss der Entwickler von WML-Seiten mit einer durchschnittlichen Auflösung von 60x40
Punkten auskommen. Auch ist die Implementierung je nach Endgerät sehr unterschiedlich. Dies
beschränkt sich nicht nur auf eine variierende Anzeige, sondern die Bedienung der WAP-An-
wendung ist zudem nicht eindeutig festgelegt.
Darstellungsprobleme werden bei HTML-Seiten oftmals durch den Einsatz von Grafiken um-
gangen. Auch WAP sieht eine Darstellung von Grafiken vor, allerdings wird nur das Format
WBMP (Wireless Bitmaps, drahtlose pixelorientierte Grafiken) unterstützt. Dieses Format bein-
haltet lediglich 1 Bit Farbtiefe, jeder Punkt kann also entweder nur schwarz oder weiß sein.
Sinnvolle Größen für WBMP-Bilder sind ca. 32 auf 32 Bildpunkte, da größere Grafiken evtl.
von den Endgeräten nicht mehr dargestellt werden können. Die Grafiken werden wie bei HTML
über die
-Markierung eingebunden. Neben der einzubindenden Grafik muss hierbei auch
noch ein Alternativtext angegeben werden, falls die Grafik nicht geladen werden kann. Die Dar-
103
stellung von Grafiken ist beim Zugriff auf das Internet vom Mobiltelefon aus also stark einge-
schränkt.
Eine weitere gravierende Einschränkung bei der Entwicklung der WML-Seiten ist auch der ge-
ringe Speicher der mobilen Endgeräte. Eine Seite, die auf allen gängigen Geräten angezeigt
werden soll, darf insgesamt nicht mehr als 1400 Zeichen groß sein. Die maximale Größe der
Dateien variiert aber von Gerät zu Gerät, und der Entwickler hat es hier nicht wie im WWW mit
nur zwei bis drei konkurrierenden Interpreter-Systemen zu tun, sondern mit über einem Dut-
zend.
104
8 Fallbeispiele
In den vorangegangenen Kapiteln wurde ein Verfahren zur Anbindung verschiedener eingebet-
teter Systeme an einen Fernzugriff-Server vorgestellt. Dadurch ist der Fernzugriff-Server in der
Lage, mit den Geräten zu kommunizieren, auf gleiche Art und Weise deren Prozessdaten abzu-
fragen und sie bei unterschiedlichen Clients in ein jeweils angepasstes Format zu überführen
und darzustellen. Um das Verfahren zu evaluieren, wurde zunächst ein Fernzugriff-Server ent-
wickelt. An diesen Fernzugriff-Server wurden zwei eingebettete Systeme, ein industrieller Kaf-
feeautomat und ein Aufzugsmodell angebunden, die am Institut für Automatisierungs- und
Softwaretechnik (IAS) der Universität Stuttgart zur Verfügung stehen.
In diesem Kapitel wird zunächst die Realisierung des Fernzugriff-Servers erläutert. Danach
werden die eingebetteten Systeme und die dafür entwickelten Komponenten vorgestellt. An-
schließend wird das gesamte System und folgende drei Clients, ein PC, ein PDA und ein mobi-
les Telefon, vorgestellt. Zum Schluss werden die dabei gesammelten Erfahrungen diskutiert.
8.1 Systemarchitektur
Für die Evaluierung des Verfahrens wurde eine komplette Applikation (bestehend aus Ferndia-
gnose, Fernvisualisierung, Fernwartung und Fernbedienung) realisiert. Sie besteht aus zwei ein-
gebetteten Systemen, dem Kaffeeautomaten und dem Aufzugsmodell, einem Fernzugriff-Server
und mehreren Clients. Diese sind jeweils über das Internet miteinander verbunden.
Abbildung 8.1 zeigt die Systemarchitektur der realisierten Applikation.
Fernzugriff-Server (FzS)
Aufzugsmodell
allgemeine
Anbindungskomponente (aAk)
Datenaufbereitungs-
komponente (Dak)
Webserver
Internet
Internet
SDML
Kaffeeautomat
spezielle Anbindungs-
komponente (sAk)
Steuerung
spezielle Anbindungs-
komponente (sAk)
Steuerung
Handy
PDA
PC
Abbildung 8.1: Systemarchitektur der Applikation
105
8.2 Beschreibung der Systemkomponenten
8.2.1 Clients
Als Clients kommen ein Standard-PC, ein Personal Digital Assistent (PDA) und ein mobiles
Telefon zum Einsatz. Die Darstellung der Prozessdaten auf dem PC erfolgt mit Hilfe eines
Webbrowsers. Der PC muss daher das Hyper Text Transfer Protokoll (HTTP) ab der Version
1.0 unterstützen. Auf PDA, ein Compaq-Gerät, muss ebenfalls ein Webbrowser installiert sein.
Das mobile Telefon ist ein WAP-Handy, da nur dieses die Wireless Markup Language (WML)
für die Präsentation der Prozessdaten unterstützt.
8.2.2 Fernzugriff-Server
Der Fernzugriff-Server besteht aus drei Komponenten: dem Webserver, der Datenaufberei-
tungskomponente und der allgemeinen Anbindungskomponente. Zudem verfügt er über zwei
SDML-Dokumente, die aber kein notwendiger Bestandteil des Fernzugriff-Servers sind, jedoch
für die Anbindung der eingebetteten Systeme benötigt werden. Sie wurden in dieser Realisie-
rung auf dem Fernzugriff-Server zur Verfügung gestellt, können aber auch an einem anderen
Ort im Internet abgelegt werden. Im Folgenden werden die Bestandteile des Fernzugriff-Servers
erläutert.
Webserver
Der Webserver ist für die Kommunikation mit dem Webbrowser des Clients verantwortlich. Er
nimmt die Anfragen des Clients entgegen und übermittelt diese über die Servlet-Engine Tomcat
und das XSP-Servlet Cocoon an die Datenaufbereitungskomponente (Dak). Die generierten
Antwort-Seiten des Fernzugriff-Servers werden dann vom Webserver an den anfragenden Client
übermittelt. Abbildung 8.2 stellt diese Kommunikation grafisch dar.
106
Fernzugriff-Server
allgemeine Anbindungskomponente
Datenaufbereitungskomponente
Internet
Anfrage
Antwort
Webserver
Servlet Engine
Cocoon
Abbildung 8.2: Webserver für die Kommunikation zwischen Client und Datenaufbereitungs-
komponente
Datenaufbereitungskomponente
Die Anfrage eines Clients mittels des Webservers wird durch die Datenaufbereitungskompo-
nente (Dak) an die allgemeine Anbindungskomponente weitergeleitet. Diese veranlasst den Auf-
ruf des entsprechenden Service bei der speziellen Anbindungskomponente des entsprechenden
Geräts. Das Ergebnis dieses Serviceaufrufs wird anschließend von der Datenaufbereitungskom-
ponente entsprechend der Beschreibung im SDML-Dokument für den anfragenden Client aufbe-
reitet. Dieser Sachverhalt ist in Abbildung 8.3 dargestellt.
aAk
Datenaufbereitungskomponente
(Dak)
Client-
Handler
XSP-
Anfrage
Request-
Processor
ScreenFlow-
Manager
Dak-
Controller
SDML-
Reader
aAk-
Controller
XML-
Antwort
XSL-
PC
SDMLSD LSDML
XSL-
PDA
XSL-
Handy
XSL-
.....
Abbildung 8.3: Aufbau der Datenaufbereitungskomponente
107
Die einzelnen Bestandteile der Datenaufbereitungskomponente haben folgende Aufgaben:
• Der ClientHandler übernimmt sämtliche Anfragen der Clients und fungiert als einziger
Zugang zur Dak.
• Der ScreenFlowManager ermittelt aus der aktuellen Anfrage und den darin enthaltenen
Parametern die nächste aufzurufende Seite.
• Der RequestProcessor ist das Herzstück der Datenaufbereitungskomponente. Er bear-
beitet die über den ClientHandler kommenden Anfragen. Hier werden Korrektheit und Voll-
ständigkeit der zugehörigen Parameter überprüft. In dieser Komponente steckt somit beinahe
die gesamte Anwendungslogik für die Datenaufbereitung. Diese Komponente kann bei grö-
ßeren Systemen bei Bedarf in weitere Komponenten untergliedert werden.
• Der SDMLReader liest das SDML-Dokument ein und ist für den kontrollierten Zugriff auf
dessen einzelne Elemente zuständig.
• Der DakController stellt den kontrollierten Zugang zur allgemeinen Anbindungskompo-
nente her.
• Der aAkController stellt den kontrollierten Zugang zur Datenaufbereitungskomponente
her.
Allgemeine Anbindungskomponente
Die allgemeine Anbindungskomponente stellt die Verbindung über das Intranet/Internet mit ei-
ner speziellen Anbindungskomponente des eingebetteten Systems her. Die zentrale Zugangs-
stelle für die allgemeine Anbindungskomponente bildet der aAk-Controller. Hier sind alle
Funktionalitäten abgelegt, die von dieser Komponente angeboten werden. Die allgemeine An-
bindungskomponente unterstützt Verbindungen mittels Socket, RMI oder CORBA. Für jede
dieser Verbindungsarten gibt es wiederum eine Komponente, die alle Funktionalitäten repräsen-
tiert. Bei der Kommunikation übernimmt die aAk die Rolle eines Clients. Abbildung 8.4 zeigt
die Architektur der allgemeinen Anbindungskomponente.
108
allgemeine Anbindungskomponente
(aAk)
Socket-
Client
RMI-
Client
CORBA-
Client
Socket-
Controller
RMI-
Controller
CORBA-
Controller
aAk-
Controller
Dak
Dak-
Controller
Abbildung 8.4: Architektur der allgemeinen Anbindungskomponente
SDML-Dokumente
Es gibt zwei SDML-Dokumente, die für den Kaffeeautomaten (WMF_Combination_SDML.xml) bzw.
für das Aufzugsmodell (Aufzug_SDML.xml) verwendet werden. Sie beinhalten Informationen über
die Art der Verbindung zum Gerät und die aufzurufenden Prozessdaten.
8.2.3 Automatisierungsgeräte
Als Automatisierungsgeräte werden zwei Geräte an den Fernzugriff-Server angebunden, der in-
dustrielle Kaffeeautomat und das Aufzugsmodell. Sie stellen die Prozessdaten bereit, die von
den Clients abgefragt werden können. Im folgenden Abschnitt werden die Geräte und die zur
Anbindung entwickelten spezifischen Komponenten beschrieben.
8.3 Eingebettete Systeme zur Bereitstellung der
Prozessdaten
8.3.1 Fallbeispiel „Industrieller Kaffeeautomat“
Der industrielle Kaffeeautomat WMFcombiNationS ist ein Einzeltassenvollautomat für Es-
presso, Café Crème, Cappuccino, Milchkaffee, Latte macchiato und Filterkaffee. Außerdem ist
eine Heißwasser- bzw. Dampfentnahme möglich. Es können sowohl Kaffeebohnen als auch ge-
mahlener Kaffee verarbeitet werden, und über die Handzugabe ist die Zubereitung einer zusätz-
lichen Kaffeemehlsorte möglich. Die Bedienerführung der Maschine erfolgt über ein grafisches
Touch-Screen-Display. Durch Druck auf bestimmte Felder auf dem Display können Funktionen
der Maschine aktiviert bzw. Informationen abgerufen werden. Abbildung 8.5 zeigt die Front-
seite des beschriebenen Kaffeeautomaten.
109
Abbildung 8.5: Frontseite des industriellen Kaffeeautomaten
Abbildung 8.6 gibt einen grundlegenden Einblick in den Aufbau des Kaffeeautomaten.
Industrieller Kaffeeautomat
"WMF CombiNation S"
Leistungsstufe
(LST)
CAN Bus
Tasten
Schalter
Display
Ventil
Motor
Steuerungsstufe
(ST 5)
Abbildung 8.6: Struktureller Aufbau des Kaffeeautomaten
„Der Kaffeeautomat besteht aus zwei verschiedenen Komponenten und zwar aus einer 5V
Steuerungsstufe (ST5) und aus einer 24V Leistungsstufe (LST). Die Steuerungsstufe enthält die
eigentliche Steuerungssoftware und verwaltet die einzelnen Tasten, das Display und die Schalter
der Anwendung. An diese Komponente sind alle Bedienungstasten des Kaffeeautomaten ange-
schlossen. Die Leistungsstufe verwaltet einzelne Aktoren der Hardware: dazu gehören in erster
Linie Ventile und Motoren. Beide Komponenten kommunizieren über CAN-Bus (Controller
110
Area Network [Etsc00]) miteinander. Als Anwendungsprotokoll wird die so genannte
CANopen-Spezifikation verwendet.
Das eigentliche Steuerungsprogramm des Kaffeeautomaten wird in der Steuerungsstufe ausge-
führt. Dabei werden von der Steuerungsstufe aus einzelne Ventile über die Leistungsstufe akti-
viert. Dies erfolgt über eine so genannte Master-Slave-Beziehung zwischen Steuerungsstufe und
Leistungsstufe. Die Steuerungsstufe stellt den Master dar und überprüft in regelmäßigen Ab-
ständen den Zustand der einzelnen Aktoren über die Leistungsstufe. Die Leistungssufe ist der
Slave und führt die Anweisungen des Masters aus.
8.3.1.1 Anbindung des Kaffeeautomaten an den Fernzugriff-Server
Ein Gesamtüberblick der Anbindung des industriellen Kaffeeautomaten an den Fernzugriff-Ser-
ver ist in der Abbildung 8.7 dargestellt.
Kaffeeautomat
Fernzugriff-Server (FzS)
allgemeine
Anbindungskomponente (aAk)
Datenaufbereitungs-
komponente (Dak)
Webserver
Internet
Internet
SDML-
Kaffeeautomat
Handy
PDA
Laptop
spezielle Anbindungs-
komponente (sAk)
Steuerung
Abbildung 8.7: Anbindung des Kaffeeautomaten an den Fernzugriff-Server
Zur Anbindung des Kaffeeautomaten an das Internet wurde eine spezifische Anbindungskom-
ponente implementiert, die einerseits Anfragen des Fernzugriff-Servers entgegennimmt und an-
dererseits abgefragte Informationen dem FzS via Internet zur Verfügung stellt. Die Anbindung
des Kaffeeautomaten an den Fernzugriff-Server und die Bereitstellung der Prozessdaten werden
nachfolgend anhand eines einfachen Beispiels gezeigt. Zur Vereinfachung soll das eingebettete
System durch einen so genannten Dienstserver, der nur einen einzigen Service zur Verfügung
stellt, repräsentiert werden. Der Service liefert als Ergebnis das berühmte „Hello World“, das
anschließend auf dem Client dargestellt wird. Abbildung 8.8 zeigt, wie dieser Dienstserver reali-
siert werden kann.
1: public class HelloWorldDS
2: {
3: public HelloWorldDS()
111
4: {}
5:
6: public String HelloWorld()
7: {
8: return "Hello World";
9: }
10: public static void main( String[] args )
11: {
12: new HelloWorldDS();
13: }
14: }
Abbildung 8.8: Einfacher Dienstserver
Der Dienstserver besitzt genau eine Methode HelloWorld, die im Folgenden zum Service
HelloWorld erweitert wird. Für den Fernzugriff auf diesen Service muss der Dienstserver
durch die spezielle Anbindungskomponente erweitert werden. Hierfür wird eine Wrapper-Kom-
ponente speziell für diesen Dienstserver entwickelt, die für den richtigen Aufruf des Service
sorgt. Das Ergebnis wird in der Weise aufbereitet, wie es die allgemeine Anbindungskompo-
nente des Fernzugriff-Servers erwartet. In diesem Fall besteht die Wrapper-Komponente ledig-
lich aus folgender Klasse (siehe Abbildung 8.9).
1: // sAk imports
2: import de.uni_stuttgart.ias.SCC.*;
3: import java.util.Vector;
4: public class HelloWorldDSWrapper implements SCCInterface
5: {
6: // Schnittstelle zum Dienstserver
7: private HelloWorldDS dienstserver = null;
8: public HelloWorldDSWrapper( HelloWorldDS dienstserver )
9: {
10: this.dienstserver = dienstserver;
11: // Initialisierung und Starten des Servers
12: SpecialConnection specialconnection =
13: new SpecialConnection( this, false, "", 6326 );
14: specialconnection.startServer();
15: public Vector callService( String servicename, Vector inParameter )
16: {
17: if ( servicename.equals( "HelloWorld" ) )
18: {
19: return wrapHelloWorld( inParameter );
20: }
21: else
22: {
112
23: return null;
24: }
25: }
26: public Vector wrapHelloWorld( Vector inParameter )
27: {
28: Vector result = new Vector();
29: String helloworld = dienstserver.HelloWorld();
30: Vector data = new Vector();
31: data.addElement( helloworld );
32: result.addElement( data );
33: return result;
34: }
35: }
Abbildung 8.9: Wrapper-Komponente für den Dienstserver HelloWorldDS
Im Konstruktor erhält die Wrapper-Komponente eine Referenz auf den Dienstserver, um somit
den eigentlichen Service aufrufen zu können. Außerdem wird im Konstruktor eine Instanz der
Klasse SpecialConnection gebildet, die Teil der Fernzugriffskomponente der sAk ist. Da die
Fernzugriffskomponente nicht angepasst werden muss, wurde sie in die Java-Bibliothek aufge-
nommen, die in dieser Arbeit entwickelt worden ist. So ist es möglich, die Fernzugriffskompo-
nente durch lediglich zwei Zeilen Code zu instanzieren und zu starten. Für die Socketverbin-
dung wird der Port auf 6326 festgelegt, über den eingehende Anfragen überwacht werden.
Damit die Fernzugriffskomponente auf die abstrakte Methode callService der Wrapper-
Komponente zugreifen kann, muss die Methode implementiert und das Interface SCCInter-
face aus der Bibliothek eingebunden sein. Die Umsetzung des Serviceaufrufs HelloWorld
und die Konvertierung des Ergebnisses erfolgt dabei in der Methode wrapHelloWorld. Im
letzten Schritt muss der Dienstserver dahingehend erweitert werden, dass er die Wrapper-Kom-
ponente instanziert (siehe Abbildung 8.10).
1: public HelloWorldDS()
2: {
3: new HelloWorldDSWrapper(this);
4: }
Abbildung 8.10: Instanziierung der Wrapper-Komponente
Übrig bleibt noch die Erstellung eines SDML-Dokuments, in dem die Art der Verbindung, der
Verbindungsaufbau und die Aufbereitung des Ergebnisses definiert sind.
Definition des Verbindungsaufbaus
In Abbildung 8.9 (Zeile 14) wurde der Port, auf den der Socket-Server der Fernzugriffskompo-
nente der sAk hört, auf den Wert 6326 festgelegt. Zudem müssen dem Dienstserver noch die
eindeutige ID HelloWorldDS und der Name HelloWorldDS zugeteilt werden. Der Name er-
113
scheint bei der Auswahl der Dienstserver auf der Startseite des Fernzugriff-Servers. Daraus er-
gibt sich folgende SDML-Definition (siehe Abbildung 8.11).
1:
3:
4:
Abbildung 8.11: Definition des Verbindungsaufbaus
Definition des Service-Aufrufs
Ein Service ist definiert durch eine eindeutige ID und seinen Serviceaufruf (Call), damit die
Wrapper-Komponente den eigentlichen Service aufruft. Des Weiteren wird der Text festgelegt,
der auf dem Button zur Auswahl des Service, der beim Client angezeigt wird, erscheinen soll.
Der Rückgabetyp des Services HelloWorld besteht aus einem einfachen Text und hat daher die
Dimension 0. Die Dimension gibt an, ob der Service einen einzelnen Wert, eine Liste oder gar
eine Matrix zurückliefert (siehe Abbildung 8.12).
1:
2:
3:
Abbildung 8.12: Definition des Serviceaufrufs
Definition der Ergebnisaufbereitung
Auf der Antwortseite des Serviceaufrufs kann ein Titel und eine kurze Beschreibung für den
Benutzer angegeben werden. Für den Service HelloWorld wurde zudem noch festgelegt, dass das
Ergebnis einem PC und einem PDA zur Verfügung gestellt wird und jeweils in Form eines ein-
fachen Textes dargestellt wird (siehe Abbildung 8.13).
1:
2: Hello World
3: Result of the very simple Dienstserver
4: HelloWorldDS'.
5:
6:
7:
Abbildung 8.13: Definition der Aufbereitung des Ergebnisses
8.3.2 Fallbeispiel „Aufzug“
Das Aufzugsmodell besitzt zwei Schächte, die gemeinsam vier Stockwerke bedienen. An jedem
Einstiegspunkt sind für die möglichen Fahrtrichtungen Tasten angebracht, um den Aufzug anzu-
114
fordern. Diese Tasten können beleuchtet werden, um die Anforderung zu quittieren. Zusätzlich
besitzt jedes Stockwerk für jeden Fahrkorb Signale, welche die aktuelle Fahrtrichtung des Fahr-
korbs anzeigen. Im obersten und untersten Stockwerk stehen natürlich nur die Anforderungsta-
sten und Kontrollsignale zur Verfügung, in deren Richtung eine Weiterfahrt möglich ist. Jede
Einstiegsmöglichkeit in den Aufzug ist durch eine Tür gesichert, deren Zustand durch einen Si-
cherheitsschalter überwacht wird. Die Bedienelemente, die normalerweise in den Fahrkörben
vorhanden sind, wurden zur Vereinfachung der Bedienung an der Frontseite des Aufzugsmo-
dells angebracht. Dabei steht für jedes Stockwerk eine Anforderungstaste zur Verfügung, die
den Fahrtwunsch durch Beleuchtung quittiert. Weiterhin ist ein Not-Aus-Schalter vorhanden,
um den Fahrbetrieb im Notfall sofort anhalten zu können.
Abbildung 8.14 zeigt die Frontseite des beschriebenen Aufzugsmodells. Die aktuelle Position
und Bewegung des Fahrkorbs wird mit Hilfe von vier Sensoren je Stockewerke erfasst, die in-
nerhalb des Schachts angebracht sind. Jeder Fahrtrichtung sind zwei Sensoren zugeordnet – der
erste ist für das rechtzeitige Abbremsen des Fahrkorbs zuständig, falls im betreffenden Stock-
werk angehalten werden soll, und der zweite signalisiert die exakte Position, an welcher der
Fahrkorb angehalten werden muss.
Abbildung 8.14: Frontseite des Aufzugsmodells
115
8.3.2.1 Anbindung des Aufzugsmodells an den Fernzugriff-Server
Abbildung 8.15 zeigt die Anbindung des Aufzugsmodells an den Fernzugriff-Server.
Fernzugriff-Server (FzS)
allgemeine
Anbindungskomponente (aAk)
Datenaufbereitungs-
komponente (Dak)
Webserver Internet
SDML-
Aufzug
Handy
PDA
LaptopAufzugsmodell
spezielle Anbindungs-
komponente (sAk)
Steuerung
Internet
Abbildung 8.15: Anbindung des Aufzugsmodells an den Fernzugriff-Server
Zur Anbindung des Aufzugsmodells an den FzS wurde nach beschriebenem Prinzip in Abschnitt
8.3.1.1 eine spezifische Anbindungskomponente implementiert, die einerseits Anfragen des
Fernzugriff-Servers entgegennimmt und andererseits abgefragte Informationen dem FzS über
das Internet zur Verfügung stellt. Außerdem wurde eine SDML-Datei erstellt, die Informationen
über die Art der Verbindung zum Aufzugsmodell (in diesem Fall eine Socketverbindung) und
die aufzurufenden Prozessdaten beinhaltet. Der Zeitaufwand zur Erstellung spezieller Anbin-
dungskomponenten und der SDML-Datei betrug ca. eine Mann-Woche. Hierbei nahm die Ein-
arbeitung in die Steuerung des Aufzugsmodells einen nicht zu vernachlässigenden Anteil ein.
Das bedeutet, dass der Implementierungsaufwand noch reduziert werden kann.
8.4 Abfrage und Präsentation der Prozessdaten
Der komplette Ablauf einer Session, beginnend mit der Anfrage eines Clients bis zur Präsenta-
tion der geforderten Prozessdaten, ist im Sequenzdiagramm der Abbildung 8.16 wiedergegeben.
Eine Anfrageseite wird vom ClientHandler aufgenommen und an den RequestProcessor
übergeben. Dieser ruft beim DakController den abstrakten Service callService mit den
entsprechenden Parametern aus dem SDML-Dokument auf. Der DakController leitet den
Service-Aufruf an die Komponenten aAkController der allgemeinen Anbindungskompo-
nente weiter. Der Serviceaufruf wird übermittelt und der Rückgabewert an den DakControl-
ler gegeben. Der RequestProcessor verarbeitet den Rückgabewert nach der Beschreibung
im SDML-Dokument. Dabei werden nicht nur der Typ des anfragenden Clients berücksichtigt,
sondern auch die Zugriffsrechte des Benutzers, der sich auf dem Gerät eingeloggt hat. Die ver-
116
arbeiteten Rückgabewerte werden anschließend vom ClientHandler, nachdem dieser vom
ScreenFlowManager die nächste darzustellende Seite erfragt hat, in die Antwortseite einge-
bunden und mittels des Webservers an den Client gesandt.
sAk ControlleraAk ControllerScreenFlowManagerRequestProcessor
{}
Clientanfrage
Antwortseite
Anfrage bearbeiten
callService (...)
erstelle Antwortseite()
nächste Seite
ClientHandler
callService (...)
Abbildung 8.16: Sequenzdiagramm zur Bearbeitung einer Anfrage eines Clients
Wenn der Fernzugriff-Server gestartet ist, kann ein beliebiger Client mittels Browser eine Ver-
bindung zu ihm herstellen. Auf der Startseite wird dem Benutzer nun eine Auswahl der für die-
sen Fernzugriff-Server zur Verfügung stehenden eingebetteten Systeme angeboten (siehe
Abbildung 8.17).
117
Fernzugriff-Server
Abbildung 8.17: Startseite des Fernzugriff-Servers
Nachdem der Benutzer ein Gerät ausgewählt und den Button connect gedrückt hat, erscheint auf
der darauf folgenden Seite eine Auswahl der auf diesem Gerät zur Verfügung stehenden Servi-
ces. Von diesen Services kann ein beliebiger ausgewählt werden. Jeder Service kann dabei wei-
tere Services bereitstellen. Des Weiteren besteht auf jeder Seite die Möglichkeit, die Verbindung
zum Gerät zu beenden bzw. zum Hauptmenü – der Auswahl der Services der ersten Ebene – zu-
rückzukehren.
Wird zum Beispiel die WMF Combination ausgewählt, steht u. a. der Service get process data
zur Verfügung. Dieser Service liefert die aktuellen Prozessdaten des Kaffeeautomaten. Abhän-
gig vom Typ des Clients werden die gleichen Informationen unterschiedlich dargestellt (siehe
Abbildung 8.18 und 8.19).
118
Abbildung 8.18: Aktuelle Prozessdaten des Kaffeeautomaten auf dem PC
Abbildung 8.19: Aktuelle Prozessdaten des Kaffeeautomaten auf dem PDA
119
8.5 Ergebnisse und Erfahrungen
Nachdem der Prototyp, bestehend aus einem Fernzugriff-Server, zwei eingebetteten Systemen
und drei Clients, und seine Funktionsweise beschrieben wurden, sollen in diesem Abschnitt die
gesammelten Erfahrungen wiedergegeben werden.
Die Clients
Der wichtigste Punkt bei den Clients war, dass keine zusätzliche Software installiert werden
muss. Durch den Einsatz eines gewöhnlichen Browsers sind sie sofort in der Lage, eine Verbin-
dung mit dem Fernzugriff-Server herzustellen und dessen Dienste in Anspruch zu nehmen.
Der Fernzugriff-Server
Der Fernzugriff-Server wurde einmalig implementiert und ist in der Lage, beliebig viele einge-
bettete Systeme anzubinden und Lese- und Schreibaktionen durchzuführen. Um ein neues ein-
gebettetes System an den Fernzugriff-Server anzubinden, muss lediglich eine Codezeile der
Konfigurationsdatei hinzugefügt werden. Dies geschieht derzeit manuell, eine Unterstützung
durch eine grafische Benutzungsoberfläche ist jedoch denkbar, damit sich der Anwender über-
haupt nicht mehr mit Code auseinander setzen muss. Dazu kommt die Bereitstellung eines
SDML-Dokuments, das dem Fernzugriff-Server Informationen über die Art der Verbindung
zum Gerät und vorhandene Services gibt. Dieser Schritt wurde, wie in Kapitel 8 beschrieben,
automatisiert. Vom gesamten Speicherplatzbedarf auf dem Fernzugriff-Server werden nur 8%
für die allgemeine Anbindungskomponente, die Datenaufbereitungskomponente und alle Konfi-
gurationsdateien verwendet. Die restlichen 92% werden für den Webserver benötigt. Beim
Webserver gibt es einige Module wie Benutzungsanleitung und Dokumentation, die kein Be-
standteil der Funktionalität der Software sind. Tabelle 8.1 gibt einen Überblick über die Spei-
cherbelegung der einzelnen Module auf dem Fernzugriff-Server.
Tabelle 8.1: Speicherbelegung auf dem Fernzugriff-Server
Software Speicherbedarf in MByte
Apache Webserver 6,00
• icons 0,084
• manual 3,210
• docs 0,065
• functions 2,100 (entspricht 35%)
Jakarta (Servlet Engine und Cocoon) 20,400
• functions 5,060 (entspricht 24 % )
• examples 0,380
• docs 14,800
120
Fernzugriff-Software 2,316
• Dak und aAk 2,300
• SDML-Dokumente 0,016
Wie aus Tabelle 8.1 ersichtlich, kann der Speicherbedarf beim Apache Webserver und beim Ja-
karta – 65% bzw. 76% – ohne weiteres optimiert werden, indem die Hilfedateien weggelassen
werden.
Eingebettete Systeme
Für die Anbindung eingebetteter Systeme an den Fernzugriff-Server wurde pro Gerät eine spe-
zielle Anbindungskomponente entwickelt. Das Gerät muss dabei zwei Funktionen zur Verfü-
gung stellen: einerseits eine Zugriffsmöglichkeit auf seine Prozessdaten und andererseits einen
Internet-Zugang. Abbildung 8.20 zeigt den Systemaufbau bei der Anbindung des Aufzugsmo-
dells.
CAN
Ethernet Ethernet
Fernzugriff-
Server
ClientEingebettetes
System
spezielle Anbindungs-
komponente
Abbildung 8.20: Systemaufbau bei der Anbindung des Aufzugsmodells
Die Hardware des Aufzugs wird über einen CAN-Feldbus mit einem PC verbunden. Für die
Anbindung des PC an den CAN-Bus wird eine kommerzielle CAN-Einsteckkarte verwendet.
Diese beinhaltet u. a. die benötigten Treiberbibliotheken. Auf der anderen Seite ist auf dem PC
ein Webserver und eine Ethernet-Einsteckkarte installiert. Diese ermöglichen einen Internetzu-
gang. Somit kann die spezielle Anbindungskomponente einerseits mittels Treiberbibliotheken
der CAN-Einsteckkarte mit dem Aufzugsmodell und andererseits über den Webserver mit dem
Fernzugriff-Server kommunizieren.
Beim industriellen Kaffeeautomaten wurde zunächst auf ähnliche Weise der Zugriff auf Pro-
zessdaten und der Internet-Zugang realisiert. Abbildung 8.21 zeigt den Systemaufbau bei der
Anbindung des Kaffeeautomaten.
121
CAN
Ethernet
Ethernet
Fernzugriff-
Server
ClientEingebettetes
System
spezielle Anbindungs-
komponente
Abbildung 8.21: Systemaufbau bei der Anbindung des Kaffeeautomaten
In diesem Fall wurden die Kosten zur Anbindung des eingebetteten Systems an den Fernzugriff-
Server reduziert. Hierzu wurde der PC durch ein TINI-Board ersetzt. TINI (Tiny Internet Inter-
face) ist ein preisgünstiges (50 bis 70 €), kompaktes und Java-fähiges Mikrocontrollerboard, das
unter anderem über eine Ethernet-Schnittstelle und einen integrierten CAN-Bus verfügt
[Loo01]. Das TINI-Board ist eigentlich nur ein Referenzaufbau, um die Möglichkeiten des ver-
wendeten Mikrocontrollers und TINI-Betriebssystems aufzuzeigen. Auf Grund seiner Archi-
tektur eignet sich das TINI-Board aber hervorragend, technische Prozesse um die Fähigkeit zu
erweitern, Prozessdaten über lokale Netzwerke oder das Internet zu versenden und zu empfan-
gen. Die Bauteile des TINI-Boards sind auf einer 72pin SIMM-Platine untergebracht.
Abbildung 8.22 zeigt die Vorder- und Rückseite des TINI-Boards (Originallänge: 108 mm).
Abbildung 8.22: Vorder- und Rückseite des TINI-Boards
Da der Kaffeeautomat für die interne Kommunikation das CANopen-Protokoll verwendet, auf
dem TINI-Board aber nur das Lowlevel-CAN-Protokoll implementiert ist, wurde ein CANopen-
Interpreter auf dem TINI-Board implementiert. Die Speicherbelegung ist in Tabelle 8.2 wieder-
gegeben.
122
Tabelle 8.2: Speicherbelegung auf dem TINI-Board
Softwarekomponenten Speicherbelegung in kByte
spezielle Anbindungskomponente 26,5
CANopen-API 32,0
Gesamte statische Speicherbelegung 58,5
Abbildung 8.23 stellt den Systemaufbau mittels TINI-Board grafisch dar.
Kaffeeautomat
sAk
Fernzugriff-Server (FzS)
allgemeine
Anbindungskomponente (aAk)
Datenaufbereitungs-
komponente (Dak)
Webserver
PDA
PC
Handy
Internet
SDML-
Kaffeeautomat
TINI-Board
Fernzugriff
Steuerung
Wrapper
TINI-CANopen
API
Internet
Abbildung 8.23: Systemaufbau bei der Anbindung des Kaffeeautomaten mittels TINI-Boards
Dies zeigt, dass das TINI-Board bei vollem Funktions-Umfang der Funktionalität der speziellen
Anbindungskomponente den PC ersetzen kann. Auf Grund der wesentlich schwächeren Prozes-
sorleistung von TINI im Vergleich zu einem konventionellen PC sind bei der Übertragung grö-
ßerer Datenmengen allerdings zum Teil erhebliche Wartezeiten einzukalkulieren. Um eine ge-
naue Aussage treffen zu können, wie diese Wartezeiten zustande kommen, wurden eine Reihe
von Zeitmessungen einmal mit dem PC (für die Anbindung des Kaffeeautomaten) und einmal
mit dem TINI-Board durchgeführt. Abbildung 8.24 zeigt die Auswertung von drei verschiede-
nen Zeitmessungen.
123
Abbildung 8.24: Auswertung von drei Zeitmessungen
Für die erste Messung (ein Produkt bestellen) wurde auf der Startseite (beim Client) die Funk-
tion Get Products und anschließend Tee ausgewählt. Die Zeitspanne zwischen dem Betätigen
des Knopfes und Einsetzen der Heißwasser-Ausgabe wurde gemessen. Nach Anzeige der Be-
stätigungsmeldung kehrt man mit der Schaltfläche Main auf die Hauptseite zurück und wieder-
holt die Messung insgesamt 5-mal. Nach gleichem Prinzip wurden die weiteren Messungen (Ab-
ruf aller verfügbaren Produkte und Abruf einer Liste mit 32 Prozesswerten) durchgeführt.
Da die Daten hauptsächlich in Form von Zeichenketten, also Strings, oder als Vector-Objekte
versendet werden, wird ein höherer Rechenaufwand benötigt als bei einem atomaren Datentyp,
z. B. Integer. Sie werden als Objekte mit Hilfe dynamischer Speicheranforderungen verwaltet.
Da die Rechenleistung des TINI-Prozessors und der zur Verfügung stehende Speicher wesent-
lich geringer sind als bei einem PC, verbraucht die spezielle Anbindungskomponente auf dem
TINI-Board mehr Zeit.
Fazit
Durch dieses Verfahren werden die rechenintensiven Applikationen auf den Fernzugriff-Server
ausgelagert. Damit ist eine Minimierung der Hardware und Software, die für die Bereitstellung
der Prozessdaten der Geräte notwendig sind, möglich. Die spezielle Anbindungskomponente
soll von den Entwicklern eingebetteter Systeme erstellt werden. In diesem Fall fällt die Einar-
beitungszeit in die Funktionsweise des jeweiligen Geräts weg. Damit kann der Aufwand von ei-
ner Mann-Woche gekürzt werden. Das Ziel soll die Reduzierung der Kosten des Geräts sein.
Dies ist ein entscheidender Faktor für den Einsatz des Verfahrens im industriellen Umfeld.
124
In diesem Kapitel wurde am Beispiel einer kompletten Anwendung für die Steuerung und
Übertragung der Prozessdaten eines industriellen Kaffeeautomaten bzw. eines Aufzugsmodells
gezeigt, wie die Anbindung eines eingebetteten Systems an den Fernzugriff-Server funktioniert.
Weiterhin wurde die Arbeit mit der Spezifikationssprache SDML in der Praxis erläutert. Es
wurde gezeigt, dass durch eine einheitliche Schnittstelle zwischen eingebetteten Systemen und
Fernzugriff-Server die Entwicklungskosten für die Realisierung von Fernservice-Applikationen
wesentlich reduziert werden können. Im nächsten Kapitel werden abschließend die wesentlichen
Merkmale des Verfahrens zur Realisierung einer universellen Fernservice-Infrastruktur für den
Einsatz von Web-Technologien in eingebetteten Systemen zusammengefasst, bewertet und ein
Ausblick auf mögliche Fortsetzung der Arbeit gegeben.
125
9 Schlussfolgerung und Ausblick
9.1 Bewertung des vorgestellten Verfahrens
In der vorliegenden Arbeit wurde ein Verfahren zur Realisierung einer universellen Fernservice-
Infrastruktur für den Einsatz von Web-Technologien in eingebetteten Systemen erarbeitet. Das
hier zugrunde liegende Konzept der Drei-Schichten-Architektur ermöglicht eine Auslagerung
rechenintensiver Fernservice-Applikationen auf einen Fernzugriff-Server, der bei Bedarf auf
mehrere Server verteilt werden kann. Die Realisierung einer allgemein gültigen Schnittstelle
zwischen Fernzugriff-Server und eingebetteten Systemen ermöglicht eine einmalige Implemen-
tierung des Fernzugriff-Servers, an den beliebig viele eingebettete Systeme angebunden werden
können. Durch den Einsatz von Standard-Technologien wie Hypertext Transfer Protocol
(HTTP) zwischen Fernzugriff-Server und Clients ist der Anwender in der Lage, mit gängigen
Browsern via Fernzugriff-Server auf Prozessdaten eines beliebigen Geräts zuzugreifen und diese
auf dem Rechner grafisch zu betrachten, ohne dabei irgendeine Software installieren zu müssen.
Durch den Einsatz von Browsern, mit denen wohl jeder Anwender vertraut sein dürfte, entfallen
Schwierigkeiten, die neue Software in der Regel mit sich bringt, wie z. B. Installation, beson-
dere Systemanforderungen und Einarbeitungszeit in die Bedienung. Das Konzept der Datenauf-
bereitung für unterschiedliche Typen von Clients wurde durch die entwickelten Datenaufberei-
tungskomponenten unter Verwendung der Beschreibungssprache XML und der damit verbun-
denen Technologien ermöglicht. Das vorgestellte Gesamtsystem eignet sich daher zur Darstel-
lung verschiedenster Informationen für unterschiedliche Typen von Clients. Gerade die Mög-
lichkeit, Daten für sehr unterschiedliche Plattformen bereitstellen zu können, gewährleistet ab-
solute Ortsunabhängigkeit. Mit Hilfe der im Rahmen dieser Arbeit entwickelten Beschreibungs-
sprache SDML ist eine Erweiterung des Fernzugriff-Servers um die Anbindung eines neuen
eingebetteten Systems und die Beschreibung der Dienste des neuen Gerätes ohne großen Auf-
wand realisierbar. Außerdem ist auf Grund der Definition bestimmter Anwendergruppen eine
anwenderspezifische Bereitstellung der Informationen möglich. Somit erhält jeder Anwender
nur die für ihn vorgesehenen Daten, und die Informationspräsentation wird damit effektiver und
übersichtlicher. Das Konzept unterstützt bei der Kommunikation zwischen eingebettetem Sy-
stem und Fernzugriff-Server neben Socket-Verbindungen, Remote Method Innvocation (RMI)
und Common Object Request Broker Architecture (CORBA). Dieser Freiheitsgrad vergrößert
die Palette der anzusprechenden Systeme erheblich.
Das Konzept bietet drei weitere Vorteile, die nachfolgend beschrieben werden.
126
Abstimmung auf Belange eingebetteter Systeme
Die Grundidee dieser Arbeit war die Auslagerung möglichst vieler Komponenten aus dem ein-
gebetteten System, damit entstehende Kosten für die Webfähigkeit eines Gerätes möglichst ge-
ring gehalten werden können. Dieses Verfahren in Verbindung mit der speziellen Anbindungs-
komponente als einziger Komponente auf dem eingebetteten System erreicht dieses Ziel.
Herstellerunabhängigkeit
Das Konzept der speziellen Anbindungskomponente, welche die Funktion einer Adapterkompo-
nente übernimmt, ermöglicht es, die Systemkomponenten unterschiedlicher Hersteller anzubin-
den und zu verknüpfen. Fernzugriff-Server und Fernservice-Applikationen sind nicht mehr an
einen Hersteller bzw. eine Systemlinie gebunden. Dies bedeutet, dass beispielsweise eine ein-
zige Diagnose-Applikation für unterschiedliche Geräte verschiedener Hersteller eingesetzt wer-
den kann.
Keine Software- und Hardware-Änderungen des Gerätes
Das Verfahren fordert keine zusätzlichen Anforderungen von bestehenden eingebetteten Syste-
men, solange der Zugang zu den Prozessdaten, z. B. in Form eines Feldbusses, gegeben ist. Also
kann das Gerät in seiner Konfiguration in gleicher Weise weiter betrieben werden wie bisher
und die kompakte spezielle Anbindungskomponente wird in Form einer kleinen Blackbox an
den Feldbus angekoppelt.
9.2 Grenzen des Verfahrens
Das vorgeschlagene Verfahren nutzt die Browser-Technologie zur Darstellung der Prozessdaten
bei den Clients. Die Clients werden vom Fernzugriff-Server nicht aktiv über Änderungen am
Prozessdatenbestand benachrichtigt. Zur Kommunikation zwischen Webserver des Fernzugriff-
Servers und Webbrowser des Clients wird das HTTP-Protokoll eingesetzt, das in der jetzigen
Form nur das Abrufen von Daten seitens der Clients erlaubt. Dies bedeutet, dass das Verfahren
derzeit zur Überwachung eingebetteter Systeme noch nicht geeignet ist.
Durch die Einschränkungen der heutigen Netzwerk-Technologien zur Übertragung von Daten
im Internet ist derzeit keine gesicherte Aussage zu den Übertragungszeiten möglich. Die Anfor-
derung nach Echzeitverarbeitung kann somit nach dem heutigen Stand der Technik nicht erfüllt
werden.
127
9.3 Ausblick auf weiterführende Arbeiten
Das im Rahmen der vorliegenden Arbeit vorgestellte Verfahren bietet noch Potenzial für eine
Fortsetzung der Arbeit. Nachfolgend werden die wichtigsten Punkte erläutert.
• Erweiterung der Kommunikation zwischen Fernzugriff-Server und Clients: Wie bereits er-
wähnt, ist ein Fernzugriff-Server nicht in der Lage, aktiv Daten an Clients zu versenden. Ein
nächster Schritt kann daher sein, das Verfahren zu erweitern, damit es auch für Überwa-
chungsaufgaben eingesetzt werden kann. Die Clients könnten abhängig von der Dringlich-
keit von Nachrichten zugeordnet werden. Somit könnten sie bei Eintreten bestimmter
Alarme oder Ereignisse automatisch benachrichtigt werden.
• Evaluierung und Erweiterung der SDML: Durch weitere Evaluierung der SDML kann fest-
gestellt werden, ob sie in einigen Punkten erweitert werden muss. Außerdem ist die Einfüh-
rung von Logikelementen, die beim Fernzugriff-Server zur Abbildung der Abfolge der Ser-
vice-Aufrufe ausgewertet werden können, ein weiterer notwendiger Schritt für die Weiter-
entwicklung der SDML.
• Weiterentwicklung des SDML-Editors: Der im Rahmen dieser Arbeit entwickelte Editor er-
möglicht die Entwicklung von SDML-Dokumenten, ohne Code schreiben zu müssen. In der
jetzigen Version fehlt jedoch eine Fehlerüberprüfung und Fehlerkorrektur während der Ein-
gabe, mit der falschen Daten, wie z. B. fehlerhafte Port-Adresse etc., abgefangen werden
könnten. Darüber hinaus könnte eine automatische Generierung von Meta-Daten erfolgen,
wie das automatische Erstellen der Versionsnummer beim Anlegen einer neuen Version.
• Verbesserung des TINI-Boards: Der Einsatz des TINI-Boards zur Realisierung der speziel-
len Anbindungskomponente beim eingebetteten System gezeigte, dass eine kostengünstige
Kopplung des Geräts an den Fernzugriff-Server auch mit den derzeitigen technischen Gege-
benheiten möglich ist. Für eine Verbesserung der Laufzeit-Eigenschaften müsste die Daten-
übertragung zwischen TINI-Board und Fernzugriff-Server mit weniger Datenaufkommen
verbunden sein.
• Eigenentwicklung eines Web-Boards: Die meisten Kosten bei der Anbindung eingebetteter
Systeme ans Internet entstehen durch die Realisierung der Hardware und der dazugehörigen
Software wie TCP/IP-Stack. Die Eigenentwicklung eines Web-Boards bietet die Möglich-
keit zur Reduzierung der Kosten. Hierbei ist darauf zu achten, dass das zu entwickelnde
Board möglichst modular und universell aufgebaut sein soll.
• Standardisierung der SDML: Dem Autor ist bis dato keine XML-basierte Beschreibungs-
sprache in der Automatisierungstechnik bekannt. Aus diesem Grund ist es sehr wichtig, dass
die Sprache weiter verbreitet und eine Standardisierung angestrebt wird.
128
Literatur
[Alda01] Khalid Al Dam: Visualisierung der Prozessabläufe eines industriellen
Kaffeeautomaten mit Java, DA-1804, IAS, Stuttgart, 2001
[Balz99] Helmut Balzert: Lehrbuch – Grundlagen der Informatik, Spektrum, Akad.
Verlag Heidelberg, Berlin, Oxford, 1999
[Balz99a] Heide Balzert: Lehrbuch der Objektmodellierung: Analyse und Entwurf,
Spektrum, Akad. Verlag Heidelberg, Berlin, 1999
[BBHJ99] D. Barelmann, C. Bürger, St. Himstedt, R. Jamal: OPC in der Praxis, VDE
Verlag, Berlin, 1999
[BeMi00] H. Behme, S. Mintert: XML in der Praxis, Addison Wesley, München,
2000
[BFM97] T. Berner-Lee, R. Fieldign, L. Masinter: Uniform Resource Identifies
(URI): Generic Syntax and Semantics, RFC 1738,
http://info.internet.isi.edu:80/in-notes/rfc/files, 1997
[BJS02] F. Bölstler, N. Jazdi, J. Seidelmann: Konzept einer einheitlichen,
herstellerunabhängigen Schnittstelle für den Zugriff auf Prozessdaten, wt
Werkstattstechnik online, Springer VDI Verlag, 2002
[Blac99] Uyless Black: Internet-Technologien der Zukunft, Addison-Wesley
Longman Verlag, München, 1999
[Boge99] Marko Boger: Java in verteilten Systemen: Nebenläufikeit, Verteilung,
Persistenz, dpunkt Verlag, Heidelberg, 1999
[Böls01] Frank Bölstler: Modularer Aufbau eines PDA-basierten Konzeptes für den
Zugriff auf Prozessdaten, DA-1794, IAS, Stuttgart, 2001
[Boss00] Andreas Bossert: Integration und Anpassung eines Webservers für den
Einsatz in einem Kfz-Steuergrät, DA-1760, IAS, Stuttgart, 2000
129
[BRA00] H. Buchner, G. Rauprich, W. Ahrens: Was bringt XML in der
Prozessleittechnik – Buzzword oder informationstechnischer Backbone für
eCommerce, Planung und Betriebsbetreuung?, atp, Heft 9, S. 51–62,
Oldenbourg Verlag, 2000
[Bret00] McLaughlin Brett: Java and XML, Sebastopol, O’Reilly & Associates Inc.,
USA, 2000
[Bros92] Walter Brost: Der Feldbus in der Maschinen- und Anlagentechnik, Franzis
Verlag, München, 1992
[Clar97] James Clark: Comparison of SGML and XML,
http://www.w3.org/TR/NOTE-sgml-xml-971215, 1997
[Clar99] James Clark: XSL Transformations (XSLT) version 1.0,
http://www.w3.org/TR/xslt, 1999
[Doss00] George M. Doss: XML-Tipps, Software & Support Verlag GmbH,
Frankfurt a. M., 2000
[Down98] T. B. Downing: Java RMI - Remote Method Invocation John Wiley &
Sons (C), USA, 1997
[Dude01] Duden, Deutsches Universalwörterbuch, Dudenverlag, Mannheim,
Leipzig, Wien, Zürich, 1996
[Dujm01] Stjepan Dujmovic: Anwendungsentwicklung mit Komponenten-
Frameworks in der Automatisierungstechnik, Dissertation am Institut für
Automatisierungs- und Softwaretechnik der Universität Stuttgart, 2001
[Eber00] Stephan Eberle: XML-basierte Internetanbindung technischer Prozesse,
Institut für Automatisierungs- und Softwaretechnik der Universität
Stuttgart, 2000
[EbGö01] S. Eberle, P. Göhner: Kostengünstige Internetanbindung eingebetteter
Geräte mit verteilten Gerätehomepages, Institut für Automatisierungs- und
Softwaretechnik der Universität Stuttgart, 2001
[Ecks00] Robert Eckstein: XML, kurz & gut, O’Reilly Verlag, Köln, 2000
130
[Etsc00] Konrad Etschberger: Controller Area Network: Grundlagen, Protokolle,
Bausteine, Anwendungen, Carl Hanser Verlag, 2. überarbeitete Ausgabe,
München, Wien, 2000
[Fowl97] Martin Fowler Analysis Patterns-Reusable Object Models, Addison
Wesley, Menlo Park, California, 1997
[Furr00] Frank J. Furrer: Ethernet-TCP/IP für die Industrieautomation, Hüthig-
Verlag, Heidelberg, 2000
[Gieß01] Walter Gießler: SIMATIC S7. SPS-Einsatzprojektierung und
-Programmierung, VDE Verlag, 2001
[GmAi00] GMD/AiS: Autonomie und Adaptivität, Tagung in Kloster Seeon im
Februar/März 2000, http://ais.gmd.de/SEEON-2000/Abschluss-
Christaller.pdf
[Goll99] Guido Gollmer: Ansteuerung eines Modellprozesses per Internet in Java
am Beispiel eines industriellen Kaffeeautomaten, DA-1717, IAS, Stuttgart,
1999
[Gosp00] Robert Gospocic: Fernbedienung und Diagnose eines industriellen
Kaffeeautomaten über das Internet, DA-1756, IAS, Stuttgart, 2000
[Gros02] William Grosso: Java RMI, O’Reilly & Associates Inc., Sebastopol, USA
2002
[Gutb02] Felix Gutbrodt: Entwicklung eines Editors für SDML-Dokumente, SA-
1826, IAS, Stuttgart, 2002
[Gutb03] Felix Gutbrodt: Sicherheit in der Automatisierungstechnik,
Forschungsarbeit am IAS, http://www.ias.uni-
stuttgart.de/de/start_mitarbeit.html, 2003
[GVNG94] D.D. Gajski, F. Vahid, S. Narayan, J. Gong: Specification and Design of
Embedded System, PTR Prentice Hall, USA, 1994
[GWBJ01] P. Göhner, Th. Wagner, F. Bölstler, N. Jazdi: Einsatz von XML zur
einheitlichen Übertragung von Prozessdaten, atp-
Automatisierungstechnische Praxis, 2001
131
[Haas01] Oliver Haase: Kommunikation in verteilten Anwendungen, Oldenbourg
Verlag, München, Wien, 2001
[Harm98] Paul Harmon: Components, Component Development Strategies, Volume
VIII No. 7, Cutter Consortium, USA, 1998
[Haus00] S. Haustein, M. Kroll: Java-Entwicklung mit CLDC auf Kleinstgeräten,
Java Spektrum, S. 24–29, November/Dezember 2000
[Heat99] Steve Heath: Embedded Sytems Design, 3. Aufl., Oxford, Auckland,
Boston, Johannesberg, Melborne, New Dehli, USA, 1999
[Holz01] Steven Holzner: Inside XML, New Riders Publishing, Indianapolis, USA,
2001
[HWR99] A. Hergenhan, Ch. Weiler, W. Rosenstiel, K. Weiß: Internet-basierte
eingebettete Systeme in der industriellen Automation, At 7/99,
Automatisierungstechnik 47, Theoretische Grundlagen, Methoden,
Anwendungen, S. 305–313, Oldenbourg Verlag 1999
[Inter00] Interbus-Club-Online: http://www.interbusclub.com, 2000
[IwLa01] F. Iwanitz, J. Lange: OLE for Process Control, Hüthig Verlag, Heidelberg,
2001
[Jazd99] Nasser Jazdi: Ansteuerung eines industriellen Kaffeeautomaten, VDE-
GMA Fachtagung Langen, VDI Bericht 1515: Industrielle Automation und
Internet/Intranet-Technolog, 1999
[Jazd00] N. Jazdi, J. Konnertz, J. Traumüller: Einsatz von Web-Technologien bei
der Entwicklung moderner eingebetteter Systeme, 12th International
Workshop on Distributed and Parallel Embedded Systems (DIPES 2000),
Illmenau, 2000
[Jazd01] Nasser Jazdi: Component-based and Distributed Web Application for
Embedded Systems, International Conference on Intelligent Agents, Web
Technology and Internet Commerce–IAWTIC, Las Vegas, USA, 2001
[Jazd02] Nasser Jazdi: Distributed Web Applications for Embedded Systems,
International Conference „Software & Systems Engineering and their
Applications“, CNAM, Paris, France, 2002
132
[Jeck00] Mario Jeckle: Entwurf von XML Sprachen, Java Spektrum, Heft 6, S. 56–
60, 2000
[Kope97] Hermann Kopetz: Real-Time Systems: Design Principles for Distributed
Embedded Applications, Kluwer Academic Publishers, Boston, Dordrecht,
London, 1997
[Krau01] Andreas Kraut: Warum die Automatisierungstechnik die IAONA braucht,
Jetter Journal, April 2001
[Krau01a] Holger Krauth: Integration und Anpassung eines Embedded-PCs für die
Ferndiagnose eines industriellen Kaffeeautomaten, DA-1779, IAS,
Stuttgart, 2001
[KrPo88] G. Krasner, S. Pope: A Cookbook for Using the Model-View-Controller
User Interface Paradigm in Smaltalk-80, Journal of Object Oriented
Programming (JOOP), pp. 26-49, August/September 1988
[Kühn01] Paul J. Kühn: Skript zur Vorlesung Communication Networks I, Institut für
Kommunikationsnetze und Rechnersysteme, Stuttgart, 2001
[Kunz00] Christoph Kunz: Steuerung und Visualisierung eines industriellen
Kaffeeautomaten mit JavaBeans, DA-1741, IAS, Stuttgart, 2000
[LaGö99a] Rudolf Lauber, Peter Göhner: Prozessautomatisierung I, 3. vollst. überarb.
Auflage, Springer Verlag, Berlin-Heidelberg-New York, 1999
[LaGö99b] Rudolf Lauber, Peter Göhner: Prozessautomatisierung II, 1. Auflage,
Springer Verlag, Berlin, Heidelberg, New York, 1999
[LiFä00] Bonito Liccardi, Georg Färber: Template-basierte Entwicklung von
eingebetteten Systemen für Produkte mittlerer Seriengröße, atp-
Automatisierungstechnische Praxis, Seiten 26-36, Juni 2000
[Loom01] Don Loomis: The TINI Specification and Developer’s Guide, Addison-
Wesley, New York, USA, 2001
[Megg98] David Megginson: Structuring XML-Documents, Upper Saddle River,
Prentice-Hall, NJ, USA, 1998
133
[Midd00] Stefan Middendorf: Von Bohnen und Bäumen: SAX2, JAXP, JDOM und
mehr, iX, 12/2000, S. 112–118
[MOV96] Alfred J. Menezes, Paul C. van Oorschot, Scott A. Vanstone: Handbook of
Applied Cryptography, CRC Press, 1996
[Müll02] Jürgen Müller: Regeln mit SIMATIC. Praxisbuch für Regelungen mit
SIMATIC S7 und SIMATIC PCS7, MCD Verlag, 2002
[MüFä00] Alexander Münnich, Georg Färber: Calculating Worst-Case Execution
Times of Transactions in Databases for Event-Driven, Hard-Real-Time
Embedded Systems, Proceedings of the IEEE: International Database
Engineering and Applications Symposium (IDEAS’00), Yokohama, Japan,
September 2000
[Naed03] Martin Naedele: IT Security for Automation Systems, atp-
Automatisierungstechnische Praxis, Ausgabe 5/2003, S 84-91
[NaMy00] A. Nakhimovsky, T. Myers: Java XML Programming, MITP-Verlag,
Bonn, 2000
[Nato00] Ali Natour: Erstellung eines OPC-Clients zum Datenaustausch zwischen
verschiedenen Automatisierungsapplikationen, DA-1748, IAS, Stuttgart,
2000
[OrHa97] R. Orfali, D. Harkey: Client/Server Programming with Java and Corba,
John Wiley & Sons, USA, 1997
[Pösc01] Thomas Pöschmann: MVC im Shop, Java Magazin, 02/2001, S. 37–42
[Prof02] PROFIBUS International: PROFInet–Technical Description,
http://www.profibus.com, Karlsruhe, 2002
[RaRa98] D. S. Ray, E. J. Ray: Web-Publishing mit HTML 4, Sybex Verlag,
Düsseldorf, 1998
[Rock02] Rockwell Automation: Ethernet TCP/IP als Steuerungsnetzwerk?,
http://www.ab.com/catalogs/b113/comm/ethernet.html, 2002
134
[Rose99] Wolfgang Rosenstiel: Entwurfsmethoden für eingebettete Systeme, it+ti –
Informationstechnik und Technische Informatik, 2/99, S. 5-6
[Schn00] B. Schneier: Secrets and Lies – Digital Security in a Networked World,
Wiley, 2000
[Schn94] Gerhard Schnell: Bussysteme in der Automatisierungstechnik, Vieweg &
Sohn, Braunschweig, Wiesbaden, 1994
[Schn99] Eckehard Schnieder: Methoden der Automatisierung, Vieweg & Sohn,
Braunschweig, Wiesbaden, 1999
[Schu00] Kay Schulz: Java professionell programmieren, Springer Verlag, Berlin,
Heidelberg, 2000
[Spen99] Paul Spencer: Professional XML Design and Implementation, Wrox, USA,
1999
[Star00] Gernot Starke: Java auf dem Palm-Pilot, Java Spektrum, Mai/Juni 2000, S.
18–25
[Stla98] Simon St. Laurent: XML A Primer, MIS Press, Forster City/Ca, USA, 1987
[VaGi01] Frank Vahid, Tony D. Givargis: Embedded System Design: A Unified
Hardware/Software Introduction, John Wiley & Sons, USA, 2001
[Vigd98] Mark Vigder: An Architecture for COTS Based Software Systems, National
Research Council of Canada, 1998
[Wagn01] Thomas Wagner: Konzeption für die Übertragung von Prozessdaten bei
Fernservice-Applikationen, DA-1782, IAS, Stuttgart, 2001
[Wede02] Michael Wedel: Untersuchung und Vergleich der Leistungsfähigkeiten der
Übertragungstechnologien RMI und XML, SA-1820, IAS, Stuttgart, 2002
[Willi00] John C. Williams: Harbor Research, Whitepaper,
http://www.harborresearch.com, San Francisco, USA, 2002
[Zelt01] Holger Zeltwanger: CANopen, VDE Verlag, 2001
135
Lebenslauf
Persönliche Daten:
20.08.1960 geboren in Mashhad / Iran
Schulbildung:
1966 - 1971 Grundschule in Mashhad / Iran
1971 - 1977 Gymnasium in Mashhad / Iran, Abschluss Abitur
Studium:
1977 - 1980 Studium der Medizin an der Universität Teheran / Iran, kein
Abschluss
1987 - 1989 Studienkolleg an der Universität Karlsruhe, Zulassung zum Studium
in Deutschland
1989 - 1997 Studium der Elektrotechnik an der Universität Stuttgart,
Studienrichtung: Theoretische Nachrichtentechnik
30.06.1997 Abschluss als Diplom-Ingenieur
Berufstätigkeit:
Seit 01.07.1997 Wissenschaftlicher Mitarbeiter am Institut für Automatisierungs-
und Softwaretechnik der Universität Stuttgart