JAVAPRO 01 - 2020

JAVAPRO – DAS KOSTENLOSE MAGAZIN FÜR JAVA PROFIS

JETZT – aktuelle Ausgabe 2020:

Die Zukunft von Java

16 DIE MAGIE DER LAMBDAS
21 OPENJDK AMAZON CORRETTO
30 JAVAEE VS SPRING FÜR MICROSERVICES
36 QUARKUS – DIE ZUKUNFT VON JAVA
40 NATIVE ANWENDUNGEN MIT JAVA
45 MICROSTREAM 4 – HIGH-PERFORMANCE-PERSISTENCE
51 BOILERPLATE CODE MINIMIEREN MIT LOMOB

 

Einfach kostenlos anfordern. Lieferung erfolgt frei Haus. Nur innerhalb D. möglich.
Kein kostenpflichtiges Abo, denn die JAVAPRO kann man nicht kaufen!

Jetzt kostenlos anfordern Zum PDF Download

 

Die typische Lebenslinie einer Sicherheitslücke

Immer wieder lesen wir in den IT-Nachrichten etwas über gefundene Sicherheitslücken. Je schwerer die Einstufung dieser Lücke ist, desto mehr Aufmerksamkeit bekommen diese Informationen in der allgemeinen Presse. Über all die gefundenen Sicherheitslücken, die nicht den Bekanntheitsgrad von zum Beispiel dem SolarWinds Hack erlangen, hört und liest man meistens nichts. Aber wie ist die typische

Builder-Pattern auf Steroiden

Das Buch der GangOfFour gehört bei so ziemlich jedem Ausbildungszweig der Informatik mit zu der Grundlagenlektüre. Dort werden die Basispattern beschrieben und gruppiert, so dass man einen guten Start in das Thema DesignPattern bekommt. Aber wie sieht es dann später in der Verwendung aus? Hier werden wir das eine oder andere Pattern genauer unter die

Delegation versus Inheritance in grafischen Oberflächen

In diesem Artikel werden wir den Unterschied zwischen den Vererbungs- und Delegierungskonzepten untersuchen. Oder, um es besser auszudrücken, warum ich die Delegation bevorzuge und warum ich diese selten verwendete Funktion in Java hervorheben möchte. Diesen Artikel gibt es auch als Youtube Video auf meinem Kanal und ist zu finden unter Youtube – German – 4k

Die Herausforderungen der Softwareverteilung

Die Softwareentwicklung hängt immer mehr von externen Abhängigkeiten (Dependencies) ab und die Häufigkeit der Deployments nimmt zu. Beide Trends zusammen sind schon eine Anforderung an die bestehenden Infrastrukturen. Ein weiteres Element, das die Bereitstellung von Software in einen Netzwerkengpass verwandelt, ist die Verwendung zusammengesetzter (compounded) Artefakte. Und der vierte Trend, der gegen uns arbeitet, ist

DevSecOps – 101

Ich musste über ein Thema nachdenken, das mich Kunden oder Teilnehmer von Konferenzen seit längerer Zeit wiederholt fragen. Die Frage ist fast immer: Was sind die “quick wins” oder “low hanging fruits”, wenn Sie sich mehr mit dem Thema Sicherheit in der Softwareentwicklung befassen möchten? Und genau diese Frage möchte ich jetzt aus meiner Sicht

Helidon

Helidon ist ein Framework für die Entwicklung von Microservices. Helidon ist schnell, leichtgewichtig und einfach zu bedienen. Es kombiniert die Portabilität von Microprofile mit der Leistungsfähigkeit reaktiver APIs und möchte dabei völlig neue Maßstäbe bei der Erstellung von Microservices setzen. Helidon stammt aus dem Griechischen und bedeutet Schwalbe. Sie ist ein Vogel aus der Gattung der

Bessere Java-Desktop Deployments

Durch gravierende Änderungen bei den Java-Versionen ab Java 9, hat sich vor allem die Entwicklung klassischer Java-Desktop-Anwendungen stark verändert. Die Problematik ist sehr vielschichtig. Doch mit Java-Version-14 gibt es jetzt endlich anwenderfreundliche Lösungen für die Auslieferung von Java-Desktop-Applikationen.    Im Jahr 2014 war die Java-Welt noch in Ordnung. Drei Jahre zuvor kam nach langer Zeit

JSR-385 hätte Mars Orbiter retten können

1999 verlor die NASA den Mars-Climate-Orbiter im Wert von 125 Millionen US-Dollar, als er in die Umlaufbahn eintrat. Aufgrund einer Diskrepanz zwischen US-Customary und SI-Maßeinheiten in unterschiedlichen Teilsystemen kam das Raumschiff dem Planeten zu nahe, passierte die obere Atmosphäre und zerfiel. Dies war nicht der einzige Fall, in dem eine fehlerhafte Umrechnung zwischen Maßeinheiten katastrophale

Kafka-Connect – Drittsysteme an Kafka anbinden

Kafka ist eine verteilte Streaming-Plattform die verschiedene Nutzungsszenarien unterstützt. Sie kann als Messaging- oder Speichersystem eingesetzt werden und Datenströme transformieren. Dieser Artikel beschreibt, wie Sie mit Kafka-Connect Drittsysteme wie Redis an Kafka anbinden können.   Kafka bietet eine flexible Grundlage, um darauf komplexe Datenverarbeitungsarchitekturen zu bauen. Eine wichtige Frage bei diesen Architekturen ist, wie die

Architektur-Hotspots aufspüren

Strukturelle Abhängigkeitsanalysen sind von begrenzter Aussagekraft. Teilweise erfassen sie die wesentlichen Architektur-Hotspots nicht, wie anhand eines Code-Beispiels exemplarisch gezeigt wird. Die vorgestellten Konzepte zur Feature-Modularität sind eine neue Art die System-Komplexität zu erfassen. Sie zielen darauf ab, Architektur-Hotspots zu identifizieren, die den (Wartungs-)Aufwand für neue Features ansteigen lassen. Ein weit verbreiteter Ansatz zur Bewertung von

Vernetzte Systeme mit FEPCOS-J

FEPCOS-J ist ein Programmiergerüst für Java, das die Entwicklung von zusammengesetzten, vernetzten Systemen, wie zum Beispiel Roboterschwärme, beschleunigt, indem es die benötigte Netzwerkprogrammierung automatisiert und die Spezifikation von Nebenläufigkeit vereinfacht. In diesem Artikel werden die Grundlagen und, mit einem einfachen Beispiel, die Anwendung von FEPCOS-J vorgestellt. „Das Ganze ist mehr als die Summe seiner Teile.“

Die Magie der Lambdas

Mit der JDK-Version 8 wurde der Versuch gestartet, die objektorientierte Welt mit den Vorteilen der funktionalen Programmierung zu verbinden. Dazu wurden die Lambda-Ausdrücke eingeführt, ein mächtiges aber leider oft unterschätztes Werkzeug. Da Lambda-Ausdrücke jedoch ein integraler Bestandteil des JDK und vieler Frameworks sind, kommt man in der Java-Welt nur noch schwer um sie herum. Code

MicroStream 4 – High-Performance Java-Native Persistence

Native Anwendungen mit Java. Java-Services so schnell wie C. Startzeiten in Millisekunden und minimaler Memory-Footprint. Auf Basis von GraalVM entsteht ein neuer Java-Stack für moderne Cloud-Native-Applikationen, der Java auf ein völlig neues Level bringt. Mit MicroStream kommt jetzt eine hoch performante und gleichzeitig leichtgewichtige Persistence dazu die mit bis zu 1000 Mal schnelleren Datenbankzugriffen eine

H2 für JUnit-Tests

H2 ist eine komplett in Java implementierte, relationale Open-Source-Datenbank, die man embedded, als Server- oder In-Memory-Datenbank verwenden kann. H2 eignet sich unter anderem in Prototypen, kleinen Services und für automatisierte Unit-Tests. Moderne Ansätze zum Systemdesign wie Microservices oder Self-Contained-Systems bieten die Möglichkeit, einzelne Aspekte eines Gesamtsystems isoliert betrachten und bearbeiten zu können. Implementierung, Erweiterung und

Von Nixdorf nach Kubernetien – Digitalisierung im Wander der Zeit

Die Politik entdeckt die Digitalisierung als Zukunftsthema und gibt den Rat: „Die Digitalisierung ist auch für Mittelständler eine Pflichtaufgabe“. Dabei ist die Digitalisierung im Mittelstand schon lange angekommen, wie ein Ausflug in das Optica Abrechnungszentrum, einem Unternehmen der Dr. Güldner Firmengruppe, zeigt – lange bevor das Internet zum Neuland in der Politik deklariert wurde. Digitalisierung

Native Anwendungen mit Java

Quarkus verspricht sagenhafte Performancegewinne. Der Einstieg ist einfach, da Quarkus wie eine Sammlung bereits bekannter Frameworks erscheint. Doch Quarkus wurde speziell für den Einsatz im Container und in der Cloud entwickelt. Hohe Performance und geringer Ressourcenverbrauch stehen im Focus.    Quarkus bietet einen ähnlichen Funktionsumfang wie die Platzhirsche Spring-Boot und Java-EE (jetzt Jakarta-EE). Es ist

Self-Contained-Systems

Self-Contained-Systems ist sowohl ein Architektur-, als auch Organisationsansatz, der im Kern auf dem Domain-Driven-Design-Ansatz aufsetzt und erweitert. SCS soll nicht nur die Trennung und Betrieb von Systemen, sondern auch die organisatorische Strukturierung und Trennung größerer Entwicklungsteams erleichtern. Der Fokus von SCS liegt klar auf Anforderungen und nicht auf technische Implementierungsdetails. Self-Contained-Systems (SCS) ist zunächst einmal

OpenJDK Amazon-Corretto

Anfang 2019 wurde Amazon-Corretto 8, eine kostenlose, plattformübergreifende Distribution von OpenJDK für Java 8 veröffentlicht. Kurz darauf kam Amazon-Corretto 11 für Java 11 hinzu. Amazon setzt intern Corretto bei Tausenden von produktiven Workloads ein und hat auf Basis dieser Erfahrung Verbesserungen hinsichtlich Sicherheit, Stabilität oder Leistung im OpenJDK-Projekt beigesteuert. In diesem Artikel betrachten wir genauer,

Business-Impact-Analyse mit nur 5 Slides

Um zukünftige Schadensszenarien begegnen zu können, müssen Unternehmen im Kontext eines Notfall- bzw. Risikomanagements eine Erhebung ihrer kritischen IT-Systeme durchführen, insbesondere im Rahmen von IT-Architektur-Reviews, Assessments, Audits oder weil die Compliance dies erfordert. In der Praxis ist eine solche Betrachtung viel zu umfänglich. Eine Business-Impact-Analyse kann jedoch mit vereinfachtem Umgang auf fünf Schaubilder reduziert werden. 

Loggen mit Struktur

Log-Server bieten weit mehr als eine Volltextsuche über textuelle Log-Meldungen an. Sie sind komplette Datenbanksysteme mit komplexen Auswertemöglichkeiten. Wenn Log-Meldungen passend zu den Datenbankfähigkeiten erstellt werden, ergeben sich neue Möglichkeiten im Umgang mit Log-Daten. Java-Log-Bibliotheken zum effizienten Schreiben von Log-Meldungen gibt es seit über 20 Jahren. Ursprünglich dienten sie als Hilfe beim Debuggen während der

Boilerplate-Code minimieren mit Lombok

Projekt Lombok versteckt auf elegante Weise sogenannten Boilerplate-Code. Getter, Setter und all das, was Entwickler im Leben ungefähr 2 Millionen Mal per IDE generieren – all das soll mit Lombok wegfallen. Ist die Einstiegshürde erst einmal überwunden, funktioniert das wirklich. Wer erinnert sich eigentlich noch an die vielen Java-Enterprise-Beans der Version 1 oder 2, die

Java-EE vs. Spring für Microservices

Hat Jakarta-EE (ehem. Java-EE) immer noch den Ruf schwergewichtig zu sein und hat damit geringe Chancen für eine Microservice-Architektur in Betracht gezogen zu werden? Ist das Spring-Framework die bessere Antwort auf die Frage mit welcher Java-Technologie wir unsere Services bauen? Einmal mehr stehen sich die ewigen Duellanten Jakarta-EE und Spring gegenüber, dieses Mal jedoch mit

Keycloak individuell erweitern

Die Identity- und Access-Management-Lösung Keycloak erfreut sich in den letzten Jahren weiter Verbreitung. Trotz vieler Funktionen sind in der Praxis häufig individuelle Anpassungen erforderlich. Wie kann man solche Erweiterung vornehmen – von der Bereitstellung eines eigenen Moduls, über die Registrierung eines Providers bis hin zu Aspekten wie Logging und Konfiguration? Keycloak ist eine Open-Source Identity-

Quarkus – die Zukunft von Java?

Wenn es um Entwicklungszykluszeiten, Startzeiten von Anwendungen, Größe der Deployments und Kompatibilität in oder mit Containerumgebungen geht, scheinen andere Sprachen wie JavaScript, Python oder Go gerade Java den Rang abzulaufen. Mit Quarkus soll sich das jetzt ändern: Native Anwendungen mit Java, Performance vergleichbar mit C, Startzeiten unter einer Sekunde und dazu alle bereits bekannten Vorteilen