Sebastian Lenz

Lobby Beta

Stellt soziale Netze dar, erlaubt deren Erkundung und Organisation im 3D-Raum und visualisiert Ereignisse in Echtzeit.

Darstellung des Freundeskreises des Benutzers.

Darstellung des Freundeskreises des Benutzers.

Technische Beschreibung

LobbyBeta ist eine Client-Server-Anwendung. Der Client dient dem Benutzer zum Abrufen, Darstellen und Bearbeiten von Informationen seiner sozialen Kontakte. Die Informationen werden zentral auf einem Server abgelegt, der die Daten verschiedener Clients verwaltet und zu einem sozialen Netzwerk kombiniert, die dann weiteren Benutzern zur Verfügung gestellt werden.

Der Client besteht aus zwei Komponenten: einem Updater, der mit dem Update-Dienst des Servers kommuniziert und dem Benutzer so immer die aktuellste Programmversion aus dem Internet zur Verfügung stellt, und der eigentlichen Hauptanwendung, die einen Zugriff auf den Server-Dienst ermöglicht.

Zum populären Messenger und VoIP-Client Skype ist eine API verfügbar, die es anderen Programmen ermöglicht, auf die auf dem Rechner laufende Instanz von Skype zuzugreifen. LobbyBeta nutzt die Skype-API um die Kontaktliste des Benutzers auszulesen sowie um auf bestimmte Ereignisse zu reagieren. Dabei gilt es zu betonen, dass diese API nur beispielhaft verwendet wurde, denkbar wäre eine ähnliche Bindung an andere Messenger (MSN Meesenger, ICQ), an E-Mail-Programme (Outlook, Thunderbird) oder an die TAPI-Schnittstelle.

Der Sever von LobbyBeta basiert auf dem HTTP-Protokoll. Er reagiert auf Anfragen der Clients und liefert angeforderte Daten aus. In erster Linie stellt er eine Verbindung zwischen dem Client-Programm, auf dem die Daten angezeigt werden, und der Datenbank, in der die Daten abgelegt werden, her.

Hardware / Software

Die Client-Anwendung sollte möglichst wenig Rechenleistung verbrauchen, um eine hochwertige, dreidimensionale Darstellung des Netzwerks in Echtzeit zu ermöglichen. Gleichzeitig galt es sich für eine Programmiersprache zu entscheiden, die die Umsetzung des Projektes in nur drei Monaten erlaubte. Die Entscheidung viel daher auf C#, einer C-ähnlichen Programmiersprache die auf dem Microsoft .NET-Framework basiert. Während die Entwicklung ähnlich schnell wie bei einer Java-Anwendung verläuft, da man sich etwa nicht um das Reservieren und Freigeben von Speicherbereichen zu kümmern braucht, erreicht C# eine wesentlich höhere Ausführungsgeschwindigkeit.

Das Zeichnen einer dreidimensionalen Umgebung in Echtzeit stellt auch für heutige Rechner noch einen enormen Aufwand dar. Eine reine Softwarelösung ist zwar möglich, würde aber nur Darstellung einer geringen Zahl von Polygonen erlauben. Es ist daher erforderlich auf eine Schnittstelle zurückzugreifen, die mit der GPU (Graphics Processing Unit) der Grafikkarte zusammenarbeitet. Der Prototyp nutzt Microsofts Schnittstelle DirectX, die über Managed DirectX in der .Net-Umgebung zur Verfügung steht. Sie bestimmt auch die Vorraussetzungen der Anwendung an die Hardware des Benutzers.

Der Server ist in PHP5 geschrieben und greift auf eine MySQL-Datenbank zurück. Beide Komponenten haben den Vorteil, dass sie frei verfügbar sind und von vielen Providern angeboten werden. Zudem gewährt PHP aufgrund des großen Befehlssatzes und der guten Fehlerbehandlung und -beschreibung eine schnelle und effiziente Entwicklung. Zur Kommunikation zwischen Client und Server wird eine einfache XML-Syntax verwendet.