Logo
IT Dienstleistungen

Architektur

Beziehungenüberblick

Kommunkationstechnologien

Vergleich

EigenschaftWebserviceMessageR M ICORBADCOM
Plattformunabhängig -
Sprachunabhängig -
offenes Kommunikationsprotkoll - -

Architekturentscheidung

Bei der technischen Umsetzung von Spot News haben wir uns für die Verwendung von XML-basierter Kommunikation über Webservices zwischen Dienstanbieter und Dienstnutzer entschieden.

Das Ausschlusskriterien für DCOM bestand in der engen Bindung an Microsoftsysteme und die Verwendung einer binären Kommunkation.

CORBA bietet zwar Plattform- und Sprachunabhängigkeit, ist aber eine veraltete Technik, die nicht einfach zu Nutzen ist und vom Funktiononsumfang den Projektrahmen wohl sprengen würde.

RMI bietet wie auch CORBA einen effizenteren Datenaustausch und weniger Overhead sowie umfangreicherere Möglichkeiten eigene Objekte zu definieren, ist jedoch auf eine Java bei den beteiligten Systemen beschränkt, schwieriger zu entwickeln und auch zu warten.

Bei den Message-Orientated Verbindungen, im speziellen Public/Subscribe, schien zuerst eine bevorzugte Lösung zu sein, hat jedoch in den Detailfragen einige Probleme aufgeworfen. Wenn die Topics als Abschnitte einer rasterisierten Weltoberfläche verstanden werden, Wie ermittelt das Mobilgerät die zu abonnierenden Topics aus der aktuellen GPS Position? Wäre diese Rasterung auf jedem Mobilgerät verfügbar, wird die Clientsoftware zu Umfangreich und unflexibel gegenüber zukünftigen Änderungen. Die Berechtigung der Subscriber ist nur eingeschränkt überprüfbar und Rückmeldungen zu entsprechenden Nachrichten sind womöglich über eine andere Verbindungsart oder nur über gegenläufige Topics zu realisieren. Ausserderm kann die Laufzeit von Nachrichten kann schlecht festgelegt werden, denn Topics können jederzeit ortsabhängige neue Subscriber erhalten.

Diese Überlegungen haben als Folgerung eine Verwendung von XML basierten Webservices ergeben. Die Verbindung zum Dienstanbieter muss nicht ununterbrochen bestehen, sondern kann vom Dienstnutzer initiiert werden. Bei den zur Übertragung stehenden Daten handelt es sich zudem um einfachen Datentypen die gut in XML abgebildet werden können und aus diesem Grund ist auch die einfache Realisierbarkeit der Übertragung mittels Webservices in der Entwicklung und Wartung sowie die hohe Laufstabilität unsere Entscheidungsgrundlage. Zudem ist die durchaus erhöhte Rechenleistung beim Dienstanbieter eines Webservices günstiger zu finanzieren als das technische Knowhow zur Implementierung, Wartung und Betrieb eines Systems mit anderen Techniken, die für die gegebene Problemstellung zu umfangreich sind.

Technologie

Clientseite

Auf der Clientseite haben wir uns auf Grund der sehr starken Verbreitung von javafähigen Mobilgeräten für eine Implementierung in J2ME (neu JME) entschieden. Dies ist bisher auch die einzige Möglichkeit, eine plattformunabhängige Applikation für Mobilgeräte herzustellen. Zudem bietet die Java Laufzeitumgebung einen Sicherheitsvorteil für die Daten des ausführenden Mobilgerätes, da aus den Java Applikationen nur eingeschränkter Zugriff möglich ist.

Server

Bei dem Vergleich von Applicationservern beschränken wir uns auf die freien, quelloffenen Varianten um Lizenskosten zu vermeiden. Des weiteren sind Community und Dokumentation frei und umfangreich verfügbar.

Aus den verbreiteten Varianten Tomcat, Geronimo, JBoss und GlassFish haben wir uns für den GlassFish Application Server entschieden. Einerseits handelt es sich dabei um die Referenzimplementierung des Java-Herstellers Sun Microsystems.

Quellen

Datenhaltung

Bei der Datenhaltung von Spot News gab es mehrere Alternativen, die sich uns zur Auswahl stellten. Neben den bekannten Open Source Vertretern der relationalen Datenbanken MySQL und PostgreSQL gab es die in Java implementierten Apache Derby (auch bekannt als JDB) und eXist

Wir haben uns die XML-Datenbank eXist entschieden, da sie neben der Implementierung in Java auch durch die Persistierung der Daten im gleichen Format wie die Datenübertragung ermöglicht.

Die Abfragesprache unterscheidet sich zwar von dem gängigen SQL Standard, doch im Sinne einer homogenen Systemumgebung ohne weitere Middleware zur einem SQL-basierten Datenbanksystem, haben wir auf diese Ausprägung keine große Gewichtung gelegt.

MerkmaleXistApache Derby (JDB)MySQLPostgreSQL
Abfragesprache XQuery SQL SQL SQL
Datenstruktur B+-Baum Tabelle Tabelle Tabelle
Programmiersprache Java Java C, C++ C
Betriebssystem Unabhängig Unabhängig Unabhängig Unabhängig
Lizenz GNU LGPL Apache License GNU GPL BSD license
Java Schnittstelle JDBC JDBC JDBC JDBC

Seiten-Werkzeuge