© Excellent backgrounds/Shutterstock.com
Java Magazin
Große Datenmengen in der Businessschicht verarbeiten

Daten jonglieren


Daten in der Datenbank, Logik in der Businessschicht: Das Konzept klingt einfach, ist jedoch in der Praxis nicht immer einfach umzusetzen. Sowohl Datenbank als auch der Applikationsserver unterliegen Beschränkungen, und für einige Anwendungsfälle ist es bequemer, diese im eigentlich falschen System umzusetzen. Das ist nicht der Weisheit letzter Schluss, und mit etwas Know-how lässt sich effizient in der Applikation jonglieren.

Wie haben es Datenbanken geschafft, den wichtigen Businesscode aus der Anwendung in ihre proprietäre Umgebung zu ziehen? Datenbanken bieten spezielle Sprachen für die Verarbeitung von Daten an, z. B. PL/SQL oder T-SQL. Diese versprechen dem Benutzer einen effizienten Zugriff auf die Datenbank und einen erweiterten Satz an Features, der über SQL nur schwer zu erreichen ist. Für erfahrene Java-Entwickler sind diese Sprachen oft ein Rückschritt. Ihnen fehlen die gewohnte Testbarkeit und der gewohnte Sprachumfang, und alle Datenbanksprachen bringen ihre zusätzlichen Eigentümlichkeiten mit.

Ein weiteres Problem ist die Überlastung der Datenbankserver. Die Datenbanken werden von erfahrenen Datenbankadministratoren überwacht, und die Datenbank stellt viele Auswertungen zur Performanceanalyse zur Verfügung. Eine Abteilung im Unternehmen beschäftigt sich mit der Analyse von länger laufenden SQL-Statements und liefert diese Analysen dem Entwickler zurück. Dieser ist nun im Zugzwang und findet sich zwischen zwei Fronten wieder: Einerseits sind die fachlichen Anforderungen zu erfüllen, andererseits muss er den Anforderungen der Datenbankbetreiber gerecht werden. Im Gegensatz dazu sind Laufzeitprobleme innerhalb einer Applikation dem Java-Entwickler geläufig. Liveanalysen, Logmeldungen und andere Tools helfen dem Entwickler, diese Probleme einfach zu erkennen und zu lösen. Die Performancemeldungen lassen sich einfach bis zur jeweiligen Java-Codezeile identifizieren, im Gegensatz zu ihren PL/SQL- oder T-SQL-Varianten.

Große Datenmengen lassen sich innerhalb der Applikation mit einfachen Bordmitteln verarbeiten, ganz ohne zusätzliche Bibliotheken oder Abhängigkeiten. Die nachfolgenden Methoden eignen sich für mittlere bis größere Datenmengen, die noch nicht zwingend in einem Rechencluster verarbeitet werden müssen.

Der Iterator legt den Grundstein

Der Datenverarbeitungscode im Applikationsserver benötigt ein klein wenig Vorbereitung: eine spezielle Implementierung des Iterator-Interface. Die Implementierung soll dabei über die Ergebnisse einer Qu...

Java Magazin
Große Datenmengen in der Businessschicht verarbeiten

Daten jonglieren

Daten in der Datenbank, Logik in der Businessschicht: Das Konzept klingt einfach, ist jedoch in der Praxis nicht immer einfach umzusetzen. Sowohl Datenbank als auch der Applikationsserver unterliegen Beschränkungen, und für einige Anwendungsfälle ist es bequemer, diese im eigentlich falschen System umzusetzen. Das ist nicht der Weisheit letzter Schluss, und mit etwas Know-how lässt sich effizient in der Applikation jonglieren.

Markus Seidl


Daten in der Datenbank, Logik in der Businessschicht: Das Konzept klingt einfach, ist jedoch in der Praxis nicht immer einfach umzusetzen. Sowohl Datenbank als auch der Applikationsserver unterliegen Beschränkungen, und für einige Anwendungsfälle ist es bequemer, diese im eigentlich falschen System umzusetzen. Das ist nicht der Weisheit letzter Schluss, und mit etwas Know-how lässt sich effizient in der Applikation jonglieren.

Wie haben es Datenbanken geschafft, den wichtigen Businesscode aus der Anwendung in ihre proprietäre Umgebung zu ziehen? Datenbanken bieten spezielle Sprachen für die Verarbeitung von Daten an, z. B. PL/SQL oder T-SQL. Diese versprechen dem Benutzer einen effizienten Zugriff auf die Datenbank und einen erweiterten Satz an Features, der über SQL nur schwer zu erreichen ist. Für erfahrene Java-Entwickler sind diese Sprachen oft ein Rückschritt. Ihnen fehlen die gewohnte Testbarkeit und der gewohnte Sprachumfang, und alle Datenbanksprachen bringen ihre zusätzlichen Eigentümlichkeiten mit.

Ein weiteres Problem ist die Überlastung der Datenbankserver. Die Datenbanken werden von erfahrenen Datenbankadministratoren überwacht, und die Datenbank stellt viele Auswertungen zur Performanceanalyse zur Verfügung. Eine Abteilung im Unternehmen beschäftigt sich mit der Analyse von länger laufenden SQL-Statements und liefert diese Analysen dem Entwickler zurück. Dieser ist nun im Zugzwang und findet sich zwischen zwei Fronten wieder: Einerseits sind die fachlichen Anforderungen zu erfüllen, andererseits muss er den Anforderungen der Datenbankbetreiber gerecht werden. Im Gegensatz dazu sind Laufzeitprobleme innerhalb einer Applikation dem Java-Entwickler geläufig. Liveanalysen, Logmeldungen und andere Tools helfen dem Entwickler, diese Probleme einfach zu erkennen und zu lösen. Die Performancemeldungen lassen sich einfach bis zur jeweiligen Java-Codezeile identifizieren, im Gegensatz zu ihren PL/SQL- oder T-SQL-Varianten.

Große Datenmengen lassen sich innerhalb der Applikation mit einfachen Bordmitteln verarbeiten, ganz ohne zusätzliche Bibliotheken oder Abhängigkeiten. Die nachfolgenden Methoden eignen sich für mittlere bis größere Datenmengen, die noch nicht zwingend in einem Rechencluster verarbeitet werden müssen.

Der Iterator legt den Grundstein

Der Datenverarbeitungscode im Applikationsserver benötigt ein klein wenig Vorbereitung: eine spezielle Implementierung des Iterator-Interface. Die Implementierung soll dabei über die Ergebnisse einer Qu...

Angebote für Teams

Für Firmen haben wir individuelle Teamlizenzen. Wir erstellen Ihnen gerne ein passendes Angebot.

Das Library-Modell:
IP-Zugang

Das Company-Modell:
Domain-Zugang