Hochschule Darmstadt Fachbereich Informatik



Ähnliche Dokumente
Hochschule Darmstadt Fachbereich Informatik

Einleitung: Frontend Backend

Eine Anwendung mit InstantRails 1.7

PHP Kurs Online Kurs Analysten Programmierer Web PHP

InfoPoint vom 9. November 2011

Installation des CMS-Systems Contao auf einem Windows-Rechner mit XAMPP

Content-Management- Systeme (CMS) Inhaltsverwaltungssystem, Redaktionssystem

TYPO3 Slide Lightwerk GmbH

mysql - Clients MySQL - Abfragen eine serverbasierenden Datenbank

Mit der Maus im Menü links auf den Menüpunkt 'Seiten' gehen und auf 'Erstellen klicken.

Anleitung zur Erstellung und Bearbeitung von Seiten in Typo3. Typo3. Anleitung. Wenpas Informatik

Migration von statischen HTML Seiten

ESB - Elektronischer Service Bericht

pro4controlling - Whitepaper [DEU] Whitepaper zur CfMD-Lösung pro4controlling Seite 1 von 9

Einführung in das Web Content Management System (CMS) Typo3

e-books aus der EBL-Datenbank

Suche schlecht beschriftete Bilder mit Eigenen Abfragen

Alle alltäglichen Aufgaben können auch über das Frontend durchgeführt werden, das in den anderen Anleitungen erläutert wird.

Erstellen eines Beitrags auf der Homepage Schachverband Schleswig-Holstein - Stand vom

Backend

Django - ein Python Web-Framework

Benutzerverwaltung mit Zugriffsrechteverwaltung (optional)

Anleitung. Datum: 28. Oktober 2013 Version: 1.2. Bildupload per FTP. FTP-Upload / Datei-Manager FTP. Glarotech GmbH

Anleitung für das Content Management System

Content Management System mit INTREXX 2002.

Webseiten sind keine Gemälde. Webstandards für ein besseres Web. Webstandards für ein besseres Web

2.1 Grundlagen: Anmelden am TYPO3-Backend

Diese Ansicht erhalten Sie nach der erfolgreichen Anmeldung bei Wordpress.

Updatehinweise für die Version forma 5.5.5

Kurzeinführung Excel2App. Version 1.0.0

Online-Publishing mit HTML und CSS für Einsteigerinnen

Das Content-Management-System OpenCms im Vergleich mit TYPO3 und Joomla. Seminarvortrag von Wolfgang Neuß

Design Pattern - Strukturmuster. CAS SWE - OOAD Marco Hunziker Klaus Imfeld Frédéric Bächler Marcel Lüthi

Einführung in das redaktionelle Arbeiten mit Typo3 Schulung am 15. und

Mini-Dokumentation zur Bearbeitung der Website massweiler.de

MOC Entwicklung von ASP.NET MVC 4 Webapplikationen

Datenbank-basierte Webserver

Aufklappelemente anlegen

EIDAMO Webshop-Lösung - White Paper

Herzlich willkommen im Modul Web-Engineering

Schulung Marketing Engine Thema : Einrichtung der App

Typo3 Schulung: Fortgeschrittene I an der Hochschule Emden/Leer

WordPress installieren mit Webhosting

IT-Tutorial. Access Microsoft. Infos zur Migration von Access I MPRESSUM

YouTube: Video-Untertitel übersetzen

CC Modul Leadpark. 1. Setup 1.1 Providerdaten 1.2 Einstellungen 1.3 Qualifizierungsstati 1.4 Reklamationsstati 1.5 Design 1.

WEBAPPLIKATIONEN MIT PHP. Wo gibt es Hilfe? Wie fang ich an?

Ihre Interessentendatensätze bei inobroker. 1. Interessentendatensätze

SMART Newsletter Education Solutions April 2015

Anleitung für IQES-Verantwortliche Persönliche Konten verwalten

Benutzeranleitung Service Desk Tool Erizone

Dokumentation. Black- und Whitelists. Absenderadressen auf eine Blacklist oder eine Whitelist setzen. Zugriff per Webbrowser

JSP Grundlagen. JEE Vorlesung Teil 5. Ralf Gitzel

Loslegen mit Contrexx: In 10 Schritten zur professionellen Webseite.

Einführung in PHP. (mit Aufgaben)

Ein mobiler Electronic Program Guide

INSTALLATION. Voraussetzungen

OP-LOG

Eigene Seiten erstellen

Anbindung an easybill.de

MORE Profile. Pass- und Lizenzverwaltungssystem. Stand: MORE Projects GmbH

Facebook I-Frame Tabs mit Papoo Plugin erstellen und verwalten

2. Einrichtung der ODBC-Schnittstelle aus orgamax (für 32-bit-Anwendungen)

Kurzanleitung für die Import/Export Funktion Kinderleicht Produkte importieren und aktualisieren und exportieren

Wie man als Redakteur Effektiv arbeitet. Einführung in TYPO3

KEIL software. Inhaltsverzeichnis UPDATE. 1. Wichtige Informationen 1.1. Welche Änderungen gibt es?

S TAND N OVEMBE R 2012 HANDBUCH DUDLE.ELK-WUE.DE T E R M I N A B S P R A C H E N I N D E R L A N D E S K I R C H E

teischl.com Software Design & Services e.u. office@teischl.com

tentoinfinity Apps 1.0 EINFÜHRUNG

modern - sharp - elegant

Anleitung über den Umgang mit Schildern

Grundlagen Internet-Technologien INF3171

CSS-Grundlagen. Etwas über Browser. Kapitel. Die Vorbereitung

Inhalt. Technische Beschreibung - MEDIA3000 NEWSLETTERMODUL-PRO

Kommunikationsübersicht XIMA FORMCYCLE Inhaltsverzeichnis

Wie richten Sie Ihr Web Paket bei Netpage24 ein

crm-now/ps Webforms Webdesigner Handbuch Erste Ausgabe

WEBSEITEN ENTWICKELN MIT ASP.NET

Lokale Installation von DotNetNuke 4 ohne IIS

Seminar DWMX DW Session 015

Inhaltsverzeichnis. Hinweise zum Gebrauch des Buches... XIII. Teil I Grundlagen der Web-Programmierung

Erstellung botoptimierter Partnerlinks

HTML5. Wie funktioniert HTML5? Tags: Attribute:

Referenzen Typo3. Blog der Internetagentur Irma Berscheid-Kimeridze Stand: Juni 2015

Schulung Marketing Engine Thema : Einrichtung der App

Die Beschreibung bezieht sich auf die Version Dreamweaver 4.0. In der Version MX ist die Sitedefinition leicht geändert worden.

Zugriff auf Daten der Wago über eine Webseite

Zur Bestätigung wird je nach Anmeldung (Benutzer oder Administrator) eine Meldung angezeigt:

CMS.R. Bedienungsanleitung. Modul Cron. Copyright CMS.R Revision 1

5. Übung: PHP-Grundlagen

Kostenstellen verwalten. Tipps & Tricks

Robot Karol für Delphi

Die Lernumgebung des Projekts Informationskompetenz

Anleitung Typo3-Extension - Raumbuchungssystem

Einführung in die Scriptsprache PHP

Das Open Source CMS. Gregor Walter.

JSCMS Dokumentation. (Stand: )

Universal Dashboard auf ewon Alarmübersicht auf ewon eigener HTML Seite.

Die eigene, persönliche Webseite der Fakultät mittels Imperia (CMS) pflegen

1. Adressen für den Serienversand (Briefe Katalogdruck Werbung/Anfrage ) auswählen. Die Auswahl kann gespeichert werden.

Transkript:

Hochschule Darmstadt Fachbereich Informatik 6.3 Systemarchitektur 430

6.3 Systemarchitektur Drei Schichten Architektur Die "Standardtechniken" des Software-Engineering sind auch auf die Architektur einer Webanwendung anwendbar z.b. starker Zusammenhalt, schwache Kopplung, Kapselung, Auslagern von variablen Teilen usw. eine Aufteilung der Anwendung nach Schichten (z.b. Three-Tier Architecture) ist naheliegend Für Webanwendungen: Präsentationsschicht User interface Geschäftslogik Anwendungslogik Persistenzschicht Datenspeicherung HTML generieren (Formular-)Daten verarbeiten DB abfragen, DB aktualisieren 431

6.3 Systemarchitektur Model-View-Controller Die Grundidee Trenne eine Anwendung in Model, View und Controller - View(s) Kümmern sich "nur" um die Darstellung der Daten Reichen Eingaben weiter an den Controller sind leicht austauschbar - Controller - Model Nimmt Eingaben an und stellt fest, was das für das Model bedeutet Enthält Anwendungslogik Kapselt Datenbankzugriffe Die Teile sind entkoppelt und leicht austauschbar - durch eine Observer-Schnittstelle wird das Model vom Rest entkoppelt Diese Aufteilung hat sich schon in vielen Anwendungen bewährt! 432

6.3 Systemarchitektur Model-View-Controller In Aktion Für Webanwendungen: View View Ereignis an einem View Ereignis wird an den Controller weitergegeben Client ruft URL auf / sendet Formular Formulardaten übermittlen Controller Controller veranlasst Änderungen im Model DB aktualisieren Model Model benachrichtigt Views über Änderungen Views holen Daten vom Model HTML-Antwort generieren. Nur der aufrufende Client wird aktualisiert! Geschäftslogik wird im Model umgesetzt! 433

6.3 Systemarchitektur Model-View-Controller Im Web Für Webanwendungen hat MVC einige Besonderheiten ("Model 2") Der View zeigt nicht (wie bei Desktop-Anwendungen) selbst die Seite an, sondern erzeugt lediglich den (HTML-)Code, den ein Browser anzeigt Die Benachrichtigung der Views braucht man nicht, weil gar nicht erwartet wird, dass eine (bereits geladene) Webseite sich automatisch aktualisiert; dazu muss man die Seite neu anfordern View View View View Controller Controller Model Model 434

6.3 Systemarchitektur Model-View-Controller Am Beispiel Pizzaservice Pizzaservice Ablauf einer Bestellung View(s) - es gibt einen View (zur Erzeugung der XHTML-Seite) für die Bestellung (und auch je einen View für Fahrer, Kunde und Bäcker) - Das abgeschickte Formular wird an den Controller geschickt Controller Model - Nimmt Formular-Daten an und stellt fest, was diese Daten (derzeit) für das Model bedeuten - Aktualisiert das Model gemäß der übergebenen Daten - Die neue Bestellung wird zur Abspeicherung an das Model übergeben - Bietet Methoden zum Erledigen der üblichen Aufgaben des Pizzaservices (z.b. Einfügen und Löschen einer Bestellung samt Daten, Ändern des Status, Abfragen von Informationen usw.) - Speichert übergebene Bestelldaten und liefert Daten an den View 435

6.3 Systemarchitektur Objektrelationales Mapping Die Zugriffe auf die Datenbank sind jetzt im Model gekapselt Views und Controller verwenden Objekte und Methoden um Daten zu laden, zu bearbeiten oder zu speichern aber das Model selbst muss für jede Datenbanktabelle mehr oder weniger die gleiche Funktionalität bereitstellen z.b.: - Methoden zum Laden und Speichern von Daten in Objekten - Aufzählungsmethoden - Get- und Set-Methoden für die Spalten der Datenbanktabelle diese Methoden zur Abbildung von Objekten auf die relationale Datenbank sind immer gleich und können generiert werden! "Objektrelationales Mapping" oder ORM - Die Klassen und Methoden können aus einer Beschreibung des Datenmodells erzeugt werden (z.b. XML) - Dann muss "nur noch" die Umsetzung der Geschäftslogik im Model manuell umgesetzt werden! 436

6.3 Systemarchitektur Typische Funktionen von Web-Frameworks Vorgabe der Systemarchitektur meist Model-View-Controller ereignisorientierte Programmierung Anbindung von Datenbanken ORM Object-Relational Mapping Datenbankabstraktionsschicht Das haben praktisch alle Web- Frameworks gemeinsam! Entwicklerkomfort Authentifizierung der Benutzer Validierung von Eingaben Generierung von HTML-Seiten mittels Schablonen ("Templates") Vermeidung wiederholter Neugenerierung von Seiten ("Caching") Unterstützung für Ajax Hier unterscheiden sich Integrierte Entwicklungsumgebung die Frameworks wirklich! uvm. 437

6.3 Systemarchitektur PHP5 Frameworks Kleine Auswahl - ohne Anspruch auf Vollständigkeit: Symfony - orientiert an Rails, reichhaltige Features Zend Framework - Komponentenorientiert, objektorientiert, mächtig, mit vielen Freiheitsgraden CakePHP Prado - Rails Adaption - orientiert an ASP.NET, ereignisorientiert Referenzmodell: "Konvention vor Konfiguration" vgl. Ruby on Rails Welches Framework Sie auch verwenden wenn Sie MVC und ORM verstanden haben, fällt Ihnen die Einarbeitung leichter! 438

Hochschule Darmstadt Fachbereich Informatik 6.4 Content Management Systeme 439

6.4 Content Management Systeme Webauftritte mit vielen Bearbeitern Viele Webauftritte werden von vielen Anwendern bearbeitet z.b. der Auftritt einer Hochschule http://www.fbi.h-da.de viele Anwender kennen weder HTML noch CSS & Co. (und wollen es auch nicht kennen lernen) dennoch soll - der Inhalt von Laien bearbeitet werden können - der Auftritt einheitlich aussehen - keine Gefahr bestehen, versehentlich das System zu beschädigen Ein (Web) Content Management System ("CMS") bietet diese (und weitere) Funktionalität Designer gestalten graphische Elemente und entwerfen Styles Programmierer implementieren Stylesheets und Sonderfunktionen Autoren schreiben Inhalte in vorgegebene Templates Bekannte Vertreter sind z.b. Joomla oder Typo3 440

6.4 Content Management Systeme TYPO3 Open Source Content Management System kostenlos zunehmende Verbreitung Einführung an der h_da im Juni 2005 verfügbar für Unix, Linux, MacOS und Windows benötigt Apache oder IIS, PHP, MySQL (andere Datenbanken als Erweiterung) Bearbeitungsmodi: Frontend: rein Inhaltliche Änderung von bestehenden Seiten Backend: Änderungen an der Vernetzungsstruktur der Seiten Frontend und Backend über Standard-Browser zugänglich 441

6.4 Content Management Systeme TYPO3: Frontend ruft Editor für dieses Element auf 442

6.4 Content Management Systeme TYPO3: Frontend II: Editor Eingabemaske gibt Standardelemente vor Bild zuerst als Upload zur Verfügung stellen 443

6.4 Content Management Systeme TYPO3: Backend 444

6.4 Content Management Systeme TYPO3: Backend II Vernetzungsstruktur der Seiten 445

6.4 Content Management Systeme TYPO3: Ergebnis automatisch erzeugt Layout und Design zentral gesteuert integrierte Suchmaschine generiert aus der Liste der Unterseiten 446

Hochschule Darmstadt Fachbereich Informatik 7. Zusammenfassung 447

7. Zusammenfassung Behandelte Themen 1. Einleitung 1.1 Softwaretechnik für webbasierte Anw. 1.2 Ergonomie für webbasierte Anw. 2. Web Client 2.1 HTML 2.2 CSS 2.3 ECMA Script 3. Webserver 3.1 Webserver Software 3.2 CGI 3.3 PHP 4. Zwischen Webclient und Webserver 4.1 HTTP 4.2 Sessionverwaltung 5. Sicherheit 6. Professionelle Webentwicklung 6.1 Vorgehensmodelle in der Webentw. 6.2 Arbeitstechniken in der Webentw. 6.3 Systemarchitektur 6.4 Content Management Systeme 7. Zusammenfassung 448

7. Zusammenfassung Einsatz der Technologien im Zusammenhang Webbrowser Webserver PHP-Programm HTML Seite (Eingabe- Formular) 1. Eingabedaten übermitteln PHP-Datei 2. PHP-Programm starten HTML Seite (Ausgabe) 4. Ausgabe übermitteln HTML Seite (evtl. mit Script-Anteil) 3. erzeugte HTML-Seite DB HTML CSS ECMA-Script DOM AJAX HTTP Sessions Server-Konfiguration CGI PHP MySQL 449

7. Zusammenfassung Zielsetzung erreicht? aus der Modulbeschreibung: Die Studierenden sollen Aktuelle Auszeichnungssprachen kennen und anwenden Skriptsprachen für client- und serverseitige Webprogrammierung anwenden ein Dokument Objekt Modell verstehen die Architektur webbasierter Client/Server-Anwendungen mit Datenbankanbindung verstehen Methoden und Techniken zur Entwicklung webbasierter Anwendung Sicherheitsaspekte im Kontext von Webanwendungen verstehen Konkret: Nach der Veranstaltung... - kennen Sie den Sinn, Zweck und die Grenzen der verschiedenen Techniken - verstehen Sie das Zusammenspiel der verschiedenen Techniken - kennen Sie die wesentlichen Standards - sind Sie in der Lage, komplexe und standardkonforme Webseiten zu erstellen - haben Sie die Grundlagen, um sich in diverse andere Web-Techniken einzuarbeiten 450