“For me, the purpose of life is, at least partly, to have joy. Programmers often feel joy when they can concentrate on the creative side of programming,
Kurzfassung
Diese Master Thesis beschäftigt sich mit Ruby on Rails, einer Technologie bzw. einem Framework zum schnellen und strukturierten Erstellen von datenbankbasierten Webanwendungen. Diese können Dank hervorragender Integration von AJAX-Frameworks in Rails zudem interaktiv gestaltet werden. Um Ruby on Rails herrscht momentan ein gewisser Hype, dieser entstand etwa zeitgleich mit dem Hype um Web 2.0. Dies ist jedoch nicht das Einzige, was die Beiden verbindet. Die neuen „sozialen“- und „Rich User Interface“-Anwendungen lassen sich mit Hilfe von Ruby on Rails hervorragend verwirklichen. Die vorliegende Arbeit soll einen Überblick über die Konzepte, Möglichkeiten und auch die Entwicklungen von Ruby on Rails geben. Die Motivation hinter dem Framework ist es die Entwicklung, von Webanwendungen schnell, einfach und doch strukturiert zu gestalten. Die Tatsache, dass es eine Alternative zu Java und PHP, den beiden heute hauptsächlich eingesetzten Technologien, sein soll ist auch Teil dieser Arbeit, ebenso wie die Beschreibung der Arbeit mit Ruby on Rails anhand einer Beispielanwendung.
Abstract
The topic of this master thesis is Ruby on Rails, a full-stack framework for developing database-backed web applications. AJAX support for a highly interactive web application is built in Rails. The hype about Rails and Web 2.0 came up almost at the same time. But this isn’t the only thing the both have in common. The new social and rich user interface application can be build perfectly with Rails.
This paper gives an overview of the concepts, possibilities and development of Ruby on Rails. The framework’s idea is it to arrange web application development in a fast, easy and structured way. Part of this thesis is also the fact, that Rails is suggested to be an alternative to the two mainly used web technologies Java and PHP. Describing the Rails way of developing a web application by building one is furthermore part of this document.
4
Inhaltsverzeichnis
Inhaltsverzeichnis
Inhaltsverzeichnis................................................................................................................ 5
Abbildungsverzeichnis 8
Vorwort 10
1 Einleitung. 11
1.1 Hintergrund 11
1.2 Aufgabenstellung 11
1.3 Aufbau der Arbeit. 12
2 Grundlagen 13
2.1 Das WWW 13
2.1.1 Entstehung und Struktur. 13
2.1.2 Weiterentwicklung 14
2.2 Webanwendungen. 15
2.2.1 Kategorien von Webanwendungen 16
2.2.2 Aufbau von Webanwendungen 16
2.2.3 Fazit. 18
2.3 Framework. 19
2.3.1 Entwicklung 19
2.3.2 Definition und Eigenschaften. 20
2.3.3 Framework vs. Bibliothek 22
2.3.4 Zusammenfassung und Resümee. 23
2.4 Das Web 2.0 24
2.4.1 Konzept und Prinzipien. 25
2.4.2 Komponenten und soziale Aspekte 31
2.4.3 Zusammenfassung und Resümee. 32
3 Ruby on Rails 35
3.1 Ruby 35
3.1.1 Alles ist ein Objekt 36
3.1.2 Flexibilität. 36
3.1.3 Blöcke. 37
3.1.4 Mixins 37
3.1.5 Äußeres Design. 37
3.1.6 Weiterführendes 38
3.1.7 Funktionale Programmierung in Ruby 39
3.1.8 Zusammenfassung und Resümee. 40
3.2 Ruby on Rails 40
3.2.1 Die Philosophie. 43
5
Gabriele Wichmann
3.2.2 MVC in Rails 44
3.2.3 ActiveRecords 45
3.2.4 ActionPack 46
3.2.5 Reverse-Engineering 47
3.2.6 Testen 47
3.2.7 Produktionsumgebung 54
3.2.8 Agility on Rails. 54
3.2.9 Projects on Rails 56
3.2.10 Zusammenfassung und Resümee 59
3.3 Weitere Rubyentwicklungen 60
3.3.1 JRuby 60
3.3.2 Ruby.Net 64
3.3.3 AJAX on Rails 64
3.3.4 Mongrel 71
3.3.5 Capistrano. 72
3.4 Zusammenfassung und Resümee 73
4 Die Tauchanwendung. 74
4.1 Die aktuelle Tauchanwendung - JTrak 74
4.1.1 Aufbau der Anwendung. 75
4.1.2 Ablauf beim Anlegen eines Tauchgangs. 76
4.2 Vorüberlegungen. 77
4.2.1 Rollen und Anwendungsfälle. 77
4.2.2 Daten. 78
4.3 Das schrittweise Vorgehen. 79
4.3.1 Anwendung erzeugen 79
4.3.2 Datenbanken erstellen 79
4.3.3 Erste Tabelle definieren 80
4.3.4 Konfiguration der Datenbankverbindung. 80
4.3.5 Erstellen mit Scaffold 81
4.3.6 Benutzerverwaltung hinzufügen. 84
4.3.7 Design anpassen 90
4.3.8 Zusätzliche Funktionalitäten. 95
4.3.9 Veröffentlichung 98
4.3.10 Ablauf zum Anzeigen der Details eines Tauchgangs. 99
4.4 Arbeiten mit JRuby on Rails 99
4.5 Fazit. 101
5 Technologievergleich. 103
5.1 Java 5. 103
5.1.1 3-Schichten Architektur von Java EE. 104
5.1.2 Bestandteile der Spezifikation. 106
5.1.3 Java EE vs. Ruby on Rails. 108
5.1.4 Fazit und Entwicklung 113
6
Inhaltsverzeichnis
5.2 PHP 116
5.2.1 PHP vs. Ruby on Rails 118
5.2.2 Fazit und Entwicklung. 125
5.3 Büchervergleich 126
5.3.1 Java 126
5.3.2 PHP 127
5.3.3 Ruby on Rails 128
5.3.4 Fazit. 128
5.4 Zusammenfassung und Resümee. 129
6 Ausblick 132
Anhang A: 133
A.1 Komponenten und soziale Aspekte des Web 2.0 133
A.1.1 Bloggen und die Weisheit des Volkes. 133
A.1.2 Wikis 135
A.1.3 Soziale Software 136
A.1.4 Kritik an sozialen Webdiensten 139
A.2 Enterprise JavaBeans 139
A.2.1 Enterprise JavaBeans 2.1 139
A.2.2 Enterprise JavaBeans 3.0 141
A.3 Aufbau der Seite eins.de 143
A.4 Installation von Ruby on Rails 143
A.4.1 Windows 143
A.4.2 Linux/Unix 144
A.4.3 Mac OS X. 144
A.5 Diagramme zur Beispielanwendung. 145
A.5.1 Klassendiagramm Logbuch. 145
A.5.2 Sequenzdiagramm Bearbeiten Tauchgang. 146
Anhang B: 147
B.1 Folien Präsentation 147
B.2 Screenshots Beispielanwendung 149
Abk ürzungen. 151
Literaturverzeichnis. 157
7
Gabriele Wichmann
Abbildungsverzeichnis
Abbildung 1: Webanwendung im Client-Server-Modell.
Abbildung 2: Drei-Schichten-Architektur
Abbildung 3: Framework
Abbildung 4: Quelltexte, Bindemodule und Programme Kelter03
Abbildung 5: Bibliothek vs. Framework Kelter03
Abbildung 6: Web 2.0 Mind Map
Abbildung 7: Karte Web 2.0 OReilly05
Abbildung 8: Web 2.0 Buzz Time bar.
Abbildung 9: Yukihiro „Matz“ Matsumoto
Abbildung 10: Aufbau Ruby on Rails.
Abbildung 11: MVC-Architektur Thomas05
Abbildung 12: MVC und Rails Thomas05
Abbildung 13: Anwendungen von 37signals
Abbildung 14: Community Seite eins.de
Abbildung 15: Onlineplattform MeinProf.
Abbildung 16: Onlineshop bellybutton.
Abbildung 17: Webanwendung im Vergleich mit AJAX Webanwendung.
Abbildung 18: Vor und nach Aufruf der Aktion mit AJAX
Abbildung 19: XMLHttpRequest verbindet Browser und Server Thomas05
Abbildung 20: Formular mit AJAX
Abbildung 21: Vergleich Aufbau Produktionsumgebungen Weiss06
Abbildung 22: Logo JTrack.
Abbildung 23: JTrack.
Abbildung 24: Manuelles Anlegen.
Abbildung 25: Importieren von Tauchcomputer
Abbildung 26: Use Case Online-Tauchlogbuch
Abbildung 27: Anwendungsfälle für Administrator.
Abbildung 29: Grundgerüst der Anwendung
Abbildung 30: Ansicht: Startseite Rails
Abbildung 31: Ansicht: Liste Tauchgänge
Abbildung 32: Ansicht: Neuer Tauchgang.
Abbildung 33: Dateiübersicht, erstellte Views
Abbildung 34: Ansicht: Automatisch erstellte Liste.
Abbildung 35: Ansicht: Editierte Liste aller Tauchgänge
Abbildung 36: Ansicht: Templates der Edit-Seite
Abbildung 37: Ansicht: Startseite der Anwendung
Abbildung 38: Ansicht: Fehler bei der Eingabe
Abbildung 39: Sequenzdiagramm Detailansicht Tauchgang.
Abbildung 40: Installation JRuby on Rails
Abbildung 41: Java EE Architektur.
Abbildung 42: Vergleich des Rails und J2EE Datenstruktur Rustad05
8
Abbildungsverzeichnis
Abbildung 43: URL-Mapping in Rails und Struts Rustad05
Abbildung 44: Action-Hierarchie für Rails und Struts Rustad05
Abbildung 45: ActiveRecord und Hibernate Persistence Framework Rustad05
Abbildung 46: Funktionsweise PHP.
Abbildung 47: Vergleich PHP, Rails und Java Bray06
Abbildung 48: „stern blogs“
Abbildung 49: Artikel über Wikipedia bei Wikipedia.
Abbildung 50: Instant Messaging Programme.
Abbildung 51: Schulfreunde-Suchdienste.
Abbildung 52: Xing persönliche Startseite
Abbildung 53: Freundeskreisdienste
Abbildung 54: JavaBeans Arten
Abbildung 55: Aufbau eins.de Community.
Abbildung 56: Klassendiagramm Logbuch
Abbildung 57: Sequenzdiagramm Bearbeiten Tauchgang
Tabellenverzeichnis
Tabelle 1: Übersicht über Kategorien von Webanwendungen
Tabelle 2: Vergleich Rails und Java mit Framework Akquinet06
9
Vorwort
Etwas mehr als zwei Jahre nach dem ersten Erscheinen von Ruby on Rails kann man eines sicher sagen: Wenn die Welt ein neues Webframework gebraucht hat, dann dieses. Konferenzen, Zeitschriftenartikel, Bücher und eine ständig zunehmende Anzahl an Railsprojekten zeigen dies. Dabei sind es nicht nur kleine Internetagenturen, die ihre Entwicklung auf Rails umstellen, sondern auch große Firmen starten neue Projekte auf Basis von Rails. Rails- und Rubykonferenzen sind innerhalb kürzester Zeit ausverkauft. Während die seit Jahren in den USA stattfindende Rubykonferenz noch bis 2004 eher ein Nischendasein fristete, war sie 2006 innerhalb von vier Stunden ausverkauft. Die Popularität von Rails ist längst aus den USA nach Europa und in andere Teile der Welt herübergeschwappt. Die deutsche Rails-Community wächst ständig. Die erste deutsche Railskonferenz fand im November 2006 statt; der ebenfalls angebotene Workshop war ausgebucht. Die Anzahl der Railsprojekte in Deutschland nimmt kontinuierlich zu. Rails hat der Sprache Ruby zu neuem Ruhm verholfen. Im TIOBE Programming Community Index findet sich Ruby inzwischen auf dem zehnten Platz der beliebtesten Programmiersprachen, vor etwa einem Jahr belegte Ruby noch Rang 21. Viele Entwickler haben die Eleganz und Ausdrucksstärke von Ruby kennen und schätzen gelernt, aber viele sind auch sehr skeptisch, wenn es um den Umstieg von Java auf Ruby geht. Das Railsframework wurde kontinuierlich weiterentwickelt und verbessert. Rails bleibt dabei trotzdem schlank und einfach. Neue Features werden nur dann ins Framework aufgenommen, wenn sie sich in der Praxis bewährt haben und allgemeinen Nutzen versprechen. Trotz anhaltender Euphorie gibt es weiterhin viel zu tun, vor allem im Bereich der Internationalisierung und der Sicherheit.
Ob Ruby on Rails in Zukunft etablierte Technologien wie Java EE oder Sprachen wie PHP ablöst, wird sich erst in ein paar Jahren zeigen. Das der Ansatz von Rails allgemein Eindruck gemacht hat, ist an den vielen erhältlichen Kopien für andere Sprachen zu sehen.
10
Einleitung
1 Einleitung
1.1 Hintergrund
Die Entwicklung des World Wide Web (WWW) setzt sich heute noch rasanter fort als früher. Durch neue Technologien, komplexere Software und bessere Netzanbindung, dient das WWW als Plattform für eine breite Palette von Aufgaben. Neue Schlagwörter wie das „Web 2.0“, „Rich-Client Applications“ oder der Hype um AJAX zeigen die Erwartungen, die an neue Webanwendungen gestellt werden. Auch der Erfolg von so genannten Web 2.0 Technologien wie Wikis oder Blogs, zeigen einen Trend in der momentanen Entwicklung des Webs. Durch neue Technologien wird ein neues Benutzererlebnis im Web vermittelt, das immer mehr einem Benutzererlebnis einer Desktopanwendung gleicht. Interaktive Bedienelemente, schnellere Reaktionszeiten ohne umständliches Neuladen der Seite sind die Basiselemente, mit der dieses Benutzererlebnis erreicht wird. Webapplikationen mit hoher Qualität zu erstellen ist heute die Aufgabe eines jeden Webentwicklers. Meist sollen sie möglichst sofort fertig sein und sich aber über Jahre gut warten und erweitern lassen. Zur Entwicklung kann man Java einsetzen, damit wäre die Lösung gut strukturiert, würde aber recht lange dauern. Man könnte aber auch die Skriptsprache PHP benutzen. Damit wäre man schneller, aber die Frage ist ob man diese Anwendung auch in Zukunft gut warten und erweitern kann.
Ruby on Rails bietet hier den goldenen Mittelweg. Mit diesem MVC-Framework kann man ausgezeichnet strukturierte Webanwendungen in sehr kurzer Zeit schreiben. Rails erledigt die Details, der Programmierer kümmert sich nur um die Funktionalitäten auf Anwendungsebene.
1.2 Aufgabenstellung
Ziel dieser Master Thesis ist die Erforschung der Möglichkeiten von Ruby on Rails und ein erster Vergleich mit J2EE und PHP. Im Einzelnen sollen folgende Aufgaben bearbeitet werden:
Darstellung der Entstehung und wesentlichen Elemente von „Web 2.0“. Dies erfordert darüber hinaus ein grundlegendes Verständnis der „alten“ sowie „neuen“ Internettechnologien.
Das Model-View-Controller-Framework zum Erstellen datenbankbasierter Webanwendungen sowie auch die Sprache Ruby sollen anhand ihrer wesentlichen Elemente dargestellt werden. Außerdem wird die in Rails integrierte AJAX-Unterstützung analysiert. Die aus Japan stammende objektorientierte Programmiersprache Ruby kommt schon seit einiger Zeit zum Einsatz, doch erst durch den Hype um das Framework Ruby on Rails, wurde ihr allgemein Beachtung geschenkt.
11
Im praktischen Teil der Arbeit erfolgt die Implementierung einer Beispielanwendung. An ihr werden die grundlegenden Funktionalitäten von Ruby on Rails in der Praxis dargestellt. Ziel ist es eine Webanwendung mit Datenbankanbindungen zu erstellen und einen Überblick der Arbeit mit Rails zu geben.
Beschreibung der wesentlichen Unterschiede zu J2EE und PHP. Denn momentan wird viel darüber diskutiert, ob Ruby on Rails in Zukunft Java und PHP ablösen wird oder nur eine weitere Nischenlösung ist.
1.3 Aufbau der Arbeit
Diese Master Thesis ist in sechs Kapitel unterteilt. In Kapitel 1 werden die Einleitung, der Hintergrund sowie die Aufgabenstellung kurz beschrieben.
Eine Einführung in die Grundlagen befindet sich in Kapitel 2. Dort wird kurz auf das WWW und die Idee des Web 2.0 eingegangen. Des Weiteren werden die in der Arbeit verwendeten Technologien (Webanwendungen, Frameworks) näher betrachtet. Das Kapitel 3 widmet sich Ruby on Rails. Zunächst wird die Ruby on Rails zugrunde liegende Programmiersprache Ruby betrachtet, danach erfolgt ein Überblick über Aufbau, Möglichkeiten und Entwicklungen von Ruby on Rails.
In Kapitel 4 geht es um die Erstellung einer Beispielanwendung mit Ruby on Rails. Als Vorlage dient eine Tauchlogbuchanwendung, die in Java implementiert ist. Zunächst wird eben diese Software genauer vorgestellt. Dann wird die entwickelte Ruby on Rails -Anwendung und die Schritte bis zur Fertigstellung beschrieben. Der Technologievergleich von Java, PHP und Ruby on Rails ist das Thema von Kapitel 5. Es werden jeweils Java und PHP kurz vorgestellt und danach mit Rails verglichen. Außerdem erfolgt auch noch eine Gegenüberstellung von Büchern über Java, PHP und Rails.
Mit Kapitel 6 endet die Arbeit und es erfolgt ein Ausblick auf die denkbare Entwicklung und Verbreitung von Ruby on Rails.
In Anhang A erfolgt eine genauere Betrachtung verschiedener in der Arbeit nur kurz gestreifter Themengebiete, wie z.B. die sozialen Aspekte des Web 2.0. Anhang B umfasst die Folien der Master Thesispräsentation, und die Screenshots der Beispielanwendung.
12
Grundlagen
2 Grundlagen
In diesem Kapitel sollen Aspekte des World Wide Web (WWW) sowie des Web 2.0 erklärt werden. Der erste Teil widmet sich dem Web an sich, im Folgenden werden Webanwendungen und Frameworks vorgestellt. Im letzten Teil wird der Begriff Web 2.0 sowie die Komponenten, die zum Verständnis nötig sind kurz erörtert. Die im Rahmen dieser Arbeit untersucht und eingesetzte Technologie Ruby on Rails wird zum Umfeld des Web 2.0 gezählt. Zum einen ist Ruby on Rails etwa zur gleichen Zeit in das öffentliche Interesse gerückt, des Weiteren können Technologie wie z.B. AJAX einfach eingebunden werden und neue Webanwendungen und Plattformen wie z.B. Blogs sind damit schnell zu realisieren.
2.1 Das WWW
2.1.1 Entstehung und Struktur
Das WWW existiert schon seit dem Jahre 1989. Es wurde damals von Tim Berners-Lee am Genfer Hochenergieforschungszentrum CERN entwickelt und der Öffentlichkeit vorgestellt. Er selbst hat das heute immer noch gültige Drei-Säulen-Konzept entwickelt: N HTTP (Hyper Text Transfer Protocol) als Übertragungstechnologie, N URI (Unified Resources Identifier) für die Adressierung von Dateien und Datenquellen,
N HTML (Hyper Text Markup Language) als Auszeichnungssprache für Webdokumente.
Sicherlich bietet heute das Web technologisch eine Vielzahl an Erweiterungen und Verbesserungen, aber das Grundkonzept ist nach wie vor integraler Bestandteil [Münz05]. Die folgenden Standards sind später noch hinzugekommen: N CSS (Cascading Style Sheets) legen das Aussehen der Elemente einer Webseite fest, Darstellung und Inhalt werden hierbei getrennt. N JavaScript ist eine Skriptsprache zur Erstellung von Programmen, die dann in
N HTTPS (Hypertext Transfer Protocol Secure) ist eine Weiterentwicklung von
Zu Beginn erfreute sich die Neuentwicklung des Briten Berners-Lee nicht allzu großer Beliebtheit. Dies änderte sich erst im Laufe der Zeit hauptsächlich durch das Aufkommen von Webbrowsern (z.B. Internet Explorer, Mozilla Firefox).
13
Das WWW hat inzwischen enorm an Bedeutung gewonnen. Diese Entwicklung dauert noch immer an. Nicht nur Unternehmen, sondern auch immer mehr Privatpersonen haben Webpräsenzen. Das Internet besteht aus einer heterogenen, dezentralen Struktur, welche eine enorme Vielfältigkeit bietet. Das Konzept der Hyperlinks erlaubt es Informationen auf einer Vielzahl an Achsen bewegen.
Das Internet ist äußerst populär und erschließt sich immer weitere Gesellschaftsschichten. Eine Trendwende ist nicht in Sicht. Das WWW entwickelte sich in den letzten Jahren durch die vielfältigen Benutzer und unterschiedlichen Nutzungen zum weltgrößten Datenspeicher. Die Möglichkeiten zum globalen und sofortigen Zugriff auf Informationen werden immer weiter verbessert. Die Marktforscher von eTForecast 1 haben errechnet, dass die Zahl der Internetnutzer weltweit im Jahr 2005 die Milliarden-Marke überschritten hat. Des Weiteren erwarten sie für das Jahr 2011 einen Anstieg der Nutzerzahlen auf zwei Milliarden. Zum Vergleich, im Jahr 1995 lagen die Nutzerzahlen noch bei 45 Mio. und 2000 bei 420 Mio. weltweit. Der Internetdienstleister Netcraft 2 hat bekannt gegeben, dass es weltweit mehr als 100 Millionen Webseiten gibt. In seiner ersten Untersuchung 1995 zählte Netcraft 18.957 Seiten. 3
Die meisten Webseiten sind heute nach wie vor in HTML verfasst oder werden mit Hilfe eines Content Management Systemen (CMS) erstellt. HTML verleiht den Dokumenten eine logische Struktur, z.B. Überschrift, Text, Link, usw. Das Einbinden von Bildern, Audio- und Multimediadateien ist ebenfalls möglich. HTML sorgt auch dafür, dass die Dokumente in den verschiedenen Browsern in etwa gleich interpretiert und dargestellt werden. Die Seiten werden in eine für den Menschen gut lesbare Form gebracht.
2.1.2 Weiterentwicklung
Das Internet bietet nicht nur Unmengen an Informationen, es bietet auch weitere immense Vorteile: die sekundenschnelle Verbreitung von Nachrichten (zum Beispiel in Form einer Email oder eines Blogs) über den gesamten Globus oder nur im privaten Umfeld, Onlinebanking, Online-Shops und Auktionshäuser sowie elektronische Lexikons, Wikis und Blogs. Das Netz bietet momentan schon eine große Anzahl an Möglichkeiten und dennoch gibt es immer wieder Neu- bzw. Weiterentwicklungen. Aus den statischen durch Hyperlinks verbundenen Seiten hat sich eine Vielzahl neuer dynamischer Seiten entwickelt. Dies wurde vor allem durch bessere Hardware und größere Bandbreiten ermöglicht. Das WWW hat in einem Jahrzehnt eine immense Entwicklung durchgemacht. Der erste Hype, das Börsenfieber, die Ernüchterung nach dem Platzen der Dotcom-Blase, dies alles liegt noch gar nicht lange zurück. Doch heute bevölkern wieder Start-Ups das Web und eine neue Euphorie ist zu spüren [Scholl06].
1 http://www.etforecasts.com/, bzw.: http://www.ecin.de/news/2006/01/09/09064/?rcol
2 http://news.netcraft.com/
3 Chip Xonio Online GmbH, http://www.chip.de/news/c1_news_22538819.html
14
Grundlagen
Der Versionssprung hin zum von O'Reilly ausgerufenen „Web 2.0“ verspricht Umwälzendes und zeugt von erstaunlichem Selbstvertrauen (Web 2.0 siehe Kapitel 2.4). Tatsache ist, dass auf der Basis offener Webtechnologien viele hundert neuer Anwendungen, Geschäftsideen und zahllose Web 2.0-Portale entstanden sind. Fakt ist auch, dass einige der neuen Portale von einem Millionenpublikum genutzt werden. Aber auch in der Hochphase von „Web 1.0“ wurden beeindruckende Nutzerzahlen und traumhafte Zuwächse präsentiert. Doch selten standen hinter den Millionen Nutzern nennenswerte Umsatzpotenziale, nur wenige Anbieter „überlebten“ diese Auslese [Scholl06].
Speziell auf der Serverseite sind gänzlich neue Technologien entstanden, wie beispielsweise PHP (Hypertext Preprocessor) oder JSP (Java Server Pages). Mit dem Ziel, den Entwickler zu unterstützen und mit der Lösung wiederkehrender Problemstellungen bei der Entwicklung von Webanwendungen (siehe Kapitel 2.2) zu helfen, sind so genannte Webframeworks (siehe Kapitel 2.3) entwickelt worden, die meist auf Java, C++ oder auch Ruby basieren und wieder verwendbare Komponenten und Codebibliotheken anbieten.
2.2 Webanwendungen
In seiner ursprünglichen Form wurde das WWW lediglich als statisches System genutzt. Seit geraumer Zeit jedoch ist eine Entwicklung offensichtlich, das Internet als Plattform zur Applikationsausführung zu nutzen. Beispiele hierfür sind Online-Benutzerschnittstellen für eine Vielzahl von servergestützten Anwendungen z.B. Email, die Realisierung von Onlineshops und anderer Dienstleistungen bis hin zu Officeanwendungen wie Web-Organizern und Terminkalendern. Applikationen, die bisher auf Clientrechnern installiert sein mussten und dort auch ausgeführt wurden, sollen ins „Internet“ verlagert werden. Durch den Einsatz leistungsfähiger Webapplikationen zusammen mit bestehenden IT-Lösungen und IT-Infrastrukturen wird ein plattformübergreifender Zugriff ermöglicht [Tchoukio04]. Webanwendungen bieten viele Vorteile:
N Installierung von spezieller Software ist auf dem Client nicht notwendig, ein einfacher Webbrowser reicht, es können PCs, Laptops, PDAs, Smartphones und Handys eingesetzt werden. N Geringere Kosten.
N Zugriff auf eigene Daten von überall aus möglich.
N Multiuser- und Netzwerkfähige Anwendungen (Internet und Intranet) viele Nutzer können gleichzeitig damit arbeiten.
N Anwendungen auf zentralen Applikation Server leicht wartbar.
Aber es gibt natürlich auch einige Nachteile:
N Meist geringere Arbeitsgeschwindigkeit als „echte“ Anwendungen. N Weniger Möglichkeiten in der Gestaltung der Benutzeroberfläche. N Gefährdung durch „Hackerangriffe“. N stärkere Abhängigkeit von den Browserherstellern.
15
2.2.1 Kategorien von Webanwendungen
Webanwendungen lassen sich sowohl betriebswirtschaftlich als auch technisch einteilen [Anastopoulos01]. Betriebswirtschaftlich ist einmal grundsätzlich zwischen Internet- und Intranetanwendungen zu unterscheiden, dazwischen stehen die so genannten Extranetanwendungen, die einem zwar externen, aber beschränkten Nutzerkreis zugänglich sind. Das Institute of Electrical and Electronics Engineers (IEEE) unterteilt Webanwendungen in die folgenden Kategorien [IEEE07]:
Diese Kategorien sind nicht strikt getrennt, eine Anwendung kann Elemente aus mehreren dieser Kategorien besitzen. Zu Beginn ihres Lebenszyklus kann eine Anwendung zu einer bestimmten Kategorie gehören und nach und nach Funktionen einiger anderer Kategorien integrieren (z.B.: spiegel.de 4 - eigentlich ein Anbieter von Nachrichten, aber mehr und mehr mit Umfragen, Gewinnspiele, Videos usw.).
2.2.2 Aufbau von Webanwendungen
Das Web funktioniert nach dem Client-Server-Prinzip, der Client schickt an den Server eine Anfrage, diese wird von ihm bearbeitet und danach die Antwort an den Client übermittelt. Wird eine HTML-Seite vom Client angefordert, lädt der Server diese von seiner Festplatte und sendet sie dem Client. Dieser stellt die Seite schließlich im Browserfenster dar. Diese Art von Webdokumente bezeichnet man als statisch.
4 www.spiegel.de
16
Grundlagen
Eine Vielzahl von Anwendungen benötigt jedoch einen Mechanismus, der es erlaubt, den Inhalt der Webdokumente in Abhängigkeit von Benutzeranfragen zu modifizieren. Solche Webdokumente werden als dynamisch bezeichnet. Webanwendungen sind also Programme, die geschrieben werden, damit Webserver auf Benutzeranfragen dynamisch reagieren können. Sie sind die dynamische Erweiterung von Webservern. Muss der Server zum Beispiel Suchprozesse oder Bestellvorgänge bearbeiten, so sollte er in der Lage sein, die Anfragen des Clients qualifiziert zu beantworten. Dies wird durch den Einsatz serverseitiger Dynamik ermöglicht. Anfragen, die der Client dem Server stellt, werden von serverseitigen Programmen für den Client bedarfsgerecht aufbereitet.
Eine Webanwendung ist meist durch eine Drei-Schichten-Architektur realisiert [Tchou-kio04], dabei sind zwei Ausprägungen möglich: Bei einer strengen Drei-Schichten-Architektur kann die Präsentationsschicht nur auf die Funktionsschicht und letztere nur auf die Datenhaltungsschicht zugreifen. Eine flexible Drei-Schichten-Architektur ergibt sich, wenn die Präsentationsschicht zusätzlich auf die Datenhaltungsschicht zugreifen kann. Je nach zu realisierenden Anwendung wählt man die passende Architektur aus.
5 Gerd Franke, 2006 [Wiki07]
17
Abbildung 2: Drei-Schichten-Architektur
2.2.3 Fazit
Webanwendungen machen einen Großteil der heute entwickelten Software aus. Mit ihrer zunehmenden Komplexität wächst auch die Bedeutung, die einem geordneten und organisierten Prozess ihrer Entwicklung zukommt. Eine allzu pragmatische Vorgehensweise, wie sie heute noch weit verbreitet ist [McDonald01], führt zwar zu schnellen aber auch unsauberen Entwicklungen, deren Qualitätsmängel zu Problemen im Betrieb und der Wartung beitragen.
Es wird auch häufig kritisiert, dass in diesem bedeutenden Segment softwareingenieurmäßige Methoden der Anwendungsentwicklung zum Teil nicht vorhanden sind oder nicht konsequent eingesetzt werden [Barry01]. Diese Kritik wiegt umso schwerer, weil zu jeder Zeit an jedem Ort mit jedem Medium (z.B. auch mit einem PDA) eine Webanwendung benutzbar sein sollte.
Zur Modellierung von Webanwendungen ist eine entsprechende Werkzeugunterstützung fast unumgänglich, mit deren Hilfe immer wiederkehrende Aufgaben gelöst werden können. Frameworks bieten diese Unterstützung und sollen im nächsten Kapitel näher betrachtet werden.
18
Grundlagen
2.3 Framework
2.3.1 Entwicklung
Im Wesentlichen geht es bei der Programmierung darum, Software möglichst einfach und effizient zu erstellen, einzusetzen, anzupassen und zu erweitern. Einige Möglichkeiten diese Ziele zu erreichen werden im Folgenden diskutiert.
2.3.1.1 Prozedurale Programmierung
Hier fehlen flexibel erweiterbare Schnittstellen, die eine Spezialisierung von bestimmten Begriffen zulassen (Mensch -> Frau Muster). Die Zusammenarbeit zwischen verschiedenen Systemen wird dadurch derart erschwert, dass unterschiedliche Arbeitsgruppen das gleiche Problem auf unterschiedlichste Art und Weise von neuem lösen und implementieren müssen. Nahezu die gleiche Anzahl von Personen wird nach der Übergabe in die Produktion für Erweiterungs- und Änderungsarbeiten gebraucht. Innovationen sind teilweise unmöglich.
6 Daniel S. Haischt [Wiki07]
19
2.3.1.2 Objektorientierte Programmierung
Bei dieser Programmierung werden Probleme der realen Welt modelliert und mit Hilfe der Programmiersprache abgebildet. Es entstehen zumeist kleine, gut verwaltbare Programmmodule mit nahezu natürlicher Granularität. Eine Schnittstellenabstraktion von den eigentlichen Implementationsdetails ist möglich. Dies gestattet eine einfache Schnittstellenerweiterung zur Spezialisierung und dank dem Polymorphismus auch die Funktionserweiterung.
2.3.1.3 Ereignisgesteuerte Programmierung
Durch das Programmieren graphischer Benutzeroberflächen wurde die ereignisgesteuerte Programmierung sehr populär. Typische Vertreter davon sind: Visual Basic und GUI-Klassen der Microsoft Foundation Classes (MFC) in C++. Die ereignisgesteuerte Programmierung gestattet dem Entwickler auf ganz bestimmte Ereignisse mit Zustandsänderungen und Aktionen zu reagieren. Nicht mehr der Entwickler bestimmt wann die Ereignisse auftreten, sondern der jeweilige Benutzer. Ein Programm wird daher in Funktionen aufgeteilt, die zu einem beliebigen Zeitpunkt in nicht vorhersehbarer Ordnung aufgerufen werden.
2.3.1.4 Programmierung im Frameworkumfeld
In der objektorientierten Entwicklung versucht man nun die Ablaufsteuerung, Hilfsklassen bzw. Objekte und ihre Beziehungen in einem Framework für einen bestimmten Anwendungstyp bereitzustellen. Frameworks sind speziell darauf ausgelegt, geschäftsrelevante Objekte zu verwalten und zu steuern. Sie geben durch eine konkrete Implementierung bereits gewisse Entwurfsrichtlinien und dadurch bedingt eine Standardisierung vor. Daher reduzieren Frameworks den Aufwand für das Erstellen von standardisiertem Code erheblich. Ein Framework gibt folglich eine Denkweise vor: „Konzentrieren Sie sich nicht auf die Ablaufsteuerung, sondern vor allem auf die Verantwortung des jeweiligen Objektes“, oder anders herum: „Don’t call us, we call you“.
2.3.2 Definition und Eigenschaften
Wörtlich übersetzt bedeutet Framework (Programm-)Gerüst, Rahmen oder Skelett. Damit soll ausgedrückt werden, dass ein Framework in der Regel eine Anwendungsarchitektur vorgibt. Der Programmierer registriert konkrete Implementierungen, die dann durch das Framework gesteuert und benutzt werden, statt wie bei einer Klassenbibliothek lediglich Klassen und Funktionen zu benutzen [Wiki07]. Je nach Standpunkt lautet die Formulierung zur Definition von Frameworks etwas anders. Die Definition von Johnson und Foote [Johnson88] ist wohl die bekannteste.
20
Grundlagen
“A software framework is a reusable design for a software system (or subsystem). This is expressed as a set of abstract classes and the way their instances collaborate for a specific type of software.” Eigenschaften von Frameworks
N Frameworks unterscheiden sich von Klassenbibliotheken durch das Vorhandensein einer bestimmten Architektur und eines bestimmten Designs. N Frameworks unterscheiden sich von Entwurfsmustern durch das Vorhandensein einer Basisimplementierung, die erweitert und dadurch auf bestimmte Aufgaben zugeschnitten werden kann.
Prinzipielle Nutzung
Wie nun werden Frameworks prinzipiell genutzt und an konkrete Bedürfnisse angepasst? Man finden bei Frameworks standardmäßig drei Typen von Schnittstellen [Cotter95]: 1. Schnittstellen, die durch applikatorische Objekte aufgerufen werden. 2. Schnittstellen, die durch das Ableiten von Klassen und das Überschreiben von Methoden an die jeweilige Anwendung angepasst werden. 3. Frameworks werden auch deklarativ programmiert. Dazu sind zumeist Sprachkonstrukte in XML-Notationsform vorgegeben.
2.3.2.1 Frameworkkategorien
Heute existieren unterschiedlichste, objektorientierte Frameworks. Die Abgrenzung Klassenbibliothek gegenüber Framework ist schleichend (Framework Kontinuum [Cotter95]). Aus diesem Grunde können objektorientierte Frameworks in verschiedenen Dimensionen charakterisiert werden [Mattson96]:
Frameworks können gemäß ihrem Einsatzbereich in folgende Domänen eingeordnet werden:
N Application Frameworks: können Funktionalitäten unterschiedlichster Domänen abdecken. Frameworks im Zusammenhang mit graphischen Benutzerschnittstellen sind z.B. auf dieser Stufe.
N Domain Frameworks: stellen spezielles Fachwissen bereit, z.B. im Versicherungswesen.
N Support Frameworks: bieten bestimmte Dienste (eher low-level) für unterschiedliche Bereiche an, z.B. Anwendungssicherheit.
Werden Frameworks nach der Art der Benutzung in der Softwareentwicklung geordnet, so treten zwei Begriffe zutage [Mattson96]:
N Architecture-Driven Frameworks: Vererbung und Überschreiben der Funktionalität stellen die hauptsächliche Erweiterungsmöglichkeit (Spezialisierung) dar.
21
N Data-Driven Frameworks: die Komposition ist die hauptsächliche Erweiterungsmöglichkeit. Dabei werden neue Objekte gemäß der Frameworkdokumentation eingefügt.
Unterscheidungsmerkmale von Frameworks können aufgrund des notwendigen Wissens im Bezug auf den Frameworkaufbau definiert werden [Mätzel99]: N White-box Frameworks: der Entwickler muss, um seine Anwendung realisieren zu können, das Framework im Detail kennen. Er erweitert Klassen und überschreibt entsprechende Methoden.
N Black-box Frameworks: der Entwickler kann durch Parametrisieren und Zusammenstellen bestehender Klassen das Framework für seine Anwendung anpassen. Weitere Kriterien für das Zuordnen von Frameworks können auch die jeweiligen, inneren Strukturen sein. Maßgebend hierfür ist die Softwarearchitektur. Beispiele sind: N Schichtenarchitektur, N Pipes and Filters Architektur und N Model-View-Controller Architektur (z.B. Rails).
Im Kapitel 3.2 erfolgt anhand des Frameworks Ruby on Rails eine genauere Betrachtung des Aufbaus und der Arbeit eines MVC-Frameworks.
2.3.3 Framework vs. Bibliothek
Bibliotheken und Frameworks sind beide ein besonderer Fall von Architekturkomponenten bzw. Standardarchitekturen. Bei beiden liegt jeweils nicht nur eine abstrakte Beschreibung der Architektur bzw. der Komponenten vor, sondern auch eine Implementierung von Komponenten.
(Standard-) Bibliotheken sind so gut wie bei jeder Sprache Teil der zugehörigen Programmierumgebungen. Sie erweitern den Leistungsumfang der Sprache um Funktionen, die nicht durch Sprachelemente abgedeckt sind. Standardbibliotheken sind Teil der laufenden Programme. Da Compilerläufe einen hohen Aufwand verursachen werden einzelne Programmmodule getrennt übersetzt, welche dann in Bibliotheken (bzw. Archiven) verwaltet werden. Die applikationsspezifischen Bindemodule werden zusammen mit Standardbibliotheken zu einem ladbaren und ausführbaren Programm zusammengebaut [Kelter03].
Grundlagen
Bibliotheken bieten typischerweise prozedurale Abstraktionen an und können als Erweiterung der Programmiersprache angesehen werden, zumal Bibliotheksoperationen meist genauso benutzt werden können, wie die in der Sprache direkt realisierte Operationen. In diesem Sinne kommt Bibliotheken softwaretechnisch gesehen eine wesentlich größere Bedeutung zu. Sie sind nicht nur ein technisches Instrument, welches getrenntes Übersetzen unterstützt. Man hat die Auswahl, entsprechende Funktionen selbst zu realisieren oder eine Standardbibliothek als Komponente in die Architektur aufzunehmen. Die Funktionen von Bibliotheken werden stets von den Applikationen aufgerufen, nicht umgekehrt. Graphisch ordnet man sie daher unter der Benutzungshierarchien an [Kelter03].
Im Gegensatz dazu übernimmt ein Framework die globale Steuerung. Die Grobarchitektur wird vorgegeben, so gesehen definiert ein Framework eine Standardarchitektur. Es muss nur noch an bestimmten Stellen applikationsspezifischer Code „ergänzt“ werden. Die eigentliche Applikation wird von Frameworkkomponenten aus aufgerufen. Ein Framework ist immer auf eine spezielle Klasse von Applikationen und damit auf einen speziellen Anwendungsbereich ausgerichtet (z.B. Webanwendungen) [Kelter03].
2.3.4 Zusammenfassung und Resümee
Der Einsatz von Frameworks bei der Entwicklung von Webanwendungen ist heute weit verbreitet. Frameworks machen vieles „von allein“ und damit einfacher. Auf diese Weise erleichtern sie dem Programmierer die Arbeit. Doch man sollte sich bewusst machen, was im Hintergrund passiert und darüber hinaus sich über neue Versionen und eventuelle Sicherheitslücken informieren. Gute Frameworks helfen Schwachstellen zu vermeiden, können aber nur so gut sein wie der Anwender. Der Entwurf eines Frameworks ist im Vergleich zu Entwürfen für Anwendungen ungleich komplizierter, da die Architektur des Frameworks für alle Anwendungen aus der Anwendungsdomäne funktionieren muss. Ein auf Entwurfsmustern basierendes Framework kann in der Regel viel leichter einen hohen Grad an Entwurf und Codewiederverwertung in Anwendungen erreichen als solche, die nicht auf Entwurfsmustern basieren (z.B. Model-View-Controller).
23
2.4 Das Web 2.0
„Web 2.0 is the network as platform, spanning all connected devices; Web 2.0 applications are those that make the most of the intrinsic advantages of that platform: delivering software as a continually-updated service that gets better the more people use it, consuming and remixing data from multiple sources, including individual users, while providing their own data and services in a form that allows remixing by others, creating network effects through an „architecture of participation,“ and going beyond the page meta-
Wasist Web 2.0? Diese Frage beschäftigt seit etwa zwei Jahren die „Internetgemeinde“, die Kritiker und die Experten. Das Konzept Web 2.0 begann mit einem Brainstorming bei O'Reilly Media.
Dale Dougherty 9 meinte, dass das Web nicht etwa zusammengebrochen, sondern wichtiger als jemals zuvor ist. Interessante neue Anwendungsmöglichkeiten und Seiten tauchten mit erstaunlicher Regelmäßigkeit auf und auch die überlebenden Firmen schienen einige wichtige Dinge gemeinsam zu haben. Könnte es sein, dass der Dotcom-Kollaps einen derartigen Wendepunkt markiert hatte, dass man diese Dinge nun mit einem Schlagwort wie Web 2.0 bezeichnen durfte?
Sie einigten sich darauf und damit war die „Web 2.0 Konferenz" geboren. Etwa zwei Jahre später hat sich der Begriff Web 2.0 in der Tat durchgesetzt, Google findet hierzu inzwischen 126 Millionen Treffer 10 .
Tim O’Reilly hat im September 2005 einen Artikel („What is Web 2.0?“ [OReilly05]) veröffentlicht, um ein für alle Mal sein Verständnis von Web 2.0 festzuhalten. Viele sehen in dieser Veröffentlichung die Legitimation des Begriffs. Aber trotzdem wird er oft so interpretiert, wie es gerade vorteilhaft erscheint. Der Begriff trifft teilweise auch auf Ablehnung. Die angedeutete „neue Version“ will eine Ansammlung von Neuentwicklungen auf den Punkt bringen und nicht einen Relaunch des Internets. Die stetige Entwicklung, die 2005 in die Medien und damit in die Öffentlichkeit gelangte, trägt heute den medienwirksamen Namen Web 2.0.
Wie unscharf das Web 2.0 zu fassen ist, zeigt sich auch in der berühmt gewordenen Visualisierung des Begriffs, das Web 2.0 Mind Map (siehe Abbildung 6).
7 http://radar.oreilly.com/archives/2005/10/web_20_compact_definition.html
8 http://internetalchemy.org/2005/07/talis-web-20-and-all-that
9 Dale Dougherty ist Mitbegründer von O'Reilly Media, Web-Pionier und Vizepräsident von O'Reilly.
10 Suche durchgeführt bei www.google.de am 08.01.2006.
24
Grundlagen
2.4.1 Konzept und Prinzipien
In dem schon oben erwähnten Artikel von Tim O’Reilly [OReilly05] arbeitet er sieben Prinzipien heraus, die für ihn als kennzeichnend und ausschlaggebend sind für die Frage, ob eine Anwendung oder ein Unternehmen Web 2.0 ist: 1. Das Web als Plattform. 2. Nutzung kollektiver Intelligenz. 3. Daten als nächstes „Intel inside“. 4. Abschaffung des Software-Lebenszyklus. 5. Lightweight Programming Models. 6. Software jenseits der Grenzen einzelner Geräte. 7. Grafische Benutzerführung (Rich User Experiences).
Wie viele andere wichtige Konzepte, hat Web 2.0 keine genauen Begrenzungen, sondern vielmehr ein Gravitationszentrum. Abbildung 7 zeigt eine „Karte“ des Web 2.0, die in einer Brainstorming-Sitzung während des FOO Camps entwickelt wurde, einer Konferenz bei O'Reilly Media. Die Karte ist in ständiger Überarbeitung, aber sie zeigt bereits die Vielzahl von Ideen, die vom Web 2.0 Kern ausgehen.
11 Markus Angermeier, http://kosmar.de/
25
2.4.1.1 Das Web als Plattform
Anstatt auf Desktopapplikationen zu setzen wird das Internet selbst als Plattform für Anwendungen genutzt. Die restlichen Prinzipien spielen in den Plattformgedanken herein, denn native Webanwendungen werden nicht punktuell veröffentlicht und lizenziert, sondern kontinuierlich gepflegt und einfach benutzt. Der Wert der Anwendung bestimmt sich maßgeblich durch die Daten, die sie verwaltet. Es findet eine radikale Vernetzung und Dezentralisierung der Anwendungen statt und bestehende werden zu neuen Anwendungen kombiniert („Mash-up“). Eine „Architektur der Beteiligung“ bezieht die Benutzer in die Entwicklung mit ein. Die Qualität des Dienstes steigt mit der Anzahl der Benutzer. Das Internet ist eine offene Plattform. Versuche, durch Monopolisierung der Plattform Erfolge zu erzielen, müssen daher aus Prinzip scheitern.
2.4.1.2 Die Nutzung kollektiver Intelligenz
Das WWW lebt von seinen Benutzern und wird auch von ihnen mitgestaltet. Sie stellen die kollektive Intelligenz dieses Netzes dar in dem sie Webseiten miteinander verlinken, Kommentare hinterlassen, Wissen beisteuern, sortieren und organisieren. Auf diesem Prinzip beruht der Erfolg neuer und etablierter Internetfirmen. N Hyperlinks bilden die Grundlage des Webs. Wenn Nutzer neue Inhalte und Seiten online stellen, werden sie durch die Verlinkung von anderen Nutzern in die Struktur des Webs einbezogen. Ähnlich den Synapsen im Gehirn, deren Assoziation durch Wiederholung und Intensität stärker wird, wächst das Netz der Verbindungen auf natürliche Weise als Output der kollektiven Aktivitäten aller Webnutzer.
26
Grundlagen
N Yahoo 12 , begann als Katalog oder Verzeichnis von Links, eine Aggregation der besten Ideen von abertausenden Nutzern. Obwohl Yahoo inzwischen viele Arten von Inhalten bereitstellt, bleibt sein Kern dennoch die Rolle eines Portals zu den gesammelten Werken der Internet-Gemeinde.
N Der Durchbruch für Google, der das Unternehmen schnell zum unumstrittenen Marktführer bei den Suchmaschinen werden ließ, war PageRank, eine Methode, die die Linkstruktur des WWW mehr als die Eigenschaften der Dokumente selbst nutzte, um bessere Suchergebnisse zu liefern.
N eBay's 13 Produkt ist die gemeinschaftliche Aktivität aller Beteiligten. Wie das Web selbst wächst eBay auf natürliche Weise durch intensive Nutzung, und die Rolle des Unternehmens beschränkt sich dabei auf die Bereitstellung des Rahmens, in dem die Nutzung stattfinden kann.
N Amazon 14 verkauft die gleichen Produkte wie seine Konkurrenten und erhält dieselben Produktbeschreibungen, Coverbilder und redaktionellen Inhalte von seinen Lieferanten. Jedoch hat Amazon aus dem Engagement seiner Benutzer eine Wissenschaft gemacht und besitzt Nutzerbewertungen, bietet Möglichkeiten zur Teilnahme in verschiedenster Weise auf nahezu allen Seiten an und vermutlich am bedeutendsten: nutzt die Nutzeraktivität zur Erzielung besserer Suchresultate. Während die Suche anderer Seiten häufig mit firmeneigenen oder gesponserten Resultaten beginnt, starten die Ergebnisse bei Amazon mit den „beliebtesten“ Produkten. Aufgrund der wesentlich höheren Nutzerbeteiligung ist es kaum ver-wunderlich, dass auch die Verkaufszahlen die der Konkurrenten deutlich übertreffen.
N Wikipedia 15 , eine Online-Enzyklopädie basierend auf der ungewöhnlichen Idee, dass jeder Eintrag von jedem Nutzer bearbeitet werden kann, stellt ein radikales Experiment mit Vertrauen dar, welches eine Maxime von Eric Raymond anwendet (die ursprünglich im Kontext von Open Source Software aufgestellt wurde): „Mit genügend wachsamen Augen werden alle Bugs sichtbar.“ Wikipedia wird bereits unter den Top-100-Webseiten 16 geführt und viele glauben, dass sie in Kürze unter den Top 10 zu finden sein wird.
N Seiten wie del.icio.us 17 und Flickr 18 , zwei Firmen die seit kurzem große Aufmerksamkeit genießen, haben ein Konzept vorangetrieben, dass im Allgemeinen als „Folksonomy“ bezeichnet wird, einer Art kollaborativer Kategorisierung von Seiten
12 www.yahoo.de
13 z.B. www.ebay.de
14 z.B. www.amazon.de
15 z.B. www.wikipedia.de
16 http://www.web100.com/listings/1.html, am 9. Januar 2007 ist Wikipedia auf Platz 30.
17 http://del.icio.us/
18 http://www.flickr.com/, am 9. Januar 2007 ist Wikipedia auf Platz 2.
27
mit frei wählbaren Keywords, oft auch als „Tags“ bezeichnet. Taggen erlaubt vielseitige, häufig überlappende Assoziierung, die der Arbeitsweise des Gehirns viel näher kommt als sture Kategorisierung. So kann ein Foto einer Puppe bei Flickr sowohl mit „Puppe“ als auch mit „hübsch“ getagged sein und erlaubt somit durch Nutzeraktivitäten die Widerauffindung entlang logischer Wege. N Kollaborative Spam-Filter-Produkte wie Cloudmark 19 sammeln die individuellen Einstufungen in Spam und Ham von Emailnutzern und bieten so ein System, das auf der Analyse der Nachrichten selbst beruht.
N Sehr viele Bestandteile der Internet-Infrastruktur, z.B. Linux, Apache, MySQL, Perl, PHP und Python basieren auf der Produktionsmethodik von Open Source und sind somit selbst Ausprägungen von durch das Netz ermöglichter, kollektiver Intelligenz. SourceForge 20 beinhaltet zurzeit über 100.000 Open Source Projekte. Jeder kann ein Projekt hinzufügen, jeder kann Code herunterladen und benutzen. Neue Projekte rücken ins Zentrum der Aufmerksamkeit durch Nutzer, die sie zum Laufen bringen. Es ist ein biologischer Übernahmeprozess, nahezu ausschließlich basierend auf Mundpropaganda.
2.4.1.3 Daten als nächstes „Intel inside“
Die Daten sind wichtig, nicht die Applikationen. Dabei geht es nicht darum, die Daten selbst zusammenzustellen oder zu besitzen, denn Daten können lizenziert und so auch von anderen genutzt werden. Ein Beispiel sind die Kartendaten von NavTeq 21 , sie werden von Yahoo Maps 22 sowie auch von Google Maps 23 genutzt. Wichtig ist es also, die Daten zu nutzen, anzubieten und zu ergänzen.
Genau wie seine Mitbewerber, bezieht Amazon die ursprüngliche Datenbasis vom ISBN Registrar R.R. Bowker. Aber Amazon arbeitet unaufhörlich an der Erweiterung dieser Basis, fügt Inhaltsverzeichnisse, Indizes, Samples hinzu und hat letztlich auch die Benutzerkommentare zu einem neuen Datenpool zusammengeführt. Darüber hinaus machten sie sich die Käuferbeteiligung zunutze, sodass heute Amazon, und nicht Bowker, die wichtigste Quelle für bibliographische Daten zu Büchern darstellt, eine Referenz für Schüler, Studenten, Bibliothekare und natürlich Käufer.
Die Daten mit Mehrwert anzureichern kann ein Schlüssel zum Erfolg sein. Über Programmierschnittstellen können die Daten einiger Dienste kostenfrei genutzt und damit zu neuen Diensten kombiniert werden. Ein Beispiel dafür ist Frappr 24 , das die geographischen Daten von Google Maps verwendet. Benutzer können hier Gruppen anlegen oder
19 http://www.cloudmark.com/
20 http://sourceforge.net/
21 www.navteq.com/
22 http://maps.yahoo.com/
23 http://maps.google.com/
24 http://www.frappr.com/
28
Grundlagen
beitreten, und deren Wohnorte werden auf einer Karte angezeigt. Eine Anbindung an das soziale Netzwerk von MySpace 25 existiert ebenfalls.
Die Wichtigkeit der Daten könnte einerseits zu verstärkten Monopolisierungsversuchen von Unternehmen führen. Auf der anderen Seite sind auch immer mehr Bestrebungen zu verzeichnen, durch entsprechende Lizenzen freie Datenquellen zu schaffen. Bei Wikipedia werden z.B. Artikel häufig unter die Creative-Commons-Lizenz gestellt. Auf dem Gebiet der persönlichen Daten gibt es sicher einige Unternehmen (z.B. Paypal, Amazon's 1-Click), die gerne eine netzweite Identitätsdatenbank erstellen möchten. Hier gibt es auch erhebliche Bedenken der Nutzer bzgl. ihrer Privatsphäre und ihre Rechte an den eigenen Daten.
2.4.1.4 Abschaffung des Software-Lebenszyklus
Das operative Geschäft wird zu einer Kernkompetenz der erfolgreichen Unternehmen im Internet. Webdienste werden und müssen teilweise permanent aktualisiert, gewartet und verbessert werden. Der dauerhafte Beta-Status wird schon fast zu einem Statussymbol: Google Mail oder Flickr können als ausgewachsene Applikationen betrachtet werden und tragen mit Absicht ein „Beta“ im Logo, um die stetige Entwicklung anzudeuten. Auch besteht so die Chance, unfertige Services anzubieten und diese nach und nach zu erweitern. Der Benutzer akzeptiert einerseits die anfänglichen Unzulänglichkeiten und freut sich über jedes neue Feature. Außerdem wird er in den Entwicklungsprozess mit einbezogen, sei es durch Verbesserungsvorschläge und/oder als kostenloser Softwaretester, vielleicht sogar als aktiver Programmierer. Das Benutzerverhalten kann schon lange vor einer klassischen Fertigstellung am laufenden Programm analysiert und in die weitere Entwicklung mit einbezogen werden. Die Maxime der Open-Source-Bewegung, „veröffentliche früh und veröffentliche häufig“, wird wörtlich genommen: Cal Henderson, Hauptentwickler von Flickr, enthüllte kürzlich, dass neue Versionen manchmal innerhalb von einer halben Stunde veröffentlicht werden. Obwohl nicht alle Webanwendungen derart häufig Releases ausliefern, haben doch fast alle von ihnen einen Entwicklungszyklus, der sich völlig vom bisherigen Software-Lebenszyklus unterscheidet.
2.4.1.5 Lightweight Programming Models
Als die Idee der Web Services aufkam, stellten große Firmen komplexe Web Services bereit. Aber gerade aufgrund seiner Einfachheit wurde z.B. RSS (Really Simple Syndication), der vermutlich am weitesten verbreitete Web Service, während die komplexen Dienste der Unternehmen noch auf ihre Verbreitung warten. Grundsätze sind:
N
LPMs (Lightweight Programming Models), die lose gekoppelte Systeme er-
25 www.myspace.com/
29
N Kooperieren ohne zu koordinieren. Bei einfachen Web Services wie z.B. RSS
N „Hackability" und „Remixability"; Systeme wie das Web, RSS und AJAX haben
2.4.1.6 Software jenseits der Grenzen einzelner Geräte
Jede Webapplikation ist per Definition nicht auf ein Gerät zugeschnitten, sondern kann auf jedem Computer oder mobilen Endgerät ablaufen, das einen Browser unterstützt. Doch dies ist nichts vollkommen Neues, sondern vielmehr eine vollständigere Realisierung der Webplattform. Unter dem Gesichtspunkt des Webs als Plattform kann die Grenze jedoch noch ausgeweitet werden: iTunes 26 ist hierfür das beste Beispiel. Apple verbindet mit seinem digitalen Musikservice „iTunes“ das mobile Abspielgerät (iPod) über den PC des Benutzers (auf dem die iTunes-Software läuft) mit den Servern des Internet (auf dem die Musikstücke als Daten bereitstehen). Es geht hier weniger um die reinen Webapplikationen als solche, sondern um die Nutzung des Webs als Serviceplattform.
2.4.1.7 Grafische Benutzerführung (Rich User Experiences)
Schon früher haben verschiedene Technologien versucht, das Web durch dynamische und interaktive grafische Elemente anzureichern und letztendlich grafische Benutzeroberflächen, wie man sie aus Desktopapplikationen gewöhnt ist, zur Verfügung zu stellen. Java Applets oder Flash (von Macromedia 27 als „Rich Internet Applications“ bezeichnet) stellten proprietäre Lösungen dar, die nur mit Browser Plug-ins realisiert werden konnten. DHTML (dynamisches HTML, die Kombination von HTML, CSS und JavaScript) versuchte dies mit standardisierten Techniken. Über die Standards bekriegten sich jedoch Microsoft und Netscape im „Browser-Krieg“. Die Standards werden heute vom World Wide Web Consortium (W3C) 28 oder der Internet Engineering Task Force (IETF) 29 überwacht - diese Organisationen haben sich eine respektierte Stellung erarbeitet. Neue Ansätze, um grafische Benutzeroberflächen darzustellen, können daher auf diese Standards bauen.
26 iTunes ist ein kostenloser Musik-Player der Firma Apple (http://www.apple.com/de/itunes/). Die Funktionen erstrecken sich vom Abspielen über das Organisieren bis hin zum Kaufen von Musik [Wiki07].
27 Macromedia war eine Softwarefirma mit Sitz in San Francisco, die vor allem durch ihre Produkte Flash, Freehand und Dreamweaver bekannt wurde. Seit dem 3. Dezember 2005 ist Macromedia eine Tochtergesellschaft von Adobe Systems [Wiki07].
28 www.w3.org/
29 www.ietf.org/
30
Grundlagen
AJAX ist so ein Ansatz und vereint Techniken wie XHTML, CSS, XML und JavaScript, um ein „Look-and-Feel“ von statischen, nicht webbasierten Anwendungen zu erzeugen. Garrett (Mitarbeiter der Agentur Adaptive Path) der Namensgeber von AJAX (Asynchronous JavaScript and XML) beschreibt die Technologie folgendermaßen [Garrett05]: "AJAX ist keine einzelne Technologie. AJAX beinhaltet mehrere Technologien, jede mit ihrer ganz besonderen Daseinsberechtigung, die auf neue und mächtige Weise miteinander verbunden wurden. Im Einzelnen handelt es sich um: S Standardgerechte Präsentation mit XHTML und CSS. S Dynamische Anzeigen und Interaktivität mittels des Document Object Models (DOM).
S Datenaustausch und -manipulation mit XML und XSLT. S Asynchrone Datenabfrage unter Verwendung von XMLHttpRequest. S Und schließlich JavaScript, das all dies zusammenbringt."
AJAX hat sich als Schlüsselkomponente für viele der modernen Anwendungen des Web 2.0 erwiesen. Die Stärken des Webs wie globale Erreichbarkeit und Durchsuchbarkeit lassen sich so mit den interaktiven Benutzeroberflächen verbinden.
2.4.2 Komponenten und soziale Aspekte
Eines der meistgenannten Features vom Web 2.0 ist der Blog. Im Grunde ist es nur eine persönliche Homepage in Form eines Tagebuchs, in der ein Autor Ansichten oder Kommentare veröffentlicht. Es gibt oft eine Kommentarfunktion und Blogs können nachvollziehbar Bezug auf Artikel in anderen Blogs nehmen. Das so entstehende soziale Geflecht aus Artikeln, Kommentaren und Vernetzungen wird als Blogosphäre bezeichnet. Erste Blogs entstanden Mitte der 1990er Jahre, heute ist es durch webbasierten Dienste sehr einfach Blogs zu erstellen.
30 Schiller Garcia J., http://www.scill.de/content/2006/09/21/web-20-buzz-zeitstrahl/
31
Wikis sind eine Art Onlinelexikon, doch die Einträge können von den Benutzern nicht nur gelesen, sondern auch geändert oder neu erstellt werden. Das erste Wiki ging 1995 online. Das wohl bekannteste Wiki-Projekt ist „Wikipedia“, eine Online-Enzyklopädie, die in den verschiedensten Sprachen existiert. Durch gemeinschaftliche Arbeit sind so 6 Millionen Artikel entstanden.
Vorläufer der heutigen webbasierten sozialen Software sind die textbasierten, in Echtzeit ablaufenden Dienste (Chats). Die bekanntesten Instant Messaging-Programme sind ICQ, MSN Messenger, Yahoo! Messenger und Skype, heute sind z.B. auch multimediale Kommunikation (Internettelefonie, Videokonferenzen und gemeinsame Nutzung von Programmen) möglich.
Die erste Webseite zur Bildung sozialer Netzwerke ging bereits 1995 online. Es soll das Wieder finden ehemaliger Freunden aus der Schulzeit ermöglichen. Sehr beliebt sind soziale Netzwerke, die auf Freundeskreisprinzipien beruhen. Das aus Deutschland stammende und vor allem in Europa und Asien verbreitete Business-Netzwerk Xing (früher openBC) basiert genau auf diesem Phänomen. Durch den Aufbau eines eigenen Kontaktkreises bekannter Personen gewinnt der Benutzer hier eine hohe Anzahl sekundärer Kontakte (Schneeballprinzip). Das System dient zum Knüpfen von beruflichen Kontakten. MySpace 31 ist derzeit der beliebteste soziale Netzwerkdienst, er bietet eine Kombination aus persönlichem Profil, Blog, Foto- und Filmuploads, Benutzergruppen und einem internen Mail-System. Die Seiten können vom Nutzer optisch angepasst und mit Seiten anderer Benutzer verknüpft werden.
Kritik an sozialen Webdiensten kommt zum Einen daher, dass es oft nicht möglich, zu prüfen, ob die in den Benutzerprofilen angegeben Daten echt sind. Somit lassen sich auch die veröffentlichten Inhalte häufig nicht realen Personen zuordnen. Zum anderen richtet sich die Kritik an den mangelnden Selbstdatenschutz der Nutzer. Benutzerprofile können oft eingesehen werden, ohne dass sich der Betrachter vorher selbst angemeldet haben muss.
An dieser Stelle ist nur eine kurze Zusammenfassung der Komponenten und sozialen Aspekte des Web 2.0 erfolgt, genauere Informationen siehe Anhang A.1.
2.4.3 Zusammenfassung und Resümee
Von Kritikern wird der Begriff Web 2.0 aufgrund seiner Unschärfe als Modewort abgetan, das oft für alles benutzt wird, das „cool und neu“ ist. Der Begriff hat in ihren Augen keine eigenständige Bedeutung und kann nur anhand von Beispielen umschrieben werden, wobei verschiedenste Beschreibungen existierten. Durch die „Versionsnummer 2.0“ entstehe, in Anlehnung an Softwareprodukte, der Eindruck einer neuen Version des Internets. Von O’Reilly zitierte Unternehmen wie Google, Amazon oder eBay haben die dargelegten Prinzipien schon lange vor der Kreation des Begriffs Web 2.0 verfolgt. Die Kritiker sind
31 http://www.myspace.com/
32
Grundlagen
auch der Meinung, dass Web 2.0-Unternehmen aus Kapitalgebersicht zunächst nicht viel zu bieten hätten. Sie befürchten auch das erneute Aufkommen einer Dotcom-Blase. 32 Große Unternehmen kaufen bereits für horrende Summen neue Portale auf, z.B. wurde die Studentencommunity StudiVZ 33 von Holtzbrinck (Handelsblatt, Die Zeit, usw.) für etwa 100 Millionen Euro erworben. 34
Tim Berners-Lee, der Urvater des Webs hat sich in einem Interview bei IBM Developer Works zum Thema Web 2.0 und der Zukunft des Webs geäußert. 35 Insbesondere auf die Behauptung, dass das Web 1.0 nur Computer verbunden hätte und mit Web 2.0 nun die Menschen verbunden würden, reagiert er allergisch [Reticon06]: "Totally not. Web 1.0 was all about connecting people. It was an interactive space, and I think Web 2.0 is of course a piece of jargon, nobody even knows what it means. If Web 2.0 for you is blogs and wikis, then that is people to people. But that was what the Web was supposed to be all along."
Für Berners-Lee ist der nächste Schritt eher in Richtung „Semantic Web“ an dem er seit längerem mitkonzipiert. Web 2.0 ist nur eine, wenn auch durchaus interessante Anwendung klassischer Webtechniken. Aber für ihn sind die Angebote von youtube über myspace, Wikis und Blogs keine Revolution, die neue Technologie nutzt, wie es die Einführung des WWW war. Für Wikipedia-Gründer Jimmy Wales ist weniger der technische Aspekt als mehr die soziale Innovation maßgeblich; sie stelle die Grundlage für eine neue partizipative Kultur dar 36 .
Die Kritiker richten sich im Wesentlichen gegen den unpräzisen Begriff, den Hype um Web 2.0 und die Sicherheitsprobleme (von Daten und Anwendungen). Nicht von der Hand zu weisen sind, die zunehmende Verwendung innovativer Technologien und das verstärkte Aufkommen von sozialen Strukturen im WWW. Neue Portale und Möglichkeiten bereichern das Netz, welche am Ende übrig bleiben ist jetzt noch nicht absehbar. Die Entscheidung, ob man mit dem Schlagwort Web 2.0 einverstanden ist, bleibt jedem selbst überlassen.
Ein negativer Punkt ist, dass jetzt schon Informationen über einen selbst, von jedem immer und überall recherchierbar und abrufbar sind. Wer es darauf anlegt, kann Bewegungs-, Konsum- und Vorliebenprofile aus den im Netz verfügbaren Daten in Zukunft noch detaillierter zusammenstellen. Immer mehr Wissen, bis in die Intimsphäre der Nutzer hinein, wird auf Servern rund um die Welt gelagert sein. Die Gefahren sind offensichtlich. Zum Schluss noch die Frage: „Was ist mit dem deutschen Web 2.0?“ Die meisten Angebote entstehen in den USA und sind dementsprechend auf den amerikanischen beziehungsweise englischsprachigen Markt ausgerichtet. In Deutschland werden innovative
32 www.nytimes.com/2005/11/18/opinion/18battelle.html?ex=1289970000&en=24386e654b2c02ed &ei=5088&partner=rssnyt&emc=rss
33 www.studivz.net/
34 www.manager-magazin.de/it/artikel/0,2828,457610,00.html
35 www-128.ibm.com/developerworks/podcast/dwi/cm-int082206.txt
36 http://www.heise.de/newsticker/meldung/74389
33
Arbeit zitieren:
Gabriele Wichmann, 2007, Ruby on Rails - Die bessere Alternative?, München, GRIN Verlag GmbH
Dieser Text kann über folgende URL aufgerufen und zitiert werden:
Einbetten
DOI
BASEL II - Ein Überblick unter besonderer Berücksichtigung von Immobil...
Hausarbeit, 53 Seiten
Merkmale und Inhalte eines Marketingplanes
BWL - Marketing, Unternehmenskommunikation, CRM, Marktforschung
Seminararbeit, 32 Seiten
Das ambivalente Verhältnis von Nachhaltigkeit und Innovation
Entstehungspfade und Determina...
BWL - Unternehmensethik, Wirtschaftsethik
Diplomarbeit, 115 Seiten
Wissensmanagement in Vertriebsnetzwerken - eine strategische Konzeptio...
BWL - Unternehmensführung, Management, Organisation
Diplomarbeit, 97 Seiten
Kennzahlen und Kennzahlensysteme
Mit dem Fokus auf Ziele der Re...
BWL - Rechnungswesen, Bilanzierung, Steuern
Diplomarbeit, 26 Seiten
Psychologie - Arbeit, Betrieb, Organisation und Wirtschaft
Hausarbeit, 19 Seiten
Führung im Wandel - Die Rolle der Führungskräfte im Change Management
BWL - Unternehmensführung, Management, Organisation
Masterarbeit, 118 Seiten
Entwicklung einer Balanced Scorecard für ein mittelständisches Dienstl...
Diplomarbeit, 87 Seiten
Framework für Zustandsorientierte Programmierung
Einsatz bei der Implementierun...
Diplomarbeit, 106 Seiten
Methoden und betriebswirtschaftliche Anwendungsbereiche der Prognosere...
BWL - Unternehmensführung, Management, Organisation
Lizentiatsarbeit, 88 Seiten
On Campus Recruiting als Form des Personalmarketings
BWL - Bank, Börse, Versicherung
Studienarbeit, 26 Seiten
Basel II - Direkte und indirekte Auswirkungen auf die Finanzierung der...
BWL - Investition und Finanzierung
Seminararbeit, 37 Seiten
Anwendung von Kennzahlen zur Krisenfrüherkennung in Unternehmen
BWL - Unternehmensführung, Management, Organisation
Seminararbeit, 22 Seiten
Konzeption eines internetbasierenden Management Benchmark Systems (iBM...
BWL - Unternehmensführung, Management, Organisation
Diplomarbeit, 139 Seiten
Supplier Relationship Management - Die aktuelle Bedeutung und Trends v...
BWL - Beschaffung, Produktion, Logistik
Diplomarbeit, 122 Seiten
Strategisches Management mit der Balanced Scorecard - Zur Implementier...
BWL - Unternehmensführung, Management, Organisation
Diplomarbeit, 160 Seiten
Herausforderung Change Management - Promotoren erfolgreicher Veränderu...
BWL - Unternehmensführung, Management, Organisation
Bachelorarbeit, 65 Seiten
Gabriele Wichmann's Text Ruby on Rails - Die bessere Alternative? ist nun auf dem Buchmarkt erhältlich
Gabriele Wichmann hat den Text Ruby on Rails - Die bessere Alternative? veröffentlicht
Gabriele Wichmann hat einen neuen Text hochgeladen
Ruby on Rails 3.1 Expertenwissen
Eine praxisorientierte Einführ...
Stefan Sprenger, Kieran Hayes
Beginning Ruby on Rails E-Commerce: From Novice to Professional
Christian Hellsten, Jarkko Laine
Ruby on Rails Enterprise Application Development: Plan, Program, Exten...
Elliot Smith, Rob Nichols
0 Kommentare