Parallele Programmierung mit Akka
Dieses Seminar führen wir im Moment nicht durch.
Empfohlene Schulungsdauer: 2 Tage, insgesamt 16 Unterrichtsstunden à 45 Minuten
Kursziele
Akka ist ein quelloffenes ereignisbasiertes Middlework-Framework für die Java-Laufzeitumgebung auf Basis der Programmiersprache Scala. Es vereinfacht das Erstellen von hochverfügbaren Systemen mit enormer Skalierbarkeit. Das verwendete Aktoren-Modell löst Probleme der herkömmlichen Parallelisierung mit Threads; Anwendungen können einfach auf mehrere Prozessoren und Server skaliert werden. Systeme auf Basis von Akka erreichen eine hohe Ausfallsicherheit, denn durch spezielle Überwachungsstrategien werden fehlerhafte Aktoren erkannt und neugestartet – das Gesamtsystem bleibt stabil. Das Seminar gibt einen umfangreichen Einblick in die innovativen Konzepte von Akka, stellt die Grundbausteine und -prinzipien detailliert vor, entwickelt schrittweise nebenläufige Anwendungen und zeigt wie diese sich testen lassen. In zahlreiche Übungen werden die drei Kernkonzepte Actors, Remoting und Supervision direkt angewandt. Am Ende des Akka-Kurses weiß jeder Teilnehmer die Fähigkeiten des Akka-Frameworks gezielt einzusetzen, und kann eigene hochperformante, skalierbare, ausfallsichere Anwendungen entwerfen.
Zielgruppe
Software-Entwickler für hochverfügbare und/oder hochskalierbare SystemeKursvoraussetzungen
Gute Programmierkenntnisse in Java und/oder Scala.Seminarinhalte
Einstieg in Akka
- Entstehungsgeschichte
- Bezug, Installation, Dokumentation, Maven
- Lizenzform, kommerzieller Support
- Anwendungsbeispiele aus der Realität
- Architektur: Pakete und Funktionen
- Konfiguration:application.conf,Props
Aktorenmodell
- Einführung und Herkunft
- Problemanalyse herkömmlicher Methoden, Java Memory Model
- Nachrichtenbasierte Kommunikation: share nothing, mailbox, fire-and-forget
Aktorensystem
- Aktoren instanziieren und terminieren:actorOf,ActorRef,PoisionPill
- Aufbau:akka.actor.Actor,receive,preStart
- Komposition und Transformation: funktionale Programmierweise
- Futures und Timeouts: Ergebnisse von nebenläufigen Operationen einholen
- Serialisierung: Nachrichten über Netzwerk senden
- Typisierte Aktoren: statische Nachrichtenschnittstelle
- Event Bus:subscribe,publish,unsubscribe
Testen
- Verhalten mit Unit Tests überprüfen
- Akkas TestKit:TestActorRef
Ausfallsicherheit
- Fehlertoleranz durch Überwachung: Supervisor
- Neustarten bei Fehlverhalten: let it crash
- Lebenszyklus:supervisorStrategy,DeathWatch
Skalierungsfunktionen
- Dispatcher: Skalierungsimplementation wählen
- Routing: Strategien zur Verteilung von Nachrichten
- Remoting: Aktoren über mehrere Server hinweg orchestrieren
- Scheduler: zukünftige Berechnungen durchführen
Fortgeschrittene Funktionen von Akka
- Software Transactional Memory: Zustand in parallelen Anweisungen teilen
- Transactors: Aktoren und STM vereinen
- Zustandsautomat: Zuständen, Zustandsübergängen und Aktionen
Weiterführende Themen
- Zukünftige Entwicklung
- Cluster aus Aktorensystemen
- Add-On Module: HTTP, Camel
Eingesetzte Seminar-Software
Standardmäßig basiert der Kurs auf der letzten Version des Frameworks, zurzeit Akka 2.0