word image
Seminararbeit / Hausarbeit

Webtech­no­lo­gien zur Umsetzung von Social Commu­ni­ties

3.357 / ~22 sternsternsternsternstern_0.75 Richard K. . 2010
<
>
Upload File

Seminararbeit
Volkswirtschaftslehre

Goethe Universität Frankfurt am Main

2008, Prof. Rannenberg

Richard K. ©

2.18 Mb
sternsternsternsternstern_0.75
ID# 3005







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[1].

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[2].

Das mit Abstand häufigste Datenbanksystem ist das seit Anfang 2008 zu Sun Microsystems gehörende MySQL[3] (Open Source) mit einem Marktanteil von rund 60% (gefolgt von Oracle[4] mit etwa 14% und MS SQL[5] mit knapp 13%)[6].

 

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[7] / MySQL Workbench[8] oder MS Visio[9]) 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[10] mit rund 50% gefolgt von Microsofts Internet Information Server / Service[11] (IIS) mit etwa 35%. Während der Apache unter Linux, Windows und anderen läuft, beschränkt sich der IIS auf Windows (Server) Systeme[12]. 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[13] 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[14].   

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[16]. 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[17] 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[18]. 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)[19], dass durch den schlanken Aufbau und die unmittelbare Nähe zu Javascript derzeit für Ajax besonders geeignet erscheint[20]

Speziell für Social Communities gibt es unter anderem die Google OpenSocial API[21], 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[22]. 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)[23]. Diese Dateien[24] (.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[25] (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[26]“ - 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[27].

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[28], das mit seiner Javascript-Bibliothek prototype.js in vielen anderen Frameworks als Basis auftaucht[29]. 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[30].

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[31]. Je nach Anforderungen kann beispielsweise auch eine Forensoftware wie das BurningBord von WoltLab[32] mit entsprechend Hacks modifiziert werden. Noch weiter geht beispielsweise Ning[33], 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

 



[1] Vgl. [KoSS01], S. 11

[2] Vgl. [KoSS01], S. 141

[3]

[4]

[5]

[6] Vgl. [AlfOSB], Databases

[7]

[8]

[9]

[10]

[11]

[12] Vgl. [Netcr]

[13]

[14] Vgl. [PHPNet]

[15] Vgl. [KPSW02], 2.4.3.2.1 MySQL Zugriffe mit PHP

[16]

[17] Oft als ACP (Admin Control Panel) bezeichnet

[18] Vgl. [BrEK08], Abschnitt 2.2.1 ff

[19]

[20] Vgl. [Neuh07]

[21]

[22]

[23]

[24] kann auch unter <head> als Abschnitt <style> untergebracht werden

[25]

[26]

[27] Vgl.: [Kant07]

[28]

[29] Vgl.: [LeMS07]

[30] Vgl. [Alby07], Kap. 9.2

[31]

[32]

[33]


| | | | |
Tausche dein Hausarbeiten