Agile Entwicklung von Web 2.0 Applikationen mit Ruby on Rails


Diplomarbeit, 2007
139 Seiten, Note: 1,3

Leseprobe

Inhaltsverzeichnis

1 Einleitung
1.1 Motivation und Ziel der Arbeit
1.2 Aufbau der Arbeit

2 Begriffserklärungen und Definitionen
2.1 Web
2.2 Framework, Programmbibliothek
2.3 Objektorientierung
2.4 Agile Softwareentwicklung
2.5 Ruby on Rails

3 Web
3.1 Einleitung
3.2 O’Reillys Prinzipien des Web 2.0
3.2.1 Einleitung
3.2.2 Das Web als Plattform
3.2.3 Die Nutzung kollektiver Intelligenz
3.2.4 Die Daten als nächstes „Intel Inside“
3.2.5 Abschaffung des Software-Lebenszyklus
3.2.6 Lightweight Programming Models (LPMs)
3.2.7 Software über die Grenzen einzelner Geräte hinaus
3.2.8 Benutzerführung (Rich User Experiences)
3.2.9 Zusammenfassung und Beschreibung der zentralen Kennzeichnung des Web 2.0
3.3 Die Gefahren des Web2.0
3.3.1 Die Daten
3.3.2 Cyber-Stalking
3.3.3 Barrierefreiheit
3.3.4 Hackerangriffe
3.3.5 Andere Gefahren

4 Ruby on Rails
4.1 Einleitung
4.2 Die Prinzipien
4.2.1 Model-View-Controller (MVC)
4.2.2 Konvention über Konfiguration
4.2.3 DRY (don’t repeat yourself)
4.3 Ordnerstruktur und Rails-Umgebungen
4.3.1 Ordnerstruktur
4.3.2 Rails-Umgebungen
4.4 Rails erweitern
4.4.1 RubyGem
4.4.2 Rails-Plugins
4.5 Generatoren
4.5.1 Scaffold-Generator
4.5.2 Weitere Generatoren
4.6 Versions- und Migrationskontrollen
4.6.1 Migrationskontrolle
4.6.2 Versionskontrolle
4.7 Internationalisierung
4.8 Webservices
4.9 E-Mail
4.10 Tests
4.10.1 Test-Datenbank
4.10.2 Verzeichnisstruktur
4.10.3 Unit-Tests
4.10.4 Funktionale Tests
4.10.5 Integration-Tests
4.10.6 Test-Fixtures
4.10.7 Mocks
4.10.8 Brakepointing
4.11 Rails-Helper
4.11.1 HTML-Tag
4.11.2 Pagination
4.11.3 Formatierung
4.11.4 Debug, Benchmark, Cache
4.11.5 RIA
4.11.6 SQL-Helper
4.11.7 Validierung
4.11.8 Callback
4.12 Skalierbarkeit
4.13 Sicherheit
4.13.1 Barrierefreiheit
4.13.2 Hackerangriffe
4.14 Rails-Anwendungen in der Praxis
4.15 Rails und Web 2.0
4.15.1 Einleitung
4.15.2 Das Web als Plattform nutzen
4.15.3 Die Nutzung kollektiver Intelligenz
4.15.4 Die Daten als nächstes „Intel Inside“
4.15.5 Abschaffung des Software-Lebenszyklus
4.15.6 Lightweight Programming Models (LPM)
4.15.7 Software über die Grenzen einzelner Geräte hinaus
4.15.8 Benutzerführung (Rich User Experiences)
4.15.9 Zusammenfassung

5 Agile Softwareentwicklung
5.1 Begriffsklärung
5.1.1 Software-Entwicklung
5.1.2 System
5.1.3 Modell
5.1.4 Agil
5.1.5 Methode
5.2 Einleitung
5.3 Traditionelle Softwareentwicklung
5.3.1 Wasserfall-Modell
5.3.2 V-Modell
5.3.3 Zusammenfassung
5.4 Das agile Manifest
5.4.1 Einleitung
5.4.2 Werte
5.4.3 Prinzipien
5.4.4 Agile Praktiken
5.4.5 Agile Methodiken
5.5 Extreme Programming (XP)
5.5.1 Einleitung
5.5.2 Werte
5.5.3 Grundprinzipien
5.5.4 Rollen
5.5.5 Prozess
5.5.6 Praktiken
5.5.7 Anwendbarkeit
5.5.8 Zusammenfassung

6 Vorgehensweise und Methodik
6.1 Einleitung und Wahl der Evaluationsmethode
6.2 Vorbereitung der Evaluation
6.2.1 Einleitung
6.2.2 Leichtgewichtigkeit/Einfachheit
6.2.3 Feedback
6.2.4 inkrementell/iterative Entwicklung
6.2.5 Auf Änderungen ausgelegter Softwareentwicklungsprozess
6.2.6 Eignung von Ruby on Rails für die agile Softwareentwicklung
6.3 Überlegungen zu Leistungsstandards

7 Durchführung und Präsentation der Ergebnisse
7.1 Einleitung
7.2 Dokumentation der Untersuchungsdurchführung und Präsentation der Ergebnisse
7.2.1 Leichtgewichtigkeit des Frameworks
7.2.2 Gute Lesbarkeit des Programmcodes
7.2.3 Bereitstellung von Funktionalitäten zur Erstellung leichtgewichtiger Technologien
7.2.4 Bereitstellung von Funktionalitäten zur Erstellung leichtgewichtiger Dokumentationen
7.2.5 Unabhängige Test-Umgebung für Programmtests
7.2.6 Automatisierte Unit-Tests
7.2.7 Bereitstellung von sonstigen Funktionalitäten zur zügigen Feedbackgewinnung
7.2.8 Bereitstellung von Funktionalitäten zur zügigen Prototyp-Entwicklung
7.2.9 Bereitstellung von Funktionalitäten zur inkrementell/iterativen Softwareentwicklung
7.2.10 Objektorientierte Softwareentwicklung
7.2.11 Zentrale Konfigurationsmöglichkeiten des Frameworks
7.2.12 Bereitstellung von Funktionalitäten zur Erweiterbarkeit des Frameworks
7.2.13 Bereitstellung von Funktionalitäten zur einfachen Änderbarkeit von Software
7.2.14 Eignung für die agile Softwareentwicklung

8 Diskussion
8.1 Einleitung
8.2 Bewertung der Ergebnisse und Ableitung von Schlussfolgerungen
8.2.1 Leichtgewichtigkeit/Einfachheit
8.2.2 Feedback
8.2.3 Inkrementell/iterative Entwicklung
8.2.4 Auf Änderungen ausgelegter Softwareentwicklungsprozess
8.2.5 Eignung für die agile Softwareentwicklung

9 Zusammenfassung

10 Ausblick

Glossar

Abbildungsverzeichnis

Literaturverzeichnis

Thesen zur Diplomarbeit

1 Einleitung

Seit den 60er Jahren, mit Beginn der immer stärker werdenden Nutzung von Computern, begannen auch Unternehmen die Vorteile dieser technischen Errungenschaft für sich zu ent- decken. Im Laufe der Zeit stellten sie stetig wachsende und komplexere Anforderungen an die zu entwickelnde Software. Diese wachsenden Anforderungen brachten die Softwareent- wicklungsbranche an ihre Grenzen, was sich durch viele gescheiterte Projekte äußerte. Es wurde zunehmend von einer Softwarekrise gesprochen. Mittels Adaptierung typischer Vor- gehensweisen der traditionellen Ingenieursdisziplin wurde versucht, den ganzheitlichen Prozess der Softwareentwicklung strukturierbar und kalkulierbar zu machen und somit diese Krise zu beenden. Doch die letzen Jahre zeigten, dass ein Softwareentwicklungsprozess keinesfalls planbar und berechenbar wie beispielsweise ein Hausbau ist, sondern sich in ständiger Bewegung befindet. [Dogs & Klimmer 2005: 15-18] Diese Erkenntnisse versucht, die seit dem Jahr 2000 immer populärer werdende agile Softwareentwicklung zu berück- sichtigen, welche eines von drei Themen dieser Arbeit ist.

Desweiteren wird das Thema „Web 2.0“ Bestandteil dieser Arbeit sein. In den letzten Jahren ist der Begriff „Web 2.0“ immer mehr zum Trendthema geworden. In den Medien wurde und wird, sowohl positiv als auch zunehmend kritisch, darüber berichtet. (siehe [Ristau 2006] [Lennartz 2006] [Braun & Weber 2006] [Puscher 2007]) Der Inhalt des Marketingbegriffs „Web 2.0“ entstand aus Beobachtungen der in den letzten Jahren neu entstandenen, erfolg- reichen Internetunternehmen und der im Jahr 2000 stattgefundenen Internetkrise. Diese äußerte sich dadurch, dass die damals an den Börsen gelisteten Internetunternehmen ihren Börsenwert innerhalb von zwei Jahren auf ein Minimum reduzierten oder sogar Zahlungs- unfähigkeit anmelden mussten. Ein Grund dafür waren die zu hoch gesteckten Erwartungen an diese Internetunternehmen. Dieses Ereignis des Wertverfalls wurde später mit dem Marketing-Ausdruck das „Platzen der Dotcom Blase“1 beschrieben. [o.A. o.J.: Lexikon Freenet: Definition Dotcom-Blase ]

Ein weiteres Thema dieser Arbeit wird Ruby on Rails (kurz Rails) sein. Rails ist ein junges Framework2, welches innovative Neuerungen für die Entwicklung von datenbankbasierten Internetanwendungen3 bereitstellen soll. Auch über Rails wurde in der letzten Zeit viel in den Medien berichtet (siehe [Lenz 2007] [Broersma 2006] [Hinterndorfer 2006]). Es soll den Entwicklern einen „…neue[n] Ansatz für die Web-Entwicklung“ [Hinterndorfer 2006] bieten.

1.1 Motivation und Ziel der Arbeit

Die agile Softwareentwicklung soll, durch ihre andere Sichtweise auf den ganzheitlichen Prozess der Softwareentwicklung, helfen, die Krise in dieser Branche zu beenden. Web 2.0 beschreibt eine veränderte Sichtweise auf das Internet und soll damit neue Ansatzpunkte für die Nutzung des Internets geben. Ruby on Rails soll, als Werkzeug zur Erstellung von Webapplikationen, eine andere Herangehensweise für die Entwicklung dieser aufzeigen.

Die Motivation dieser Arbeit besteht darin, all diese Themen miteinander zu verbinden. Der bis heute teils unverstandene Begriff „Web 2.0“ wird näher beleuchtet und dessen zentrale Kennzeichen herauskristallisiert. Anschließend wird Ruby on Rails näher vorgestellt, um darauf folgend aufzuzeigen, ob sich Ruby on Rails für die Entwicklung von Web 2.0 Appli- kationen eignen könnte. Der Vorgang der agilen Softwareentwicklung soll näher betrachtet und abschließend das Potential von Ruby on Rails für die agile Softwareentwicklung evalu- iert werden.

Heinemeier Hansson4 und Thomas gehen in ihrem Buch „Agile Webentwicklung mit Rails“ in dem Abschnitt „Rails ist agil“ auf nur eineinhalb Seiten auf die Agilität von Rails ein. Sie schreiben, dass „Agilität […] [ein] Bestandteil der Struktur von Rails“ [Thomas & Heinemeier Hansson 2006: 3] ist und „Statt ständig zu versuchen, einen Zusammenhang zwischen den Rails-Prozessen und den agilen Grundsätzen herzustellen, haben wir uns entschieden, das Framework für sich selbst sprechen zu lassen“ [Thomas & Heinemeier Hansson 2006: 4]. Diese Vorgehensweise kann für ein Lehrbuch über Ruby on Rails durchaus praktikabel sein, aber die sehr kurze Abhandlung von Agilität stellt eine weitere Motivation für diese Arbeit dar, wissenschaftlich zu prüfen, ob sich Rails wirklich für die agile Softwareentwicklung eig- net.

1.2 Aufbau der Arbeit

Zum Grundverständnis des Themas der Arbeit werden in dem Kapitel „Begriffserklärung und Bedeutung“ essentielle Kenntnisse vermittelt.

Im dritten Kapitel wird beschrieben, was sich hinter dem Begriff „Web 2.0“ verbirgt. Darüber hinaus werden die zentralen Kennzeichen von Web 2.0 in knapper, ausformulierter Form fixiert und anschließend auf die Gefahren von Web 2.0 hingewiesen.

In dem Kapitel über Ruby on Rails wird dieses Entwicklungsframework präzise dargestellt. Warum erfreut sich gerade Ruby on Rails in den letzten Monaten immer wachsender Be- liebtheit bei Entwicklern von Webapplikationen? Welche Prinzipien vertritt Ruby on Rails und welche Funktionalitäten bietet es? Im späteren Verlauf dieses Kapitels soll geklärt werden, ob sich Ruby on Rails für die Entwicklung von Web 2.0 Applikationen eignen könnte.

Im darauf folgenden Kapitel wird das Konzept der agilen Softwareentwicklung beschrieben und die Unterschiede zur traditionellen Softwareentwicklung aufgezeigt. Anschließend wird das „Agile Manifest“5 näher betrachtet und der populärste agile Vertreter „Extreme Program- ming“ ausführlich vorgestellt.

Die Vorgehensweise und verwendete Methodik für die Evaluation werden im Kapitel sechs dargelegt. Es werden Hypothesen aufgestellt und Wertekriterien für die im anschließenden Kapitel durchzuführende Messung des Potentials von Ruby on Rails für die agile Software- entwicklung herausgearbeitet.

Im Kapitel „Durchführung und Präsentation der Ergebnisse“ wird die Evaluation durch- geführt, dokumentiert und die Ergebnisse präsentiert. Diese Ergebnisse werden im Kapitel acht vor dem Hintergrund der aufgestellten Hypothesen diskutiert, bewertet und daraus Schlussfolgerungen abgeleitet.

Abschließend sollen die Ergebnisse dieser Arbeit zusammengefasst und vor dem Hinter- grund, ob sich Ruby on Rails für die agile Entwicklung von Web 2.0 Applikationen eignen könnte, zusammengeführt werden.

2 Begriffsklärung und Definitionen

Dieses Kapitel soll Grundkenntnisse vermitteln, welche zu einem besseren Verständnis des Diplom-Themas beitragen.

2.1 Web 2.0

An dieser Stelle soll der Begriff Web 2.0 kurz umrissen werden. Eine nähere Beschreibung von „Web 2.0“ liefert das Kapitel drei.

Tim O’Reilly, Eigentümer des gleichnamigen Computerbuchverlages, prägte mit seinem Artikel „What is Web 2.0: Design Patterns and Business Models for the Next Generation of Software“ (eng. Was ist Web 2.0: Designvorlagen und Geschäftsmodelle für eine neue Software-Generation) am 30.09.2005 den Marketingbegriff „Web 2.0”. Er umschreibt mit dem Begriff „Web 2.0“ eine veränderte Sichtweise auf das Medium Internet. Das Internet wird zum „Mitmach-Web“ und zu einer „Service-Plattform“.

In seiner Definition von Web 2.0 nennt O’Reilly sieben Prinzipien von Web 2.0 und gibt Em- pfehlungen für erfolgreiche Internetunternehmen (siehe Kapitel 3). Als Reaktion auf seinen Artikel entstanden viele Web 2.0 Anwendungen und das Thema Web 2.0 gewann an Popu- larität.

2.2 Framework, Programmbibliothek

Frameworks und Bibliotheken verfolgen ein gemeinsames Ziel. Sie sollen die Produktivität während der Softwareentwicklung fördern. Dies wird erreicht, indem wiederkehrende Funk- tionalitäten gebündelt und dem Softwareentwickler zur Verfügung gestellt werden. [Crane, Pascarello & James 2006: 132]

Programmbibliothek

In Programmbibliotheken werden Programmteile gebündelt, welche „…durch gemeinsame Eigenschaften miteinander verbunden sind.“ [Kucera 2002: 867]. Bibliotheken sind nicht ei- genständig lauffähig. Sie sind Hilfsmodule, die dem Programm zur Verfügung gestellt wer- den. [Claus & Schwill 2001: 506]

Framework

Frameworks geben dem Entwickler ein Programmgerüst für den nicht anwendungs- spezifischen6 Teil der Software vor. So kann sich der Programmierer auf die Entwicklung der anwendungsspezifischen Teile der Software konzentrieren. Frameworks sind in der Regel nicht ohne den anwendungsspezifischen Teil der Software lauffähig. [Gumm & Sommer 2006: 817]

2.3 Objektorientierung

Der Begriff Objektorientierung wird in den Kapiteln vier bis acht benötigt und soll daher an dieser Stelle näher beleuchtet werden.

Bei der objektorientierten Programmierung (kurz OOP) werden „…reale Objekte der Welt in entsprechenden Datenobjekten…“ [Penon 2007, Einführung ] dargestellt. Die Ziele der OOP sind dabei Probleme zu vereinfachen und einen zuverlässigen, wiederverwendbaren und er- weiterbaren Programmcode zu erzeugen. [Penon 2007, Einführung ] Bei der OOP werden speicherbare Größen als Objekte aufgefasst. „Gleichartige Objekte […] können zu Klassen zusammengefasst werden.“ [Gumm & Sommer 2006: 809]. Die Merkmale bzw. Eigenschaften dieser Klassen werden in der Softwaretechnik Attribute und Operationen (Methoden) genannt. Ein Objekt kann Teile von anderen Objekten enthalten. Bei der OOP wird dieser Sachverhalt durch Vererbung umgesetzt. Dabei erbt das Objekt mit den zusätz- lichen Eigenschaften, die Eigenschaften des Elternobjektes. [Gumm & Sommer 2006: 809 ff]

In der Abbildung 2.1 wird das Prinzip der Vererbung an einem Beispiel dargestellt. Der Mitarbeiter stellt die Elternklasse dar und der Angestellte und Arbeiter erbt Eigenschaften vom Mitarbeiter. Dabei werden die im Programmcode explizit programmierten Eigenschaften schwarz und vererbte Eigenschaften grau dargestellt.

Abbildung in dieser Leseprobe nicht enthalten

Abb. 2.1 Modell einer Vererbung bei der OOP [Penon 2007]

Weitere Prinzipien der OOP sind:

- Abstraktion: „Abstraktion bezeichnet den Prozess, die für eine Darstellung wesentlichen Attribute oder Merkmale über etwas herauszufinden und die unwesentlichen wegzulassen.“ [Penon 2007, Kapselung und Geheimnisprinzip ]
- Kapselung: „In Verbindung mit dem Prinzip der Abstraktion führt das Konzept der Kapselung zu Softwarebausteinen, die ingenieurmäßig zu großen Softwaresystemen zusammengesetzt werden können.“ [Penon 2007, Kapselung und Geheimnisprinzip ]
- Modularisierung: „Diese soll den Programmierer dabei unterstützen, die Repräsentation der Daten7 und der Operanten, die auf den Daten operieren, zusammen zu halten und gemeinsam zu entwickeln und zu pflegen.“ [Gumm & Sommer 2006: 172, 173]

2.4 Agile Softwareentwicklung

Die agile Softwareentwicklung beschreibt eine veränderte Sichtweise auf den ganzheitlichen Prozess der Softwareentwicklung. Sie wird nicht als planbar im Sinne der traditionellen Ingenieurswissenschaften angesehen, sondern als „…ein kooperatives Erfinder- und Kom- munikationsspiel…“ [Cockburn 2003: 51] verstanden. Nicht mehr Prozesse, sondern Individuen und Interaktionen rücken in den Mittelpunkt des ganzheitlichen Softwareentwick- lungsprozesses. Viele Werte, Prinzipien und Praktiken der agilen Softwareentwicklung sind auf Änderungen während des Entwicklungszeitraumes ausgerichtet.

2.5 Ruby on Rails

Ruby on Rails (kurz Rails) ist ein Framework zur Entwicklung von datenbankbasierten Web- anwendungen. Rails wird auch als Entwicklungsframework bezeichnet, da es zu Entwicklung von Applikationen konzipiert ist. Rails verfolgt dabei die Prinzipien „MVC (Model View Con- troller)“, „Konvention über Konfiguration“ und „DRY (Don’t repeat yourself)“. Das konse- quente Umsetzen dieser Prinzipien in Rails und das zur Verfügung stellen von zusätzlichen Funktionalitäten sollen ein effizientes Entwickeln von datenbankbasierten Webanwendungen ermöglichen. Des Weiteren bietet Rails Funktionalitäten, welche die Entwicklung von Web 2.0 Anwendungen erleichtern sollen.

3 Web 2.0

3.1 Einleitung

Seit eineinhalb Jahren ist der Begriff „Web 2.0“ immer mehr zum Trendthema geworden. In den Medien, besonders im Internet, wird ausgiebig über dieses Thema diskutiert8. Es ent- stehen stetig neue Websites und Dienste, die dem Web 2.0 zu zuordnen sind.9

Eine Website bezeichnet einen Auftritt im Internet, inklusive seiner Hierarchien, wie den einzelnen Seiten und den internen und externen Hyperlinks10 [Kucera 2002: 1775]. Ein Dienst beschreibt eine Dienstleistung. In der Informationstechnologie (kurz IT) beschreibt der Begriff „Dienst“ das zur Verfügung stellen von Dienstleitungen eines Anbieters für einen Nutzer. Gemäß Client-Server-Modell wird hierbei die anbietende Seite als Server und die nutzende Seite als Client definiert. Beispiele für Dienste im Internet sind das Bereitstellen von Suchfunktionen, das Verwalten elektronischer Briefkästen oder das Erteilen von Aus- künften. [Claus & Schwill 2002: 187]

Doch was ist Web 2.0 und was sind Web 2.0 Anwendungen?

Im Oktober 2004 fand erstmals eine durch O’Reilly Media (dem gleichnamigen Computer- buchverlag) organisierte Konferenz für Webentwickler statt. Diese sollte mit einem einschlä- gigen Marketingbegriff benannt werden. Man einigte sich auf die Bezeichnung „Web 2.0“. [Scholl & Neff o.J.]

Mit der ersten Web 2.0 Konferenz im Jahre 2004 entstand auch eine „…Debatte um den Wesenskern…“ [Scholl & Neff o.J.] von Web 2.0. Tim O’Reilly, Eigentümer von O’Reilly Media, versuchte deshalb am 30.09.2005 in seinem Artikel „What is Web 2.0: Design Patterns and Business Models for the Next Generation of Software “ [O’Reilly 2005] den Begriff Web 2.0 zu definieren. Doch auch O’Reillys Definition beseitigte bis heute nicht alle Unklarheiten. [Lennartz 2006] O’Reilly Media, welche sich die Bezeichnung „Web 2.0“ rechtlich schützen ließ, popularisiert den Begriff „Web 2.0“ bis heute in seinen Publikationen und seiner Web 2.0 Konferenzreihe. [Gumm & Sommer: 660]

Im Folgenden dieses Kapitels soll erklärt werden, was O’Reilly unter Web 2.0 versteht. Es sollen die zentralen Kennzeichen des Web 2.0 herauskristallisiert werden. Hierfür wird hauptsächlich O’Reillys Artikel „What is Web 2.0“ [O’Reilly 2005] als Quelle herangezogen, da sie sich als richtungweisend erwies (siehe Kapitel 1).

3.2 O’Reillys Prinzipien des Web 2.0

3.2.1 Einleitung

O’Reilly sah im „Platzen der Dotcom Blase“ (siehe Kapitel 1) eine Marktbereinigung, aus welcher Internetunternehmen mit wirklichen Innovationen als Sieger hervorgingen. In einer Marktbereinigung sieht er den Grundstein für „…eine aufstrebende Technologie…“ [O’Reilly 2005, Einleitung ], um wirtschaftlich zu werden. Des Weiteren beobachtete er, dass seit dem Jahr 2001 vermehrt erfolgreiche Websites von Internetunternehmen mit „…interessante[n] neue[n] Anwendungsmöglichkeiten…“ [O’Reilly 2005, Einleitung ] entstanden. In seinem Artikel „What is Web 2.0“ schließt O’Reilly von den Erfolgsfaktoren dieser Internet- unternehmen auf seine Prinzipien von Web 2.0.

O’Reilly nennt sieben Prinzipien von Web 2.0:

- Das Web als Plattform
- Die Nutzung kollektiver Intelligenz
- Die Daten als nächstes „Intel Inside“
- Abschaffung des Software-Lebenszyklus
- Lightweight Programming Models (LPMs)
- Software über die Grenzen einzelner Geräte hinaus
- Benutzerführung (Rich User Experiences)

Er erklärt Web 2.0 anhand von Beispielen und leitet davon Kernkompetenzen für Internet- unternehmen ab, welche auf diesem Sektor erfolgreich sein wollen. Er schreibt dazu: „Aber bedenken Sie dabei, dass hervorragende Leistungen in einem dieser Bereiche aufschluss- reicher sein können als wenige kleine Schritte in allen sieben“ [O’Reilly 2005, Kernkom- petenzen von Internetunternehmen im Web 2.0 ].

Er fasst folgende Kernkompetenzen eines erfolgreichen Web 2.0 Unternehmens zusammen [O’Reilly 2005, Kernkompetenzen von Internetunternehmen im Web 2.0 ]:

- „Dienste, keine Paketsoftware, mit kosteneffizienter Skalierbarkeit
- Kontrolle über einzigartige, schwer nachzubildende Datenquellen, deren Wert pro- portional zur Nutzungshäufigkeit steigt
- Vertrauen in Anwender als Mitentwickler
- Nutzung kollektiver Intelligenz
- Erreichen des „Long Tail“ mittels Bildung von Communities etc.
- Erstellung von Software über die Grenzen einzelner Geräte hinaus
- Leichtgewichtige User Interfaces, Entwicklungs- und Geschäftsmodelle“

Die Eigenschaften der oben genannten Prinzipien von Web 2.0 sollen nachfolgend auf Grundlage von O’Reillys Artikel erläutert werden. Die inhaltliche Bedeutung der erwähnten Kernkompetenzen eines erfolgreichen Web 2.0 Unternehmens werden dabei ihre volle Klar- heit entwickeln. Weiterhin sollen die zentralen Kennzeichen von Web 2.0 herausgearbeitet werden. Diese werden zur besseren Sichtbarkeit unterstrichen dargestellt.

3.2.2 Das Web als Plattform

O’Reilly schreibt, dass ein Web 2.0 Unternehmen das Internet als eine Plattform nutzt [O’Reilly 2005, Das Web als Plattform ]. Eine Plattform beschreibt in der Informations- technologie die Umgebung, inklusive Betriebssystem und Hardware, auf welcher Software läuft. [Claus & Schwill 2001: 494].

Anhand seiner Mindmap über Web 2.0 will O’Reilly verdeutlichen, was er mit dem Prinzip „Das Web als Plattform“ kommunizieren will.

Abbildung in dieser Leseprobe nicht enthalten

Abb. 3.1 O’Reillys Mindmap über Web 2.0 [O’Reilly 2005]

Im Mittelpunkt der Abbildung erscheint „The Web as Platform“ als Strategie für „… eine Ansammlung von Prinzipien und Praktiken…“ [O’Reilly 2005, Das Web als Plattform ], welche das Web 2.0 symbolisieren. O’Reilly sagt, dass eine Web 2.0 Anwendung ein „…größeres Verständnis für das Wesen dieser Plattform…“ [O’Reilly 2005, Das Web als Plattform ] auf- bringen muss.

In O’Reillys „Mindmap über Web 2.0“ findet sich folgendes wieder:

- In Teilen seine „Prinzipien über Web 2.0“
- seine „Kernkompetenzen eines erfolgreichen Web 2.0 Unternehmens“
- weitere Stichworte, wie z.B. „Trust your user“, „Granular Addressability of content“
- Beispiele von Web 2.0 Anwendungen

Im weiteren Verlauf des Kapitels über „Web 2.0“ werden die Aspekte der in der Mindmap erwähnten Prinzipien und Praktiken verdeutlicht.

„The Long Tail“ ist ein Beispiel O’Reillys, für die Strategie „das Web als Plattform“ zu nutzen. Der Marketingbegriff “The Long Tail” beschreibt, den Erfolg von der Summe vieler Nischen- produkte (Produkte mit wenig potentiellen Käufern) gegenüber wenigen Massenprodukten (Produkte mit vielen potentiellen Käufern) im Internet, durch Ausnutzung der Vorteile des Internets. Ein Produkt bezeichnet hier eine Ware oder Dienstleistung.

Abbildung in dieser Leseprobe nicht enthalten

Abb. 3.2 „The Long Tail“ (Signalisiert durch den hellgrauen Bereich) [Aderson 2005]

In der Grafik zeigt der Übergang vom dunkelgrauen in den hellgrauen Bereich den Übergang vom Massenprodukt zum Nischenprodukt. Der hellgraue Bereich zeigt den Erfolg einer großen Anzahl von Nischenprodukten, welcher im Vergleich zu dem dunkelgrauen Bereich (stellt den Erfolg weniger Massenprodukte dar) in etwa gleichwertig ist. Aufgrund der Tatsachen, dass ein Anbieter im Internet zu geringen Kosten (z.B. Speicherkosten auf Servern sind geringer als Lagerkosten eines Produktes in einem Geschäft) sehr viele Nischenprodukte anbieten und durch die Globalität des Internets sehr viele Menschen erreichen kann, wird er laut der „Long Tail“ Theorie mit der Summe seiner Nischenprodukte Erfolg haben. [Anderson 2005]

O’Reilly nennt als Beispiel der Nutzung des „Long Tail“ Googles Werbeservice AdSense (google.com/adsence). Mit AdSense können kontextabhängige Werbeinhalte in Textform in jede Website eingebunden werden (auch kleine Websites mit wenigen Besuchern können von diesem Dienst Gebrauch machen). Goggle nutzt also „…die kollektive Macht vieler kleiner Seiten, die den Hauptbestandteil des Webs bilden.“ [O’Reilly 2005, Das Web als Plattform ].

O’Reilly beschreibt am Beispiel der Suchmaschine Google (google.de) weitere Aspekte des Prinzips „Das Web als Plattform“. Google ist eine „…native Web-Anwendung, die niemals verpackt und verkauft, sondern als Service angeboten…“ [O’Reilly 2005, Das Web als Plattform ] wird. Für Googles Software gibt es keine Releases11, denn sie wird kontinuierlich verbessert. Googles Software wird auf Servern ausgeführt, ist kostengünstig skalierbar und wird niemals ausgeliefert. Sie muss nicht auf andere Plattformen, z.B. Windows XP, MacOs oder Linux, portiert werden und für ihre Nutzung benötigt man nur einen standardkonformen Browser12. Google benötigt für seinen Service eine große Kompetenz im Bereich des Daten- bankmanagements. O’Reilly fasst folgendes über Google zusammen: „…Google [agiert] im Raum zwischen Browser, Suchmaschine und Zielserver als Vermittler zwischen dem User und der Online-Welt“ [O’Reilly 2005, Das Web als Plattform ].

O’Reilly schreibt „…der Wert der Software verhält sich proportional zu[m] Ausmaß und [der] Dynamik der Daten“ [O’Reilly 2005 , Das Web als Plattform ]. Er nennt noch einen weiteres Schlüsselprinzip des Web 2.0: „Ein Dienst wird umso besser, je mehr Leute ihn nutzen“ [O’Reilly 2005, Das Web als Plattform ].

O’Reilly scheint mit seinem Prinzip „Das Web als Plattform“ kommunizieren zu wollen, dass ein erfolgreiches Internetunternehmen ein neues Verständnis für das Internet entwickelt hat. Dieses neue Verständnis nennt er Web 2.0.

Frank Ristau schreibt dazu: „Reine Software-Programme auf dem heimischen PC werden also durch Web 2.0 in Frage gestellt, das Internet selbst wird zur Anwendung“ [Ristau 2005]. Schroll und Neff formulieren es so: „Das W eb wird zur Service-Plattform“ [Schroll & Neff o.J.].

3.2.3 Die Nutzung kollektiver Intelligenz

O’Reilly bezeichnet dieses Prinzip des Web 2.0 als „das zentrale Prinzip“ [O’Reilly 2005: Die Nutzung der kollektiven Intelligenz ] und als einen essentiellen Teil des Web 2.0. [O’Reilly 2005, Die Nutzung der kollektiven Intelligenz ]

Kollektive Intelligenz bedeutet folgendes: „…Kommunikation innerhalb einer sozialen Gemeinschaft schafft intelligente Verhaltensweisen des ‚Superorganismus’, d.h. aller Indivi- duen.“ [Wikipedia 2006: Kollektive Intelligenz ].

Hyperlinks sind referenzielle Verknüpfungen und „…realisieren Verweise zwischen Ein- heiten, die in irgendeiner Beziehung zueinander stehen“ [Claus & Schwill 2001: 291]. Das World Wide Web enthält als charakteristisches Merkmal Hyperlinks, welche Webseiten und andere Dokumente miteinander verbinden (siehe Abbildung 3.3). O’Reilly schreibt dass „…Hyperlinks […] die Grundlage des Web…“ [O’Reilly 2005: Die Nutzung der kollektiven Intelligenz ] bilden und vergleicht Hyperlinks mit den Synapsen eines „globalen Gehirns“ [O’Reilly 2005: Die Nutzung der kollektiven Intelligenz ]. Global deswegen, weil sich das Internet weltweit erstreckt.

Abbildung in dieser Leseprobe nicht enthalten

Abb. 3.3 modellhafter Ausschnitt des World Wide Web [Gumm & Sommer 2006: 629]

Die Abbildung 3.3 zeigt einen modellhaften Ausschnitt des World Wide Web. Dabei symbolisieren die Pfeile die Hyperlinks.

Um die „kollektive Intelligenz“ des „globalen Gehirns“ des Internets nutzen zu können, muss man sich die „Linkstruktur des WWW“ [O’Reilly 2005, Die Nutzung der kollektiven Intelli- genz ], die Hyperlinks, zu nutze machen. In seinem Abschnitt über die „Nutzung der kollek- tiven Intelligenz“ beschreibt O’Reilly an mehreren Beispielen, wie Web 2.0 Anwendungen diesen Aspekt umsetzen.

Beispielsweise wurde der Yahoo Katalog (de.dir.yahoo.com) durch seine Hyperlinksamm- lung erfolgreich. Diese Sammlung war „…eine Aggregation der besten Ideen von aber- tausenden Web-Nutzern.“ [O’Reilly 2005, Die Nutzung der kollektiven Intelligenz ]. Eine Technik, welche auf Hyperlinks basiert, ist RSS (Really Simple Syndication, eng: wirklich einfache Verbreitung). „RSS erlaubt es, eine Seite nicht nur zu verlinken, sondern sie zu abbonieren und bei jeder Änderung informiert zu werden“ [O’Reilly 2005, Die Nutzung der kollektiven Intelligenz ]. RSS ist ein mächtigen Hyperlink, der in beide Richtungen kommu- nizieren kann [O’Reilly 2005, Die Nutzung der kollektiven Intelligenz ].

O’Reilly nennt als weiteres Beispiel das „Taggen“ von Inhalten. „Taggen erlaubt vielseitige, häufig überlappende Assoziierung, die der Arbeitsweise des Gehirns viel näher kommt als sture Kategorisierung“ [O’Reilly 2005, Die Nutzung der kollektiven Intelligenz ]. Flickr (flickr.com) und YouTube (youtube.com) beispielsweise lassen sich Inhalte durch ihre Nutzer anhand von Tags (eng. Kennzeichen, Bezeichnungsschild) beschreiben. So könnte das Bild einer roten Rose mit folgenden Tags belegt werden: Rose, Liebe, rot, schön, Nahaufnahme, Makro, Blume.

O’Reilly schreibt, dass „…die kollektive Intelligenz als eine Art Filter…“ [O’Reilly 2005, Die Nutzung der kollektiven Intelligenz ] angesehen werden kann. Wikipedia (de.wikipedia.org), die freie Online-Enzyklopädie, nutzt diese Art der Filterung, um „‚mit genügend wachsamen Augen […] alle Bugs sichtbar…’“ zu machen [O’Reilly 2005, Die Nutzung der kollektiven Intelligenz ]. James Suriowecki13 nennt diesen Aspekt "die Weisheit der Masse" [O’Reilly 2005, Die Nutzung der kollektiven Intelligenz ]. Durch die Möglichkeit, dass jeder Nutzer Wikipedia -Beiträge schreiben und bearbeiten kann, zeigt Wikipedia außerdem ein großes Vertrauen in den Anwender als Mitentwickler von Inhalten. Dieses Prinzip machen sich auch andere Web 2.0 Anwendungen, wie z.B. Flickr oder YouTube, zu nutze, auf welchen Nutzer Inhalte, in Form von Bildern oder Videos, für andere Nutzer schaffen. O’Reilly nennt diesen Aspekt von Web 2.0 in seiner Mindmap „Trust your User“.

Schroll und Neff schreiben dazu: „das Web wird zum Mitmach-Web“ und das Internet wird „…zunehmend zum Aktiv- und Kreativraum – statt passivem Medienkonsum zählt das Ein- bringen von Können und Wissen“ [Schroll & Neff o.J.]. Beteiligt sich der User an einem Service, trägt er mit Teilen seines Wissens zur Verbesserung des Services bei. Es kann also gesagt werden: die Gesamtheit des Wissens der User ist die „Weisheit der Masse“ und dieses Wissen ist durch Hyperlinks miteinander verbunden. RSS und Tags stellen Technologien dar, mit denen auf dieses Wissen zugegriffen werden kann.

3.2.4 Die Daten als nächstes „Intel Inside“

Warum nennt O’Reilly die Daten einer Web 2.0 Anwendung das „nächste Intel Inside“?

Intel (ein US-amerikanischer Halbleiterhersteller) begann 1991 mit einer neuen Marketing- kampagne. Auf Verpackungen, Prospekten und Computergehäusen wurde der Werbeslogan „Intel Inside“ publiziert. Damit wollte Intel darauf hinweisen, dass „…im Innern des betreffenden PCs ein original Intel Prozessor die eigentliche Arbeit des Computing verrich- tete“ [o.A. o.J.: Die Intel Geschichte: Der Weg zum Markenartikel ]. Die „Intel Inside“ Kampagne war erfolgreich. Intel machte damit „…auf seine verborgenen High-Tech-Produk- te aufmerksam“ [o.A. o.J.: Die Intel Geschichte: Der Weg zum Markenartikel ], seine Prozessoren, und etablierte „Intel Inside“ selbst als Markennamen.

NavTeq (navteq.com), ein Anbieter digitalen Kartenmaterials (Landkarten), imitierte Intels Kampagne, indem Endgeräte, wie Navigationsgeräte, mit dem Aufdruck „NavTeq Onboard“ ausgeliefert wurden. [O’Reilly 2005, Die Daten als nächstes „Intel Inside“ ]

O’Reilly schreibt dazu, „…dass die Kontrolle über die Daten selbst, den Geschäftsvorteil bildet…“ [O’Reilly 2005, Die Daten als nächstes „Intel Inside“ ] und sieht „…Datenbank- management als eine Kernkompetenz des Web 2.0“ [O’Reilly 2005, Die Daten als nächstes „Intel Inside“ ]. Doch er fügt hinzu, dass eine Web 2.0 Anwendung die Kontrolle über eine „…spezialisierte Datenbank…“ [O’Reilly 2005 , Die Daten als nächstes „Intel Inside“ ] haben muss, welche nur schwer durch Mitbewerber kopierbar sein darf.

Er führt als Beispiel das Online-Versandhaus Amazon (amazon.de) auf. Amazon entnimmt sein Angebot, wie seine Mitbewerber auch, aus einer zentralen Produktdatenbank. Im Gegensatz zur Konkurrenz baut Amazon diese aber unaufhörlich mit zusätzlichen Informa- tionen, wie z.B. Produktbewertungen durch Kunden, Coverbildern, eigenen Identifikations- nummern, aus und macht seine Datenbestände auf diesem Weg einzigartig. [O’Reilly 2005, Die Daten als nächstes „Intel Inside“ ]

O’Reilly nennt noch weitere Wege für Internetunternehmen sich eine „spezialisierte Datenbank“ aufzubauen. Es führt als Beispiel „Mashup-Anwendungen“ auf. Eine Mashup- Anwendung bedient sich über ein API (application programming interface) eines Webservices der Daten bereits bestehender Web 2.0 Anwendungen und beleuchtet diese unter einem bestimmten Aspekt neu [Braun & Weber 2006, S.93].

Einen Mashup-Wettbewerb der Fachzeitschrift c’t im Jahr 2006 gewann beispielsweise ein Dienst namens Musikportl (musicportl.com). Dieser Dienst sammelt verschiedene Informa- tionen über Musiker bzw. Musikgruppen aus Fremddatenbanken (z.B. Videos von YouTube, Artikel von Wikipedia, Musik von LastFm, Bilder von Flickr, Produkte von Amazon). [Braun, Kiefer & Kopp 2006, S.103]. Eine Liste verfügbarer Webservices mit API und existierender Mashups ist unter www.programmableweb.com zu finden. Zurzeit (Stand: 15.01.2007) sind dort bereits 358 Webservices mit API und 1457 Mashups gelistet, welche auf diese Web- services aufbauen.

Andererseits ist es möglich, wie es beispielsweise MySpace (myspace.com) getan hat, sich eine eigene spezialisierte Datenbank basierend auf den Informationen seiner Community aufzubauen. Doch dies ist ein langwieriger Weg. Die User müssen animiert werden, sich mit Inhalten an dem Portal zu beteiligen. Um dies zu erreichen, sollten die Funktionalitäten des Portals den Bedürfnissen der Community angepasst werden. [Lennartz 2006]

3.2.5 Abschaffung des Software-Lebenszyklus

Eine Unterscheidungscharakteristik zwischen Web 2.0 Applikationen und typischen Desktop- Applikationen, wie z.B. Microsoft Word, besteht im Software-Lebenszyklus.

Während beispielsweise Microsoft in gewissen Abständen neue Versionen seiner Software- produkte veröffentlicht und damit nutzwillige User der Software zum Kauf der neusten Ver- sion nötigt, verbleiben viele Web 2.0 Anwendungen im „ewigen BETA-Status“ [O’Reilly 2005, Abschaffung des Software-Lebenszyklus ]. Eine im BETA-Status befindliche Software kenn- zeichnet eine vorläufige Version der Software, „…die ziemlich genau dem geplanten Produkt entspricht…“ [Kucera 2002: 121], an welcher aber noch Tests durchgeführt werden müssen. [Kucera 2002: 121]

Web 2.0 Anwendungen werden oftmals – meist unbemerkt von deren Nutzern – aktualisiert, verbessert und weiterentwickelt. Viele Web 2.0 Firmen bedienen sich dazu der Echtzeit- beobachtung der Nutzer, um entscheiden zu können, welche der neuen Funktionen von den Nutzern angenommen werden und so in dem Dienst verbleiben dürfen und welche wieder deaktiviert werden sollten. [O’Reilly 2005, Abschaffung des Software-Lebenszyklus ] „Ein Entwickler eines großen Onlinedienstes sagte dazu: ‚Wir veröffentlichen zwei oder drei neue Features pro Tag auf bestimmten Teilen der Seite. Wenn die Leute sie nicht nutzen, nehmen wir die wieder heraus. Und wenn die Leute sie mögen, weiten wir sie auf die gesamte Seite aus.’“ [O’Reilly 2005, Abschaffung des Software-Lebenszyklus ] „Carl Henderson, ein Hauptentwickler von Flickr, enthüllte, dass neue Versionen manchmal innerhalb von einer halben Stunde veröffentlicht werden.“ [O’Reilly 2005, Abschaffung des Software-Lebens- zyklus ]

Die genannten Aspekte zur Abschaffung des Software-Lebenszyklus unterstreichen ein weiteres Prinzip O’Reillys. Web 2.0 Anwendungen werden kontinuierlich weiterentwickelt. Kunden müssen sich nicht die neuste Version kaufen, sondern ihnen steht die aktuellste Software-Version immer im Internet zu Verfügung.

3.2.6 Lightweight Programming Models (LPMs)

Ein weiteres Prinzip von Web 2.0 besteht in der Bereitstellung und Nutzung von möglichst einfach gehaltenen Lightweight Programming Models. O’Reilly beschreibt LPM folgender- maßen [O’Reilly 2005, Lightweight Programming Models ]:

- „Unterstütze LPMs (Lightweight Programming Models), die lose gekoppelte Systeme ermöglichen“ – Es sollte versucht werden, LPMs möglichst bruchstückhaft in den Dienst einzubinden. So wird eine individuellere Verwendbarkeit erreicht.
- „Kooperiere ohne zu koordinieren“ – Bei einfachen Webservices geht es nicht darum zu kontrollieren, was am Ende mit den bereitgestellten Daten passiert. Es geht darum, die Daten bereitzustellen.
- „Gestalte mit Blick auf ‚Hackability’ und ‚Remixability’“ – Systeme wie das Web, AJAX und RSS haben eines gemeinsam: Die Barrieren zur Wiederverwendung sind extrem gering. Einfache Systeme lassen sich oft dafür verwenden, woran der Entwickler gar nicht gedacht hat und sind somit zukunftssicherer und individueller nutzbar.

O’Reilly beschreibt anhand von Webservices was er unter LPM versteht. Ein Webservice kann Fremdapplikationen seine Dienste über ein API14 (application programming interface) bereitstellen. Über das API können so die Fremdapplikationen mit dem Dienst kommuni- zieren. Während vor einigen Jahren für diese Art der Kommunikation meist auf SOAP15 (Simple Object Access Protocol) zurückgegriffen wurde, setzten sich in den letzten Jahren bei der Mehrzahl von Webservices andere Techniken durch, wie z.B. XML-RPC16 (Extensible Markup Language Remote Procedure Call) oder REST17 (Representational State Transfer). SOAP erfüllt nicht den leichtgewichtigen Ansatz, den O’Reilly beschreibt. SOAP funktioniert nur unter einer „…strengen Einhaltung von Formalien…“ [O’Reilly 2005 , Light- weight Programming Models ] und verursacht einen immens größeren Daten-Overhead (Mehraufwand an Daten im Verhältnis zum eigentlichen Informationsgehalt) als die anderen Ansätze. [O’Reilly 2005, Lightweight Programming Models ] REST beschreibt die Nutzung des http unter Einhaltung bestimmter Konvention bei der Client-Server-Kommunikation. Dabei wird die Nutzung der http-Methoden GET zum Abfragen einer Ressource, POST zum Ändern einer Ressource, PUT zum Hinzufügen einer Ressource und DELETE zum Löschen einer Ressource vorgeschrieben. [Bayer 2002]

Amazons Webservice, welcher sowohl als SOAP als auch REST Variante zur Verfügung steht, wird beispielsweise durch 95% der Nutzer über REST genutzt. Nur wenige, hochwertige B2B (Business to Business)-Verbindungen greifen dabei auf SOAP zurück [O’Reilly 2005, Lightweight Programming Models ]. Auch Google gab im Dezember 2006 bekannt, dass in Zukunft keine neuen Nutzer für seine SOAP-API mehr akzeptiert werden. Der Dienst wird zwar nicht eingestellt, jedoch will sich Google in Zukunft auf seine XML-RPC API konzentrieren [Braun 2006].

Auch das im Unterabschnitt 3.2.2 angesprochene RSS verdankt seinen Siegeszug im Web nicht nur seiner Mächtigkeit (ein in zwei Richtungen kommunizierender Hyperlink), sondern auch seinem einfach gehaltenen Design [O’Reilly 2005, Lightweight Programming Models ].

3.2.7 Software über die Grenzen einzelner Geräte hinaus

Jede Webanwendung ist schon aufgrund der Tatsache, dass sie im Internet bereitsteht, geräteunabhängiger als beispielsweise eine Desktop-Applikation für Windowsrechner. Jeder User benötigt für die Nutzung einer Webanwendung, unabhängig vom installierten Betriebs- system des Rechners oder sonstigem Gerät, nur einen standardkonformen Browser. [O’Reilly 2005, Software über die Grenzen einzelner Geräte hinaus ]

Tim O’Reilly verdeutlicht aber, dass auch Dienste, die nicht als Internetunternehmen in Erscheinung treten, zum Web 2.0 gezählt werden können. Diese Dienste setzen das Web äußerst wirksam, „…als unsichtbaren, integrierten Bestandteil ihrer Infrastruktur…“ ein [O’Reilly 2005, Software über die Grenzen einzelner Geräte hinaus ]. Als Beispiel nennt O’Reilly Apples iTunes (apple.com/de/itunes). ITunes ist sowohl ein gewaltiges datenbank- basiertes Webportal, auf welchem Musik und Videos zum Download angeboten werden, als auch ein Softwareprogramm, mit welchem die iTunes Inhalte verwaltet werden können. Musik, Videos und Podcasts sind nicht nur auf dem eigenen Computer, sondern auch auf dem mobilen iPod oder mithilfe von Apple TV auf dem Fernsehgerät anhör- oder anschau- bar. Ein Podcast ist ein Video- oder Musikdienst, welcher in mehren Folgen angeboten wird. Podcast nutzt RSS und bietet seinen Usern auf diesem Wege eine Art Abonnement der Podcast -Folgen an. Apple verfolgt seinen Weg weiter, denn auch das neuste Gerät (das iPhone) wird iTunes -kompatibel sein [Donath 2007].

3.2.8 Benutzerführung (Rich User Experiences)

Einen technischen Aspekt von Web 2.0 beschreibt O’Reilly mit seinem Prinzip „Benutzer- führung“. Er hebt dabei AJAX (Asynchronous JavaScript and XML) hervor.

Mit AJAX wird dem Nutzer der gleiche Komfort geboten, den auch typische Desktop- Anwendung bereitstellen. O’Reilly erwartet als Resultat des Einsatzes von AJAX in den nächsten Jahren viele neue Webanwendungen, welche entweder nur Desktop-Anwen- dungen kopieren oder völlig neu erdacht sind. [O’Reilly 2005, Benutzerführung ]

AJAX-Anwendungen arbeiten kumuliert18 schneller als klassische Webanwendungen, denn es werden „…nur die geänderten Bestandteile einer Seite vom Server übertragen […], nicht gleich die komplette Seite“ [Puscher 2007: 160]. Die Abbildung 3.4 verdeutlicht dieses anhand eines Vergleiches des kumulierten Datenverkehrs einer klassischen Webanwendung ohne AJAX und einer Webanwendung mit AJAX.

Abbildung in dieser Leseprobe nicht enthalten

Abb. 3.4 kumulierter Datenverkehr während der Nutzung einer klassischen Webanwendung ohne AJAX-Unterstützung (helle Linie) und einer Webanwendung mit AJAX-Unterstützung (dunkle Linie) [Crane, Pascarello & James 2006: 45]

Jesse James Garrett schreibt folgendes über AJAX: „‚Ajax ist keine einzelne Technologie. Ajax beinhaltet mehrere Technologien, jede mit ihrer ganz besonderen Daseinsberech- tigung, die auf neue und mächtige Art und Weise miteinander verbunden wurden. Im Einzel- nen handelt es sich um:

- Standardgerechte Präsentation mit XHTML und CSS
- Dynamisches Anzeigen und Interaktivität mittels Document Object Model (DOM)
- Datenaustausch und -manipulation mit XML und XSLT
- Asynchrone Datenabfrage unter Verwendung von XMLHttpRequest und schließlich JavaScript, das all dies zusammenfügt.’“ [O’Reilly 2005, Benutzer- führung ]

Abbildung in dieser Leseprobe nicht enthalten

Abb. 3.5 Modell einer AJAX-Kommunikation [Crane, Pascarello & James 2006: 59]

In der Abbildung 3.5 ist ein Modell einer AJAX-Kommunikation abgebildet. Der Webbrowser auf dem Endgerät des Nutzers wird hier durch den dunkleren Kasten symbolisiert. Gemäß Client-Server-Modell zeigt der obere Kasten die Clientseite und der untere die Serverseite. Führt der Nutzer nun eine Aktion, beispielsweise durch einen Mausklick, aus, wird die Aktion mittels JavaScript registriert. Dann werden die Informationen mit Hilfe von JavaScript in einem XmlHttpRequest-Objekt asynchron19 zum Server geschickt. Die asynchrone Kommu- nikation zwischen Client und Server spielt bei AJAX eine bedeutende Rolle, denn so wird diese Kommunikation zu einer Hintergrundaktivität und der Nutzer kann währenddessen in der Anwendung weiterarbeiten. Der Server empfängt die Informationen vom Client und führt eine Aktion, beispielsweise eine Datenbankanfrage, aus. Das Ergebnis der Aktion schickt der Server zum Client zurück. Dieser empfängt die Daten mit Hilfe von JavaScript und fügt sie durch Nutzung des DOM in den jeweiligen zu ändernden HTML-Container des XHTML- Dokumentes ein. [Crane, Pascarello & James 2006: 58]

„Das Document Object Model (DOM) definiert eine Programmier-Schnittstelle zur Bearbei- tung von XML-Dokumenten.“ [Gumm & Sommer 2006: 659]

O’Reilly nennt mit Googles Gmail (mail.google.com) ein Beispiel einer Web 2.0 Anwendung, die explizit von AJAX Gebrauch macht. Gmail unterscheidet sich hinsichtlich des Interfaces, der Interaktionsmöglichkeiten und Benutzeroberfläche kaum noch von einer Desktop-Appli- kation [O’Reilly 2005, Benutzerführung ].

Internetanwendungen dieser Art werden auch RIAs (Rich Internet Applications) genannt [Puscher 2007: 160]. Sie sind „reicher“ an Funktionsumfang als klassische Internetanwen- dungen und bieten beispielsweise Drag & Drop Bedienelemente.

AJAX ist aber keine neue Technologie. Es ist vielmehr eine Bündelung von bekannten Technologien. Schon 1997 wurden die drei Technologien CSS, DOM und JavaScript zusam- men genutzt und waren damals unter dem Namen DHTML (dynamic HTML) bekannt. Doch konnten sie sich, aufgrund der fehlenden asynchronen Komponente und der damaligen Inkompatibilitäten der zu jener Zeit verbreiteten Browser, nicht durchsetzen. Die Inkompa- tibilitätsprobleme haben sich in den letzten Jahren gebessert. Moderne Webbrowser unter- stützen heute weitestgehend AJAX. [Crane, Pascarello & James 2006: 59, 60] Außerdem stehen dem Programmierer „…Möglichkeiten zur Verfügung, mit Browser-Kompatibilitäts- problemen umzugehen“ [Crane, Pascarello & James 2006: 60].

3.2.9 Zusammenfassung und Beschreibung der zentralen Kennzeichnung des Web 2.0

O’Reilly beschreibt in seinem Artikel „What is Web 2.0: Design Patterns and Business Models for the Next Generation of Software“ seine Prinzipien von Web 2.0. Auf diese schließt er anhand von Beobachtungen erfolgreicher Internetunternehmen. O’Reilly gibt außerdem Empfehlungen von Kernkompetenzen für Internetunternehmen, welche im Internet erfolgreich sein wollen. Sein Artikel kann also als eine Marketing-Strategie betrachtet werden.

Zentrale Kennzeichen des Web 2.0

Im Folgenden sollen die zentralen Kennzeichen des Web 2.0 zusammengefasst werden. Hierbei ist zu beachten, dass das Web 2.0 zwar alle diese Kennzeichen umfasst, aber eine Web 2.0 Anwendung nicht jedes dieser Kennzeichen umsetzen muss.

Web 2.0 beschreibt die Nutzung der Vorteile des World Wide Web, wie z.B. der Globalität und geringen Speicherkosten durch „The Long Tail“. Es werden spezialisierte Interessenge- meinschaften gebildet, so genannte Communities. Web 2.0 Anwendungen sind native Web- anwendungen. Sie sind Services und Dienste und bieten ihren Nutzern Zugriff auf ihre spe- zialisierten Daten. „Das Web wird zur Service-Plattform“ [Schroll & Neff o.J.].

Web 2.0 Anwendungen werden auf Servern ausgeführt, sind kostengünstig skalierbar und geräteunabhängig. Web 2.0 beschreibt die Nutzung der kollektiven Intelligenz von Commu- nities, durch beispielsweise Aggregation von Wissen. Dieses Wissen wird durch Hyperlinks oder hyperlink-basierte Techniken zugänglich gemacht. RSS ist eine Technik des Web 2.0, um Inhalte zu abbonieren. Taggen ist eine Technik des Web 2.0, um Inhalte nahe der Denk- struktur des Menschen zu strukturieren. Das Web 2.0 zeigt Vertrauen in den Anwender als Mitentwickler von Inhalten.

Datenbankmanagement ist eine Kernkompetenz von Web 2.0 Unternehmen, denn es werden hauptsächlich Daten verwaltet und darauf Dienste und Services aufgebaut. Web 2.0 Anwendungen haben meist die Kontrolle über schwer kopierbare, spezialisierte Daten. Diese Daten sind dynamisch und werden mit Hilfe von APIs anderen Anwendungen zur Verfügung gestellt. Web 2.0 Anwendungen können als Mashups in Erscheinung treten. Web 2.0 beschreibt auch eine Echtzeitbeobachtung der Nutzer, um bereitgestellte Dienste und Servi- ces zu verbessern. Web 2.0 Anwendungen werden kontinuierlich aktualisiert, dem Anwender steht immer die aktuellste Version im Internet zur Verfügung.

Das Web 2.0 zeigt eine bevorzugte Nutzung von Lightweight Programming Models (LPMs). Durch die geringere Komplexität der LPMs gegenüber herkömmlichen Modellen sind die Barrieren für eine Verwendbarkeit dieser gering. Außerdem ist eine gute Zukunftssicherheit wahrscheinlich. Zu LPMs zählen zum Beispiel folgende Techniken: REST, RSS, XML-RPC, AJAX.

Web 2.0 beschreibt das Einsetzen des „Internets als unsichtbaren, integrierten Bestandteil der Infrastruktur“ [O’Reilly 2005, Software über die Grenzen einzelner Geräte hinaus ] von Internetanwendungen. Web 2.0 Anwendungen können AJAX verwenden. Auf diesem Weg bieten sie dem Nutzer eine Usability, ähnlich den Desktop-Anwendungen und werden zu Rich Internet Applications.

3.3 Die Gefahren des Web 2.0

In der letzten Zeit mehren sich die kritischen Stimmen bezüglich des Themas Web 2.0. Dieser Abschnitt soll sich mit den Gefahren, sowohl auf technischer Ebene, als auch auf sozialer Ebene beschäftigen, denn die „Sicherheit spielt bei Internetdiensten eine ständig wachsende Rolle“ [Crane, Pascarello & James 2006: 279].

3.3.1 Die Daten

Dass Nutzerdaten und Inhalte Kapital bedeuten können, zeigen die Gelder, die in jüngster Vergangenheit für Web 2.0 Communities gezahlt wurden. So kaufte Google die weltweit größte soziale Videocommunity YouTube für 1,65 Milliarden US Dollar [Kuri 2006]. OpenBC (jetzt XING, xing.com), eine soziale Community für Geschäftskontakte mit über 1,5 Millionen Mitgliedern, will innerhalb des nächsten halben Jahres an die Börse gehen und für rund 100 Millionen Euro Aktien ausgeben [Hansen 2006].

Viele Kritiker sehen den naiven und „unbekümmerten Umgang“ [Roth 2006] der Internet- nutzer mit ihren persönlichen Daten als besorgniserregend an, denn das „Online-Gedächnis“ [Roth 2006] des Internets vergisst nie20. So könnten persönliche Videos bei YouTube oder Angaben über persönliche Vorlieben bei studiVZ (studivz.net; Studenten-Community) den Nutzer dieser Communities schon beim nächsten Vorstellungsgespräch beim potentiellen Arbeitgeber bloßstellen [Roth 2006]. Es drängt sich außerdem die Frage auf: Wem gehören die Daten?

3.3.2 Cyber-Stalking

Auch ein anderes Phänomen lässt sich mit der steigenden Nutzung von Web 2.0 Communities, wie MySpace (myspace.com), studiVZ oder YouTube, beobachten, das „Cyber-Stalking“ [o.A. o.J.: Cyber-Stalking - Psychoterror per Internet ] und auch „Social Phishing“ [Roth 2006]. Es beruht darauf, sich die persönlichen Daten von Internetnutzern zu kriminellen Zwecken zu nutze zu machen. Dies kann sich beispielsweise in Identitäts- diebstahl, Rufschädigung und Belästigungen äußern [o.A. o.J.: Cyber-Stalking – Psycho- terror per Internet ].

3.3.3 Barrierefreiheit

Eine barrierefreie Website oder Applikation im Internet bedeutet, sie jedem Menschen zugänglich zu machen [Hellbusch o.J.].

Wie O’Reilly definierte, gehört auch das Nutzen von AJAX zu einem Merkmal des Web 2.0. Eine Technologie der AJAX-Kommunikation ist JavaScript. Noch im Jahre 2004 wurde von der Nutzung von „…JavaScript für Navigation oder Inhalte…“ abgeraten [Pidun 2004: 186]. Wenn JavaScript genutzt wird, „…dann muss die Funktion auch ohne JavaScript gewährleistet sein bzw. eine Information muss auch bei fehlender Unterstützung von Java- Script angezeigt werden.“ [Hellbusch o.J.]. Die Barrierefreiheit ist mit der Nutzung von Java- Script eingeschränkt, da beispielsweise die Sceenreader21 sehbehinderter Menschen JavaScript nicht interpretieren können.

Ein voraussichtiger Entwickler einer Web 2.0 Applikation kann auch alternative Techniken zur Bereitstellung aller Funktionen der Website ohne JavaScript anbieten, allerdings besteht die Gefahr, dass dieses nicht berücksichtigt wird [Ristau 2006].

3.3.4 Hackerangriffe

„Jeder Betreiber einer Website muss mit Angreifern rechnen, die sie für Spam, Phishing oder sonstige Zwecke zu missbrauchen versuchen“ [Rütten & Glemser: 234]. „Viele der Sicherheitsprobleme von Ajax-Anwendungen entsprechen denen, die auch bei klassischen Webanwendungen auftreten“ [Crane, Pascarello & James: 279].

Bei einer AJAX-Kommunikation müssen Daten vom Client zum Server und umgekehrt übertragen werden. AJAX-Datenströme sollten deshalb besonders geschützt werden. Crane, Pascarello & James raten bei der Übertragung von vertraulichen Daten mittels AJAX des- halb zu einer Secure-HTTP Verbindung (HTTPS). Weniger sicherheitsrelevante Daten könnten beispielsweise vor dem Verschicken zum Server mit einem öffentlichen Schlüssel verschlüsselt und auf dem Server mit einem privaten Schlüssel entschlüsselt werden. [Crane, Pascarello & James: 297 – 301].

Auch das Bereitstellen von Webdiensten über ein API birgt zusätzliche Risiken. Angreifer könnten über ein „…weniger sauber programmiertes…“ [Roth 2006] API an sicherheitsrele- vante Daten gelangen. Deshalb sollte bereits bei der Programmierung eines API darauf geachtet werden, es so zu gestalten, dass böswillige Angriffe vereitelt werden.

3.3.5 Andere Gefahren

3.3.5.1 Web-Usability

Web 2.0 birgt noch weitere Risiken. „Die Surfer haben sich an gewisse Regeln im Netz gewöhnt“ [Puscher 2007: 160]. Die Nutzer müssen an die neuartige Web-Usability22 von RIAs herangeführt werden. „Die Verfügbarkeit der neuen Techniken auf der Anbieterseite bringt nur dann Mehrwert, wenn der Benutzer damit etwas anfangen kann – technisch und inhaltlich“ [Puscher 2007: 160]. Die alten Gewohnheiten der Online-User werden mit der Bereitstellung von RIAs durchbrochen.

3.3.5.2 Digital Divide

Digital Divide (eng. digitale Kluft) beschreibt das, was „Nutzer und Nicht-Nutzer der modernen Kommunikations- und Informationsmittel trennt“ [Jacobsen 2006].

Breitbandanschlüsse oder videofähige Handys, ohne welche Video Sharing Plattformen wie YouTube keine solchen Erfolge erzielt hätten oder iPods, ohne die sich kein PodCasting durchgesetzt hätte, sind Beispiele für technische Errungenschaften, welche vielen Personen, auch in Deutschland, nicht zur Verfügung stehen. Neben den finanziellen Mitteln fehlt diesen Menschen oft auch das Interesse sich mit dem Medium Internet intensiver auseinander- zusetzen. Durch die fehlenden Kenntnisse können diese Menschen die Vorteile des Inter- nets und die neuen Möglichkeiten von Web 2.0 nicht für sich nutzen. Die digitale Kluft im Internet erstreckt sich sowohl national, als auch europa- und weltweit. [Jacobsen 2006]

Die neuen Techniken und Möglichkeiten, die das Web 2.0 mit sich bringt und welche im Kapitel über Web 2.0 besprochen wurden, könnten diese Kluft, angesichts der in Punkt

3.3.5.1 angesprochenen neuartigen Usability von Web 2.0 Anwendungen, noch vergrößern.

4 Ruby on Rails

4.1 Einleitung

Moderne Webanwendungen sind sehr komplex. Programmbibliotheken und Frameworks sollen deshalb die Produktivität bei der Softwareentwicklung fördern und den Programmierer unterstützen (siehe Abschnitt 3.2).

Ruby on Rails

Ruby on Rails, kurz Rails, ist ein Framework für Webentwickler, welches in der Programmiersprache Ruby geschrieben ist [Thomas & Heinemeier Hansson 2006: 1]. Rails soll die „…Entwicklung, Verbreitung und Wartung von Webanwendungen…“ [Thomas & Heinemeier Hansson 2006: 1] vereinfachen. Rails ist OpenSource, das heißt, der Quellcode ist frei zugänglich und wird durch eine Gemeinde von ehrenamtlichen Programmierern weiterentwickelt.

Rails wurde von David Heinemeier Hansson, Webentwickler des Web 2.0 Unternehmens 37signals, erstmals im Jahr 2004 vorgestellt. Die erste Version, die einen Produktionsstatus erhielt, erschien im Dezember 2005. [Hinterndorfer 2007]

Rails ist das Resultat der Entwicklung der Web 2.0 Anwendung Basecamp (basecamphq.com), einer Projektmanagement Anwendung von 37signals. Heinemeier Hansson sagte dazu, dass es damals nicht das Ziel gewesen sei, ein Framework mit möglichst vielen Funktionen zu entwickeln, denn das birgt die Gefahr, dass diese Funktionen später nicht benötigt werden und das Framework unnötig komplex wird. Es sollte die Web 2.0 Anwendung Basecamp entwickelt werden, aus welcher später das Framework Ruby on Rails extrahiert wurde. [Broersma 2006: Heinemeier Hansson im Interview mit ZDNet ] Heinemeier Hansson fasst die Funktionalitäten, die Rails bietet, mit folgenden Worten zusammen: „Rails ist eine Sammlung von Lösungen für echte Probleme, denen die Mitwirkenden ausgesetzt waren“ [Broersma 2006: Heinemeier Hansson im Interview mit ZDNet ]. Um welche Lösungen es sich dabei handelt, soll im Laufe des Kapitels über Ruby on Rails aufgezeigt werden.

Rails kann auf allen Plattformen genutzt werden, auf welchen die plattformunabhängige Programmiersprache Ruby lauffähig ist. Rails ist somit plattformunabhängig. Für eine gute Performance (eng. Leistung) werden auf der Rails-Website folgende Konstellationen empfohlen: Apache-, lighttpd- oder Mongrel-Server mit Fast-CGI oder SCGI. [o.A. 2007: Ruby on Rails-Website ]

Ruby

Ruby wurde 1995 von dem japanischen Programmierer Yukihiro Matsumoto entwickelt [Thomas & Hunt 2002: Kapitel: Vorwort]. Ruby ist eine interpretierte23, komplett objektorien- tierte Programmiersprache. „Alles, was sie in Ruby manipulieren, ist ein Objekt, und die Ergebnisse dieser Manipulationen sind wiederum Objekte.“ [Thomas & Heinemeier Hansson 2006: 458]. Das unterscheidet Ruby von vielen anderen Programmiersprachen. Selbst in Java sind primitive Datentypen keine Objekte [Wirdemann & Baustert 2006: 19].

Ruby erfreut sich immer größerer Beliebtheit. So stieg die Popularität dieser Programmier- sprache innerhalb eines Jahres (von Februar 2006 bis Februar 2007) von Platz 20 auf Platz 10 der beliebtesten Sprachen, gleich hinter JavaScript [o.A. TIOBE Programming Commu- nity Index, Februar 2007].

In den folgenden Abschnitten soll das Framework Ruby on Rails vorgestellt werden. Des Weiteren soll untersucht werden, ob sich Ruby on Rails für die Entwicklung von Web 2.0 Anwendungen eignen könnte. Es werden dabei die Ruby Version 1.8.5 in Verbindung mit der Ruby on Rails Version 1.2 betrachtet, welche am 18.01.2007 freigegeben wurde.

4.2 Die Prinzipien

4.2.1 Model-View-Controller (MVC)

„Das Model-View-Controller-Entwurfmuster ist ein altbewährtes Entwurfmuster zur Trennung von Daten (Model), Darstellung (View) und Kontrollfuss (Controller)“ [Weßendorf 2003: 19].

„Die Trennung der Schichten führt zu einer Trennung der Verantwortlichkeiten und zu einer Verringerung von Abhängigkeiten im Code“ [Wirdemann & Baustert 2006: 7]. Dadurch erhöht sich die Wartbarkeit einer Anwendung. Die folgende Abbildung soll die MVC- Architektur veranschaulichen.

[...]


1 Dotcom (eng. Punkt com) – Synonym für Unternehmen, die im Zusammenhang mit dem Internet Dienstleitungen erbringen. / Blase – etwas Aufgeblähtes, ohne Substanz

2 Siehe Abschnitt 2.2 – Frameworks geben dem Entwickler ein Programmgerüst der zu entwickelnden Software vor, um die Softwareentwicklung effizienter zu machen.

3 Anwendungen im Internet, welche ihre Daten in Datenbanksystemen verwalten.

4 Webentwickler beim Web 2.0 Unternehmen „37signals“ und Erfinder von Ruby on Rails

5 Erklärung von 17 Befürwortern der agilen Softwareentwicklung über Gemeinsamkeiten

6 betreffen Teile der Software, welche nicht der eigentlichen Problemlösung dienen, zu welcher die Software entwickelt wird, sondern die Voraussetzungen dafür schaffen.

7 Daten repräsentieren Informationen durch Bits. Bits sind Nullen und Einsen und die kleinste Speichergröße für Daten.

8 Über 583 Millionen Google Suchergebnisse zum Begriff „Web 2.0“ URL: http://www.google.de/search?hl=de&q=web+2.0&btnG=Google-Suche&meta= Abgerufen am: 16.01.2007

9 Zusammenstellung von Web 2.0 Anwendungen (zur Zeit 902 Anwendungen) URL: http://www.web2null.de/ Abgerufen am 06.03.2006

10 sind referenzielle Verknüpfungen von Inhalten im Internet. (siehe Unterabschnitt 3.2.3)

11 Herausgeben von neuen Software-Versionen, z.B. Microsoft Word Versionen 9, 10, 11

12 Browser (siehe Glossar) der die Standards des W3C (siehe Glossar) einhält

13 US-amerikanischer Journalist, bekannt geworden durch sein Buch „Die Weisheit der Vielen“ aus dem Jahr 2005

14 Bestandteil (Schnittstelle) eines Softwaresystems zur Bereitstellung und Kommunikation von Informationen zur Anbindung von fremden Anwendungen

15 komplexes Protokoll zum Datenaustausch zwischen Systemen unter Nutzung von XML

16 schlanke Definition eines entfernten Aufrufs von Methoden in einem Netzwerksystem und Darstellung der Daten mittels XML

17 Definition der zustandslosen Nutzung des http-Protokolls zur Manipulation von Daten des Servers und Kommunikation von Daten zwischen Client und Server unter Nutzung der http-Methoden get, post, put und delete.

18 Gesammelt; im Gesamten betrachtet

19 zeitlich versetztes Senden und Empfangen von Daten, ohne Blockaden, z.B. Warten auf Antwort vom Server

20 die Daten sind unwiderruflich in verschiedenen Datenbanken gespeichert

21 Software für Sehbehinderte oder Blinde zur alternativen Ausgabe von Bildschirminhalten unter Nutzung von nicht visuellen Ausgabegeräten

22 Eignung von Websites und Webanwendungen für bestimmte Nutzer unter einem bestimmten Kontext zur effektiven und effizienten Zielerreichung.

23 Quellcode einer mächtigen Programmiersprache wird erst zur Laufzeit des Softwareprogramms durch den Interpreter eingelesen, analysiert und ausgeführt.

Ende der Leseprobe aus 139 Seiten

Details

Titel
Agile Entwicklung von Web 2.0 Applikationen mit Ruby on Rails
Hochschule
Hochschule für Technik, Wirtschaft und Kultur Leipzig
Note
1,3
Autor
Jahr
2007
Seiten
139
Katalognummer
V128833
ISBN (eBook)
9783640346004
Dateigröße
2694 KB
Sprache
Deutsch
Schlagworte
Agile, Entwicklung, Applikationen, Ruby, Rails
Arbeit zitieren
Dipl.-Ing.(FH) Rico Schulz (Autor), 2007, Agile Entwicklung von Web 2.0 Applikationen mit Ruby on Rails, München, GRIN Verlag, https://www.grin.com/document/128833

Kommentare

  • Noch keine Kommentare.
Im eBook lesen
Titel: Agile Entwicklung von Web 2.0 Applikationen mit Ruby on Rails


Ihre Arbeit hochladen

Ihre Hausarbeit / Abschlussarbeit:

- Publikation als eBook und Buch
- Hohes Honorar auf die Verkäufe
- Für Sie komplett kostenlos – mit ISBN
- Es dauert nur 5 Minuten
- Jede Arbeit findet Leser

Kostenlos Autor werden