Sensor Data Stream Processing in Health Monitoring

Werbung
Research Collection
Report
Mobilität und Informationssysteme
Workshop des GI-Arbeitskreises "Mobile Datenbanken und
Informationssysteme", 16./17. Oktober 2003, Zürich
Author(s):
Türker, Can
Publication Date:
2003
Permanent Link:
https://doi.org/10.3929/ethz-a-006714707
Rights / License:
In Copyright - Non-Commercial Use Permitted
This page was generated automatically upon download from the ETH Zurich Research Collection. For more
information please consult the Terms of use.
ETH Library
Departement Informatik
Institut für Informationssysteme
____________________________________________________________
Mobilität und Informationssysteme
Workshop des GI-Arbeitskreises
„Mobile Datenbanken und Informationssysteme“
16./17. Oktober 2003, Zürich
Can Türker (Hrsg.)
Technical Report #422, 2003
Oktober 2003
ETH Zürich
Departement Informatik
Institut für Informationssysteme
Dr. C. Türker
Address:
C. Türker, ETH Zürich, Institut für Informationssysteme,
ETH Zentrum, CH-8092 Zürich, Switzerland,
[email protected]
This report is available via http://www.inf.ethz.ch/publications/ or
ftp://ftp.inf.ethz.ch/pub/publications/tech-reports/
© 2003 Departement Informatik, ETH Zürich
Programmkomitee
Jürgen Bittner
Christoph Gollmick
Hagen Höpfner
Birgitta König-Ries
Klaus Küspert
Holger Meyer
Günther Specht
Can Türker
SQL GmbH, Dresden
Universität Jena
Universität Magdeburg
Universität Karlsruhe
Universität Jena
Universität Rostock
Universität Ulm
ETH Zürich
Externe Gutachter
Thomas Müller
Universität Jena
Lokale Organisation
Can Türker
Antoinette Galler
ETH Zürich
ETH Zürich
Vorwort
Der fünfte Workshop des GI-Arbeitskreises Mobile Datenbanken und Informationssyste”
me“ findet unter dem Titel Mobilität und Informationssysteme“ am 16./17. Oktober 2003
”
in Zürich statt. Wie seine Vorgänger soll auch dieser Workshop Vertreter von Hochschulen,
Produkthersteller und Anwender mobiler Datenbanken und Informationssysteme zusammenführen und ihnen die Möglichkeit bieten, ihre Beiträge im Kreis fachlich interessierter
Kollegen zu diskutieren. Dabei sollen sowohl Grundlagenfragen als auch Aufgabenstellungen aus Anwendungs- und Technologiebereichen erörtert werden.
Der vorliegende Bericht enthält die Beiträge zu diesen Workshop. Insgesamt wurden sechs
Lang- und zwei Kurzbeiträge angenommen. Diese Workshop-Beiträge spiegeln ein breites Spektrum des Gebietes Mobile Datenbanken und Informationssysteme“ wider und
”
bieten interessante Ansatzpunkte für spannende Diskussionen. Hinzu kommt ein eingeladener Beitrag von Prof. Dr. Heiko Schuldt von der Privaten Universität für Medizinische
Informatik und Technik Tirol (UMIT).
Abschließend bedanke ich mich bei allen, die direkt oder indirekt mitgeholfen haben, den
Grundstein zum Gelingen dieses Workshops zu legen. Mein Dank gilt insbesondere den
Autoren für ihre Einreichungen, den Programmkomiteemitgliedern und externen Gutachtern für die Begutachtung und Auswahl der eingereichten Beiträge, und Prof. Dr. Heiko
Schuldt für die Annahme der Einladung zu einem Vortrag. Last but not least geht ein spezieller Dank an Antoinette Galler für Ihre Unterstützung bei der lokalen Organisation.
Zürich, Oktober 2003
Can Türker
Inhaltsverzeichnis
Heiko Schuldt, Gert Brettlecker
Sensor Data Stream Processing in Health Monitoring
Felix Alcala, Jöran Beel, Arne Frenkel, Bela Gipp, Johannes Lülf, Hagen Höpfner
Ortung von mobilen Geräten für die Realisierung lokationsbasierter Diensten
Karsten Baumgarten, Christoph Gollmick
Konzeption eines interaktiven mobilen Reiseinformationssystem
Martin Breunig, Rainer Malaka, Wolfgang Reinhardt, Joachim Wiesel
Vision mobiler Geodienste (Kurzbeitrag)
Michael Cammert, Christoph Heinz, Jürgen Krämer, Bernhard Seeger
Datenströme im Kontext des Verkehrsmanagements
Peter Dornbusch, Martin Huber
User-Toolkits zur dienstbasierten Entwicklung mobiler Applikationen
Thomas Königsmann
Konzeption geräteübergreifender Anwendungen
Bela Mutschler, Günther Specht
Implementierungskonzepte und Anwendungsentwicklung kommerzieller mobiler
Datenbanksysteme: Ein Vergleich
Christian Weigand
Implementierung eines medizinischen Kommunikationsstandards auf einem PDA
unter Linux (Kurzbeitrag)
Sensor Data Stream Processing in Health Monitoring
Heiko Schuldt
Gert Brettlecker
University for Health Informatics and Technology Tyrol (UMIT)
Innrain 98, A–6020 Innsbruck, Austria
{heiko.schuldt, gert.brettlecker}@umit.at
Abstract: Health monitoring and e-Inclusion significantly increase the quality of healthcare since they allow patients to live at home while nevertheless receiving treatment
and care immediately, when needed. However, health monitoring and e-Inclusion also
impose several challenges to the underlying information infrastructure. These challenges are stemming from data streams that are generated by smart sensors attached to
the patients and to their augmented environment. Essentially, these streams need to be
processed with near real-time constraints. In addition, also the mobility of users and
patients has severe consequences on the information infrastructure. Disconnections
and reconnections have to be handled transparently to the user/patient and data stream
processing has to be dynamically adapted to the actual processing resources.
Health Monitoring
Health monitoring aims at dynamically gathering, managing, processing, and storing physiological data usually provided by smart sensors. Most importantly, it allows to monitor
the health status of patients in an online fashion. By dynamically processing sensor data,
physicians and care personnel are able to immediately react to critical, pathological changes or even to anticipate such changes. Therefore, health monitoring is considered to significantly enhance the quality of patients’ lives and to increase overall quality of care, even in
out-of-hospital conditions. The latter is particularly important since chronic ailments such
as cardiovascular diseases, hypertension, and diabetes affect a significant number of the
western population (a survey of the American Heart Association states that cardiovascular
diseases are the leading cause of death in many western countries [AHA01]). According to
a recent prognosis for healthcare in the year 2013, the use of direct permanent monitoring
of patients’ vital signs, as well as the direct synchronous transfer of this sensory data will
significantly increase [HAHK02].
From a technical point of view, health monitoring is a rather novel domain that brings
together experts from various fields such as computer engineering, networking, data and
information management, and from (biomedical) signal processing. In terms of computer and sensor engineering, health monitoring greatly benefits from recent trends in smart
sensors and ubiquitous and wearable computing (e.g., smart shirts [GTW03], ring sensors
[ASR+ 03], or smart bandages [NA00]). As a result, a new generation of sensor systems
currently emerges that make unobtrusive, non-invasive monitoring applicable to an incre-
asing number of patients and diseases. In terms of networking, wireless network connections with both minimal power consumption and transmission power are needed in order
to increase the lifetime of sensors and to avoid unnecessary perturbation and side-effects.
Experts from biomedical signal processing are providing efficient and effective algorithms
for the (pre-) filtering of sensor signals and the processing of these signals that allows to
identify critical and/or pathological behavior. From an information systems point of view,
an infrastructure is needed that supports continuous querys and continuous processing of
data streams.
e-Inclusion
In our aging society, monitoring is not only required for patients suffering from chronic
diseases, but also for elderly and disabled people living in their home environment while nevertheless having the guarantee to receive immediate treatment and care if needed.
Elderly people, for instance, may suffer from one or more chronic diseases, therefore requiring a health monitoring infrastructure at home. But in addition, the activity of these
people as well as their context have to be monitored. From the perspective of sensor technology, this does not only require wearable sensors but also sensors that are integrated
into the home environment (e.g., “intelligent carpets” measuring the position of a person
and also their activity, i.e., whether a person is active –moving– or whether he/she has
fallen down). These people have to be electronically included (e-Inclusion) in the society
by making adequate use of information technology when needed.
In this kid of monitoring applications, it is therefore necessary to consider the context
of a person. A person without current activity may be fine at night when being located
in the bedroom, but when the person does not show any activity at daytime when being
located in the floor, an emergency situation is very likely. Consider furthermore people
suffering from special age-related impairments and mental diseases like Alzheimer. In this
case, even more emphasis has to be put on monitoring the activity of the person together
within the current context. A warning has to be generated, for instance, when the person
tries to leave the apartment without having switched off the oven. By all these extensions,
the number of sensors, data sources, etc., and therefore also the number of data streams
that have to be processed will be significantly increased compared to the monitoring of
a single disease. This, of course, has severe consequences on the underlying information
infrastructure.
Infrastructure for Health Monitoring and e-Inclusion
Applications for data stream processing are not monolithic but are made out of basic building blocks (e.g., programs for sensor data filtering or processing, noise reduction, access
to medical databases or electronic patient records, etc.). Each of these building blocks
provides certain services that can be invoked. Application development in this context the-
refore requires to seamlessly combine these building blocks into a coherent whole rather
than developing programs from scratch. Workflows or processes are a means to combine
existing services.
In terms of managing and storing data streams, the requirements imposed by health monitoring and e-Inclusion by far exceed the capabilities of existing database systems [GO03].
Similarly, conventional workflow and process support systems are tailored to execute processes at dedicated points in time. Data stream processing, however, require processes to
run continuously, similar to continuous query processing. Incoming stream data serves as
continuous input to these standing processes. Special requirements are also the storage
of streams, or joins between streams in order to combine the data produced by different
sensors, etc. The bottom line of these requirements is that existing process support infrastructures have to be extended in order to continuously execute processes and to support
further crucial requirements.
Driven by the nature of the domain where health monitoring and e-Inclusion is applied to,
a stringent requirement is that the underlying information infrastructure running processes
and workflows implementing data stream processing is highly dependable since its correct functioning may be potentially life-saving. In here, dependability comes with several
flavors. First, the information infrastructure has to be highly available in order to provide
dedicated quality of service guarantees, for example in terms of the real-time aspects of the
data streams being processed. Critical situations must be detected immediately and alarms
have to be raised on the spot; no delay due to overload situations of the infrastructure can
be tolerated. Second, the process-based applications have to be built in a way that correct failure handling is guaranteed (e.g., by following the model of transactonal processes
[SABS02]). This also means that applications, since they are vital to their users, have to be
verified whether they behave correctly, even in failure situations. Third, the infrastructure
has to be very flexible. The disease pattern of patients varies over time and the system
should allow to tailor processes to the current monitoring needs of an elderly person or a
patient. This includes new types of sensors, new types of services, new types of processes,
etc., that must be supported.
Mobility in Health Monitoring and e-Inclusion
A crucial requirement on an infrastructure for data stream processing is to take into account that users and patients, especially when being monitored in an out-of-hospital environment, are usually mobile. Mobility of users and patients poses a set of challenges to the
design and development of an information infrastructure for health monitoring. Users and
patients do not necessarily have access to the systems environment installed at their home
(base station, home network).
However, even when being disconnected, data streams produced by the (body) sensors
have to be processed by some the mobile device (e.g., a PDA carried by the patient),
thereby taking into account the limited CPU and storage resources of these devices. Given
these limitations, data (pre-)processing and simple hazard detection have to be applied on
these devices instead of full fledged medical, activity, and context monitoring. In addition,
synchronization is required whenever a device is connected to the home network. After
reconnection, data stream processing should be automatically and smoothly migrated to
the fixed network environment, thereby making use of the increased processing power and
better network connection.
Hyperdatabases for Health Monitoring and e-Inclusion
A hyperdatabase (HDB) [SBG+ 00, SSSW02] is an infrastructure that supports the execution of processes on top of distributed components using existing services. The HDB
provides transactional guarantees for processes, sophisticated routing strategies to dynamically choose among the available components, and allows to balance the overall load
among them. Hence, the HDB provides database-like functionality, but not at the data
level but at the level of access to services.
Meeting the challenging requirements imposed by health monitoring and e-Inclusion applications as well as by the mobility of users and/or patients requires to significantly extend
hyperdatabase environments in several directions. Among other important aspects like data
privacy and security, the following problems have to be solved:
• support for continuously runnig processes: essentially, streaming processes have to
be continuously fed with incoming sensor data. Moreover, the hyperdatabase infrastructure has to be designed in such a way that dedicated quality-of-service guarantees, especially in terms of response times, can be provided. This has to be done
in a highly reliable infrastructure. An important requirement is also to provide an
easy-to-use graphical interface that can be used by physicians and care personnel to
design new or to revise existing patient- and/or disease-specific streaming processes.
• support for mobile users and devices: mobility is an inherent characteristic of the
users in health monitoring and e-Inclusion applications. The actual monitoring has
to be reliably provided way by the underlying in a way that is transparent to the
user. In particular, he/she does not have to take care on the connection state and
on the way, streaming processes are being executed. Rather, the infrastructure has
to dynamically migrate processing tasks between the home infrastructure and the
mobile devices depending on the connection status.
• support for load balancing: in order to meet the real-time constraints, the system has
to automatically and equally distribute the load between all services of the overall
system. When, for instance, several components in the home network provide sensor
data filtering algorithms, then different streams should be distributed appropriately
among these services. Similarly, when failures or bottlenecks are detected, the system should be able to dynamically install new instances of services that can then be
used for load balancing purposes.
Conclusion
The above mentioned extensions to hyperdatabase systems reflect current activities at
UMIT. In a joint effort that includes participants from different fields such as information systems, information and software engineering, computer engineering, and biomedical
signal processing, but also with external partners from the biosignal processing and telemedicine groups of the Austrian research center in Seibersdorf (ARCS), we are currently
developing a comprehensive infrastructure to support health monitoring and e-Inclusion
activities. The basis for the information infrastructure is the OSIRIS system (Open Service Infrastructure for Reliable and Integrated process Support) [WSN+ 03] to which we
add data stream processing functionality in a reliable, adaptable, and flexible way.
Bibliography
[AHA01]
2002 Heart and Stroke Statistical Update. American Heart Association. 2001.
[ASR+ 03] Asada, H. H., Shaltis, P., Reisner, A., Rhee, S., und Hutchinson, R. C.: Mobile Monitoring with Wearable Photoplethymographic Biosensors. IEEE EMB Magazine.
22(3):28–. 2003.
[GO03]
Golab, L. und Özsu, M. T.: Issues in Data Stream Management. ACM SIGMOD Record.
32(2). 2003.
[GTW03]
GTWM – The Georgia Tech Wearable Motherboard: The Intelligent Garment for the
21st Century. http://www.smartshirt.gatech.edu. 2003.
[HAHK02] Haux, R., Ammenwerth, E., Herzog, W., und Knaup, P.: Health care in the information
society. A prognosis for the year 2013. Int. Journal of Medical Informatics. 66:3–21.
2002.
[NA00]
NASA’s Jet Propulsion Laboratory California. Wearable Sensor Patches for Physiological Monitoring. http://www.nasatech.com/Briefs/Feb00/NPO20651.
html. 2000.
[SABS02] Schuldt, H., Alonso, G., Beeri, C., und Schek, H.-J.: Atomicity and Isolation for Transactional Processes. ACM Transactions on Database Systems (TODS). 27(1):63–116.
March 2002.
[SBG+ 00] Schek, H.-J., Böhm, K., Grabs, T., Röhm, U., Schuldt, H., und Weber, R.: Hyperdatabases. In: Proceedings of the 1st International Conference on Web Information Systems
Engineering (WISE’00). S. 14–23. Hong Kong, China. June 2000. IEEE Computer
Society Press.
[SSSW02] Schek, H.-J., Schuldt, H., Schuler, C., und Weber, R.: Infrastructure for Information
Spaces. In: Proceedings of the 6th East-European Conference on Advances in Databases and Information Systems (ADBIS’2002). S. 22–36. Bratislava, Slovakia. September
2002. Springer LNCS, Vol. 2435.
[WSN+ 03] Weber, R., Schuler, C., Neukomm, P., Schuldt, H., und Schek, H.-J.: Web Service
Composition with O’GRAPE and OSIRIS. In: Proceedings of the 29th International
Conference on Very Large Databases (VLDB’03). Berlin, Germany. September 2003.
Morgan Kaufman Publishers.
Ortung von mobilen Geräten für die Realisierung
lokationsbasierter Diensten
Felix Alcala
[email protected]
Jöran Beel
[email protected]
Johannes Lülf
[email protected]
Arne Frenkel
[email protected]
Béla Gipp
[email protected]
Hagen Höpfner∗
[email protected]
Otto-von-Guericke-Universität Magdeburg
Postfach 4120, 39016 Magdeburg, Deutschland
Abstract: Die Entwicklung im Sektor von mobilen Endgeräten geht eindeutig in die
Richtung, immer kompaktere Geräte mit immer mehr Funktionalität anzubieten. Schon
heute können z.B. Laptops oder sogar PalmTops mit GPS-Kontrollern kombiniert werden. Die somit verfügbaren genauen Positionsinformationen ermöglichen die Realisierung von unterschiedlichsten lokationsbasierten Diensten. Ziel des in diesem Papier
vorgestellten Projektes ist es, die Möglichkeiten derartiger Szenarien zu untersuchen.
Dazu wird ein System vorgestellt, welches die ad-hoc Lokalisierung von Nutzern von
mobilen Endgeräten mittels mobiler Endgeräte ermöglicht.
1 Einleitung und Motivation
Lokationsbasierte Dienste sind einer der aktuellsten und spannensten Schwerpunkte im
Bereich mobiler Informationssysteme. Diese Tatsache resultiert nicht zuletzt daraus, dass
eine zentrale Eigenschaft der hierbei eingesetzten Endgeräte deren Kompaktheit und Leistungsfähigkeit ist. Nutzer mobiler Endgeräte wie Laptops, PDAs oder Handys können
sich unabhängig von Büroräumen und Schreibtischen bewegen und dennoch die Funktionen ihrer Geräte ausschöpfen. In Kombination mit der kabellosen Vernetzung und der Lokalisierung derartiger Geräte ergibt sich aus Sicht der Anbieter von Informationssystemen
daraus die Möglichkeit, dem mobilen Kunden Dienste anzubieten, welche auf dessen aktuellen Aufenthaltsort zugeschnitten sind. Die dazu notwendige Bestimmung des Ortes kann
im Wesentlichen auf zwei verschiedene Arten [Eri01] erfolgen. Da die am weitesten verbreiteten und flächendeckend verfügbaren Funknetztechnologien (GSM [ETS93], GPRS
[ETS98], HSCSD [ETS99]) einen zellulären Charakter aufweisen, kann zum einen über
die zur Einwahl notwendigen Basisstationen mittels Triangulation die ungefähre Position
eines Gerätes ermittelt werden. Zum anderen besteht die wesentlich genauere Möglichkeit
der Positionsbestimmung unter Verwendung des GPS [Kap96]. Beide Verfahren haben
Vor- und Nachteile, welche hier aber nicht tiefergehend erläutert werden sollen.
∗ Gefördert
durch die DFG unter der Fördernummer SA 782/3-2.
Das in dem Beitrag beschriebene Projekt wurde als Grundlage für die Weiterentwicklung des beim Jugend-forscht“-Wettbewerb 2002 präsentierten und prämierten Systems
”
GSM-Schutzengel“ [GBAP03] konzipiert. Dieses System dient im Wesentlichen der au”
tomatischen Meldung der aktuellen Position eines Kraftfahrers via Handy im Falle eines
Unfalls an eine Rettungsstelle. Auf diese Weise kann dem Verunfallten schneller geholfen
werden. Der ursprüngliche Ansatz nutzt die Zell-Triangulation zur Positionsbestimmung.
Um eine noch genauere Lokalisierung zu ermöglichen wurde im Rahmen der hier vorgestellten Arbeit untersucht, ob und wie sich das GPS eignet, um derartige lokationsbasierte
Informationssysteme zu unterstützen.
Die Aufgabenstellung wurde im Rahmen eines Softwarepraktikums am Institut für Technische und Betriebliche Informationssysteme der Fakultät für Informatik an der Ottovon-Guericke Universität Magdeburg bearbeitet. Da die vollständige Integration der GPSPositionsbestimmung den Rahmen dieser Veranstaltung gesprengt hätte und der positive Abschluss eines Softwarepraktikums ein lauffähiges System voraussetzt, wurde das in
Abschnitt 2 vorgestellte Ersatzszenario implementiert. Die hierbei verwendeten Konzepte
lassen sich aber - bei vorhandener Hardware - mit etwas zusätzlichem Aufwand in den
GSM-Schutzengel integrieren.
2 Gesamtarchitektur
Grob gesagt, war das Ziel des Projektes die Ortung von mobilen Geräten durch mobile
Geräte. Bei dem zu ortenden Gerät handelt es sich um ein GPS-fähiges Endgerät, welches
über eine Internet-Anbindung verfügt. Es ermittelt permanent seine Position und aktualisiert sie in einer zentralen Datenbank. Für die Abfrage dieser Position aus der Datenbank existieren eine Standard-Desktopanwendung und eine Applikation für Java-fähige
Handys. Beide Applikationen ermöglichen die Darstellung der Position des zu ortenden
mobilen Gerätes anhand einer Karte. Dazu werden die in der Datenbank gespeicherten
Informationen gelesen und in das Kartenmaterial eingeblendet. Neben der Darstellung der
Position, welche in unterschiedlichen Detailstufen möglich ist, können auch Informationen zur aktuellen Bewegungsrichtung und Geschwindigkeit angezeigt werden. Um den
Missbrauch der verfügbaren Daten zu verhindern, enthält das System auch Mechanismen
zur Rechtevergabe. Auf diese Weise kann festgelegt werden, welcher Nutzer welche mobilen Geräte orten darf. Im Folgenden wird die Grob-Architektur des Systems vorgestellt.
2.1 Beteiligte Komponenten
Das System (siehe Abbildung 1(a)) besteht aus vier Knoten, zwei Servern und zwei Clients, wobei die Clients in mehreren Instanzen vorliegen.
Die Funktionalität der Clients unterteilt sich in die Komponenten Positionsanzeige (ortender Nutzer) und Positionsermittlung (georteter Nutzer). Letztere ist mit einem GPSController verbunden und sendet die aktuelle Position des Gerätes an den Positionsserver.
Die Übermittlung geschieht über TCP/IP, was beliebige Anwendungsprotokolle ermöglicht.
Ideal ist eine paketbasierte Technik wie GPRS. Um die übertragene Datenmenge möglichst
gering zu halten, kann man die Übermittlung in frei definierbaren Zeitintervallen erfolgen lassen sowie Mindestpositionsveränderungen definieren. Der Positionsserver trägt alle übermittelten Positionen in einer Datenbank ein. Gespeichert werden dabei neben der
Position auch weitergehende Informationen wie Geschwindigkeit, Datum und Zeit. Die
Komponente Positionsanzeige kann dann - entsprechende Rechte vorausgesetzt - diese
Informationen für beliebige Nutzer vom Server abfragen. Das zur Anzeige der Position benötigte Kartenmaterial wird vom Kartendienst Map24 [NET03] geladen. Dieser ermöglicht das Anfragen beliebiger Kartenausschnitte innerhalb von Europa über eine entsprechend kodierte URL. Die Karte wird dabei als statisches Bild geliefert. Das Sequenzdiagramm in Abbildung 1(b) verdeutlicht den Ablauf einer Positionsabfrage.
TCP/IP
SERVER: Position
Kartenserver
SERVER: Karte
Map24
Kartenserver
TCP/IP
<<Datenbank>>
SERVER:
Applikation
Positionsserver
Positionsanzeige
Positionsermittlung
Positionsdatenbank
TCP/IP
Aktuelle Position
von User x
Postion von
User x?
TCP/IP
User x ist bei y
Aktuelle Position
von User x
Postion y
CLIENT: Mobil
CLIENT: PC
PositionsAnzeige
PositionsAnzeige
PositionsErmittlung
(GPS)
(a) Verteilungsdiagramm
Karte von Position y
mit User x?
Karte
Aktuelle Position
von User x
(b) Sequenzdiagramm zum Ablauf einer
Positionsabfrage
Abbildung 1: Gesamtarchitektur
Alle Knoten (abgesehen vom Map24-Kartenserver) wurden in Java implementiert. Da kein
mobiles Gerät mit GPS-Funktionalität zur Verfügung stand, wurde für die Positionsermittlung auf einen Laptop mit angeschlossenem externem GPS-Controller zurückgegriffen.
2.2 Anforderungen an die Endgeräte
Das ortende mobile Endgerät muss Java nach der Connected-Limited-Device-Configuration-Spezifikation (CLDC) [Sun03] unterstützen und eine Internet-Verbindung aufbauen
können. Für das ortende nicht-mobile Endgerät gelten die gleichen Voraussetzungen. Jedoch wird hier anstatt der eingeschränkten J2ME (Java 2 Micro Edition) die Java Virtual
Machine 1.4 oder höher benötigt, welche einen stark erweiterten Funktionsumfang liefert.
An das zu ortende mobile Endgerät werden die folgenden Anforderungen gestellt:
Möglichst permanente Anbindung an das Internet: Damit die Positionen des Nutzers
die notwendige Aussagekraft besitzen, müssen sie in möglichst kurzen Abständen
an den Server übermittelt werden. Hierfür ist eine dauerhafte Internet-Anbindung
des Endgerätes, beispielsweise über GPRS, sinnvoll. Bei GPRS wird nicht nach
Zeit sondern nach übertragendem Volumen abgerechnet. Da die Positionsdaten nur
wenig Übertragungskapazität benötigen, sind die anfallenden Kosten relativ gering.
Integration von GPS im Endgerät: Damit das Gerät seine Position ermitteln kann, muss
ein GPS-Empfänger integriert sein bzw. Zugriff auf ein externes GPS-Gerät bestehen.
Fähigkeit zum Ausführen von Java: Die Übermittlung der Position an den Server erfolgt über ein Java-Programm. Damit das Gerät dadurch nicht blockiert wird, muss
es multitasking-fähig sein.
Derzeit erfüllen nur wenige Geräte diese Anforderungen. Es existieren zwar GPS-fähige
PDAs, diese benötigten jedoch zusätzlich ein Mobiltelefon, um eine Verbindung zum Internet herzustellen. Andererseits gibt es von Benefon1 oder Garmin2 Mobiltelefone mit
integriertem GPS-Empfänger. Diese Geräte sind aber nicht java-fähig. Es ist jedoch zu
erwarten, dass diese Anforderungen bald von einer zunehmenden Anzahl von Geräten
erfüllt werden. So bietet Global Locate bereits heute einen extrem kleinen und stromsparenden GPS-Chipsatz3 an, der in Mobiltelefone integriert werden könnten. Tatsächlich
stellte Invair Technologies auf der CeBIT 2003 ein Smartphone 4 vor, das alle Anforderungen erfüllt. Leider war es uns noch nicht möglich ein derartiges Gerät zu testen.
3 Vom Server bereitgestellte Funktionalität
Als zentrales Bindeglied zwischen positionssendendem und positionsabfragendem Benutzer fungiert ein in Java implementierter Server. Dieser verwaltet Positions- und Benutzerdaten sowie die Zugriffsrechte in einer relationalen Datenbank und gewährleistet die
Konsistenz dieser Daten. So ist beispielsweise eine Umrechnung der Positionsdaten notwendig, da der positionssendende Benutzer die Daten des GPS-Gerätes in einem anderen
Format ausliest als sie später für das Kartenmaterial benötigt werden. Aufgrund der Beschränkungen der J2ME ist eine Umrechnung direkt nach dem Auslesen auf dem mobilen
Endgerät nicht sinnvoll möglich.
Daneben ist es mangels Serializable-Implementation seitens der J2ME nicht möglich ein
GPS-DataPiece5 als Objekt zu übertragen. Daher werden die GPS-DataPieces bzw. Positionsdaten vom Client in einen String konvertiert, welcher über eine Socket-Verbindung
an den Server geschickt wird. Dieser trägt die Daten nach erfolgreicher Benutzeridentifikation in die Datenbank ein. Die Stringgenerierung für die Kommunikation folgt einer
logischen und leicht erweiterbaren Syntax:
[action] × [condition] × [user] × [dataID 1] × [dataRecord 1] × · · · × [dataID i] × [dataRecord i]
wobei × als (vorher festgelegtes) Trennzeichen fungiert. Beispielsweise liefert
getGdp × latest × ownUserData × UsernameToLocalize
die letzte Position eines Benutzers zurück. Damit der Server prüfen kann ob die Berechtigung zur Lokalisierung vorliegt, müssen die eigenen Nutzerdaten mit übertragen werden.
1 Modelle:
ESC!, Track Pro NT, Track One NT; http://www.benefon.com/products/
2 http://www.garmin.com/
3 http://www.globallocate.com/chip
4 FILEWALKER: http://www.invair.de
5 Datenstruktur,
set main.shtml
in der die GPS-Daten gespeichert werden
Das Einfügen von GPS-DataPieces für den Benutzer ownUserData“ kann beispielsweise
”
wie folgt realisiert werden:
insertGdp××ownUserData×longitude×12.65×latitude×48.15×. . .
Auf eine condition kann dabei verzichtet werden, was durch die beiden direkt aufeinander folgenden Trennzeichen dargestellt wird.
Momentan erfolgt die Kommunikation im Testsystem unverschlüsselt. Für den Einsatz in
einem Produktivsystem ist eine Verschlüsselung insbesondere der personen- und positionsbezogenen Daten zwingend gefordert. Je nach verwendeter Java Virtual Machine kann
es diesbezüglich aber auf den mobilen Geräten zu Problemen kommen. Serverseitig ist
eine Verschlüsselung der übertragenen Daten hingegen problemlos möglich.
3.1 Datenbank
Der Zugriff auf die Datenbank erfolgt ausschließlich über den Server (vgl. Abbildung 2).
Zum einen ist es systembedingt (Verwendung von J2ME ohne plattformabhängige Erweiterungen) technisch nicht möglich, direkt von einem mobilen Gerät auf Datenbanken zuzugreifen. Andererseits ist ein direkter clientseitiger Zugriff aus Gründen der Datenflussund Zugriffskontrolle nicht sinnvoll.
Der Server greift über die Standardschnittstelle JDBC auf die Datenbank zu, die Teil der
Standard-API von J2SE (Java 2 Standard Edition) ist. Die Abfrage der Datenbank erfolgt
somit über Standard-SQL-Anweisungen.
Telefon
longitude
Name
...
User
[0,*]
fordert an
[0,*]
...
latitude
altitude
GPS−DataPiece
Zeit
Adresse
username
speed
Abbildung 2: Ausschnitt aus dem ER-Schema: Anfordern von Positionsdaten
Die Datenbank besteht im Kern aus 3 Relationen. Zum einen werden positionsbezogene Informationen gespeichert, welche später vom Server und Client als GPS-DataPieceObjekte verwendet werden. Entsprechende Daten sind die genaue Positionsangabe in Longitude, Altitude und Latitude, der Zeitpunkt, die Geschwindigkeit, der zur Position gehörende Benutzername, der Kurs und zudem der Zeitpunkt, zu welchem die Daten in die Datenbank eingefügt wurden. Letzteres kann genutzt werden, um Zeitunterschiede zwischen
Auslesen der Daten aus dem GPS-Gerät und dem Einfügen in die Datenbank festzustellen.
Als Primärschlüssel wird der eindeutige Benutzername und die Zeit des GPS-DataPieces
verwendet. Dies ist insofern sinnvoll, als dass ein und der selbe Benutzer kaum Positionsdaten zu einer identischen Zeit liefern wird - und wenn doch, ganz offensichtlich ein Fehler
im System vorliegt. Zudem werden in der Datenbank sämtliche Nutzerdaten gespeichert,
wie Benutzername, Vor- und Nachname, Anschrift und natürlich die Mobilfunknummer.
Eine letzte Tabelle enthält die Zugriffrechte der einzelnen Benutzer, wobei aus dieser Tabelle auch die Buddylist“ generiert wird, welche dem Benutzer zeigt, wen er lokalisieren
”
darf.
3.2 Zugriffskontrolle und Benutzermanagement
Allgemeneinen ist davon auszugehen, dass nicht alle Nutzer eines solchen Services jeden
beliebigen Nutzer lokalisieren dürfen. Damit nur berechtigte Benutzer Positionen abfragen oder eintragen können, werden bei jedem Kommunikationsvorgang zwischen Client
und Server der eigene Benutzername und das Passwort übermittelt. Der Server überprüft
stets, ob der jeweilige Benutzer auch die entsprechenden Rechte besitzt. Ist dies nicht der
Fall, bricht der Server die Bearbeitung ab und generiert eine Fehlermeldung. Durch das
zustandslose Protokoll vermeiden wir ein aufwändiges Sessionmanagement, welches im
Mobilfunkbereich durch häufig wechselnde IP-Adressen zusätzlich verkompliziert würde.
4 Client-Applikationen
Wie eingangs erwähnt wurde, bestehen die Möglichkeiten, die Ortung von Nutzern mobiler Endgeräte entweder von einem Desktop-PC oder von einem anderen mobilen Endgerät
aus zu realisieren. Im Folgenden werden die beiden Client-Anwendungen vorgestellt.
4.1 Mobiltelefon-Client
Für die Umsetzung des Prototyps wurden exemplarisch Mobiltelefone als eine Klasse mobiler Endgeräte genutzt. Prinzipiell ist jedoch eine Portierung der Client-Anwendung auf
z.B. PDAs oder Smartphones ohne Probleme möglich, solange diese Geräte die in Abschnitt 2 vorgestellten Anforderungen ausreichend erfüllen.
Wahl der Programmiersprache: Eine wichtige Anforderung bei der Wahl der Programmiersprache für die auf dem Mobiltelefon laufende Software war die Kompatibilität.
Die Software für das Mobiltelefon sollte möglichst ohne größere Anpassungen auf allen
gängigen Mobiltelefonen sowie PDAs lauffähig sein. Daher kamen proprietäre Systeme
wie z.B. ExEn von In-Fusio6 für diese Entwicklung nicht in Frage. Nahezu alle neu auf
dem Markt erscheinenden Handys und PDAs verfügen jedoch inzwischen über eine eingebaute Java Virtual Machine“. Die Java-Spezifikation unterteilt sich in mehrere Varianten,
”
die unterschiedliche Zielgeräte abdecken. Neben dem sehr verbreiteten Standard (J2SE)
und der Enterprise Edition (J2EE) bietet Sun für kleine Geräte die Java 2 Micro Edition
(J2ME) an. Dieser Standard unterteilt sich je nach Anforderungen in weitere Untergruppen. Die Variante, die auf aktuellen Mobiltelefonen zum Einsatz kommt, ist MIDP, das
6 http://www.in-fusio.com/fond
game/technologie games.php
Mobile Information Device Profile. Diese verwendet die Kilobyte Virtual Machine (KVM)
und begnügt sich mit nur 32 bis 512 kb Arbeitsspeicher. Dieses Mobile Information Device Profile bietet unter anderem Netzwerkunterstützung nach dem HTTP 1.1 Standard, eine
graphische Benutzeroberfläche, die sich automatisch den Gegebenheiten des verwendeten
Gerätes anpasst sowie die Möglichkeit, Daten permanent zu speichern. Für die Kommunikation mit der GPS-Hardware sind die Java APIs für Bluetooth von Interesse. So wäre es
möglich, mit der GPS-Einheit zu kommunizieren wenn diese beispielsweise in dem Akku
des Mobiltelefons integriert wäre, was wiederum ein einfaches Nachrüsten der Technik
erlauben würde.
Die geringen Hardwareanforderungen des MIDP führen jedoch zu Einschränkungen, die
bei der Softwareentwicklung zu beachten sind. Da z.B. viele MIDP-unterstützende Geräte
über keinen Fließkomma-Prozessor verfügen, können keine Variablen vom Typ float
oder double verwendet werden.
Installation: Die Installation der Software kann auf zwei Arten geschehen. Entweder wird
das Gerät mit einem Computer verbunden, um dann die Software auf das Mobiltelefon
oder PDA zu kopieren, oder man verwendet das so genannte Over-the-Air Provisioning“.
”
Hierbei wird das MIDlet, so heißen Programme, die dem J2ME-Standard entsprechen,
von einem Webserver geladen, was durch aktivieren eines Links auf einer WAP-Seite oder
über eine normale HTML-Seite erfolgen kann. Zuerst wird nun nur eine .jad-Datei herunter geladen. Diese enthält unter anderem eine Beschreibung des Programms und die
Dateigröße der Software. Anschließend kann der Anwender entscheiden, ob er die komplette Software herunterladen möchte. Diese enthält dann die kompilierten Klassen in einer
komprimierten .jar-Datei.
Programmbedienung: Nach dem Starten der Software erscheint zuerst das Hauptmenü
(siehe Abbildung 3(a)). Unter View Map kann die eigene Position oder auch die Position
(a) Hauptmenü
(b) Zusatzinformationen
(c) Kartendarstellung
Abbildung 3: Mobiltelefon-Client
von anderen Benutzern des Systems auf einer Karte angezeigt werden. Da die meisten
modernen Mobiltelefone und PDAs über ein Farbdisplay verfügen, erfolgt die Kartendarstellung (vgl. Abbildung 3(c)) in Farbe. Auf Wunsch kann ein Fadenkreuz eingeblendet
werden, welches die exakte Position darstellt. Unter dem Menüpunkt View details wer-
den die Längen- und Breitengrade, der Zoomfaktor, die Breite des Kartenausschnitts, die
Höhe über dem Meeresspiegel, die Geschwindigkeit, die Richtung, die Anzahl der aktuell empfangenen Satelliten sowie einige weitere Daten (siehe Abbildung 3(b)) angezeigt bzw. eingestellt. View settings beinhaltet weitere Einstellungen, z.B. zur Aktualisierung der Kartendarstellung basierend auf einem Zeitintervall oder einer minimalen Positionsveränderung. Dadurch wird das übertragene Datenvolumen und somit die Kosten
der GPRS Datenübertragung reduziert. Der Menüpunkt Change User beinhaltet die Benutzerverwaltung. Wie schon in Kapitel 3.2 erwähnt, dient sie der Zugriffskontrolle und
der Benutzerauthentifizierung. Der Menupunkt Change target ermöglicht - entsprechende Berechtigungen vorausgesetzt - das Anzeigen von Daten anderer Nutzer. Unter Server
data werden Einstellungen bezüglich des Servers (z.B. Adresse und Port) vorgenommen.
Dementsprechend, ermöglicht Map settings das Festlegen spezieller Parameter für den
Zugriff auf den Kartenserver. Der vorletzte Menüpunkt Mobile settings umfasst spezielle
Anpassung der Software an das verwendete Endgerät. Dazu gehören die Auflösung und
die Farbdarstellung. Normalerweise ist dies aber nicht notwendig, da die Software anhand
des Gerätes automatisch kalibriert wird. Der letzte Menüpunkt bietet eine umfangreiche
Hilfefunktion.
4.2 Desktop-Client
Da mobile Endgeräte oftmals beschränkte Darstellungsmöglichkeiten (Displaygröße) besitzen, können sie nicht alle Details der GPS-Daten sinnvoll gleichzeitig darstellen. Um
dieses Problem zu lösen wurde zusätzlich zu dem in Abschnitt 4.1 vorgestellten MobiltelefonClient ein Desktop-Client entwickelt.
Wahl der Programmiersprache: Der Desktop-Client ist komplett in Java (JSDK 1.4)
programmiert, da so die Plattformunabhängigkeit gewahrt bleibt und der Client auf jedem
Computer, der über eine entsprechende Java Virtual Maschine“ verfügt, benutzt werden
”
kann. Die graphische Benutzeroberfläche ist in Swing realisiert, wodurch eine leichte und
weitgehend intuitive Bedienung möglich ist.
Funktionalität: Der Desktop-Client (siehe Abbildung 4) ermöglicht es, die Position von
mobilen Endgeräten auf einer Karte anzuzeigen. Für den Betrieb der Software ist eine
Anbindung an das Internet erforderlich, da sowohl die Positionsinformationen als auch
das Kartenmaterial hierüber bezogen werden. Der Zugriff auf die Positionsdaten erfolgt
über das in Kapitel 3 vorgestellte string-basierte Protokoll. Der Zugriff auf das Kartenmaterial ist über HTTP realisiert: Eine einfache, aus dem vom Positionsserver erhaltenen Längen- und Breitengrad zusammengesetzte URL genügt, um dynamisch den jeweils
benötigten Kartenausschnitt zu erhalten. Auf diese Anfrage wird dann die Karte im GIFFormat zurückgeliefert. Die Positionen der Nutzer werden dabei vom Kartenserver in das
Bild eingefügt, was stets eine optimale Lesbarkeit der Beschriftungen sicherstellt. Hierfür
müssen zuvor dem Server in einer gesonderten HTTP-Anfrage die jeweils aktuellen und
einzuzeichnenden Positionen der Nutzer mitgeteilt werden.
Nach dem Programmstart ist eine Authentifizierung des Nutzers anhand des Nutzernamens
und des Kennworts notwendig. Nach erfolgreicher Prüfung der Daten durch den Positions-
(a) Detailstufe Region“
”
(b) Detailstufe Straße“
”
Abbildung 4: Desktop-Client
server wird die so genannte Buddylist“ übertragen und im Client angezeigt. Diese Liste
”
enthält alle Nutzer mobiler Endgeräte, die dem Anwender der Software ein Ortungsrecht
eingeräumt haben. Über die Buddylist“ erfolgt die Auswahl der Nutzer, die auf der Karte
”
eingezeichnet werden. Dabei ist es möglich, beliebig viele Nutzer gleichzeitig anzuzeigen. Der Zoomfaktor wird automatisch so gewählt, dass alle Nutzer im Kartenausschnitt
repräsentiert sind.
Zusätzlich zu der Position auf der Karte werden zu den ausgewählten Nutzern statistische
Daten in einem Kartenreiter angezeigt. Diese Statistik enthält zum einen Angaben über
die aktuelle geographische Position (Längen- und Breitengrad sowie die Höhe über Normal Null). Zum anderen werden auch Angaben über die aktuelle Geschwindigkeit, die
aktuelle Bewegungsrichtung und über den Zeitpunkt der letzten Messung angezeigt. Diese Angaben sind alle in Textform gegeben. Zur besseren Übersicht werden Richtung und
Geschwindigkeit noch durch eine Windrose dargestellt, bei der mit steigender Geschwindigkeit der Richtungszeiger wächst.
Das Zoomen der Karte ist über zwei verschiedene Methoden möglich. Zum einen kann
einfach stufenweise herein- oder herausgezoomt werden. Zum anderen ist es möglich, über
fünf vorgegebene Detailstufen (Straße, Stadt, Region, Land und Europa) auch bequem in
größeren Sprüngen zu zoomen.
Über ein Wiedergabe-Modul kann der Nutzer zudem sämtliche auf dem Positionsserver
gespeicherte Routen von früheren Zeitpunkten wiedergeben. Hierzu wird die Route vom
Server übertragen und in einer gewählten Geschwindigkeit abgespielt. Die Zuordnung der
Positionen zu einer Route wird über einen Routennamen geregelt, die der Sender der Position festlegen kann. Alle Positionen mit dem gleichen Routennamen werden dann zu einer
Route zusammengefasst.
In den Programm-Einstellungen lassen sich Deutsch und Englisch als Programmsprache
wählen. Außerdem ist es möglich einen Standard-Nutzer anzulegen, damit die Anmeldung
beim Start des Programms vereinfacht wird.
5 Zusammenfassung und Ausblick
Die Ortung von mobilen Endgeräten ist eine zwingende Voraussetzung für die Realisierung lokationsbasierter Dienste. Im Rahmen des vorgestellten Projektes wurde ein System
entwickelt, das es ermöglicht, die Position eines mit GPS ausgestatteten mobilen Endgerätes zu bestimmen. Dazu wurden neben einem Server, der Positions- und Nutzerinformationen verwaltet, zwei Client-Anwendungen implementiert. Durch diese ist der Zugriff
auf die Daten von einem Mobiltelefon bzw. einem Desktop-PC möglich. In dem Papier
wurde die Gesamtarchitekur präsentiert und einige Aspekte der Implementierung sowie
der Anwendung des Systems erläutert.
Bei dem vorgestellten System handelt es sich um einen Prototyp, der noch zahlreiche
Punkte für zukünftige Arbeiten offen lässt. Darunter sind u.a. (1) Skalierbarkeit des Servers bei einer großen Anzahl von Nutzern und (2) verschlüsselte Kommunikation zwischen
den beteiligten Komponenten. Neben den technischen Fragen, sind Anwendungen ein zentraler Punkt für Anschlussfragestellungen. Wie eingangs erwähnt, soll und wird in erster
Linie die Genauigkeit der Lokalisierung des GSM-Schutzengels“ durch die GPS-Ortung
”
verbessert werden.
Danksagung: Unser Dank gilt der Infineon Technologies AG, der NETSOLUT GmbH sowie der SOS r. AG, welche die Entwicklung durch Geld und Sachmittel unterstützt haben.
Literatur
[Eri01]
Ericson.
Ortsbezogene Mobilfunkdienste - Location Based Services, October 2001.
http://www.ericsson.de/downloads/pressenews/HintergrundpapierLBS.pdf.
[ETS93] ETSI. European digital cellular telecommunications system; Attachment requirements
for Global System for Mobile communications (GSM) mobile stations. Technical basis
for regulation, European Telecomunications Standards Institute, Sophia Antipolis Cedex,
November 1993.
[ETS98] ETSI. Digital cellular telecommunications system (Phase 2+) (GSM); G eneral Packet
Radio Service (GPRS); Service description; Stage 1 (GSM 02.60 version 6.1.1). European standard (communication series), European Telecomunications Standards Institute,
Sophia Antipolis Cedex, November 1998.
[ETS99] ETSI. Digital cellular telecommunications system (Phase 2+); Attachment requirements
for Global System for Mobile communications (GSM); High Speed Circuit Switched Data (HSCSD) multislot mobile stations; Access (GSM 13.34 version 5.0.3). European
standard (communication series), European Telecomunications Standards Institute, Sophia Antipolis Cedex, March 1999.
[GBAP03] B. Gipp, J. Beel, F. Alcala, and L. Petersen. Der GSM-Schutzengel... Internetseite,
2003. http://www.gsm-schutzengel.de.
[Kap96] E. D. Kaplan. Understanding GPS : Principles and Applications. Artech House Telecommunications Library. Artech House, March 1996.
[NET03] NETSOLUT GmbH. Map24 - Online Routenplaner und interaktive Karten für Europa.
Internetseite, 2003. http://www.map24.de.
[Sun03] Sun Microsystems, Inc. J2ME - Java 2 Platform, Micro Edition. Internetseite, 2003.
http://java.sun.com/j2me/.
Konzeption eines interaktiven mobilen
Reiseinformationssystem
Karsten Baumgarten und Christoph Gollmick
Friedrich-Schiller-Universität Jena, Institut für Informatik
Ernst-Abbe-Platz 2, 07743 Jena
{ishino,gollmick}@informatik.uni-jena.de
Kurzfassung: Im Bereich der datenbankgestützten Informationssysteme eröffnet sich
durch die Mobilität der Nutzer ein weites Spektrum an interessanten neuen Anwendungsmöglichkeiten. Im vorliegenden Beitrag wird das Konzept eines datenbankgestützten interaktiven mobilen Reiseinformationssystems vorgestellt, das den (mobilen)
Nutzer bei der Erfassung und Wartung seines Datenbestandes mit einbezieht.
1 Einführung
Mit der Entwicklung leistungsfähiger mobiler Geräte und drahtloser Kommunikationsverfahren entstand ein vollkommen neues Anwenderprofil - der mobile Nutzer. Damit begann zugleich auch die Suche nach attraktiven Anwendungen für diese Zielgruppe. Zu den
wichtigsten Anwendungsmöglichkeiten gehören die datenbankgestützten Informationssysteme. Zwei Beispiele dafür sind eine Anwendung für den Katastrophenschutz [AZ03], bei
der u. a. Helfer vor Ort mit mobilen Geräten Informationen sammeln und über eine Datenbank anderen Nutzern zur Verfügung stellen oder eine Anwendung für Service-Techniker,
die vor Ort Zusatzinformationen wie Schaltpläne oder Bedienungsanleitungen für ihren
Auftrag aus einer Datenbank herunterladen.
Wir stellen hier das Konzept des datenbankgestützten interaktiven mobilen Reiseinformationssystems H ERMES vor [Bau03]. Im Unterschied zu klassischen Touristenführern sind
die mobilen Nutzer aktiv an der Erfassung der Daten und Wartung der Datenbank beteiligt. In diesem Beitrag werden neben einer allgemeinen Beschreibung von H ERMES die
angebotenen Informationen und das daraus resultierende Datenmodell angegeben. Anhand
eines Beispiels werden wir abschließend die Arbeitsweise mit dem Reiseinformationssystem verdeutlichen.
2 Überblick
Das Reiseinformationssystem soll seinen Nutzern (u. a.) Informationen über Ortschaften
und darin befindliche Sehenswürdigkeiten, Hotels und gastronomische Einrichtungen zur
Verfügung stellen. Damit soll es die Nutzer in zwei Hinsichten unterstützen. Zum einen als
Informationsquelle für die Reiseplanung, zum anderen als eine Art „elektronischer Reisebegleiter“, der einen Nutzer an Ort und Stelle mit Informationen zum derzeitigen Aufenthaltsort versorgen kann. Im Unterschied zu klassischen Touristenführern werden die dafür
notwendigen Informationen jedoch nur zu einem kleinen Teil zentral bereit gestellt. Vielmehr werden die Nutzer am Aufbau und an der Pflege des Datenbestandes beteiligt. Sie
sollen die Informationen vor Ort sammeln, auf ihren mobilen Geräten zwischenspeichern
und letztlich dem H ERMES-Server zur Verfügung stellen. Neben den Basisinformationen
können die Nutzer auch durch das Verfassen von Reiseberichten und der Definition interessanter Reiserouten (innerhalb einer Ortschaft oder auch zwischen verschiedenen Orten)
das Informationsangebot ergänzen. Weiterhin verfügt H ERMES über ein einfaches Bewertungssystem. Die Nutzer können damit bestimmte Merkmale einer Ortschaft, eines Restaurants, o.ä. durch die Vergabe von Noten bewerten. Zusammenfassend beinhaltet die
Mitwirkung der Nutzer am Aufbau des Informationsangebotes die folgenden Vor- und
Nachteile:
+ Die Attraktivität des Reiseinformationssystems für die Nutzer (und damit auch seine Akzeptanz) werden gefördert, denn jeder kann durch seinen eigenen Beitrag zu
einem „Teil des Projektes“ werden.
+ Da das Informationsangebot zu einem großen Teil durch die Nutzer selbst erstellt
wird kann man davon ausgehen, daß es auch deren Interessen entspricht. Somit
erreicht man einen Relevanzgrad für die angebotenen Informationen, der mit ausschließlich zentral zur Verfügung gestellten Daten kaum möglich wäre.
+ Der erhebliche Aufwand für die Beschaffung der Informationen wird (größtenteils)
auf die Nutzer verteilt. Durch die Dezentralisierung wird der Beschaffungsaufwand
für den Anbieter des Informationsdienstes minimiert.
+ Es wird ein hoher Grad an Vollständigkeit und Aktualität der angebotenen Informationen erreicht,
− . . . eine hohe Zahl von motivierten und ausreichend geographisch verteilten Nutzern
voraussetzt.
− Von den Nutzern erstellte Informationen sind möglicherweise fehlerhaft oder unvollständig. Sie müssen deshalb auf inhaltliche Richtigkeit und Vollständigkeit überprüft werden. Das ist nur schwer automatisierbar, muß also u.U. manuell auf Seiten
des Anbieters erfolgen.
2.1 Nutzergruppen
Um den Nachteil manueller Korrekturen auf Anbieterseite zu vermeiden, können wir die
Nutzer in den Korrekturprozeß einbeziehen. Angelehnt an die Struktur vieler Newsgroups
und Foren im Internet werden die Nutzer dazu in zwei verschiedene Klassen unterteilt.
Das sind zum einen die „normalen“ Nutzer der Anwendung, zum anderen so genannte
„Superuser“ oder Administratoren, deren wichtigste Funktion die manuelle Überprüfung
der durch andere Nutzer eingebrachten Daten ist.
2.2 Phasen der Nutzung
Durch hohe Kosten und eingeschränkte Verfügbarkeit drahtloser Kommunikationsmöglichkeiten ergibt sich die Anforderung, die notwendige Online-Zeit mobiler Geräte bei der
Benutzung von H ERMES so kurz wie möglich zu halten. Wir legen deshalb der Arbeit mit
der H ERMES-Client-Anwendung den in Abbildung 1 skizzierten Ablauf zugrunde.
Replikat(re)definition
unverbundene
Tätigkeit
Reintegration
Rückübertragung
Synchronisation
Abbildung 1: Zeitweise unverbundenes Arbeiten mit einem mobilen Client
Über die Anwendung spezifiziert der mobile Nutzer zunächst die Daten, mit denen er
später im unverbundenen Zustand arbeiten will (Replikatdefinition, z. B. Städteinformationen, interessante Reiseberichte). Gleichzeitig werden dabei die gewünschten Verwendungsrechte für den unverbundenen Zustand (nur lesender Zugriff, lesender/schreibender
Zugriff) festgelegt. Nach der eventuell notwendigen Reintegration vorher lokal durchgeführter Änderungen werden die angeforderten neuen Daten plus Aktualisierungen bereits
vorhandener Daten auf den mobilen Client übertragen (Rückübertragung). Es folgt die
Phase der Unverbundenheit, in der replizierte Daten durch die Nutzer gelesen und bearbeitet werden können. Mit einer erneuten Replikatdefinition oder der Synchronisation der
Daten wird der Zyklus fortgesetzt.
2.3 Unverbundenes Arbeiten
Die Grundlage des zeitweisen unverbundenen Arbeitens ist ein Dienst zur Replikation,
also zur konsistenten Verwaltung von lokalen Kopien der Daten, die im zentralen Datenbanksystem gespeichert sind [HHB96]. Dies setzt das Vorhandensein eines geeigneten
Client-Datenbanksystems voraus, wovon wir im Folgenden ausgehen wollen, da es bereits
eine Reihe etablierter Datenbanklösungen namhafter Hersteller für den replizierenden mobilen Datenbankzugriff gibt [Fan00]. Für die Umsetzung von H ERMES reichen die bisher
gebotenen Fähigkeiten aber nicht aus. Benötigt werden zusätzlich:
• eine nutzer- bzw. anwendungsgesteuerte Replikation von Daten
• verbesserte automatische Konfliktbehandlungsmethoden und Unterstützung der Nutzer bei der Konfliktlösung
• eine flexible Nutzerverwaltung und inhaltsbasierte Zugriffsrechte
• eine skalierbare Infrastruktur für eine große Nutzerzahl
Zur Realisierung des unverbundenen Arbeitens bei H ERMES und verwandten Anwendungen wurde ein Dienst zur nutzerdefinierten Replikation (NR) relationaler Datenbankinhalte entwickelt, der auf einer vorhandenen mobilen Client/Server-Datenbankumgebung
aufsetzt [Gol03, Lie03]. Unter anderem stellt die NR dem Anwendungsprogrammierer
eine an SQL angelehnte deskriptive Schnittstelle zur dynamischen Anforderung und Anpassung von Replikaten und die Konfliktbehandlung zur Verfügung. Wie das funktioniert,
sehen wir in Abschnitt 6.
2.4 Zugrundeliegende Infrastruktur
Mobiler Client
H ERMES-Client
lokales
Server
Replikations− /
Synchronisations−
anforderung
Daten/Updates
Replication
Proxy
asynchrone
Server
Datensätze
zentrales
DBS
DBS
externe
Quelle
Abbildung 2: Architektur eines datenbankunterstützten mobilen Informationssystems
Als datenbankgestütztes Informationssystem basiert H ERMES auf einer Client/Server-Architektur, erweitert um die Möglichkeit des unverbundenen Arbeitens auf einem lokalen
DBS des Client. Die von H ERMES verwendete und in [Mül03] spezifizierte Architektur
ist in Abbildung 2 dargestellt. Sie besteht aus einem zentralen Datenbankserver, einem
oder mehreren mobilen Clients und mindestens einem zwischengeschalteten sogenannten Replication Proxy Server (RPS). Auf dem zentralen Datenbankserver ist das gesamte
Informationsangebot von H ERMES gespeichert. Der RPS speichert die, von einem Replikationsadministrator für die Replikation freigegebenen, Daten nochmals lokal und stellt
sie den mobilen Clients für die Replikation zur Verfügung. Er übernimmt innerhalb der
Architektur zusätzlich die folgenden Aufgaben:
• Abwicklung der drahtlosen Kommunikation mit den mobilen Clients
• Verwaltung der mobilen Nutzer und inhaltsbasierter Zugriffsrechte
• Verarbeitung der Replikations- und Synchronisationsanfragen der mobilen Clients
• Behandlung von Änderungskonflikten
In die Architektur können gegebenenfalls externe Quellen aufgenommen werden, wie es
auch in Abbildung 2 der Fall ist. Der RPS kann von ihnen beispielsweise statistische Angaben zu den Ortschaften oder geographischen Daten beziehen (z.B. für eine automatische
Ortsbestimmung).
3 Funktionalität
3.1 Funktionen des H ERMES-Client
Das Kernelement der Anwendung auf dem mobilen Client ist der Auswahlkatalog. Er besteht aus einer graphischen Oberfläche, die dem Nutzer verschiedene Funktionen zugänglich macht. Dazu gehört u. a. eine Übersicht über das im System und davon bereits lokal
vorhandene Informationsangebot. Es wird also z.B. angezeigt, das die Öffnungszeiten von
Restaurants in einer Ortschaft zum Informationsbestand von H ERMES gehören. Bereits
lokal vorhandene Daten (von früheren Replikationsprozessen) werden besonders gekennzeichnet. Der Nutzer kann so erkennen, welche Daten bereits zum Lesen oder Bearbeiten
zur Verfügung stehen.
Mit Hilfe des Auswahlkatalogs kann der Anwender Daten zur Replikation auswählen. Die
Anwender von H ERMES benötigen normalerweise keine vollständige Kopie des zentralen
Informationsbestandes. In der Regel werden nur solche Daten vom Server angefordert,
die während des Aufenthalts in den geplanten Reisezielen auch tatsächlich benötigt werden. Möglicherweise zunächst auch nur einen Teil davon, mit der Option später weitere
hinzukommen zu lassen, wenn die bereits vorhandenen Daten unzureichend sind.
Die Aktualisierung replizierter Daten gehört ebenfalls zu den grundlegenden Funktionen
der Anwendung auf dem mobilen Client. Dabei werden bereits replizierte Daten mit den
aktuellen Versionen der H ERMES-Datenbank verglichen und ggf. auf Veranlassung des
Nutzers aktualisiert. Bei der Synchronisierung können eine Reihe von Konflikten auftreten, die sich aus dem parallelen Arbeiten von H ERMES-Nutzern mit den selben Daten
ergeben. Hier sind den Daten und der Situation angepaßte Konfliktbehandlungsmethoden
einzusetzen. Sowohl die Replikatauswahl als auch die Synchronisation inklusive Konfliktbehandlung werden über entsprechende Dienste der nutzerdefinierten Replikation durchgeführt.
Das bereits angesprochene Bewertungssystem soll dem Nutzer zunächst einen schnellen
Überblick über die Qualität eines ausgewählten Reiseziels ermöglichen. Weiterhin wird
damit eine gezielte Suche nach bestimmten Ortschaften ermöglicht, indem der Nutzer entsprechende Kriterien für Mindestnoten bestimmter Eigenschaften des Ortes angibt.
3.2 Funktionen des RPS als H ERMES-Server
Für die Realisierung des interaktiven Reiseinformationssystems muß der RPS neben der
nutzerdefinierten Replikation einige zusätzliche Funktionen bereitstellen. Dazu gehören
Zusatzinformationen über die von einem Nutzer angeforderten Daten, wie Angaben zum
Umfang und der voraussichtlichen Übertragungsdauer. Auch sind Angaben über eine ge-
schätzte Gültigkeitsdauer (bei auf dem Server bekannter Änderungshäufigkeit) angeforderter Daten hilfreich, um der Anwendung zu ermöglichen den Nutzer auf eine eventuell
notwendige Synchronisation hinzuweisen.
4 Informationsangebot
Eine wesentliche Zielstellung des Reiseinformationssystems ist ein möglichst umfassendes Angebot an Informationen, die für einen Nutzer während seiner Reiseplanung bzw.
während des Aufenthalts an einem Reiseziel von Bedeutung sind. Bei der Erarbeitung von
H ERMES als Beispielszenario haben wir uns auf einige wesentliche, im Folgenden beschriebene Informationen beschränkt. Das Angebot kann jedoch für einen späteren praktischen Einsatz sehr leicht erweitert werden.
4.1 Informationsquellen
Die Idee des interaktiven Reiseinformationssystems lebt von der Mitwirkung der Nutzer
beim Aufbau und der Pflege des Datenbestandes. Einige Teilbereiche des Informationsangebotes sind davon jedoch ausgenommen. So werden durch H ERMES alle Daten zu den
Regionen (z. B. Bundesländer oder auch Landschaftsbezeichnungen) sowie die grundlegenden Informationen für alle Ortschaften bereit gestellt. Diese Daten, im Folgenden als
Basisdaten bezeichnet, sind durch die Nutzer grundsätzlich nicht änderbar. Sie können
leicht aus externen Quellen bezogen und praktisch ohne weitere inhaltliche Prüfung in den
zentralen Datenbestand integriert werden.
Der größte Teil des Informationsangebotes basiert auf nutzerdefinierten Daten. Dazu gehören u. a. Daten zu den Gebäuden (z. B. Sehenswürdigkeiten, Hotels) einer Ortschaft
und natürlich die Reiseberichte. Prinzipiell könnte der Anbieter des Reiseinformationssystems alle Basisdaten bereitstellen, das System „sich selbst überlassen“ und alle Änderungen/Erweiterungen des Datenbestandes seinen Nutzern überlassen. Vor allem in der
Startphase, in der H ERMES nur wenige Nutzer hat, ist dieses Vorgehen aber ungünstig,
weil nur wenige Informationen durch die Nutzer erstellt werden und das System deshalb
nur sehr langsam ein umfangreiches Angebot aufbaut. Aus diesem Grund sollten nutzerdefinierte Daten nicht ausschließlich durch die Nutzer erstellt, sondern auch durch den
Anbieter ständig ergänzt und erweitert werden.
4.2 Informationsgruppen
Gruppe
Zusammensetzung
Allgemeine Daten
Statistische Daten
Historische Informationen
Bewertungen
Name, PLZ
Einwohnerzahl
Historie
Besuchswert, Kulturangebot
Abbildung 3: Informationsgruppen für Ortschaften
Damit ein Anwender bei seiner Informationsauswahl aus dem H ERMES-Katalog nicht jedes einzelne Attribut einer Informationskategorie (z. B. Ortschaft) betrachten muß, dann
über die Notwendigkeit des Kopierens in die eigene Datenbank entscheiden und schließlich auch noch mögliche Abhängigkeiten zwischen den Teilinformationen beachten muß,
gliedern wir die Gesamtinformation für eine Informationskategorie aus dem Informationsangebot in eine Menge von Informationsgruppen. Diese fassen jeweils semantisch zusammengehörende Attribute zusammen, wobei die Aufteilung einer Informationskategorie in
ihre Gruppen vollständig und disjunkt erfolgt. Die Nutzer können ihre benötigten Informationen dann durch eine Auswahl aus den verschiedenen Informationsgruppen zusammenstellen. Abbildung 3 zeigt am Beispiel der Kategorie „Ortschaft“ die Aufteilung in
Informationsgruppen.
5 Datenbankentwurf
Die Speicherung der H ERMES-Daten in der zentralen Datenbank folgt dem relationalen
Datenmodell. Das E/R-Diagramm der Datenbank ist in Abbildung 4 angegeben. Es enthält
alle Entitäts- und Beziehungstypen, die sich aus dem Informationsangebot von H ERMES
ergeben. Die Beziehungen zwischen den einzelnen Entitätstypen sind durchnumeriert, um
eine bessere Übersichtlichkeit zu erreichen. Das Schema der Datenbank folgt den allgemeinen Regeln für die Übertragung von E/R-Modellen in Relationenschemata. Zusätzlich
wurde bei der Bildung der Tabellen die Einteilung in Informationsgruppen berücksichtigt,
indem jede Gruppe in eine separate Tabelle übersetzt wurde.
6 Beispiel und Realisierung
Anhand eines Beispiels soll im Folgenden der Arbeitsablauf und die Verwendung der nutzerdefinierten Replikation verdeutlicht werden. Wir stellen einen vollständigen Durchlauf
durch den Arbeitsablauf von H ERMES dar, wie er auch bei Verwendung der Anwendung
in der Praxis vorkommen könnte. Dabei beschränken wir uns auf die Angabe der für die
Replikation wichtigen Anweisungen. Zu den einzelnen Schritten ist jeweils der Verbindungszustand zwischen Client und RPS vermerkt, der für die Durchführung der angegebenen Operation notwendig ist ( online oder offline ).
1. online einmaliges Anlegen einer Replikationssicht 1 für Regionsdaten
CREATE REPLICATION VIEW RegionDescription
FOR REPLICA DATABASE locHERMES
AS SELECT * FROM Region
INTO REPLICATION VIEW GROUP RegionsGrp;
SYNCHRONIZE
REPLICATION VIEW GROUP RegionsGrp
OF REPLICA DATABASE locHERMES;
1 Eine
Replikationssicht dient bei der NR zur Definition der Daten, die unverbunden verfügbar sein sollen.
Abbildung 4: E/R-Modell: Übersicht
6
Kommentar
(1,1)
(0,*)
EssenTrinken
5
(1,1)
Saison
(0,*)
Zimmer
4
Gastronomie
3
(1,1)
(1,*)
Hotel
Oeffnungszeiten
(1,1)
9
Reisebericht
(0,1)
(0,1)
10
(1,7)
(0,*)
1
2
KultEinr
(p,d)
Gebaeude
(1,1)
(0,*)
Ortschaft
(1,*)
(0,*)
Region
(0,*)
(0,*)
(0,*)
11
HistGeb
8
7
Position
1 − umfasst
2 − enthaelt
3 − hat
4 − bietet_an
5 − gibt_aus
RouteOrtschaften
Position
(2,*)
(v,d)
Route
(0,*)
SozEinr
(2,*)
6 − wird_ergaenzt_durch
7 − besitzt
8 − gehoert_zu
9 − beschreibt_Route
10 − beschreibt_Ort
11 − ist_enthalten_in
(1,1)
RouteInnerorts
2. offline Auswahl eines Regionstyps durch den Nutzer (aus einer Liste)
→ Bundesland
3. offline Auswahl eines oder mehrerer Regionsnamen(s) durch den Nutzer
→ Thüringen
4. online Anfordern der Daten für Regionen und Ortschaften
CREATE REPLICATION VIEW City
FOR REPLICA DATABASE locHERMES
AS SELECT o.Name, o.PLZ, r.Name FROM Ortschaft o, Region_Orte r
WHERE o.ONr = r.ONr AND r.Name IN (’Thueringen’)
INTO REPLICATION VIEW GROUP CityGrp;
SYNCHRONIZE
REPLICATION VIEW GROUP CityGrp
FOR REPLICA DATABASE locHERMES;
5. offline Auswahl gewünschter Ortschaften durch den Nutzer
6. offline Auswahl benötigter Informationsgruppen
(a) Informationsgruppen, die für alle ausgewählten Orte repliziert werden sollen
(b) Informationsgruppen für bestimmte Orte
(c) wenn benötigt: Anforderung von Änderungsrechten
7. online Replikation der ausgewählten Informationsgruppen
→ historische Daten von Jena zum Ändern (optimistische Replikation [HHB96]).
(a) Anlegen einer Sichtengruppe 2 für die Ortschaft
CREATE REPLICATION VIEW GROUP City_A
FOR REPLICA DATABASE locHERMES;
(b) Anlegen der Replikationssicht für die historischen Daten und Synchronisation
CREATE REPLICATION VIEW City_A_History
FOR REPLICA DATABASE locHERMES
AS SELECT * FROM Ortschaft_Historie
WHERE ONr = (SELECT ONr FROM Ortschaft
WHERE Name = ’Jena’)
INTO REPLICATION VIEW GROUP City_A
FOR OFFLINE MODIFICATION;
SYNCHRONIZE
REPLICATION VIEW GROUP City_A
FOR REPLICA DATABASE locHERMES;
8. offline unverbundenes Arbeiten mit den replizierten Daten
2 Replikationssichtengruppen
Daten einer Ortschaft.
sind für die gemeinsame Synchronisation von Daten verantwortlich, z. B. aller
Daten werden bei CREATE REPLICATION VIEW standardmäßig nur für den lesenden
Zugriff repliziert. Bei der Replikationssicht City_A_History wurde die Änderbarkeit
explizit gefordert. Zu beachten ist hier jedoch, daß der RPS nicht notwendigerweise die
Schreibrechte für die Daten gewähren muß (exklusive Änderungsrechte an anderen Nutzer
vergeben, fehlende Berechtigung des Nutzers, etc.). Es ist auch möglich Replikationssichten zunächst nur für den lesenden Zugriff zu fordern und erst später über eine ALTER
REPLICATION VIEW-Anweisung das Änderungsrecht hinzuzufügen.
7 Zusammenfassung und Ausblick
Das erarbeitete und hier vorgestellte Konzept eines interaktiven mobilen Reiseinformationssystems enthält zur Zeit die detailierte Beschreibung des Informationsangebots (Umfang jederzeit erweiterbar), den Datenbankentwurf, Beispieldaten sowie Ablaufschema für
die Arbeit mit der Client-Anwendung. Noch zu spezifizieren sind die Nutzerverwaltung
sowie eine geeignete (inhaltsbasierte) Rechtevergabe, die für die Realisierung der Bewertung und der Nutzeradministratoren notwendig sind. Beides wird in der zur Zeit laufenden
prototypischen Umsetzung eines Replication Proxy Server und H ERMES-Client in Angriff
genommen.
Literaturverzeichnis
[AZ03]
R. Leiner A. Zipf. Anforderungen an mobile Geo-Datenbanken für Katastropheninformations- und warnsysteme. In Tagungsband zum Workshop Workshop Scalability,
Persistence, Transactions - Database Mechanisms for Mobile Applications, Karlsruhe,
Interner Bericht 2003-5. Fakultät für Informatik, Universität Karlsruhe, April 2003.
[Bau03]
K. Baumgarten. Konzeption und Schemaentwurf eines interaktiven mobilen Reiseinformationssystems. Studienarbeit, Institut für Informatik, Friedrich-Schiller-Universität
Jena, Juli 2003.
[Fan00]
T. Fanghänel. Vergleich und Bewertung kommerzieller mobiler Datenbanksysteme. Studienarbeit, Institut für Informatik, Friedrich-Schiller-Universität Jena, September 2000.
[Gol03]
C. Gollmick. Nutzerdefinierte Replikation zur Realisierung neuer mobiler Datenbankanwendungen. In Tagungsband der 10. GI-Fachtagung Datenbanksysteme für Business,
Technologie und Web (BTW), Leipzig, Band P-26 aus Lecture Notes in Informatics (LNI),
Seiten 453–462, Februar 2003.
[HHB96] A. Helal, A. Heddaya und B. Bhargava. Replication Techniques in Distributed Systems.
Kluwer Academic Publishers, August 1996.
[Lie03]
M. Liebisch. Synchronisationskonflikte beim mobilen Datenbankzugriff: Vermeidung,
Erkennung, Behandlung. Diplomarbeit, Institut für Informatik, Friedrich-Schiller-Universität Jena, Februar 2003.
[Mül03]
T. Müller. Architektur und Realisierung eines Replication Proxy Server zur unterstützung neuartiger mobiler Datenbankanwendungen. Diplomarbeit, Institut für Informatik,
Friedrich-Schiller-Universität Jena, April 2003.
Vision mobiler Geodienste*
Martin Breunig1, Rainer Malaka2, Wolfgang Reinhardt3, Joachim Wiesel4
1
Forschungszentrum für Geoinformatik und Fernerkundung (FZG)
Hochschule Vechta
Postfach 1553, D-49364 Vechta
E-mail: [email protected]
2
European Media Laboratory GmbH
Villa Bosch, Schloss-Wolfsbrunnenweg 33
D-69118 Heidelberg
E-mail: [email protected]
3
Universität der Bundeswehr München
Arbeitsgemeinschaft Geoinformationssysteme (AGIS)
Werner-Heisenberg-Weg 39, D-85577 München
E-mail: [email protected]
4
Institut für Photogrammetrie und Fernerkundung (IPF)
Universität Karlsruhe
Englerstr. 7, D-76128 Karlsruhe
E-Mail: [email protected]
Abstract: Neben dem Gesundheitswesen und den Navigationssystemen scheinen
die Geowissenschaften mit ihren inhärent lokationsabhängigen 2D-, 3D- und „4D“Anwendungen ein ideales Areal für Experimente der mobilen Informationsverarbeitung darzustellen. Die Verbindung des Internets mit mobilen Kommunikationstechnologien eröffnet zudem erstmalig die Perspektive ubiquitärer Zugriffe auf in
verschiedensten Institutionen verteilt erhobene und verwaltete Geodatenbestände.
Moderne Geodienste können somit zu einer schnellen Verfügbarkeit und steigenden
Qualität von Informationen über unsere Umwelt beitragen. Diese Dienste sind so zu
gestalten, dass sie in internet-basierten Netzwerken von mobilen Anwendungen
genutzt werden können. Neben dem wichtigen Aspekt der Datenverwaltung für
Geodienste spielen hier die mobile Erfassung, Visualisierung und Analyse mehrdimensionaler Geodaten eine wesentliche Rolle. In diesem Kurzbeitrag wird die
Vision des anwendungsorientierten BMBF-Verbundprojektes „Weiterentwicklung
von Geodiensten” im Rahmen des Forschungsschwerpunktes „Geotechnologien:
Informationssysteme im Erdmanagement” vorgestellt.
Das diesem Artikel zugrundeliegende Vorhaben „Weiterentwicklung von Geodiensten“
(http://www.geoservices.fzg.uni-vechta.de) wird mit Mitteln des Bundesministeriums für
Bildung und Forschung unter den Förderkennzeichen 03F0373B et al. gefördert. Die
Verantwortung für den Inhalt dieser Veröffentlichung liegt bei den Autoren.
1
Die Vision
Neuartige, mobil verfügbare Geodienste werden Geowissenschaftlern in Zukunft helfen
die Erfassung, Modifikation und Visualisierung unterirdischer Planungsvorhaben oder
geologischer Formationen direkt im Gelände durchzuführen, unterstützt durch ein
leistungsfähiges Geodatenbanksystem und moderne Augmented Reality Methoden
[Müll01]. Das Potential und die Anforderungen geowissenschaftlicher Informationssysteme an die Datenbankforschung wurde kürzlich schon in [SABK03] dargestellt.
In unserer Vision einer neuen Generation von Geodiensten verfolgen wir die folgenden
Ziele: Die mobile Erfassung und das Update von Geodaten durch Sensoren vor Ort sowie
die Visualisierung von mit dem Auge nicht sichtbarer von einem Datenbanksystem
verwalteter Objekte im geologischen Untergrund. Durch Techniken der Augmented
Reality (AR) soll der Geowissenschaftler bzw. Ingenieurgeologe in die Lage versetzt
werden, die Planung hydrogeologischer Prozesse und den Zustand von Bauwerken wie
Staudämmen einschließlich des geologischen Untergrunds als 3D-Modell zu verfolgen
und fortzuführen. Durch ein leistungsfähiges Geodatenbanksystem soll die Abspeicherung und der räumliche Zugriff auf kleine 3D-Teilbereiche problemlos möglich sein
und die Ergebnisse von raum- und zeitbezogenen Datenbank-Abfragen (2D/3D/4DAbfragen) mithilfe eines mobilen Augmented Reality Clients visualisiert werden können.
Die im Geodatenbanksystem durchgeführte Berechnung der Projektion von Objekten im
dreidimensionalen Raum auf die Ebene (Profilschnitte) und deren Visualsierung (2D)
kommt dabei dem augenblicklichen Stand der Technik für kleine mobile Endgeräte
entgegen.
Schließlich soll in einer verteilten Servicearchitektur die Komposition verschiedener
Geodienste für die Erfassung, Verwaltung, Visualisierung und Analyse von Geodaten
bausteinartig nach Bedarf der jeweiligen Anwendung zugeschnitten werden können.
Hierbei gilt es aus Anwendersicht eine für den geowissenschaftlichen Experten möglichst
mit wenig Programmieraufwand realisierbare Lösung zu schaffen, in der bereits
vorgefertigte Frames für die Visualisierung (2D/3D-Elemente) und die Typen von
Datenbankabfragen nur noch an die jeweilige spezielle Anwendung angepasst werden
müssen.
In unserer Vision sollen die verschiedenen Operationen der Geodienste über eine
leistungsfähige Kommunikationsschicht von mobilen Clients angesteuert und leicht durch
weitere internet-basierte Dienste ergänzt werden können. Hierbei gilt es die Grenzen
bisheriger Standardisierungsbemühungen wie die über http realisierte Web-Services des
Open GIS Consortiums [OGC03] zu untersuchen und Alternativen bzw. Erweiterungen
aufzuzeigen.
Die Entwicklung einer neuen Generation mobiler Geodienste wird sowohl der
Datenbankforschung als neues und interessantes Anwendungsgebiet dienen als auch die
Geowissenschaften durch neue Möglichkeiten der Informationsverarbeitung darin
unterstützen, fachspezifische Fragestellungen zur Förderung einer nachhaltigen Umwelt
effizient und qualitativ auf hohem Niveau zu bearbeiten.
2
Anwendungsfelder
Der Bedarf an einem mobilen Geodatenmanagement und an der mobilen Datenerfassung
ist in allen Geowissenschaften vorhanden ([Bund01] [SABK03]). Anwendungsfelder sind
überall dort zu sehen, wo mobile Geräte (z.B. zur Bearbeitung geologischer Strukturen,
Bodenqualität, DGM, Planungsvorhaben, rechtlicher Grenzen, Leitungen im Untergrund
etc.) die Datenerfassung verbessern können:
•
Die Übertragung von aktuellen Messwerten in entfernte Datenbanken beispielsweise
bei der Hochwasseranalyse dient zum einen einer direkten Nutzbarmachung für
Anwender, zum anderen können neue Messwerte direkt weiterverarbeitet und die
Ergebnisse dieser Datenprozessierung für die Feldarbeit genutzt werden. Hoch
aktuelle Daten stehen jederzeit zur Verfügung und können im Feld direkt abgerufen
werden.
•
In der umgekehrten Richtung stehen dem Anwender beispielsweise für die
hydrogeologische Modellierung im freien Feld eine Vielzahl von Daten und
Informationen zur Verfügung. Er ist nicht gezwungen, alle eventuell notwendigen
Datensätze mit ins Feld zu nehmen, sondern kann vor Ort entscheiden, welche Daten
er benötigt. Die Ergebnisse können direkt in die weitere Messpunktwahl mit
einfließen, ohne dass der Erfassungsvorgang unterbrochen werden müsste.
•
Die Integration verschiedener Software in eine Geodateninfrastruktur ermöglicht es
schließlich, vor Ort zusätzliche Informationen zu erhalten, ohne dass deren genaue
Herkunft bekannt wäre. Ein Anwender bei der geologischen Vermessung, der
aufgrund einer äußerst komplexen Geländemorphologie oder fehlender
Geländeaufschlüsse Schwierigkeiten hat, die genaue Lage und Ausprägung von
einzelnen Schichten zu erfassen, kann im Bedarfsfall seine automatisch erfasste
Position gegen einen spezialisierten Dienst schicken, der aus den Datenbanken die
entsprechenden Informationen und Kartenausschnitte zusammenstellt und an den
Client überträgt.
Darüberhinaus sind Nachteile einer mobilen Geodatenverarbeitung zu untersuchen, wie
beispielsweise zusätzlich enstehende Übertragungskosten.
3
Kurzbeschreibung der Projektknoten
Die Projektknoten aus München, Heidelberg, Karlsruhe und Vechta teilen sich die zu
bewältigenden Aufgaben auf dem Weg zur Vision wie folgt auf:
•
Mobile Erfassung, Aktualisierung, Nutzung/Analyse und Visualisierung von
Geodaten (München/Heidelberg);
•
Online-Darstellung, Bearbeitung und Erfassung von 3D-Datenbeständen auf einem
mobilen Endgerät unter Einsatz von „Augmented Reality- AR“ (Karlsruhe);
•
Definition von standardisierten Schnittstellen für Geodienste (München);
•
Entwicklung webfähiger GIS-Komponenten für den Zugriff auf raum-zeitliche
Objekte in Geodatenbank-Diensten (Vechta).
Bei allen Aufgaben wird besonderes Augenmerk auf methodische Untersuchungen
gelegt, die dazu dienen die neuen Technologien optimal für hydro- und ingenieurgeologische Arbeitsabläufe zu nutzen.
3.1
Knoten München/Heidelberg: „Entwicklung der mobilen Komponente und der Schnittstellen zu Geodiensten“
Im Rahmen dieses bei der AGIS der Universität der Bundeswehr München und der
European Media Laboratory GmbH (EML) in Heidelberg angesiedelten Projektes soll ein
Konzept und ein Prototyp für eine mobile Client-Komponente zur Verarbeitung von
Geodaten entwickelt werden. Die wesentlichen Punkte dieses Teils sind:
•
Erstellung eines Konzeptes zur Mobilen Erfassung, wobei die Möglichkeit des Online Zugriffes auf verschiedene Datenserver über mobile Netzwerke und deren
Leistungsparameter besonders zu berücksichtigen ist. Dabei soll die Datenkonsistenz bei der Datenkommunikation zwischen Server und mobilem Endgerät
untersucht und die Möglichkeit der systemunterstützten Datenerfassung berücksichtigt werden. Insgesamt ist für diese mobile Erfassung ein umfassendes
Qualitätsmanagementkonzept zu erarbeiten.
•
Die Erfassung des Datenmaterials im freien Feld erfolgt unter Nutzung von
Messgeräten mit digitalem Ausgang wie auch mit manuell auszuwertenden
Messinstrumenten. Das manuelle Auswerten wird durch die automatisch
generierten grafischen Oberflächen auf den mobilen Endgeräten unterstützt. Als
mögliche Sensoren kommen beispielsweise GPS-Empfänger, Tachymeter, Digitalkameras, Seismographen usw. in Frage. Dabei sollen die erfassten Daten sofort der
Anwendung zur Verfügung stehen [Rein01]. Zu diesen Erfassungskomponenten
sind Schnittstellen zu definieren.
•
Definition von Schnittstellen für den On-line Zugriff auf die vom Server
bereitgestellten Dienste sowie auf die Daten. Bei der Definition von Schnittstellen
sind die entsprechenden internationalen Standards zu berücksichtigen. Die bereits
verabschiedeten bzw. in Bearbeitung befindlichen Spezifikationen des OpenGIS
Konsortiums [OGC03] zum Datenzugriff und –management (Data Services:
Feature Service und Coverage Service), zur Recherche von Geodaten (Catalog
Service), zum Datenaustauschformat (GML) und zur Visualisierung von Geodaten
(Mapping Service) berücksichtigen die speziellen Anforderungen mobiler Clients
bisher nicht, wie etwa die optimale Bereitstellung von Informationen bei geringen
Übertragungsraten. Sie sollen im Rahmen dieses Forschungsvorhabens diesbezüglich untersucht bzw. weiterentwickelt werden. Zusätzlich sind die im aktuellen
vom OpenGIS Konsortium veranstalteten LBS-testbed bearbeiteten Services
(Location Services) sowie die Location Application Servers und Location Data
Servers auf ihre praktische Nutzbarkeit im Bereich wissenschaftlicher GeoFragestellungen kritisch zu prüfen und weiterzuentwickeln [CJM00].
3.2
Knoten Karlsruhe: „Mobiler Augmented Reality GIS-Client”
Bei diesem am Institut für Photogrammetrie und Fernerkundung der Universität
Karlsruhe angesiedelten Projekt soll ein mobiler GIS-Client zur Erfassung und
Aktualisierung von 3D-Daten auf der Basis von Augmented Reality (AR)-Techniken
[Müll01] entwickelt werden. Durch AR-Techniken soll die Qualität und Produktivität von
GIS-Clienten verbessert werden, indem sie den vorhandenen Datenbestand in der realen
Umgebung in das Gesichtsfeld des Nutzers einblenden. Der mobile Betrieb von
Datenendgeräten ist heute schon mit relativ geringen Bandbreiten (GSM, HSCD, GPRS
bis zu ca. 48kb/s) tägliche Praxis, in Kürze eingeführte Kommunikationsnetze im
Weitverkehr (UMTS) werden im mobilen Betrieb einige Hundert Kilobit/s an
Übertragungsleistung zulassen und werden deshalb auch für anspruchsvollere
Multimediaanwendungen in Echtzeit geeignet sein.
Ziel des Projektes ist, Methoden der Augmented Reality (AR), wie sie z.B. im CAD, der
Gerätewartung [Müll01] und GIS beschrieben werden, zur Unterstützung und
Verbesserung der 3D-Datenerfassung und des Update von 3D-Datenbeständen zu
verwenden sowie deren Kosten zu untersuchen. Beispielsweise soll die Orientierung und
Navigation des Betrachtungs- und Erfassungssystems im Raum untersucht werden. Dies
schließt die Untersuchung von Methoden zur Stabilisierung der Aufnahmeplattform
durch Einbeziehen von Features im Raum (z. B. Referenzpunkte) sowie die Entwicklung
und Bewertung von Messverfahren in der mobilen Umgebung mit ein (z. B.
Laserscanner, digitale Kameras, Rangefinder).
3.3
Knoten Vechta: „Entwicklung von Komponenten-Software für den
internet-basierten Zugriff auf Geodatenbank-Dienste“
Ausgehend von ersten Erfahrungen mit mobilen Anwendungen [BrBä02] soll das am
FZG der Hochschule Vechta angesiedelte Projekt einen Beitrag zur Entwicklung
neuartiger komponentenbasierter [Szyp98] und mobiler Geoinformationssysteme leisten.
Durch den Einsatz wiederverwendbarer Software [Szyp98] soll es dem Nutzer ermöglicht
werden, sich nach dem „Baukastenprinzip“ für eine vorgegebene Anwendungsklasse ähnlich der Vorgehensweise eines CASE-Tools - seinen eigenen Geodienst aus vorgefertigten Komponenten „zusammenzustecken“, d.h. die jeweils notwendige Funktionalität z.B. als benutzerdefinierte Datentypen oder Zugriffsmethoden eines ServiceFrameworks ähnlich wie bei einem Geo-Toolkit [BBCr97] auszuwählen. Dadurch soll
eine der bisherigen Schwächen von Geoinformationssystemen, ihre geschlossene
Systemarchitektur mit dem damit verbundenen erschwerten Zugriff auf ihre Daten und
Operationen von externen Softwaresystemen aus, beseitigt werden (offengelegte Schnittstellen). Von zentraler Bedeutung bei der Entwicklung ist der effiziente räumliche und
zeitliche Zugriff auf Geodaten. Im Projekt sollen daher die Datenbankunterstützung für
raum- und zeitbezogene Objekte (3D/4D-Objekte) basierend auf vorherigen Arbeiten
[GBEJ00], [BTB+03] sowie der effiziente Zugriff auf Geodatenbank-Dienste über das
WWW untersucht werden. Schließlich ist in enger Zusammenarbeit mit den anderen
Projektknoten die Überführung einer Menge ausgewählter Operationen in den Prototypen
eines plattformunabhängigen mobilen Geodienstes beispielsweise für einen HandheldClient vorgesehen.
4
Ausblick
Die im Kurzbeitrag skizzierten und zu lösenden Aufgaben der Projektknoten können nur
ein erster Schritt auf dem Weg zur Vision mobiler Geodienste sein. Es erscheint
offensichtlich, dass geowissenschaftliche Anwendungen mit ihrem unmittelbaren
Ortsbezug ein großes Potenzial für die Entwicklung mobiler Datenbankanwendungen
besitzen. Die Zukunft muss zeigen, wie schnell sich diese in kommerziell nutzbare
Lösungen umsetzen und einbinden lassen. Hier erscheint der Bereich der Hydro- und
Ingenieurgeologie besonders geeignet, da sich hier die Interessen von wettbewerbsorientierten Planungsbüros und der geowissenschaftlichen Forschung treffen. Mobile
Datenbankanwendungen in diesem Gebiet erfordern das effiziente Retrieval auf großen
Mengen komplexer 3D/4D Geo-Objekte sowie die Abspeicherung und lokale Weiterverarbeitung von Abfrageergebnissen auf mobilen Endgeräten.
Literaturverzeichnis
[BrBä02]
Breunig M., Bär W.: Anforderungen mobiler Routenplaner an Datenbanksysteme.
Proceedings of the mobile DB-workshop, GI-Jahrestagung, Dortmund, Sept. 30th – 2.
Okt., 2002, pp. 580-584.
[Bund01]
Große Anfrage von 29 Bundestagsabgeordneten vom 12.4.2001 (Drucksache 14/3214).
[BBCr97]
Balovnev O., Breung M., Cremers A.B.: From GeoStore to GeoToolKit: the
SecondStep.Proceedings of the 5th Intern. Symposiuim on Spatial Databases SSD,
Berlin, LNCS No. 1262, Springer, Berlin, S. 223-237.
[BTB+03] Breunig M., Türker C., Böhlen H., Dieker S., Güting R.H., Jensen C.S., Relly L.,
Rigaux P., Schek H.-J., Scholl M.: Architecture and Implementations of SpatioTemporal Database Management Systems. Spatio-Temporal Databases – The
Chorochronos Approach. Lecture Notes in Computer Science Vol. 2520, Springer,
Heidelberg, 2003, S. 219-264.
[GBEJ00] Güting R.H., Böhlen M.H., Erwig M., Jensen C.S., Lorentos N.A., Schneider M.,
Vazirgiannis M.: A Foundation for Representing and Querying Moving Objects. ACM
Transactions on Database Systems, Vol. 25, No. 1, March.
[Müll01] Müller S.: Virtual Reality - Augmented Reality. INI-Graphics-Net. Brochure, Fraunhofer
- IGD, Darmstadt.
[OGC03]
OpenGIS
Consortium:
Geography
http://www.opengis.org/techno/specs.htm
Markup
Language
(GML),
[Rein01]
Reinhardt W.: Concept of a GIS and location based services for mountaineers,
Proceedings 4th AGILE Conference, Brno 2001.
[Szyp98]
Szyperski C.: Component Software - Beyond Object-oriented Programming, Addison
Wesley, Essex, England, 411S.
[SABK03] Schäben H., Apel M., v.d. Boogaart K.G., Kroner U.: GIS 2D, 3D, 4D, nD – von
geographischen zu geowissenschaftlichen Informationssystemen. Hauptbeitrag
„Geowissenschaftliche Informationssysteme“. Informatik Spektrum, Band 26, Heft 3,
Juni 2003, S. 173-179.
Datenströme im Kontext des Verkehrsmanagements∗
Michael Cammert
Christoph Heinz
Jürgen Krämer
Bernhard Seeger
Fachbereich Mathematik und Informatik
Universität Marburg
35032 Marburg, Deutschland
{cammert, heinzch, kraemerj, seeger}@informatik.uni-marburg.de
Abstract: Anhand mobiler Objekte im Verkehrsmanagement diskutieren wir die Verarbeitung der dabei entstehenden Datenströme. Wir skizzieren typische Anforderungen an Datenverarbeitungssysteme und begründen, warum traditionelle Datenbankmanagementsysteme im Kontext von Datenströmen weniger geeignet sind. Vielmehr
motivieren wir den Einsatz von Datenstrommanagementsystemen, wobei wir einen
Überblick über allgemeine Problemstellungen und Ansätze bei der Verarbeitung von
Datenströmen geben. Neben prototpyischen Systemen präsentieren wir unser bibliotheksorientiertes Rahmenwerk, mit dem sich Anfragen über Datenströmen adäquat
formulieren und ausführen lassen. Im Ausblick erläutern wir die Konstruktion eines
allgemeinen Datenstrommanagementsystems aus den Komponenten unseres Rahmenwerks, welches sich in einem weiteren Schritt auf die Anforderungen des Verkehrsmanagements anpassen ließe.
1
Einleitung
Die stetig wachsende Belastung des Straßennetzes erfordert eine adäquate Steuerung des
Verkehrs. Dazu müssen Verkehrsdaten erfasst, übertragen, analysiert und verwaltet werden, was unter dem Begriff Verkehrsmanagement zusammengefasst wird. Die Daten können sowohl von stationären als auch von mobilen Sensoren geliefert werden. Beispielsweise registrieren stationäre Sensoren an Autobahnbrücken den aktuellen Verkehrsfluss,
während mobile Sensoren fahrzeugspezifische Informationen, wie etwa die exakte Position eines Fahrzeugs, übermitteln.
Die initialen Ziele des Verkehrsmanagements liegen in einer effizienteren Ausnutzung der
bestehenden Kapazität des Straßennetzes und einer Verlagerung der Verkehrsbelastung,
um dem wachsenden Verkehrsaufkommen entgegenzukommen. Geeignete Verkehrsmanagementsysteme könnten dazu eine Vielzahl von Daten berücksichtigen, z. B. Routenpläne,
Baustellendaten, Floating-Car-Daten oder Wetterprognosen, und so etwa einen Autofahrer
bei Staus intelligent umleiten. Eine Studie zu den Wirkungspotentialen des Verkehrsma∗ Diese Arbeit wurde von der Deutschen Forschungsgemeinschaft (DFG) unter Projektnummer SE 553/4-1
gefördert.
nagements [Pr99] prognostiziert für das Jahr 2010 eine Steigerung der Streckenkapazität
auf den Autobahnen um ca. 10% unter Verwendung geeigneter Steuerungsanlagen.
Im Kontext des Verkehrsmanagements fassen wir die Verkehrsteilnehmer als bewegliche
Objekte auf. Die zu deren Erfassung verwendeten Sensoren senden ihre Daten autonom,
wobei die Updaterate allerdings variieren kann. Hierbei entsteht ein Tradeoff zwischen den
Verarbeitungskosten, die durch hohe Updateraten verursacht werden, und der Genauigkeit
der aktuellen Verkehrserfassung. Idealerweise ließe sich die Updaterate der beteiligten
Fahrzeuge bei Staugefahr erhöhen und im Gegenzug bei wenig befahrenen Streckenabschnitten senken.
Die erfassten Sensordaten werden im Allgemeinen in einem Datenbanksystem verwaltet,
wodurch sämtliche Updates persistent gespeichert werden. Hieraus resultieren enorme Datenbestände, von denen meist nur ein Bruchteil für aktuelle Analysen herangezogen wird,
da eine vollständige Auswertung der archivierten Daten zu aufwändig wäre. Das stellt
den Einsatz von Datenbanksystemen zur Verwaltung von Sensordaten generell in Frage.
Seit zirka zwei Jahren beschäftigen sich daher einige Forschergruppen mit dem Entwurf
von Datenstrommanagementsystemen, die sich speziell für die Analyse und Verarbeitung
von Daten eignen, die autonomen Datenquellen entspringen. In diesem Artikel geben wir
zunächst einen Überblick über die in diesem Themengebiet grundsätzlich auftretenden
Problemstellungen und Ansätze. Danach präsentieren wir PIPES (Public Infrastructure
for Processing and Exploring Streams), unser Rahmenwerk zur Verarbeitung von Datenströmen, das auf einer Publish-/Subscribe-Architektur basiert.
Der Rest dieses Artikels ist wie folgt strukturiert: In Abschnitt 2 betrachten wir im Kontext
des Verkehrsmanagements die Unterschiede zwischen der Datenstromverarbeitung und
der traditionellen Vorgehensweise basierend auf Datenbanksystemen. Im Anschluss stellen
wir in Abschnitt 3 unser Rahmenwerk PIPES zur Verarbeitung von Datenströmen vor.
Abschließend fassen wir die vorgestellten Konzepte zusammen und geben einen Ausblick
auf mögliche Anwendungsszenarien.
2
Datenströme und Verkehrsmanagement
Im Folgenden skizzieren wir Probleme, die bei einer Datenverarbeitung im Rahmen des
Verkehrsmanagements mit einem traditionellen Datenbankmanagementsystem (DBMS)
entstehen [WXCJ98] und zeigen, dass ein Datenstrommanagementsystem (DSMS) angemessener wäre. In Abbildung 1 werden die beiden Konzepte gegenübergestellt.
2.1
Anforderungen
Zunächst möchten wir zentrale Anforderungen bei der Datenverarbeitung im Kontext des
Verkehrsmanagements herausarbeiten. Da permanent verschiedenste Sensordaten erfasst
werden, ergeben sich potentiell unendliche Datenströme. Für eine dynamische Steuerung
des Verkehrsflusses müssen diese Daten kontinuierlich ausgewertet werden. Daraus resul-
tieren einerseits permanente Anfragen, wie z. B. die Berechnung der aktuellen Verkehrsdichte eines Streckenabschnitts, und andererseits zeitlich begrenzte Anfragen, die etwa
bei der Betreuung eines Verkehrsteilnehmers auf seiner Route erforderlich sind. Weiterhin muss ein System in der Lage sein, neue Anfragen entgegenzunehmen, adäquat zu
integrieren und nach Ablauf wieder zu entfernen. Bei hoher Verkehrsdichte trifft folglich eine größere Zahl von zum Teil ähnlichen Anfragen auf eine stark erhöhte Menge
von Sensordaten. Allerdings existieren auch Phasen geringerer Verkehrslast. Ein geeignetes System muss hinsichtlich dieser Laständerungen skalierbar und adaptiv ausgelegt
sein. Insbesondere sollte das Zusammenspiel mehrerer Anfragen optimiert werden (MultiAnfragen-Optimierung), weil diese typischerweise lange im System verweilen. Eine generelle Möglichkeit zur Reduktion der Updaterate besteht in der dezentralen Ausführung von
Anfragen, falls die Sensoren über genügend Rechenkapazität verfügen [BGS01, CBB+ 03].
Neben der Quantität der Daten spielen ebenso deren Qualität und Verfügbarkeit eine Rolle. So muss ein System auch bei Ausfall oder Fehlfunktion von Sensoren sowie einer
Unterbrechung bzw. Überlastung des Kommunikationsnetzwerks weiterhin funktionieren. Eine zusätzliche Anforderung besteht in der effektiven Unterstützung von orts- und
zeitabhängigen Anfragen. Darüber hinaus müssen sämtliche Anfragen nahezu in Echtzeit bedient werden, was eine komplette Zwischenspeicherung der Daten für eine spätere
Verarbeitung ausschließt. Vielmehr sollten diese direkt bei ihrer Ankunft vom System verarbeitet werden. Wenn die exakte Auswertung der Anfrage aus Komplexitäts- oder Performanzgründen nicht möglich ist, sollen approximative Antworten zur Laufzeit bereitgestellt
werden. Weiterhin wird eine einfache und flexible Integration heterogener Datenquellen
sowie eine Anbindung an bestehende Systeme angestrebt. Das Speichern historischer Daten in anderen Datenbanken, wie etwa das durchschnittliche Verkehrsaufkommen an einem
Freitag Nachmittag, könnte die Auswertung ähnlicher Anfragen unterstützen.
Diese vielseitigen Anforderungen an ein System zur Datenstromverarbeitung im Kontext
des Verkehrsmanagements verdeutlichen, dass die Faktoren Adaptivität, Flexibilität, Skalierbarkeit sowie die Unterstützung kontinuierlicher Anfragen eine fundamentale Rolle
spielen.
2.2
Datenbankmanagementsysteme
Wir diskutieren im Folgenden die Eignung von DBMS im Kontext des Verkehrsmanagements. Ein DBMS gestattet ausschließlich Anfragen über den in seiner Datenbank persistent abgespeicherten Daten. Die Elemente eines zu verwaltenden Datenstroms müssen
daher zunächst in diese Datenbank eingefügt werden. Anfragen werden somit bezüglich
des Datenbestands zu einem festen Zeitpunkt einmalig beantwortet. Dadurch basieren aktuelle Resultate auf fortwährenden Wiederholungen derselben Anfrage. Dies kann sich,
ebenso wie das explizite Einfügen eines neu eintreffenden Datenstromelements, als sehr
aufwändig erweisen. [TGNO92]
Manche Komponenten eines DBMS sind nur sehr bedingt nützlich, wie beispielsweise
das Transaktionsmanagement. Fehlende Funktionalität, die in Fremdsystemen bereitgestellt wird, ist dagegen schwierig an ein bestehendes DBMS anzubinden. Darüber hinaus
Abbildung 1: Datenverarbeitung in DBMS und DSMS
liefern DBMS stets exakte Antworten, d. h. eine Adaption im Falle einer zu hohen Systemlast ist nicht vorgesehen. Die wiederholte Auswertung der kontinuierlichen Anfragen
erschwert zusätzlich die Multi-Anfragen-Optimierung, da sich die zu optimierende Anfragemenge fortlaufend ändert.
In Kombination mit obigen Anforderungen erweisen sich DBMS insbesondere hinsichtlich
der Adaptivität als weniger geeignet für die Datenverarbeitung im Rahmen des Verkehrsmanagements.
2.3
Datenstrommanagementsysteme
Bezüglich der Charakteristika von Datenströmen treffen wir in Einklang mit [BBD+ 02]
folgende Annahmen:
1. Die Verarbeitung der Anfragen erfolgt direkt beim Empfang der Daten, ohne zuvor
den gesamten Datenstrom explizit zu speichern.
2. Die Ordnung auf den Datenströmen sowie deren Übertragungsgeschwindigkeit wird
nicht durch die verarbeitenden Algorithmen, sondern primär durch die aktiven Datenquellen selbst bestimmt.
3. Die Datenströme sind in ihrer Größe potentiell unbeschränkt.
4. Jedes Element eines Datenstroms wird nur einmal vom Strom geliefert.
5. Änderungsoperationen auf Elementen eines Datenstroms sind nicht möglich. Neue
Elemente können nur am Ende eines Datenstroms angehängt werden (append-only).
Die im Rahmen des Verkehrsmanagements verarbeiteten Daten weisen diese Eigenschaften auf. Stationäre und mobile Sensoren senden kontinuierlich Daten in Form von Updates,
welche wir nach obiger Definition als Elemente eines Datenstroms auffassen. Da ein Sensor stets aktuelle Daten übermittelt, tritt jedes Datum nur ein einziges Mal auf. Die Datenverarbeitung wiederum muss sich nach den Datenraten der aktiven Datenquellen richten.
Ein wahlfreier Zugriff auf die Daten ist nur möglich, wenn diese zuvor archiviert wurden.
Eine komplette Zwischenspeicherung und anschließende Auswertung der Datenströme ist
ausgeschlossen, da diese einerseits in ihrer Größe nicht begrenzt und andererseits beim
Verkehrsmanagement regelmäßig und möglichst frühzeitig Resultate erforderlich sind. Die
Exploration der daraus resultierenden riesigen Datenarchive würde eine teure Aufgabe für
ein Datenbanksystem darstellen. Daher sollte eine Online-Analyse der Datenströme direkt
bei deren Ankunft erfolgen und, wenn überhaupt, nur ein Bruchteil der Daten zwischengespeichert werden, falls diese für künftige Anfragen erforderlich sind.
Neben historischen Anfragen spielen jedoch kontinuierliche Anfragen eine weitaus bedeutendere Rolle in DSMS, die hinsichtlich beider Anfragetypen skalierbar ausgelegt sein
sollten. Durch die zu Grunde liegenden Datenströme und deren fluktuierende Datenraten
müssen solche Systeme zusätzlich in einem hohen Maße adaptiv sein. Diese Adaptivität
in Verbindung mit limitierten Ressourcen ermöglicht teilweise nur approximative Antworten zu einer Anfrage. Liefert eine Induktionsschleife beispielsweise einen Datensatz pro
Fahrzeug, so steigt die Datenrate mit zunehmender Verkehrsdichte. Lassen die Werte eine
erhöhte Staugefahr vermuten, so ist eine schnelle Benachrichtigung der betroffenen Verkehrsteilnehmer sicherzustellen, während die Bestimmung der exakten Zahl der erfassten
Fahrzeuge weniger von Belang ist.
Während Anfragen in DBMS vor ihrer Ausführung statisch optimiert werden, ergeben sich
im Kontext von DSMS neue Herausforderungen. Zur Steigerung der Performanz werden
mehrere Anfragen gebündelt, so dass gemeinsame Teilanfragen nur einmal ausgewertet
werden. Dabei muss auch das dynamische Einfügen und Löschen von Anfragen unterstützt
werden. Zudem ist eine dynamische Laufzeitoptimierung dieser lange laufenden Anfragen
notwendig.
Die für ein Verkehrsmanagement relevanten Daten liegen sowohl persistent als auch in
Form eines Datenstroms vor. Straßenkarten sind beispielsweise in Datenbanken abgelegt,
während die von mobilen oder stationären Sensoren gelieferten Informationen kontinuierlich gesendet werden. Tabelle 1 zeigt zusammenfassend die in diesem Abschnitt dargelegten Unterschiede zwischen herkömmlichen DBMS und DSMS.
2.4
Anfrageverarbeitung auf Datenströmen
Im Weiteren diskutieren wir gegenwärtige Konzepte und allgemeine Problemstellungen
bei der Verarbeitung von Datenströmen.
Datenbankmanagementsystem
(DBMS)
• Passive Datenquellen
• Persistente Daten (Relationen)
• Externspeichernutzung
• Wahlfreier Zugriff
• historische Anfragen
• Exakte Antworten
• Statische Optimierung
Datenstrommanagementsystem
(DSMS)
• Aktive Datenquellen
• Flüchtige Daten (Datenströme)
• Hauptspeichernutzung
• Sequentieller Zugriff
• Kontinuierliche Anfragen
• Approximative Antworten
• Dynamische Optimierung
Tabelle 1: Unterschiedliche Anforderungen der Datenverarbeitungssysteme
2.4.1
Algebra
Anfragen in Datenbanksystemen werden typischerweise in einer deklarativen Sprache wie
SQL formuliert und dann in einen Anfrageplan übersetzt, der im Wesentlichen aus Operatoren einer geeigneten Algebra besteht. Man könnte SQL um Funktionalität zur Verarbeitung von Datenströmen erweitern, wobei jedoch bestehende Funktionalität eventuell nicht
mehr benötigt wird. Einfüge- und Änderungsoperationen auf Datenströmen werden obsolet, wohingegen sich approximative Anfragen bislang nicht spezifizieren lassen. Sinnvoll
wäre folglich die Konzeption neuer Anfragesprachen oder die direkte Formulierung von
Anfragen mittels einer GUI. Zentrales Problem [BBD+ 02] beider Ansätze ist die Definition einer geeigneten Algebra, die als Grundlage für die Verarbeitung von Datenströmen
dient.
Neben der logischen Algebra, in der primär die Semantik der Operatoren festgelegt wird,
gibt es eine physische Algebra, die i. A. verschiedene Implementierungen der Operatoren
enthält. Durch die direkte Verarbeitung der Elemente eines Datenstroms ist die klassische bedarfsgesteuerte Verarbeitung mittels Iteratoren (ONC) nach [Gr93] nicht möglich.
Aufgrund potentiell unbeschränkter Datenströme dürfen keine blockierenden physischen
Operatoren eingesetzt werden. Darunter versteht man Operatoren, die ihre gesamte Eingabe konsumieren müssen, bevor ein Ergebnis geliefert werden kann. Es existieren jedoch
logische Operatoren, wie beispielsweise die Minus- oder die Sortieroperation, die keine
nicht-blockierende Implementierung erlauben. Dieses Problem lässt sich allerdings durch
die Verwendung von über einen Datenstrom gleitenden Fenstern, inkrementeller Auswertung oder a priori bekannten Eigenschaften eines Datenstroms lösen. Zum Beispiel wäre
es für eine aktuelle Stauprognose ausreichend, die Sensordaten der letzten Stunden zu betrachten.
2.4.2
Indexierung
Mit Indizes lassen sich Anfragen effektiv unterstützen. Typische Anfragen beim Verkehrsmanagement sind sowohl orts- als auch zeitgebunden. Eine auf Indexstrukturen mit Zeitfenstern basierende Anfrage wäre etwa: ”Wie hoch war die mittlere Verkehrsdichte auf den
Autobahnen im Großraum München bezogen auf die vergangenen vier Stunden?” Deswegen bieten sich mehrdimensionale Indexstrukturen wie der MVB-Baum [BGO+ 96] an, die
effiziente Suchoperationen unterstützen. Neben persistenten Daten, wie etwa Karten- und
Baustelleninformationen, lassen sich auch mobile Sensoren mit Indexstrukturen verwalten. Für die Sensordaten benötigt man performante Einfüge-, Lösch- und Änderungsoperationen, wobei insbesondere mengenbasierte Operatoren von Vorteil für die Performanz
wären. Ebenso müssen gleitende Fenster adäquat unterstützt werden, was bei den bislang
existierenden Ansätzen jedoch nicht der Fall ist.
2.4.3
Optimierung
Eine zentrale Komponente eines DBMS ist der Anfrageoptimierer, der bei der Anfrageübersetzung deskriptiv formulierte Anfragen in einen möglichst optimalen Ausführungsplan transformiert. In DSMS werden bei der statischen Optimierung Anfragen in einem
Anfragegraphen unter Berücksichtigung übereinstimmender Teilanfragen zusammengefasst. Bei Anfragen auf Datenströmen benötigt man des Weiteren eine adaptive und dynamische Optimierung zur Laufzeit. Die Laufzeit einer kontinuierlichen Anfrage wiederum
wird primär durch den Benutzer bestimmt, der diese bei einem Anfragekoordinator anbzw. abmeldet. Bei Datenströmen geht man von einer Vielzahl von Anfragen mit oftmals
überlappenden Teilanfragen aus, wodurch eine Multi-Anfragen-Optimierung erforderlich
ist. So sind sicherlich mehrere Verkehrsteilnehmer an den aktuellen Stauinformationen
für die Autobahn A8 auf dem Streckenabschnitt von München nach Stuttgart interessiert,
während andere lediglich die Staus zwischen Augsburg und Ulm erfahren möchten.
Folglich müssen bei der Optimierung bereits ablaufende Anfragen ebenfalls berücksichtigt
werden. Die traditionellen, auf der Schätzung von Zwischenergebnissen basierenden Kostenmodelle eignen sich nicht für potentiell unbegrenzte Datenströme. Stattdessen sollte
eine Optimierung [VN02] die Ein- bzw. Ausgaberaten der Operatoren in Betracht ziehen.
Es stellt sich zudem die Frage, wie eine dynamische Optimierung zur Laufzeit zu erreichen ist, da eine Re-Optimierung des Anfragegraphen aus Performanzgründen schwierig
zu realisieren ist. Deswegen erscheinen partielle Umstrukturierungen sinnvoller. Bei einer
dynamischen Optimierung sind darüber hinaus weitere Faktoren zu berücksichtigen wie
etwa benutzerdefinierte Quality of Service (QoS) oder der Tradeoff zwischen Effizienz,
Genauigkeit und Speicherverbrauch bei der Ausführung einer Anfrage.
2.4.4
Ressourcenmanagement
Eine weitere Problemstellung bei der Verarbeitung von Datenströmen ergibt sich bei der
Zuteilung der begrenzten Systemressourcen CPU-Zeit, Haupt- und Externspeicher sowie Bandbreite. Zur Laufzeit müssen diese unter den gleichzeitig ablaufenden Anfragen
verteilt werden. Der Ressourcenbedarf einer Anfrage kann dabei aufgrund der potentiell unendlich großen Datenströme unbeschränkt sein, wie z.B. bei der Berechnung des
kartesischen Produktes. Da in einem DSMS immer limitierte Ressourcen potentiell unbeschränkten Ressourcenanforderungen gegenüberstehen, gestaltet sich die optimale Zuteilung der Ressourcen als äußerst schwierig. So lassen sich aufgrund des begrenzten Spei-
Abbildung 2: Anfrageverarbeitung im Rahmenwerk PIPES
chers häufig nur approximative Antworten zu einer gegebenen Anfrage bestimmen, über
die idealerweise Qualitätsaussagen getroffen werden können.
Die Zuteilung der Rechenzeit geschieht mittels eines Schedulers, der hinsichtlich vieler
gleichzeitig ablaufender Anfragen skalierbar ausgelegt sein muss. Weiterhin sollten dabei
Abhängigkeiten zwischen der Ausführung der Operatoren sowie benutzerdefinierte QoS,
wie z. B. Deadlines, berücksichtigt werden.
Die Mehr-Anfragen-Optimierung führt zur Einsparung von Ressourcen (resource sharing), weil gemeinsame Teilanfragen nur einmal ausgewertet werden. Ebenso könnte der
gemeinsame Zugriff auf Datenstrukturen, wie z. B. Puffer oder Indexstrukturen, die Speicherausnutzung verbessern. Bei der Zuteilung der verfügbaren Ressourcen versucht man
primär, die Genauigkeit und die Effizienz hinsichtlich der Anfragen zu optimieren. Hierbei spielen die Faktoren Adaptivität und Skalierbarkeit eine zentrale Rolle, da sowohl die
Anfragemenge als auch die Datenraten zur Laufzeit variieren. Darüber hinaus sollte die
Ressourcenverwaltung zusätzlich mit dem Optimierer gekoppelt sein.
3
Unser konkretes Rahmenwerk PIPES
In diesem Abschnitt stellen wir die Grundzüge unseres Rahmenwerks PIPES vor, mit dem
sich Anfragen auf Datenströmen formulieren und ausführen lassen. Eine ausführliche Darstellung von PIPES findet sich in [CHK+ 03].
3.1
Anfragegraph
PIPES erlaubt die Integration beliebiger heterogener Datenquellen, was Anfragen auf Datenströmen und persistenten Daten ermöglicht. Diese Anfragen werden in Anfragepläne
übersetzt, die in einem gerichteten Anfragegraphen zusammengefasst werden. Ein inhärenter Publish-Subscribe-Mechanismus erlaubt es, Anfragen zur Laufzeit dynamisch an- bzw.
abzumelden.
3.1.1
Logische Operatoren
In Anlehnung an Datenflussgraphen unterscheiden wir innerhalb eines Anfragegraphen
zwischen Quellen, Operatoren und Senken (siehe Abb. 2). Die Daten fließen dabei stets
von den Quellen zu den Senken. Während eine Quelle Daten emittiert, werden diese durch
eine Senke konsumiert und verarbeitet. In unserer Modellierung entspricht ein Operator
sowohl einer Quelle als auch einer Senke, da er Daten empfängt, diese verarbeitet und anschließend überträgt. PIPES verfügt daher über zwei zentrale Schnittstellen Source und
Sink. Diese werden von der Schnittstelle Pipe, die einen Operator modelliert, erweitert.
Sobald eine Quelle geöffnet ist, transferiert sie ihre Elemente an solche Senken, die über
spezielle Methoden namens subscribe bzw. unsubscribe bei dieser an- bzw. abgemeldet werden können. Werden die Daten einer Quelle nicht mehr benötigt, so kann
man sie schließen und verwendete Ressourcen freigeben. Eine Senke konsumiert und verarbeitet die Elemente der Quellen, auf denen sie abonniert ist. Sie wird informiert, falls
eine ihrer Quellen versiegt. Für Optimierungszwecke lassen sich zusätzlich die Datenraten
eines Knotens, d. h. die Anzahl der Elemente, die pro Sekunde in einem Datenstrom fließen, abfragen. Außerdem ist möglich, Anfragen temporär zu deaktivieren und später ohne
Neuübersetzung zu reaktivieren.
Initiale Quellen eines Anfragegraphen können in unserem Rahmenwerk zum Beispiel mobile Sensoren oder auch Datenbanksysteme sein, während terminale Senken konkrete Applikationen oder PDAs eines Endbenutzers repräsentieren können. Für deren leichte und
erweiterbare Anbindung verfügt PIPES über vorgefertigte Klassen, die gemeinsame Basisfunktionalität transparent bereitstellen.
3.1.2
Physische Operatoren
Bei der Konzeption und Entwicklung des Rahmenwerks PIPES wurde die Java-Bibliothek
XXL [CHKS03, BBD+ 01] nahtlos erweitert. Neben den oben vorgestellten abstrakten
Modellierungen und Schnittstellen enthält PIPES eine Vielzahl generischer Operatoren,
die auf beliebigen Objekten arbeiten und über Funktionen und Prädikate parametrisierbar
sind. Das Blockieren von Operatoren kann bislang mittels gleitender Fenster umgangen
werden. Zum Funktionsumfang von PIPES gehören diverse Implementierungen folgender Operatoren: Filter, Map, Join, Gruppierung, Vereinigung, Differenz, Duplikateliminierung, Online-Aggregation et cetera.
3.1.3
Komponenten
Aufbauend auf dem Anfragegraphen, der mittels eines Anfragekoordinators verwaltet wird,
existieren in PIPES noch drei weitere Komponenten, die in Abb. 2 dargestellt sind. Der
Scheduler übernimmt die Ablaufsteuerung im Anfragegraphen, indem er den einzelnen
Knoten CPU-Zeit zuweist. Dabei werden QoS-Aspekte nach benutzerdefinierten Vorgaben berücksichtigt. Ein prioritätsbasierter, adaptiver Speichermanager verwaltet die zur
Verfügung stehenden Haupt- und Externspeicherressourcen und erlaubt deren Umverteilung zur Laufzeit. Der Optimierer in PIPES beinhaltet eine statische und eine dynamische
Komponente. Während bei der statischen Optimierung neue Anfragepläne in den laufenden Anfragegraphen geeignet integriert werden, initiiert die dynamische Optimierung eine
partielle Re-Optimierung des bestehenden Anfragegraphen.
Basierend auf den vorgestellten Schnittstellen, physischen Operatoren und Komponenten
kann man auf einfache Weise ein DSMS entwickeln, das den speziellen Anforderungen
eines Anwendungsszenarios gerecht wird. Wegen der generischen Konzeption muss dazu
lediglich die anwendungsspezifische Zusatzfunktionalität implementiert werden.
4
Vergleichbare Projekte
Dieser Abschnitt gibt zunächst einen Überblick über verwandte Ansätze und stellt dann
aktuelle Projekte vor, die Prototypen von DSMS entwickeln.
Das Alert System [SPAM91] benutzt ein konventionelles DBMS mit event-basierten Triggern zur Auswertung kontinuierlicher Anfragen. Tukwila [IFF+ 99] dient in erster Linie
der Datenintegration verteilter, autonomer Datenquellen. Es realisiert eine ereignisbasierte
Kommunikation der einzelnen Operatoren, vergleichbar mit der Funktionalität von Triggern, und enthält erste Ansätze zur adaptiven Re-Optimierung.
NiagaraCQ [CDTW00] überwacht und filtert kontinuierlich über ein Wide-Area-Netzwerk
(WAN) verteilte, persistente XML-Datenbestände. Das System verfügt über eine Gruppierungsstrategie für Anfragen, die das inkrementelle Aufsetzen neuer Anfragen auf bestehende Materialisierungen unterstützt.
Das Aurora Projekt [CCC+ 02] befasst sich mit der Entwicklung eines Echtzeitsystems zur
Überwachung von Datenströmen. Zentraler Bestandteil sind QoS, für die Techniken wie
das Löschen von Elementen (load shedding) und speicheradaptives Operatorscheduling
eingesetzt werden. Aurora unterstützt resource sharing durch die Verwendung von speziellen Queues. Das Aufsetzen mehrerer Anfragen wird an speziellen Verbindungspunkten,
sog. connection points, ermöglicht. Diese erlauben es neu angemeldeten Operatoren, initial auf gepufferte historische Daten zurückzugreifen, bevor sie mit den aktuellen Daten des
Datenstroms versorgt werden.
STREAM [MWA+ 03] ist ein zentrales DSMS, das auf dem relationalen Datenmodell basiert. Anfragen, die unter anderem kontinuierlich sein können, werden in einer von SQL
abgeleiteten deklarativen Anfragesprache formuliert. Um die Ressourcenanforderungen
zu reduzieren, fasst STREAM die Daten in Synopsen zusammen und stellt einen globalen
Scheduler bereit, der den Speicherverbrauch der Queues minimiert. Letztere werden zur
Kommunikation der Operatoren verwendet. Des Weiteren wird der Join zwischen Datenströmen und bestehenden Relationen betrachtet.
Das TelegraphCQ System [CCD+ 03] vereinigt bisherige Arbeiten aus Fjords, Eddies und
PSoup. Das Fjords [MF02] API definiert eine Menge von Operatoren zur Auswertung von
Sensordaten, die sowohl bedarfs- als auch datengesteuert eingesetzt werden können. Allerdings sind diese nicht adaptiv. Eddies [AH00] sind spezielle, zentrale Operatoren, die
mit sämtlichen Operatoren eines Anfrageplans verbunden sind. Ein Eddy bestimmt dabei
adaptiv, in welcher Reihenfolge ein Element die Operatoren durchläuft. PSoup [CF02]
erweitert diesen Ansatz, indem Daten und Anfragen symmetrisch behandelt werden, wodurch zusätzlich historische Anfragen unterstützt werden.
5
Zusammenfassung und Ausblick
Die stetig wachsende Verkehrsbelastung erfordert leistungsfähige Verkehrsmanagementsysteme. Die fortlaufend anfallenden Daten werden durch stationäre und mobile Sensoren
geliefert und üblicherweise mittels traditioneller DBMS verarbeitet. Da diese Daten allerdings in Form von Datenströmen vorliegen, empfiehlt sich stattdessen der Einsatz eines
DSMS, dessen Vorzüge wir insbesondere im Hinblick auf Adaptivität herausgestellt haben. Neben generellen Problemstellungen und Lösungsansätzen der Datenstromverarbeitung haben wir unser Rahmenwerk PIPES präsentiert, das Anfragen sowohl über Datenströmen als auch persistenten Daten erlaubt. Dieses komponentenbasierte Rahmenwerk
ermöglicht einem Entwickler einerseits, komplexere Bausteine zu formieren, und andererseits, eigene Funktionalität nahtlos zu integrieren. Ausgehend von unserem generischen,
erweiterbaren und flexiblen Bibliotheksansatz lassen sich auf diese Weise anwendungsspezifische DSMS konstruieren. Dies bietet sich im Kontext des Verkehrsmanagements
hervorragend an. So könnte man ein intelligentes Verkehrsmanagementsystem realisieren, das, ausgehend von Datenströmen stationärer und mobiler Sensoren, die aktuelle Verkehrsbelastung überwacht und steuernd eingreift. Dieser offene Ansatz ließe sich analog
auf Datenströme übertragen, die von beliebigen mobilen Objekten, wie etwa Flugzeugen
oder Schiffen, stammen.
Literatur
[AH00]
Avnur, R. und Hellerstein, J. M.: Eddies: Continuously Adaptive Query Processing.
In: Proc. of the ACM SIGMOD. S. 261–272. ACM Press. 2000.
[BBD+ 01] Bercken, J., Blohsfeld, B., Dittrich, J.-P., Krämer, J., Schäfer, T., Schneider, M., und
Seeger, B.: XXL - A Library Approach to Supporting Efficient Implementations of
Advanced Database Queries. In: Proc. of the Conf. on Very Large Databases (VLDB).
S. 39–48. 2001.
[BBD+ 02] Babcock, B., Babu, S., Datar, M., Motwani, R., und Widom, J.: Models and Issues in
Data Stream Systems. In: Symp. on Principles of Database Systems. S. 1–16. 2002.
[BGO+ 96] Becker, B., Gschwind, S., Ohler, T., Seeger, B., und Widmayer, P.: An Asymptotically
Optimal Multiversion B-Tree. VLDB Journal. 5(4):264–275. 1996.
[BGS01]
Bonnet, P., Gehrke, J., und Seshadri, P.: Towards Sensor Database Systems. In: Proc.
of 2nd Int. Conf. on Mobile Data Management. S. 3–14. 2001.
[CBB+ 03] Cherniack, M., Balakrishnan, H., Balazinska, M., Carney, D., Çetintemel, U., Xing, Y.,
und Zdonik, S. B.: Scalable Distributed Stream Processing. In: Proc. of the Conf. on
Innovative Data Systems Research (CIDR). 2003.
[CCC+ 02] Carney, D., Cetintemel, U., Cherniack, M., Convey, C., Lee, S., Seidman, G., Stonebraker, M., Tatbul, N., und Zdonik, S. B.: Monitoring Streams: A New Class of Data
Management Applications. In: Proc. of the Conf. on Very Large Databases (VLDB). S.
215–226. 2002.
[CCD+ 03] Chandrasekaran, S., Cooper, O., Deshpande, A., Franklin, M., Hellerstein, J. M., Hong,
W., Krishnamurthy, S., Madden, S., Raman, V., Reiss, F., und Shah, M.: TelegraphCQ:
Continuous Dataflow Processing for an Uncertain World. In: Proc. of the Conf. on
Innovative Data Systems Research (CIDR). 2003.
[CDTW00] Chen, J., DeWitt, D., Tian, F., und Wang, Y.: NiagaraCQ: A Scalable Continuous Query
System for Internet Databases. In: Proc. of the ACM SIGMOD. S. 379–390. 2000.
[CF02]
Chandrasekaran, S. und Franklin, M. J.: Streaming Queries over Streaming Data. In:
Proc. of the Conf. on Very Large Databases (VLDB). 2002.
[CHK+ 03] Cammert, M., Heinz, C., Krämer, J., Markowetz, A., und Seeger, B.: PIPES: A MultiThreaded Publish-Subscribe Architecture for Continuous Queries over Streaming Data
Sources. Technical report. University of Marburg. 2003. CS-32 (submitted for publication).
[CHKS03]
Cammert, M., Heinz, C., Krämer, J., und Seeger, B.: A Status Report on XXL - A
Software Infrastructure for Efficient Query Processing. 26(2):12–18. 2003.
[Gr93]
Graefe, G.: Query Evaluation Techniques for Large Databases. ACM Computing Surveys. 25(2):73–170. 1993.
[IFF+ 99]
Ives, Z. G., Florescu, D., Friedman, M., Levy, A., und Weld, D. S.: An Adaptive Query
Execution System for Data Integration. In: Proc. of the ACM SIGMOD. S. 299–310.
1999.
[MF02]
Madden, S. und Franklin, M. J.: Fjording the Stream: An Architecture for Queries
Over Streaming Sensor Data. In: Proc. of the IEEE Conference on Data Engineering.
2002.
[MWA+ 03] Motwani, R., Widom, J., Arasu, A., Babcock, B., Babu, S., Datar, M., Manku, G.,
Olsten, C., Rosenstein, J., und Varma, R.: Query Processing, Resource Management,
and Approximation in a Data Stream Management System. In: Proc. of the Conf. on
Innovative Data Systems Research (CIDR). 2003.
[Pr99]
Prognos AG.
Wirkungspotentiale der Verkehrstelematik zur Verbesserung der
Verkehrsinfrastruktur- und Verkehrsmittelnutzung. 1999. Bundesministerium für
Verkehr-, Bau- und Wohnungswesen FE-Nr. 96.584/1999.
[SPAM91]
Schreier, U., Pirahesh, H., Agrawal, R., und Mohan, C.: Alert: An Architecture for
Transforming a Passive DBMS into an Active DBMS. In: Proc. of the Conf. on Very
Large Databases (VLDB). S. 469–478. 1991.
[TGNO92] Terry, D., Goldberg, D., Nichols, D., und Oki, B.: Continuous Queries over appendonly Databases. In: Proc. of the IEEE Conference on Data Engineering. S. 321–330.
1992.
[VN02]
Viglas, S. D. und Naughton, J. F.: Rate-Based Query Optimization for Streaming Information Sources. In: Proc. of the ACM SIGMOD. S. 37–48. 2002.
[WXCJ98] Wolfson, O., Xu, B., Chamberlain, S., und Jiang, L.: Moving Objects Databases: Issues
and Solutions. In: Statistical and Scientific Database Management. S. 111–122. 1998.
User-Toolkits zur dienstbasierten
Entwicklung mobiler Applikationen
Peter Dornbusch, Martin Huber
CDTM - Center for Digital Technology and Management
Arcisstraße 21 - 80290 München
[email protected]; [email protected]
Abstract: Die erfolgreiche Entwicklung und Einführung neuer mobiler
Applikationen stellt besondere Herausforderungen an die Kosteneffizienz der
Dienst-Entwicklung und die Identifizierung bzw. Befriedigung von
Kundenbedürfnissen. Klassische Prozesse der Software-Entwicklung können diese
Anforderungen oftmals nicht erfüllen. In dem vorliegenden Papier wird ein
Framework vorgestellt, dass durch Integration des Kunden und eine modulare
Systemarchitektur eine effiziente Entwicklung ermöglicht. Dabei konfigurieren
Nutzer die Zusammenstellung und das Zusammenspiel von verschieden
Basisdiensten und generieren dadurch neue Dienste. Durch CommunityFunktionen können die von einzelnen Nutzern entwickelten Applikationsideen
weiteren Nutzern verfügbar gemacht werden. In einem evolutionären Prozess
können diese Dienste durch Beiträge aus der Gemeinschaft der Nutzer weiter
verbessert werden. Die verschiedenen Iterationen innerhalb des nutzerdominierten
Entwicklungsprozesses stehen dem Nutzer unmittelbar zur Verfügung, so dass
durch diverse Anpassungen (Personalisierung) der Basisdienste und der
Ablauflogik (Workflow-Engine) Schritt für Schritt eine erfolgreiche und
kundenoptimal gestaltete Anwendung entsteht. Aufgrund der modularen
Architektur, die sich auf Basisdienste stützt und einer davon abstrahierten
Ablauflogik, kann das Framework leicht um weitere Basisdienste ergänzt werden
und ist damit offen für Erweiterungen.
1. Einleitung
Seit der Versteigerung der UMTS-Lizenzen und den damit verbundenen hohen
Investitionen, versuchen die Mobilfunk- und Serviceprovider mögliche „Killer“Applikation zu identifizieren. Allerdings stellen die hohen Kosten der Konzeption,
Entwicklung und Markteinführung einer neuen mobilen Applikation und die
Ungewissheit des Markterfolges erhebliche Barrieren dar. Erste ernüchternde Ergebnisse
einiger Mobilfunkbetreiber zeigen, dass bei neu eingeführten mobilen Applikationen entwickelt mit klassischen Methoden wie zum Beispiel Marktforschung - die
Wahrscheinlichkeit eines Markterfolges aufgrund verfehlter Kundenbedürfnisse äußerst
gering ist.
Ein Weg der Risikominimierung liegt in einer Optimierung des Entwicklungsprozesses,
wie sie in zum Beispiel in [Dor03] vorgeschlagen wird. Insbesondere Werkzeugunterstütztes Rapid Prototyping kann hilfreich bei einer frühzeitigen Kosten/NutzenAnalyse sein.
Das vorliegende Papier stellt eine Alternative bzw. eine Ergänzung vor, die durch
Integration der Nutzer in den Entwicklungsprozess und einem Framework bestehend aus
Basisdiensten und einer Workflow-Engine (Ablauflogik) eine schnelle und kostengünstige Realisierung mobiler Applikationen ermöglicht. Durch die frühzeitige
Kundenintegration ist sichergestellt, dass die Bedürfnisse der Kunden optimal befriedigt
werden können und der Dienst damit eine hohe Wertschätzung und Zahlungsbereitschaft
bei den Nutzern hervorruft.
In einer ersten Implementierung ist unser Framework bereits für die prototypische
Umsetzung von neuen Anwendungsideen einsetzbar. Für eine Umsetzung und
Skalierung auf ein Live-System von Netz- bzw. Servicebetreibern müssen noch weitere
Integrationsaspekte gelöst werden.
Die Integration des Nutzers bei der Realisierung neuer Innovationen haben u.a. von
Hippel [Hi01] und Thomke [Th02] im Bereich von materiell ausgeprägten Produkten
sehr ausführlich untersucht. Dabei konnte gezeigt werden, dass die Integration des
Nutzers in den Entwicklungsprozess, insbesondere bei „sticky information“, also schwer
explizierbaren Informationen zu den Kundenbedürfnissen, sehr vorteilhaft ist. Außerdem
zeigen Untersuchungen im Bereich von Open–Source-Software-Projekten [Fr01],
[Le00], [He02], dass die Fähigkeit der schnellen Iteration von Dienstversionen und
Community-Mechanismen Entwicklungsvorhaben beschleunigen können und zu
besserer Qualität führen. Daneben konnte gezeigt werden, dass für innovative
Technologien die „technology adoption“ bei der Markteinführung durch frühzeitige
Kundenintegration deutlich beschleunigt werden kann und damit die Wahrscheinlichkeit
für einen Markterfolg erhöht wird.
Unser Framework ermöglicht mit wenigen, aber leistungsfähigen Basisdiensten eine
Vielzahl von Applikationen. Im folgenden Kapitel stellen wir die Gesamtarchitektur
unseres Systems vor. Anschließend beschreiben wir die einzelnen Basisdienste und
veranschaulichen unser Konzept an einem Beispiel.
2. Technisches Konzept
Der oben erläuterte Grundgedanke, den Nutzer bzw. Kunden (auch den technisch
weniger versierten) die Möglichkeit zu geben an der Entwicklung einer mobilen
Applikation mitwirken zu lassen, stellt hohe Anforderungen an die Benutzerschnittstelle
und die Einfachheit eines solchen Konzepts.
Die Gesamtplattform besteht einerseits aus der Logik zur Konstruktion und Ausführung
und andererseits aus einer Kommunikationsplattform zur Diskussion und Evaluierung
der kreierten Applikationen. Jede Applikation, die von einem Benutzer erzeugt wurde,
kann freigeschaltet und der Community zur Weiterentwicklung zur Verfügung gestellt
werden. Ein Versionskontrollsystem und ein mit dem Applikation verknüpftes
„schwarzes Brett“ erlauben eine koordinierte Zusammenarbeit in der Community.
Abbildung 1 stellt die einzelnen Schichten unserer Architektur dar. Die CommunityKomponente wird aus Gründen der Übersichtlichkeit hier nicht dargestellt. Benutzerdefinierte Applikationen werden aus einer Menge von Basisdiensten zusammengestellt.
Die Ausführung der einzelnen Applikationen ist an Ereignisse geknüpft. Ein EventHandler überwacht kontinuierlich eingehende Ereignisse und stößt ggf. die entsprechende Anwendung an. Ein Ereignis kann hierbei zum Beispiel an ein Zeitintervall
oder aber an eine Benutzeroberfläche auf dem Endgerät gekoppelt sein. Als Basisdienste
sind in der Abbildung beispielhaft Module für SMS (Short Messaging Service), MMS
(Multimedia Messaging Service), DB (Datenbank) und LES (Location Enabling Service)
ausgewählt, die in der Applikationsschicht kombiniert werden.
Endgerät
GUI
HTTP
FTP
SMS
Event Handler
MMS
Applikationsschicht
Basisdienste
LES
SMS
MMS
DB
…
Abbildung 1: Gesamtarchitektur mit Endgerät (Nutzer/Kunde) und Anbietersystem
2.1 Visuelle Konstruktion
Um ein User-Toolkit zu realisieren, welches intuitiv von einem nicht technik-affinen
Nutzer bedient werden kann, haben wir Elemente visueller Programmiersprachen (VP)
aufgegriffen. VPs verwenden als Basis graphische Symbole. Diese Symbole werden
dann in Graphen als Knoten oder Kanten eingesetzt. In [SIF96] wird eine visuelle
Programmiersprache definiert als
[...] eine formale Sprache mit visueller Syntax oder visueller Semantik zur vollständigen
Beschreibung der Eigenschaften von Software. Syntax und Semantik visueller
Programmiersprachen beziehen meist den zwei- oder dreidimensionalen Raum ein,
während verbale Programmiersprachen auf eindimensionalen Zeichenketten beruhen.
Bekannte Beispiele für visuelle Programmiersprachen sind LabView von National
Instruments [NI03], das besonders für den Bereich der Mess- und Regelungstechnik
verbreitet ist und Lego Mindstorms, zur Programmierung kleiner aus Lego(-Technik)
gebauten Robotern, das in Zusammenarbeit von Lego und dem Massachusetts Institute
of Technology (MIT) entwickelt wurde [LEGO], [Sey93]. Letztere wurde entwickelt,
um Kindern ohne Vorkenntnisse spielerisch das Erlernen einer Programmiersprache zu
ermöglichen und zeigt, dass mit visuellen Programmiersprachen in bestimmten
Domänen tatsächlich Programmierung leichter vermittelt werden kann. Die positiven
Erfahrungen von Lego Mindstorm, als intuitiv bedienbare Programmiersprache, die es
auch Nutzergruppen ohne Vorkenntnisse ermöglicht, Aufgaben zu übernehmen, die
klassischerweise die Kenntnisse einer formalen Programmiersprache voraussetzen, kann
für User-Toolkits fruchtbar eingebracht werden. LabView hingegen ist eine
datenflussorientierte Programmiersprache; ein Konzept an dem sich auch das hier
vorgestellte Framework orientiert.
2.2 Sprachelemente
Unser Ansatz für eine visuelle Sprache ist so einfach wie möglich gehalten, da mit UserToolkits insbesondere Applikationen kreiert werden sollen, die eine (Re-)Kombination
bestehender Basisdienste sind und keine hohe Mächtigkeit der visuellen Sprache
erfordern. Der innovative Charakter der Applikation, der durch den User über das
Toolkit eingebracht wird liegt hier mehr in den Kundenbedürfnissen, den marktlichen
Aspekten und den unterschiedlichen Nutzungskontexten. [Hau97] spricht in diesem
Zusammenhang zum einen von zweckinduzierten Innovationen, die mit bestehenden
Mitteln, also einer bestehenden technischen Dienstplattform, einen neuen Zweck, also
eine neue Applikation, erfüllt. Zum anderen von inkrementalen Innovationen, bei denen
Mittel und Zweck zwar prinzipiell unverändert bleiben, jedoch durch neuartige
Kombinationen oder inkrementelle Verbesserungen im Endergebnis eine deutliche
Steigerung erreicht werden kann. Auf mobile Anwendungen übertragen bedeutet dies,
dass die technische Plattform (Basisdienste) unverändert bleibt, jedoch durch
geringfügige Änderungen oder neuartige Kombinationen eine deutliche Verbesserung
der Applikation erreicht werden kann.
Die Sprache besteht aus Diensten, bedingten Anweisungen, zusätzlichen Funktionen und
Konstanten. Schleifen in Form von Graphzyklen sind nicht möglich, um die Komplexität
der Sprache gering zu halten und damit auch mögliche Fehlerquellen bei der
Programmierung durch Nutzer mit wenig Programmierkenntnissen auszuschließen. Im
Folgenden werden die Merkmale der Sprachelemente kurz diskutiert:
Abbildung 2 Graphische Repräsentation eines Basis-Dienstes
Dienste: Dienste fassen immer eine Menge an Funktionalität einer spezifischen Domäne
zusammen. Da in unserem System Dienste keine Zustände haben, bestehen Dienste aus
einer Menge von Methoden.
Abbildung 3: Graphische Repräsentation einer Bedingung (if distance) mit bedingtem Dienst
(SMS-Service)
Bedingte Anweisungen: Diese sind nah an die Basisdiensten angelegt. Abstrakte
bedingte Anweisungen sind nicht möglich. Zum Beispiel stellen ortsbezogene
Bedingungen die Verknüpfung der Ortsfunktion mit einem Vergleich dar. Bedingte
Kommunikation überprüft beispielsweise, ob das entsprechende Postfach des Benutzers
eine oder mehrere SMS, MMS oder E-Mails enthält.
Zusätzliche Funktionen: Dazu gehören arithmetische Funktionen und String-Operatoren.
Konstanten: Alle Dienst- und Funktionseingänge können auch mit Konstanten belegt
werden.
2.3 Basisdienste
Im Folgenden führen wir für ein besseres Verständnis des Konzeptes einige Basisdienste
auf, die bereits realisiert wurden:
SMS/MMS: Diese beiden Dienste stellen in erster Linie die Möglichkeit bereit, SMS
bzw. MMS an ein anzugebendes Endgerät zu verschicken. Dazu ist es nötig, den
Empfänger und den Nachrichteninhalt zu spezifizieren. Eine weitere Aufgabe ist der
Abruf empfangener Nachrichten.
Telefon (Sprachdienst): Der Telefondienst verbindet zwei Teilnehmer miteinander,
indem die Sprachkanäle zweier Teilnehmer zusammengeschaltet werden.
In der Kommunikationstechnik ist eine Telefonverbindung im Allgemeinen nicht
zustandslos, sondern es werden hier unterschiedliche Zustände, wie Verbindungsaufbau,
Warten auf Verbindungsannahme usw. unterschieden. Da unser System zustandslos ist,
wartet der Dienst bis beide Teilnehmer erfolgreich verbunden wurden. Etwaige
Störungen bei der Etablierung der Verbindung verarbeitet in diesem Fall die
Ablauflogik.
Location-Services: Der Location-Service lokalisiert einen spezifizierten Benutzer. Der
Rückgabewert ist die Benutzerposition angegeben durch Längen- und Breitengrad.
E-Mail: Wie bei SMS/MMS muss hier auch der Empfänger spezifiziert werden, wobei
bei einem E-Mail-Dienst dies über eine entsprechende Adresse geschieht. Ebenso kann
eine Überschrift und ein Nachrichtentext angegeben werden.
Buddy-List (Kontakt-Liste): Eine Buddy-List ist vergleichbar mit einem privaten
Telefonbuch.
Nutzerinformationen: Das Ergebnis dieses Dienstes sind nähere Informationen über
einen bestimmten Nutzer.
2.4 Konfiguration
Um individuelle Laufzeitparameter zu spezifizieren, wird zu jeder entworfenen
Applikation, immer auch eine Konfiguration erstellt. Zum Beispiel wird in der Entwurfphase ein User nur abstrakt in die Anwendung eingebunden. Welcher Benutzer aber
tatsächlich gemeint ist, wird erst in der Konfiguration bestimmt, um den Entwurf von der
eigentlichen Anwendung zu trennen und damit eine bessere gemeinschaftliche Entwicklung in der Community zu ermöglichen. Für ein intuitives Verständnis durch den Nutzer
kann die abstrakte Modellierung aber mit einer konkreten Konfiguration belegt werden.
2.5 Ausführung
Die Ausführung übernimmt eine Workflow-Engine, die registrierte Ereignisse verwaltet.
Die Workflow-Engine kann unterschiedliche realisiert sein und soll hier nur in den
prägenden Eigenschaften beschrieben werden. Wenn ein Ereignis eintritt, wird die entsprechende Applikation ausgeführt. In der jetzigen Implementierung können Ereignisse
ausgelöst werden, wenn ein bestimmter Zeitpunkt erreicht ist oder aber eine Nachricht
(SMS, Email, etc) eingegangen ist. Da es sich bei den Anwendungen/Programmen um
einfache Graphen handelt, ist die Ausführungslogik ebenfalls sehr einfach.
2.5.1 Methodenaufrufe
Damit eine Methode ausgeführt werden kann, müssen drei Bedingungen erfüllt sein:
1. Alle benötigten Parameter dieser Funktion müssen mit einem entsprechenden
Rückgabewert einer anderen Methode belegt sein.
2. Alle eingehenden Parameter einer Methode müssen bereits gesetzt sein. Dass
bedeutet, dass Quellfunktionen bzw. Dienste bereits ausgeführt wurden.
3. Ist die Methode innerhalb einer Bedingung, so muss die Bedingung erfüllt sein. Nur
wenn die Bedingungen erfüllt ist, kann eine Methode ausgeführt werden.
Es wird keinerlei Aussage über den Zeitpunkt der Ausführung getroffen. Der
Ausführungszeitpunkt wird autonom vom Interpreter bestimmt.
2.5.2 Beenden der Ausführung
Zur Beendigung einer Applikation kommt es, wenn sich kein Dienst mehr ausführen
lässt. Dies ist der Fall, wenn entweder tatsächlich alle Dienste ausgeführt wurden oder
aber wenn ein Dienst nicht mehr ausgeführt werden kann, weil die Eingangsparameter
nicht gesetzt sind oder gesetzt werden können.
2.5.3 Ausführung eines Programms
Zur Ausführung wird auf Zyklenfreiheit geprüft und dann Sequentialisiert. :
Überprüfung auf Zyklenfreiheit:
Um die prinzipielle Ausführbarkeit des Programms zu gewährleisten, muss sichergestellt
werden, dass der entstandene Graph G zyklenfrei ist. Dies bedeutet in diesem Zusammenhang, dass kein Dienst (Knoten des Graphen) direkt oder indirekt von sich selbst
abhängig sein darf. Dazu wird für jeden Teilgraph des Graphen überprüft, ob er nach
dieser Festlegung zyklenfrei ist. Trifft dies für alle Knoten von G zu, so ist auch G
zyklenfrei. Um einen einzelnen Dienst zu überprüfen, muss man zuerst feststellen von
welchen anderen Knoten dieser abhängig ist. Hierbei gibt es zwei unterschiedliche Arten
von Abhängigkeit. Ist festgestellt worden, dass keine Zyklenabhängigkeiten vorhanden
sind, so muss überprüft werden, ob das Programm ausgeführt werden kann. Um die
Ausführung einer Instanz zu gewährleisten, müssen alle benötigten Parameter mit einem
Wert belegt sein.
Sequenzialisierung:
Um das Programm ausführen zu können, muss der zuvor aufgebaute Graph sequentialisiert werden. Dies ist nötig, da nicht allen benutzten Instanzen gleich von Anfang an ihre
benötigten Parameter zur Verfügung stehen, sondern diese teilweise erst von anderen
bereitgestellt werden müssen. Um mögliche Startpunkte für die Ausführung zu erhalten,
werden zunächst einmal alle Instanzen gesucht, die keinerlei Abhängigkeiten von anderen aufweisen und die nicht das Ziel einer Wertzuweisung oder eine bedingte Instanz
sind. Diese Startpunkte können nun direkt ausgeführt werden, bzw. sind die, die als
erstes ausgeführt werden müssen. Danach wird für jede Instanz, die nicht zu dieser
ersten Gruppe gehört, überprüft, ob alle ihre Parameter von einem Dienst stammen, der
zu der Gruppe der Startpunkte gehört. Ist dies der Fall, so kann der Dienst ausgeführt
werden und wird zu den bereits Ausgeführten hinzugefügt. Im anderen Fall wird einfach
mit dem nächsten Dienst fortgefahren und der gerade geprüfte wird wieder an den
Schluss der Sequenz angehängt. Für bedingte Dienste muss ferner noch überprüft
werden, ob sie aufgrund der Bedingung ausgeführt werden können oder nicht, das heißt,
ob die Bedingung erfüllt ist oder nicht. Dies wird nun solange wiederholt, bis alle
Dienste ausgeführt sind. Dadurch ergibt sich eine mögliche – nicht eindeutige Reihenfolge für die Ausführung.
3. Beispielapplikation
An einem Beispiel wollen wir den Toolkit veranschaulichen. Abbildung 4 zeigt den
Dienst „Schwiegermutter-Warner“. In der Entwurfssicht finden sich die einzelnen Basisdienste und die Nachrichtenflüsse zwischen den Basisdiensten. Zwei Benutzer werden
lokalisiert und ihr Abstand zueinander wird bestimmt.
Wenn die Benutzer sich näher als 500 m kommen, wird an einen der Benutzer eine SMS
gesendet. In der Konfiguration wird nun noch spezifiziert, um welche Nutzer es sich
handelt. In unserem Fall ist es beispielsweise der Nutzer (also der Dienstentwickler)
selbst und dessen Schwiegermutter.
Wie schon anhand dieser schematischen Beispielapplikation deutlich wird, wirken sich
schon inkrementelle Änderungen der Ablauflogik (z.B. Änderung des Radius von 500m
auf 3km) auf die Charakteristik der mobilen Applikation aus. Durch einen vielfältigen
„Trial and Error“ Prozess durch den Nutzer bzw. die Gemeinschaft der Nutzer und die
evolutionäre Weiterentwicklung der Applikationsidee kann so nach mehreren Iterationen
eine marktfähige und den Kundenbedürfnissen entsprechende Applikation geschaffen
werden [Hi01]. Bei der Gestaltung des „Trial and Error“ Prozesses muss abgewogen
werden, welche Freiräume und welche Restriktionen zugelassen werden, um einerseits
einen großen Möglichkeitsraum zu gewährleisten, andererseits den Prozess sowohl für
den Kunden als auch den Betreiber, insbesondere hinsichtlich der anfallenden Kosten,
attraktiv zu machen. Die (Wertschöpfungs-)Beiträge innerhalb des Entwicklungsprozesses kommen dabei maßgeblich vom Kunden/Nutzer und ermöglichen so für einen
Anbieter eine veränderte Kostenstruktur für die Realisierung neuer mobiler
Applikationen. In der Betriebswirtschaft wurde u.a. von Ramirez [Ram99] unter dem
Begriff der “value co-production“, in ähnlichem Kontext die Vorteilhaftigkeit der
Kundenintegration sehr breit diskutiert.
Abbildung 4: Beispielapplikation für einen „Schwiegermutter-Warner“
In der bereits vorliegenden Implementierung des Toolkits (Abbildung 4) kann das
„Look-and-Feel“ der Benutzeroberfläche in unterschiedlichen Designs und mit
verschiedenen Beschriftungen gestaltet werden, um eine intuitiv zugängliche und
nutzerfreundliche Benutzerschnittstelle zu realisieren.
4. Fazit und Ausblick
In dem vorliegenden Papier haben wir einen ersten Entwurf für einen User-Toolkit zur
mobilen Applikationsentwicklung vorgestellt. In der jetzigen Phase ist vor allem noch
nicht geklärt, wie entwickelte Anwendungen in den Normalbetrieb migriert werden
können. Dies soll im Zuge eines 2004 anlaufenden Forschungsprojektes zusammen mit
einem Industriepartner aus dem Bereich ISP bearbeitet werden. Dennoch steht bereits
zum jetzigen Zeitpunkt ein mächtiges Tool zur Verfügung, welches die Möglichkeiten
und Grenzen eines Toolkits für die Entwicklung mobiler Applikationen skizziert.
Literaturverzeichnis
[Dor03] Peter Dornbusch, Martin Huber, Matthias Möller, Rapid Prototyping of mobile
Applications, Proceedings of 8th International Workshop on Mobile Multimedia
Communications, 2003 (to appear)
[Fr01] Egon Franck, C. Jungwirth, Open versus Closed Source, Working Paper No. 4,
Universität Zürich, 2001
[Hau97] Hauschildt, J.: Innovationsmanagement. Franz Vahlen Verlag, München, 2. Auflage,
1997
[He02] Joachim Henkel,Open Source Software from Commercial Firms – Tools, Complements,
and Collective Invention, Discussion Paper No. 02-27, German Economic Association of
Business Adminsitration, 2002
[Hi01] Von Hippel, E.: Perspective: User Toolkits for Innovation, The Journal of Product
Innovation Management Vol. 18, pp. 247-257., 2001
[Le00] Josh Lerner, Jean Tirole, The Simple Econimics of Open Source, Harvard Business
School, 2000
[LEGO] Lego, http://mindstorms.lego.com, 2003
[NI]
National Instrument, http://www.ni.com, 2003
[SIF96] Stefan Schiffer, Visuelle Programmierung - Potential und Grenzen, 1996
[Ra99] Ramirez, R.: Value Co-Production: Intellectual Origins and Implications for Practice and
Research, Strategic Management Journal, Vol. 20, pp. 49-65., 1999
[Th02] Thomke, S. and von Hippel, E.: Customers as Innovators: A new Way to Create Value,
Harvard Business Review, Vol. 80, No. 2., 2002
Konzeption geräteübergreifender Anwendungen
Thomas Königsmann
Integration Management
Fraunhofer-Institut für Software- und Systemtechnik ISST
Emil-Figge-Strasse 91
44227 Dortmund
[email protected]
Abstract: Der »Digitale Begleiter« ist eine Metapher, die den Gedanken der
Informationslogistik mit der Vision des Ubiquitous Computings nach Weiser
verbindet. »Digitale Begleiter« manifestieren sich in Anwendungen, die
kontextsensitiv und geräteunabhängig Dienstleistungen und Informationen
anbieten. In dieser Arbeit wird das Konzept der »geräteübergreifenden
Anwendungen« eingeführt und ein auf Dialogspezifikationsmethoden basierendes
Vorgehen zur Realisierung präsentiert. Dabei gehen »geräteübergreifende
Anwendungen« über die Geräteunabhängigkeit hinaus, indem gefordert wird, dass
ein Wechsel des Endgerätes auch während der Anwendungsdurchführung, also zur
Laufzeit der Anwendung, möglich ist.
1 Einleitung
Betrachtet man die Fortschritte im Bereich der Informations- und
Kommunikationstechnologien, so lassen sich grundsätzlich zwei Schwerpunkte
benennen. Einerseits sind dies Bemühungen das Internet, das bisher als »gewaltiger
Informationspool« betrachtet wurde, auch als Service Plattform zu etablieren, wie aus
den Standardisierungsbemühungen im Bereich der Web-Services [Ch01] hervorgeht.
Andererseits eröffnen technische Entwicklungen in den Bereichen der drahtlosen
Datenübertragung, der mobilen Endgeräte und Anwendungen neue Einsatzgebiete. Hier
wird eine Infrastruktur geschaffen, die es erlaubt, Informationen und Dienstleistungen,
die bisher an Desktop-PCs gebunden waren, auf mobilen Endgeräten und somit
allgegenwärtig zugänglich zu machen. Hinter diesen Möglichkeiten verbergen sich aber
auch eine Reihe von Problemstellungen, die insbesondere durch den Einsatz mobiler
Endgeräte noch verschärft werden. Insbesondere die Fülle an Diensten und
Informationen
kann
bereits
an
stationären
Arbeitsplätzen
zu
einer
Informationsüberflutung führen (vgl. [DL01]).
Der Forschungsbereich der Informationslogistik thematisiert diese Problemstellung und
liefert Konzepte und Werkzeuge zur Reduktion des Volumens bei gleichbleibenden
Informationsgehalt für die Anwender. Detaillierte Beschreibungen der Konzepte zur
bedarfsgerechten Informationsversorgung, einem Schwerpunkt der Informationslogistik,
finden sich in [DL01], [DLP03], [Ha01].
Digitale Begleiter sind ein Themenfeld der Informationslogistik, das sich insbesondere
mit dem Einsatz mobiler Technologien beschäftigt. Der »digitale Begleiter« ist hierbei
eine Metapher, die den Gedanken der Informationslogistik mit der Vision des
»Ubiquitous Computings« nach Weiser [We91] verbindet. Dienste und Informationen
werden dem entsprechend nicht an Endgeräte sondern an Personen gebunden. Im
Vordergrund stehen Anwendungen, die Anwender über unterschiedliche Endgeräte
hinweg begleiten.
2 Geräteübergreifende Anwendungen
Ein Kernaspekt der »digitalen Begleiter« ist die allgegenwärtige Bereitstellung von
Anwendungen und Informationen. Diese Anwendungen werden aufgenommen und
können wieder beiseite gelegt werden, um sie an einem anderen Ort oder zu anderer Zeit
wieder fortsetzen zu können. Diese Konzeption wird im Folgenden mit dem Begriff
»geräteübergreifende Anwendungen« umschrieben.
Hierbei wird allerdings nicht der bekannte Ansatz verfolgt, Dienste auf unterschiedliche
Endgeräte zu portieren, sondern eine neue Form von Anwendungen zu ermöglichen. Im
Vordergrund steht hierbei der Werkzeuggedanke, bei dem für die Durchführung von
Aufgaben unterschiedliche Werkzeuge zum Einsatz kommen. Wie im Alltagsleben,
sollen sich Anwender unterschiedlicher Werkzeuge bedienen können und auch die
Möglichkeit haben, die Werkzeuge zu wählen, die ihrer Ansicht über die adäquaten
Eigenschaften besitzen, um eine Aufgabe zu bewältigen. Überträgt man diesen
Gedanken auf informationstechnische Systeme, so werden Werkzeuge durch
spezialisierte Endgeräte (Information Applicances) wie beispielsweise PDA, FAX,
Telefon (Mobiltelefone, Haustelefone), Systeme zur Erfassung von digitalen
Handschriftnotizen, mit Set-Top-Boxen ausgestattete Fernsehgeräte, Bordcomputer in
Automobilen und Info-Terminals repräsentiert. Aber auch Web-Pads, Laptop und
schließlich der herkömmliche Desktop-PC zählen zu den Endgeräten. Diese
Gerätschaften verfügen über unterschiedliche Eigenschaften in Hinsicht auf ihre
Fähigkeiten und ihre Verfügbarkeit. Der Wechsel der Endgeräte während der
Anwendungsdurchführung kann vielfältige Ursachen haben:
-
-
der Anwender wählt ein anderes Endgerät, da es über die geeigneteren Fähigkeiten
zur Durchführung einer Teilaufgabe verfügt,
der Anwender ist aufgrund eines Ortswechsels gezwungen, die Anwendung zu
unterbrechen und nimmt sie hinterher an einem anderen Ort auf einem anderen
Endgerät wieder auf,
eine Fortsetzung der Anwendung ist aufgrund der Fähigkeiten des Endgerätes nicht
mehr realisierbar,
die Anwendung benötigt einen unbestimmten Zeitraum um zu reagieren,
der Anwender möchte die Anwendung unterbrechen und zu einem anderen Zeitpunkt
wieder aufnehmen.
Geräteübergreifende Anwendungen zeichnen sich einerseits durch den Einsatz
heterogener Endgeräteklassen (vgl. [OH99]) und andererseits durch den
Endgerätewechsel zur Laufzeit der Anwendung aus. Der Einsatz heterogener
Endgeräteklassen und somit der Einsatz unterschiedlicher User-Interfaces erlaubt nicht
nur unterschiedliche Typen von Endgeräten einzusetzen, sondern auch neue
Interaktionsformen (vgl. [St96]), wie beispielsweise die Sprachsteuerung,
Gestenerkennung und Handschrifterkennung in die Anwendung zu integrieren, da diese
Interaktionsformen als Teil des Endgerätes abgebildet werden können.
Die Möglichkeit des Endgerätewechsels während der Aufgabendurchführung wirft
Fragestellungen bezüglich der Konzeption und Realisierung solcher Anwendungen auf.
Für den Wechsel der Endgeräte müssen Möglichkeiten vorgesehen werden, eine
Anwendung zu unterbrechen und auf einen anderen Endgerät wieder aufzunehmen, ohne
das ein Anwender gezwungen wird die Daten, die er auf einem Endgerät eingegeben hat,
auf das andere Endgerät zu übertragen.
Jede Interaktion mit der Anwendung muss potentiell über unterschiedliche Endgeräte
ausführbar sein, da nur so sichergestellt werden kann, das ein Wechsel überhaupt
möglich ist. Dies bedeutet allerdings, dass die Anwendung selbst endgerätefrei
formuliert werden muss, während die Definition der Interaktionen endgerätebezogen zu
betrachten ist, da Interaktionen auf unterschiedlichen Endgeräten völlig verschieden
gestaltet werden können. Dies hat immense Auswirkungen auf die Komplexität
geräteübergreifender Anwendungen. Es ist somit von höchster Priorität Konzeptionen
und Abstraktionen zu finden, die diese Komplexität beherrschbar zu machen. Das
folgende Kapitel stellt solch einen Ansatz vor.
3 Dialogbasierter Ansatz zur Realisierung geräteübergreifender
Anwendungen
Die zugrunde liegende Idee zur Realisierung geräteübergreifender Anwendung basiert
auf der Annahme, dass Anwender bestimmte Interaktionsschritte über unterschiedlichen
Endgeräte ausführen können. Interaktionsschritte beziehen sich in dieser Arbeit auf eine
User-Interface-Ebene. Sie umschreiben hierbei Interaktionen, die der Anwender mit dem
Computersystem durchführen muss. Anwendungen müssen somit als eine Abfolge von
Interaktionen beschreibbar sein, die der Anwender abarbeitet. Zielsetzung ist die
einzelnen Interaktionsschritte mit unterschiedlichen Endgeräten durchführbar zu
gestalten, so dass auch die gesamte Anwendung geräteübergreifend realisiert werden
kann, indem jeder Interaktionsschritt grundsätzlich auf einem anderen Endgerät
durchführbar ist.
Die Problematik dieses Ansatzes liegt in der Definition, Modellierung und schließlich
Realisierung der einzelnen Interaktionen. Die Funktionsaufrufe, die ein Computersystem
leisten muss, unterscheiden sich zumeist deutlich von den Interaktionen, die der
Anwender durchführt. Ebenso können auf bestimmten Endgeräten Interaktionen völlig
verschieden geartet sein. So können über einen Web-Browser in nur einem
Interaktionsschritt komplexe Formulare angeboten und verarbeitet werden, während die
Umsetzung über einen Telefondialog viele einzelne Interaktionen erfordert. Zentraler
Ansatz ist somit die Interaktionsmodellierung von Anwendungen. Die notwendigen
Interaktionen zwischen Anwender und System werden hier als Abstraktionsebene
eingeführt, die dann für unterschiedliche Endgeräte zu konkretisieren ist. In der Literatur
[Gö94] unterscheidet man zwischen unterschiedlichen Modellen für die Beschreibung
und Entwicklung von User-Interfaces [Hüb90]: mentale Modelle (Benutzerwissen über
das Anwendungsgebiet), Benutzermodelle (kognitive Modelle) und Aufgabenmodelle
(konzeptionelle Modelle) werden zumeist im Bereich der Software-Ergonomie
eingesetzt, während Dialog- und Architekturmodelle in der Softwareentwicklung
Beachtung finden. In dieser Arbeit sind insbesondere die letzen beiden Modellklassen
von Interesse, da der Schwerpunkt auf der Konzeption und Realisierung von UserInterfaces für geräteübergreifende Anwendungen gelegt wird.
Architekturmodelle definieren den strukturellen Aufbau einer Benutzerschnittstelle
durch
funktionale
Komponenten,
deren
Kombinationsmöglichkeiten
und
Kommunikationsverbindungen. Eines der bekanntesten Architekturmodelle, das eine
Interaktionskontrolle explizit thematisiert, ist das nach einem Workshop benannte
Seeheim-Modell [Pf85]. Es handelt sich dabei um ein logisches Architekturmodell, das
die drei funktionale Komponenten Präsentationskomponente, Dialogkontrolle und
Applikationsschnittstelle unterscheidet.
Dialogmodelle bilden die konzeptionelle Grundlage des zulässigen Interaktionsablaufes,
der sogenannten Dialogablaufbeschreibung und der darauf aufbauenden Steuerung des
Dialoges zwischen Benutzer und Anwendung, der sogenannten Dialogablaufsteuerung.
Ein Dialogmodell impliziert eine bestimmte Methode der Dialogablaufbeschreibung, die
als Dialogspezifikationsmethode bezeichnet wird, und hat wesentlichen Einfluss auf eine
der zentralen, funktionalen Komponenten einer Benutzerschnittstelle der Dialogkontrolle
[Gö94].
Für die Konzeption und Realisierung geräteübergreifender Anwendungen ist es
notwendig, Dialogmodelle zu entwickeln, die es erlauben die Dialogablaufbeschreibung
auf einer geräteunabhängigen Ebene zu ermöglichen. Unter Steuerung dieser neu
eingeführten
Ebene
müssen
dann
Überführung
auf
geräteabhängige
Dialogablaufbeschreibungen realisiert werden, die schließlich in einem
softwaretechnischen System, das über eine Dialogkontrolle gesteuert wird, die
Durchführung von Anwendungen erlaubt.
4 Existierende Ansätze
Obwohl der Begriff der »geräteübergreifende Anwendungen« in der Literatur nicht
wiederzufinden ist, finden sich ähnliche Ansätze im Forschungsbereich des »Ubiquitous
Computing«. Die Idee des »Ubiqutous Computings« ist auf Marc Weiser
zurückzuführen, der 1991 in dem Artikel »The computer for the 21st century« [We91],
die Vision von vielen kleinen, vernetzen und unsichtbar in die Umwelt des Anwender
integrierten Computersystemen beschrieb und damit einen neuen Forschungsbereich
schuf. Seine Vision zeichnet sich insbesondere durch die unsichtbare Integration der
Systeme aus, bei der sich der Mensch nicht mehr explizit mit einem Computer
auseinander setzen muss, sondern Computer ein Teil seiner natürlichen Umgebung sind.
Geräteübergreifende Anwendungen nehmen den Kerngedanken der Allgegenwärtigkeit
von Anwendungen auf, indem tatsächlich eine Anwendung über unterschiedliche
Endgeräte bedienbar wird. Die Integration der Computer in die Umwelt der Anwender
wird aber außer acht gelassen. Dieser Gedanke wird in der neueren Literatur mit
»Nomadic Computing« [Kl95] umschrieben. Beim »Nomadic Computing« steht die
Mobilität des Anwenders im Vordergrund. Der Anwender wandert zwischen
unterschiedlichen Infrastrukturen und erhält über die am Ort verfügbaren Gerätschaften
oder Endgeräte, die er mit sich trägt, Zugang zu lokalen Infrastrukturen und kann über
diese auf eine zentrale Instanz zugreifen, die seine persönlichen Informationen und
Dienstleistungen bereitstellt.
Im Gegensatz zu den Ansätzen, die geräteunabhängige Anwendungen behandeln, bei
denen eine Anwendung über unterschiedliche Endgeräte angeboten wird, kann bei
geräteübergreifenden Anwendungen auch zur Laufzeit ein Endgerätewechsel
durchgeführt werden. Die Konzeption geräteunabhängiger Anwendungen ist heutzutage
aber immer noch als problematisch zu bewerten. Zumeist wird lediglich die Präsentation
von Inhalten in den Vordergrund gestellt und Mechanismen zur Transformation in
unterschiedliche Formate beschrieben. Dieser Ansatz stößt allerdings an Grenzen, wenn
die Anwendung komplexe Interaktionen erfordert. So ist schon das simple Aufteilen
einer HTML-Seite in kleinere Bausteine, die auch auf PDAs dargestellt werden, oft
schon nicht durch Transformation der Inhalte möglich, da hier Nutzerinteraktionen
stattfinden müssen, um eine Navigation in den Inhalten zu erlauben. Der in dieser Arbeit
verwendete Ansatz, nutzt die Transformation von Inhalten, betrachtet diese aber nur als
Baustein, um Ausgaben für die einzelnen Dialogschritte zu erzeugen.
Im Grunde lässt sich für die heutige Entwicklung von geräteunabhängigen
Anwendungen festhalten, dass Geräteunabhängigkeit innerhalb einer Geräteklasse
realisierbar ist, zwischen ähnlichen Geräteklassen nur schwierig und zwischen völlig
unterschiedlichen Geräteklassen nicht realisierbar ist.
Die Programmiersprache Java bietet beispielsweise eine Entwicklungsumgebung, die auf
unterschiedlichen Plattformen lauffähig ist. Grundsätzliche lassen sich JavaAnwendungen zwischen unterschiedlichen Plattformen transferieren und ermöglichen
somit geräteunabhängige Anwendungen. Anwendungen sind aber nur zwischen gleichen
Klassen von Endgeräten transferierbar.
Eine Portierung von Desktop Anwendungen auf mobile Endgeräte, wie beispielsweise
PDAs, ist bereits nicht mehr realisierbar. Das kleine Display, das Fehlen von Maus und
Tastatur erfordern bereits zu große Anpassungen, das eine einfache Portierung möglich
wäre. Das hier auch keine Besserung zu erwarten ist, lässt sich anhand der
Entwicklungsstrategie von Sun aufzeigen, die für unterschiedliche Endgerätetypen,
unterschiedliche Versionen ihrer Java-VM [Wh01] anbieten.
Beispiele für Geräteunabhängigkeit bei ähnlichen Klassen sind Browser und ServerArchitekturen, die multi-Device fähig sind. Dieser Ansatz zeichnet sich durch die
Verwendung von Browsern, als Client-Umgebung aus. Hier existieren eine Reihe von
Frameworks, die unterschiedliche Endgeräte unterstützen können. So werden hier
zumeist HTML für Desktop-PCs, HTML für PDAs und WAP für mit WAP-Browsern
ausgestattete Mobilfunkgeräte angeboten. Diese Ansätze setzen auf einer abstrakten
Beschreibung des Contents, zumeist in XML auf und transformieren diese Inhalte auf
Größen, die auch auf kleineren Displays dargestellt werden können. Tatsächlich lässt
sich nur ein Bruchteil der notwendigen Anpassungen lediglich durch Transformation
realisieren, in vielen Fällen ist die Anpassung des Applikationsablaufes notwendig.
Beispiele für Geräteunabhängigkeit auch zwischen unterschiedlichen Klassen wie
beispielsweise Spracheausgabe beim Telefon, DesktopPCs und mobilen Endgeräten
finden sich nur im Bereich des »Unified Messagings« [WV02]. Beim »Unified
Messaging« allerdings die Anwendung (Informationszustellung) fest definiert.
Anwendungen die tatsächlich geräteübergreifend sind, finden sich lediglich im Bereich
der »Remote Clients«. Hier wird die Anwendung auf Server-Systemen durchgeführt und
lediglich die Ausgabe auf den PC des Anwenders gesendet. Dieser Ansatz erlaubt es das
Endgerät zu wechseln. Es ist allerdings nicht möglich, andere Endgeräte-Klassen zu
verwenden, da Serversysteme über keine Mechanismen verfügen, die es erlauben
gerätespezifisch zu reagieren, bzw. die existierende Oberfläche auf ein anders geartetes
User-Interface zu transferieren.
Der in dieser Arbeit verwendete Dialogansatz, wird hauptsächlich für den Aufbau von
UIMS (User-Interface-Management-Systems) [St96] verwendet. UIMS versprechen eine
Beschleunigung der Entwicklung von User-Interfaces, indem eine funktionale Trennung
von Präsentationskomponente, Dialogkontrolle und
Applikationsschnittstelle
vorgenommen wird und Werkzeuge zur Entwicklung bereitgestellt werden. Kern jedes
UIMS ist die verwendete Dialogspezifikation. Es existiert ein Vielzahl von
Dialogspezifikationsmethoden, die tatsächlich auch in UIMS eingesetzt werden. Die
prominentesten Vertreter sind Zustandsübergangsgraphen, Petrinetze, Ereignissysteme,
Kontextfreie
Grammatiken,
Statecharts
und
Graph
Grammer
[BFJ96].
Dialogspezifikationsmethoden verfügen über unterschiedliche Eigenschaften in Bezug
auf ihre Fähigkeiten zur Abbildung von Dialogzuständen, zur Strukturierung,
Abstraktion und Ausführbarkeit von Dialogabläufen (vgl. [Gö94]).
Die Unterschiedlichen Charakteristika der Dialogspezifikationsmethoden, sind auch der
wesentliche Grund, warum für Unterschiedliche Interaktionsformen (interaction styles)
wie Fenster-, Menü-, Masken-, Kommandosprachen-Systeme oft auch unterschiedliche
Dialogspezifikationsmethoden zum Einsatz kommen. Eine wie für den dialogbasierten
Ansatz zur Realisierung geräteübergreifender Anwendungen benötigte einheitliche
Methode zur Beschreibung unterschiedlicher Interaktionsformen ist in der Literatur nicht
zu finden.
5 Vorgehen
Das Vorgehen zur Konzeption und Entwicklung geräteübergreifender Anwendungen
orientiert sich an einem Phasenmodell. Das Ergebnis einer Phase bilden jeweils die
Grundlage der darauffolgenden Phase. Für die Übergänge zwischen den einzelnen
Phasen werden Werkzeuge konzipiert, die Hilfsmittel für die Überführung in die nächste
Phase bereitstellen.
Abbildung 1 veranschaulicht die einzelnen Phasen und Werkzeuge, und gibt Beispiele
wie diese Werkzeuge aussehen könnten. Die einzelnen Phasen werden durch graue
horizontale Balken dargestellt und Werkzeuge durch Rechtecke, die mit einem Zeiger
auf die Phase in der sie benutzt werden ausgestattet sind. Links an den Balken sind
Beschriftungen angebracht, die das Ergebnis der Phase benennen. Die Beschriftung und
die Symbole, die rechts an den Balken positioniert sind zeigen exemplarische
Umsetzungen der Werkzeuge.
Ergebnisse
Werkzeuge
Werkzeugbeispiele
Anforderungskatalog
•Endgeräte
Interaktionskonzept
•Orte
•Verfügbar
•Nutzer
•Zeit
•Darstellung
•Nutzbarkeit
Basis Dialogkatalog
geräteunabhängiges
Dialogmodell
Gerätespezifische
Dialogkataloge
Input
Select
Modify
gerätespezifische
Dialogmodelle
PDA
CarPC
Telefondialog
Schablonen
ausführbares
Dialogmodell
HTMLText to Speech Telko-Anlage
Schablonen Engine
Abbildung 1: Vorgehen bei der Realisierung geräteübergreifender Anwendungen
Die erste Phase umfasst die Analyse der Anwendung, in Bezug auf die Anforderungen
geräteübergreifender Anwendungen. So müssen Anwendungsfälle (Use Cases) von der
reinen Betrachtung der Funktionen um Aspekte wie Verfügbarkeit von
Interaktionsmedien, Angemessenheit der Interaktionsarten, zu nutzende Endgeräte,
Fähigkeit der Endgeräte zur Durchführung benötigter Interaktionen und viele andere
Aspekte erweitert werden. Bisher existieren nur bedingt Erfahrungen im Einsatz von
geräteübergreifenden Anwendungen, so das Hilfestellungen in diesem Bereich benötigt
werden. Zur Unterstützung der Analyse-Phase müssen relevante Aspekte identifiziert
und ihre Auswirkungen auf die Konzeption der Anwendung beschrieben werden.
Insbesondere sollte der Schwerpunkt der Analyse auf notwendige Interaktionen des
Anwenders gelegt werden. Als Hilfsmittel für die Analyse sind Anforderungskataloge
denkbar, die Richtlinien für die Konzeption liefern.
Das Ergebnis der zweiten Phase ist ein Dialogmodell, dass geräteunabhängig formuliert
wurde. Diese Beschreibung bildet die Grundlage für die folgenden Schritte, die den
Dialogablauf konkretisieren. Dabei muss einerseits gewährleistet werden, dass den
nachfolgenden geräteabhängigen Modellen genügend Freiräume gelassen werden, um
den Dialogmodellierer nicht einzuschränken, andererseits müssen Interaktionen des
Anwenders auf Parameter und Funktionsaufrufe abgebildet werden. Letzteres ist
notwendig, da auf dieser Ebene die Schnittstelle zum funktionalen Kern der Anwendung
geschaffen wird.
Der verwendete Ansatz zur Modellierung geräteunabhängiger Dialoge basiert auf der
Definition von sogenannten »Basis Dialogschritten«, die über alle Endgeräte realisierbar
sind. Zur Modellierung des geräteunabhängigen Dialogmodells sollten nur Elemente
eines »Basis Dialogkataloges« verwendet werden, der alle »Basis-Dialogschritte«
enthält. Grundlegende Dialogschritte könnten beispielsweise »Input«, »Select« und
»Modify« sein. Untersuchung unterschiedlicher Anwendungen haben gezeigt, das bereits
dieses kleine Set an Dialogschritten ausreichend ist, um einen Großteil von
Anwendungen abzubilden (vgl. [NB02]).
Um nachfolgenden Modellen Freiräume zu gewährleisten, muss das geräteunabhängige
Modell erlaubte Permutationen von Dialogschritten oder parallel durchführbare
Dialogschritte abbilden können. Das geräteunabhängige Modell steht in Beziehung mit
dem geräteabhängigen Modell, da beispielsweise Reihenfolgen in Funktionsaufrufen,
welche die Anwendungslogik abbilden, oft harte Kriterien für eine Dialogstrukturierung
darstellen. Eine Trennung ist auch nicht erstrebenswert, da der Bezug zu den
Funktionen, der auf dieser Ebene abgebildet wird, verloren gehen würde.
Im nächsten Schritt der »geräteabhängigen Dialogmodellierung« müssen
Konkretisierungen für den Dialogablauf modelliert werden. Diese orientieren sich an den
speziellen Eigenschaften der verwendeten Endgeräte. Hierzu werden gerätespezifische
Dialogkataloge angeboten. Jeder dieser Kataloge enthält eine Reihe von Dialogschritten,
die über ein Endgerät durchgeführt werden können. Als Beispiel für einen Dialogschritt
auf einen HTML-Browser können Formulare benannt werden, über welche der
Anwender Texteingaben tätigen und/oder Elemente aus einem Menü auswählen kann.
Um die gleiche Funktionalität auch über einen Telefondialog mit Spracherkennung
durchführen
zu
können,
wäre
es
notwenig
mehrere
Dialogschritte
durchzuführen.Denkbar wären hier für jedes Element des Formulars
Eingabeaufforderungen zu generieren, die dem Anwender sequentiell durch das
Formular führen. Der Dialogkatalog für Telefondialoge würde nur aus einem Element
bestehen, nämlich dem Dialogschritt Sprachausgabe des Systems und Spracheingabe des
Anwenders.
Für die Modellierung werden Dialogkataloge für die zu unterstützenden Endgeräte
angeboten, weiterhin wird eine Dialogspezifikationsmethodik entwickelt, über die sich
unterschiedliche User-Interfaces abbilden lassen. Eine autonom vom Rechner
durchgeführte Überführung des geräteunabhängigen Modells in das geräteabhängige ist
nicht vorgesehen, da die Dialogmodellierung als Teil des User-Interfaces ein kreativer
Akt ist, der sich nur schwer automatisieren lässt. Geräteübergreifende Anwendungen
erfordern nun, dass insbesondere auch Gerätewechsel durchführbar sind. Ein
Gerätewechsel wird auf Modellebene durch die Übertragung des Dialogzustandes eines
Dialogmodells (für ein bestimmtes Endgerät) in den Dialogzustand auf das Zielendgerät
realisiert. Um zu verhindern, das jedes geräteabhängige Dialogmodell (eines für ein
Endgerät) Statusabbildungen auf alle anderen Dialogmodelle abbilden muss, sind
Abbildungen des Dialogstatus auf das geräteunabhängige Modell (und umgekehrt auf
das geräteabhängige Modell) durchzuführen. Zu untersuchen ist allerdings an welchen
Stellen im Dialog Gerätewechsel ermöglicht werden sollen.
In der letzten Phase werden den einzelnen im Dialogmodell verwendeten Dialogschritten
Schablonen zugeordnet, die ihre tatsächliche Darstellung beschreiben. Als Werkzeug
werden hierfür Software-Komponenten verwendet, die tatsächlich einen Dialog
realisieren. Die in den Dialog-Katalogen beschriebenen Dialogschritte sollten schon mit
Informationen zu den benötigten Schablonen in Beziehung gesetzt werden. So müssen
für das ausführbare Dialogmodell lediglich die Schablonen angepasst und für den
Anwendungsfall parametrisiert und konfiguriert werden.
6 Ausblick und Stand der Arbeiten
Die Zukunft in der Entwicklung mobiler Endgeräte und der Interaktion mit diesen wird
zur Zeit kontrovers diskutiert. So sehen sich Anwender heutzutage bereits einer Fülle
von Endgeräten wie PDAs, Smart-Phones, Web-Pads, Info-Terminals aber auch neuen
Desktop PCs und Laptops ausgesetzt, die zumeist über völlig unterschiedliche
Nutzerschnittstellen verfügen. Die Fragestellung, ob zukünftig der Trend zu einem
Endgerät konvergiert, über das alle Funktionen angeboten werden, oder ob sich der
Werkzeuggedanke durchsetzt, der für jede Aktion ein anderes Endgerät vorsieht, ist
nicht erkennbar. Zwischen diesen beiden Extremen existieren vielfältige Möglichkeiten,
wie sich der zukünftige Umgang mit Endgeräten entwickeln kann.
Mischformen, die beispielsweise ein Gerät für bestimmte Problemstellungen vorsehen,
stellen ein realistischeres Szenario da. Die grundlegende Problematik, dass eine
Portierung von Anwendungen auf unterschiedliche Endgeräte und somit auch auf
unterschiedliche Nutzerschnittstelle nicht handhabbar ist, bleibt davon aber unberührt .
Mit der Konzeption der »geräteübergreifenden Anwendungen« wird eine Möglichkeit
präsentiert basierend, auf existierenden Dienstleistungen Portierungen auf neue
Endgeräte durchzuführen.
Innerhalb des Informationslogistik-Projektes des Fraunhofer ISST wurde diese
Konzeption entwickelt und wird nun Bottom-up realisiert. So wurde ein auf WebTechnologien basierendes Framework zur Realisierung der Dialogablaufsteuerung
gewählte und eine Reihe von Dialog-Katalogen exemplarisch für Desktop-PCs, für
PDAs, für eine Kommandosprache für Terminals und für eine textuelle Simulation einer
Sprachsteuerung realisiert. Anhand dieser Entwicklungen soll zukünftig die Konzeption
»geräteübergreifender Anwendungen« präsentiert und evaluiert werden. Die Konzeption
einer geräteunabhängigen Dialogbeschreibungsmethode befindet sich im Aufbau und
soll mit Web-Services, als funktionalen Kern verbunden werden.
Literaturverzeichnis
[BFJ96] Bullinger, H. J.; Fähnrich, K. P.; Janssen, C.: Ein Beschreibungskonzept für
Dialogabläufe bei graphischen Benutzerschnittstellen. in Informatik Forschung und
Entwicklung 11(2), Springer, Heidelberg, 1996
[Ch01] Christensen, E.; Curbera, F.; Meredith, G.; Weerawarana,S.: Web Services Description
Language (WSDL) 1.1. W3C Note 15, 2001. www.w3.org/TR/wsdl.
[DL01] Deiters, W; Lienemann, C. (eds.): Report Informationslogistik - Informationen just-intime. Düsseldorf, Symposion Publishing, 2001.
[DLP03] Deiters, W.; Löffeler, T.; Pfennigschmidt, S.: The Information Logistics Approach
toward User Demand-Driven Information Supply. In: Proc. of the International
Conference on Cross-Media Service Delivery, May 30-31, Santorini, Greece, 2003.
[Gö94] Götze, R.: Dialogmodellierung für multimediale Benutzerschnittstellen. Fachbereich
Informatik, Oldenburg, Dissertation, 1994.
[Ha01] Haseloff, S.: Optimizing Information Supply by Means of Context: Models and
Architecture. In: (Bauknecht, K., Brauer, W. and Mck, Th. eds.): Proc. of Informatik
2001, Österreichische Computer-Gesellschaft, Wien, September 2001, pp. 206-213
[Hü90] Hübner, W.: Ein objektorientiertes Interaktionsmodell zur Spezifikation graphischer
Dialoge. Zentrum für Graphische Datenverarbeitung, Darmstadt, Dissertation, 1990.
[Kl95] Kleinrock, L.: Nomadic Computing (Keynote Address). in Int. Conf. on Mobile
Computing and Networking, Berkeley, CA, 1995.
[LY96] Lindholm, T.; Yellin, F.: The Java Virtual Machine Specification, Addison-Wesley,
1996.
[NB02] [Nylander, S.; Bylund, M.: Providing Device Independence to Mobile Services. 7th
ERCIM workshop on User Interfaces for All,Paris, 2002
[OH99] Ohto, H.; Hjelm, J.: CC/PP exchange protocol based on HTTP Extension Framework.
W3C Note, June, 1999
[Pf85] Pfaff (Hrsg.), G.E.: User Interface Management Systems. Springer-Verlag, Berlin. 1985.
[St96] Stary, C.: Interaktive Systeme - Software-Entwicklung und Software-Ergonomie,
Vieweg, Braunschweig/Wiesbaden 1996.
[We91] Weiser, M.: The Computer for the 21st Century. In: Scientific American 265(3), 1991,
pp. 94-104.
[Wh01] White, J.: An Introduction to Java 2 Micro Edition (J2ME); Java in Small Things. ICSE
2001, pp. 724-725
[WV02] Wohlfeil, S.; Voelz, D.: Unified Messaging in grossen Unternehmen: Konzepte,
Architekturen und betriebswirtschaftliche Aspekte. in Wirtschaftsinformatik 44/1,
Vieweg, Braunschweig/Wiesbaden, 2002, S. 9-18.
Implementierungskonzepte und Anwendungsentwicklung kommerzieller mobiler Datenbanksysteme
– Ein Vergleich –
Bela Mutschler, Günther Specht
Universität Ulm
Abteilung Datenbanken und Informationssysteme (DBIS)
89069 Ulm
[email protected]
[email protected]
Abstract. In diesem Papier werden vier mobile Datenbanksysteme – IBM DB2
Everyplace, Oracle 9i Lite, Sybase UltraLite und Tamino Mobile – bezüglich ihrer
Architekturen und Implementierungskonzepte sowie ihrer Unterstützung bei der
Entwicklung mobiler Anwendungen verglichen. Darüberhinausgehende Aspekte
der mobilen Datenbanksysteme Pointbase Micro und eXtremeDB werden ebenfalls
berücksichtigt. Schwerpunkte des Papiers sind, neben den unterschiedlichen Architekturkonzepten, die von den Datenbanksystemen bereitgestellten Verfahren zur
Replikation und Synchronisation.
1 Einleitung
Aus den Bedürfnissen einer effizienteren mobilen Datenverarbeitung heraus entstanden
in den letzten Jahren eine ganze Reihe kommerzieller mobiler Datenbanksysteme. Dabei
konkurrieren in ihrer Funktionalität sehr umfassende Produkte großer Hersteller wie
IBM oder Oracle mit eher schlankeren Produkten kleinerer Hersteller wie Pointbase oder
Sybase. Für die Auswahl und den Einsatz eines bestimmten Produkts ist es deshalb
wichtig, die den einzelnen Produkten zugrunde liegenden Konzepte und Implementierungsdetails zu kennen und einschätzen zu können. Gerade im performanzkritischen Bereich von Replikation und Synchronisation existieren dabei große Unterschiede. Im Folgenden werden die mobilen Datenbanksysteme IBM DB2 Everyplace, Oracle 9i Lite,
Sybase UltraLite und Tamino Mobile untersucht und verglichen. Schwerpunkte bilden
Replikation und Synchronisation, aber auch die Unterstützung bei der Entwicklung mobiler Datenbankanwendungen.
Das Papier gliedert sich wie folgt. Zunächst werden in Kapitel 2 Implementierungskonzepte erläutert und verglichen. Abschnitt 2.1 geht kurz auf die wichtigsten Aspekte der
jeweils realisierten Anwendungsarchitekturen ein. Während Abschnitt 2.2 Replikations-
verfahren untersucht und vergleicht, fokussiert Abschnitt 2.3 bereitgestellte Synchronisationsverfahren. Abschließend stellt Kapitel 3 die verfügbaren Tools und Programmierschnittstellen der vier Systeme zur Unterstützung der Nutzer bei der Entwicklung mobiler Datenbankanwendungen gegenüber.
2 Untersuchung und Vergleich von Implementierungskonzepten
2.1 Anwendungsarchitekturen
In diesem Abschnitt werden die von den untersuchten Datenbanksystemen realisierten
Anwendungsarchitekturen kurz beschrieben und eingeordnet. Dabei lassen sich zwei
Ansätze unterscheiden. Dem klassischen, um spezielle Middleware ergänzten Client/
Server-Ansatz, wie er bei IBM DB2 Everyplace, Oracle 9i Lite und Tamino Mobile realisiert wird (Abbildung 1), steht als Alternative die vollständige Integration der gewünschten Datenbankfunktionalität in eine Anwendung (Abbildung 2) gegenüber. Sybase
UltraLite, Pointbase Micro und eXtremeDB sind Vertreter dieser zweiten Kategorie.
Während im ersten Fall das DBMS der mobilen Datenbank von den auf sie zugreifenden
Anwendungen getrennt bleibt, wird beim letzteren ein in seiner Funktionalität angepasstes Datenbanksystem vollständig in eine Anwendung „einkompiliert“. Die Unabhängigkeit des Datenbanksystems von den Anwendungen wird in diesem Fall aufgegeben. Wir
geben im Folgenden einen kurzen Überblick über die einzelnen Systeme, bevor wie in
den Abschnitten 2.2 und 2.3 auf Konzepte der Replikation und Synchronisation genauer
eingehen.
DB2 Everyplace-basierte Anwendungen [3, 4, 6] bestehen aus dem mobilen Datenbanksystem DB2 Everyplace, einem Mid-Tier-Server mit zusätzlicher Synchronisationskomponente und einem DB-Server im Backend. Das mobile Kerndatenbanksystem benötigt
einen Speicherplatz von 180-220 kB. Für Transaktionen kann Atomarität und Dauerhaftigkeit (durch den Recovery Manager) garantiert werden [1]. Lokale Konsistenz auf dem
Client ist immer gegeben, da es sich bei der mobilen Datenbank um ein klassisches Einbenutzer-System handelt. Einzelne Tabellen können aus Sicherheitsgründen verschlüsselt werden. Die SyncServer-Komponente des Mid-Tier-Servers ist für die Steuerung eines Synchronisationsvorganges zuständig. Über diese Komponente können sowohl Daten als auch Anwendungen zwischen mobilen Clients und Datenquellen im Backend
synchronisiert werden. Der SyncClient ist die auf den mobilen Clients für die Steuerung
der bidirektionalen Synchronisation zuständige Komponente. DB2 Everyplace baut auf
einer klassischen Client/Server-Architektur auf, die um eine Middleware-Komponente
erweitert ist (3-Tier-Architecture).
Oracle 9i Lite [7] verwendet genau wie DB2 Everyplace eine 3-Tier-Architecture, gebildet aus mobilen Clients, einem zwischengeschalteten Mobile-Server und einem DBServer im Backend. Alle Architekturkomponenten werden zusammen als Mobile Server
Environment bezeichnet. Das mobile Kerndatenbanksystem Oracle Lite benötigt einen
Speicherplatz von 50 kB-1MB. Auf dem mobilen Client werden für Transaktionen die
ACID-Eigenschaften garantiert.
Transaktionen werden dabei explizit mit COMMIT oder ROLLBACK abgeschlossen. Der
Mobile-Server entspricht in seiner Aufgabenstellung weitestgehend dem SyncServer von
DB2 Everyplace. Einen drahtlosen Zugriff unterschiedlich leistungsstarker mobiler
Clients ermöglicht der Oracle 9i Application Server (Wireless Edition) – als Teil des
Mobile Servers. Im Backend können ausschließlich Oracle-Datenbanken eingesetzt werden, während DB2 Everyplace hier auch andere ODBC/JDBC-Datenbanken zulässt. Neben der Speicherung der Anwendungsdaten wird im Backend auch ein spezieller, für die
Replikation relevanter Datenbereich, das Mobile-Server Repository (MSR), verwaltet.
Um eine korrekte Replikation zwischen Backend und Clients zu ermöglichen, ist es bei
Oracle notwendig, sowohl die zu replizierenden Anwendungsdaten, als auch das MSR in
der gleichen Datenbank zu speichern.
Drahtlose
Netzwerkanbindung
Mobile Clients
Anwendung
DB
Festnetzverbindung
Middleware
(Synchronisations-Server)
DB-Server
Abbildung 1: 3-Tier-Architecture von DB2 Everyplace, Oracle 9i Lite und Tamino Mobile.
Auch Tamino Mobile [9] geht von einer erweiterten Client/Server-Architektur aus. Auf
den mobilen Clients kommt als mobiles Kerndatenbanksystem die Tamino Mobile Database (TMDB) zum Einsatz. Der Unterschied zu DB2 Everyplace, Oracle 9i Lite und Sybase UltraLite, die alle (objekt-)relationale Datenmodelle implementieren, liegt in der
Unterstützung von XML durch TMDB. So erlaubt TMDB das Suchen und Navigieren
innerhalb von XML-Daten mit den W3C-Abfragesprachen XQuery und XPath. Synchronisationsmechanismen erlauben den Abgleich von Daten zwischen mobilen Clients und
einem zentralen Tamino XML-Server. Ein spezielles SyncModule ist dabei für die Kontrolle des Synchronisationsvorganges mit einem entfernten Tamino XML-Server zuständig. Der TMDB ist ein Web-Server vorgeschaltet, der ein browser-basiertes Administrations- und Arbeitsinterface zur Verfügung stellt. Der Tamino XML-Server erlaubt die
Anbindung von weiteren, auch auf anderen Datenmodellen basierenden DB-Servern.
Mobile Anwendung
Drahtlose
Netzwerkanbindung
Festnetzverbindung
Integrierte
Datenbank
Optionale Middleware
DB-Server
Abbildung 2: 3-Tier-Architecture von Sybase UltraLite, Pointbase Micro und eXtremeDB.
Sybase UltraLite [8] ermöglicht es, eine Datenbank zusammen mit der zugehörigen Datenverwaltungslogik vollständig in eine Anwendung „einzukompilieren“. Anwendung,
Datenbank und Datenverwaltungslogik bilden zusammen eine UltraLite-Anwendung.
Dies hat jedoch die Aufgabe des Prinzips der Datenunabhängigkeit zur Folge. Eine in eine Anwendung einkompilierte Datenbank ist dadurch nur für die dedizierte HostAnwendung zugänglich.
Prinzipiell bietet UltraLite die Funktionalität und Zuverlässigkeit einer vollständigen
SQL-Datenbank. Die von einer Anwendung nicht benötigten Datenbank-Features müssen auf dem mobilen Client jedoch auch nicht verfügbar sein und werden entsprechend
auch nicht mit in eine UltraLite-Anwendung integriert. Dies spart Speicherplatz. Auf die
gleiche Weise gehen auch die mobilen Datenbanksysteme Pointbase Micro [10] und
eXtremeDB [11] vor. Auch sie integrieren die erforderliche Datenbankverwaltungsfunktionalität und damit das mobile DBMS direkt in die Anwendung.
In ihrer grundlegenden Anwendungsarchitektur unterscheiden sich die untersuchten Datenbanksysteme somit vor allem in Bezug auf die Architektur der mobilen Kerndatenbanksysteme. Während eine Seite eine saubere Trennung zwischen Anwendung und Datenbankmanagementsystem aufrechterhält, wird diese Unabhängigkeit auf der anderen
Seite aufgegeben, in dem ein in seiner Funktionalität angepasstes Datenbanksystem in
eine Anwendung einkompiliert wird.
2.2 Replikationsverfahren
Um das Arbeiten mit mobilen Clients im unverbundenen Zustand (Disconnected Mode)
zu unterstützen, ist es notwendig, während einer bestehenden Netzwerkverbindung
(Connected Mode) Daten eines DB-Servers auf das mobile Datenbanksystem des mobilen Clients zu replizieren. Die Datenbanksysteme DB2 Everyplace, Tamino Mobile und
Sybase UltraLite fassen Replikation lediglich als eine Teilphase bidirektionaler Synchronisation vom DB-Server zum mobilen Client auf. Oracle 9i Lite definiert dagegen
ein dediziertes Replikationsverfahren.
Beim von DB2 Everyplace realisierten Replikationsverfahren (als Teilphase der Synchronisation) werden Daten eines DB-Servers (Source Database) zunächst in eine Austauschrelation (Change Data Table) übertragen. Diese befindet sich physisch betrachtet
ebenfalls auf dem DB-Server. Von dort aus werden die Daten über eine Spiegeltabelle
(Mirror Table) einer Spiegeldatenbank (Mirror Database) auf dem Mid-Tier-Server auf
die mobilen Clients repliziert. Replikation wird dabei nicht nur als initiale Übertragung
von Daten in eine neue, noch leere mobile Datenbank, sondern auch als Propagierung
von auf dem DB-Server durchgeführten Änderungen an die mobilen Clients verstanden.
Auch bei Sybase UltraLite und Tamino Mobile kann Replikation (wie bei DB2 Everyplace) als Teilphase bidirektionaler Synchronisation aufgefasst werden. UltraLite nutzt
dazu die MobiLink-Technik, die ein sitzungsbasiertes, bidirektionales Synchronisationsverfahren implementiert. Replikation bei Tamino Mobile erfolgt über eine dedizierte DataLoader-Komponente und den Einsatz weiterer Synchronisationskomponenten.
Replikationsquelle bei Oracle 9i Lite muss eine Oracle-Datenbank sein. Mobile Clients,
die den Replikationssenken entsprechen, können keine Replikationsquelle sein. Die
Replikation erfolgt dabei unidirektional vom DB-Server zum Client. Das implementierte
Replikationsverfahren basiert auf der Verwendung von Snapshots. Replikationsserver
werden als Master-Sites, Clients als Snapshot-Sites bezeichnet. Die Replikation kann
verbindungsbasiert oder dateibasiert erfolgen. Die Kommunikation zwischen Replikationsserver und Clients erfolgt bei verbindungsbasierter Replikation synchron, bei dateibasierter Replikation asynchron.
Dateibasierte Replikation erfolgt asynchron unter Verwendung von Dateien, die in einem gemeinsam zugreifbaren Speicherbereich abgelegt sind. Der Dateitransfer kann auf
verschiedene Arten erfolgen. Eine Möglichkeit besteht darin, Replikationsdateien manuell (beispielsweise über FTP) zu verteilen. Alternativ kann auch ein automatischer Dateitransfer mit Hilfe einer dedizierten Middleware-Komponente erfolgen, dem Oracle Mobile Agent (OMA). Als dritte Möglichkeit, einen Dateitransfer zwischen Replikationsquelle und Replikationssenke zu implementieren, kann eine HTTP-Verbindung samt
zwischengeschaltetem Oracle Web Application Server verwendet werden. Dabei ist der
Applikationsserver für die automatische, asynchrone Weitergabe aller Replikate an die
Clients zuständig (Standardfall). Snapshots, die den Basiseinheiten des OracleReplikationsverfahrens entsprechen, sind materialisierte Sichten nicht-lokaler Datenbestände. Snapshots basieren auf Originaltabellen, die auch als Mastertabellen oder Mastersichten bezeichnet werden. Zur Replikation werden auf dem Mobile-Server so genannte Publikationen erzeugt. Publikationen bestehen aus einer Menge von Publikationsartikeln (die den Snapshots entsprechen), die über Subskriptionen mobilen Clients
zugeordnet sind. Publikationsartikel werden mittels SQL-Anweisungen definiert und zu
Publikationen zusammengefasst. Subskriptionen können parametrisiert sein.
DBS
DB2 Everyplace
Oracle 9i Lite
Tamino Mobile
Sybase UltraLite
Konzepte des implementierten Replikationsverfahrens
Teilphase des bidirektionalen Synchronisationsprozesses. Über die
Spiegeltabelle (Mirror Table) einer zwischengeschalteten Spiegeldatenbank (Mirror Database) werden Daten repliziert.
Replikation kann entweder verbindungsbasiert oder dateibasiert erfolgen. Basiseinheit der Replikation sind Snapshots (Publikationsartikel).
Teilphase des bidirektionalen Synchronisationsprozesses. Zur Replikation wird eine dedizierte DataLoader-Komponente eingesetzt.
Teilphase des bidirektionalen Synchronisationsprozesses. Zur Replikation wird das sitzungsbasierte MobiLink-Verfahren herangezogen.
Tabelle 1: Vergleich der implementierten Replikationsverfahren.
2.3 Synchronisationsverfahren
Ziel der Synchronisation ist die Aufrechterhaltung bzw. Wiederherstellung eines konsistenten Zustands aller Kopien eines Datenelementes innerhalb einer Replikationsumgebung. Ein Synchronisationsprozess besteht aus zwei verschiedenen Phasen [2]. Die
Reintegration überträgt auf dem mobilen Client geänderte Daten auf den DB-Server
(Phase 1). Bei der anschließenden (optionalen) Rückübertragung werden zwischenzeitlich auf dem Datenbestand des Servers vorgenommene Änderungen auf die Clients übertragen (Phase 2). Alle in diesem Papier untersuchten mobilen Datenbanksysteme bieten
Verfahren zur bidirektionalen Synchronisation an.
Der SyncServer ist die bei DB2 Everyplace für die Koordination der Synchronisation zuständige Komponente. Der SyncClient ist die korrespondierende Synchronisationskomponente auf den mobilen Clients. Sowohl SyncClient (= SyncEngine in Abbildung 3)
als auch SyncServer (= SyncML Synchronizer using WBXML in Abbildung 3) basieren
auf Synchronisations-Engines, die über optional ansteckbare Adapter die Anbindung unterschiedlichster Synchronisationsquellen ermöglichen.
Die Synchronisations-Engines kommunizieren untereinander über eine Java ServletEngine, die Bestandteil des SyncServers ist. Als Übertragungsformat der Synchronisations-Nachrichten wird Wireless Application Protocol (WAP) Binary encoded XML
(WBXML) verwendet. Dabei handelt es sich um eine kompakte XML-Repräsentation,
die die Übertragungsgröße der Synchronisations-Nachrichten stark reduziert. Verschiedene Kommunikationsadapter stellen unterschiedliche Möglichkeiten eines drahtlosen
Zugriffs (auf die Java Servlet-Engine) zur Verfügung. Für die Synchronisation werden
Nutzer zu Gruppen zusammengefasst. Ein zu synchronisierendes Datenelement wird in
einer Subscription gekapselt, die wieder zu Subscription Sets aggregiert werden. Nutzergruppen können solche Subscription Sets zugewiesen werden.
SyncServer
IBM SyncGUI
Mobile Devices Administration Center
DB2e Adapter
PIM Adapter
HTTP
Sync
Engine
File Adapter
Adapter API
WAP
Bluetooth
SyncEngine
API
Transport
API
Java Servlet
Mobiler Client
DB2 UDB Adapter
SyncML
Synchronizer
using WBXML
JDBC Adapter
Domino Adapter
Exchange Adapter
Adapter API
Abbildung 3: Synchronisationsarchitektur von DB2 Everyplace [6].
Die Synchronisation vom DB-Server hin zu mobilen Clients kann auch als Replikation
aufgefasst werden und wurde bereits in Abschnitt 2.2 erläutert. Die Synchronisation vom
mobilen Client hin zum DB-Server verläuft technisch gesehen prinzipiell gleich. Nach
der notwendigen Authentifizierung einer Synchronisationsanforderung (Synchronization
Request) eines mobilen Clients werden geänderte Daten über eine Zwischentabelle (Staging Table) in eine Spiegeltabelle (Mirror Table) einer Spiegeldatenbank (Mirror Database) übertragen. Neu ist, dass an dieser Stelle eventuell auftretende Synchronisationskonflikte durch den SyncServer gelöst werden müssen. Dazu greift er auf verschiedene
(interne) Konfliktlösungsstrategien zurück, ohne zu garantieren, dass auch tatsächlich alle Konflikte erkannt oder behoben werden. Ausgehend von der Spiegeltabelle werden
die Änderungen mit den ursprünglichen Quelldaten des DB-Servers abgeglichen. Synchronisationsvorgänge können manuell oder automatisch unter Verwendung der IBM
SyncEngine API angestoßen werden.
Oracle 9i Lite definiert Synchronisation als Abgleich von Snapshots. Ein Synchronisationsvorgang kann einerseits automatisch durch einen serverseitigen Datenbankprozess
initialisiert werden. Andererseits können für eine individuelle Initialisierung spezielle
Java Replication Classes bzw. Replication OLE Controls verwendet werden. Bei Snapshots unterscheidet Oracle 9i Lite zwischen einfachen und komplexen Snapshots.
Einfache Snapshots basieren auf einer einzelnen Tabelle. Zwischen Originaltabelle und
Snapshot muss eine bijektive Abbildung existieren (einfache Sichten). Nur so können
auf einem Snapshot durchgeführte Änderungen auf die Originaltabelle übertragen werden. Im Falle eines Fehlers muss das Wiederherstellen eines konsistenten Datenbankzustands ermöglicht werden. Dazu kann bei einfachen Snapshots für die Originaltabelle ein
Snapshot Transaction Log geführt werden.
Komplexe Snapshots entsprechen komplexen Sichten. Für sie ist in Oracle keine Reintegration auf dem Server möglich, daher darf auf sie auf dem mobilen Client nur lesend
zugegriffen werden. Komplexe Snapshots können sich nicht nur auf verschiedene Tabellen, sondern auch auf andere Snapshots beziehen. Einzige Voraussetzung: Datenstrukturen, auf die sie sich beziehen, müssen auf dem gleichen DB-Server verfügbar sein. Das
Snapshot-Reintegrationsproblem entspricht damit dem klassischen View-UpdateProblem. Snapshots werden mittels der Anweisung CREATE SNAPSHOT angelegt. Eine
optionale FOR UPDATE-Klausel legt fest, ob es sich um einen einfachen oder komplexen Snapshot handelt. Die oben angesprochene bijektive Abbildungsvorschrift einfacher
Snapshots wird durch eine Datenbankanfrage, die so genannte Snapshot-Anfrage, bestimmt. Abhängig vom Typ eines Snapshots kann zwischen verschiedenen Synchronisationsverfahren unterschieden werden. Im Zuge einer vollständigen Aktualisierung (Full
Refresh) werden alle Tupel, die im Ergebnis einer Snapshot-Anfrage auftauchen, vom
Replikationsserver in die Snapshot-Tabelle des mobilen Clients übertragen. Vor der Übertragung werden alle existierenden Tupel der Snapshot-Tabelle gelöscht, so dass immer in eine völlig leere Tabelle geschrieben wird. Bei der schnellen Aktualisierung (Fast
Refresh) werden die in den Snapshot-Logs protokollierten Änderungen an den Originaltabellen für eine effizientere Aktualisierung der Snapshots verwendet. So werden beim
Fast Refresh ausschließlich die protokollierten Änderungen übertragen. Der Begriff der
schnellen Aktualisierung kann zu Missverständnissen führen. Zwar wird der Eindruck
erweckt, die schnelle Aktualisierung sei die in jedem Fall die effizientere Synchronisationsmethode. Dies ist jedoch nicht immer richtig. Bei kleinen Tabellen, die ein hohes
UPDATE-Aufkommen vorweisen, ergibt sich eine umgekehrte Situation. In diesem Fall
kann die Übertragung aller protokollierten Änderungen wesentlich aufwendiger sein, als
eine alternative vollständige Aktualisierung. Force Refresh implementiert eine Mischung
der beiden zuerst genannten Techniken. Zunächst wird eine schnelle Aktualisierung versucht. Scheitert diese, beispielsweise aufgrund fehlerhafter Snapshot-Logs, wird eine
vollständige Aktualisierung durchgeführt. Nach der Initialisierung eines Synchronisationsvorgangs wird eine so genannte Refresh Group erstellt. Diese fasst alle Datenbanktabellen respektive Snapshot-Tabellen zusammen, die synchronisiert werden sollen. Durch
Methoden der Java Replication Classes und der Replication OLE Control können der
Refresh-Gruppe Snapshots hinzugefügt oder entfernt werden. Nach der Definition einer
Refresh-Gruppe beginnt der eigentliche Synchronisationsvorgang. Dieser gliedert sich in
zwei Phasen: Im ersten Schritt werden alle Änderungen einfacher Snapshots seit dem
letzten Synchronisationsvorgang an den DB-Server übertragen (Æ Reintegration). Die
Transaktionen der mobilen Clients werden auf der Server-Datenbasis nachvollzogen. Im
zweiten Schritt werden an den Originaltabellen durchgeführten Änderungen auf die mobilen Clients übertragen (Æ Rückübertragung).
Das mobile Datenbanksystem Sybase UltraLite implementiert mit MobiLink ein sitzungsbasiertes Synchronisationsverfahren, dessen Ablauf durch den MobiLink-Server
koordiniert wird. Der MobiLink-Server kontrolliert für alle Clients sowohl die Ausführung der Synchronisation, als auch die zur Synchronisation benötigten Verwaltungsdaten
(zur Ablaufsteuerung werden spezielle SQL- und Java-Skripte genutzt).
Teilaufgaben sind die Koordination der Datenübertragung, die Automatisierung und
Überwachung von Synchronisationssitzungen, die Auswahl von Kommunikationsprotokollen und die Erstellung von Reports, die dem DB-Administrator helfen können, Fehler
aufzuspüren und zu beseitigen. Der MobiLink-Synchronisationsserver garantiert Transaktionsintegrität, d.h. eine Datenbank wird entweder ganz synchronisiert oder gar nicht.
Die Synchronisation erfolgt wieder in zwei Phasen. Jeder mobile Client muss protokollierte Änderungsoperationen adäquat aufbereiten, um sie anschließend dem MobiLinkServer zu übermitteln. Genauso muss ein mobiler Client in der Lage sein, Daten in seine
lokale Datenbank integrieren zu können, die vom MobiLink-Server (respektive dem DBServer) übermittelt wurden.
Tamino Mobile fasst alle Synchronisationskomponenten zum MobileLogic-Framework
zusammen. Für die Durchführung der Synchronisation ist der Tamino Mobile Smart
Client (TMSC) zuständig. Der TMSC besteht aus dem Smart Client (SC) und dem Tamino Mobile Synchronization Server (TMSS). Der SC ist auf der mobilen Einheit installiert und nutzt ein spezielles SyncModule, das für die Steuerung eines Synchronisationsvorgangs zuständig ist. Die notwendigen Synchronisationsvorgänge selbst werden vom
Entwickler noch während der Implementierung einer mobilen Anwendung definiert. Auf
dem TMSS werden Arbeitsvorgangsvorlagen (Workflows) definiert, die genau festlegen,
wie Daten, die von einer mobilen Einheit geschickt wurden, bearbeitet werden. Andere
Workflows definieren Regeln zum Generieren neuer Daten, die an bestimmte mobile
Einheiten geschickt werden müssen.
DBS
DB2 Everyplace
Oracle 9i Lite
Tamino Mobile
Sybase UltraLite
Konzepte des implementierten Synchronisationsverfahrens
Synchronisation erfolgt über den Umweg einer Spiegeltabelle (Mirror
Table) des Mid-Tier-Servers. Auftretende Synchronisationskonflikte
werden durch den SyncServer erkannt und aufgelöst.
Synchronisation entspricht einer Aktualisierung von Snapshots. Dazu
werden verschiedene Verfahren (Full Refresh, Fast Refresh, Force
Refresh) angeboten. Man unterscheidet zwischen einfachen (änderbaren) und komplexen (nicht änderbaren) Snapshots.
Synchronisation erfolgt unter Verwendung spezieller Synchronisationskomponenten (Synchronization Server, SyncModule).
Unterstützung eines bidirektionalen, sitzungsbasierten Synchronisationsverfahren, genannt MobiLink.
Tabelle 2: Vergleich der implementierten Synchronisationsverfahren.
3 Anwendungsentwicklung und Ausblick
Alle vier mobilen Datenbanksysteme realisieren Infrastrukturen für den Einsatz datenbankgestützter mobiler Anwendungen. Genauso wie sich die Systeme in den Konzepten
ihrer Implementierung teilweise erheblich unterscheiden, hat eine praktische Evaluierung aller Systeme auch Unterschiede in Bezug auf die Unterstützung der Nutzer bei der
Erstellung mobiler Datenbankanwendungen gezeigt.
3.1 Anwendungsentwicklung
Mit DB2 Everyplace kann IBM wohl die vollständigste und am flexibelsten einsetzbare
Lösung vorweisen. Besonders gelungen ist in diesem Zusammenhang der Mobile Application Builder, einem Entwicklungstool, mit dem schnell und einfach mobile Datenbankanwendungen erstellt werden können. Als Mitglied der DB2-Produktfamilie ist DB2
Everyplace weitestgehend auf die Zusammenarbeit mit anderen IBM-Komponenten abgestimmt, trotzdem können beispielsweise im Backend auch Datenbanksysteme anderer
Hersteller als Replikationsquellen herangezogen werden. DB2 Everyplace unterstützt die
dynamische Ausführung von SQL-Statements. Auf Datenbanktabellen kann über die
Standard-APIs ODBC/CLI und JDBC zugegriffen werden.
Auch Oracle bietet mit Oracle 9i Lite genau wie IBM eine ausgereifte Lösung für die
Entwicklung mobiler Datenbankanwendungen an. Alle grundlegenden Anforderungen
an mobile Datenbanksysteme werden erfüllt. Oracle Lite basiert auf einem ObjektKernel, auf den eine zusätzliche SQL-Schicht aufgesetzt ist. Auf der SQL-Schicht setzen
die klassischen Anwendungsschnittstellen für den Zugriff auf Datenbanken, ODBC und
JDBC, auf. Um die Funktionen des Kernels direkt ansprechen zu können, wird ein
proprietäres Call Level Interface bereitgestellt, welches ein Object Kernel Application
Interface (OKAPI) implementiert, das jedoch ausschließlich von C/C++-Anwendungen
genutzt werden kann. Eine integrierte Entwicklungsumgebung, vergleichbar mit dem
MAB von DB2 Everyplace, kann Oracle selbst jedoch nicht vorweisen. Diverse „normale“ Entwicklungsumgebungen, wie beispielsweise der JDeveloper von Oracle, unterstützen jedoch die Entwicklung mobiler Anwendungen.
Mit Tamino Mobile (TMS) wird von der Software AG ein leistungsstarker Framework
für die Entwicklung XML- und Java-basierter mobiler Anwendungen bereitgestellt. Mit
dem Tamino Mobile Studio steht wie bei DB2 Everyplace eine Entwicklungsumgebung
für die schnelle Erstellung von Tamino Mobile-Anwendungen bereit. Die Unterstützung
extrem vieler (DeFacto-)Standards, wie Java, J2EE, XHTML, XML, XSL, VoiceXML
oder WAP fördert einerseits die Definition und Verfügbarkeit eines offenen Frameworks, andererseits führt dies aber zu einer rasant zunehmenden Komplexität bei der
Konzeption und Realisierung mobiler Anwendungen.
Sybase UltraLite weist ein, im Vergleich zu anderen Anbietern, komplementäres Konzept auf, das durch die vollständige Integration bzw. „Einkompilierung“ einer Datenbank
samt Datenbanklogik in eine UltraLite-Anwendung gekennzeichnet ist. Dadurch kann
der benötigte Speicherplatz des Datenbanksystems reduziert werden. Dies erlaubt die
Konzipierung und Realisierung von mobilen Anwendungen nicht nur auf PDAs oder
Notebooks, sondern auch auf extrem leistungsschwachen mobilen Einheiten, wie Handys oder einfachen Organizern. Im Prozess der Anwendungsentwicklung (es stehen die
Programmiersprachen C/C++ und Java zur Verfügung) muss die in ihrer Funktionalität
angepasste Datenbank (Anwendungsdatenbank) in eine UltraLite-Anwendung integriert
werden. Dabei wird auf eine Referenzdatenbank zurückgegriffen, die physisch auf einer
Adaptive Server Anywhere-Installation eingerichtet sein muss.
Adaptive Server Anywhere ist ein von Sybase angebotenes HochleistungsDatenbanksystem. Die Referenzdatenbank wird ausschließlich während der Entwicklungsphase benötigt. Auf ähnliche Weise können auch Pointbase Micro und eXtremeDB
eingeordnet werden (auch wenn bei diesen beiden Produkten die tatsächliche Anwendungsentwicklung anders erfolgt).
3.2 Ausblick
Aktuelle Tendenzen im Bereich mobiler Datenbanken zeigen, dass die prinzipiellen
Problemstellungen weitestgehend gelöst sind, während technische Details durchaus noch
Probleme bereiten. Fortschritte sind vor allem in der Unterstützung der Anwendungsentwicklung zu erwarten. Der Mobile Application Builder von IBM zeigt diesbezüglich die
Richtung auf. Zusätzliche Impulse sind auch durch die Zielsetzung weitestgehender Automatisierung aller Aspekte von Replikation und Synchronisation zu erwarten. So hat
IBM das Automatic Computing – und das nicht nur im Datenbankbereich – zu einem
neuen Entwicklungsschwerpunkt erhoben.
Schwierigkeiten – insbesondere bei der Konzeption und Realisierung mobiler Datenbankanwendungen – macht die große Vielfalt existierender Mobilplattformen (Palm OS,
Windows Mobile 2003, Symbian OS, etc.), die die Entwicklung universell einsetzbarer
mobiler Anwendungen stark einschränkt. Die Einführung des Mobile Information Device
Profile 2 (MIDP2) stellt aber einen neuen Versuch der Etablierung einer plattformunabhängigen Mobilplattform dar. Alle großen Anbieter von Datenbanktechnologie (IBM,
Oracle, Sybase, Software AG) sind im Segment mobiler Datenbanken vertreten. Nischenanbieter wie Pointbase Micro oder eXtremeDB werden sich dagegen nur im Bereich sehr spezieller Anwendungsdomänen etablieren können.
Literaturverzeichnis
[1]
[2]
[3]
[4]
[5]
[6]
[7]
[8]
[9]
[10]
[11]
T.Fanghänel, J.S. Karlsson, C.Leung. DB2 Everyplace Database Release 8.1: Architecture and Key Features. Datenbank Spektrum - Zeitschrift für Datenbanktechnologie. Heft
5/2003. Mai 2003. pp 9-15.
C.Gollmick. Nutzerdefinierte Replikation zur Realisierung neuer mobiler Datenbankanwendungen. GI-Reihe Lecture Notes in Informatics. Band P-26. pp 453-462. 2003.
R.Greenwald, R.Stackowiak, J. Stern. Database Management. White Paper. 2002.
N.Mielke. DB2 Everyplace: An Overview. IBM Research, Silicon Valley Lab. 2001.
A.Noether. Extending Enterprise Data to Mobile Devices. IBM White Paper. 2002.
DB2 Everyplace Dokumentation. Juni 2003.
Oracle 9i Lite Dokumentation. Juni 2003.
SQL Anywhere Studio 8 Dokumentation. Juni 2003.
Tamino Mobile Dokumentation. Juni 2003.
Pointbase Micro Dokumentation. Juni 2003.
eXtremeDB Dokumentation. Juni 2003.
Implementierung eines medizinischen
Kommunikationsstandards auf einem PDA unter Linux
Dipl.-Inf. Christian Weigand
Bildverarbeitung und Medizintechnik/BMT
Fraunhofer Institut für Integrierte Schaltungen IIS
Am Wolfsmantel 33
91058 Erlangen
[email protected]
Abstract: Die zunehmende Vernetzung medizinischer Geräte legt nahe, die
zugrunde liegenden Kommunikationsstrukturen unter Verwendung offener
Architekturen und standardisierter Protokolle zu implementieren. Dies trifft
gleichfalls auf den Bereich der mobilen Kommunikation, also der Kommunikation
zwischen mobilen Kleinstgeräten, zu. Die Abteilung Bildverarbeitung und
Medizintechnik des Fraunhofer Instituts für integrierte Schaltungen beschäftigt
sich sowohl mit der drahtlosen Kommunikation in der Medizin, als auch mit der
Umsetzung von Standards in der medizinischen Kommunikation. Aus der
Zusammenführung dieser beiden Bereiche ist die hier vorgestellte Applikation, die
Implementierung des Standards VITAL auf einem Linux PDA, entstanden.
1
Kommunikationsstandards
Aktuelle Standards wie CEN ENV 13734/13735 „Vital Signs Information
Representation“, kurz VITAL [VITAL], oder der vom CIC1 Konsortium entwickelte
Standard POCT1-A [POCT1] für Point-of-Care Geräte2, ermöglichen Interoperabilität
zwischen Geräten verschiedener Hersteller. Dies bedeutet, dass durch die Verwendung
von Standards der erhebliche Mehraufwand bei der Integration und Anpassung
unterschiedlicher Geräte in heterogene Netze eingespart werden kann. Diese Standards
definieren ein allgemeines Daten- und Kommunikationsmodell für die Codierung und
die geräteunabhängige Übertragung von Vitalparametern.
1
2
CIC - Connectivity Industry Consortium.
Bei Point-of-Care Geräten handelt es sich um Laborgeräte, die direkt am Krankenbett zum Einsatz kommen.
POCT1-A wurde vom Connectivity Industry Consortium ins Leben gerufen und ist unter
dem Aspekt Laborgeräte zu vernetzen entstanden. Mittlerweile ist dieser Industriestandard aber auf dem Weg, die internationalen Standardisierungsgremien zu passieren,
und damit in den Status eines offiziellen Standards gehoben zu werden. Wie in
Abbildung 1 zu sehen ist, definiert POCT1-A zwei verschiedene Interfaces, um
Laborgeräte mit einem Krankenhausinformationssystem (KIS) zu verbinden. Dabei hilft
die Definition von einheitlichen Nachrichtentypen in XML3 auf Seiten des „Device
Interface“ jedes beliebige POCT1-A-fähige Gerät in die Kommunikationskette
einzubringen.
Abbildung 1: POCT1 Kommunikationskette
Das „Observation Reporting Interface“ dagegen definiert Nachrichten in HL74-Syntax
[HL7], um die Verbindung zu einem Laborinformationssystem (LIS) herzustellen. Somit
ist eine durchgängige Anbindung der Point-of-Care-Geräte gewährleistet.
Im Gegensatz zu POCT1-A stand bei der Entwicklung von VITAL die Echtzeitfähigkeit
im Vordergrund. Daher eignet sich VITAL besonders um beispielsweise EKG- oder
EEG-Daten zu übertragen. Aber auch kombinierte Geräte wie Patientenmonitore mit
unterschiedlichen Messgrößen können mittels VITAL einfach modelliert werden. Die
Abbildung 2 zeigt beispielhaft eine solche Modellierung eines kombinierten Temperaturund Blutdruckmessgeräts.
3
4
XML – extensible markup language
HL 7 – Health Level Seven; Kommunikationsstandard für Krankenhausinformationssysteme (KIS)
Abbildung 2: Kombiniertes VITAL-Gerät
Speziell hierfür ist im VITAL-Standard ein vollständig objektorientiertes Modell für die
Datenhaltung und die Kommunikation entstanden. Die Abbildung 2 zeigt diese
verschiedenen Objekte, wie das „Medical Device System“ (MDS), „Virtual Medical
Device“ (VMD) und Numeric, die fast beliebig kombinierbar sind. Für jeden
numerischen Wert, wie zum Beispiel die Temperatur, wird ein Numeric-Object angelegt,
das neben dem Messwert auch Informationen über die Einheit (°C), den Messzeitpunkt,
den Status, etc bereitstellt. Über je ein „Virtual Medical Device“ (VMD) werden die
beiden einzelnen Messgeräte zu einem „Medical Device System“ (MDS) zusammengeführt. Zur Verwaltung technischer Fehler oder patienten-bezogener Alarme können
hier auch noch andere Objekte, wie beispielsweise der AlertMonitor, an das MDS
angegliedert werden. Dieses Objektmodell stellt somit eine Art objektorientierte
Datenbank des/der medizinischen Sensor/en dar.
Das besondere daran ist, dass der Empfänger der Datenübertragung das Objektmodell
(MDIB5) des Senders, also des medizinischen Gerätes oder Sensors, vollständig
nachbildet, wie das ISO/OSI-Schichtmodell in Abbildung 3 zeigt. Dadurch wird
sichergestellt, dass der Empfänger zu jederzeit über den Zustand und die Konfiguration
seines Gegenübers Bescheid weiß. Eine Verabredung und Aushandlung der Modalitäten
der Kommunikation kann somit voll automatisch geschehen. Dies ist einer der
besonderen Vorzüge von VITAL, die sogenannte „Plug and Play“-Fähigkeit. Der
Abbildung 3 ist ebenfalls zu entnehmen, dass sich VITAL auf die Applikationsschicht
des ISO/OSI-Modells beschränkt. Damit ist eine Implementierung von VITAL
weitgehend unabhängig von den darunter liegenden Schichten. Es bleibt also dem
Anwender überlassen wie er die Schichten 1 - 6 umsetzen möchte.
Abbildung 3 VITAL Schichtenmodell
5
MDIB – Medical Data Information Base
Ein weiterer Bestandteil der VITAL-Spezifikation ist eine Nomenklatur, die mehrere
tausend Begriffe aus dem medizinischen Umfeld umfasst. Jeder Begriff wird dabei durch
einen standardisierten 16 Bit Code gekennzeichnet – ähnlich dem aus der Laborwelt
gängigen LOINC6 [LOINC]. Die geringe Wortbreite von 16 Bit ermöglicht einerseits die
Nachrichtenlängen bei der Datenübertragung zu minimieren, erfordert aber andererseits
den Codierungsraum in mehrere kontextabhängige Räume zu unterteilen. Folglich
können dem selben Code, je nachdem in welchem Bezug er steht, vollkommen
verschiedene Bedeutungen zukommen. Da davon ausgegangen wird, dass die
Nomenklatur noch nicht komplett ist und zudem Neuentwicklungen zu erwarten sind,
enthält jeder Codierungsraum einen ungenutzten Bereich von 4096 Werten. Dieser
Bereich kann zwischenzeitlich für eigene Codes genutzt werden solange diese noch nicht
in den Standard aufgenommen sind.
2
Mobiles Disease Management
Für Anwendungen wie beispielsweise »Mobil Disease Management« ist es notwendig
ein solches Kommunikationsprotokoll sowohl auf dem embedded System der
medizinischen Sensorik, als auch den Empfängern dieser Daten zu implementieren, um
eine unabhängige Interoperabilität zwischen allen an der Kommunikation beteiligten
Geräte zu erreichen.
Da heutige medizinische Geräte noch keine Standards unterstützen, muss zur
Demonstration der Vorteile einer solchen Umsetzung der Umweg über ein zusätzliches
embedded System gegangen werden. Ein solches sogenanntes Gateway liest die
medizinischen Messwerte proprietär ein und stellt sich nach außen als ein standardkonformes Gerät dar. Bereits in der Vergangenheit wurden solche Gateways bei uns
entwickelt. Da diese Entwicklung MMU7-loser embedded Systeme auf einem embedded
Linux basieren, haben wir für eine leistungsstärkere Variante, die sowohl eine grafische
Ausgabe als auch eine rudimentäre Signalverarbeitung beherrschen soll, einen
handelsüblichen PDA8 [Ro02] gewählt. Dieses Gerät bietet nicht nur alle Vorzüge eines
PDAs, sondern es beherbergt bereits von Haus aus eine embedded Linux Variante als
Betriebssystem. Dies ermöglicht uns gewisse Synergien bei der Applikationsentwicklung auf allen embedded Systemen zu nutzen.
6
LOINC - Logical Observation Identifiers Names and Codes
MMU – memory management unit
8
PDA – personal digital assistant
7
3
VITAL Implementierung
Ein Beispiel einer solchen Implementierung stellt die Koppelung eines Langzeit EKGs
mit einem Handheld-Computer (PDA) dar. Das EKG ist mit dem PDA über eine serielle
Leitung verbunden. Über diese Kabelverbindung werden die EKG-Daten über das
herstellerspezifische Protokoll ausgelesen. Die gesammelten EKG-Daten werden auf
dem PDA visualisiert. Hier hat man die Möglichkeit eine erste Vorauswertung zu
treffen, und mit einer geeigneten Algorithmik Unregelmäßigkeiten, zum Beispiel einen
bevorstehenden Herzinfarkt, festzustellen oder den Puls des Patienten aus dem EKGSignal zu errechnen. In den compact-flash Einschub des PDAs kann entweder eine
Bluetooth [Ro02] Karte oder eine WLAN [Ro02] Karte eingesteckt werden. Mit deren
Hilfe können die EKG-Messungen drahtlos an einen PC oder einen anderen PDA zur
Visualisierung, Auswertung und Archivierung übertragen werden. Dabei ist die direkte
Übernahme der Daten in ein Krankenhaus Informationssystem (KIS) ebenfalls denkbar.
Damit steht eine durchgängige Kommunikationskette zur Verfügung, mit deren Hilfe die
Messergebnisse medizinischer Sensorik direkt in die elektronische Patientenakte des
Betroffenen abgelegt werden können.
Abbildung 4: Sharp Zaurus SL-5500G
Der hier eingesetzte PDA ist ein Linux PDA der Firma Sharp (Abbildung 4). Hierfür
wurde eigens eine C++/Qt embedded9-Applikation geschrieben. Die Applikation selbst
gliedert sich in ein Framework mit Plug-In-Mechanismus und eine VITAL-Bibliothek.
In der Bibliothek sind alle VITAL-spezifischen Klassen gekapselt. Über diese Bibliothek
ist das Framework in der Lage eine VITAL-konforme Kommunikation aufzubauen.
9
Qt embedded– Programmierframework das sich von dem sowohl unter Linux als auch Windows einsetzbaren
Qt Framework ableitet.
Über die vier verschiedene Plug-In-Arten (MEDICAL, COM, SIGNAL, GUI), die
Abbildung 5 zeigt, kann das Framework je nach Anforderung erweitert werden. Mit
einem Medical-Plug-In kann nicht nur ein EKG oder Blutdruckmessgerät realisiert
werden, sondern jedes medizinische Gerät, das an den PDA angeschlossen werden kann.
Dazu muss lediglich ein entsprechendes Medical-Plug-In geschrieben werden, das die
medizinischen Daten über das proprietäre Protokoll des Geräteherstellers ausliest.
Abbildung 5 VITAL Framework
Für die Kommunikationsschnittstelle existiert der Plug-In-Mechanismus COM. Dieser
erlaubt es mit dem entsprechenden Plug-In sowohl eine Bluetooth als auch eine WLAN
Karte zur Übermittlung der Daten einzusetzen. Aber auch für andere Schnittstellen, wie
zum Beispiel die Infrarotschnittstelle, kann ein Plug-In eingesetzt werden. Selbst die
Oberfläche zur grafischen Darstellung besteht aus Plug-In-Modulen (GUI-Plug-In), um
die Anzeige für jede medizinische Anwendung flexibel zu halten. Die vierte Plug-InSchnittstelle (SIGNAL) erlaubt es zur Signalverarbeitung verschiedene Module zu laden.
Diese können dann auf den passenden medizinischen Daten im Rahmen der
Leistungsfähigkeit des PDAs eine gewisse Vorklassifikation betreiben. So ist es möglich
aus dem EKG den Puls zu errechnen oder Anzeichen für einen bevorstehenden
Herzinfarkt zu erkennen.
Da die grafische Oberfläche des Linux PDAs auf dem Qtopia-Desktop der Firma
Trolltech beruht, wurde auch die Visualisierung des EKG-Signals unter zu Hilfenahme
der embedded Qt-Bibliothek [Qt01] implementiert [He01], die schon im Qtopia-Desktop
Verwendung gefunden hat. Dies erlaubt es die Applikation leicht auf die PC-Seite der
Kommunikationsstrecke zu portieren. Da QT für Linux Systeme ebenso existiert wie für
Windows Systeme kann hier sowohl Linux als auch Windows zum Einsatz kommen.
Damit konnte eine komplette Plattformunabhängigkeit vom embedded Linux des PDAs
über das PC Linux bis zum Windows PC erreicht werden.
Die Abbildung 6 zeigt einen Screenshot dieser Applikation, die mit geladenem EKGPlug-In auf dem PDA läuft.
Abbildung 6: EKG Applikation auf dem Zaurus
Diese Entwicklung ermöglicht es einen Patienten beispielsweise zu Hause, in seiner
Freizeit oder bei beruflichen Aktivitäten problemlos aus der Ferne zu überwachen. Dabei
kann ein EKG aufgenommen werden und über eine Funkstrecke, die optimale
Bewegungsfreiheit garantiert, an einen PC mit Internetanschluss übertragen werden. Von
dort aus kann eine standardisierte Übertragung der Daten zum Arzt oder Krankenhaus
für eine kontinuierliche oder stichprobenhafte Überwachung erfolgen.
Aber auch im Krankenhaus ist ein schnelles Monitoring von jedem Ort aus denkbar. Mit
Hilfe eines zweiten PDAs und einem in verschiedenen Krankenhäusern bereits
installierten WLAN Netzwerk kann der betreuenden Arzt sich die Daten seiner Patienten
unabhängig von seinem Aufenthaltsort auf den Bildschirm rufen und begutachten.
4
Ergebnisse
Obwohl es sich bei VITAL um einen Kommunikationsstandard handelt, der nicht
speziell auf embedded Geräte zugeschnitten, sondern bewusst umfassend und global
angelegt wurde, ist es möglich ohne übermäßige Anstrengung und Ressourcenverschwendung diesen Standard auf Kleinstgeräten, die dem heutigen Stand der Technik
entsprechen, umzusetzen. Durch die Skalierbarkeit des Standards auf die jeweiligen
Bedürfnisse der medizinischen Anwendung ist eine Portierung auf wesentlich
leistungsärmere embedded Systeme machbar. Dies wird durch das hier verwendete
Linux weiter unterstützt, da dieses ebenfalls leicht auf kleinere Systeme skalierbar ist
und somit sogar eine Portierung der gesamten Applikation auf ein anderes System
erheblich vereinfacht. Je nach Größe des embedded Systems und des Vorhandensein
eines Displays kann natürlich auf eine Visualisierung des EKG-Signals verzichtet
werden. Die Entwicklung einer durch Plug-Ins beliebig erweiterbaren Applikation macht
den hier verwendeten PDA zu einem universell einsetzbaren Adapter für alle
medizinischen Messgeräte und Anwendungen. Unterstützt durch die Verwendung der Qt
Bibliothek ist auch eine Portierung der Software auf andere Geräte (PDAs) und
Betriebssysteme leicht zu bewerkstelligen.
Bereits jetzt existieren für die verschiedenen Anwendungsgebiete in der Medizin
verschiedene Kommunikationsstandards. Diese werden sich in der Zukunft nach und
nach direkt in den verschiedenen medizinischen Geräten wiederfinden. Dank der immer
größeren Verbreitung der drahtlosen Kommunikation ist eine lückenlose Dokumentation
und Überwachung von beispielsweise Risikopatienten nicht nur in den Kliniken sondern
auch zu Hause zu erreichen. Deshalb gehen verschiedene Gerätehersteller bereits jetzt
dazu über ihre Geräte auch mit Funkschnittstellen auszustatten.
5
Literaturverzeichnis
[VITAL] VITAL ENV 13734/13735 “Vital Signs Information Representation” CEN Standard
Dokument.
[POCT1] POCT1-A Connectivity Industry Consortium (CIC) Standard, http://www.poccic.org.
[LOINC] Logical Observation Identifiers Names and Codes, http://www.loinc.org.
[HL7] Health Level Seven, http://www.hl7.de.
[He01] Herold, H.: Das Qt-Buch: portable GUI-Programmierung unter Linux/Unix/Windows,
SuSE-Press, Nürnberg, 2001.
[Qt01] Qt/Embedded: The C++ Embedded GUI Application Developer’s Toolkit, Trolltech AS,
Oslo, 2001.
[Ro02] Roth, J.: Mobile Computing: Grundlagen, Technik, Konzepte, dpunkt.verlag,
Heidelberg, 2002.
Teilnehmerliste (Stand der Anmeldungen 15.10.2003)
Felix Alcala
Otto-von-Guericke-Universität Magdeburg
[email protected]
Karsten Baumgarten
Friedrich-Schiller-Universität Jena
Institut für Informatik
D-07740 Jena
[email protected]
Jöran Beel
Otto-von-Guericke-Universität Magdeburg
[email protected]
Gert Brettlecker
Private Universität für Medizinische Informatik und Technik Tirol (UMIT)
Institut für Informationssysteme
A-6020 Innsbruck, Österreich
[email protected]
Prof. Dr. Martin Breunig
Forschungszentrum für Geoinformatik und Fernerkundung
Hochschule Vechta
Postfach 1553
D-49364 Vechta
[email protected]
Michael Cammert
Philipps-Universität Marburg
Fachbereich Mathematik und Informatik
Hans Meerwein Straße
D-35032 Marburg
[email protected]
Peter Dornbusch
CDTM Center for Digital Technology & Management
Arcisstr. 21
D-80290 München
[email protected]
Arne Frenkel
Otto-von-Guericke-Universität Magdeburg
[email protected]
Christoph Gollmick
Friedrich-Schiller-Universität Jena
Institut für Informatik
D-07740 Jena
[email protected]
Dr. Torsten Grabs
ETH Zürich
Institut für Informationssysteme
ETH Zentrum
CH-8092 Zürich
[email protected]
Klaus Haller
ETH Zürich
Institut für Informationssysteme
ETH Zentrum, IFW C47.2
CH-8092 Zürich
[email protected]
Günter Hector
MAQSIMA GmbH
Am TÜV 1
D-66280 Sulzbach
[email protected]
Christoph Heinz
Philipps-Universität Marburg
Fachbereich Mathematik und Informatik
Hans Meerwein Straße
D-35032 Marburg
[email protected]
Hagen Höpfner
Otto-von-Guericke-Universität Magdeburg
Institut für Technische und Betriebliche Informationsysteme
Universitätsplatz 2
D-39106 Magdeburg
[email protected]
Michael Klein
Universität Karlsruhe
Fakultät für Informatik
Institut für Programmstrukturen und Datenorganisation
Postfach 6980
D-76128 Karlsruhe
[email protected]
Dr. Birgitta König-Ries
Universität Karlsruhe
Fakultät für Informatik
Institut für Programmstrukturen und Datenorganisation
Postfach 6980
D-76128 Karlsruhe
[email protected]
Thomas Königsmann
Fraunhofer Institut für Software- und Systemtechnik
Emil-Figge-Str. 91
D-44227 Dortmund
[email protected]
Prof. Dr. Jung Sun Lie
FH Braunschweig/Wolfenbüttel
Salzdahlumer Str. 46/48
D-38302 Wolfenbüttel
[email protected]
Johannes Lülf
Otto-von-Guericke-Universität Magdeburg
[email protected]
Bela Mutschler
Universität Ulm
Abt. Datenbanken und Informationssysteme
Oberer Eselsberg
D-89069 Ulm
[email protected]
Prof. Dr. Hans-Jörg Schek
ETH Zürich
Institut für Informationssysteme
ETH Zentrum
CH-8092 Zürich
[email protected]
Prof. Dr. Heiko Schuldt
Private Universität für Medizinische Informatik und Technik Tirol (UMIT)
Abteilung Information and Software Engineering
A-6020 Innsbruck, Österreich
[email protected]
Prof. Dr. Günther Specht
Universität Ulm
Abt. Datenbanken und Informationssysteme
Oberer Eselsberg
D-89069 Ulm
[email protected]
Dr. Can Türker
ETH Zürich
Institut für Informationssysteme
ETH Zentrum, IFW C47.2
CH-8092 Zürich
[email protected]
Christian Weigand
Fraunhofer-Institut für Integrierte
Schaltungen IIS Abteilung Bildverarbeitung / Medizintechnik
Am Wolfsmantel 33
D-91058 Erlangen
[email protected]
Peter Wilhelm
MAQSIMA GmbH
Am TÜV 1
D-66280 Sulzbach
[email protected]
Andre Zeitz
Universität Rostock
Fachbereich Informatik
Lehrstuhl Datenbank- und Informationssysteme
Albert-Einstein-Strasse 21
D-18051 Rostock
[email protected]
Call for Papers
Mobilität und Informationssysteme
Workshop des GI-Arbeitskreises "Mobile Datenbanken und Informationssysteme"
16. und 17. Oktober 2003 in Zürich
http://www.dbs.ethz.ch/~tuerker/mdbis/
Die Infrastruktur moderner Informationssysteme besteht
nicht nur aus statischen Komponenten, sondern
verstärkt aus mobilen Geräten wie Laptops, PDAs und
Handheld-PCs, die über drahtlose Netze miteinander
kommunizieren. Mobile Geräte sind zudem mittlerweile
so leistungsstark, dass sie immer mehr auch als
Erbringer komplexer Dienste fungieren. Ehemals isolierte
Datenquellen und Dienste können so dynamisch zu
virtuellen Informationsräumen zusammenwachsen, in
denen von der Mobilität der beteiligten Nutzer, Daten
und Dienste abstrahiert werden. Mobile Nutzer können
Information jederzeit und von überall individuell
erzeugen, abfragen und verarbeiten.
Die mobile Informationsverarbeitung eröffnet nicht nur
die Perspektive für eine Vielzahl spannender und
nützlicher Anwendungen, etwa aus dem Bereich der
Gesundheitsversorgung, dem Ressourcenmanagement
oder der Navigationssysteme, sondern stellt auch neue
Herausforderungen an die Forschung und Entwicklung
zukünftiger Informationssysteme, etwa an die
Koordination von mobilen Komponenten in hochgradig
verteilten und vor allem sich dynamisch ändernden
Informationsräumen.
Dieser Workshop soll Vertreter von Hochschulen,
Produkthersteller und Anwender mobiler Datenbanken
und Informationssysteme zusammenführen und ihnen
die Möglichkeit bieten, ihre Beiträge im Kreis fachlich
interessierter Kollegen zu diskutieren. Dabei sollen
sowohl Grundlagenfragen als auch Aufgabenstellungen
aus Anwendungs- und Technologiebereichen erörtert
werden.
Erbeten werden Beiträge, die folgende oder verwandte
Themengebiete unter dem Gesichtspunkt der
Auswirkung von Mobilität auf Informationssysteme
betrachten:
‰ Architektur und Implementierung mobiler
Informationssysteme
‰ Benutzerschnittstellen und
Informationsanpassung/-präsentation
‰ Anpassungsfähige, selbstoptimierende mobile
Informationskomponenten
‰ Sensor-Datenbanken und kontinuierliche Anfragen
‰ Informationsströme und eingebettete Datenbanken
‰ Personalisierung und Sicherheit
‰ Kooperation und mobile Agenten
‰ Mobile Service-Grids und
Ad-hoc-Informationsräume
‰ Mobile Peer-to-Peer-Infrastrukturen
Die Beiträge können eigene Lösungen für die obigen
Problemstellungen präsentieren oder auch offene
Fragestellungen und Anforderungen an zu entwickelnde
Lösungen beschreiben. Visions- und Anwenderpapiere
sowie Berichte über neue Projekte im Umfeld mobiler
Informationssysteme sind ausdrücklich erwünscht.
Die Workshop-Sprache ist Deutsch. Einreichungen (in
PDF) können ab sofort unter [email protected]
vorgenommen werden. Akzeptiert werden deutsch- und
englischsprachige Beiträge. Langbeiträge sind auf
maximal 10 Seiten in LNI-Format begrenzt
(Kurzbeiträge: 5 Seiten). Hinweise zur LNI-Formatierung
finden Sie unter
http://giserver.gi-ev.de/LNI/autorenrichtlinien/.
Eingereichte Beiträge werden von mindestens zwei
Mitgliedern des Programmkomitees sorgfältig geprüft.
Akzeptierte Beiträge erscheinen in den WorkshopProceedings, die als technischer Bericht veröffentlicht
wird.
TERMINE
‰ Deadline für Einreichungen von Beiträgen:
01.08.2003
‰ Benachrichtigung über Annahme/Ablehnung:
05.09. 2003
‰ Abgabe Endfassung (camera-ready): 26.09.2003
‰ Workshop: 16./17.10.2003
‰ Modellierung und Verwaltung beweglicher Objekte
und mobiler Nutzer
‰ Beschreibung, Auffindung und Inanspruchnahme
mobiler Dienste
‰ Komposition und Ausführung von mobilen Diensten
‰ Quality-of-Service für mobile Dienste
‰ Replikation, Caching, Synchronisation
‰ Anfragebearbeitung, Indexierung, Optimierung
‰ Ortsabhängiger Zugriff und kontextbasierte
Anfragen
PROGRAMMKOMITEE
‰ Jürgen Bittner (SQL GmbH, Dresden)
‰ Christoph Gollmick (Uni Jena)
‰ Hagen Höpfner (Uni Magdeburg)
‰ Birgitta König-Ries (Uni Karlsruhe)
‰ Klaus Küspert (Uni Jena)
‰ Holger Meyer (Uni Rostock)
‰ Günther Specht (Uni Ulm)
‰ Can Türker (ETH Zürich)
Call for Participation
Mobilität und Informationssysteme
Workshop des GI-Arbeitskreises "Mobile Datenbanken und Informationssysteme"
16. und 17. Oktober 2003 in Zürich
http://www.dbs.ethz.ch/~tuerker/mdbis/
Liebe Mitglieder und Freunde des GI Arbeitskreises
"Mobile Datenbanken und Informationssysteme",
liebe am Thema "Mobilität" Interessierte,
Donnerstag, 16.10.2003
der Workshop "Mobilität und Informationssysteme"
ist der fünfte Workshop des GI-Arbeitskreises
"Mobile Datenbanken und Informationssysteme"
und gleichzeitig das Herbsttreffen 2003 dieses
Arbeitskreises.
13:30-13:45 Begrüssung
Die Infrastruktur moderner Informationssysteme
besteht nicht nur aus statischen Komponenten,
sondern verstärkt aus mobilen Geräten wie Laptops,
PDAs und Handheld-PCs, die über drahtlose Netze
miteinander kommunizieren. Mobile Geräte sind
mittlerweile so leistungsstark, dass sie immer mehr
auch als Erbringer komplexer Dienste fungieren.
Ehemals isolierte Datenquellen und Dienste können
so dynamisch zu virtuellen Informationsräumen
zusammenwachsen, in denen von der Mobilität der
beteiligten Nutzer, Daten und Dienste abstrahiert
werden. Mobile Nutzer können Information jederzeit
und von überall individuell erzeugen, abfragen und
verarbeiten.
Die mobile Informationsverarbeitung eröffnet nicht
nur die Perspektive für eine Vielzahl spannender
und nützlicher Anwendungen, etwa aus dem Bereich
der Gesundheitsversorgung, dem Ressourcenmanagement oder der Navigationssysteme, sondern stellt
auch neue Herausforderungen an die Forschung und
Entwicklung zukünftiger Informationssysteme, etwa
an die Koordination von mobilen Komponenten in
hochgradig verteilten und vor allem sich dynamisch
ändernden Informationsräumen.
Dieser Workshop soll Vertreter von Hochschulen,
Produkthersteller und Anwender mobiler Datenbanken und Informationssysteme zusammenführen und
ihnen die Möglichkeit bieten, ihre Beiträge im Kreis
fachlich interessierter Kollegen zu diskutieren.
Dabei sollen sowohl Grundlagenfragen als auch
Aufgabenstellungen aus Anwendungs- und Technologiebereichen erörtert werden.
Kurzfristige Anmeldungen zum Workshop sind
möglich! Die Tagungsgebühr beträgt 40.00 Euro
(10.00 Euro für Studenten). Bitte schicken Sie Ihre
Anmeldung an [email protected]. Über eine rege
Teilnahme würden wir uns sehr freuen!
12:30-13:30 Registrierung
13:45-14:15 B. Mutschler, G. Specht:
Implementierungskonzepte und
Anwendungsentwicklung kommerzieller
mobiler Datenbanksysteme: Ein Vergleich
14:15-14:45 K. Baumgarten, C. Gollmick: Konzeption eines
interaktiven mobilen Reiseinformationssystem
14:45-15:15 F. Alcala, J. Beel, A. Frenkel, B. Gipp, J. Lülf,
H. Höpfner: Ortung von mobilen Geräten für die
Realisierung lokationsbasierter Diensten
15:15-15:45 Pause
15:45-16:15 P. Dornbusch, M. Huber: User-Toolkits zur
dienstbasierten Entwicklung mobiler
Applikationen
16:15-16:45 T. Königsmann: Konzeption
geräteübergreifender Anwendungen
16:45-17:15 M. Cammert, C. Heinz, J. Krämer, B. Seeger:
Datenströme im Kontext des
Verkehrsmanagements
ab 18:30
„Informal Get-Together“
Freitag, 17.10.2003
09:00-10:00 H. Schuldt: Sensor Data Stream Processing in
Health Monitoring
10:00-10:30 Pause
10:30-10:55 C. Weigand: Implementierung eines
medizinischen Kommunikationsstandards auf
einem PDA unter Linux
10:55-11:20 M. Breunig, R. Malaka, W. Reinhardt, J. Wiesel:
Vision mobiler Geodienste
11:20-12:15 Öffentliches Herbsttreffen des Arbeitskreises
"Mobile Datenbanken und
Informationssysteme"
12:15
Ende des Workshops
Herunterladen