paradigmen der programmierung nebenläufigkeit prof. dr. christian kohls informatik, soziotechnische...
TRANSCRIPT
![Page 1: Paradigmen der Programmierung Nebenläufigkeit Prof. Dr. Christian Kohls Informatik, Soziotechnische Systeme 4. Frameworks für nebenläufige Anwendungen](https://reader035.vdocuments.pub/reader035/viewer/2022070310/55204d8449795902118d88b0/html5/thumbnails/1.jpg)
Paradigmen der Programmierung NebenläufigkeitProf. Dr. Christian KohlsInformatik, 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.
![Page 2: Paradigmen der Programmierung Nebenläufigkeit Prof. Dr. Christian Kohls Informatik, Soziotechnische Systeme 4. Frameworks für nebenläufige Anwendungen](https://reader035.vdocuments.pub/reader035/viewer/2022070310/55204d8449795902118d88b0/html5/thumbnails/2.jpg)
akka.io
![Page 3: Paradigmen der Programmierung Nebenläufigkeit Prof. Dr. Christian Kohls Informatik, Soziotechnische Systeme 4. Frameworks für nebenläufige Anwendungen](https://reader035.vdocuments.pub/reader035/viewer/2022070310/55204d8449795902118d88b0/html5/thumbnails/3.jpg)
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
![Page 4: Paradigmen der Programmierung Nebenläufigkeit Prof. Dr. Christian Kohls Informatik, Soziotechnische Systeme 4. Frameworks für nebenläufige Anwendungen](https://reader035.vdocuments.pub/reader035/viewer/2022070310/55204d8449795902118d88b0/html5/thumbnails/4.jpg)
Hello Wordmit alten (deprecated) Scala Actors
![Page 5: Paradigmen der Programmierung Nebenläufigkeit Prof. Dr. Christian Kohls Informatik, Soziotechnische Systeme 4. Frameworks für nebenläufige Anwendungen](https://reader035.vdocuments.pub/reader035/viewer/2022070310/55204d8449795902118d88b0/html5/thumbnails/5.jpg)
Hello Wordmit akka (von Typesafe Website)
![Page 6: Paradigmen der Programmierung Nebenläufigkeit Prof. Dr. Christian Kohls Informatik, Soziotechnische Systeme 4. Frameworks für nebenläufige Anwendungen](https://reader035.vdocuments.pub/reader035/viewer/2022070310/55204d8449795902118d88b0/html5/thumbnails/6.jpg)
Receive Methode
![Page 7: Paradigmen der Programmierung Nebenläufigkeit Prof. Dr. Christian Kohls Informatik, Soziotechnische Systeme 4. Frameworks für nebenläufige Anwendungen](https://reader035.vdocuments.pub/reader035/viewer/2022070310/55204d8449795902118d88b0/html5/thumbnails/7.jpg)
Become
![Page 8: Paradigmen der Programmierung Nebenläufigkeit Prof. Dr. Christian Kohls Informatik, Soziotechnische Systeme 4. Frameworks für nebenläufige Anwendungen](https://reader035.vdocuments.pub/reader035/viewer/2022070310/55204d8449795902118d88b0/html5/thumbnails/8.jpg)
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
![Page 9: Paradigmen der Programmierung Nebenläufigkeit Prof. Dr. Christian Kohls Informatik, Soziotechnische Systeme 4. Frameworks für nebenläufige Anwendungen](https://reader035.vdocuments.pub/reader035/viewer/2022070310/55204d8449795902118d88b0/html5/thumbnails/9.jpg)
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
![Page 10: Paradigmen der Programmierung Nebenläufigkeit Prof. Dr. Christian Kohls Informatik, Soziotechnische Systeme 4. Frameworks für nebenläufige Anwendungen](https://reader035.vdocuments.pub/reader035/viewer/2022070310/55204d8449795902118d88b0/html5/thumbnails/10.jpg)
Actors Hierarchie
system.actorOf() -> erzeugt Kind von usercontext.actorOf() -> erzeugt Kind innerhalb eines Actors
![Page 11: Paradigmen der Programmierung Nebenläufigkeit Prof. Dr. Christian Kohls Informatik, Soziotechnische Systeme 4. Frameworks für nebenläufige Anwendungen](https://reader035.vdocuments.pub/reader035/viewer/2022070310/55204d8449795902118d88b0/html5/thumbnails/11.jpg)
Play web-site
https://www.playframework.com/
![Page 12: Paradigmen der Programmierung Nebenläufigkeit Prof. Dr. Christian Kohls Informatik, Soziotechnische Systeme 4. Frameworks für nebenläufige Anwendungen](https://reader035.vdocuments.pub/reader035/viewer/2022070310/55204d8449795902118d88b0/html5/thumbnails/12.jpg)
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
![Page 13: Paradigmen der Programmierung Nebenläufigkeit Prof. Dr. Christian Kohls Informatik, Soziotechnische Systeme 4. Frameworks für nebenläufige Anwendungen](https://reader035.vdocuments.pub/reader035/viewer/2022070310/55204d8449795902118d88b0/html5/thumbnails/13.jpg)
Beispiel: Extreme Collaboration
![Page 14: Paradigmen der Programmierung Nebenläufigkeit Prof. Dr. Christian Kohls Informatik, Soziotechnische Systeme 4. Frameworks für nebenläufige Anwendungen](https://reader035.vdocuments.pub/reader035/viewer/2022070310/55204d8449795902118d88b0/html5/thumbnails/14.jpg)
Play Framework• Optimiert für asynchrone Programmierung
• Nicht-blockierendeVerarbeitung von AnfragenI/O Operationen
• Unterstützung asynchroner Kommunikation mit Clients mit WebSockets
• Unterstützung asynchroner Verarbeitung serverseitig
• Gute Template-Lösung
• Kosequente Umsetzung desModel View Controller Ansatzes
![Page 15: Paradigmen der Programmierung Nebenläufigkeit Prof. Dr. Christian Kohls Informatik, Soziotechnische Systeme 4. Frameworks für nebenläufige Anwendungen](https://reader035.vdocuments.pub/reader035/viewer/2022070310/55204d8449795902118d88b0/html5/thumbnails/15.jpg)
![Page 16: Paradigmen der Programmierung Nebenläufigkeit Prof. Dr. Christian Kohls Informatik, Soziotechnische Systeme 4. Frameworks für nebenläufige Anwendungen](https://reader035.vdocuments.pub/reader035/viewer/2022070310/55204d8449795902118d88b0/html5/thumbnails/16.jpg)
Bestandteile
![Page 17: Paradigmen der Programmierung Nebenläufigkeit Prof. Dr. Christian Kohls Informatik, Soziotechnische Systeme 4. Frameworks für nebenläufige Anwendungen](https://reader035.vdocuments.pub/reader035/viewer/2022070310/55204d8449795902118d88b0/html5/thumbnails/17.jpg)
Projekt in Eclipse öffnen
![Page 18: Paradigmen der Programmierung Nebenläufigkeit Prof. Dr. Christian Kohls Informatik, Soziotechnische Systeme 4. Frameworks für nebenläufige Anwendungen](https://reader035.vdocuments.pub/reader035/viewer/2022070310/55204d8449795902118d88b0/html5/thumbnails/18.jpg)
Activator UI• Verändern von Model, View, Controller im Browser• Automatisches Kompilieren
![Page 19: Paradigmen der Programmierung Nebenläufigkeit Prof. Dr. Christian Kohls Informatik, Soziotechnische Systeme 4. Frameworks für nebenläufige Anwendungen](https://reader035.vdocuments.pub/reader035/viewer/2022070310/55204d8449795902118d88b0/html5/thumbnails/19.jpg)
![Page 20: Paradigmen der Programmierung Nebenläufigkeit Prof. Dr. Christian Kohls Informatik, Soziotechnische Systeme 4. Frameworks für nebenläufige Anwendungen](https://reader035.vdocuments.pub/reader035/viewer/2022070310/55204d8449795902118d88b0/html5/thumbnails/20.jpg)
![Page 21: Paradigmen der Programmierung Nebenläufigkeit Prof. Dr. Christian Kohls Informatik, Soziotechnische Systeme 4. Frameworks für nebenläufige Anwendungen](https://reader035.vdocuments.pub/reader035/viewer/2022070310/55204d8449795902118d88b0/html5/thumbnails/21.jpg)
![Page 22: Paradigmen der Programmierung Nebenläufigkeit Prof. Dr. Christian Kohls Informatik, Soziotechnische Systeme 4. Frameworks für nebenläufige Anwendungen](https://reader035.vdocuments.pub/reader035/viewer/2022070310/55204d8449795902118d88b0/html5/thumbnails/22.jpg)
![Page 23: Paradigmen der Programmierung Nebenläufigkeit Prof. Dr. Christian Kohls Informatik, Soziotechnische Systeme 4. Frameworks für nebenläufige Anwendungen](https://reader035.vdocuments.pub/reader035/viewer/2022070310/55204d8449795902118d88b0/html5/thumbnails/23.jpg)
Actions und ControllerRequests werden von einer Aktion beantwortetAktionen 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
![Page 24: Paradigmen der Programmierung Nebenläufigkeit Prof. Dr. Christian Kohls Informatik, Soziotechnische Systeme 4. Frameworks für nebenläufige Anwendungen](https://reader035.vdocuments.pub/reader035/viewer/2022070310/55204d8449795902118d88b0/html5/thumbnails/24.jpg)
Resultate
RedirectsAuch Redirects sind Resultate
![Page 25: Paradigmen der Programmierung Nebenläufigkeit Prof. Dr. Christian Kohls Informatik, Soziotechnische Systeme 4. Frameworks für nebenläufige Anwendungen](https://reader035.vdocuments.pub/reader035/viewer/2022070310/55204d8449795902118d88b0/html5/thumbnails/25.jpg)
Asynchrone Controller mit Promise
Jeder Request wird asynchron und nicht-blockierend behandeltController sollten möglichst auch asynchron arbeitenAction 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
![Page 26: Paradigmen der Programmierung Nebenläufigkeit Prof. Dr. Christian Kohls Informatik, Soziotechnische Systeme 4. Frameworks für nebenläufige Anwendungen](https://reader035.vdocuments.pub/reader035/viewer/2022070310/55204d8449795902118d88b0/html5/thumbnails/26.jpg)
Promise<Result> statt Result wiedergeben
![Page 27: Paradigmen der Programmierung Nebenläufigkeit Prof. Dr. Christian Kohls Informatik, Soziotechnische Systeme 4. Frameworks für nebenläufige Anwendungen](https://reader035.vdocuments.pub/reader035/viewer/2022070310/55204d8449795902118d88b0/html5/thumbnails/27.jpg)
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 Resultdas Versprechen schneller eingelöst wird.
In jedem Fall wird das Resultat asynchron empfangen
![Page 28: Paradigmen der Programmierung Nebenläufigkeit Prof. Dr. Christian Kohls Informatik, Soziotechnische Systeme 4. Frameworks für nebenläufige Anwendungen](https://reader035.vdocuments.pub/reader035/viewer/2022070310/55204d8449795902118d88b0/html5/thumbnails/28.jpg)
Von Routes zu Controller-Actions Von Controller-Actions zu Views
…und mittendrin das Datenmodell
![Page 29: Paradigmen der Programmierung Nebenläufigkeit Prof. Dr. Christian Kohls Informatik, Soziotechnische Systeme 4. Frameworks für nebenläufige Anwendungen](https://reader035.vdocuments.pub/reader035/viewer/2022070310/55204d8449795902118d88b0/html5/thumbnails/29.jpg)
![Page 30: Paradigmen der Programmierung Nebenläufigkeit Prof. Dr. Christian Kohls Informatik, Soziotechnische Systeme 4. Frameworks für nebenläufige Anwendungen](https://reader035.vdocuments.pub/reader035/viewer/2022070310/55204d8449795902118d88b0/html5/thumbnails/30.jpg)
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
![Page 31: Paradigmen der Programmierung Nebenläufigkeit Prof. Dr. Christian Kohls Informatik, Soziotechnische Systeme 4. Frameworks für nebenläufige Anwendungen](https://reader035.vdocuments.pub/reader035/viewer/2022070310/55204d8449795902118d88b0/html5/thumbnails/31.jpg)
![Page 32: Paradigmen der Programmierung Nebenläufigkeit Prof. Dr. Christian Kohls Informatik, Soziotechnische Systeme 4. Frameworks für nebenläufige Anwendungen](https://reader035.vdocuments.pub/reader035/viewer/2022070310/55204d8449795902118d88b0/html5/thumbnails/32.jpg)
![Page 33: Paradigmen der Programmierung Nebenläufigkeit Prof. Dr. Christian Kohls Informatik, Soziotechnische Systeme 4. Frameworks für nebenläufige Anwendungen](https://reader035.vdocuments.pub/reader035/viewer/2022070310/55204d8449795902118d88b0/html5/thumbnails/33.jpg)
![Page 34: Paradigmen der Programmierung Nebenläufigkeit Prof. Dr. Christian Kohls Informatik, Soziotechnische Systeme 4. Frameworks für nebenläufige Anwendungen](https://reader035.vdocuments.pub/reader035/viewer/2022070310/55204d8449795902118d88b0/html5/thumbnails/34.jpg)
![Page 35: Paradigmen der Programmierung Nebenläufigkeit Prof. Dr. Christian Kohls Informatik, Soziotechnische Systeme 4. Frameworks für nebenläufige Anwendungen](https://reader035.vdocuments.pub/reader035/viewer/2022070310/55204d8449795902118d88b0/html5/thumbnails/35.jpg)
Views erzeugen mit TemplatesScala Templates sind Textdateien mit kleinen Scala Code-BlöckenErzeugt werden textbasierte Formate, z.B. HTML, XML, CSV,…
Beispiel-Template:
Beginn einesdynamischen Ausdrucks
Template Parameter
Iteration
![Page 36: Paradigmen der Programmierung Nebenläufigkeit Prof. Dr. Christian Kohls Informatik, Soziotechnische Systeme 4. Frameworks für nebenläufige Anwendungen](https://reader035.vdocuments.pub/reader035/viewer/2022070310/55204d8449795902118d88b0/html5/thumbnails/36.jpg)
Anforderungen an die Seitengestaltung
Unterschiedliche Inhaltein gleiche Vorlagen einbauen
Vorlagen-Bausteineunabhängig anpassen
Gleiche Inhaltein unterschiedlichenVorlagen nutzen
Trennung von Inhalt und Layout ist erforderlich!
![Page 37: Paradigmen der Programmierung Nebenläufigkeit Prof. Dr. Christian Kohls Informatik, Soziotechnische Systeme 4. Frameworks für nebenläufige Anwendungen](https://reader035.vdocuments.pub/reader035/viewer/2022070310/55204d8449795902118d88b0/html5/thumbnails/37.jpg)
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)
![Page 38: Paradigmen der Programmierung Nebenläufigkeit Prof. Dr. Christian Kohls Informatik, Soziotechnische Systeme 4. Frameworks für nebenläufige Anwendungen](https://reader035.vdocuments.pub/reader035/viewer/2022070310/55204d8449795902118d88b0/html5/thumbnails/38.jpg)
![Page 39: Paradigmen der Programmierung Nebenläufigkeit Prof. Dr. Christian Kohls Informatik, Soziotechnische Systeme 4. Frameworks für nebenläufige Anwendungen](https://reader035.vdocuments.pub/reader035/viewer/2022070310/55204d8449795902118d88b0/html5/thumbnails/39.jpg)
Model View Controller (MVC)
Model
ViewController
User
nutzt sieht
Verändern,bearbeiten
Aktualisieren
ViewView
View
ControllerController
Controller
![Page 40: Paradigmen der Programmierung Nebenläufigkeit Prof. Dr. Christian Kohls Informatik, Soziotechnische Systeme 4. Frameworks für nebenläufige Anwendungen](https://reader035.vdocuments.pub/reader035/viewer/2022070310/55204d8449795902118d88b0/html5/thumbnails/40.jpg)
Vorteile MVC
• Ermöglicht Wartung und Entwicklung des Designsunabhä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
![Page 41: Paradigmen der Programmierung Nebenläufigkeit Prof. Dr. Christian Kohls Informatik, Soziotechnische Systeme 4. Frameworks für nebenläufige Anwendungen](https://reader035.vdocuments.pub/reader035/viewer/2022070310/55204d8449795902118d88b0/html5/thumbnails/41.jpg)
Fallbeispiel: e-teaching.orgUmfangreiche Inhalte1200+ Inhaltsseiten80+ PDF Dokumente 100+ Produktsteckbriefe150+ Referenzbeispiele500+ Glossarbegriffe2000+ Blogeinträge
Community-Funktionen-Visitenkarte-Vernetzung der Mitglieder-Forum und Blog-Linklisten-Projektdatenbank
Verschiedene Anwender-Nutzer-Mitglieder-Partnerhochschulen-Redakteure-Landesportale
![Page 42: Paradigmen der Programmierung Nebenläufigkeit Prof. Dr. Christian Kohls Informatik, Soziotechnische Systeme 4. Frameworks für nebenläufige Anwendungen](https://reader035.vdocuments.pub/reader035/viewer/2022070310/55204d8449795902118d88b0/html5/thumbnails/42.jpg)
Angepasst an die verschiedenen Nutzer
e-teaching.org
![Page 43: Paradigmen der Programmierung Nebenläufigkeit Prof. Dr. Christian Kohls Informatik, Soziotechnische Systeme 4. Frameworks für nebenläufige Anwendungen](https://reader035.vdocuments.pub/reader035/viewer/2022070310/55204d8449795902118d88b0/html5/thumbnails/43.jpg)
Angepasst an die verschiedenen Nutzer
Community-Mitglieder Hochschul-Redakteure
e-teaching.org-Redaktion Landesportal
e-teaching.org
![Page 44: Paradigmen der Programmierung Nebenläufigkeit Prof. Dr. Christian Kohls Informatik, Soziotechnische Systeme 4. Frameworks für nebenläufige Anwendungen](https://reader035.vdocuments.pub/reader035/viewer/2022070310/55204d8449795902118d88b0/html5/thumbnails/44.jpg)
Angepasst an die verschiedenen Nutzer
Community-Mitglieder Hochschul-Redakteure
e-teaching.org-Redaktion Landesportal
e-teaching.org
![Page 45: Paradigmen der Programmierung Nebenläufigkeit Prof. Dr. Christian Kohls Informatik, Soziotechnische Systeme 4. Frameworks für nebenläufige Anwendungen](https://reader035.vdocuments.pub/reader035/viewer/2022070310/55204d8449795902118d88b0/html5/thumbnails/45.jpg)
Angepasst an die verschiedenen Nutzer
Community-Mitglieder Hochschul-Redakteure
e-teaching.org-Redaktion Landesportal
e-teaching.org
![Page 46: Paradigmen der Programmierung Nebenläufigkeit Prof. Dr. Christian Kohls Informatik, Soziotechnische Systeme 4. Frameworks für nebenläufige Anwendungen](https://reader035.vdocuments.pub/reader035/viewer/2022070310/55204d8449795902118d88b0/html5/thumbnails/46.jpg)
Angepasst an die verschiedenen Nutzer
Community-Mitglieder Hochschul-Redakteure
e-teaching.org-Redaktion Landesportal
e-teaching.org
![Page 47: Paradigmen der Programmierung Nebenläufigkeit Prof. Dr. Christian Kohls Informatik, Soziotechnische Systeme 4. Frameworks für nebenläufige Anwendungen](https://reader035.vdocuments.pub/reader035/viewer/2022070310/55204d8449795902118d88b0/html5/thumbnails/47.jpg)
Sichten auf spezielle Inhaltstypen
Produktsteckbriefe Referenzbeispiele Veranstaltungen Weiterbildung
Projektdatenbank Community-Events E-Teacher Audio-Pod
e-teaching.org
![Page 48: Paradigmen der Programmierung Nebenläufigkeit Prof. Dr. Christian Kohls Informatik, Soziotechnische Systeme 4. Frameworks für nebenläufige Anwendungen](https://reader035.vdocuments.pub/reader035/viewer/2022070310/55204d8449795902118d88b0/html5/thumbnails/48.jpg)
Realisierung e-teaching.org mit Plone / ZOPE und Python
![Page 49: Paradigmen der Programmierung Nebenläufigkeit Prof. Dr. Christian Kohls Informatik, Soziotechnische Systeme 4. Frameworks für nebenläufige Anwendungen](https://reader035.vdocuments.pub/reader035/viewer/2022070310/55204d8449795902118d88b0/html5/thumbnails/49.jpg)
Webframework basierend auf JavaScript
![Page 50: Paradigmen der Programmierung Nebenläufigkeit Prof. Dr. Christian Kohls Informatik, Soziotechnische Systeme 4. Frameworks für nebenläufige Anwendungen](https://reader035.vdocuments.pub/reader035/viewer/2022070310/55204d8449795902118d88b0/html5/thumbnails/50.jpg)
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
![Page 51: Paradigmen der Programmierung Nebenläufigkeit Prof. Dr. Christian Kohls Informatik, Soziotechnische Systeme 4. Frameworks für nebenläufige Anwendungen](https://reader035.vdocuments.pub/reader035/viewer/2022070310/55204d8449795902118d88b0/html5/thumbnails/51.jpg)
Struktur
ModelView
Controller
Externe Module
Eigene Module Öffentliche Dateien: JavaScript, CSS, Bilder…
Hauptanwendung
![Page 52: Paradigmen der Programmierung Nebenläufigkeit Prof. Dr. Christian Kohls Informatik, Soziotechnische Systeme 4. Frameworks für nebenläufige Anwendungen](https://reader035.vdocuments.pub/reader035/viewer/2022070310/55204d8449795902118d88b0/html5/thumbnails/52.jpg)
Single Thread Event Loops
![Page 53: Paradigmen der Programmierung Nebenläufigkeit Prof. Dr. Christian Kohls Informatik, Soziotechnische Systeme 4. Frameworks für nebenläufige Anwendungen](https://reader035.vdocuments.pub/reader035/viewer/2022070310/55204d8449795902118d88b0/html5/thumbnails/53.jpg)
Server starten
> node myappserver.js
![Page 54: Paradigmen der Programmierung Nebenläufigkeit Prof. Dr. Christian Kohls Informatik, Soziotechnische Systeme 4. Frameworks für nebenläufige Anwendungen](https://reader035.vdocuments.pub/reader035/viewer/2022070310/55204d8449795902118d88b0/html5/thumbnails/54.jpg)
Programm-Logik
![Page 55: Paradigmen der Programmierung Nebenläufigkeit Prof. Dr. Christian Kohls Informatik, Soziotechnische Systeme 4. Frameworks für nebenläufige Anwendungen](https://reader035.vdocuments.pub/reader035/viewer/2022070310/55204d8449795902118d88b0/html5/thumbnails/55.jpg)
Clientseitiges Javascript
![Page 56: Paradigmen der Programmierung Nebenläufigkeit Prof. Dr. Christian Kohls Informatik, Soziotechnische Systeme 4. Frameworks für nebenläufige Anwendungen](https://reader035.vdocuments.pub/reader035/viewer/2022070310/55204d8449795902118d88b0/html5/thumbnails/56.jpg)
IdeaWall.js (client-seitig)
![Page 57: Paradigmen der Programmierung Nebenläufigkeit Prof. Dr. Christian Kohls Informatik, Soziotechnische Systeme 4. Frameworks für nebenläufige Anwendungen](https://reader035.vdocuments.pub/reader035/viewer/2022070310/55204d8449795902118d88b0/html5/thumbnails/57.jpg)
Synchroner vs. asynchroner Seitenaufbau
Web-Server
Benutzeraktionen ändern die Seite ohne Zugriff auf den Server
Web-ServerXjdooi dofOidufio df
pifdp
Aktualisierung von Seitenteilen stattGanzer Seiten
Asynchrone Verarbeitungauch auf dem Server
![Page 58: Paradigmen der Programmierung Nebenläufigkeit Prof. Dr. Christian Kohls Informatik, Soziotechnische Systeme 4. Frameworks für nebenläufige Anwendungen](https://reader035.vdocuments.pub/reader035/viewer/2022070310/55204d8449795902118d88b0/html5/thumbnails/58.jpg)
Ausblick
Visuelle Programmierung
Entwurfmuster (Softwaredesign)