© Excellent backgrounds/Shutterstock.com
Java Magazin
Projektionen in modernen Enterprise-Anwendungen

Von Atlanta bis Zürich

Durch Projektionen lassen sich passgenau die Informationen bereitstellen, die in einer Enterprise-Anwendung benötigt werden. Das Flugplanungssystem einer Fluggesellschaft etwa ist eine typische Enterprise-Anwendung. So benötigen Mitarbeiter einer Fluggesellschaft, abhängig vom Anwendungsfall, ganz unterschiedliche Informationen, seien es detaillierte Angaben über eine Flugverbindung oder die zu einer Flugverbindung gehörenden Flüge. Wie können wir diese unterschiedlichen Projektionen bereitstellen? Im Folgenden zeigen wir, welche methodischen und technischen Probleme das aufwirft und wie sie sich lösen lassen.

Michael Schäfer, Achim Müller


Enterprise-Anwendungen sind Unternehmensanwendungen, die die Mitarbeiter einer Organisation bei der Ausführung ihrer täglichen Aufgaben unterstützen. Mit ihnen werden die Geschäftsprozesse in den Unternehmen optimiert. Die Anforderungen an Unternehmensanwendungen, insbesondere an die Usability, werden immer höher. Daher verwenden moderne Unternehmensanwendungen JavaScript-MVC-Frameworks wie AngularJS, Backbone.js, oder CompontentJS [1] in Kombination mit HTML und CSS. Wir sprechen in diesem Fall von einer Rich-Client-Architektur [2]. Der Rich-Client besitzt im Gegensatz zum Thin-Client Teile der Präsentationslogik und Ressourcen. So kann er autonom Oberflächenelemente erzeugen und Dialogabläufe steuern. Die Usability der Anwendung erhöht sich entscheidend. Und der Server wird dann zu einem schlanken, einem Thin-Server, der im Wesentlichen für die Bereitstellung von Ressourcen verantwortlich ist. Er stellt die Ressourcen über einen CRUD-Service [3] bereit, der über ein REST-API angesprochen wird. Bei der Ausführung des REST-API beschränken wir uns auf die REST-Prinzipien nach dem Maturity Model – Level 2 von Richardson [4]. Das heißt, Hypermedia kommt nicht zum Einsatz sondern nur URIs, die über HTTP aufgerufen werden. In dem beschriebenen Anwendungskontext bringt Hypermedia für Unternehmensanwendungen keinen entscheidenden Mehrwert. Der Aufwand wäre nicht gerechtfertigt. Das haben Arbeiten wie [5] und die Praxis gezeigt.

Starten wir das Gedankenexperiment. Eine Fluggesellschaft will wissen, welche Ziele sie von München aus anfliegt. Mit einem URI-Aufruf auf einem CRUD-Service ließen sich alle Flugverbindungen vom Server auf den Client übertragen. Schränken wir die Sicht dabei nicht ein, erhalten wir alle Informationen der Flugverbindungen einschließlich der bereits ausgeführten und geplanten Flüge. Im schlimmsten Fall kommen noch weitere mit der Flugverbindung verlinkte Ressourcen wie Personal, Besatzung oder Flugzeuge hinzu. Das wäre ein sehr einfaches REST-API, allerdings nicht sehr effizient. Der Anwender würde lange auf den Bildschirm starren, bis alle Ressourcen geladen sind. Keine gute Idee! Wie lassen sich also nur die Daten einer Ressource vom Server laden und übertragen, die auch wirklich benötigt werden? Wir brauchen eine definierte Sicht auf die Ressourcen auf dem Server. Die Lösung heißt: Projektionen.

Projektion in RESTEine Projektion stellt eine andere Sicht auf eine bestehende Ressource dar. Sie enthält nur einen Teil der bestehenden Infor...

Java Magazin
Projektionen in modernen Enterprise-Anwendungen

Von Atlanta bis Zürich

Durch Projektionen lassen sich passgenau die Informationen bereitstellen, die in einer Enterprise-Anwendung benötigt werden. Das Flugplanungssystem einer Fluggesellschaft etwa ist eine typische Enterprise-Anwendung. So benötigen Mitarbeiter einer Fluggesellschaft, abhängig vom Anwendungsfall, ganz unterschiedliche Informationen, seien es detaillierte Angaben über eine Flugverbindung oder die zu einer Flugverbindung gehörenden Flüge. Wie können wir diese unterschiedlichen Projektionen bereitstellen? Im Folgenden zeigen wir, welche methodischen und technischen Probleme das aufwirft und wie sie sich lösen lassen.

Michael Schäfer, Achim Müller


Enterprise-Anwendungen sind Unternehmensanwendungen, die die Mitarbeiter einer Organisation bei der Ausführung ihrer täglichen Aufgaben unterstützen. Mit ihnen werden die Geschäftsprozesse in den Unternehmen optimiert. Die Anforderungen an Unternehmensanwendungen, insbesondere an die Usability, werden immer höher. Daher verwenden moderne Unternehmensanwendungen JavaScript-MVC-Frameworks wie AngularJS, Backbone.js, oder CompontentJS [1] in Kombination mit HTML und CSS. Wir sprechen in diesem Fall von einer Rich-Client-Architektur [2]. Der Rich-Client besitzt im Gegensatz zum Thin-Client Teile der Präsentationslogik und Ressourcen. So kann er autonom Oberflächenelemente erzeugen und Dialogabläufe steuern. Die Usability der Anwendung erhöht sich entscheidend. Und der Server wird dann zu einem schlanken, einem Thin-Server, der im Wesentlichen für die Bereitstellung von Ressourcen verantwortlich ist. Er stellt die Ressourcen über einen CRUD-Service [3] bereit, der über ein REST-API angesprochen wird. Bei der Ausführung des REST-API beschränken wir uns auf die REST-Prinzipien nach dem Maturity Model – Level 2 von Richardson [4]. Das heißt, Hypermedia kommt nicht zum Einsatz sondern nur URIs, die über HTTP aufgerufen werden. In dem beschriebenen Anwendungskontext bringt Hypermedia für Unternehmensanwendungen keinen entscheidenden Mehrwert. Der Aufwand wäre nicht gerechtfertigt. Das haben Arbeiten wie [5] und die Praxis gezeigt.

Starten wir das Gedankenexperiment. Eine Fluggesellschaft will wissen, welche Ziele sie von München aus anfliegt. Mit einem URI-Aufruf auf einem CRUD-Service ließen sich alle Flugverbindungen vom Server auf den Client übertragen. Schränken wir die Sicht dabei nicht ein, erhalten wir alle Informationen der Flugverbindungen einschließlich der bereits ausgeführten und geplanten Flüge. Im schlimmsten Fall kommen noch weitere mit der Flugverbindung verlinkte Ressourcen wie Personal, Besatzung oder Flugzeuge hinzu. Das wäre ein sehr einfaches REST-API, allerdings nicht sehr effizient. Der Anwender würde lange auf den Bildschirm starren, bis alle Ressourcen geladen sind. Keine gute Idee! Wie lassen sich also nur die Daten einer Ressource vom Server laden und übertragen, die auch wirklich benötigt werden? Wir brauchen eine definierte Sicht auf die Ressourcen auf dem Server. Die Lösung heißt: Projektionen.

Projektion in RESTEine Projektion stellt eine andere Sicht auf eine bestehende Ressource dar. Sie enthält nur einen Teil der bestehenden Infor...

Neugierig geworden?


    
Loading...

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