Reactive Messaging Patterns with the Actor Model

Author: Vaughn Vernon
Publisher: Addison-Wesley Professional
ISBN: 9780133846874
Release Date: 2015-07-13
Genre: Computers

USE THE ACTOR MODEL TO BUILD SIMPLER SYSTEMS WITH BETTER PERFORMANCE AND SCALABILITY Enterprise software development has been much more difficult and failure-prone than it needs to be. Now, veteran software engineer and author Vaughn Vernon offers an easier and more rewarding method to succeeding with Actor model. Reactive Messaging Patterns with the Actor Model shows how the reactive enterprise approach, Actor model, Scala, and Akka can help you overcome previous limits of performance and scalability, and skillfully address even the most challenging non-functional requirements. Reflecting his own cutting-edge work, Vernon shows architects and developers how to translate the longtime promises of Actor model into practical reality. First, he introduces the tenets of reactive software, and shows how the message-driven Actor model addresses all of them–making it possible to build systems that are more responsive, resilient, and elastic. Next, he presents a practical Scala bootstrap tutorial, a thorough introduction to Akka and Akka Cluster, and a full chapter on maximizing performance and scalability with Scala and Akka. Building on this foundation, you’ll learn to apply enterprise application and integration patterns to establish message channels and endpoints; efficiently construct, route, and transform messages; and build robust systems that are simpler and far more successful. Coverage Includes How reactive architecture replaces complexity with simplicity throughout the core, middle, and edges The characteristics of actors and actor systems, and how Akka makes them more powerful Building systems that perform at scale on one or many computing nodes Establishing channel mechanisms, and choosing appropriate channels for each application and integration challenge Constructing messages to clearly convey a sender’s intent in communicating with a receiver Implementing a Process Manager for your Domain-Driven Designs Decoupling a message’s source and destination, and integrating appropriate business logic into its router Understanding the transformations a message may experience in applications and integrations Implementing persistent actors using Event Sourcing and reactive views using CQRS Find unique online training on Domain-Driven Design, Scala, Akka, and other software craftsmanship topics using the for{comprehension} website at forcomprehension.com.

Programmieren mit Scala

Author: Dean Wampler
Publisher: O'Reilly Germany
ISBN: 9783897216488
Release Date: 2010-10-31
Genre: Computers

Sie ist elegant, schlank, modern und flexibel: Die Rede ist von Scala, der neuen Programmiersprache für die Java Virtual Machine (JVM). Sie vereint die Vorzüge funktionaler und objektorientierter Programmierung, ist typsicherer als Java, lässt sich nahtlos in die Java-Welt integrieren – und eine in Scala entwickelte Anwendung benötigt oft nur einen Bruchteil der Codezeilen ihres Java-Pendants. Kein Wunder, dass immer mehr Firmen, deren große, geschäftskritische Anwendungen auf Java basieren, auf Scala umsteigen, um ihre Produktivität und die Skalierbarkeit ihrer Software zu erhöhen. Das wollen Sie auch? Dann lassen Sie sich von den Scala-Profis Dean Wampler und Alex Payne zeigen, wie es geht. Ihre Werkzeugkiste: Schon bevor Sie loslegen, sind Sie weiter, als Sie denken: Sie können Ihre Java-Programme weiter verwenden, Java-Bibliotheken nutzen, Java von Scala aus aufrufen und Scala von Java aus. Auch Ihre bevorzugten Entwicklungswerkzeuge wie NetBeans, IntelliJ IDEA oder Eclipse stehen Ihnen weiter zur Verfügung, dazu Kommandozeilen-Tools, Plugins für Editoren, Werkzeuge von Drittanbietern – und natürlich Ihre Programmiererfahrung. In Programmieren mit Scala erfahren Sie, wie Sie sich all das zunutze machen. Das Hybridmodell: Die Paradigmen "funktional" und "objektorientiert" sind keine Gegensätze, sondern ergänzen sich unter dem Scala-Dach zu einem sehr produktiven Ganzen. Nutzen Sie die Vorteile funktionaler Programmierung, wann immer sich das anbietet – und seien Sie so frei, auf die guten alten Seiteneffekte zu bauen, wenn Sie das für nötig halten. Futter für die Profis: Skalierbare Nebenläufigkeit mit Aktoren, Aufzucht und Pflege von XML mit Scala, Domainspezifische Sprachen, Tipps zum richtigen Anwendungsdesign – das sind nur ein paar der fortgeschrittenen Themen, in die Sie mit den beiden Autoren eintauchen. Danach sind Sie auch Profi im Programmieren mit Scala.

Nebenl ufige Programmierung mit Java

Author: Jörg Hettel
Publisher: dpunkt.verlag
ISBN: 9783960880134
Release Date: 2016-09-30
Genre: Computers

Damit die Performance-Möglichkeiten moderner Multicore-Rechner effizient genutzt werden, muss die Software dafür entsprechend entworfen und entwickelt werden. Für diese Aufgabe bietet insbesondere Java vielfältige Konzepte an. Das Buch bietet eine fundierte Einführung in die nebenläufige Programmierung mit Java. Der Inhalt gliedert sich dabei in fünf Teile: Im ersten Teil wird das grundlegende Thread-Konzept besprochen und die Koordinierung nebenläufiger Programmflüsse durch rudimentäre Synchronisationsmechanismen erläutert. Im zweiten Teil werden weiterführende Konzepte wie Threadpools, Futures, Atomic-Variablen und Locks vorgestellt. Ergänzende Synchronisationsmechanismen zur Koordinierung mehrerer Threads werden im dritten Teil eingeführt. Teil vier bespricht das ForkJoin-Framework, die Parallel Streams und die Klasse CompletableFuture, mit denen auf einfache Art und Weise nebenläufige Programme erstellt werden können. Im fünften Teil findet der Leser Beispiele für die Anwendung der vorgestellten Konzepte und Klassen. Dabei werden auch das Thread-Konzept von JavaFX und Android sowie das Programmiermodell mit Aktoren vorgestellt. Der Anhang enthält einen Ausblick auf Java 9, das bezüglich des Concurrency-API kleine Neuerungen bringt. Alle Codebeispiele stehen auf der Webseite zum Buch zum Download bereit.

Microservices

Author: Sam Newman
Publisher: MITP-Verlags GmbH & Co. KG
ISBN: 9783958450837
Release Date: 2015-07-06
Genre: Computers

Feingranulare Systeme mit Microservices aufbauen Design, Entwicklung, Deployment, Testen und Monitoring Sicherheitsaspekte, Authentifizierung und Autorisierung Verteilte Systeme haben sich in den letzten Jahren stark verändert: Große monolithische Architekturen werden zunehmend in viele kleine, eigenständige Microservices aufgespalten. Aber die Entwicklung solcher Systeme bringt Herausforderungen ganz eigener Art mit sich. Dieses Buch richtet sich an Softwareentwickler, die sich über die zielführenden Aspekte von Microservice-Systemen wie Design, Entwicklung, Testen, Deployment und Monitoring informieren möchten. Sam Newman veranschaulicht und konkretisiert seine ganzheitliche Betrachtung der grundlegenden Konzepte von Microservice-Architekturen anhand zahlreicher praktischer Beispiele und Ratschläge. Er geht auf die Themen ein, mit denen sich Systemarchitekten und Administratoren bei der Einrichtung, Verwaltung und Entwicklung dieser Architekturen in jedem Fall auseinandersetzen müssen. Aus dem Inhalt: Vorteile von Microservices Gestaltung von Services Ausrichtung der Systemarchitektur an der Organisationsstruktur Möglichkeiten zur Integration von Services Schrittweise Aufspaltung einer monolithischen Codebasis Deployment einzelner Microservices mittels Continuous Integration Testen und Monitoring verteilter Systeme Sicherheitsaspekte Authentifizierung und Autorisierung zwischen Benutzer und Service bzw. zwischen Services untereinander Skalierung von Microservice-Architekturen »Microservice-Architekturen besitzen viele interessante Eigenschaften, allerdings sind bei der Umstellung so einige Fallstricke zu beachten. Dieses Buch wird Ihnen helfen herauszufinden, ob Microservices für Ihre Zwecke geeignet sind und zeigt Ihnen, wie Sie die Fallstricke umgehen können.« Martin Fowler, Chief Scientist, ThoughtWorks

Domain Driven Design kompakt

Author: Vaughn Vernon
Publisher: dpunkt.verlag
ISBN: 9783960881797
Release Date: 2017-06-01
Genre: Computers

Domain-Driven Design (DDD) richtet den Fokus in der Softwareentwicklung auf das Wesentliche: die Domäne. Die Domäne wird als Modell in die Software übertragen. Damit entwickeln Sie Software in hoher Qualität, die lange hält, den Anwender zufriedenstellt und die Basis für Microservices bildet. Dieses Buch bietet einen kompakten Einstieg in DDD. Die wesentlichen Konzepte, wie die Entwicklung einer Ubiquitous Language, das Aufteilen der Domäne in Bounded Contexts und die Konstruktion innerhalb von Bounded Contexts, werden vermittelt. Außerdem wird die Anbindung von Legacy-Systemen behandelt. Die Themen im Einzelnen: - Strategisches Design mit Bounded Contexts und der Ubiquitous Language - Strategisches Design mit Subdomains - Strategisches Design mit Context Mapping - Taktisches Design mit Aggregates - Taktisches Design mit Domain Events Auch auf Techniken zur Beschleunigung von Design und das Management von Projekten wird eingegangen. Insbesondere wird erläutert, wie Event Storming, DDD in einem agilen Projekt und die Modellierung mit Timebox funktionieren. Der Leser findet in diesem Buch viele konkrete Handlungsvorschläge für die Praxis und wird so befähigt, die Zusammenarbeit von Entwicklern und Domain Experts sowie zwischen Teams zu fördern. Als Extra befindet sich ein Glossar mit den wichtigsten DDD-Begriffen auf den Umschlaginnenseiten.

Clean Architecture

Author: Robert C. Martin
Publisher: MITP-Verlags GmbH & Co. KG
ISBN: 9783958457263
Release Date: 2018-02-20
Genre: Computers


Information Systems Architecture and Technology Proceedings of 37th International Conference on Information Systems Architecture and Technology ISAT 2016

Author: Jerzy Świątek
Publisher: Springer
ISBN: 9783319465890
Release Date: 2016-09-23
Genre: Computers

This four volume set of books constitutes the proceedings of the 2016 37th International Conference Information Systems Architecture and Technology (ISAT), or ISAT 2016 for short, held on September 18–20, 2016 in Karpacz, Poland. The conference was organized by the Department of Management Systems and the Department of Computer Science, Wrocław University of Science and Technology, Poland. The papers included in the proceedings have been subject to a thorough review process by highly qualified peer reviewers. The accepted papers have been grouped into four parts: Part I—addressing topics including, but not limited to, systems analysis and modeling, methods for managing complex planning environment and insights from Big Data research projects. Part II—discoursing about topics including, but not limited to, Web systems, computer networks, distributed computing, and mulit-agent systems and Internet of Things. Part III—discussing topics including, but not limited to, mobile and Service Oriented Architecture systems, high performance computing, cloud computing, knowledge discovery, data mining and knowledge based management. Part IV—dealing with topics including, but not limited to, finance, logistics and market problems, and artificial intelligence methods.

Programming with Actors

Author: Alessandro Ricci
Publisher: Springer
ISBN: 9783030003029
Release Date: 2018-09-06
Genre: Computers

The set of papers collected in this issue originated from the AGERE! Workshop series - the last edition was held in 2017 - and concern the application of actor-based approaches to mainstream application domains and the discussion of related issues. The issue is divided into two parts. The first part concerns Web Programming; Data-Intensive Parallel Programming; Mobile Computing; Self-Organizing Systems and the second part concerns Scheduling; Debugging; Communication and Coordination; Monitoring.

Langlebige Software Architekturen

Author: Carola Lilienthal
Publisher: dpunkt.verlag
ISBN: 9783960882459
Release Date: 2017-07-20
Genre: Computers

Zu Beginn eines Projekts erarbeiten die Architekten und das Entwicklungsteam eine zugeschnittene Architekturblaupause für die anstehende Entwicklung. Aber während der Implementierung weicht das Team häufig ungewollt von dieser Vorgabe ab. Die Folge davon: Die Architektur des Systems erodiert, die Komplexität nimmt zu, und es werden technische Schulden aufgebaut. Wartung und Erweiterung der Software werden immer aufwendiger. In diesem Buch zeigt die Autorin, welche Fehler in Softwareprojekten bei der Umsetzung der Architektur vermieden werden sollten und welche Prinzipien eingehalten werden müssen, um langlebige Architekturen zu entwerfen oder bei bestehenden Systemen zu langlebigen Architekturen zu gelangen. Sie geht auf Muster in Softwarearchitekturen und Mustersprachen ein, erläutert verschiedene Architekturstile und zeigt, welche Vorgaben letztlich zu Architekturen führen, die für Entwickler noch gut durchschaubar sind. Mit über 200 farbigen Bildern aus real existierenden Softwaresystemen und etlichen Fallbeispielen werden schlechte und gute Lösungen verständlich und nachvollziehbar dargestellt. Empfehlungen und vielfältige Hinweise aus Praxisprojekten erlauben dem Leser einen direkten Transfer zu seiner täglichen Arbeit. Die 2. Auflage misst Microservices und Domain-Driven Design mehr Gewicht bei. Hinzugekommen sind die Themen Vergleichbarkeit von verschiedenen Systemen durch den Modularity Maturity Index sowie Mob Architecting. "Ihre langjährigen Erfahrungen auf dem Gebiet der Architekturanalyse von Systemen unterschiedlicher Technologien sind einzigartig. Dadurch stellt sie [Carola Lilienthal] in jedem Winkel dieses Buches den nötigen Praxisbezug her." Aus dem Geleitwort von Gernot Starke

Kreatives F hrungsverhalten

Author:
Publisher: Springer-Verlag
ISBN: 9783322871039
Release Date: 2013-07-02
Genre: Business & Economics

Mitarbeiterförderung und -entwicklung ist eine Aufgabe, die mit relativ einfachen, auch im Selbsttraining erlernbaren Techniken professionell ausgeführt werden kann. "Kreatives Führungsverhalten" liefert die Anleitung für wirksame Führungsmethoden, die menschliches Verhalten beeinflussen.

Sieben Wochen sieben Sprachen Prags

Author: Bruce A. Tate
Publisher: O'Reilly Germany
ISBN: 9783897213234
Release Date: 2011-06-30
Genre: Computers

Mit diesen sieben Sprachen erkunden Sie die wichtigsten Programmiermodelle unserer Zeit. Lernen Sie die dynamische Typisierung kennen, die Ruby, Python und Perl so flexibel und verlockend macht. Lernen Sie das Prototyp-System verstehen, das das Herzstück von JavaScript bildet. Erfahren Sie, wie das Pattern Matching in Prolog die Entwicklung von Scala und Erlang beeinflusst hat. Entdecken Sie, wie sich die rein funktionale Programmierung in Haskell von der Lisp-Sprachfamilie, inklusive Clojure, unterscheidet. Erkunden Sie die parallelen Techniken, die das Rückgrat der nächsten Generation von Internet-Anwendungen bilden werden. Finden Sie heraus, wie man Erlangs "Lass es abstürzen"-Philosophie zum Aufbau fehlertoleranter Systeme nutzt. Lernen Sie das Aktor-Modell kennen, das das parallele Design bei Io und Scala bestimmt. Entdecken Sie, wie Clojure die Versionierung nutzt, um einige der schwierigsten Probleme der Nebenläufigkeit zu lösen. Hier finden Sie alles in einem Buch. Nutzen Sie die Konzepte einer Sprache, um kreative Lösungen in einer anderen Programmiersprache zu finden – oder entdecken Sie einfach eine Sprache, die Sie bisher nicht kannten. Man kann nie wissen – vielleicht wird sie sogar eines ihrer neuen Lieblingswerkzeuge.