Enterprise Tales

WebAssembly: Die nächsten Schritte

Der WebAssembly-Standard steht in den meisten Browsern zur Verfügung und wird bereits in vielen Webanwendungen verwendet. Die Features und APIs sind aktuell zwar noch vergleichsweise rudimentär, die geplanten Erweiterungen der Spezifikation aber vielversprechend. Zudem gibt es einen Standardisierungsvorschlag, der die Verwendung von WebAssembly außerhalb des Browsers ermöglicht. Zeit für einen Ausblick.

EnterpriseTales: Die Cloud als Allheilmittel

Die Cloud ist nach wie vor eines der großen Hypethemen. Versprechungen werden gemacht und Hoffnungen geschürt. Doch welche davon löst die Cloud ein? Auch wenn der Begriff der Cloud schon länger verwendet wird, ist die Abgrenzung zwischen den verschiedenen Varianten nicht immer eindeutig. Für diese Kolumne unterscheide ich sie in die nachfolgenden Abschnitte.

Kolumne: EnterpriseTales – Die Cloud als Allheilmittel

Die Cloud ist nach wie vor eines der großen Hypethemen. Versprechungen werden gemacht und Hoffnungen geschürt. Doch welche davon löst die Cloud ein? Auch wenn der Begriff der Cloud schon länger verwendet wird, ist die Abgrenzung zwischen den verschiedenen Varianten nicht immer eindeutig. Für diese Kolumne unterscheide ich sie in die nachfolgenden Abschnitte.

EnterpriseTales: Wenn der Client das API spezifiziert

Wie teste ich eigentlich das Zusammenspiel in meiner Microservices-Landschaft? Wie stelle ich sicher, dass jeweils die richtige Version eines Service auf der richtigen Stage deployt ist? Wie behalte ich die Abhängigkeiten meiner Microservices im Blick? Und wie stelle ich bei der Weiterentwicklung meiner APIs sicher, dass alle Clients weiterhin funktionieren? Wie kann ich sicher sein, dass eine alte Version einer Schnittstelle nicht mehr benötigt wird und deshalb entfernt werden kann? Consumer-driven Contracts versprechen eine Lösung für alle diese Fragen, kommen aber mit einer erheblichen Komplexität und haben ihrerseits Grenzen.

EnterpriseTales: Microframeworks to the Rescue

Enterprise Java scheint mit seinem Memory- und Runtime-Overhead in Zeiten von Cloud-native und Serverless nicht wirklich gut für die Zukunft gerüstet zu sein. Erschwerend kommt hinzu, dass viele Enterprise Frameworks mit Annotation Scanning, Aufbau von Proxies und Caches das Start- und Speicherverhalten weiter negativ beeinflussen. Bedeutet dies das Aus für Java in der Wunderwelt der Cloud? Mitnichten. Microframeworks to the Rescue!

EnterpriseTales: Was ein „modernes“ Web-Frontend bedeutet

Der Entscheidungsprozess bei Web-Frontends ist häufig Framework-getrieben und betrachtet die architektonischen Implikationen nur am Rande. So ist es heute schon fast selbstverständlich, dass Webanwendungen als clientseitig gerenderte Single Page Applications (SPA) entwickelt werden. Die allgemeine Definition eines „modernen“ Frontends ist dabei nicht selten unmittelbar an die Auswahl eines konkreten Frameworks gebunden. Die Zeiten der eher klassischen, rein serverseitig getriebenen Ansätze (z. B. JSF) scheinen vorbei zu sein.

EnterpriseTales: Reaktiv bis zur Datenbank

Für Reactive Programming gibt es in Java mittlerweile viele Frameworks. Aber wie greife ich dann auf eine relationale Datenbank zu? Der Java-Standard zum Zugriff auf relationale Datenbanken, JDBC, unterstützt bisher nur blockierende Aufrufe. Welche Möglichkeiten gibt es aber dann, wenn man ganz auf Reactive Programming setzt?

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?