Skip to main content

2019 | Buch

Entwicklung verteilter Anwendungen

Mit Spring Boot & Co

insite
SUCHEN

Über dieses Buch

Hier lernen Sie, wie Sie Webanwendungen mit dem Spring Boot Framework entwickeln

Sie wollen mehr über Spring Boot und Spring Boot 2 erfahren?

Sie erhoffen sich eine Einführung in die Entwicklung verteilter Anwendungen?

Dieses Buch ist kein normales Lehrbuch aus der Informatik. Es vermittelt mehr als nur reine Theorie auf Basis von Informatik-Grundlagen. Stattdessen führt es Sie in die grundsätzlichen Konzepte des Spring Boot Frameworks ein.

Schritt-für-Schritt-Anleitung für die Softwareentwicklung Die Spring-Welt (in diesem Fall Spring Boot, Spring Boot 2, Spring DATA und Spring MVC) bedarf eines gewissen Vorwissens. Egal ob Programmierer, Software-Entwickler oder Student, hilfreich sind Vorkenntnisse in:

Objektorientierter Java-ProgrammierungThreadsMVC (Model-View-Controller)

Um Ihnen die Arbeit mit diesem Spring-Boot-Buch zu erleichtern, ist jedes Projekt in Form einer Schritt-für-Schritt-Anleitung um einzelne Module erweitert. Dadurch erhalten Sie nicht nur einen Einblick in die Theorie, sondern auch praxisorientierte Programmierbeispiele. Daneben schlägt Ihnen der Autor mögliche technische Lösungen vor. Um Ihnen den Einstieg in die Thematik mit dem vorliegenden Spring-Boot-Buch zu vereinfachen, stehen die Programmcodes zu den Kapiteln und weiterführende Informationen online zur Verfügung.

Inhaltsverzeichnis

Frontmatter
1. Grundlagen
Zusammenfassung
In diesem Kapitel lernen Sie eine Reihe grundlegender Begriffe kennen, die für das Verständnis der Entwicklung von verteilten Anwendungen wichtig sind. Welche Arten von verteilten Anwendungen im Buch behandelt werden, ist genauso ein Thema wie Konzepte von Software-Architekturen und Kommunikationsmodelle. Das Spring Framework zur Realisierung von verteilten Anwendungen wird überblicksartig erläutert. Dabei werden die vorgestellten Konzepte in das Spring Framework eingeordnet.
Wolfgang Golubski
2. Erste Schritte zur Anwendung
Zusammenfassung
Nun geht es mit dem praktischen Teil los. Ziel ist es, eine einfache Spring-Boot-Anwendung auszuführen und dabei die ersten elementaren Bestandteile der Entwicklung kennenzulernen. Dazu notwendige Annotationen werden wir einführen und erläutern. Auch Loggen und Testen werden vorgestellt. Insoweit können Sie dann einfache Spring-Boot-Anwendungen entwickeln.
Wolfgang Golubski
3. Eine kleine Chat-Anwendung mit Spring MVC
Zusammenfassung
Kommunikations- oder Nachrichtendienste eignen sich sehr gut zur Illustration der hinter den Kulissen stattfindenden Abläufe und Ereignisse. Anhand einer Beispielanwendung soll aufgezeigt werden, wie mit Spring Boot entwickelt werden kann. Die Anwendung, die auf den Namen „EvaChatApp“ hört, ist nach ihrem Start über das Web erreichbar. Zunächst soll sie nur auf dem lokalen Rechner laufen und wird über localhost adressiert.
Wolfgang Golubski
4. Ein Blick hinter die Kulissen von Dependency Injection
Zusammenfassung
In diesem Kapitel wollen wir unser EvaChatApp-Beispiel ruhen lassen und widmen uns den Abläufen im Hintergrund. Deren Verständnis hilft, die Spring-Möglichkeiten wirklich nutzen zu können. So manche Spring-Magie wird nun ein Stück weit entzaubert. Dabei behandeln wir Themen wie Dependency Injection, was eine Bean von einem Java-Objekt unterscheidet, wie viele Bean-Instanzen es in welcher Situation gibt, wie der Spring Container arbeitet oder welche Zustände eine Bean durchläuft. Dieses Kapitel trägt zum besseren Verständnis bei und erleichtert die Entwicklungsarbeiten. Dabei versuchen wir, das grundlegende und notwendige Wissen anzubieten und dabei auf bestimmte Details zu verzichten.
Wolfgang Golubski
5. Speichern von Model-Daten mit Spring Data
Zusammenfassung
Daten spielen in verteilten Anwendungen eine prominente Rolle. Ohne Daten könnten die meisten Anwendungen nicht ihre Arbeit erledigen. Darüber hinaus müssen sie abgespeichert und zu späteren Zeitpunkten wieder genutzt werden können. Im Model-View-Controller-Ansatz sind sie im Model-Teil organisiert. Das Abspeichern der Model-Daten kann in Datenbanken erfolgen. In Unternehmensanwendungen kommen dabei häufig relationale Datenbanksysteme zum Einsatz. Mittlerweile sind nicht-relationale (auch als NoSQL bekannte) Datenbanken im Kommen, da sie in gewissen Einsatzbereichen, wie im Umgang mit unstrukturierten Daten, Vorteile aufweisen. Vor allem bessere Performance und Skalierbarkeit bei großen Datenmengen können gegenüber den klassischen relationalen Datenmodellen erreicht werden. Allerdings haben NoSQL-Ansätze auch Nachteile, wie komplexe Datenbankabfragen oder keine Transaktionsmechanismen, so dass man immer aufgrund des konkreten Projekteinsatzes eine Entscheidung für oder gegen einen Datenbankansatz treffen sollte. In diesem Kapitel werden wir uns auf das relationale Datenbankmodell konzentrieren. Viele, viele Anwendungen bauen (noch) auf ihm auf.
Wolfgang Golubski
6. Die Bearbeitung von Model-Daten mit Spring Data
Zusammenfassung
Die Grundlagen der Persistierung haben wir in ► Kap. 5 behandelt. Jetzt sollen weiterführende Themen wie Abfragen (Queries), Kaskadierung und Vererbung vorgestellt und diskutiert werden. Nicht alle Objekte müssen zwingend in separaten Datenbanktabellen gespeichert werden. Eingebettete Objekte ermöglichen das Speichern in der Elternstruktur. In komplexeren Projekten sind diese Funktionalitäten unerlässlich und ermöglichen einen flexiblen und einfachen Einsatz der Persistierung in der Programmierung. Mehr Komfort können wir durch eine Entity-Elternklasse erlangen, in der allen Entitäten gemeinsame Grundfunktionalitäten zur Verfügung gestellt werden. Ähnliches gilt für das Reagieren auf Lebenszyklus-Ereignisse von Entitäten, hierfür stehen EntityListener bereit.
Wolfgang Golubski
7. Die EvaChatApp unter der Haube
Zusammenfassung
Eine mehr ins Detail gehende Analyse der EvaChatApp folgt in diesem Kapitel. Grundlegend neue Konzepte außer der Validierung werden dabei nicht eingeführt. Vielmehr werden wichtige bisher noch nicht vorgestellte Implementierungsdetails anhand von Code-Ausschnitten erläutert. Zum Abschluss werden wir noch eine erweiterte Weboberfläche entwickeln. Dazu sind nur wenige Handgriffe notwendig.
Wolfgang Golubski
8. Sicherheit geht vor – Schutz vor Angriffen und nicht autorisierten Zugriffen
Zusammenfassung
Ein hohes Maß an Sicherheit ist unverzichtbar für alle Webanwendungen und muss bei der Entwicklung einen entsprechend hohen Stellenwert einnehmen. Der Schutz von Daten und Eingaben ist zu gewährleisten. Wer möchte schon für Aktivitäten (zum Beispiel Bestellungen oder Meinungsäußerungen) verantwortlich gemacht werden, die er nicht ausgelöst hat. Sicherheit können wir mit geeigneten Mechanismen zu Authentifizierung, Autorisierung, Rollen und HTTPS-Verbindung erreichen.
Wolfgang Golubski
9. Aspektorientierte Programmierung (AOP)
Zusammenfassung
Implementierungen von größeren Anwendungen werden schnell komplex. Daher versuchen wir das Prinzip Separation of Concerns umzusetzen, indem wir die verschiedenen Funktionalitäten möglichst getrennt halten. Jede Klasse soll eine hohe Kohäsion aufweisen. Aber es werden doch immer wieder „andere“ Funktionalitäten benötigt. Ein einfaches Beispiel ist ein Log-Mechanismus. Was versteckt sich dahinter? Es soll etwas beobachtet werden und zu einer spezifischen Aktivität führen. Neben dem Protokollieren sind Überprüfungen denkbar wie z. B. Sicherheitschecks, ob ein Nutzer auf eine bestimmte Methode zugreifen darf. Aspekte ermöglichen es, Funktionalitäten an einer Programmstelle zu definieren und in mehreren Klassen zur Verfügung zu stellen.
Wolfgang Golubski
10. Transaktionen – alles oder nichts
Zusammenfassung
Banküberweisungen, Reisebuchungen oder Szenarien, in denen während des Lesens der Daten die zugrundeliegende Datenmenge verändert wird, sind Beispiele für den möglichen Einsatz von Transaktionen. Typische Beispiele aus der Praxis, bei denen wir Transaktionen antreffen, sind aus den Bereichen Bank und Online-Handel. Die Bezahlung oder Überweisung von Geld besteht aus mindestens zwei Operationen bzgl. des Überweisungsbetrages: der Belastung des Käuferkontos und der Gutschrift auf dem Verkäuferkonto. Hier gilt alles oder nichts. Die Überweisung ist erfolgreich abgeschlossen oder alles bleibt wie zuvor.
Wolfgang Golubski
11. Rest – zwei Apps arbeiten Hand in Hand
Zusammenfassung
Zwei Anwendungen arbeiten in unterschiedlichen Domänen und können sich erfolgreich ergänzen. Die Chat-Anwendung soll um eine Bezahlfunktion erweitert werden, ohne diese von Grunde auf realisieren zu müssen. Ausgehend von einer bereits implementierten zweiten Anwendung, die einen mobilen Bezahlservice anbietet, soll er in der Chat-Anwendung integriert werden.
Wolfgang Golubski
12. Events und Aktualisierung
Zusammenfassung
Im letzten Kapitel werden wir das Konzept der Spring Events vorstellen. Ereignisse (Events) und ihre Verarbeitung werden explizit von Spring unterstützt. In Java treffen wir vor allem bei grafischen Oberflächen auf solche Events. Wenn ein Button gedrückt wird, löst er ein Event aus, das von einem Zuhörer (EventListener) verarbeitet werden kann. Diesen Ansatz hat Spring auf Anwendungen übertragen.
Wolfgang Golubski
Backmatter
Metadaten
Titel
Entwicklung verteilter Anwendungen
verfasst von
Prof. Dr. Wolfgang Golubski
Copyright-Jahr
2019
Electronic ISBN
978-3-658-26814-5
Print ISBN
978-3-658-26813-8
DOI
https://doi.org/10.1007/978-3-658-26814-5