In2Flow – solving your BPM human task problems!

35
In2flow: solving your BPM human task problems?! Arnoud Wolfard Developer SNS Bank

description

Presentation given at JFall 2010 (Dutch Java User Group). SNS Bank is a leading provider of on-line internet banking products within the Dutch financial market. The last three years she has been converting her activities from a traditional branch offices to an on-line experience. This transition has involved extensive business process implementations to put both internal service processes, external service processes as well as product selling channels on-line. An important part of their processes has always been connected to human tasks, as the financial world often requires human validation / intervention at crucial points in the various processes. To facilitate BPM human tasks SNS Bank has implemented various jBPM GUI solutions. These solutions have led to some important lessons when interacting with jBPM that we will present. These lessons have led to the In2Flow application provides this session with a great example of how to interact in your jBPM processes using human tasks. This implementation will be discussed and includes SEAM, JBoss Cache, Rich Faces, JBoss WS and all of the best practices to modularize your human task development in future projects. The lead developer of the In2Flow application will detail the architecture and cover the most important points that you need to be aware of to develop a scalable, flexible, extensible jBPM human task solution for your next jBPM project. This will include an overview of the management information and empirical data that is collected on the human tasks processed within In2Flow, based on four months in a production environment.

Transcript of In2Flow – solving your BPM human task problems!

Page 1: In2Flow – solving your BPM human task problems!

In2flow: solving your BPM human task

problems?!

Arnoud Wolfard

Developer SNS Bank

Page 2: In2Flow – solving your BPM human task problems!

Agenda

• SNS Bank -> IT uitdagingen

• BPM Architectuur

• Historie

- Uitval Applicatie

- Tekortkomingen

• In2flow

- Uitgangspunten

- Architectuur

• Vragen

Page 3: In2Flow – solving your BPM human task problems!

SNS Bank

1.Bedrijfsstrategie ‘Visie en Vlag’

2.Relatief kleine bank

Page 4: In2Flow – solving your BPM human task problems!

SNS Bank – Visie en Vlag

SNS Bank bedient haar klanten via internet

en met mobiele adviseurs

In 2010 moeten consumenten alle eenvoudige

producten in vijf muisklikken kunnen kopen via internet.

De bank bouwt aan een landelijk netwerk van winkels

waar de klant afspraken kan maken met adviseurs.

Page 5: In2Flow – solving your BPM human task problems!

SNS Bank – Visie en Vlag

De IT uitdagingen:

• Internet

• Automatiseren van de bankkantoor handelingen

Page 6: In2Flow – solving your BPM human task problems!

SNS Bank – Relatief kleine bank

Balans totalen 2009

ABN 350 miljard

ING 900 miljard

Rabobank 600 miljard

SNS 70 miljard

Spaar tegoeden (2009)

ING Bank 115,0

Rabobank 107,0

ABN 32,1

SNS 18,1

Page 7: In2Flow – solving your BPM human task problems!

SNS Bank – Relatief kleine bank

De IT uitdaging:

• IT kosten beheersbaar houden

Page 8: In2Flow – solving your BPM human task problems!

Antwoorden op de IT uitdagingen

• Open Source Software

• Workflow management

Page 9: In2Flow – solving your BPM human task problems!

BPM Architectuur

Mijn SNS

Scheduler

Process

Uitval

Applicatie/

In2flow

BOM/

SOAL

KIS

SA

S

XML

DO

C1

Page 10: In2Flow – solving your BPM human task problems!

Uitvalapplicatie

• Voorloper In2Flow

• Aanvraag gedreven

• Gebaseerd op een generiek aanvraagmodel

Page 11: In2Flow – solving your BPM human task problems!

Uitvalapplicatie – Screen shot

Page 12: In2Flow – solving your BPM human task problems!

Uitvalapplicatie – Screen shot

Page 13: In2Flow – solving your BPM human task problems!

Uitvalapplicatie – Scary picture

Page 14: In2Flow – solving your BPM human task problems!

Uitvalapplicatie – Scary picture

Page 15: In2Flow – solving your BPM human task problems!

Uitvalapplicatie – Scary picture

Page 16: In2Flow – solving your BPM human task problems!

Uitvalapplicatie – Knelpunten

• Monoliet

• Business wilde andere manier van werken

• Performance issues i.v.m. aanvraagmodel

• Onnodig groot complex model

• (J)BPM Schaduwboekhouding

Page 17: In2Flow – solving your BPM human task problems!

In2Flow - Opdracht

Maak een webapplicatie waarmee gebruikers

op een taak-georiënteerde manier kunnen werken

die makkelijk uitbreidbaar is zonder gebruik te

maken van een generiek aanvraagmodel.

Page 18: In2Flow – solving your BPM human task problems!

In2Flow

• JBoss Application Server (EAP 4.3)

• JBPM 3.2.8 SOA

• JSF 1.2

• RichFaces 3.3

• Seam 2.0.2

• Facelets 1.1.15

• Scannotation 1.0.2

• JBossCache 1.4.1

Page 19: In2Flow – solving your BPM human task problems!

In2Flow – Screen shots

Page 20: In2Flow – solving your BPM human task problems!

In2Flow – Screen shots

Page 21: In2Flow – solving your BPM human task problems!

In2Flow – Screen shots

Page 22: In2Flow – solving your BPM human task problems!

In2Flow – Screen shots

Page 23: In2Flow – solving your BPM human task problems!

In2Flow – Screen shots

Page 24: In2Flow – solving your BPM human task problems!

In2Flow – Modulair ontwerp

In2Flow bestaat uit 1 hoofdmodule waarin

taakmodules dynamisch(at runtime) kunnen

worden toegevoegd.

Een taakmodule bevat 1 of meerdere taakschermen.

Page 25: In2Flow – solving your BPM human task problems!

In2Flow – Modulair ontwerp

Voordelen:

• Doorbreken monoliet

• Parallelle ontwikkeling eenvoudiger

• Minder integratietesten

• Scope is beperkt; minder complexiteit

Page 26: In2Flow – solving your BPM human task problems!

In2Flow – Modulair ontwerp

deployment Deployment View

JBOSS 4.3 EAP - BOM/SOALJBOSS 4.3 EAP - JBPM

JBOSS 4.3 EAP - IN2FLOW

main-web In2Flow-Module-1 In2Flow-Module-2

Shared Session (JBoss Cache)

BOM/SOALJBPM Serv ices

Oracle

Process Database

JBPMEventQueue

Page 27: In2Flow – solving your BPM human task problems!

In2Flow – Shared Session

@Name("sharedSession")

@Scope(ScopeType.APPLICATION)

@Startup

public class SharedSession {

private TreeCacheMBean cache;

public SharedSession() {

MBeanServer server = MBeanServerLocator.locateJBoss();

cache = (TreeCacheMBean) MBeanProxyExt.create(TreeCacheMBean.class, "jboss.cache:service=in2flow", server);

}

public Object get(final String fullyQualifiedName, final String attribute) {

return cache.get(fullyQualifiedName, attribute);

}

public void put(final String fullyQualifiedName, final String attribute, final Object value) {

}

}

Page 28: In2Flow – solving your BPM human task problems!

In2Flow – Taak <-> URL Mapping

@TaskConfigurator

public class AanvragenTokenTaskConfigurator implements TaskConfiguration {

public String getPage() {

return "/stpafsluitprocessen/faces/content/AanvragenToken.xhtml";

}

public TaskSettings getTaskSettings() {

TaskSettings taskSettings = new TaskSettings();

taskSettings.setTaskName("Verstrekken token");

return taskSettings;

}

}

Page 29: In2Flow – solving your BPM human task problems!

In2Flow – Layering

Page 30: In2Flow – solving your BPM human task problems!

In2Flow – Domein model

Page 31: In2Flow – solving your BPM human task problems!

In2Flow – Proces-taak interactie

Page 32: In2Flow – solving your BPM human task problems!

In2Flow – Proces-taak interactie

Page 33: In2Flow – solving your BPM human task problems!

In2Flow – Proces-taak interactie

Page Bean Code:@Name("beoordeelPasPB")

@Scope(ScopeType.PAGE)

public class BeoordeelPasPB extends AbstractTaskDetailsPageBean {

private BeoordeelPasInputVO inputVO;

private BeoordeelPasOutputVO outputVO;

@Create

public void init() {

inputVO = this.getValueObject(BeoordeelPasInputVO.class);

}

@Override

public String doProcessTask() throws BusinessException {

this.outputVO = createOutputVO();

this.saveValueObject(this.outputVO);

return null;

}

}

Page 34: In2Flow – solving your BPM human task problems!

In2Flow – Taak beëindiging

deployment Deployment View

JBOSS 4.3 EAP - BOM/SOALJBOSS 4.3 EAP - JBPM

JBOSS 4.3 EAP - IN2FLOW

main-web In2Flow-Module-1 In2Flow-Module-2

Shared Session (JBoss Cache)

BOM/SOALJBPM Serv ices

Oracle

Process Database

JBPMEventQueue

Page 35: In2Flow – solving your BPM human task problems!

In2Flow – Leasons learned

Keep It Simple & Straightforward:

• Modulair

• Taakgeoriënteerd

• Simpel domein model

• Abstractielaag

• Eenvoudige communicatie met proces

• Simpele schermen; alleen het noodzakelijke