Java

Moderne Programmiersprache mit guter Portierbarkeit und hoher Flexibilität

Bereits 1996 begann die Programmiersprache Java, entwickelt von Sun Microsystems, ihren Triumphzug. Heutzutage ist diese Sprache ein Bestandteil der Java-Technologie, die neben der Sprache auch verschiedene Laufzeitumgebungen festlegt. Mittlerweile hat sich Java in den unterschiedlichsten Einsatzbereichen etabliert, von simplen Client-Anwendungen über komplexe Unternehmenslösungen bis hin zu topaktuellen IoT-Anwendungen (Internet of Things).
Seit 1999 sammelt euris Erfahrungen in der Erstellung verschiedenster Anwendungen mit Java. Dabei wurden mehrere Java Unternehmenslösungen, Webapplikationen, Richclients sowie eigenständige Anwendungen konzipiert.

Java ist eine moderne Programmiersprache mit einer hohen Ausführungsrate, beachtlicher Übertragbarkeit und großer Anpassungsfähigkeit. Aktuell wird sie von der Oracle Gruppe kontinuierlich weiterentwickelt umso mit den aktuellen technischen Fortschritten mithalten zu können.

Vorteile von Java

Neben dem tiefgreifenden Wissen über die eigentliche Programmiersprache Java und den zugehörigen Technologien haben wir bei euris Expertise zu diversen Aspekten rund um das Thema Java.

Im Folgenden präsentieren wir Ihnen unseren Technologie-Stack aus dem unsere Entwickler schöpfen können. Wir beraten Sie gerne und finden zusammen mit Ihnen die optimale Technologieauswahl für Ihre Software.­

Technologie Stack

Java Frameworks – Einheitlichkeit, Übersichtlichkeit und Wartbarkeit

In der Softwareentwicklung versteht man unter einem Framework ein Programmiergerüst, dass den Softwareentwickler bei seiner täglichen Arbeit unterstützt. Es stellt dem Programmierer beispielsweise verschiedene Komponenten oder wiederverwendbare Entwurfsmuster zur Verfügung.

Java bietet eine Reihe von Frameworks, die Entwicklern dabei helfen, robuste und effiziente Anwendungen zu erstellen. Das Spring Framework zum Beispiel sorgt durch seine Flexibilität für eine rasche Entwicklung von Unternehmensanwendungen. Hibernate vereinfacht den Umgang mit Datenbanken, indem es als Vermittler zwischen Java-Objekten und Datenbankmanagement fungiert. Apache Struts und JavaServer Faces (JSF) sind hervorragende Werkzeuge für die Web-Entwicklung, wobei erstere eine Open-Source MVC-Architektur bietet und letztere den Aufbau benutzerfreundlicher Benutzeroberflächen vereinfacht. JUnit unterstützt das automatisierte Testen, während Vaadin ideal für die Entwicklung von Single-Page-Webanwendungen in Java ist.

HTML5 ermöglicht die Entwicklung plattformübergreifender Webanwendungen, die sowohl auf PCs als auch auf mobilen Geräten funktionieren. Es unterstützt Offline-Betrieb von Anwendungen, Zugriff auf lokale Dateien und standortbasierte Dienste. Erweiterte Gestaltungsmöglichkeiten wie 2D- und 3D-Grafiken, Audio- und Videoeinbettung sind auch verfügbar. In Verbindung mit Java, einer leistungsstarken serverseitigen Programmiersprache, können mit HTML5 erstellte Anwendungen komplexere Funktionen und Datenverarbeitungsfähigkeiten  ermöglichen. Zudem ermöglicht die Nutzung von Java zusammen mit Frameworks wie Sencha Ext JS die Verkürzung von Entwicklungszyklen und die Erstellung mobiler Anwendungen mit nativer Funktionalität. Durch die Verwendung von HTML5 und Java können Entwickler die Abhängigkeit von plattformspezifischen Technologien reduzieren und Kosten senken.

Die Java Persistence API (JPA) wird bei uns zur Datenbankkommunikation in Java-Projekten genutzt. Sie erhöht die Übersichtlichkeit, Wartbarkeit und Qualität des Quellcodes, indem sie komplexe Datenzugriffsobjekte überflüssig macht und einen standardisierten Code liefert, der mit allen relationalen Datenbanken kompatibel ist. Hibernate, ein de facto Standard in der Java-Gemeinde, ist unser bevorzugtes Framework.

Im Umfeld von Java und .NET Anwendungen haben wir bei euris in unterschiedlichen Projekten mit vielen gängigen Web- und Anwendungsservern gearbeitet.

Ein Webserver ist die technologische Grundlage für den Datenaustausch mit verschiedenen Clients wie Webbrowsern. Diese Server können sowohl im Internet als auch lokal in Unternehmensnetzwerken implementiert werden. Letzteres ermöglicht die interne Bereitstellung von Dokumenten und anderen Informationen. Die von uns eingesetzten Webserver-Technologien umfassen den Apache Webserver, den IBM http Server (IHS) und den Microsoft Internet Information Server (IIS).

Ein Anwendungsserver hingegen ist ein spezieller Server, der in einem lokalen Netzwerk betrieben wird und Anwendungsprogramme ausführt. Mit seiner Hilfe lassen sich Client-Server-Software-Systeme zentral verwalten und betreiben. Im Einsatz bei uns sind beispielsweise der WebSphere Application Server (WAS), JBoss / WildFly, GlassFish, Tomcat und TomEE.

Eclipse ist eine Entwicklungsumgebung (IDE), die sich besonders gut für Java-Programmierung eignet. Wir verfügen über langjährige Erfahrung mit verschiedenen unterstützenden Werkzeugen oder Plug-Ins für Eclipse und können auch andere Entwicklungswerkzeuge verwenden. Wir passen uns auch gerne an spezifische Technologieanforderungen an, um die Teamarbeit zu verbessern. Unsere verwendeten Werkzeuge beinhalten PMD, CPD, FindBugs für Quellcode-Analyse, JUnit und JaCoCo/EclEmma für Testfallentwicklung und Code-Abdeckung, sowie Eclipse Web Tools Plattform (WTP) und YourKit Java Profiler für die Quellcodeverbesserung.

Java Enterprise Edition (Java EE) ist eine Softwarearchitektur zur Ausführung von in Java geschriebenen Anwendungen, insbesondere Webanwendungen. Es ist eine der größten Plattformen im Middleware-Markt und folgt einem Drei-Schichten-Modell, das Client-, Business- und Persistenzschichten trennt. Dies ermöglicht die Entwicklung von verteilten, mehrschichtigen Businessanwendungen mit hoher Verfügbarkeit und Performance. Trotz eines Rufs als kompliziert und teuer, kann die Java EE Entwicklung durch moderne Methoden und Frameworks effektiv und kostengünstig sein. Alternativen wie das Spring Framework können ebenfalls verwendet werden. Es werden zwei Technologie-Stacks beschrieben, einer mit Java EE und IBM-Software und einer mit Spring Framework und Tomcat Servlet Engine.

Das Spring Framework, nebst dessen klassischem Einsatz, setzt euris nun auch auf eine Vielzahl weiterer Spring-Projekte wie Spring Security, Spring Rest und Spring Boot. Als eine Sammlung von modularen Projekten hilft das Framework die routinemäßigen Entwicklungsarbeiten zu vereinfachen. Prinzipien wie Dependency Injection, aspektorientierte Programmierung und Vorlagenbildung sind fundamental für die Handhabung des Frameworks.

Zusammen mit dem Tomcat Servlet Container wird es zur Steuerung von Transaktionen verwendet. Darüber hinaus kommt Spring Framework, insbesondere in seinen erweiterten Projektvarianten wie Spring Security, zum Schutz von Webapplikationen und zur Veröffentlichung von Diensten über Bundle-Grenzen hinaus zum Einsatz. Das Framework unterstützt nicht nur bei der Protokollierung von Methodenaufrufen, sondern erleichtert und verbessert auch bestimmte Java Enterprise-Aufgaben und Themen. Mit diesen umfassenden Funktionen ermöglicht Euris eine effiziente und sichere Anwendungsentwicklung.

euris erstellt sowohl Server- als auch Client-Anwendungen mit Java. Dabei kann es sich um eigenständige Clients handeln, die über JPA und Hibernate eine Verbindung zu einer lokalen Datenbank herstellen, oder um Client-Server-Anwendungen, welche mit einer zentralen Serverkomponente über Webservices kommunizieren. Je nach den Anforderungen und Gegebenheiten setzen wir hierbei klassische SOAP-basierte Schnittstellen oder REST-Webservices ein; alternativ kann die Kommunikation auch mittels Remote Method Invocation (RMI) oder dem HttpInvoker des Spring-Frameworks erfolgen.

Bezüglich der Clients unterscheiden wir zwischen Rich-Clients (oder Fat-Clients) und Thin-Clients (oder Slim-Clients). Erstere sind voll funktionsfähige Desktop-Arbeitsplätze, bei denen die Datenverarbeitung vor Ort auf dem Client stattfindet und die in der Regel auch die grafische Benutzeroberfläche zur Verfügung stellen. Im Gegensatz dazu sind Thin-Clients minimalistisch konfiguriert und eignen sich vor allem dann, wenn Fat-Clients zu kosten- oder energieintensiv wären.

Unser Technologiestack für Client-Anwendungen umfasst unter anderem HSQL als lokale Datenbank für den Client, Swing-Oberflächen und JFormDesigner für die Gestaltung, Apache Webserver, Tomcat Servlet Engine, Oracle für die serverseitige Datenbank, Hibernate O/R-Mapper für den Datenbankzugriff, Spring HttpInvoker für die Client-Server-Kommunikation und Java als Programmiersprache, mit Eclipse IDE for Java EE Developers als Entwicklungsumgebung.

Ihre perfekte Lösung ist nur einen Schritt entfernt

Gerne unterstützen wir Sie bei Ihrem Vorhaben und erstellen gemeinsam mit Ihnen ein individuelles Konzept für Ihre eigene Software.