Webapplikation auf Basis von Java EE

Service

Vollständige Entwicklung der Java-EE-Plattform: Planen, Implementieren und Testen der Backend-Architektur und Design des Frontends, Suche eines möglichen Webhostings und anschließendes Hochladen der Applikation

Skills und Technologien

Java EE: JSF-Frontend mit XHTML und Designs mit JavaScript und CSS // Zusätzlich Primefaces und OmniFaces als Frontend-Frameworks CDI als Dependency Injection API // EJB für die Business Logic // BeanValidation zur Validierung von Nutzer-Input // JPA zum Datenbank-Mapping // MySQL-Datenbank // Servlet API zum dynamischen Laden von Bildern aus der Datenbank // Glassfish als Java Enterprise Server // Maven für Project- und Build-Management

Beispiel eines aus der Datenbank geladenen Angebots
Ein weiteres Beispiel eines Angebots
Eine Projekt/Wohnhaus Seite aus der Datenbank

BeschreibungDie österreichische EWD-Immobilien-Gruppe benötigte für ihre neuen Projekte in Wien eine offizielle Website, die sie über ein Admin-Panel organisieren konnte.Gefragte Funktionen waren: Eine flüssige Navigation/Übersicht mit allen Wohnungen und Projekten. Diese wurde letztlich als „Browser“ mithilfe von JavaScript und Fassaden- und Etagenplänen implementiert. Ein Filtertool bzw. „Konfigurator“, der anhand von Nutzerparametern alle Wohnungen der gesamten Gruppe filtert und anschließend eine Ergebnisliste ausgibt. Ein passwort-geschützter Adminbereich, in dem Projekte und die darin enthaltenden Wohnungen verwaltet werden konnten (hinzufügen, bearbeiten und löschen von Objekten).

Besonders interessant waren Algorithmen zur Verbesserung der Performance während des Ladens von Datensätzen aus der Datenbank. Hier wurde zum einen das „Entity/Fetch Graphing“ verwendet. Hierbei werden bei der Erschaffung von Java-Repräsentationen von Datenbank-Tabellen nur die Datensätze aus der DB übernommen, die tatsächlich gefordert/benötigt sind. Wenn bspw. bei einem User-Login Passwort und Nutzername mit der Datenbank abgeglichen werden müssen, werden auch nur diese beiden Daten eines Benutzer-Eintrags aus der DB geladen (standardweise würden alle Daten geldaen werden und dann die beiden gewünschten "rausgepickt")
Zum anderen wurde sog. „Second Level Caching“ verwendet, welches bestimmte Datensätze bzw. Tabellen in einer Cache speichert und falls dieselben Daten mehrmals angefragt werden, sie auch aus der Cache bezogen werden (ein zweiter Speicher sozusagen).

Dieses Projekt verdeutlicht die Entwicklung von Business/Web-Applikationen mithilfe der Java Enterprise Edition. Der Aufbau und die verwendeten Technologien sind bei den meisten Anwendungen dieser Art recht ähnlich: JPA zur Datenbank-ORM, CDI und EJB in der Mittelschicht und eine bevorzugte Frontend-Technologie,in unserem Fall JSF. Das JPA ist die Verbindungstelle zwischen Java Code und SQL-Datenbank und macht hierbei Datensätze aus der DB mit Java leicht zugänglich und bearbeitbar. CDI und EJB sind etwas wie die Rechenzentrale der Anwendung, in der die mit JPA gewonnen Daten bearbeitet bzw. verwendet werden und anschließend an den Frontend kommuniziert werden. Bspw. kann hier während des User-Logins geprüft werden, ob das in der Datenbank vorgefundene Passwort eines Nutzers mit dem über die Oberfläche eingegebenen Kennwort übereinstimmt. In JSF werden dann schließlich die aus der Datenbank gewonnen Informationen in einer für den Nutzer verständlichen UI (user interface) präsentiert.

Typischerweise läuft eine JEE (Java Enterprise Edition) Webapplikation auf/in einem Java Server, der notwendige Bibliotheken und APIs bereits zum Teil bereitstellt.

Ein Bild der durch JavaScript dynamischen Fassadenauswahl
Ein Bild des Filtertools, basierend auf EJB