41. DNUG Konferenz · 11./12. November 2014 · Leipzig
www.dnug.de
Moderne Architektur – Hochskalierbare Anwendungsarchitektur mit Domino Xpages und
JavaEE/SQL-Server im Hintergrund (AE23)
Track: Technik / Entwicklung
Jens Ribbeck, Veit Weber
ULC Business Solutions GmbH, ein Unternehmen der GABO-Gruppe
www.ulc.de
www.dnug.de
Die Referenten
Jens Ribbeck IBM Notes / Domino seit 1999
Anwender, Entwickler und
Administrator
Schwerpunkte:
Prozessmanagement,
Integration,
Schnittstellen
Veit Weber IBM Notes / Domino seit 2003
Softwarearchitekt und Entwickler
Schwerpunkte:
Webanwendungen
im JavaEE-und
Domino-Umfeld
www.ulc.de
ULC Business Solutions GmbH
IBM Premier Business Partner
Full Service Provider, IBM Collaboration Software
GABO GmbH & Co. KG
Führender technologieübergreifender Lösungsanbieter im Bereich Geschäftsprozessoptimierung und IT-basierter Möglichkeiten der Zusammenarbeit
Unser Interesse:
Architektur
Unsere Erfahrungen:
IBM Technologiestack (Notes/Domino, Sametime, Connections)
Unsere Aufgaben:
Entwicklung optimaler Anwendungs-Architekturen für konkrete
Kundenaufgaben
(auch „auf der grünen Wiese“)
www.dnug.de
Ein Praxisbeispiel
Die „Baubeschreibung“:
„Individuelle Entwicklung eines webbasierten Rating-Tools zur Bonitäts-Bewertung von Projektfinanzierungen im Bereich der Erneuerbaren Energien“
www.dnug.de
Ein Praxisbeispiel
Der „Bauherr“:
www.dnug.de
Ein Praxisbeispiel
Das „Baugrundstück“:
• Genau spezifizierte fachliche Anforderungen in einem Lastenheft
• Vorhandene Notes/Domino-Infrastruktur, die möglichst genutzt werden soll
• Vorhandenes „Modell“ ein Excel-Prototyp
www.dnug.de
Ein Praxisbeispiel
Das „Nutzungskonzept“:
• Potentiell bis zu 1.100 Banken
• Bis zu 10.000 Ratings im Jahr möglich
• Statistische Verteilung der Zugriffe schwer vorhersehbar
• Hohe Anforderung an Revisionssicherheit
• Lange planmäßige Laufzeiten mit hohem Veränderungspotential
www.dnug.de
Die Planung
(Domino-Server)
?
www.dnug.de
• Viele zu erwartende Zugriffe (auch gleichzeitig)
• Revisionssicher Datenspeicherung
• Strukturierte Daten
• Hohe Anforderung an mathematische Genauigkeit
Risikoanalyse
www.dnug.de
• Hohe Performance
• Relationale Speicherung
• Hohe Skalierbarkeit
• Hohe Auswertbarkeit
• …
1. Entscheidung: Datenhaltung in relationaler DB
www.dnug.de
Das Modell – der klassische Weg
MS-SQL Datenbank
(Modell)
Frontend
(Web-Browser)
Application View-Implementierung (XPages, ExtJS, HTTP)
Application Controller-
Implementierung
Domino HTTP-Task mit IBM JVM
IBM Domino Server
MS-SQL Server
www.dnug.de
Das Modell – der alternative Weg
Application REST API
Application Controller-Implementierung (JavaEE)
MS-SQL Datenbank
Frontend (Web-Browser)
Application View-Implementierung
(XPages, ExtJS, HTML)
IBM HTTP-Proxy (Ajax-Proxy)
Domino HTTP-Task mit IBM JVM
IBM Domino Server
TomEE – Server-Dienst
MS-SQL Server
www.dnug.de
Das Modell – die Entscheidung
• Einfache Infrastruktur
• Laufzeitumgebung abhängig von IBM-Domino
• Geringe Skalierbarkeit
• Enge Verflechtung zwischen View und Controller
• Komplexere Infrastruktur
• Definierte Laufzeitumgebung (JVM)
• Hohe Skalierbarkeit
• Höherer Administrationsaufwand
• Komplexere Authentifizierung
• Saubere Trennung zwischen View und Controller
klassisch alternativ
www.dnug.de
• Testimplementierung einer einfachen Funktion in beiden Varianten
• Performance- und Systemvergleich mit Hilfe von Lasttests auf Basis von Apache JMeter (simulierter gleichzeitiger Zugriff von 30 Nutzern)
Das Modell – der Wettbewerb
klassisch alternativ
www.dnug.de
2. Entscheidung: Verteilte Architektur
„Umzug der Arbeiter ins neugebaute Funktionsgebäude“
Der Bau …
www.dnug.de
• IBM Domino
– XPages & ManagedBeans
• Apache TomEE 1.6
– JPA, EJB, JAX-RS,…
• MS SQL-Server 2012
– Datenhaltung, Reporting
Das Fundament
www.dnug.de
• Ext JS
– JavaScript / Ajax
– MVC mit JSON
– UI Design
• XPages
– JSF Basis
– Dojo
Die Fassade
www.dnug.de
IBM Domino
Nutzerpflege im NAB
Domino Ajax Proxy
Asynchrone Anfragen
Datenhaltung
IBM J9
Das Werkzeug
www.dnug.de
- Release >= 8.5
- umgeht XSS
- Authentifizierung über den Domino Server
Domino Ajax Proxy
www.dnug.de
Java EE (TomEE)
• Connection Pooling
• Transaktionen
• ORM mit JPA
• JAX-RS
• Debugging
• Logging
Das Werkzeug
www.dnug.de
ORM mit JPA
Das Werkzeug
www.dnug.de
Enterprise Java Beans
Das Werkzeug
www.dnug.de
Enterprise Java Beans
Das Werkzeug
www.dnug.de
JAX-RS
• Java API für Restful Webservices
• https://tomee:8080/eeapp/restapi/user/load
Das Werkzeug
www.dnug.de
JAX-RS und JSON
Das Werkzeug
www.dnug.de
JAX-RS API (am Beispiel „Login“)
Das Werkzeug
www.dnug.de
• Verteilte Entwicklung
– SCC mit GIT
– CCM mit IBM RTC
• Continuoues Integration
– Maven
– JUnit
– Jenkins
Die Baustelle
www.dnug.de
Probleme und Stolpersteine
• Genauigkeiten
• JDBC: MS JDBC vs. jTDS
• ORM & Stored Procedures
• LTPA-Token
• Ajax-Proxy
www.dnug.de
Fazit
• Vorhandene „Bausubstanz“ (Domino) ist erhaltenswert
• Neubauten im Hintergrund sind bei komplexen Anforderungen unvermeidlich
• Komplexität wird durch verteilte Architekturen verringert
• Nachhaltigkeit der Entwicklung wird verbessert
www.dnug.de
Copyright © 2014, ULC Business Solutions GmbH / Gabo GmbH & Co. KG Bildquellen: www.morguefile.com, de.wikipedia.org, J.Ribbeck