Evaluierung von AJAX-basierten Frameworks für das Web 2.0
- Art: Studienarbeit
- Autor: André Langer
- Abgabedatum: März 2007
- Umfang: 227 Seiten
- Dateigröße: 1,2 MB
- Note: 1,0
- Institution / Hochschule: Technische Universität Chemnitz Deutschland
- Bibliografie: ca. 31
- ISBN (eBook): 978-3-8366-0332-4
- Sprache: Deutsch
- Prämierung:
- Arbeit zitieren: Langer, André März 2007: Evaluierung von AJAX-basierten Frameworks für das Web 2.0, Hamburg: Diplomica Verlag
- Schlagworte: Remote Scripting, Informatik, Web 2.0, Webapplication, DOM
18,00 €
PDF-eBook Download: 18,00 €
Studienarbeit von André Langer
Einleitung:
Remote Scripting - Anwendungen erleben seit einigen Jahren einen regelrechten, stetig zunehmenden Anfrageboom. Während aus usability-Sicht bisher eine strikte Unterscheidung zwischen Desktop-Anwendungen und Web Applikationen herrschte, finden sich seit einiger Zeit zunehmend Angebote im World Wide Web, die diese strikte Trennung verwischen lassen. Interaktive Nutzerdialoge, nebenläufige Prozessabarbeitung und visuelle Unterstützungsmittel wie Drag & Drop- Effekte halten auf Webseiten Einzug, die dem Nutzer bisher nur aus eigenständigen Softwareprodukten in einer spezifischen Betriebssystemumgebung bekannt waren. Viele dieser neuen Anwendungs- und Interaktionsmöglichkeiten im weltweiten Datennetz werden inzwischen unter dem Oberbegriff Web 2.0 zusammengefasst. Für den Nutzer bringt dieser neue Entwicklungstrend viele Vorteile – ansprechende, intuitive Nutzerführungen ohne die Notwendigkeit, eine ganze Internetseite bei jedem Interaktionsschritt neu zu laden und ohne bemerkbaren zeitlichen Overhead.
Was für den Nutzer Erleichterung bringen soll, bedeutet für einen Programmierer häufig zunächst Mehraufwand. Eine Technik zur Realisierung solcher so genannten Rich Internet Applications, die sich in den letzten beiden Jahren immer mehr in den Vordergrund gedrängt hat, wird unter der Bezeichnung AJAX zusammengefasst. Einen einheitlichen Standard gibt es dabei nicht, sodass fast täglich neue AJAX-basierte frameworks veröffentlicht werden, die dem Programmierer (wenigstens einen Teil der) Komplexität der Programmflusssteuerung abnehmen sollen. Aufgabe der Studienarbeit soll es daher sein, das inzwischen unüberschaubar gewordene Angebot an AJAX frameworks zu systematisieren und einen Überblick über Vor- und Nachteile ausgewählter Programmbibliotheken zu geben.
Dafür ist ein Kriterienkatalog zu erarbeiten, der eine Bewertung der verschiedenen frameworks nach unterschiedlichen Gesichtspunkten ermöglicht. Besonderer Schwerpunkt ist dabei auf Kriterien aus Programmierersicht (Sprachunabhängigkeit, Overhead, Implementierungsmöglichkeiten,…) und Anwendersicht (Plattformanforderungen, Einarbeitungszeit, Ergebnisqualität, …) zu legen. Auf den Kriterienkatalog ist anschließend eine Auswahl an bereits existierenden, frei verfügbaren AJAX frameworks anzuwenden, die als zukünftig relevant eingeschätzt werden. Die Ergebnisse sind abschließend in einer Gesamtübersicht zu präsentieren, die eine objektive Empfehlung für Nutzer darstellen soll, die vor der Wahl stehen, welche AJAX Programmbibliothek sie zukünftig einsetzen sollten.
Gang der Untersuchung:
Die Studienarbeit besteht aus insgesamt sieben Teilen. Nach einer kurzen Einführung in die Thematik im vorliegenden Kapitel 1 beschäftigt sich Kapitel 2 zunächst mit einigen Grundlagen von AJAX, die für das spätere Verständnis der framework – Evaluation nötig sind. Die Ziele und Einsatzgebiete stehen dabei im Mittelpunkt und es wird versucht die Frage zu klären, was AJAX selbst eigentlich ist. Anhand von Fallbeispielen wird die Einsatzweise von AJAX geklärt, welche später als Grundlage für die Evaluierung der verschiedenen frameworks dienen.
Kapitel 3 klärt darauf aufbauend zunächst grundlegende Begriffe im Zusammenhang mit AJAX frameworks und gibt einen Überblick über das breite Spektrum an AJAX frameworks. In Kapitel 4 wird anschließend der Kriterienkatalog definiert, welcher der Durchführung der Evaluation und der Bewertung der AJAX frameworks zugrunde liegt und legt die Kriterien offen, unter welchen Gesichtspunkten die Auswahl an frameworks getroffen wurde, die von den knapp 200 Vertretern repräsentativ evaluiert wurden. Kapitel 5 stellt den experimentellen Teil der Studienarbeit dar, in dem kategorisiert nach den zugrunde liegenden Skriptsprachen einzelne frameworks untersucht und deren Vor- und Nachteile beschrieben werden.
Daran anschließend gibt Kapitel 6 eine Übersicht über die gewonnenen Ergebnisse aus der Evaluierung und versucht, eine objektive Bewertung der getesteten frameworks abzugeben. Empfehlungen über gute und weniger gute frameworks für bestimmte Einsatzgebiete werden getroffen und deren Potential in Verbindung mit anderen Techniken diskutiert. Kapitel 7 schließlich versucht als Abschluss der Studienarbeit einen Ausblick auf die Zukunft von AJAX sowie AJAX frameworks anhand aktuell verfügbarer Fakten und Prognosen zu geben.
Inhaltsverzeichnis:
| Zusammenfassung | III | |
| Inhaltsverzeichnis | IV | |
| Abbildungsverzeichnis | VII | |
| Tabellenverzeichnis | VIII | |
| Listings | IX | |
| Abkürzungsverzeichnis | X | |
| 1. | Einleitung | 12 |
| 1.1 | AJAX – eine kurze Einführung | 12 |
| 1.2 | Zielsetzung der Arbeit | 15 |
| 1.3 | Aktueller Stand | 17 |
| 2. | Grundlegende Betrachtungen | 20 |
| 2.1 | Geschichtlicher Ursprung von AJAX | 20 |
| 2.2 | Begriffsklärung | 24 |
| 2.2.1 | MVC | 24 |
| 2.2.2 | Remote Scripting | 24 |
| 2.2.3 | RIA | 25 |
| 2.2.4 | Widget | 25 |
| 2.2.5 | Wrapper | 26 |
| 2.2.6 | Stub | 26 |
| 2.3 | Definition der Anwendungsdomäne | 27 |
| 2.3.1 | Web Remoting | 27 |
| 2.3.2 | DOM-Manipulation | 29 |
| 2.3.3 | Widgets | 29 |
| 2.3.4 | Visuelle Effekte | 30 |
| 2.3.5 | Browseranwendungen | 30 |
| 2.4 | Beispiel-Szenarien | 32 |
| 2.4.1 | „Hello World“ example | 32 |
| 2.4.2 | Adresskartei | 36 |
| 2.4.3 | AJAX-Bildergalerie | 41 |
| 2.5 | Was ist AJAX? | 44 |
| 3. | AJAX frameworks | 48 |
| 3.1 | Der Begriff „framework“ | 48 |
| 3.2 | Abgrenzung zu Funktionsbibliotheken | 49 |
| 3.3 | Anforderungen an ein framework | 50 |
| 3.4 | Klassifikation | 51 |
| 3.5 | Überblick | 54 |
| 4. | Beschreibung der Evaluierung | 57 |
| 4.1 | Allgemeiner Überblick | 57 |
| 4.2 | Testauswahl | 57 |
| 4.3 | Beschreibung der Durchführung | 58 |
| 4.4 | Testumgebung | 59 |
| 4.5 | Kriterien | 60 |
| 4.6 | Bewertungsmaßstab | 63 |
| 5. | Durchführung der Evaluierung | 65 |
| 5.1 | Clientframeworks | 65 |
| 5.1.1 | Javascript-basierte Bibliotheken (Basisframeworks) | 65 |
| 5.1.1.1 | ACE | 65 |
| 5.1.1.2 | AjaxToolbox | 66 |
| 5.1.1.3 | Bajax | 67 |
| 5.1.1.4 | HTMLHttpRequest | 68 |
| 5.1.1.5 | Lokris | 69 |
| 5.1.1.6 | MAJAX | 70 |
| 5.1.1.7 | Prototype | 71 |
| 5.1.2 | Javascript-basierte Effektbibliotheken (Applicationframeworks) | 73 |
| 5.1.2.1 | Adobe Spry | 73 |
| 5.1.2.2 | DOJO | 74 |
| 5.1.2.3 | jQuery | 75 |
| 5.1.2.4 | MochiKit | 76 |
| 5.1.2.5 | Mootools | 77 |
| 5.1.2.6 | Yahoo User Interface library | 77 |
| 5.1.3 | Basis- und Applikationsframeworks erweiternde frameworks | 80 |
| 5.1.3.1 | Freja | 80 |
| 5.1.3.2 | OpenRico | 81 |
| 5.1.3.3 | Script.aculo.us | 82 |
| 5.2. | Serverframeworks | 84 |
| 5.2.1 | PHP | 84 |
| 5.2.1.1 | AJAXAgent | 84 |
| 5.2.1.2 | Flexible AJAX | 85 |
| 5.2.1.3 | My-BIC | 86 |
| 5.2.1.4 | Sajax | 87 |
| 5.2.1.5 | tinyAjax | 88 |
| 5.2.1.6 | XAJAX | 89 |
| 5.2.2 | Perl | 91 |
| 5.2.2.1 | Catalyst | 91 |
| 5.2.2.2 | CGI::AJAX | 92 |
| 5.2.3 | Python | 94 |
| 5.2.3.1 | CherryPy | 94 |
| 5.2.3.2 | Nevow | 95 |
| 5.2.4 | Java | 97 |
| 5.2.4.1 | DWR | 97 |
| 5.2.4.2 | Google Web Toolkit | 98 |
| 5.2.4.3 | JSON-RPC-Java | 100 |
| 5.2.5 | DotNet | 102 |
| 5.2.5.1 | AJAX.NET | 102 |
| 5.2.5.2 | Anthem.Net | 103 |
| 5.2.5.3 | ASP.NET AJAX (Codename 'Atlas') | 104 |
| 5.2.5.4 | ComfortASP.NET | 106 |
| 5.2.5.5 | Visual WebGUI | 107 |
| 6. | Resultate | 111 |
| 6.1 | Übersicht | 111 |
| 6.2 | Fehlerbetrachtung | 112 |
| 6.3 | Testergebnisse | 114 |
| 6.4 | Bewertung der frameworks | 118 |
| 6.4.1 | Basisframeworks | 118 |
| 6.4.2 | Applicationframeworks | 120 |
| 6.4.3 | Basis- oder Applicationframeworks erweiternde Frameworks | 121 |
| 6.4.4 | Serverframeworks PHP | 122 |
| 6.4.5 | Serverframeworks Perl | 124 |
| 6.4.6 | Serverframeworks Python | 125 |
| 6.4.7 | Serverframeworks Java | 126 |
| 6.4.8 | Serverframeworks DotNet | 127 |
| 6.5 | Diskussion | 128 |
| 7. | Ausblick | 133 |
| 7.1 | Frameworkentwicklungen | 133 |
| 7.2 | Die Zukunft von AJAX | 136 |
| Literaturverzeichnis | 138 | |
| Index | 142 | |
| A | Anhang | 144 |
| A.1 | Messwert-Diagramme | 146 |
| A.2 | Übersicht über AJAX frameworks | 150 |
| A.3 | Testbögen | 158 |
Inhaltsverzeichnis:
| Zusammenfassung | III | |
| Inhaltsverzeichnis | IV | |
| Abbildungsverzeichnis | VII | |
| Tabellenverzeichnis | VIII | |
| Listings | IX | |
| Abkürzungsverzeichnis | X | |
| 1. | Einleitung | 12 |
| 1.1 | AJAX – eine kurze Einführung | 12 |
| 1.2 | Zielsetzung der Arbeit | 15 |
| 1.3 | Aktueller Stand | 17 |
| 2. | Grundlegende Betrachtungen | 20 |
| 2.1 | Geschichtlicher Ursprung von AJAX | 20 |
| 2.2 | Begriffsklärung | 24 |
| 2.2.1 | MVC | 24 |
| 2.2.2 | Remote Scripting | 24 |
| 2.2.3 | RIA | 25 |
| 2.2.4 | Widget | 25 |
| 2.2.5 | Wrapper | 26 |
| 2.2.6 | Stub | 26 |
| 2.3 | Definition der Anwendungsdomäne | 27 |
| 2.3.1 | Web Remoting | 27 |
| 2.3.2 | DOM-Manipulation | 29 |
| 2.3.3 | Widgets | 29 |
| 2.3.4 | Visuelle Effekte | 30 |
| 2.3.5 | Browseranwendungen | 30 |
| 2.4 | Beispiel-Szenarien | 32 |
| 2.4.1 | „Hello World“ example | 32 |
| 2.4.2 | Adresskartei | 36 |
| 2.4.3 | AJAX-Bildergalerie | 41 |
| 2.5 | Was ist AJAX? | 44 |
| 3. | AJAX frameworks | 48 |
| 3.1 | Der Begriff „framework“ | 48 |
| 3.2 | Abgrenzung zu Funktionsbibliotheken | 49 |
| 3.3 | Anforderungen an ein framework | 50 |
| 3.4 | Klassifikation | 51 |
| 3.5 | Überblick | 54 |
| 4. | Beschreibung der Evaluierung | 57 |
| 4.1 | Allgemeiner Überblick | 57 |
| 4.2 | Testauswahl | 57 |
| 4.3 | Beschreibung der Durchführung | 58 |
| 4.4 | Testumgebung | 59 |
| 4.5 | Kriterien | 60 |
| 4.6 | Bewertungsmaßstab | 63 |
| 5. | Durchführung der Evaluierung | 65 |
| 5.1 | Clientframeworks | 65 |
| 5.1.1 | Javascript-basierte Bibliotheken (Basisframeworks) | 65 |
| 5.1.1.1 | ACE | 65 |
| 5.1.1.2 | AjaxToolbox | 66 |
| 5.1.1.3 | Bajax | 67 |
| 5.1.1.4 | HTMLHttpRequest | 68 |
| 5.1.1.5 | Lokris | 69 |
| 5.1.1.6 | MAJAX | 70 |
| 5.1.1.7 | Prototype | 71 |
| 5.1.2 | Javascript-basierte Effektbibliotheken (Applicationframeworks) | 73 |
| 5.1.2.1 | Adobe Spry | 73 |
| 5.1.2.2 | DOJO | 74 |
| 5.1.2.3 | jQuery | 75 |
| 5.1.2.4 | MochiKit | 76 |
| 5.1.2.5 | Mootools | 77 |
| 5.1.2.6 | Yahoo User Interface library | 77 |
| 5.1.3 | Basis- und Applikationsframeworks erweiternde frameworks | 80 |
| 5.1.3.1 | Freja | 80 |
| 5.1.3.2 | OpenRico | 81 |
| 5.1.3.3 | Script.aculo.us | 82 |
| 5.2. | Serverframeworks | 84 |
| 5.2.1 | PHP | 84 |
| 5.2.1.1 | AJAXAgent | 84 |
| 5.2.1.2 | Flexible AJAX | 85 |
| 5.2.1.3 | My-BIC | 86 |
| 5.2.1.4 | Sajax | 87 |
| 5.2.1.5 | tinyAjax | 88 |
| 5.2.1.6 | XAJAX | 89 |
| 5.2.2 | Perl | 91 |
| 5.2.2.1 | Catalyst | 91 |
| 5.2.2.2 | CGI::AJAX | 92 |
| 5.2.3 | Python | 94 |
| 5.2.3.1 | CherryPy | 94 |
| 5.2.3.2 | Nevow | 95 |
| 5.2.4 | Java | 97 |
| 5.2.4.1 | DWR | 97 |
| 5.2.4.2 | Google Web Toolkit | 98 |
| 5.2.4.3 | JSON-RPC-Java | 100 |
| 5.2.5 | DotNet | 102 |
| 5.2.5.1 | AJAX.NET | 102 |
| 5.2.5.2 | Anthem.Net | 103 |
| 5.2.5.3 | ASP.NET AJAX (Codename 'Atlas') | 104 |
| 5.2.5.4 | ComfortASP.NET | 106 |
| 5.2.5.5 | Visual WebGUI | 107 |
| 6. | Resultate | 111 |
| 6.1 | Übersicht | 111 |
| 6.2 | Fehlerbetrachtung | 112 |
| 6.3 | Testergebnisse | 114 |
| 6.4 | Bewertung der frameworks | 118 |
| 6.4.1 | Basisframeworks | 118 |
| 6.4.2 | Applicationframeworks | 120 |
| 6.4.3 | Basis- oder Applicationframeworks erweiternde Frameworks | 121 |
| 6.4.4 | Serverframeworks PHP | 122 |
| 6.4.5 | Serverframeworks Perl | 124 |
| 6.4.6 | Serverframeworks Python | 125 |
| 6.4.7 | Serverframeworks Java | 126 |
| 6.4.8 | Serverframeworks DotNet | 127 |
| 6.5 | Diskussion | 128 |
| 7. | Ausblick | 133 |
| 7.1 | Frameworkentwicklungen | 133 |
| 7.2 | Die Zukunft von AJAX | 136 |
| Literaturverzeichnis | 138 | |
| Index | 142 | |
| A | Anhang | 144 |
| A.1 | Messwert-Diagramme | 146 |
| A.2 | Übersicht über AJAX frameworks | 150 |
| A.3 | Testbögen | 158 |
Textprobe:
Kapitel 2.4.2., Adresskartei:
Anwendungsbeispiel 2 sei ein Standardbeispiel, welches bei vielen framework-tutorials als Einführungsbeispiel realisiert wird: Eine webbasierte Adresskartei.
Beschreibung: Es ist eine Webanwendung zu realisieren, die das Eintragen von Adressdaten in und das Abfragen von Kontaktdaten aus einer Adressdatenbank ermöglicht. Die Webseite dafür bestehe aus insgesamt drei Bereichen. Eine Ebene mit der ID eingabe enthalte ein Formular, dessen eingegebene Daten nach Absenden dieses Formulars in die Adressendatenbank übernommen werden sollen. Die zweite Ebene mit der ID namen enthalte eine Übersicht der Namen aller bereits in der Datenbank eingetragenen Kontakte. Die dritte Ebene mit der ID info enthalte schließlich nach Auswahl eines Kontaktes dessen vollständige Adressübersicht aus der Datenbank.
Alle Adressdaten werden in einer MySQL-Datenbank gespeichert. Eine entsprechende ausführbare Datei auf dem Webserver im gleichen Verzeichnis auf dem Server stelle dazu die nötigen Funktionen bereit, um per POST übertragene Formulardaten in die Datenbank zu übernehmen (Definition beispielsweise durch zugriff.php?cmd=insert).und eine Liste aller Vor- und Zunamen der in der Datenbank enthaltenen Kontakte bereitzustellen (zugriff.php?cmd=namen). Um die XML-Unterstützung in AJAX testen zu können, werden die vollständigen Adressdaten eines einzelnen Kontaktes im XML-Format bereitgestellt (daten.xml.php mit Parameter ?contact=[contactid]).
Zielsetzung:
- Datenübermittlung via POST.
- Umgang mit Formularen.
- Aufruf einer Funktion auf einem Webserver.
- Umgang mit XML-Daten.
- Behandlung von Zeichensätzen.
Des Weiteren soll dieses Beispiel später Möglichkeiten einer Erweiterung der Nutzerfreundlichkeit durch AJAX frameworks bieten, sodass beispielsweise die Ebene namen durch ein Eingabefeld mit einer Autocomplete-Funktion ersetzt werden könnte, die Formulardaten während der Eingabe automatisch validiert werden oder die Ebenen insgesamt beispielsweise als Registerkartenvoneinander getrennt werden können. Listing 4 zeigt die klassische Realisierung des gestellten Problemfalls mittels PHP. Die Variable $db sei ein Platzhalter für die konkrete Datenbankbezeichnung und die Funktion mysqldata() abstrahiere von den konkreten Anfrageoperartionen. Ebenfalls seien Funktionen zur Herstellung der Datenbankverbindung und zum Parsen der XML-Daten nicht aufgeführt.
Um dieses Beispiel zu „ajaxifizieren“ ist es nötig, die AJAX-Hilfsfunktionen aus Listing 2 zu erweitern, damit auch Daten via POST gesendet werden können. Des Weiteren steht nun das „X“ aus AJAX im Mittelpunkt, wie XML-Daten behandelt und eingebunden werden. Listing 5 zeigt eine beispielhafte Implementierung.
Kapitel 2.4.3., AJAX-Bildergalerie:
Das dritte Beispiel soll als Grundlage dazu dienen zu zeigen, was mit AJAX frameworks für unterschiedliche Effekte realisiert werden können und wo diese sinnvoll dosiert einsetzbar sind. Beschreibung: Es ist eine einfache Bildergalerie zu realisieren. Die entsprechende HTML-Datei besteht dazu aus drei Bereichen. Die erste Ebene mit der ID thumbs enthalte dazu drei Vorschaubilder (thumbnails), die in einem entsprechenden Verzeichnis auf dem Webserver liegen und exemplarischdie Dateinamen tpic1.jpg, tpic2.jpg und tpic3.jpg haben.
Eine zweite Ebene mit der Bezeichnung bild enthalte jeweils das korrespondierende Bild pic1.jpg, pic2.jpg oder pic3.jpg in Normalansicht, welches durch den Nutzer im Vorschaubereich ausgewählt wurde. Darunter existiert eine dritte Ebene mit der ID kommentar, welche vom Webserver dem Bild zugeordnete Kommentare abruft und entsprechend anzeigt. (Diese können auf verschiedenste Wege bereitgestellt werden, im Beispielquellcode als Tabelle in einer MySQL-Datenbank, welche analog zum Beispiel 2 über ein Skript auf dem Server abgefragt wird) Zielsetzung:
- Es ist nach Animationen und Effekten zu suchen, die diese Bildergalerie für den Benutzer interessant und intuitiv bedienbar erscheinen lassen. Vorstellbar sind Fade-In-Effekte (zum Beispiel Yellow-Fade-Techniken), aber auch Drag and Drop-Effekte oder eine alternative Bilderauswahl mithilfe geeigneter Widgets.
Die grundlegende Realisierung der Funktionalität sollte keine neuen Probleme oder Anforderungen im Vergleich zu den Beispielszenarien 1 und 2 aus den vorhergegangenen beiden Unterkapiteln darstellen und ist in den Listings 6 und 7 aufgezeigt.
18,00 €
PDF-eBook Download: 18,00 €
Link zur Arbeit:
http://www.diplom.de/ean/9783836603324
Arbeit zitieren:
Langer, André März 2007: Evaluierung von AJAX-basierten Frameworks für das Web 2.0, Hamburg: Diplomica Verlag
Schlagworte:
Remote Scripting, Informatik, Web 2.0, Webapplication, DOM




