Full Scale STP with jBPM Use case about jBPM at SNS Bank Eric D. Schabell RedHat, Solution Architect Maurice de Château SN...
Agenda jBPM Community Day – May 8th, Antwerp, Belgium <ul><li>SNS Bank STP Strategy
Current STP Products
How does jBPM fit in?
'Legacy' tooling and way of working
Current improvements
Future directions </li></ul>
About SNS Bank jBPM Community Day – May 8th, Antwerp, Belgium <ul><li>4th largest bank in the Netherlands
Origin in savings banks
Aims mainly at private individuals and small and medium-sized businesses
Financial conglomerate with REAAL Insurances since 1997
Several sublabels (ASN, BLG, ZwitserLeven) </li></ul>
STP Strategy jBPM Community Day – May 8th, Antwerp, Belgium <ul><li>S traight  T hrough  P rocessing
5 clicks to purchase new products (2010)
Central focus: customer experience
Transparent, quick and simple
Effective and efficient, eliminating handwork
Paperless (as much as legally possible) </li></ul>
Agenda jBPM Community Day – May 8th, Antwerp, Belgium <ul><li>SNS Bank STP Strategy
Current STP Products
How does jBPM fit in?
'Legacy' tooling and way of working
Upcoming SlideShare
Loading in...5
×

jBPM Community Day: Full Scale STP With jBPM

1,930

Published on

Use case about how jBPM was used at SNS Bank

Published in: Economy & Finance, Business
0 Comments
2 Likes
Statistics
Notes
  • Be the first to comment

No Downloads
Views
Total Views
1,930
On Slideshare
0
From Embeds
0
Number of Embeds
7
Actions
Shares
0
Downloads
86
Comments
0
Likes
2
Embeds 0
No embeds

No notes for slide

jBPM Community Day: Full Scale STP With jBPM

  1. 1. Full Scale STP with jBPM Use case about jBPM at SNS Bank Eric D. Schabell RedHat, Solution Architect Maurice de Château SNS IT, System Specialist (Java) jBPM Community Day – May 8th, Antwerp, Belgium
  2. 2. Agenda jBPM Community Day – May 8th, Antwerp, Belgium <ul><li>SNS Bank STP Strategy
  3. 3. Current STP Products
  4. 4. How does jBPM fit in?
  5. 5. 'Legacy' tooling and way of working
  6. 6. Current improvements
  7. 7. Future directions </li></ul>
  8. 8. About SNS Bank jBPM Community Day – May 8th, Antwerp, Belgium <ul><li>4th largest bank in the Netherlands
  9. 9. Origin in savings banks
  10. 10. Aims mainly at private individuals and small and medium-sized businesses
  11. 11. Financial conglomerate with REAAL Insurances since 1997
  12. 12. Several sublabels (ASN, BLG, ZwitserLeven) </li></ul>
  13. 13. STP Strategy jBPM Community Day – May 8th, Antwerp, Belgium <ul><li>S traight T hrough P rocessing
  14. 14. 5 clicks to purchase new products (2010)
  15. 15. Central focus: customer experience
  16. 16. Transparent, quick and simple
  17. 17. Effective and efficient, eliminating handwork
  18. 18. Paperless (as much as legally possible) </li></ul>
  19. 19. Agenda jBPM Community Day – May 8th, Antwerp, Belgium <ul><li>SNS Bank STP Strategy
  20. 20. Current STP Products
  21. 21. How does jBPM fit in?
  22. 22. 'Legacy' tooling and way of working
  23. 23. Current improvements
  24. 24. Future directions </li></ul>
  25. 25. STP Products jBPM Community Day – May 8th, Antwerp, Belgium <ul><li>Savings accounts ( Jaarsparen, Internetsparen, Maxisparen, Spaarmix, Plussparen )
  26. 26. Deposit accounts ( Depositosparen (interest per year or per month), Klimrente, Varivast, Rendementsparen )
  27. 27. Service processes ( among others Change of address, Change of contra account, Temporary increase of debit card limit, and many more to follow... ) </li></ul>
  28. 28. Agenda jBPM Community Day – May 8th, Antwerp, Belgium <ul><li>SNS Bank STP Strategy
  29. 29. Current STP Products
  30. 30. How does jBPM fit in?
  31. 31. 'Legacy' tooling and way of working
  32. 32. Current improvements
  33. 33. Future directions </li></ul>
  34. 34. Simplified System Overview jBPM Community Day – May 8th, Antwerp, Belgium . . . . . . Customer Administrator DB
  35. 35. System Restrictions jBPM Community Day – May 8th, Antwerp, Belgium <ul><li>No ESB
  36. 36. No integrated rules engine
  37. 37. Some (prominent) back ends don't support transactionality/asynchronicity/events
  38. 38. And... </li></ul>
  39. 39. Agenda jBPM Community Day – May 8th, Antwerp, Belgium <ul><li>SNS Bank STP Strategy
  40. 40. Current STP Products
  41. 41. How does jBPM fit in?
  42. 42. 'Legacy' tooling and way of working
  43. 43. Current improvements
  44. 44. Future directions </li></ul>
  45. 45. Tooling jBPM Community Day – May 8th, Antwerp, Belgium
  46. 46. Tooling jBPM Community Day – May 8th, Antwerp, Belgium
  47. 47. Way of working (1) jBPM Community Day – May 8th, Antwerp, Belgium <ul><li>The only node types used: </li><ul><li>Node (for all automated tasks, containing all necessary business logic)
  48. 48. Decision
  49. 49. Task-node (for the human tasks) </li></ul><li>Synchronous execution </li><ul><li>Entire process runs in the thread it is started with (so no intermediate persisting) </li></ul></ul>
  50. 50. Way of working (2) jBPM Community Day – May 8th, Antwerp, Belgium <ul><li>Synchronous scheduler </li><ul><li>Starts a list of process instances one after another, so... </li></ul><li>Java exception handling by using one top-level jBPM exception-handler </li><ul><li>Control is passed to the drop-out application by jumping to a loose task </li></ul><li>Hibernate configured to auto-commit </li></ul>
  51. 51. jBPM Community Day – May 8th, Antwerp, Belgium
  52. 52. Funny (?) Code Example (1) jBPM Community Day – May 8th, Antwerp, Belgium public class BackendExceptionHandler implements ActionHandler { public void execute(ExecutionContext context) throws Exception { Token token = context.getProcessInstance().getRootToken(); String originatingNode = token.getNode().getName(); if (!BackendExceptionHandler.BACKENDERROR_REDIRECTING_NODE.equals(originatingNode)) { ExecutionContextHelper.setVariable(context, BACKENDERROR_DROPOUT_NODE, token.getNode().getName()); } token.setNode(context.getProcessDefinition().getNode(BACKENDERROR_NODE_NAME)); token.signal(); throw new Exception(&quot;Functional error on back end.&quot;); } }
  53. 53. Funny (?) Code Example (2) jBPM Community Day – May 8th, Antwerp, Belgium public class SaveProcessInstanceHandler implements ActionHandler { public void execute(ExecutionContext context) throws Exception { context.getJbpmContext().getConnection().setAutoCommit( false ); context.getJbpmContext().getConnection().commit(); context.getJbpmContext().getConnection().setAutoCommit( true ); // Do something with context and changes will be saved, this call results // in an empty list Remark: not every call to context will result in a DB update. // This one does... context.getJbpmContext().getTaskList(); [further processing...] } }
  54. 54. Agenda jBPM Community Day – May 8th, Antwerp, Belgium <ul><li>SNS Bank STP Strategy
  55. 55. Current STP Products
  56. 56. How does jBPM fit in?
  57. 57. 'Legacy' tooling and way of working
  58. 58. Current improvements
  59. 59. Future directions </li></ul>
  60. 60. Improvements jBPM Community Day – May 8th, Antwerp, Belgium <ul><li>Most business logic moved to services </li><ul><li>At most one WS call to a back end
  61. 61. Lack of transactionality less of a problem </li></ul><li>“ State Proxy” solution </li><ul><li>Makes the back end calls asynchronous
  62. 62. Allows for the use of proper state nodes </li></ul></ul>
  63. 63. Agenda jBPM Community Day – May 8th, Antwerp, Belgium <ul><li>SNS Bank STP Strategy
  64. 64. Current STP Products
  65. 65. How does jBPM fit in?
  66. 66. 'Legacy' tooling and way of working
  67. 67. Current improvements
  68. 68. Future directions </li></ul>
  69. 69. Wish List jBPM Community Day – May 8th, Antwerp, Belgium <ul><li>Asynchronous (parallel) scheduling
  70. 70. Implementing multi-process solutions
  71. 71. Removal of the legacy tooling
  72. 72. Upgrade to jBPM 3.2.x
  73. 73. Proper use of swimlanes and the possibilities of tasks in the jBPM console </li></ul>
  74. 74. Questions? jBPM Community Day – May 8th, Antwerp, Belgium
  1. A particular slide catching your eye?

    Clipping is a handy way to collect important slides you want to go back to later.

×