Was ist der Unterschied zwischen RDD, DataFrame und Dataset in Apache Spark?

Apache Spark wurde entwickelt, um eine höhere Leistung im Hadoop-Ökosystem erreichen zu können. Im Vergleich zu Hadoop soll Spark dank In-Memory-Berechnungen und weiterer Optimierungen bei der Datenverarbeitung wesentlich schneller sein.

In diesem Blog will ich erklären, welche Datenstrukturen Spark mitbringt und wie sich diese voneinander unterscheiden. In Apache Spark verwendet man drei Arten von Datenstrukturen: RDD, DataFrames und Dataset.

Continue reading
Posted in Java Runtimes - VM, Appserver & Cloud | Tagged , , , | Leave a comment

GraphQL als Alternative zu REST

Möchten verschiedene Software-Applikationen miteinander kommunizieren, so braucht es eine Programmierschnittstelle (API). Die API wird hierfür häufig mit REST gebaut, ohne sich über Alternativen zu erkundigen. GraphQL kann dir eine Alternative bieten und diese möchte ich folgend mit dir anschauen.

Continue reading
Posted in Web as a Platform | Tagged , | Comments Off on GraphQL als Alternative zu REST

Möglichkeiten, eine Spring-Anwendung auf der Azure Cloud zu betreiben

Auf Azure gibt es unzählige Möglichkeiten, eine Java Anwendung zu betreiben. In diesem Artikel möchte ich anhand eines Beispiels vier verschiedene Methoden zeigen, wie man eine Spring Boot Applikation auf Microsoft Azure deployen kann.

Continue reading
Posted in Java Runtimes - VM, Appserver & Cloud | Tagged , , | Leave a comment

How to run a containerized Java application in the cloud on Microsoft Azure

My intention for this blog post was to see how fast could I, with basically zero practical cloud experience, deploy a Java application in just that. For this purpose I decided to go for the Azure Cloud Services. Additionally, I made up my mind to also containerize my Java application making use of Docker. This promises me an easier deployment by including all the binaries and libraries needed.

This post is not meant for any Docker/Microsoft Azure e­xpert. But for people like me, who already wrote some Java code and may have peeked a little bit into the Docker topic. Who have never touched “the cloud”, but are interested to see if this is possible without that much background or even if it can be done without spending any money in the first place. To see how you can achieve this in just a few hours of work…

Continue reading
Posted in Java Runtimes - VM, Appserver & Cloud | Tagged , , , | 1 Comment

Microsoft SQL 2019: Java Unterstützung und Open Source Java-Spracherweiterung

Vor Version 2019 unterstützte Microsoft SQL Server R, Python und .Net  als Spracherweiterung.  Mit der neuen Version SQL Server 2019 wurde auch Java integriert. Das bedeutet, dass man beim Kauf eines Microsoft SQL Servers den Java-Support dazu erhält.

Im April 2020 wurde bekannt gegeben, dass die Java-Spracherweiterung für SQL Server 2019 als Open Source zur Verfügung gestellt wird. Die Spracherweiterung dient zur Ausführung von externem Code im Rahmen von SQL-Abfragen. Java-Anwendungsentwicklungsteams, die SQL Server als Backend-Speicher nutzen, können jetzt sogar Java-Code in Stored Procedures einbetten, wodurch Geschäftslogik für eine bessere Leistung in die Datenbank verlagert werden kann.

Insbesondere verwendet die Erweiterung das „Extensibility Framework API“ für SQL Server, das öffentlich dokumentiert ist. Diese neue Architektur gibt Kunden die Freiheit, ihre eigene Runtime mitzubringen und Programme unter Verwendung dieser Runtime in SQL Server auszuführen und gleichzeitig die vorhandenen Sicherheitsmechanismen zu nutzen, die die Erweiterungsarchitektur des SQL Servers bietet.

Die Wahl der verwendenden JRE bietet die Flexibilität, zwischen verschiedenen Java-Distributionen zu wählen. Wenn neuere Versionen veröffentlicht werden, erleichtert diese Architektur die Aktualisierung der Java-Laufzeitumgebung.

Außerdem bedeutet die fortlaufende Partnerschaft zwischen Microsoft und Azul, dass die „Distribution Zulu for Azure – Enterprise von Java für alle SQL Server-Kunden direkt kostenlos zur Verfügung steht. Dies stellt sicher, dass Kunden eine vollständig unterstützte Distribution nutzen können, ohne sich Sorgen machen zu müssen, dass eine bestimmte Laufzeitumgebung aus dem Support herausfällt.

Posted in Java and Quality, Uncategorized | Tagged , , | 1 Comment

HTTP/2 Server Push

Welcome to the last blog post of the HTTP blog post series, namely Server Push!

The HTTP client API which came with JDK 11 supports HTTP/2 as a default but also HTTP/1.1. An interesting feature of HTTP/2 is the server push capability. This means that the Web server is allowed to push information to the client before the client requests it. This all can happen if the URLs are provided over the same host name and protocol.

In other words, while in HTTP/1.1 the browser triggers a request to get an HTML page and has to send one request for each referenced resource, in HTTP/2 there is no need for an explicit request from the browser for the referenced resources of an HTML page.

In order to have a better understanding of this concept I will show you an example.

Continue reading
Posted in Java Basics | Tagged , , , | Leave a comment

HTTP Client WebSocket Chat Application using Spring Boot

Have you ever thought about what the logic behind a chat application is? How could it be written and how does it work? If yes, here is the right place to look for an answer. It is called WebSocket! But what is this?

What is WebSocket?

WebSocket is a communication protocol exactly like HTTP providing a full duplex communication channel between server and client. The principle is that once a WebSocket connection between a server and a client exists, they can communicate and exchange information until one of them (the server or the client) disconnects. If there is the need for a communication and information exchange at high frequency and low latency, WebSocket should be preferred over HTTP. The WebSocket process is the following:

Continue reading
Posted in Java Basics | Tagged , , | Leave a comment