Johann Wolfgang Goethe-Universität Frankfurt am Main
Technologien zur Umsetzung von Social Communities
- Seminararbeit –
Vorgelegt dem
Fachbereich Wirtschaftswissenschaften
der Johann
Wolfgang Goethe-Universität Frankfurt
Institut für
Wirtschaftsinformatik
Lehrstuhl für
M-Commerce und mehrseitige Sicherheit
Inhaltsverzeichnis
Abbildungsverzeichnis...................................................................................................
III
Tabellenverzeichnis.....................................................................................................
III
Abkürzungsverzeichnis...............................................................................................
IV
1.
Einführung.........................................................................................................................
1
2. Strukturierung....................................................................................................................
1
3. Webserver –
Backend.........................................................................................................
2
3.1
Datenbanksystem......................................................................................................
2
3.1.1
Datenbankdesign....................................................................................................
3
3.1.2
Social Communities -
Datenbank..............................................................................
3
3.2
Storage.....................................................................................................................
4
3.2.1
Social Communities -
Storage..................................................................................
4
4. Webserver –
Frontend........................................................................................................
5
4.1
Serverseitige
Scriptsprachen.......................................................................................
6
4.1.1 PHP
………….............................................................................................................
6
4.2 Templates.................................................................................................................
7
4.3
Frameworks..............................................................................................................
8
4.4 APIs
...............................................................................................................................8
5. Webbrowser – Client..........................................................................................................
9
5.1
Grundfunktionen........................................................................................................
9
5.2
Erweiterungen.........................................................................................................
10
5.2.1 CSS .....................................................................................................................10
5.2.2 Javascript.............................................................................................................
10
5.2.3 Flash
/ Actionscript |
Silverlight..............................................................................
11
5.3
Ajax – Asynchrone
Kommunikation............................................................................
11
5.4
Mobile
Clients..........................................................................................................
12
6. Community Baukästen......................................................................................................
12
7. Zusammenfassung und
Ausblick.........................................................................................
13
1 Einführung
„Social Communities“ ist seit den Erfolgen von Facebook,
Myspace und Xing ein häufig auftauchender Begriff. Gemeint ist damit eine
Internetplattform, auf der die Nutzer miteinander interagieren, kommunizieren
und sich vernetzen. Das besondere daran sind die von den Teilnehmern erzeugten
Informationen – der „User Generated Content“. Diese miteinander
vernetzten Informationen werden dann beispielsweise in Form einer Profilseite
zusammengeführt: Persönliche Daten, Fotos, Freunde und Teile der Kommunikation.
Doch was aber steckt technisch hinter der Oberfläche?
Technisch gesehen sind Social Communities eine
Kombination von Altbewährtem, wie Foren, Fotoalben und eingebetteten
Multimediaelementen. Ein paar neuere Kniffe und Methoden sind zwar dazugekommen,
doch die sind ständig im Wandel. Um die Technik zu verstehen und einen
Überblick zu bekommen ist es vielmehr wichtig, zu wissen, wie Webserver und
Browser funktionieren und wie die einzelnen Komponenten miteinander
interagieren. Die folgende Zusammenstellung soll einen groben Eindruck von
davon vermitteln.
2
Strukturierung
Die Fragestellung, welche Technologien man zur Umsetzung
von Social Communities braucht umfasst viele Aspekte – und kann wegen der Kürze
nicht umfassend und detailliert behandelt werden. Im Folgenden wird versucht
darzustellen, was alles nötig ist um aus rohen Daten eine schicke und moderne
„Web 2.0“-Seite, wie beispielsweise das Profil eines Users einer Social
Community auf den Bildschirm zu Zaubern, wie im Beispiel „SoCom Profil“ im
Anhang A zu sehen ist. Zuerst wird in Abschnitt 3 das Backend des Webservers
behandelt, wo die eigentlichen Daten der Website gespeichert sind. Anschließend
wird in Abschnitt 4 auf das Frontend eingegangen - dem eigentlichen Webserver.
Auf Anfrage liefert dieser die aus den Rohdaten erstellten Webseiten an die als
Webbrowser bezeichneten Clients. Mit diesen Clients und ihrer Aufgabe, unter
anderem Seiten für den Nutzer anzuzeigen befasst sich schließlich Abschnitt 5.
3
Webserver –
Backend
„Eine Webseite lebt von ihren Inhalten“ –
tausendfach findet sich dieser Spruch, der darauf hinweist, dass die Grundlage
des Internets Informationen sind. Web 2.0 Anwendungen und Social Communities
betrifft das in noch stärkerem Maße, da neben dem Abruf die Teilnehmer Inhalte
bereitstellen (User Generated Content) und miteinander vernetzen (Folksonomy /
Tagging). Diese Daten müssen gespeichert, gefunden und abgerufen werden können.
Für Informationen in (maschinenlesbarer) Textform eignen sich Datenbanksysteme,
während Bilder, Musik und Videos auf einem Storage / Fileserver abgelegt
werden. Hinzu kommt, dass auch eine Webseite entsprechend getrennt werden
sollte: Das Grundgerüst in Form von Templates und Webseitenelementen liegt auf
dem Storage, während Inhalte und Einstellungen in einer Datenbank lagern.
3.1
Datenbanksystem
Ein Datenbanksystem (DBS)
besteht aus einem Datenbank-managementsystem (DBMS) und der eigentlichen
Datenbank (DB). Das DBMS verwaltet die Datenbank und bietet Schnittstellen für
Zugriffe von Applikationen auf den Datenbestand. Datenbanksysteme ermöglichen
es, eine enorme Menge an Informationen einfach, effizient und schnell zu
verarbeiten.
Im Internet sind
relationale Datenbanken, bei denen die Kommunikation mit dem DBMS mittels
Structured Query Language (SQL) erfolgt am häufigsten anzutreffen. SQL ist eine
Kombination aus relationaler Algebra und Relationenkalkül. Die Sprache ist
leicht erlernbar und umfasst sowohl Datenbankverwaltung/-strukturierung, als
auch Datenabfrage/-manipulation.
Das mit Abstand häufigste
Datenbanksystem ist das seit Anfang 2008 zu Sun Microsystems gehörende MySQL (Open Source) mit einem Marktanteil von rund 60%
(gefolgt von Oracle mit etwa 14% und MS SQL mit knapp 13%).
3.1.1 Datenbankdesign
Das Datenbankdesign ist
eines der wichtigsten und kritischsten Punkte beim Erstellen von Websites, da
sich Designfehler später nur schlecht korrigieren lassen und Änderungen durch
das gesamte Projekt hindurch nötig werden können. Dabei gilt es
Informationen ohne Informationsverlust möglichst weit reichend zu zerlegen
(„Normalisieren“) und redundante Informationen zu vermeiden, da es sonst leicht
zu Inkonsistenzen kommen kann.
Für das Datenbankdesign
stehen zahlreiche Hilfsprogramme (z.B. DB Designer / MySQL Workbench oder MS Visio) zur Verfügung, die die Tabellenstruktur visuell
zusammenstellen lassen und im Sinne von Rapid Prototyping den Entwurf in eine
Datenbank umsetzen können.
3.1.2 Social Communities - Datenbank
Ein Datenbanksystem stellt
die Grundlage für jede Social Community dar. Personenbezogene Daten,
persönliche Kommunikation und Freundeslisten sind in der Datenbank gespeichert
– entsprechend stark muss die Datenbank vor unerlaubten Zugriffen und
Einbruchsversuchen geschützt werden. Das Datenbanksystem muss zudem in der Lage
sein eine hohe Zahl gleichzeitiger Zugriffe schnell zu verarbeiten. Duch die
möglicherweise rasant wachsende Nutzerzahlen ist eine gute Skalierbarkeit
ebenso notwendig, wie auch die Möglichkeit durch Clustering die wachsende
Datenmenge auf mehrere Server zu verteilen. Um eine hohe Verfügbarkeit der
Community zu gewährleisten, ist zudem eine Replikation der Datenbank auf einen
Failsafe-Server notwendig. Die häufigsten Datenbanksysteme, wie MySQL erfüllen
diese Bedingungen.
Das Datenbankdesign einer
Social Community muss sehr sorgfältig durchgeführt werden um im späteren
Verlauf schwierige und aufwendige Korrekturen zu vermeiden. Wichtig dabei ist
auch das Einbeziehen von Erweiterungsmöglichkeiten, Rechteverwaltung und welche
Daten über APIs für Community-Projekte (Apps) bereitgestellt werden sollen.
3.2
Storage
Bilder, Musik, Videos,
Dokumente und andere Dateien werden auf einem Storage abgelegt, um bei Bedarf
abgerufen zu werden. Auch die Templates und andere Designelemente einer
Homepage werden auf einem solchen Dateiserver gespeichert. Die Aufgabe eines
Storages liegt hauptsächlich darin, Dateien einzulagern und angeforderte
Dateien schnell zu liefern. Da es sich um viele Anfragen zeitgleich handeln
kann, muss das System vor allem über ein Festplattenarray mit geringen
Zugriffszeiten, großer Kapazität und Ausfallsicherheit meist in Form eines
RAID-Systems verfügen. Um häufig benötigte Dateien nicht jedes Mal aus dem
vergleichsweise langsamen Festplattenverbund abrufen zu müssen, werden diese in
einem Cache im Arbeitsspeicher des Systems vorgehalten. Wie auch bei den
Datenbankservern gibt es die Möglichkeit, die Dateien auf andere Server zu
verteilen / replizieren. Die Aufgaben des Storages werden normalerweise vom
betriebssystemeignen Dateisystem übernommen. Der Zugriff erfolgt über das
Dateisystem, wenn Storage und Webserver in einer Maschine laufen. Ansonsten
erfolgt die Kommunikation über das Netzwerk per SMB oder NFS – alternativ
stehen Internet-Übertragungswege wie FTP und HTTP zur Verfügung, die aber einen
eigenen Webserverdienst auf dem Storage selbst erfordert.
3.2.1 Social Communities - Storage
Innerhalb einer Social
Community liegt der Schwerpunkt hauptsächlich auf Bilddateien (Profilbilder,
Fotoalben), was viele Zugriffe auf viele verschiedene und kleine Dateien
bedeutet. Damit wird die Zugriffszeit der Festplatten zum vermutlichen Engpass,
der sich am besten durch eine größere Anzahl an Festplatten kompensieren lässt
oder durch den Einsatz von Solid State Disks erheblich senken lässt.
4
Webserver – Frontend
Community
|
Betriebsystem
|
Webserver
|
Facebook
|
unbekannt
|
Apache
|
Frienster
|
Linux
|
Apache
|
Hyves
|
Win 2003 Srv
|
IIS
|
LinkedIn
|
Solaris
|
Sun-ONE-Webserver
|
Lokalisten
|
Linux
|
Apache
|
MySpace
|
Win 2003 Srv
|
IIS
|
Orkut
|
Linux
|
GFE (Apache)
|
Plaxo
|
Linux
|
Apache
|
StudiVZ
|
Linux
|
Apache
|
V Kontakte (RU)
|
Linux
|
nginx
|
Xing
|
Linux
|
Apache
|
Tab. 1:
Communities mit eingesetztem Webserver
|
Ein Webserver ist die
Gegenstelle mit der die Internetnutzer über ihren Webclient (Browser) Kontakt
aufnehmen. Je nach Anfrage werden beispielsweise statische HTML-Seiten samt
dazugehöriger Bilder ausgeliefert oder dynamische Seiten generiert. Dynamische
Seiten bestehen typischerweise aus einer oder meheren Scriptdateien (z.B.
PHP-Scripts), die unter Verwendung von Templates (Vorlagen), Informationen und
Einstellungen aus der Datenbank und entsprechenden Dateielementen (z.B. Bilder)
zusammengesetzt werden. Das erfordert vor allem bei scriptintensiven Seiten
eine hohe Rechenleistung.
Im Internet gibt es vor allem zwei Webserver die den Markt
beherrschen (vgl. Abb. 5): der Open Source
Webserver Apache mit rund 50% gefolgt von Microsofts Internet
Information Server / Service (IIS) mit etwa 35%. Während der Apache
unter Linux, Windows und anderen läuft, beschränkt sich der IIS auf Windows
(Server) Systeme. Ein Großteil der bekanntesten Social Communities läuft
unter Apache.
Der Apache ist ein
vielfältig einsetzbarerer Webserver, dessen Kernfunktionen als HTTP-Server um
Module erweitert werden können – beispielsweise Scriptsprachen wie PHP und Ruby
oder Module für verschlüsselte Kommunikation und Authentifizierung. Der Apache
arbeitet mit den unterschiedlichsten Datenbanken zusammen, kann über das Common
Gateway Interface (CGI) mit externen Programmen zusammenarbeiten und ist
multithreadfähig. Weit verbreitet ist die als „LAMP“
bezeichnete Kombination aus Linux, Apache, MySQL und PHP / Pearl.
4.1
Serverseitige
Scriptsprachen
Bei klassischen
„HTML-Seiten“ handelt es sich um statische Webseiten. Für eine Tabelle mit
Sortiermöglichkeit bräuchte man für jede Sortierung eine separate Seite, was
nicht nur umständlich (z.B. bei Aktualisierungen), sondern auch fehleranfällig
ist (z.B. Inkonsistenzen). Abhilfe schaffen Scriptsprachen wie PHP, die auf
eine Anfrage des Clients hin das entsprechende Script ausführen und daraus
angeforderte Seite zusammensetzen und an den Client im HTML-Format zurückliefern.
Web 2.0 Seiten wären Scriptsprachen wie Perl, Python, PHP, Ruby oder ASP nicht
möglich.
4.1.1 PHP
PHP ist die im Internet verbreitetste Scriptsprache, die
beispielsweise auch bei Facebook und StudiVZ im Einsatz ist. Die Sprache
ist relativ einfach zu erlernen und es gibt durch eine aktive Community viele
Tutorials, Codebeispiele und sogar komplette Applikationen. PHP ist flexibel
einsetzbar und besitzt einen großen Funktionsumfang, der sich über Module
erweitern lässt. Elemente wie Komprimierung, Bildverarbeitung oder
Verschlüsselung lassen sich nach Bedarf einbinden.
Im einfachsten Fall wird
eine HTML-Seite um PHP-Code erweitert, wobei die Dateiendung von .htm / .html
auf .php geändert werden muss, damit der Webserver die Datei durch einen
PHP-Parser laufen lässt. So kann mit
[HTML-Code...] //
Wird vom Parser unverändert weitergereicht
<?php // Anfang des PHP-codes
$datum = date("d.m.Y",time()); //
Variable Datum duch Funktionen
date
und time füllen
echo $datum; //
Variable Datum in Ausgabedatei einsetzen
?> //
Ende des PHP-Codes
[...-HTML-Code] // Wird vom Parser
unverändert weitergereicht
das aktuelle Datum im
Format TT.MM.JJJJ eingefügt werden. Neben vielen weiteren Funktionen überzeugt
PHP im Zusammenspiel mit Datenbanken. Hier ein einfaches Beispiel zum
Verbindungsaufbau, Selektion und Ausgabe[15]:
mysql_connect(“host“,“user“,“key“); //Verbindungsaufbau
zu MySQL
mysql_select_db(“socom“)
//Datenbank “socom” auswählen
$profilnamen = mysql_query(“SELECT Name FROM
socom.profile“);
//Inhalt der
Tabellenspalte “Name” aus der Tabelle profile suchen
while ($namen = mysql_fetch_array($profilnamen))
//Antwort von MySQL einfangen und ausgeben
{
print
$namen[Name].“<br>“;
}
Durch die angebundene
Datenbank kann man fast alle Einstellungen und Inhalte aus den Scripten lösen
und zentral verwalten. Mit dem Befehl include kann man darüber hinaus auch die Scripte (untereinander)
und das Design trennen. Beispielsweise lässt sich über include(banner_klein.php) ein Script banner_klein.php zur Werbeeinblendung aufrufen. Der PHP-Parser arbeitet
an dieser Stelle zunächst die aufgerufene Datei ab bevor er mit dem
eigentlichen Script fortfährt.
4.2
Templates
Vorlagen, die
beispielsweise bei PHP über den include
oder
require-Befehl eingebunden werden
können, nennt man Templates. In der Regel handelt es sich dabei um
(X)HTML-Seiten mit der Endung .tpl, die Variablen enthalten. Diese Variablen werden zur
Laufzeit mit den entsprechenden Inhalten gefüllt. Wenn sich beispielsweise in
der Template-Datei folgender Link befindet
<a
href=“../profilbilder/[UID].jpg“>Profilbild
von [Vorname]</a>
werden die Variablen durch
die übergebenen Werte (also z.B. 47110815 bzw. ) ersetzt.
Mit den Möglichkeit
Templates einzubinden lässt sich eine Website modular aufbauen, so dass
beispielsweise unterschiedliche Designs für PCs und PDAs ohne großen Aufwand
realisiert werden können. Obwohl PHP von sich aus Templates unterstützt, gibt
es separate Template Engines, wie Smarty. Auch die anderen Scriptsprachen unterstützen nativ
oder über Erweiterungen Templates.
4.3
Frameworks
Ein Stückchen weiter gehen
(Presentation-)Frameworks, aber das Prinzip bleibt das gleiche: Eine Vorlage,
in diesem Fall in etwa der Rohbau einer Homepage, wird den Bedürfnissen
entsprechend angepasst, von der Farbpalette über Seitendesign bis hin zur
Struktur. Oft ist dabei kein Kontakt mit dem dahinterliegenden Code nötig, da
sich je nach Umfang eine Vielzahl von Aspekten über ein Webinterface einer Site ändern lässt. Änderungen und das Hinzufügen eigener
Funktionen sind weiterhin möglich. Viele dieser als Hack bezeichneten
Codeschnipsel finden sich in den aktiven Communities rund und um das
entsprechende Framework.
4.4
APIs
Um Daten und Funktionen
außerhalb einer Anwendung oder Webseite zu nutzen gibt es wohldefinierte
Schnittstelle. Dieses Anwendungs- zu Anwendungs-Interface wird als Application
Programming Interface (API) bezeichnet. Neben den genauen
Schnittstellendefinitionen, die beschreiben wie die Kommunikation (Abfrage,
Datenübergabe/-format, ...) auszusehen hat, sind auch genaue Angaben zur
Authentifizierung und angemessene Sicherheitsmaßnahmen vorhanden.
Die einfachste Form eine
API bei Webseiten ist der Aufruf mit den gewünschten Suchparameter über eine URL
und danach die Antwort des Servers mittels HTTP GET abzufangen. Es stehen verschiedene Formate zur Verfügung, die auch
ihre jeweils eigenen RPCs (Remote Procedure Call) zu detaillierten Abfrage
mitbringen: Beispielsweise das auf XML basierende Atom (Atom Syndication Format
[RFC4287]) samt AtomPub (Atom Publishing Format [RFC5023]) oder auch das in der
Syntax etwas freiere RSS 2.0. Alternativ zu den umständlicheren XML-Varianten
gibt es unter anderem JSON (Javascript Object Notation), dass durch den schlanken Aufbau und die unmittelbare
Nähe zu Javascript derzeit für Ajax besonders geeignet erscheint.
Speziell für Social
Communities gibt es unter anderem die Google OpenSocial API, die den Zugriff auf Communities für Applications /
Mashups standardisieren soll. Etliche Social Communites, wie Orkut, Xing und
StudiVZ integrieren die OpenSocial API, während Facebook seine API ebenfalls
unter Open Source stellen will. Mit der Bereitstellung einheitlicher Schnittstellen
sollen kleine Applikationen und Mashups ohne (große) Änderungen mit
unterschiedlichen Communities zusammenarbeiten.
5
Webbrowser – Client
5.1
Grundfunktionen
Auf der Seite des
Benutzers, der Clientseite, ist typischerweise ein Webbrowser (bzw. Websuite)
für die Darstellung von Webseiten und Kommunikation mit dem Webserver
verantwortlich. Im einfachsten Fall ruft der Nutzer eine Webseite auf, in dem
er eine URL (Unified Ressource Locator [RFC 1738]) beispielsweise durch einen
Link aufruft: . Der Browser nimmt darauf mit dem angegebenen Server (socom.xx) - genauer mit der im DNS hinterlegten IP Adresse - und
dem angegebenen Protokoll (HTTP [RFC 2616], Port 80) Kontakt auf und fordert
die Seite profile.php an. Der Webserver führt darauf hin das PHP-Script aus
und liefert die angeforderte Seite im (X)HTML-Format zurück. HTML (Hypertext
Markup Language) ist eine Seitebeschreibungssprache, die der Browser dann
abarbeitet, wobei im Quelltext angegebene Elemente (z.B. Bilder) dann
angefordert und eingebettet werden.
5.2
Erweiterungen
Die Möglichkeiten auf der
Clientseite mehr zu bieten, als pures HTML, wurden mit der Zeit erweitert.
Angefangen mit clientseitiger Scriptunterstützung, über flexible Erweiterungen
wie Flash bis hin zu Video-Plugins hat die Entwicklung aus dem einfachen
Anzeigeprogramm inzwischen eine Multimedia-Plattform gemacht. Je nach Browser
werden entsprechende Dienste nativ angeboten oder können bei Bedarf per Plugin
eingebunden werden.
5.2.1 CSS
Ähnlich wie die Templates
gibt es auf der Clientseite zur Trennung von Inhalt und Design die Cascading
Style Sheets (CSS). Diese Dateien (.css) enhaten Informationen, wie bestimmte als „Rules“
bezeichnete Abschnitte formatiert werden sollen. In den HTML-Dateien wird dann
die Stylesheet-Datei referenziert und im Body die zu formatierend Abschnitt in
entsprechende Tags gesetzt. Beispielsweise wird im Stylesheet mit
H1 { color: blue ; font-size: 12pt} angegeben, dass alles was zwischen <H1> und </H1> die Schriftfarbe blau und Schriftgröße 12 erhält. CSS
sieht auch verschiedene Formatierungen für verschieden Endgeräte vor, so dass
z.B. für den Aufruf mit einem PDA eine angepasste Formatierung erfolgen kann.
5.2.2 Javascript
Ein früher Vertreter für
clientseitige Scripte ist Javascript, das vor allem durch die Möglichkeiten
Webseiten mit „Mouseovereffekten“, PopUps und anderen Effekten anzureichern
eine große Verbreitung erfuhr. Javascripte sind in den HTML-Text eingebaute
Programme, die im Browser des Benutzers ausgeführt werden und aus einer
statischen eine dynamische Webseite machen. Webseiten lassen sich dadurch
teilweise fast wie lokal installierte Software bedienen und kommt auch bei Ajax
zum Einsatz. Aktuelle Webbrowser unterstützen Javascript.
5.2.3 Flash
/ Actionscript | Silverlight
Shockwaves Flash (inzwischen Adobe Flash) diente ursprünglich nur dazu
Animationen für beispielsweise Werbebanner und Seitenintros anzuzeigen. Mit der
Einführung von Actionscript gibt inzwischen viel mehr Möglichkeiten, wie die
Gestaltung ganze Homepages, kleine Spiele, Tutorial-Videos uvm. Auch als
Videoplayer (z.B. bei Youtube) kommt es zum Einsatz. Flash ist ein proprietäres
Format, das als Plugin in den Browser eingebunden wird.
Ein vergleichbares Paket -
„Silverlight“ - wird zur Zeit von Microsoft entwickelt und als
Plugin verteilt. Als Scriptsprachen können hierbei Visual Basic .NET, C# und
Javascript zum Einsatz kommen.
Allgemein sollte der
Einsatz von Flash und Silverlight möglichst vermieden bzw. auf unkritische
Stellen einer Homepage beschränkt werden, da zum einen Internutzer das
entsprechende Plugin haben müssen, zum anderen diese Seiten oft das
Surfverhalten einschränken, was vor allem professionelle Nutzer verärgert.
5.3
Ajax –
Asynchrone Kommunikation
Normalerweise muss eine
Internetseite, wenn auch nur ein kleiner Teil aktualisiert werden soll,
komplett neu geladen werden. Mit Ajax bezeichnet man nun die Möglichkeit
mittels Javascript gezielt Teile statt die geamte Seite neu zu laden.
Nachteilig an dieser Technik ist allerdings, dass Javascript benötigt wird, die
„Zurück“-funktion des Browser nicht ohne weiteres richtig funktionieren kann.
Darüber hinaus gibt es Probleme mit Lesezeichen und der Barrierefreiheit.
Eine Menge Frameworks
stehen auch hier zur Verfügung, um den Javascript- Programmieraufwand einer
Seite mit Ajax deutlich zu reduzieren. Dazu zählt beispielsweise Prototype, das mit seiner Javascript-Bibliothek prototype.js in vielen anderen Frameworks als Basis auftaucht. Fertige Funktionen, wie ein periodisches Update,
müssen dann nur noch passend eingebunden und aufgerufen werden.
5.4 Mobile Clients
Um Webseiten auf mobile
Endgeräten wie MDAs zu bringen, sollte man über deren Beschränkungen wissen,
wobei diese je nach Betriebssystem und von Gerät zu Gerät unterschiedlich sein
können. Gemeinsam haben sie alle zunächst ein kleines Display mit – bei PDAs
meist 240 x 320 Bildpunkte. Die Browser sind in der Regel relativ beschränkt
und unterstützen beispielsweise Javascript und Flash nicht in vollem Umfang.
Auch die Eingabemöglichkeiten und bei Verbindungsgeschwindigkeit bei
GPRS-Verbindungen sowie die zur Verfügung stehenden Systemressourcen sind
relativ gering. Um eine Social Community auch auf diesen Mini-Computern
verfügbar zu machen bedarf es also einer entsprechenden Anpassung.
Auf der anderen Seite
stehen bei den Mobilen Geräten ganz andere Möglichkeiten zur Verfügung. Viele
der Geräte verfügen beispielsweise über eine Kamera und ein GPS Modul (oder
Ortung über die Basisstationen), so dass sich dort Raum für Innovationen
bietet. Zudem nimmt die Anzahl der Geräte deutlich zu und die Datenübertragung
wird zunehmend erschwinglicher.
6
Community Baukästen
Eine schnelle Möglichkeit
eine eigene Website zu erstellen ist mit kompletten Baukästen. Diese Frameworks
gibt es in vielen Variationen für die unterschiedlichsten Einsätze. Das
umfangreiche und bekannte freie Internet CMS „Drupal“ bietet inzwischen auch
Social Community Erweiterungen. Je nach Anforderungen kann beispielsweise auch eine
Forensoftware wie das BurningBord von WoltLab mit entsprechend Hacks modifiziert werden. Noch weiter
geht beispielsweise Ning, wo man mit wenigen Schritten ein eigenes Netzwerk als
„Subnetz“ eröffnen kann.
Bei diesen vermeintlich
einfachen Wegen muss man sich allerdings auch die Frage stellen, ob es sich
lohnt, viele verschiedene Frameworks zu vergleichen, die entsprechenden Details
kennen zu lernen, Anpassungen vorzunehmen ... oder bei einem überschaubaren
Projekt selbst Hand an zu legen und nur in geringem Ausmaß auf fremden Code
zurück zu greifen.
7
Zusammenfassung und Ausblick
Eine Website besteht also
aus viele Dingen, die miteinander und untereinander verbunden sind. Von der
Datenbank bis zum Bildschirm des Nutzers durchlaufen die Daten etliche
Stationen und werden mit anderen Inhalten gemischt. Bei großen Social
Communities können viele hunderttausend Nutzer gleichzeitig aktiv sein. Die
dahinter steckende Technologie muss absolut zuverlässig arbeiten, da Ausfälle
vor allem durch Überlastung zu Spitzenzeiten die Mitglieder schnell verärgert.
Im Klartext heisst das das ganze System mit Datenbank, Storage und Webserver
muss über genug Reserven und eine hohe Ausfallsicherheit verfügen
(Replikations/Failback-System). Darüber hinaus ist bei schnellem Userzuwachs
eine hohe Skalierbarkeit notwendig, um das System den veränderten Anforderungen
zu entsprechen.
Ein weiterer wichtiger
Punkt ist das Thema Sicherheit. Dazu gehört nicht nur eine regelmäßige
Sicherung und (vor allem bei verteilten Datenbanken) ein konsistenter
Datenbestand. Vor allem aber müssen die wertvollen Daten vor unerlaubten
Zugriffen geschützt werden.
Die Umsetzung einer Social
Community erfordert eine durchdachte Datenbankgrundlage, da Fehler darin oft
nachträglich nur sehr schwer zu beseitigen sind. Das auf dieses Backend
gesetzte Frontend sollte ebenfalls gut durchdacht werden – egal ob
selbstentwickelt oder aus einem Framework zusammenkonfiguriet. Weiterhin
sollten geklärt werden, welche Schnittstellen für Mashups und andere Dienste
bereitgestellt werden sollen. Eine Universallösung gibt es nicht.
In Zukunft werden Social
Communities verstärkt auf mobilen Endgeräten zu finden sein – immer und überall
verfügbar. Die verfügbaren Tools zur Konstruktion, wie auch die Anzahl der
Communities wird stark zunehmen – die Technik jedoch weiterhin auf den gleichen
Prinzipien arbeiten.
Anhang A
Beispiel „SoCom
Profil“
Abb. 6: Beispiel „SoCom Profil“
Literaturverzeichnis
[Alby07]
Alby, Tom: Web 2.0 – Konzepte, Anwendungen, Technologien (3., überarbeitete
Aufage). Hanser, 2007.
2008-02, Abruf am 2008-05-11
[AlfOSB]
Alfresco.com
OpenSourceBarometer (Umfrage vom 2. HJ 2007).
2008-02, Abruf am 2008-05-11
[BrEK08]
Breitfeld, Manuel; Engler,
Lasse; Kern, Mattanja: Vergleich von Server-side Mashup-Systemen.
pdf/FACH_0082.pdf, 2008-02-25
[Kant07]
Kantel, Jörg: Web
2.0: Werkzeuge für die Wissenschaft.
2007-02-13
[KoSS01]
Korth,
Silberschatz, Sudarshan: Database System
Concepts (Fourth Edition).
McGraw−Hill Companies, 2001
[KPSW02]
, ; Proksch, Sebastian;
Sänger, Dennis; Werner, Marc:
Dokumentation des Abiturprojektes Webserver am Franziskanergymnasium Kreuzburg.
Großkrotzenburg 2002.
[LeMS07]
Leisegang, Christoph; Mintert, Stefan;
Spannenberg, Bastian: Äpfel und Birnen – Fünf
clientseitige Ajax-Frameworks. In: iX Spezial, 01/07, S. 30-41
[Netcraft]
Netcraft.com
Webserver Survey (Stand 04/2008).
Abruf am 2008-05-18
[Neuh07]
Neuhaus, Sven: Betont schlank – JSON und JSON-RPC: Ajax ohne XML. In: iX Spezial, 01/07, S. 54-56
[PHPNet]
PHP Group
Manual – Function Reference (Stand 16.05.2008).
Abruf am 2008-05-17