• Share
  • Email
  • Embed
  • Like
  • Save
  • Private Content
In2Flow – solving your BPM human task problems!
 

In2Flow – solving your BPM human task problems!

on

  • 1,685 views

Presentation given at JFall 2010 (Dutch Java User Group). ...

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.

Statistics

Views

Total Views
1,685
Views on SlideShare
1,551
Embed Views
134

Actions

Likes
0
Downloads
20
Comments
0

3 Embeds 134

http://www.schabell.org 105
http://planet.jboss.org 28
http://static.slidesharecdn.com 1

Accessibility

Upload Details

Uploaded via as Microsoft PowerPoint

Usage Rights

© All Rights Reserved

Report content

Flagged as inappropriate Flag as inappropriate
Flag as inappropriate

Select your reason for flagging this presentation as inappropriate.

Cancel
  • Full Name Full Name Comment goes here.
    Are you sure you want to
    Your message goes here
    Processing…
Post Comment
Edit your comment

    In2Flow – solving your BPM human task problems! In2Flow – solving your BPM human task problems! Presentation Transcript

    • In2flow: solving your BPM human task problems?!
      Arnoud Wolfard
      Developer SNS Bank
    • Agenda
      SNS Bank -> IT uitdagingen
      BPM Architectuur
      Historie
      - UitvalApplicatie
      - Tekortkomingen
      • In2flow
      - Uitgangspunten
      - Architectuur
      • Vragen
    • SNS Bank
      Bedrijfsstrategie ‘Visie en Vlag’
      Relatief kleine bank
    • 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.
    • SNS Bank – Visie en Vlag
      De IT uitdagingen:
      • Internet
      • Automatiseren van de bankkantoor handelingen
    • 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
    • SNS Bank – Relatief kleine bank
      De IT uitdaging:
      • IT kosten beheersbaar houden
    • Antwoorden op de IT uitdagingen
      • Open Source Software
      • Workflow management
    • BPM Architectuur
      Uitval Applicatie/
      In2flow
      BOM/
      SOAL
      KIS
      Mijn SNS
      XML
      Scheduler
      Process
      DOC1
      SAS
    • Uitvalapplicatie
      • Voorloper In2Flow
      • Aanvraag gedreven
      • Gebaseerd op een generiek aanvraagmodel
    • Uitvalapplicatie – Screen shot
    • Uitvalapplicatie – Screen shot
    • Uitvalapplicatie – Scary picture
    • Uitvalapplicatie – Scary picture
    • Uitvalapplicatie – Scary picture
    • Uitvalapplicatie – Knelpunten
      • Monoliet
      • Business wilde andere manier van werken
      • Performance issues i.v.m. aanvraagmodel
      • Onnodig groot complex model
      • (J)BPM Schaduwboekhouding
    • 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.
    • In2Flow
      • JBossApplication 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
    • In2Flow – Screen shots
    • In2Flow – Screen shots
    • In2Flow – Screen shots
    • In2Flow – Screen shots
    • In2Flow – Screen shots
    • In2Flow – Modulair ontwerp
      In2Flow bestaat uit 1 hoofdmodule waarin
      taakmodules dynamisch(at runtime) kunnen
      worden toegevoegd.
      Een taakmodule bevat 1 of meerdere taakschermen.
    • In2Flow – Modulair ontwerp
      Voordelen:
      • Doorbreken monoliet
      • Parallelle ontwikkeling eenvoudiger
      • Minder integratietesten
      • Scope is beperkt; minder complexiteit
    • In2Flow – Modulair ontwerp
    • In2Flow – Shared Session
      @Name("sharedSession")
      @Scope(ScopeType.APPLICATION)
      @Startup
      publicclassSharedSession {
             
              privateTreeCacheMBean cache;
             
              publicSharedSession() {
                      MBeanServer server = MBeanServerLocator.locateJBoss();
                      cache = (TreeCacheMBean) MBeanProxyExt.create(TreeCacheMBean.class, "jboss.cache:service=in2flow", server);
              }
             
              public Object get(finalStringfullyQualifiedName, finalStringattribute) {
                      returncache.get(fullyQualifiedName, attribute);
              }
       
              publicvoid put(finalStringfullyQualifiedName, finalStringattribute, final Object value) {
                      …
              }

      }
    • In2Flow – Taak <-> URL Mapping
      @TaskConfigurator
      publicclassAanvragenTokenTaskConfiguratorimplementsTaskConfiguration {
       
      public String getPage() {
      return"/stpafsluitprocessen/faces/content/AanvragenToken.xhtml";
      }
      publicTaskSettingsgetTaskSettings() {
      TaskSettingstaskSettings = newTaskSettings();
      taskSettings.setTaskName("Verstrekken token");

      returntaskSettings;
      }
      }
    • In2Flow – Layering
    • In2Flow – Domein model
    • In2Flow – Proces-taakinteractie
    • In2Flow – Proces-taak interactie
    • In2Flow – Proces-taak interactie
      Page Bean Code:
      @Name("beoordeelPasPB")
      @Scope(ScopeType.PAGE)
      public classBeoordeelPasPBextendsAbstractTaskDetailsPageBean {
      private BeoordeelPasInputVOinputVO;
      private BeoordeelPasOutputVOoutputVO;
      @Create
      public voidinit() {
      inputVO = this.getValueObject(BeoordeelPasInputVO.class);
      }
      @Override
      public StringdoProcessTask() throwsBusinessException {
      this.outputVO = createOutputVO();
      this.saveValueObject(this.outputVO);
      return null;
      }
      }
    • In2Flow – Taak beëindiging
    • In2Flow – Leasons learned
      Keep It Simple & Straightforward:
      • Modulair
      • Taakgeoriënteerd
      • Simpel domein model
      • Abstractielaag
      • Eenvoudige communicatie met proces
      • Simpele schermen; alleen het noodzakelijke