Ruby on Rails - Die bessere Alternative?


Masterarbeit, 2007

159 Seiten, Note: 1,0


Leseprobe

Inhaltsverzeichnis

Abbildungsverzeichnis

Vorwort

1 Einleitung
1.1 Hintergrund
1.2 Aufgabenstellung
1.3 Aufbau der Arbeit

2 Grundlagen
2.1 Das WWW
2.1.1 Entstehung und Struktur
2.1.2 Weiterentwicklung
2.2 Webanwendungen
2.2.1 Kategorien von Webanwendungen
2.2.2 Aufbau von Webanwendungen
2.2.3 Fazit
2.3 Framework
2.3.1 Entwicklung
2.3.2 Definition und Eigenschaften
2.3.3 Framework vs. Bibliothek
2.3.4 Zusammenfassung und Resümee
2.4 Das Web 2.0
2.4.1 Konzept und Prinzipien
2.4.2 Komponenten und soziale Aspekte
2.4.3 Zusammenfassung und Resümee

3 Ruby on Rails
3.1 Ruby
3.1.1 Alles ist ein Objekt
3.1.2 Flexibilität
3.1.3 Blöcke
3.1.4 Mixins
3.1.5 Äußeres Design
3.1.6 Weiterführendes
3.1.7 Funktionale Programmierung in Ruby
3.1.8 Zusammenfassung und Resümee
3.2 Ruby on Rails
3.2.1 Die Philosophie
3.2.2 MVC in Rails
3.2.3 ActiveRecords
3.2.4 ActionPack
3.2.5 Reverse-Engineering
3.2.6 Testen
3.2.7 Produktionsumgebung
3.2.8 Agility on Rails
3.2.9 Projects on Rails
3.2.10 Zusammenfassung und Resümee
3.3 Weitere Rubyentwicklungen
3.3.1 JRuby
3.3.2 Ruby.Net
3.3.3 AJAX on Rails
3.3.4 Mongrel
3.3.5 Capistrano
3.4 Zusammenfassung und Resümee

4 Die Tauchanwendung
4.1 Die aktuelle Tauchanwendung - JTrak
4.1.1 Aufbau der Anwendung
4.1.2 Ablauf beim Anlegen eines Tauchgangs
4.2 Vorüberlegungen
4.2.1 Rollen und Anwendungsfälle
4.2.2 Daten
4.3 Das schrittweise Vorgehen
4.3.1 Anwendung erzeugen
4.3.2 Datenbanken erstellen
4.3.3 Erste Tabelle definieren
4.3.4 Konfiguration der Datenbankverbindung
4.3.5 Erstellen mit Scaffold
4.3.6 Benutzerverwaltung hinzufügen
4.3.7 Design anpassen
4.3.8 Zusätzliche Funktionalitäten
4.3.9 Veröffentlichung
4.3.10 Ablauf zum Anzeigen der Details eines Tauchgangs
4.4 Arbeiten mit JRuby on Rails
4.5 Fazit

5 Technologievergleich
5.1 Java 5
5.1.1 3-Schichten Architektur von Java EE
5.1.2 Bestandteile der Spezifikation
5.1.3 Java EE vs. Ruby on Rails
5.1.4 Fazit und Entwicklung
5.2 PHP
5.2.1 PHP vs. Ruby on Rails
5.2.2 Fazit und Entwicklung
5.3 Büchervergleich
5.3.1 Java
5.3.2 PHP
5.3.3 Ruby on Rails
5.3.4 Fazit
5.4 Zusammenfassung und Resümee

6 Ausblick

Anhang A:
A.1 Komponenten und soziale Aspekte des Web 2.0
A.1.1 Bloggen und die Weisheit des Volkes
A.1.2 Wikis
A.1.3 Soziale Software
A.1.4 Kritik an sozialen Webdiensten
A.2 Enterprise JavaBeans
A.2.1 Enterprise JavaBeans 2.1
A.2.2 Enterprise JavaBeans 3.0
A.3 Aufbau der Seite eins.de
A.4 Installation von Ruby on Rails
A.4.1 Windows
A.4.2 Linux/Unix
A.4.3 Mac OS X
A.5 Diagramme zur Beispielanwendung
A.5.1 Klassendiagramm Logbuch
A.5.2 Sequenzdiagramm Bearbeiten Tauchgang

Anhang B:
B.1 Folien Präsentation
B.2 Screenshots Beispielanwendung

Abkürzungen

Literaturverzeichnis

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.

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]

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]

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 Ent- wicklung 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äh- rend die seit Jahren in den USA stattfindende Rubykonferenz noch bis 2004 eher ein Ni- schendasein 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 deut- sche 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 Ein- druck gemacht hat, ist an den vielen erhältlichen Kopien für andere Sprachen zu sehen.

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 Anwen- dungsebene.

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“ Internettechno- logien.

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.

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.

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 Webanwen- dungen 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 reali- sieren.

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 vor- gestellt. Er selbst hat das heute immer noch gültige Drei-Säulen-Konzept entwickelt:

- HTTP (Hyper Text Transfer Protocol) als Übertragungstechnologie,
- URI (Unified Resources Identifier) für die Adressierung von Dateien und Da- tenquellen,
- HTML (Hyper Text Markup Language) als Auszeichnungssprache für Webdo- kumente.
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:
- CSS (Cascading Style Sheets) legen das Aussehen der Elemente einer Webseite fest, Darstellung und Inhalt werden hierbei getrennt.
- JavaScript ist eine Skriptsprache zur Erstellung von Programmen, die dann in einem Webbrowser ausgeführt werden. Der Quelltext dieser Programme wird in die Webseiten eingebettet.
- HTTPS (Hypertext Transfer Protocol Secure) ist eine Weiterentwicklung von HTTP, bei dem das Protokoll SSL zwischen TCP und HTTP geschoben wird und in der Folge der Datentransfer komplett verschlüsselt wird. 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).

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 Gesellschaftsschich- ten. 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 Daten- speicher. Die Möglichkeiten zum globalen und sofortigen Zugriff auf Informationen werden immer weiter verbessert. Die Marktforscher von eTForecast1 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 Milliar- den. Zum Vergleich, im Jahr 1995 lagen die Nutzerzahlen noch bei 45 Mio. und 2000 bei 420 Mio. weltweit. Der Internetdienstleister Netcraft2 hat bekannt gegeben, dass es welt- weit 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].

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 beispiels- weise 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 Onli- neshops und anderer Dienstleistungen bis hin zu Officeanwendungen wie Web-Organi- zern 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:

- Installierung von spezieller Software ist auf dem Client nicht notwendig, ein einfa- cher Webbrowser reicht, es können PCs, Laptops, PDAs, Smartphones und Han- dys eingesetzt werden.

- Geringere Kosten.
- Zugriff auf eigene Daten von überall aus möglich.
- Multiuser- und Netzwerkfähige Anwendungen (Internet und Intranet) viele Nutzer können gleichzeitig damit arbeiten.
- Anwendungen auf zentralen Applikation Server leicht wartbar.
Aber es gibt natürlich auch einige Nachteile:
- Meist geringere Arbeitsgeschwindigkeit als „echte“ Anwendungen. x Weniger Möglichkeiten in der Gestaltung der Benutzeroberfläche. x Gefährdung durch „Hackerangriffe“.
- stärkere Abhängigkeit von den Browserherstellern.

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]:

Abbildung in dieser Leseprobe nicht enthalten

Tabelle 1: Übersicht über Kategorien von Webanwendungen

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.de4 - 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.

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 Pro- gramme, die geschrieben werden, damit Webserver auf Benutzeranfragen dynamisch reagieren können. Sie sind die dynamische Erweiterung von Webservern. Muss der Ser- ver 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.

Abbildung 1: Webanwendung im Client-Server-Modell5

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.

Abbildung in dieser Leseprobe nicht enthalten

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 orga- nisierten 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 softwareingenieur- mäß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ön- nen. Frameworks bieten diese Unterstützung und sollen im nächsten Kapitel näher be- trachtet werden.

2.3 Framework

Abbildung in dieser Leseprobe nicht enthalten

Abbildung 3: Framework6

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 verschiede- nen Systemen wird dadurch derart erschwert, dass unterschiedliche Arbeitsgruppen das gleiche Problem auf unterschiedlichste Art und Weise von neuem lösen und implementie- ren müssen. Nahezu die gleiche Anzahl von Personen wird nach der Übergabe in die Produktion für Erweiterungs- und Änderungsarbeiten gebraucht. Innovationen sind teil- weise unmöglich.

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 Pro- grammmodule mit nahezu natürlicher Granularität. Eine Schnittstellenabstraktion von den eigentlichen Implementationsdetails ist möglich. Dies gestattet eine einfache Schnittstel- lenerweiterung zur Spezialisierung und dank dem Polymorphismus auch die Funktionser- weiterung.

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 Pro- grammierung gestattet dem Entwickler auf ganz bestimmte Ereignisse mit Zustandsände- rungen und Aktionen zu reagieren. Nicht mehr der Entwickler bestimmt wann die Ereig- nisse 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 Anwen- dungstyp 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 erheb- lich. 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.

“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 -Frameworks unterscheiden sich von Klassenbibliotheken durch das Vorhanden- sein einer bestimmten Architektur und eines bestimmten Designs.
-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 Sprach- konstrukte 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:

-Application Frameworks: können Funktionalitäten unterschiedlichster Domänen abdecken. Frameworks im Zusammenhang mit graphischen Benutzerschnittstellen sind z.B. auf dieser Stufe. - Domain Frameworks: stellen spezielles Fachwissen bereit, z.B. im Versiche- rungswesen.
- Support Frameworks: bieten bestimmte Dienste (eher low-level) für unterschied- liche Bereiche an, z.B. Anwendungssicherheit.
-Werden Frameworks nach der Art der Benutzung in der Softwareentwicklung geordnet, so treten zwei Begriffe zutage [Mattson96]:
- Architecture-Driven Frameworks: Vererbung und Überschreiben der Funktiona- lität stellen die hauptsächliche Erweiterungsmöglichkeit (Spezialisierung) dar .
- Data-Driven Frameworks: die Komposition ist die hauptsächliche Erweiterungs- mö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]:
- White-box Frameworks: der Entwickler muss, um seine Anwendung realisieren zu können, das Framework im Detail kennen. Er erweitert Klassen und über- schreibt entsprechende Methoden.
- Black-box Frameworks: der Entwickler kann durch Parametrisieren und Zusam- menstellen 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:
- Schichtenarchitektur,
- Pipes and Filters Architektur und
- 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 Pro- grammierumgebungen. Sie erweitern den Leistungsumfang der Sprache um Funktionen, die nicht durch Sprachelemente abgedeckt sind. Standardbibliotheken sind Teil der lau- fenden Programme. Da Compilerläufe einen hohen Aufwand verursachen werden einzel- ne 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].

Abbildung in dieser Leseprobe nicht enthalten

Abbildung 4: Quelltexte, Bindemodule und Programme [Kelter03]

Bibliotheken bieten typischerweise prozedurale Abstraktionen an und können als Erweite- rung 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 Über- setzen unterstützt. Man hat die Auswahl, entsprechende Funktionen selbst zu realisieren oder eine Standardbibliothek als Komponente in die Architektur aufzunehmen. Die Funkti- onen von Bibliotheken werden stets von den Applikationen aufgerufen, nicht umgekehrt. Graphisch ordnet man sie daher unter der Benutzungshierarchien an [Kelter03].

Abbildung in dieser Leseprobe nicht enthalten

Abbildung 5: Bibliothek vs. Framework [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 Si- cherheitslü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).

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 ser- vices in a form that allows remixing by others, creating network effects through an „architecture of participation,“ and going beyond the page meta- phor of Web 1.0 to deliver rich user experiences.“ (Tim O’Reilly7 )

„Web 2.0 is an attitude not a technology. “ (Ian Davis8 )

Was ist 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 Dougherty9 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 Treffer10.

Tim O’Reilly hat im September 2005 einen Artikel („What is Web 2.0?“ [OReilly05]) veröf- fentlicht, 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 interpre- tiert, 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).

Abbildung in dieser Leseprobe nicht enthalten

Abbildung 6: Web 2.0 Mind Map11

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.

Abbildung in dieser Leseprobe nicht enthalten

Abbildung 7: Karte Web 2.0 [OReilly05]

2.4.1.1 Das Web als Plattform

Anstatt auf Desktopapplikationen zu setzen wird das Internet selbst als Plattform für An- wendungen genutzt. Die restlichen Prinzipien spielen in den Plattformgedanken herein, denn native Webanwendungen werden nicht punktuell veröffentlicht und lizenziert, son- dern 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 Anwendun- gen 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.

- Hyperlinks bilden die Grundlage des Webs. Wenn Nutzer neue Inhalte und Seiten online stellen, werden sie durch die Verlinkung von anderen Nutzern in die Struk- tur des Webs einbezogen. Ähnlich den Synapsen im Gehirn, deren Assoziation durch Wiederholung und Intensität stärker wird, wächst das Netz der Verbindun- gen auf natürliche Weise als Output der kollektiven Aktivitäten aller Webnutzer.
-Yahoo12, 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.
- 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.
- eBay's13 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.
- Amazon14 verkauft die gleichen Produkte wie seine Konkurrenten und erhält die- selben Produktbeschreibungen, Coverbilder und redaktionellen Inhalte von seinen Lieferanten. Jedoch hat Amazon aus dem Engagement seiner Benutzer eine Wis- senschaft gemacht und besitzt Nutzerbewertungen, bietet Möglichkeiten zur Teil- nahme 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 übertref- fen.
- Wikipedia15, 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-Webseiten16 geführt und viele glauben, dass sie in Kürze unter den Top 10 zu finden sein wird.
- Seiten wie del.icio.us17 und Flickr18, zwei Firmen die seit kurzem große Aufmerk- samkeit genießen, haben ein Konzept vorangetrieben, dass im Allgemeinen als „Folksonomy“ bezeichnet wird, einer Art kollaborativer Kategorisierung von Seiten Gabriele Wichmann 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.
- Kollaborative Spam-Filter-Produkte wie Cloudmark19 sammeln die individuellen Einstufungen in Spam und Ham von Emailnutzern und bieten so ein System, das auf der Analyse der Nachrichten selbst beruht.
- 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. SourceForge20 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 NavTeq21, sie werden von Yahoo Maps22 sowie auch von Google Maps23 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 Pro- grammierschnittstellen können die Daten einiger Dienste kostenfrei genutzt und damit zu neuen Diensten kombiniert werden. Ein Beispiel dafür ist Frappr24, das die geographi- schen Daten von Google Maps verwendet. Benutzer können hier Gruppen anlegen oder beitreten, und deren Wohnorte werden auf einer Karte angezeigt. Eine Anbindung an das soziale Netzwerk von MySpace25 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 be- steht so die Chance, unfertige Services anzubieten und diese nach und nach zu erwei- tern. 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 klas- sischen 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:

- LPMs (Lightweight Programming Models), die lose gekoppelte Systeme er- möglichen. Die Komplexität der oft von Unternehmen angebotenen Dienste ist auf enge Kopplung ausgelegt. Dies ist in einigen Fällen sicherlich notwendig, aber viele Anwendungen können auch lose gekoppelt bleiben.
- Kooperieren ohne zu koordinieren. Bei einfachen Web Services wie z.B. RSS geht es darum, Daten zu verteilen oder auszutauschen und nicht darum zu kontrollieren, was am anderen Ende der Leitung mit ihnen geschieht. Das „En- de zu Ende"-Prinzip war schon grundlegend für das Internet an sich.
- „Hackability" und „Remixability"; Systeme wie das Web, RSS und AJAX haben
gemein, dass die Barrieren zur Wiederverwendung gering sind. Eine Menge Software ist auch völlig frei erhältlich. Die erfolgreichsten Web Services sind die, die sich leicht in verschiedene Richtungen weiterentwickeln lassen.

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: iTunes26 ist hierfür das beste Beispiel. Apple verbindet mit sei- nem digitalen Musikservice „iTunes“ das mobile Abspielgerät (iPod) über den PC des Be- nutzers (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 Webapplikatio- nen 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 Benutzerober- flächen, wie man sie aus Desktopapplikationen gewöhnt ist, zur Verfügung zu stellen. Java Applets oder Flash (von Macromedia27 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) versuch- te dies mit standardisierten Techniken. Über die Standards bekriegten sich jedoch Micro- soft 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 grafi- sche Benutzeroberflächen darzustellen, können daher auf diese Standards bauen.

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:

-Standardgerechte Präsentation mit XHTML und CSS.
ƒ-Dynamische Anzeigen und Interaktivität mittels des Document Object Models (DOM).
ƒ-Datenaustausch und -manipulation mit XML und XSLT.
ƒ-Asynchrone Datenabfrage unter Verwendung von XMLHttpRequest. ƒ 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

Abbildung in dieser Leseprobe nicht enthalten

Abbildung 8: Web 2.0 Buzz Time bar30

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 Kom- mentare veröffentlicht. Es gibt oft eine Kommentarfunktion und Blogs können nachvoll- ziehbar 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.

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 onli- ne. Das wohl bekannteste Wiki-Projekt ist „Wikipedia“, eine Online-Enzyklopädie, die in den verschiedensten Sprachen existiert. Durch gemeinschaftliche Arbeit sind so 6 Millio- nen 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 Pro- grammen) 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 so- ziale Netzwerke, die auf Freundeskreisprinzipien beruhen. Das aus Deutschland stam- mende 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 Kontakt- kreises bekannter Personen gewinnt der Benutzer hier eine hohe Anzahl sekundärer Kon- takte (Schneeballprinzip). Das System dient zum Knüpfen von beruflichen Kontakten. MySpace31 ist derzeit der beliebteste soziale Netzwerkdienst, er bietet eine Kombination aus persönlichem Profil, Blog, Foto- und Filmuploads, Benutzergruppen und einem inter- nen Mail-System. Die Seiten können vom Nutzer optisch angepasst und mit Seiten ande- rer 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, wo- bei verschiedenste Beschreibungen existierten. Durch die „Versionsnummer 2.0“ entste- he, 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 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 StudiVZ33 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 Anwen- dung klassischer Webtechniken. Aber für ihn sind die Angebote von youtube über myspa- ce, 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 partizi- pative Kultur dar36.

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ärk- te Aufkommen von sozialen Strukturen im WWW. Neue Portale und Möglichkeiten berei- chern das Netz, welche am Ende übrig bleiben ist jetzt noch nicht absehbar. Die Ent- scheidung, 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 im- mer und überall recherchierbar und abrufbar sind. Wer es darauf anlegt, kann Bewe- gungs-, 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 Ange- bote entstehen in den USA und sind dementsprechend auf den amerikanischen bezie- hungsweise englischsprachigen Markt ausgerichtet. In Deutschland werden innovative Internetunternehmen von den Kapitalgebern nur vereinzelt unterstützt. Doch die Nutzer warten auf neue Angebote, man sieht das an den vielen deutschen Teilnehmern. Die gro- ßen Internetkonzerne haben das Potential entdeckt, Flickr beispielsweise wurde schon vor geraumer Zeit von Yahoo! gekauft, der führende Blog-Anbieter Blogger gehört zu Google und eBay und hat den Internettelefonie- und Messaging-Dienst Skype erworben. Diese international operierenden Konzerne bieten ihre Dienste auch auf Deutsch an [Joer- ges06].

[...]


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

4 www.spiegel.de

5 Gerd Franke, 2006 [Wiki07]

6 Daniel S. Haischt [Wiki07]

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.

11 Markus Angermeier, http://kosmar.de/

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

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/

25 www.myspace.com/

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 Mu- sik [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 Macrome- dia eine Tochtergesellschaft von Adobe Systems [Wiki07].

28 www.w3.org/

29 www.ietf.org/

30 Schiller Garcia J., http://www.scill.de/content/2006/09/21/web-20-buzz-zeitstrahl/ 31

31 http://www.myspace.com/

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

Ende der Leseprobe aus 159 Seiten

Details

Titel
Ruby on Rails - Die bessere Alternative?
Hochschule
Hochschule Offenburg
Note
1,0
Autor
Jahr
2007
Seiten
159
Katalognummer
V77010
ISBN (eBook)
9783638785679
ISBN (Buch)
9783638797474
Dateigröße
4804 KB
Sprache
Deutsch
Schlagworte
Ruby, Rails, Alternative
Arbeit zitieren
Gabriele Wichmann (Autor), 2007, Ruby on Rails - Die bessere Alternative?, München, GRIN Verlag, https://www.grin.com/document/77010

Kommentare

  • Noch keine Kommentare.
Im eBook lesen
Titel: Ruby on Rails - Die bessere Alternative?



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