Paradigmen der Programmierung Nebenläufigkeit

Slides:



Advertisements
Ähnliche Präsentationen
interaktiver Web Service Workflows
Advertisements

Forschungszentrum Informatik
GWT - google Web Toolkit
Be.as WEB Technologie
:33 Architektur Moderner Internet Applikationen – Prolog Copyright ©2003 Christian Donner. Alle Rechte vorbehalten. Architektur Moderner.
Aufbau des Internets Überblick Prof. Dr. T. Hildebrandt
Basis-Architekturen für Web-Anwendungen
Bastian Cramer, Universität Paderborn Entwurfsmuster für Webanwendungen Projektgruppe: Generierung von Webanwendungen aus visuellen Spezifikationen.
Stefanie Selzer - Pascal Busch - Michael Kropiwoda
Colibi Bibliothekssystem der Computerlinguistik. Einführung Motivation Was braucht Colibi? Software Datenbankdesign.
Web 3.0 – Programmierung – Semantic Web / CIDOC CRM
Information und Technik Nordrhein-Westfalen Das personalisierte Portal Düsseldorf, Das personalisierte Portal.
Edgar - Ein Texteditor Ein Vortrag von Carsten Severin.
Spezielle Aspekte der Anbindung von Datenbanken im Web.
Anwendungen. © Prof. T. Kudraß, HTWK Leipzig Historie des WWW Grundlage Internet – Entwickelt Ende der 60er Jahre vom US-Militär (ARPA-Net) – Technische.
Struts Seminar Javabasierte Webanwendungen. Tobias Kutzler2 Überblick Historie Was ist Struts? Model Controller View Zusammenfassung.
Technik Gestaltung Navigation Daten. Übersicht Client Webbrowser InternetServer.
Introducing the .NET Framework
Projekt Web Engineering
-LABORPRAKTIKUM- SOMMERSEMESTER 2005
Zukunft des Webs? Dennis Beer Christian Blinde
Einführung MySQL mit PHP
Hänchen & Partner GmbH 1 Web-Anwendungen mit dem Jakarta Struts Framework 3.Juli 2003 Martin Burkhardt.
Web-Anwendungsentwicklung à la MVC. Übersicht Über Georg Heeg Ein industrielles Beispiel Web-Anwendungen aus Smalltalker-Sicht MVC für das Web Programmierdemo.
Seite Common Gateway Interface. Konzepte. Übersicht 1Einleitung 2Was ist CGI? 3Wozu wird CGI verwendet? 4Geschichtlicher Überblick 5Grundvoraussetzungen.
CRM Editor auf der Basis von Qt (Beispiel von Ubi erat Lupa)
Chat System – Gruppe B Tim Braun, Andre Ester, Florian Müller und
Coccon das Web-XML-Publishing System Thomas Haller.
Vorgehensmodelle: Schwergewichtige Modelle
Herzlich Willkommen… welcome… soyez la bienvenue….
Wir bauen uns eine Webapplikation!
Gegenstand EDV Thema: Informative Webseiten
Silverlight Eine Einführung. Agenda 1.Was ist Silverlight? 2.Die Silverlight Philosophie 3.Vorstellung des Szenarios 4.Einführendes Beispiel 5.Konzepte.
Seminar Web-Anwendungen mit JSP u. ASP.NET entwickeln JavaServer Faces Vortragender: Thomas Dermin Custom-Components.
08. September 2010Entwicklungsstrategien in Liferay 1 Christian Krause, URZ FSU Jena, IDM-Arbeitsgruppe.
Entwicklung verteilter Anwendungen I, WS 13/14 Prof. Dr. Herrad Schmidt WS 13/14 Kapitel 12 Folie 2 Web Services (1)
Warum brauche ich ein CMS – Content Management System?
Best Practices in der Datenbank-programmierung
Einführung / Geschichte Einführung / Geschichte Motivation Motivation Beispiel Beispiel Architektur / Komponenten Architektur / Komponenten Konfiguration.
Projektarbeit PHP 5.3 / MySQL & Content Management Systems
Präsentation von Sonja Pathe
Developer Day Office APPs entwicklen Simon Amrein Trivadis AG Die ersten Schritte in eine neue Office-Welt.
Entwicklung verteilter Anwendungen I, WS 13/14 Prof. Dr. Herrad Schmidt WS 13/14 Kapitel 8 Folie 2 ASP.NET Zustandsverwaltung
Marko Dragicevic Thomas Bergauer 27.Mai 2008
Management- und Web Services- Architekturen
SPODAT - Blick nach vorn
Oliver Spritzendorfer Thomas Fekete
CSS – Cascading Style Sheets
MathCoach Ein web-basierter Mathematik-Tutor
Jonas Rüttimann 2. Juni Motivation Was ist RAP? Schnellstart: Wir bringen RAP zum Laufen! Technologie: Wie funktioniert RAP? Konsequenzen für die.
Aufzeichnung von Usability-Daten im www. Client-Side Log : automatisch (maschinell) generiertes Protokoll Client : Rechner mit dem Browser des Users Server:
Content Management System
Drucken mit XSL-FO DaimlerChrysler  Drucken von Webseiten
© 2001 Sven Dammann1 Aufbau Integrierter Informationssysteme XML Bearbeitung und relationale Abbildung Sven Dammann Martin-Luther-Universität Halle-Wittenberg.
2. Kommunikation und Synchronisation von Prozessen 2
W W W - World Wide Web. Das World Wide Web kommt aus dem Englischen und bedeutet ‚Weltweites Netz‘ ist ein über das Internet abrufbares Hypertext-System.
Danato - Strictly Confidential CMS Evaluation MODX – ein CMS für den DANATO Shop?
PHP PHP ( „PHP Hypertext Preprocessor") ist eine Skriptsprache
Parallele Programmierung im.NET Framework Darmstadt, Präsentation am Beispiel von C-Sharp (C#)  Wichtige Grundlagen  Generika, Delegate, Lambda,
Generative Softwareentwicklung in der Praxis Olaf Kaus, „Java User Group“, Hannover 6.Oktober 2003.
Datenbanken im Web 1.
Oracle Portal think fast. think simple. think smart. Dieter Lorenz, Christian Witt.
Webserver Apache & Xampp Referenten: Elena, Luziano und Sükran
CMS Kirsten Kropmanns Dedizierte Systeme 16. März 2009.
Java Server Pages Technologie zur Erzeugung dynamischer Webseiten basierend auf Java-Servlets Blockseminar Wintersemester 2001/2002Jochen Pfeiffer Seite.
Stefan Metzlaff1 Cocoon Stefan Metzlaff
Marcel Genzmehr 1 Javabasierte Webtechnologien Web Application Framework Turbine.
Was gibt’s neues im Bereich Anpassung Fabian Moritz Consultant, Developer SharePointCommunity.de.
Virtualisierung von Web-Applikationen mit Docker
1.
 Präsentation transkript:

Paradigmen der Programmierung Nebenläufigkeit Prof. Dr. Christian Kohls Informatik, Soziotechnische Systeme 4. Frameworks für nebenläufige Anwendungen Actors mit akka Play Framework Node.js HINWEIS: Die Inhalte dieser Folien sind NICHT klausurrelevant. Sie dienen der Anregung, sich mit diesen Frameworks zu beschäftigen.

akka.io

Actor-Framework für Java und Scala Akka Actor-Framework für Java und Scala Ersetzt die bisherigen Actors in Scala Funktioniert konzeptionell genau wie bisher gesehen Etwas aufwändigere Einarbeitung: http://doc.akka.io/docs/akka/2.3.8/intro/getting-started.html Effizienter und robuster

Hello Word mit alten (deprecated) Scala Actors

Hello Word mit akka (von Typesafe Website)

Receive Methode

Become

Akka: Robuster und effizienter ActorSystem und Actors Actor System ist schwergewichtig und verwaltet 1..N Threads Mehrere Actor Systeme gleichzeitig möglich, ein System ist eine logische Einheit Actors sind leichtgewichtig und teilen sich Threads Standardmäßig verhalten sich akka Actors wie die react Methode Ereignis-gesteuerte Schleife: Nachrichten werden verteilt wenn sie eintreffen Millionen von Actors gleichzeitig möglich (Overhead pro Actor ca. 300 Bytes) Jeder Actor wird durch eine ActorReference gekapselt Hierarchie von Actors Actors gehören immer zu einem übergeordneten Actor Actors können auf Fehler ihrer Kind-Actors reagieren „Let it crash“ Modell: System kann sich selbst heilen

Actors in akka Zu einem akka Actor gehören: Actor Reference: kapselt den eigentlichen Actor State: interner Zustand Behavior: Verhalten Mailbox: Verschiedene Strategien (FIFO, Priorität) möglich Children: untergeordnete Actors Supervisor Strategy: Übergeordneter Actor muss sich um Fehlerbehandlung kümmern Strategien für übergeordneten Actor: Untergeordneten Actor wieder anstoßen und akkumulierten internen Zustand beibehalten Untergeordneten Actor neu starten und akkumulierten internen Zustand verwerfen Untergeordneten Actor dauerhaft aufgeben Fehler eskalieren, d.h. selbst scheitern

Actors Hierarchie system.actorOf() -> erzeugt Kind von user context.actorOf() -> erzeugt Kind innerhalb eines Actors

Play web-site https://www.playframework.com/

Play Framework Framework für Webanwendungen Direkte Unterstützung für Java und Scala Basiert auf akka Leichtgewichtige, zustandslose Architektur Geringe Ressourcennutzung (CPU, Speicher, Anzahl Threads) Typsicherheit bei der Datenverarbeitung Große Entwicklercommunity Viele erfolgreiche Anwendungen

Beispiel: Extreme Collaboration

Play Framework Optimiert für asynchrone Programmierung Nicht-blockierende Verarbeitung von Anfragen I/O Operationen Unterstützung asynchroner Kommunikation mit Clients mit WebSockets Unterstützung asynchroner Verarbeitung serverseitig Gute Template-Lösung Kosequente Umsetzung des Model View Controller Ansatzes

Bestandteile

Projekt in Eclipse öffnen

Activator UI Verändern von Model, View, Controller im Browser Automatisches Kompilieren

Actions und Controller Requests werden von einer Aktion beantwortet Aktionen sind Java Methoden, die - Request Paramter erhalten und verarbeiten - Ein Resultat an den Client zurücksenden Mehrere Aktionen werden zu Controllern zusammengefasst Controller Action Result

Resultate Redirects Auch Redirects sind Resultate

Asynchrone Controller mit Promise Jeder Request wird asynchron und nicht-blockierend behandelt Controller sollten möglichst auch asynchron arbeiten Action Code sollte nicht blockieren Kritische Beispiele: Datenbankaufrufe, Abrufen von Daten via Web Services, lange Berechnungen Statt eines Resultats wird das Versprechen auf ein Resultat geliefert: Promise <Result> Das Versprechen auf ein Resultat wird später eingelöst - Das Resultat wir dann an den Client geschickt wenn es vorliegt - Der Action-Code ist längst abgearbeitet und hat nicht blockert Beim Warten auf das Ergebnis wird nur der Web-Client blockiert, nicht der Server

Promise<Result> statt Result wiedergeben

Actions werden immer asynchron behandelt Auch hier wird Result intern in ein Promise verpackt Intern werden also Promise<Result> und Result gleich behandelt Man könnte sagen, dass beim direkten zurückgeben von Result das Versprechen schneller eingelöst wird. In jedem Fall wird das Resultat asynchron empfangen

Von Routes zu Controller-Actions Von Controller-Actions zu Views …und mittendrin das Datenmodell

Controller und Views HTTP Request ist ein Event Routes leiten die Anfrage an einen Action-Handler eines Controller weiter Action-Handler verändert gffs. das Datenmodel Weitergeleitet wird an einen View Views können unabhängig voneinander existieren und verschiedene Sichten auf die gleichen Daten liefern

Views erzeugen mit Templates Scala Templates sind Textdateien mit kleinen Scala Code-Blöcken Erzeugt werden textbasierte Formate, z.B. HTML, XML, CSV,… Beispiel-Template: Template Parameter Beginn eines dynamischen Ausdrucks Iteration

Anforderungen an die Seitengestaltung Vorlagen-Bausteine unabhängig anpassen Gleiche Inhalte in unterschiedlichen Vorlagen nutzen Unterschiedliche Inhalte in gleiche Vorlagen einbauen  Trennung von Inhalt und Layout ist erforderlich!

Das Modell Business-Logik in package model festlegen Playframework ist zustandslos Persistente Datenhanltung über Datenbank Cache (möglicher Datenverlust) Flash/Session Scrope (via Cookies, daher nur Strings und max 4KB)

Model View Controller (MVC) Verändern, bearbeiten Aktualisieren Controller View Controller View Controller Controller View View nutzt sieht User

Vorteile MVC Ermöglicht Wartung und Entwicklung des Designs unabhängig von der Codebasis Emöglicht schrittweisen Aufbau einer Webanwendung Ermöglicht neue Repräsentation der gleichen Daten Ermöglicht Arbeitsteilung im Projekt Ermöglicht die Wiederverwendung von Funktionalitäten einer Webanwendung Ermöglicht Skalierbarkeit

Fallbeispiel: e-teaching.org Umfangreiche Inhalte 1200+ Inhaltsseiten 80+ PDF Dokumente 100+ Produktsteckbriefe 150+ Referenzbeispiele 500+ Glossarbegriffe 2000+ Blogeinträge Community-Funktionen Visitenkarte Vernetzung der Mitglieder Forum und Blog Linklisten Projektdatenbank Verschiedene Anwender Nutzer Mitglieder Partnerhochschulen Redakteure Landesportale

e-teaching.org Angepasst an die verschiedenen Nutzer

e-teaching.org Angepasst an die verschiedenen Nutzer Community-Mitglieder Hochschul-Redakteure Community-Mitglieder haben mehr Möglichkeiten und Rechte... e-teaching.org-Redaktion Landesportal

e-teaching.org Angepasst an die verschiedenen Nutzer Community-Mitglieder Hochschul-Redakteure ...Hochschulredakteure haben darüber hinaus die Möglichkeit, Informationen zu Ihrer Hochschule zu bearbeiten... e-teaching.org-Redaktion Landesportal

e-teaching.org Angepasst an die verschiedenen Nutzer Community-Mitglieder Hochschul-Redakteure ...die e-teaching.org Redakteure arbeiten normal in e-teaching.org-Redaktion Landesportal

e-teaching.org Angepasst an die verschiedenen Nutzer Community-Mitglieder Hochschul-Redakteure Nach dem Joachim Wedekind und zuletzt auch der Direktor unseres Institutes hoffentlich anschaulich gemacht haben, worum es uns bei der Konzeption des Portals geht, möchte ich ihnen den aktuellen Stand des Portals präsentieren. e-teaching.org-Redaktion Landesportal

e-teaching.org Sichten auf spezielle Inhaltstypen Produktsteckbriefe Referenzbeispiele Veranstaltungen Weiterbildung Projektdatenbank Community-Events E-Teacher Audio-Pod

Realisierung e-teaching.org mit Plone / ZOPE und Python

Webframework basierend auf JavaScript

Node.js und Express Framework Serverseitige Plattform für Netzwerkanwendungen Basiert auf der JavaScript Laufzeitumgebung „V8“ Ereignisgesteuerte Architektur Optimiert für verteilte, daten-intensive Echtzeitanwendung

Struktur Eigene Module Öffentliche Dateien: JavaScript, CSS, Bilder… Externe Module Model View Controller Hauptanwendung

Single Thread Event Loops

Server starten > node myappserver.js

Programm-Logik

Clientseitiges Javascript

IdeaWall.js (client-seitig)

Synchroner vs. asynchroner Seitenaufbau Web-Server Benutzeraktionen ändern die Seite ohne Zugriff auf den Server Web-Server Xjdooi dof Oidufio df pifdp Asynchrone Verarbeitung auch auf dem Server Aktualisierung von Seitenteilen statt Ganzer Seiten

Ausblick Visuelle Programmierung Entwurfmuster (Softwaredesign)