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

Post on 06-Jul-2015

376 views 0 download

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...

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