Car-Sharing-Aggregator

Fakten
TypService Applikation
PlattformWebservice mit RESTful API
EntwicklerMarcus Fabarius
Benjamin Granzow
Franziska Kowalke
Philipp Liepert
Tom Wallroth
StatusPrototyp
TechnologienJava, Servlet API 3.0, Spring, RESTful
KooperationspartnerART+COM Studios

Problematik

Im Jahre 1988 wurde in Berlin-West das erste Car-Sharing-Unternehmen „Stadt-Auto“ mit ungefähr 50 Kunden in Deutschland gegründet. Seit dem stieg der Bedarf eines solchen Dienstes stark an. In den letzten Jahren erfreute sich das Car-Sharing, besonders in den Großstädten, großer Beliebtheit. Heute existieren in Deutschland ungefähr 150 Anbieter mit insgesamt ca. 757.000 Teilnehmern.

Die Car-Sharing-Unternehmen stellen ihren Kunden spezielle Plattformen bzw. Anwendungen zu Verfügung, womit unter anderem Informationen zu Fahrzeugstandorten abgerufen und Reservierungen durchgeführt werden können. Allerdings sind diese Angebote meist regional beschränkt, sodass sich die Kunden mehrerer Dienste bedienen müssen. Angenommen eine Person ist bei 10 Anbietern registriert und möchte das passendste Angebot finden, so müsste diese 10 verschiedene Anwendungen der jeweiligen Car-Sharing Anbieter durchsuchen, um das beste Angebot zu ermitteln.

Konzept

Das Backend besteht aus verschiedenen Komponenten, die lose miteinander gekoppelt sind und als Web-Applikationen innerhalb eines Tomcat 7.59 Anwendungsservers laufen. Die Dienste von Fremdanbietern (z.B. CAR2GO oder Call-A-Bike) werden über sogenannte Adapter-Module abstrahiert. Die Hauptaufgaben der Adapter bestehen darin, die Datenformate der Schnittstellen der Fremdanbieter zu vereinheitlichen und soweit möglich ein sinnvolles Caching schon abgefragter Daten zu ermöglichen. Alle Adapter stellen ihre Dienste über eine einheitliche REST-Schnittstelle zur Verfügung. Diese Schnittstellen werden vom Kern des Backends asynchron abgefragt und aggregiert. Dieser Aggregator Kern stellt seinerseits wiederum eine REST-Schnittstelle gegenüber dem User-Frontend bereit, welche die aggregierten Fahrzeugdaten zur Verfügung stellt.

Die Adapter, wie auch der Aggregator-Kern, stellen ihrerseits jeweils ein Web Frontend zur Administration zur Verfügung. Als Kerntechnologie wird in allen Web-Applikationen das Springframework für Dependency Injection und die Realisierung der Webschnittstellen eingesetzt. Systemeinstellungen werden mit Hilfe von Hibernate in eine H2-FileDB persistiert und darüber hinaus werden die Bibliotheken Google Guava, Joda Time, Apache Axis, sowie die Servlet API 3.0 eingesetzt.

 

Eine wichtige nicht-funktionale Anforderung an die Umsetzung war die Modularität des Softwaresystems, d.h. es ist zur jeder Zeit möglich einen neuen Car-Sharing-Anbieter in Form von Adaptermodulen anzubinden oder sie auch wieder zu entfernen.

Um die Funktionsfähigkeit des Application-Services sicherzustellen, wurde eine umfangreiche Test-Suite erstellt. Besonders durch die automatisierten Regressionstests werden Bugs schnell aufgedeckt und daher die Qualität der Anwendung zu jeder Zeit sicherstellt.

Um das erstellte Backend zu testen, wurde Prototypisch eine HTML5 Widget erstellt, welches in beliebigen Webseiten eingebunden werden kann. Dieses Widget enthält eine Umgebungskarte, welche automatisiert oder durch manuelle Eingaben den aktuellen Standort des Benutzers anzeigt. Dem Benutzer werden darauf alle sich in der Nähe befindlichen Car-Sharing Angebote aufgelistet. Bei der Auswahl eines Fahrzeuges in der Karte zeigt eine Detailansicht zusätzliche Informationen zu dem ausgewählten Fahrzeug an. Hierzu zählen der Fahrzeugtyp, Anzahl der Sitze und weitere Informationen über das Fahrzeug oder den jeweiligen Dienst. Wird ein größeres Areal betrachtet, wird statt der einzelnen Fahrzeugt die Verfügbarkeit einzelner Car-Sharing-Anbieter angezeigt.

Screenshots

Downloads
Konferenz Poster [pdf] 8.4 MB
Danksagung
ART+COM StudiosZusammenarbeit im Rahmen des Masterprojektes

Die für den Web-Prototype verwendeten Icons für die Anbieter sind an reellen Markenzeichen der Anbieter angelehnt. Alle Markenzeichen oder Markennamen sind alleiniges Eigentum ihrer jeweiligen Inhaber. Es ist nicht Absicht des Autors, das Markenrecht der Deutschen Bahn AG oder der car2go Deutschland GmbH in irgendeiner Weise zu verletzen. Eventuell kopierrechtlich geschütztes Material wird allein für nicht kommerzielle Zwecke verwendet

Kommentare sind geschlossen.