Enterprise Tales

Enterprise Tales: Ein Blick auf Web Components

Im Web haben sich komponentenbasierte UI-Frameworks durchgesetzt. Alle heute relevanten Single Page Application Frameworks setzen vollständig oder mindestens zu großen Teilen auf dieses Paradigma. Mit Web Components existiert ein vielversprechender Standard, der die Erstellung Framework-unabhängiger Komponenten ermöglicht und so bereits heute für mehr Wiederverwendbarkeit im Web sorgen kann.

Die Jagd nach Performance: Ist Reactive Programming der richtige Weg?

Reactive Programming verspricht eine höhere Performance von Enterprise-Java-Anwendungen bei geringerem Speicherbedarf. Erreicht wird dieses Versprechen, indem blockierende Aufrufe vermieden werden. Blockierende Aufrufe führen im Betriebssystem immer zu Prozess- und damit zu Kontextwechseln. Solche Kontextwechsel haben einen hohen CPU- und Speicher-Overhead. Dieser Overhead wird durch weniger Kontextwechsel reduziert. Erkauft wird dieser Performancegewinn von Reactive Programming allerdings durch schlechtere Wartbarkeit der Software. Ist die höhere Performance aber diesen Preis wert, und was sind die Alternativen? Dieses Thema wollen wir uns einmal genauer anschauen.

Enterprise Tales: Lost in Transaction – Businesstransaktionen mit Microservices umsetzen

Die Auftrennung des historisch gewachsenen Monolithen in eine Unmenge von Microservices scheint heute Pflicht. Wirklich unabhängig sind die Services am Ende allerdings nur dann, wenn die Trennung konsequent auf allen Ebenen vollzogen wird. Nicht nur den Code, sondern auch die Datenbank gilt es zu trennen. Willkommen in der Wunderwelt der verteilten Transaktionen.

EnterpriseTales: WebAssembly öffnet Tür ins Web

Während die Erstellung interaktiver Webanwendungen vor gar nicht allzu langer Zeit nur über Plug-ins wie Java-Applets, Flash oder Silverlight möglich waren, haben sich durch die stetige Verbesserung der Browser in den letzten Jahren rein JavaScript-basierte Anwendungen durchgesetzt. Dieser Siegeszug ist vornehmlich durch die native Einbettung der Sprache in die Browser zu begründen. Spätestens an den zahlreichen JavaScript-Sprachaufsätzen wie TypeScript oder Flow und Compile-to-JavaScript-Frameworks, beispielsweise GWT oder Vaadin, lässt sich aber unschwer erkennen, dass das alles andere als perfekt ist.

Enterprise Tales: OpenAPI und Enterprise Java

Nachdem wir uns in der Kolumne der Oktober-Ausgabe dem OpenTracing-Standard gewidmet haben, wollen wir uns jetzt die OpenAPI-Spezifikation und deren Integration in das MicroProfile näher anschauen. Wie immer geht es dabei nicht nur darum, welche technischen Möglichkeiten der Standard liefert. Vielmehr wollen wir die Praxistauglichkeit der Spezifikation und die möglichen Anwendungsszenarien kritisch beleuchten und die verschiedenen Alternativen gegeneinander abwägen.

Enterprise Tales: Wie fit ist der Browser mittlerweile?

Webbrowser haben sich lange Zeit nicht gerade mit Ruhm bekleckert. Inkonsistente Implementierungen, schlechtes API-Design und vor allem das Fehlen wichtiger Funktionalitäten haben Entwicklern das Leben erschwert. So waren Webapplikationen ohne die Verwendung clientseitiger Bibliotheken lange völlig undenkbar. Zum Glück hat sich aber in den letzten Jahren nicht nur die JavaScript-, sondern vor allem auch die Browserwelt stark weiterentwickelt. Aktuelle Versionen liefern umfangreiche Toolsets für die Erstellung moderner und leistungsfähiger Webanwendungen. Außerdem stehen aufgrund kurzer Releasezyklen wichtige Updates und Features immer schneller zur Verfügung.

EnterpriseTales: Cloud-native mit Java EE

Durch Zufall lief mir auf der diesjährigen JavaLand-Konferenz in Brühl Sebastian Daschner, seines Zeichens Java Champion und Autor des Buchs „Architecting Modern Java EE Applications“, über den Weg. Sebastian nimmt am Java-Community-Process teil, ist in den JAX-RS-, JSON-P- und Config-Expert-Groups vertreten und entwickelt an diversen Open-Source-Projekten. Für seinen Beitrag in der Java-Community und im Java-Ökosystem wurde er mit den Titeln Java Champion, Oracle Developer Champion und JavaOne 2016 Rockstar ausgezeichnet (https://blog.sebastian-daschner.com).

Enterprise Tales: Aus Raider wird Twix! Sonst ändert sich nix?

Am 26. Februar war es soweit. Das Kind aka Java EE bekommt einen neuen Namen und heißt seitdem Jakarta EE. Notwendig wurde dieser Schritt aufgrund Oracles Veto, die als Trademark geschützte Bezeichnung Java auch nach der Übergabe an die Eclipse Foundation des Java-Enterprise-Standards weiter im Namen führen zu dürfen. Aber ist Jakarta EE einfach nur ein neuer Name, oder geht es nicht doch um deutlich mehr?

Single-Page Applications: Zukunftssicher entwickeln?

Single-Page Applications (SPAs) entwickeln sich zu einem festen Bestandteil der Anwendungslandschaft in Unternehmen. Die hohe Dynamik in der Welt der Web-Frontends erweist sich aber immer wieder als ein großer Unsicherheitsfaktor. Stellt sich doch die Frage: Kann man SPAs überhaupt zukunftssicher gestalten?

Jakarta EE: Aus Raider wird Twix! Sonst ändert sich nix?

Am 26. Februar war es soweit. Das Kind, Java EE, bekommt einen neuen Namen und heißt seitdem Jakarta EE. Notwendig wurde dieser Schritt aufgrund Oracles Veto, die als Trademark geschützte Bezeichnung Java auch nach der Übergabe an die Eclipse Foundation des Java Enterprise Standards weiter im Namen führen zu dürfen. Aber ist Jakarta EE einfach nur ein neuer Name? Oder geht es nicht doch um deutlich mehr?

Funktionale Programmierung in Java: Was wäre, wenn wir alles ganz anders machen würden?

Der Kern von objektorientierter Programmierung ist die Kapselung von Daten und den darauf operierenden Methoden. Das macht Objektorientierung zu einem guten Kandidaten, um Businesslogik zu implementieren, da diese ja in der Regel eine Verknüpfung von Daten und Operationen darstellt. Richtig angewendet, lassen sich sehr gut lesbare und wartungsfreundliche Businessanwendungen mit objektorientierter Programmierung schreiben.

Enterprise Tales: Reactive oder nicht reactive?

Vor einiger Zeit habe ich eine Kolumne zu Reactive Programming in Java 9 und Spring 5 geschrieben und dabei auch kurz betrachtet, was passieren müsste, damit dieses Konzept Einzug in Enterprise Java halten kann. Auf technischer Ebene müsste vor allem die Bindung eines Requests an (nur) einen Thread überwunden werden. Grundsätzlich ist asynchrone Verarbeitung zwar mit Servlet 3.0 möglich, viele Java EE Specs verlassen sich aber noch darauf, dass die Verarbeitung eines Requests auch nur in einem Thread stattfindet. Ist das einmal nicht der Fall, kann es durchaus sein, dass relevanter Kontext fehlt. Soll also das Programmierparadigma der reaktiven Programmierung in den Enterprise-Java-Standard aufgenommen werden, gibt es hier noch einige offene Punkte.

Enterprise Tales: Java EE 8 – ein politisches Release

Wir schreiben den 21. September 2017. Nach langem, sehr langem Warten gibt Oracle endlich die offizielle Verfügbarkeit des aktuellen Major-Releases Nummer 8 des Java Enterprise Standards bekannt. Ursprünglich angetreten als Cloud- und Microservices-Lösung, ist am Ende kaum mehr als ein Maintenance-Release des Vorgängers herausgekommen. Und trotzdem könnte gerade dieses Release ein Wegweiser für die Zukunft sein.

EnterpriseTales: Single-page Applications – Klarheit schaffen

Zugegebenermaßen kann der Einstieg in die Single-Page-Welt verwirrend sein. Noch vor der ersten Zeile Code müssen verschiedene Tools installiert und unzählige Eingaben in der Kommandozeile getätigt werden. Zwar bieten viele Single-Page-Frameworks mittlerweile Werkzeuge (Angular CLI oder Create React App), mit deren Hilfe sich Projekte größtenteils automatisiert erstellen und konfigurieren lassen. Trotzdem bleibt bei Neulingen oft ein fader Beigeschmack: Braucht man das wirklich alles? Früher musste man doch nur jQuery herunterladen …

Wie können APIs sinnvoll weiterentwickelt werden, ohne Abwärtskompatibilität zu vernachlässigen?

Nicht selten ist die Weiterentwicklung von APIs eine so große Herausforderung für Entwickler, dass sie versuchen, ganz darauf zu verzichten und ein einmal veröffentlichtes API möglichst stabil zu halten. Das ist grundsätzlich zunächst keine schlechte Idee. Allerdings führen neue Anforderungen und die damit verbundene Weiterentwicklung der Implementierung schnell dazu, dass API und Businesslogik auseinanderlaufen.

EnterpriseTales: Warum Offline-First-Architekturen die Zukunft gehört

Webanwendungen sind auch nicht mehr das, was sie mal waren. Während früher ein Wegfall der Netzwerk-Connectivity automatisch auch zu einem Ausfall der aufgerufenen Seite führte, werden heute, im Falle eines Falles, die darzustellenden Inhalte aus den Tiefen des Browsers hervorgezaubert und gaukeln so dem Nutzer eine permanente Verfügbarkeit vor. Offline First, so das Zauberwort der Stunde.