Your browser doesn't support the features required by impress.js, so you are presented with a simplified version of this presentation.

For the best experience please use the latest Chrome, Safari or Firefox browser.

Die Desktopanwendung ist tot - lang lebe die Single-Page-Application
ein Umstellungsbericht der LVM Versicherung

Michael Füser | @floenk

Christian Grünberg | @gruenyC

@LVM_IT

Eckdaten

1896 Gründung des "Haftpflichvereins für Landwirte der Provinz Westfalen"

Aktuell - die LVM Versicherung

Alle Versicherungssparten (KFZ, Rechtsschutz, Sach-, Renten-, Kranken- Unfall- und Lebensversicherung) werden abgedeckt

Augsburger Aktienbank

Beitragseinnamen: 3,3 Mrd Euro bei 3,3 Mio Kunden (2016)

Innendienst ca 3.600 Mitarbeiter

über 2300 Agenturinhaber

Was ist unsere Zielvision?

Welche Technologien kamen in Frage?

ROCA (Resource Oriented Client Architecture)
SPA (Single Page Application)

Wie integrieren wir
im Browser?

Integration - OneSPA
Integration - MultiPageApplication (MPA)
Integration - Link-Integration
Können die Lösungsansätze nur isoliert voneinander bestehen?

  • Kleine Anwendungsteile wie z.B. Paypal oder Kundensuche -> OneSPA oder IFrame
  • Anwendungen, deren Schnittstelle sehr schmal sind -> Link-Integration
  • Anwendungen mit einer starken Integration zueinander -> OneSPA, MPA

Wie integrieren wir die neue Browser- und alte Swing-Welt?

Integrationstechnik - Java Swing
Integrationstechnik - Java Swing mit SPA
https://www.teamdev.com/jxbrowser
Java-Seite
                    
BrowserView browserComponent = new BrowserView(...);
browserComponent.loadURL("http://kraftfahrt.lvm.de/"); //start der Anwendung
...
// setzen der Bridge  SPA->Java
JSValue window = browserComponent.executeJavaScriptAndReturnValue("window");
window.asObject().setProperty("lasComBridge", lasComBridge); 
...
// Aufruf der Bridge Java->SPA
browserComponent
  .executeJavaScriptAndReturnValue("window.spaComBridge.event('KundenSuche','4711','12345','{"KundenNr":"1234"}')");
                
Java- Bridge

public class LasComBridge {
 public void addTreeNode(...) {
	...
 }

 public void addTreeNodeAtTreeId(...) {
 	...
 }
	
 public void closeProcess(String viewId) {
	...
 }

	
 public void closeTreeNode(String viewId, String viewUrl) {
	...
 }

 public void event(String eventName, String correlationId, String viewId, String parameter) {
	...
 }
 ....
}

 
JS-Bridge (Typescript)
export class SPAComBridge {
 event(eventName: string, viewId: string,correlationId?: string, parameter?: any){
   ...
 }

 startProcess(url: string, viewId: string) {
   ...
 }

 public closeProcess(viewId: string, url?: string) {
   ...
 }

 public refresh(){
   ...
 }
 ...
}
                
Technologie-Stack

Was sind unsere Herausforderungen?

Neuer Technologie-Stack
Umdenken in der Entwicklung
Wie können wir unsere Entscheidung absichern?
Zentrale Vorgaben vs. Entwicklerfreiheit

Welche Erfahrungen haben wir gemacht?

Hohe Entwicklungsgeschwindigkeit und Entwicklerzufriedenheit
Uns fehlt nichts
Die Desktopanwendung ist tot - lang lebe die Single-Page-Application
Fragen:

Michael Füser | @floenk

Christian Grünberg | @gruenyC

https://github.com/LVM-IT/ | @LVM_IT

http://www.lvm.de