Publikationen

AsyncAPI: Asynchrone Kommunikation für IoT und Microservices meistern

Inspiriert von Swagger und OpenAPI ermöglicht die Spezifikationssprache AsyncAPI die Beschreibung asynchroner Schnittstellen. (Jetzt lesen)

Stichworte: API, asynchon, Microservices, EDA, IOT

Senkrechtstarter - Erste Schritte mit Quarkus

Quarkus hat die Herzen vieler Entwickler:innen im Sturm erobert. Das liegt unter anderem daran, dass hier Produktivität und Ease of Development großgeschrieben werden. Mit dem Framework zu arbeiten, macht schlichtweg eine Menge Spaß. Zudem gelingt der Einstieg in der Regel recht schnell, da überwiegend bekannte APIs und Technologien zum Einsatz kommen. Dieser Artikel begleitet auf den ersten Schritten mit Quarkus.

Stichworte: Quarkus, Java, Zukunftspfad für Java EE-Anwendungen

Ausgabe 6.22

Einführung in das Design von HTTP-APIs

Die Integration von Softwaresystemen stellt seit vielen Jahren eine wiederkehrende Herausforderung für Entwickler dar. Lediglich die technologischen Ansätze ändern sich. Aktuell gelten HTTP-basierte Schnittstellen als ein beliebtes Mittel. Für den Austausch von Daten kommt dabei zumeist das JSON-Format zum Einsatz. Im Sprachgebrauch haben sich die Bezeichnungen Web-API, HTTP-API oder schlicht API eingebürgert, auch wenn letzterer Begriff natürlich eigentlich viel allgemeingültiger ist. Werden zusätzlich die Empfehlungen des REST-Ansatzes eingehalten (und nur dann), handelt es sich um eine REST-API. Solche HTTP-basierten APIs lassen sich mit gängigen Programmiersprachen, modernen Frameworks und ausreichend Entwicklungserfahrung in verhältnismäßig kurzer Zeit implementieren. Und daraus folgt nicht selten der Trugschluss, dass die Schnittstelle daher ziemlich schnell fertig sein müsste. Tatsächlich ist es dagegen aber äußerst empfehlenswert, sich deutlich mehr Zeit zu nehmen und zunächst einige konzeptionelle Gedanken darüber zu machen, wie genau die API gestaltet werden soll. (Jetzt lesen)

Stichworte: API, HTTP, Design

Spezifikation asynchroner APIs mit AsyncAPI

Bereits seit langer Zeit beschäftigen sich Software-Entwickler immer wieder mit der Frage, wie geeignete Schnittstellen realisiert werden können, um bestehende oder neue Systeme miteinander zu integrieren. Über die Jahre sind dabei die unterschiedlichsten Technologien und Trends zum Einsatz gekommen. In der jüngsten Vergangenheit haben sich so genannte APIs als eine Lösung etabliert, die von vielen Entwicklungsteams favorisiert wird.
Ein wichtiger Bestandteil der API-Entwicklung ist die Erstellung einer API-Spezifikation. Diese dient als technische Beschreibung der Schnittstelle und somit an erster Stelle als Dokumentation für Entwickler, sowohl beim API-Betreiber als auch bei jenen Teams oder Unternehmen, die Clients für eine jeweilige API implementieren möchten. Neben dem reinen Dokumentationszweck kann eine API-Spezifikation aber auch für automatisierte Test eingesetzt werden, etwa um die Kompatibilität zwischen mehreren Kommunikationspartner jederzeit zu gewährleisten
Natürlich ist es sinnvoll, für solche API-Spezifikationen ein einheitliches, standardisiertes Format zu etablieren. Für synchrone, HTTP-basierte APIs hat sich hierzu OpenAPI [1] durchgesetzt. Diese ursprünglich aus Swagger hervorgegangene Beschreibungssprache wird verbreitet zur Spezifikation dieser Gattung von APIs eingesetzt und ist den allermeisten API-Entwicklern inzwischen gut bekannt. Für die Spezifikation asynchroner APIs gab es jedoch lange Zeit keine äquivalente Unterstützung. Inzwischen steht aber mit AsyncAPI [2] auch hierzu eine Lösung bereit.

Stichworte: APIs, API-Spezifikation, Event-Driven Architectures, Asynchrone Kommunikation

Ausgabe 10.21

Nützliche Public APIs im Überblick

Eine kleine Rundreise

Bei Public APIs handelt es sich um (zumeist HTTP-basierte) Schnittstellen, die öffentlich zur Verfügung stehen und von jedermann genutzt werden können, um die hierdurch zugänglichen Daten oder Funktionen in eigene Anwendungen zu integrieren. Für solche Public APIs hat sich inzwischen ein gewaltiger Markt entwickelt. Ein umfassender Überblick ist kaum möglich, es bieten sich ausgesprochen vielfältige Möglichkeiten. Software-Entwickler finden hier quasi einen Bausteinkasten vor, der fertige Komponenten für alle nur denkbaren Anwendungsfälle bietet. Der vorliegende Artikel stellt einige interessante Public APIs vor und gibt Anregungen, wofür diese in der Praxis eingesetzt werden könnten. (Jetzt lesen)

Stichworte: Public API, HTTP, Software-Entwicklung

Nebenbuhler

Erste Schritte mit Quarkus und MicroProfile

Quarkus hat aus unterschiedlichen Gründen große Aufmerksamkeit auf sich gezogen. Es verbindet technologische Innovation und spannende Features mit hoher Produktivität für Entwickler. Gleichzeitig bietet es weitreichende Kompatibilität mit gängigen Lösungen, die Entwicklern seit Langem vertraut sind. Insbesondere bietet Quarkus die Möglichkeit, zeitgemäße Anwendungen für den Betrieb in der Cloud auf Basis von JAX-RS, CDI und Hibernate zu entwickeln, ergänzt um die Features des MicroProfile. Somit eröffnet es für Unternehmen mit Java-EE-Historie einen möglichen Pfad in die Zukunft. Wächst hier ein ernstzunehmender Konkurrent für Spring Boot heran?

Stichworte: Quarkus, MicroProfile, GraalVM

Ausgabe 08.20

Was lange währt...

Javas neuer HTTP Client

Aktuelle Trends der Software-Entwicklung, wie Microservices oder Cloud, führen dazu dass immer häufiger verteilte Systeme entstehen. Diese erfordern Kommunikation, und HTTP zählt hier zu den am häufigsten eingesetzten Protokollen. Somit ist es enorm wichtig, dass eine so populäre Programmiersprache wie Java eine zeitgemäße Unterstützung für den Versand von HTTP-Requests mitbringt. Überraschenderweise war dies sehr lange Zeit nicht der Fall.

Stichworte: Java SE, HTTP, APIs

Ausgabe 05.20

Startschuss für Jakarta EE

Ein erster Schritt in Richtung Zukunft für Enterprise Java

Nach einer kleinen Ewigkeit ist es nun endlich soweit: Das lange erwartete erste Release von Jakarta EE wird öffentlich vorgestellt. Nun darf die Community auf eine rasche Weiterentwicklung der Plattform hoffen. Thilo Frotscher fasst in diesem Artikel die wichtigsten Informationen zum ersten Release von Java EE unter dem Schirm der Eclipse Foundation zusammen. (Jetzt lesen)

Stichworte: Jakarta EE, MicroProfile, Java EE

September 2019

Unterschätzt

API-Entwicklung mit JAX-RS 2.1 & Co

Das aktuelle Release von JAX-RS bringt einige interessante Neuerungen für API-Entwickler, wie etwa Unterstützung für HTTP PATCH, Server-sent Events oder die neue reaktive Client-API. In Kombination mit JSON-B geht die Implementierung von APIs damit noch leichter von der Hand.

Stichworte: API, JSON, JAX-RS, JSON-B, Java EE 8

Ausgabe 5.19

Eclipse MicroProfile

Aktueller Stand und Blick in die Zukunft

Die bislang unter „Java EE“ bekannte Plattform ist mitten im Umbruch. Nach der Entscheidung von Oracle, die alleinige Kontrolle aufzugeben und die Plattform an die Eclipse Foundation zu übertragen, warten Entwickler nun gespannt auf ein erstes Release unter dem neuen Namen „Jakarta EE“. Während der Umfang dieser initialen Version identisch mit Java EE 8 sein soll, arbeitet das Eclipse-MicroProfile-Projekt in rasantem Tempo an potenziellen neuen Features, die schon bald in die Plattform einfließen könnten. (Jetzt lesen)

Stichworte: Jakarta EE, MicroProfile

Ausgabe 01/2019

Mit vollen Segeln voraus

MicroProfile als Ideenschmiede für Jakarta EE

Mit Java EE lassen sich problemlos Microservices entwickeln und in modernen Umgebungen betreiben. Dennoch fehlt der Plattform eine Reihe von Features, die andere Frameworks wie etwa Spring Boot schon lange mitbringen. Sie müssen entweder selbst entwickelt oder durch die Einbindung entsprechender Bibliotheken nachgerüstet werden. Während der Übergabeprozess von Java EE an die Eclipse Foundation auf die Zielgerade einbiegt, arbeitet das Eclipse-MicroProfile-Projekt in rasanter Geschwindigkeit an Vorschlägen für neue APIs, die Jakarta EE künftig wieder auf Augenhöhe mit seiner Konkurrenz bringen könnten. (Leseprobe)

Stichworte: Jakarta EE, MicroProfile

Ausgabe 9.18

Zu neuen Ufern

Neue Features in Java EE 8 und Ausblick auf Jakarta EE

Die bislang unter dem Namen „Java EE“ bekannte Entwicklungsplattform ist wieder im Aufwind. Nach einer längeren Phase der Ungewissheit, während der sogar das Ende der Plattform befürchtet wurde, erschien im September endlich das neue Release Java EE 8. Die ersten kompatiblen Application Server stehen so langsam in den Startlöchern – höchste Zeit also für einen detaillierten Blick auf die Neuerungen. Ebenfalls im Herbst gab Oracle bekannt, die alleinige Kontrolle über Java EE aufzugeben und an die Eclipse Foundation zu übertragen. Ein Schritt, der allseits für große Zuversicht sorgt, der aber auch viele Änderungen mit sich bringt, unter anderem eine Namensänderung.

Stichworte: Java EE, Jakarta EE, MicroProfile

Ausgabe 1-2018

Das MicroProfile als Innovationsmotor der Java Enterprise-Plattform

Eine Betrachtung des Übergangs von Java EE zu EE4J

An das Jahr 2016 werden sich Anhänger der Java EE-Plattform nur ungern zurück erinnern. Damals war die Entwicklung von Java EE 8 ins Stocken geraten, da Oracle seine Arbeiten am neuen Release praktisch eingestellt hatte. Gleichzeitig blieben Nachfragen über die Gründe unbeantwortet und Oracle ließ die Community über mehrere Monate im Unklaren über seine Zukunftspläne für die Plattform. Einige Beobachter befürchteten bereits, Oracle hätte das Interesse an Java EE komplett verloren und würde die Weiterentwicklung einfach einstellen. Dies hätte sicherlich das Ende der Plattform bedeutet – ein Schreckensszenario für die zahlreichen Unternehmen, die seit vielen Jahren in Java EE investieren. Jetzt lesen

Stichworte: Java EE, EE4J, MicroProfile

Ausgabe 02/2018

Eigentlich ganz einfach

Fallstricke beim Design von Web-APIs

Web-APIs erfreuen sich großer Beliebtheit, bieten sie doch eine scheinbar perfekte Lösung zur Systemintegration. Jedoch gibt es auch einige Fallstricke, die unbedingt beachtet werden sollten. So führen Web-APIs zu einer recht engen Kopplung. Deshalb wird unter anderem eine Strategie für den Umgang mit vorübergehend nicht verfügbaren Kommunikationspartnern benötigt. Weitere Aspekte sind die fehlende Zuverlässigkeit des Netzwerks oder auch die Tatsache, dass SSL in manchen Produktivumgebungen keine ausreichende Sicherheit bietet.

Stichworte: API, Kopplung, Sicherheit, Fehlerfälle, Wiederholbarkeit, Kommunikationsmuster, Wartbarkeit

Ausgabe 04/2017

Der glückliche Entwickler

Beobachtungen aus über fünfzehn Jahren Projektarbeit

Nicht wenige Software-Entwickler sagen von sich, sie hätten ihren Traumberuf gewählt. Viele haben ihr Hobby zum Beruf gemacht. Da sollte man annehmen, dass die meisten auch große Freude an ihrer Arbeit haben. Doch ist das ein Trugschluss?

Stichworte: Arbeitswelt, Karriere

Ausgabe 06/2016

Was lange währt...

Ein erster Blick auf MVC (JSR-371)

Mit Java EE 8 erhält die Plattform ein neues Web-Framework. Im Unterschied zu JSF wird dieses nicht komponenten-, sondern actionbasiert sein. Eine Entscheidung, die durchaus kontrovers diskutiert wird. Während manche Entwickler eine jahrelange Hoffnung endlich erfüllt sehen, halten andere diesen Schritt für unnötig. Dieser Artikel bietet einen Einstieg in die Thematik, skizziert Gründe für die Entscheidung und wirft einen ersten Blick auf die neue Spezifikation, die stark auf JAX-RS beruht.

Stichworte: MVC, JAX-RS, CDI, Java EE 8, Webentwicklung

Ausgabe 06/2015

Java EE 7 - Ein Ausblick

von Lars Röwekamp, Arne Limburg, Thilo Frotscher, Bernhard Löwenstein und Jens Schumann

Hätte man noch vor wenigen Monaten einen Ausblick auf Java EE 7 gegeben, wären Buzz Words wie Multi-Tenancy und Cloud-Support die Aufhänger des Schwerpunkts gewesen. Mittlerweile ist die JSR 342 Expert Group allerdings ein wenig zurückgerudert und hat sich deutlich realistischere Ziele gesteckt. Welche, verrät Ihnen diesem Buch. Lars Röwekamp und Arne Limburg stellen die wichtigsten Ziele der neuen Spezifikation in ihrem einleitenden Beitrag vor. Einen ersten Blick auf die wichtigsten Neuerungen in JAX-RS 2.0 sowie in JMS 2.0 wirft Thilo Frotscher. Auch, was Java EE 7 weg lässt, bleibt nicht außen vor: Bernhard Löwenstein kommentiert die Verschiebung der Cloud-Features für Java EE 7. Und nach all der Zukunftsmusik liefert der shortcut noch ein wichtiges gegenwärtiges Thema, an dem Sie sofort losarbeiten können: Jens Schumann zeigt, wie ein Wechsel zum aktuellen Java EE 6 Stack erfolgen kann und warum eine Migration sich lohnen kann.

Stichworte: Java EE 7

erschienen 04/2013

Rund gemacht

Ein erster Blick auf die wichtigsten Neuerungen in JAX-RS 2.0

In Java EE 6 war mit JAX-RS 1.1 erstmals standardisierte Unterstützung für REST-basierte Anwendungen enthalten. Während diese erste Version im Allgemeinen sehr gut angenommen wurde, zeigte sich jedoch schon bald, dass das eine oder andere noch fehlte, um JAX-RS wirklich rund zu machen. Insbesondere existierte bislang keine standardisierte Client-API. Dies und vieles andere mehr soll in JAX-RS 2.0 nun nachgereicht werden.

Stichworte: JAX-RS 2.0, Java EE 7, REST

Ausgabe 02/2013

Runderneuert

JMS 2.0 bietet Entwicklern die lang erwartete Modernisierung

Vor über zehn Jahren, anno 2002, erschien J2EE 1.4. Zu den Neuerungen zählten damals unter anderem JSP 2.0 inklusive Expression Language, EJB 2.1 oder Support für XML Schema. Im gleichen Jahr wurde der Euro wurde als Bargeld in Umlauf gebracht, Rudi Völler war Bundestrainer und.. Das alles scheint eine halbe Ewigkeit her zu sein. Ist es auch. Aus dem gleichem Jahr stammt die noch immer aktuelle API für JMS 1.1.

Stichworte: JMS 2.0, Java EE 7, Messaging

Ausgabe 02/2013

Abstand halten

Lose gekoppelte Services mit ActiveMQ und Camel

Nachdem im ersten Teil des Artikels die Theorie im Vordergrund stand, geht es dieses Mal um die praktische Umsetzung. Dabei wird ein möglicher Weg skizziert, wie eine typische eng gekoppelte Lösung schrittweise zu einer loser gekoppelten Variante umgebaut werden kann. Ebenfalls wird betrachtet, ob man zu diesem Zweck einen ESB einsetzen sollte.

Stichworte: Services, SOA, Lose Kopplung, WS-* Stack, Messaging, JMS, ActiveMQ, Camel, Routing, Mediation, ESB

Ausgabe 07/2009

Trugschluss

Der Einsatz von Services resultiert in lose gekoppelten Systemen. Oder?

Der service-orientierte Ansatz hat weite Verbreitung gefunden. Zu den am häufigsten genannten Gründen oder Zielen für den Einsatz von Services ist dabei die viel zitierte lose Kopplung von Systemen. Erstaunlicherweise zeigt sich in der Praxis jedoch vielfach, dass selbst fortgeschrittene Entwickler tatsächlich sehr eng gekoppelte Lösungen erstellen. Dieser Artikel beleuchtet die Problematik am Beispiel des Web Service-Technologiestacks.

Stichworte: Services, SOA, Lose Kopplung, WS-* Stack, Messaging, Point-to-Point, JMS


Ausgabe 06/2009

Auslegungssache

Mit Spring-WS tritt eine Lösung von SpringSource gegen die etablierten Web Service-Frameworks an

Wird eine serverseitige Anwendung, die auch Web Service-Schnittstellen erhalten soll, ohnehin auf Basis des Spring Frameworks implementiert, so scheint es nahezuliegen diese Schnittstellen mit Spring-WS zu realisieren. Aber ist dies immer eine gute Wahl? Dieser Artikel stellt Besonderheiten und Einschränkungen der Spring-Erweiterung vor.

Stichworte: Web Service-Frameworks, Spring-WS

Ausgabe 05/2009

Qual der Wahl

Entscheidungshilfe für die Auswahl eines Web Service-Frameworks

Web Services werden heute in einer Vielzahl von Projekten eingesetzt. Die zunehmende Verbreitung der Technologie führte unter anderem auch dazu, dass inzwischen eine ganze Reihe von Frameworks erhältlich ist, welche die Entwicklung von Web Service-Anwendungen vereinfachen sollen. So stehen Entwickler einmal mehr vor der Aufgabe, das richtige Framework auszuwählen.

Stichworte: Web Service-Frameworks, Metro, Apache Axis2, Apache CXF, Spring-WS

Ausgabe 02/2008

Grau ist (fast) alle Theorie

Color Modelling unterstützt die Erstellung von Domänemodellen mit Farben

Nicht alles, was schon ein paar Jahre älter ist, muss deswegen gleich schlecht sein. Gerade in einer Branche, in der nichts so konstant ist wie der stetige Wandel, sollte man sich dies immer mal wieder ins Gedächtnis rufen. Während sich Technologien rasant verändern und verbessern, haben grundlegende Erkenntnisse, Methodiken oder Ansätze in der Regel deutlich länger Bestand. Die Analysetechnik des „Color Modelling“ wurde bereits vor zehn Jahren erstmals vorgestellt, begeistert ihre Anhänger jedoch noch heute.

Stichworte: Color Modelling, Domain-driven Design

Ausgabe 12/2007

Eins, zwei, Zauberei

Eclipse-Plugins für Apache Axis2 1.2 kurz vorgestellt

Das Web Service-Framework Apache Axis2 hat inzwischen bereits Version 1.2 erreicht. Neben verschiedenen Detailverbesserungen und einigen wenigen neuen Features gegenüber Version 1.1 wurden unter anderem auch die beiden Plugins für Eclipse aktualisiert. Sie können insbesondere Einsteigern die Arbeit mit dem Framework erleichtern.

Stichworte: Axis2, Eclipse, Plugins

Ausgabe 02/2007

Webservices: Zuverlässig mit neuen Spezifikationen

In Unternehmensanwendungen essentielle Aspekte wie Sicherheit, Transaktionen und Zuverlässigkeit ließen sich anfangs im Webservice-Umfeld schwer umsetzen, weil Standards fehlten. Mit WS-Policy, WS-Reliable Messaging und WS-Addressing lassen sich einige Fähigkeiten nachrüsten.

Stichworte: WS-Policy, WS-Reliable Messaging, WS-Addressing

Ausgabe 01/2007