DNUG 2014 Herbstkonferenz: Moderne Architektur - Hochskalierbare Anwendungsarchitektur mit Domino...

33
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

description

Am praktischen Beispiel wird gezeigt, wie komplexe Anforderungen einer Webanwendung mit Hilfe eines JavaEE-Applikationsservers realisiert und das Frontend über den Domino-Server bereitgestellt werden.

Transcript of DNUG 2014 Herbstkonferenz: Moderne Architektur - Hochskalierbare Anwendungsarchitektur mit Domino...

Page 1: DNUG 2014 Herbstkonferenz: Moderne Architektur - Hochskalierbare Anwendungsarchitektur mit Domino Xpages und JavaEE/SQL-Server im Hintergrund

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

Page 2: DNUG 2014 Herbstkonferenz: Moderne Architektur - Hochskalierbare Anwendungsarchitektur mit Domino Xpages und JavaEE/SQL-Server im Hintergrund

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

Page 3: DNUG 2014 Herbstkonferenz: Moderne Architektur - Hochskalierbare Anwendungsarchitektur mit Domino Xpages und JavaEE/SQL-Server im Hintergrund

Unser Interesse:

Architektur

Page 4: DNUG 2014 Herbstkonferenz: Moderne Architektur - Hochskalierbare Anwendungsarchitektur mit Domino Xpages und JavaEE/SQL-Server im Hintergrund

Unsere Erfahrungen:

IBM Technologiestack (Notes/Domino, Sametime, Connections)

Page 5: DNUG 2014 Herbstkonferenz: Moderne Architektur - Hochskalierbare Anwendungsarchitektur mit Domino Xpages und JavaEE/SQL-Server im Hintergrund

Unsere Aufgaben:

Entwicklung optimaler Anwendungs-Architekturen für konkrete

Kundenaufgaben

(auch „auf der grünen Wiese“)

Page 6: DNUG 2014 Herbstkonferenz: Moderne Architektur - Hochskalierbare Anwendungsarchitektur mit Domino Xpages und JavaEE/SQL-Server im Hintergrund

www.dnug.de

Ein Praxisbeispiel

Die „Baubeschreibung“:

„Individuelle Entwicklung eines webbasierten Rating-Tools zur Bonitäts-Bewertung von Projektfinanzierungen im Bereich der Erneuerbaren Energien“

Page 7: DNUG 2014 Herbstkonferenz: Moderne Architektur - Hochskalierbare Anwendungsarchitektur mit Domino Xpages und JavaEE/SQL-Server im Hintergrund

www.dnug.de

Ein Praxisbeispiel

Der „Bauherr“:

Page 8: DNUG 2014 Herbstkonferenz: Moderne Architektur - Hochskalierbare Anwendungsarchitektur mit Domino Xpages und JavaEE/SQL-Server im Hintergrund

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

Page 9: DNUG 2014 Herbstkonferenz: Moderne Architektur - Hochskalierbare Anwendungsarchitektur mit Domino Xpages und JavaEE/SQL-Server im Hintergrund

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

Page 10: DNUG 2014 Herbstkonferenz: Moderne Architektur - Hochskalierbare Anwendungsarchitektur mit Domino Xpages und JavaEE/SQL-Server im Hintergrund

www.dnug.de

Die Planung

(Domino-Server)

?

Page 11: DNUG 2014 Herbstkonferenz: Moderne Architektur - Hochskalierbare Anwendungsarchitektur mit Domino Xpages und JavaEE/SQL-Server im Hintergrund

www.dnug.de

• Viele zu erwartende Zugriffe (auch gleichzeitig)

• Revisionssicher Datenspeicherung

• Strukturierte Daten

• Hohe Anforderung an mathematische Genauigkeit

Risikoanalyse

Page 12: DNUG 2014 Herbstkonferenz: Moderne Architektur - Hochskalierbare Anwendungsarchitektur mit Domino Xpages und JavaEE/SQL-Server im Hintergrund

www.dnug.de

• Hohe Performance

• Relationale Speicherung

• Hohe Skalierbarkeit

• Hohe Auswertbarkeit

• …

1. Entscheidung: Datenhaltung in relationaler DB

Page 13: DNUG 2014 Herbstkonferenz: Moderne Architektur - Hochskalierbare Anwendungsarchitektur mit Domino Xpages und JavaEE/SQL-Server im Hintergrund

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

Page 14: DNUG 2014 Herbstkonferenz: Moderne Architektur - Hochskalierbare Anwendungsarchitektur mit Domino Xpages und JavaEE/SQL-Server im Hintergrund

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

Page 15: DNUG 2014 Herbstkonferenz: Moderne Architektur - Hochskalierbare Anwendungsarchitektur mit Domino Xpages und JavaEE/SQL-Server im Hintergrund

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

Page 16: DNUG 2014 Herbstkonferenz: Moderne Architektur - Hochskalierbare Anwendungsarchitektur mit Domino Xpages und JavaEE/SQL-Server im Hintergrund

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

Page 17: DNUG 2014 Herbstkonferenz: Moderne Architektur - Hochskalierbare Anwendungsarchitektur mit Domino Xpages und JavaEE/SQL-Server im Hintergrund

www.dnug.de

2. Entscheidung: Verteilte Architektur

„Umzug der Arbeiter ins neugebaute Funktionsgebäude“

Page 18: DNUG 2014 Herbstkonferenz: Moderne Architektur - Hochskalierbare Anwendungsarchitektur mit Domino Xpages und JavaEE/SQL-Server im Hintergrund

Der Bau …

Page 19: DNUG 2014 Herbstkonferenz: Moderne Architektur - Hochskalierbare Anwendungsarchitektur mit Domino Xpages und JavaEE/SQL-Server im Hintergrund

www.dnug.de

• IBM Domino

– XPages & ManagedBeans

• Apache TomEE 1.6

– JPA, EJB, JAX-RS,…

• MS SQL-Server 2012

– Datenhaltung, Reporting

Das Fundament

Page 20: DNUG 2014 Herbstkonferenz: Moderne Architektur - Hochskalierbare Anwendungsarchitektur mit Domino Xpages und JavaEE/SQL-Server im Hintergrund

www.dnug.de

• Ext JS

– JavaScript / Ajax

– MVC mit JSON

– UI Design

• XPages

– JSF Basis

– Dojo

Die Fassade

Page 21: DNUG 2014 Herbstkonferenz: Moderne Architektur - Hochskalierbare Anwendungsarchitektur mit Domino Xpages und JavaEE/SQL-Server im Hintergrund

www.dnug.de

IBM Domino

Nutzerpflege im NAB

Domino Ajax Proxy

Asynchrone Anfragen

Datenhaltung

IBM J9

Das Werkzeug

Page 22: DNUG 2014 Herbstkonferenz: Moderne Architektur - Hochskalierbare Anwendungsarchitektur mit Domino Xpages und JavaEE/SQL-Server im Hintergrund

www.dnug.de

- Release >= 8.5

- umgeht XSS

- Authentifizierung über den Domino Server

Domino Ajax Proxy

Page 23: DNUG 2014 Herbstkonferenz: Moderne Architektur - Hochskalierbare Anwendungsarchitektur mit Domino Xpages und JavaEE/SQL-Server im Hintergrund

www.dnug.de

Java EE (TomEE)

• Connection Pooling

• Transaktionen

• ORM mit JPA

• JAX-RS

• Debugging

• Logging

Das Werkzeug

Page 24: DNUG 2014 Herbstkonferenz: Moderne Architektur - Hochskalierbare Anwendungsarchitektur mit Domino Xpages und JavaEE/SQL-Server im Hintergrund

www.dnug.de

ORM mit JPA

Das Werkzeug

Page 25: DNUG 2014 Herbstkonferenz: Moderne Architektur - Hochskalierbare Anwendungsarchitektur mit Domino Xpages und JavaEE/SQL-Server im Hintergrund

www.dnug.de

Enterprise Java Beans

Das Werkzeug

Page 26: DNUG 2014 Herbstkonferenz: Moderne Architektur - Hochskalierbare Anwendungsarchitektur mit Domino Xpages und JavaEE/SQL-Server im Hintergrund

www.dnug.de

Enterprise Java Beans

Das Werkzeug

Page 27: DNUG 2014 Herbstkonferenz: Moderne Architektur - Hochskalierbare Anwendungsarchitektur mit Domino Xpages und JavaEE/SQL-Server im Hintergrund

www.dnug.de

JAX-RS

• Java API für Restful Webservices

• https://tomee:8080/eeapp/restapi/user/load

Das Werkzeug

Page 28: DNUG 2014 Herbstkonferenz: Moderne Architektur - Hochskalierbare Anwendungsarchitektur mit Domino Xpages und JavaEE/SQL-Server im Hintergrund

www.dnug.de

JAX-RS und JSON

Das Werkzeug

Page 29: DNUG 2014 Herbstkonferenz: Moderne Architektur - Hochskalierbare Anwendungsarchitektur mit Domino Xpages und JavaEE/SQL-Server im Hintergrund

www.dnug.de

JAX-RS API (am Beispiel „Login“)

Das Werkzeug

Page 30: DNUG 2014 Herbstkonferenz: Moderne Architektur - Hochskalierbare Anwendungsarchitektur mit Domino Xpages und JavaEE/SQL-Server im Hintergrund

www.dnug.de

• Verteilte Entwicklung

– SCC mit GIT

– CCM mit IBM RTC

• Continuoues Integration

– Maven

– JUnit

– Jenkins

Die Baustelle

Page 31: DNUG 2014 Herbstkonferenz: Moderne Architektur - Hochskalierbare Anwendungsarchitektur mit Domino Xpages und JavaEE/SQL-Server im Hintergrund

www.dnug.de

Probleme und Stolpersteine

• Genauigkeiten

• JDBC: MS JDBC vs. jTDS

• ORM & Stored Procedures

• LTPA-Token

• Ajax-Proxy

Page 32: DNUG 2014 Herbstkonferenz: Moderne Architektur - Hochskalierbare Anwendungsarchitektur mit Domino Xpages und JavaEE/SQL-Server im Hintergrund

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

Page 33: DNUG 2014 Herbstkonferenz: Moderne Architektur - Hochskalierbare Anwendungsarchitektur mit Domino Xpages und JavaEE/SQL-Server im Hintergrund

www.dnug.de

Copyright © 2014, ULC Business Solutions GmbH / Gabo GmbH & Co. KG Bildquellen: www.morguefile.com, de.wikipedia.org, J.Ribbeck