Seminararbeit im Studiengang „Scientific Programming“ Kontextgebundene Bausteine einer Webseite mit AJAX dynamisch aktualisieren Lukas Rüttgers Matr.-Nr.:

Slides:



Advertisements
Ähnliche Präsentationen
Sortierverfahren Richard Göbel.
Advertisements

Sortierverfahren Richard Göbel.
Vorlesung Informatik 2 Algorithmen und Datenstrukturen (17 – Bäume: Grundlagen und natürliche Suchbäume) Prof. Th. Ottmann.
Seminar parallele Programmierung SS 2003
Technik Gestaltung Navigation Daten. Übersicht Client Webbrowser InternetServer.
Ontologische Visualisierung von Genexpressionsdaten aus Makroarray-Experimenten Bioinformatik Praktikum David Rudolph, Michael Tauer Thema 6.
Zukunft des Webs? Dennis Beer Christian Blinde
Seite Common Gateway Interface. Konzepte. Übersicht 1Einleitung 2Was ist CGI? 3Wozu wird CGI verwendet? 4Geschichtlicher Überblick 5Grundvoraussetzungen.
Folie 1 Reengineering-Werkzeugen für Webseiten Johannes Martin, University of Victoria Ludger Martin, Technische Universität Darmstadt WSR 2001 Bad Honnef,
Welche Funktion hat die php.ini? -Beinhaltet wichtige Einstellungen für PHP. Genannt seien hier u.a. der Speicherort von Cookies, Parameter der Kompilierung,
JavaScript Object Notation
Übersicht Motivation Konzeption Umsetzung/ Implementierung
Gegenstand EDV Thema: Informative Webseiten
Effiziente Algorithmen
JQuery: New Wave Javascript Seite 1 jQuery: New Wave Javascript Jörn Zaefferer TIMETOACT Software & Consulting GmbHT: Im Mediapark 2F:
-LABORPRAKTIKUM- SOMMERSEMESTER 2005
Inhaltsverzeichnis  Motivation  Kurzbeschreibung  Benutzte Technologien HTML 5 / Javascript / Geolocation API AJAX PHP MYSQL GPS  Datenbankstruktur.
© WZL/Fraunhofer IPT MATLAB Simulink am Beispiel schwingender mechanischer Systeme Seminarvortrag im Rahmen des Studiengangs Scientific Programming von.
© WZL/Fraunhofer IPT Seminararbeit im Studiengang Scientific Programming Digitale Fabrikplanung Vom Groblayout zum Feindesign.
N Beratung n Betreuung n Koordinierung Umsetzung der Betriebssicherheitsverordnung im Rahmen des Arbeits- und Gesundheitsschutzmanagementsystems NRW (AGM.
Anleitung für das Herunterladen von Filmen (Medien-Download) Starten.
Bewerbungs- eingang Bewerbungs- bearbeitung Stellenangebote VermittlungKommunikationZusatzleistungen.
Generic Enabler Felix Holzäpfel-Stein, Aachen Generische Komponenten im Cloudkontext.
Entwurf, Implementierung und Test eines Java – Web Services als Kommunikationsschnittstelle für Webapplikationen mit Funktionen.
1 … René Grimm SMB-Crawler Datenbank gestützte Dateiindizierung Seminararbeit im Studiengang Scientific Programming von René Grimm.
Tutorium Software-Engineering SS14 Florian Manghofer.
Pointer. Precompiled Header  Vorübersetzung eingebundener Dateien häufig genutzt, selten geändert  Projekttyp „Win32 Console Application“
Competence in Electronic Testing Template: F Prüfer: Prof. Dr. rer. nat. Volker Sander Norbert Coenen Referent: Jan Hoffmann Datum:
EVALUIERUNG VON BILDERKENNUNGSALGORITHME N IN HINBLICK AUF NUTZBARKEIT IN DER FLASH ENTWICKLUNG GEHALTEN VON: DENNIS SABELLECK.
Titel Diskursmodelle Name SoSe Folienformat Packen Sie die Folien nicht zu voll Das Datum können Sie ändern, indem Sie im Menü auf “Ansicht”
Statistische Auswertung und Darstellungsmöglichkeiten von Messdaten Seminarvortrag von Christian Gorgels im Studiengang Scientific Programming.
Comprehensive Information Base (CIB) – ein Prototyp zur semantischen Datenintegration Stefan Arts
SEMINARVORTRAG, AACHEN, RUBEN SCHWARZWALD Grundlagen der Kameragestützten Objekterkennung in Echtzeit Betreuer: Prof. Dr. Walter Hillen Dipl.-Ing.
Webdeployment auf Cluster Seminarvortrag von Lukas Bonzelett.
Funktionsweise eines Funambolservers Natascha Graf Aachen, 01. Februar 2010.
Papierklausuren Erstellung und elektronische Auswertung Volker Mattick IT & Medien Centrum, TU Dortmund AMH – Frühjahrstagung 2011, , Gießen.
Anmeldung zu den AGs Strafrecht Via Stud.IP : Login mit Benutzerkennung und Netzpasswort (siehe.
Kapselung und Darstellung von Lernobjekten in Lernumgebungen Unter besonderer Berücksichtigung von in MathML-kodierten mathematischen Formeln und deren.
Drucken: Dieses Poster ist 121,92 cm breit, 91,44 cm hoch und für den Druck auf einem Großformatdrucker ausgelegt. Anpassen des Inhalts: Die Platzhalter.
Patrick Richterich Lattwein GmbH Web Services Softwareentwicklung mit SOAP.
Eine Arbeitsgenehmigung ausfüllen Kursus „Sicher arbeiten mit einer Arbeitsgenehmigung”
Funktionen (Zweck und Eigenschaften) Funktionen sind Unterprogramme, die einen bestimmten Zweck erfüllen Sie zerlegen Probleme in kleine, abgeschlossene.
Rechen- und Kommunikationszentrum (RZ) Selektionsstrategien auf Graphstrukturen Sven Porsche Seminarvorträge Aachen.
MONITOR - Materialverfolgung...vom Lieferanten über den Wareneingang bis zum Kunden... weiter.
Tutorium Software-Engineering SS14 Florian Manghofer.
Nutzeranforderungen und -wünsche Gerhard Renzel (DBSV) Berlin, 28.April 2016.
Schiedsrichterausschuss Kreis 7 Moers DFBnet-Spielbericht 1.
COURSE in Köln – Copyright, 2009 Lattwein GmbH Michael Prinz Lattwein GmbH Query Reports nach „Maß“
Seminararbeit im Studiengang „Scientific Programming“ Konzeption eines nativen Webserver-Moduls zur hochperformanten Auslieferung dynamisch generierter.
Dynamische Webseiten CGI & co. © CGI - Lösung für alle ? Ja CGI kann alles tun, was man für Anwendungen braucht flexibel (beliebige.
SAP und Oracle: Was das Internet über Anwender verrät Jochen Hein Senior Architekt SAP R/3 Basis SerCon GmbH, Mainz
Darstellung Kundenprojekt
Web App-Entwicklung – der richtige Technologiemix macht’s
Das Online- Gutscheinportal
20 Chargenumbuchung
Schulungsunterlagen der AG RDA
Willkommen bei PowerPoint
Referenzen In c kennen wir gewöhnliche Variablen und Pointer.
Anpassen von Microsoft SharePoint Onlinewebsite
Lesen Sie alles darüber Microsoft SharePoint-News
Lesen Sie alles zu Microsoft SharePoint-News
Julian Lebherz Betreuer: Thomas Büchner Christian Neubert
SAP Seminar 2007 Infosätze anlegen
Zusatzfeatures für herkömmliche OPACs
1. Die rekursive Datenstruktur Liste 1.3 Rekursive Funktionen
Wissenschaftliches Projekt
3. Die Datenstruktur Graph 3.3 Durchlaufen von Graphen
Diese Seite bitte löschen
DB2 – SS 2019 von Baum allgemein bis B*-Baum
DB2 – SS 2019 von Baum allgemein bis B*-Baum
 Präsentation transkript:

Seminararbeit im Studiengang „Scientific Programming“ Kontextgebundene Bausteine einer Webseite mit AJAX dynamisch aktualisieren Lukas Rüttgers Matr.-Nr.: Prüfer: Prof. Dr. rer. nat. Volker Sander, FH Aachen Betreuer: Martin Jansen, Bauer+Kirch GmbH

Agenda 1. Motivation 2. Analyse bestehender Implementierungen 3. Entwurf eines grundlegenden Prototyps 4. Abhängigkeiten 5. Caching 6. Ausgabeformate 7. Verwendung 8. Ausblick

Agenda 1. Motivation 2. Analyse bestehender Implementierungen 3. Entwurf eines grundlegenden Prototyps 4. Abhängigkeiten 5. Caching 6. Ausgabeformate 7. Verwendung 8. Ausblick

Motivation  Datenvolumen und Ladezeit von Webseiten reduzieren  In vielen Gegenden nur geringe Datenrate verfügbar  Immer mehr Zugriffe über Mobilfunknetze (→ Kosten)  Aber: Größe und Komplexität vieler Webseiten steigt  Ansatz: AJAX (Asynchronous Javascript and XML)  Teilinhalte nachträglich laden  Hauptinhalt schneller verfügbar

Anwendung: „Admon:CMS“  Unterseiten der Webpräsenz  Baumstruktur  URL-Pfad entspricht Pfad durch Baum  Inhalte (Module)  pro Seite: Baumstruktur  global: gerichteter, nicht zirkulärer Graph (verknüpfte Module)  Wurzel des lokalen Modul-Baums („Seitenmodul“) in Seite verknüpft

Probleme / Anforderungen:  URL zeigt immer auf gesamte Seite  Einzelnes Modul ansprechen / auswählen  Ergebnis ohne restliche Seite ausgeben  Abhängigkeiten auf modul-externe Werte  Ergebnisse müssen im Cache gespeichert werden können  Sicherheitsstandards müssen beachtet werden  Abwärtskompatibilität von Admon:CMS soll erhalten bleiben  Auswirkungen der Änderungen möglichst gering halten

Agenda 1. Motivation 2. Analyse bestehender Implementierungen 3. Entwurf eines grundlegenden Prototyps 4. Abhängigkeiten 5. Caching 6. Ausgabeformate 7. Verwendung 8. Ausblick

Analyse bestehender Implementierungen  Reload auf anderen Status des Moduls  Modul kann geänderte Parameter verarbeiten  Abhängigkeiten vollständig auflösbar  Ergebnis kann im Cache gespeichert werden  Komplette Seite muss neu geladen werden  Individuelles API-Modul  Einzelner Inhalt via AJAX abrufbar  Ergebnis kann im Cache gespeichert werden  Abhängigkeiten evtl. nicht auflösbar  Doppelter Code

Agenda 1. Motivation 2. Analyse bestehender Implementierungen 3. Entwurf eines grundlegenden Prototyps 4. Abhängigkeiten 5. Caching 6. Ausgabeformate 7. Verwendung 8. Ausblick

Entwurf eines grundlegenden Prototyps  Module erhalten eine implizite API  Kombination der Vorteile der bestehenden Lösungsansätze  Wie kann diese API angesprochen werden?  Wie kann das Ergebnis eines Moduls einzeln ausgegeben werden?

Analyse des Rendering-Vorgangs 1. Seite anhand des URL-Pfads bestimmen 2. Seitenmodul auslesen 3. Modulbaum rekursiv rendern (Tiefensuche): a. Direkte Kindmodule ermitteln und jeweils neue Rekursion anstoßen b. Gerenderte Untermodule in eigenes Rendering-Ergebnis einbeziehen c. Ergebnis im Cache speichern und an übergeordneten Prozess hochreichen 4. Fertige Seite ausgeben

Analyse des Rendering-Vorgangs

Entwurf eines grundlegenden Prototyps  Angabe des zu rendernden Moduls als GET-Parameter  Modul-ID im Javascript bekannt  Gewähltes Modul statt Seitenmodul in rekursiven Prozess geben  Gewähltes Modul wird samt aller Untermodule normal gerendert  Eltern- und Geschwistermodule werden ignoriert  Nur Ergebnis des Moduls (und etwaiger Untermodule) wird ausgegeben Gewöhnlicher Aufruf einer Seite, auf der im Beispiel ein Listenmodul seine zweite Seite darstellen soll Direkte Anfrage an die implizite API des Listenmoduls (hier mit ID 5), die zweite Seite der Liste darzustellen (ohne die anderen Module außenherum zu rendern)

Agenda 1. Motivation 2. Analyse bestehender Implementierungen 3. Entwurf eines grundlegenden Prototyps 4. Abhängigkeiten 5. Caching 6. Ausgabeformate 7. Verwendung 8. Ausblick

Abhängigkeiten  Prehandler  Callback, der zu Beginn des Renderings eines Moduls ausgeführt wird  Kann Informationen, die dem Modul exklusiv bekannt sind, an Kinder weitergeben  Posthandler  Callback, der auf dem Rendering-Ergebnis ausgeführt wird  Nachdem das Ergebnis im Cache gespeichert wurde (→ Änderung nicht im Cache)  Kann für Edge Side Includes verwendet werden

Anpassung des Prototyps  Seitenmodul und gesuchtes Modul in rekursiven Prozess geben  Seite wird „normal“ gerendert, gesuchtes Modul als zusätzlicher Parameter  Wird gesuchtes Modul gerendert, zusätzlichen Parameter leeren  Gesuchtes Modul und Kinder werden ohne zus. Parameter gerendert  Ist gesuchtes Modul gesetzt, das eigentliche Rendering überspringen  Stattdessen nichts oder Ergebnis eines Kindes zurückgeben, sofern vorhanden → nur gesuchtes Modul und Kinder werden gerendert, für alle anderen Module der Seite werden aber u.a. Pre- und Posthandler ausgeführt.

Agenda 1. Motivation 2. Analyse bestehender Implementierungen 3. Entwurf eines grundlegenden Prototyps 4. Abhängigkeiten 5. Caching 6. Ausgabeformate 7. Verwendung 8. Ausblick

Caching  URL-Pfad als Cache-Key für gesamte Seite  Neuen GET-Parameter ebenfalls in den Key übernehmen  Einzelne Module unter ID gespeichert  Bei leer gerenderten Modulen Cache-Key mit ID des gesuchten Moduls erweitern

Agenda 1. Motivation 2. Analyse bestehender Implementierungen 3. Entwurf eines grundlegenden Prototyps 4. Abhängigkeiten 5. Caching 6. Ausgabeformate 7. Verwendung 8. Ausblick

Ausgabeformate  Rohdaten als JSON  Geringes Datenvolumen  Nahtlose Einbettung in bestehende Daten möglich  Fertige HTML-Bausteine  Komplexere Rendering-Prozesse serverseitig erledigen  Direkte Ersetzung des alten Bausteins möglich  Beliebige weitere Formate  Individuelle Bedürfnisse

Umsetzung  Modul-Parameter (GET)  Im Modulcode entsprechende Ausgabe steuerbar  Bei normalem Seitenaufruf viele leere Parameter → unschöne URL  Channel  Automatisch passendes Template genutzt  Bestehender HTTP-GET-Parameter

Agenda 1. Motivation 2. Analyse bestehender Implementierungen 3. Entwurf eines grundlegenden Prototyps 4. Abhängigkeiten 5. Caching 6. Ausgabeformate 7. Verwendung 8. Ausblick

Verwendung  Erzeuge URL zu aktueller Seite mit Modul-ID und Channel  z.B. mit Smarty-Plugin admon_generate_link  Zusätzlich benötigte Modul-Parameter sind im Modul selbst bekannt  Anfrage im Javascript abschicken  z.B. mit jQuery.ajax() oder den spezialisierten post() und get()  Antwort im Javascript verarbeiten  z.B. mit jQuery alten HTML-Baustein selektieren und durch neuen ersetzen  Webcrawler und Nutzer ohne JS berücksichtigen  Parallele Implementierung mit vollständigem Neuladen individuell je Modul  Javascript-Variante deaktiviert Parallel-Implementierung

Agenda 1. Motivation 2. Analyse bestehender Implementierungen 3. Entwurf eines grundlegenden Prototyps 4. Abhängigkeiten 5. Caching 6. Ausgabeformate 7. Verwendung 8. Ausblick

Ausblick  Feature in erarbeiteter Form bereits verwendbar  Problem: HTTP-Requests für Nutzer sichtbar  Manipulation möglich  Für sensible Daten nur bedingt nutzbar → Vereinigung von Geschwindigkeit und Sicherheit für Bachelorarbeit geplant

Verwendete Literatur  [Jes05] Jesse James Garrett, A New Approach to Web Applications, (besucht )  [jqua] (jQuery-Dokumentation) jQuery.ajax(), (besucht )  [jqub] (jQuery-Dokumentation) jQuery.get(), (besucht )  [jquc] (jQuery-Dokumentation) jQuery.post(), (besucht )

Fragen?

Vielen Dank für die Aufmerksamkeit!