52
Camunda BPM in Distributed Applications Integration, resilience and fault tolerance challenges Jörg Sauer / Camunda Community Days / 17.09.2015

Camunda BPM in Distributed Applications - Allianz Indonesia

Embed Size (px)

Citation preview

Page 1: Camunda BPM in Distributed Applications - Allianz Indonesia

Camunda BPM in Distributed Applications

Integration, resilience and fault tolerance challenges

Jörg Sauer /Camunda Community Days / 17.09.2015

Page 2: Camunda BPM in Distributed Applications - Allianz Indonesia

2© Allianz

Facts:• German from Cologne• Currently: Allianz Life Indonesia

Head of IT Application Development• In Indonesia on and off since 1998• Working for Allianz since 2011• Before 17+ years as a freelancer

Twitter: @joergsauerMail: [email protected]

2

Page 3: Camunda BPM in Distributed Applications - Allianz Indonesia

3© Allianz

Indonesia might be known from…

DisastersTsunamis

VolcanosEarthquakes

Bombings

HolidaysWorld Heritage Temples

Postal Perfect Beaches

Bali

Scuba

Less Known Facts:• 4th most populated country on earth

• 252millions, BI estimation, July 2014 – 3.5% of world population

• 10th busiest airport in the world• 59.7 million passenger (2013)

• 2007 prediction, Indonesia to be 9th economy of the world by 2030• Angus Maddison Prediction largest economies by GDP (PPP)• In 2007 Indonesia was the 20th economy of the world (IMF)

• In 2013 Indonesia was already the 9th economy of the world (IMF)

Page 4: Camunda BPM in Distributed Applications - Allianz Indonesia

4© Allianz

Indonesia – Demographics

• >17500 islands• >252 million population

• 58% live in Java• >28 million live in Jakarta

• 87% Muslim• 50% population <29 years old

• 60% under 39 years old• Life expectancy = 71 years

• Fertility rate = 2.35• >300 ethnic groups

• 40% population lives $4 a day

Page 5: Camunda BPM in Distributed Applications - Allianz Indonesia

5© Allianz

Indonesia - Digitalisation• In 2012

• 9th world slowest mobile internet speed (Bloomberg, 2012)• But also world cheapest mobile data plans

• 2013 • Average internet speed 2.4Mbit/s

• 50% increase from 2012• World fastest growth on IP traffic (2013)

• 62% internet access is only through mobile (2012)• Forecast 145 million users by 2015

• 4th largest user base on Facebook• 75% access Facebook from mobile

• Jakarta second world top city by active FB users

• 5th largest user base on Twitter (just after UK)• 7.5% all tweets on Twitter come from Indonesia (2013)

• 2.5% from Jakarta• Jakarta world top tweeting city

Page 6: Camunda BPM in Distributed Applications - Allianz Indonesia

6© Allianz

Allianz in Indonesia2 Companies• General Insurance #10 market position• Life Insurance #2 market position

1 IT-Organisation• Software development: 50 employees

Page 7: Camunda BPM in Distributed Applications - Allianz Indonesia

7© Allianz

Insurance Market in Indonesia

Growth market with high potential

Life Insurance • Focus investment products – unit linked

General Insurance• Commercial • Private: mainly credit/loan risk, e.g. car insurance

• No mandatory car insurance – 3rd party liability

Page 8: Camunda BPM in Distributed Applications - Allianz Indonesia

8© Allianz

Camunda @ Allianz

Itinerary• Quick Overview• Historical Development• Some Key Solutions• Architecture & Design

decisions• Where we are • What comes next

Creative Commons License, some rights reserved by J. Nathan Matias

Aspects: Challenges, what worked and what didn’t, achievements

Page 10: Camunda BPM in Distributed Applications - Allianz Indonesia

10© Allianz

Disclaimer

Not applicable everywhere!Do it at your own risk!

Oktiviano taken from Wikipedia

Page 13: Camunda BPM in Distributed Applications - Allianz Indonesia

13© Allianz

Silo: Future?

Adam Quinan

Page 14: Camunda BPM in Distributed Applications - Allianz Indonesia

14© Allianz

Silo: For a Better Understanding

Two Companies• 8 Core Insurance Systems

• A Zoo full of Supporting Applications

Doc Searls

Page 15: Camunda BPM in Distributed Applications - Allianz Indonesia

15© Allianz

Silo: For a Better Understanding

Cool Technologies:• Oracle PL/SQL Forms

• .Net 1.1, 2.0• Powerbuilder

• Gupta

Doc Searls

Page 16: Camunda BPM in Distributed Applications - Allianz Indonesia

16© Allianz

Silo: No Integration

All manual – Export - ImportJean-Marie Hullot

Page 17: Camunda BPM in Distributed Applications - Allianz Indonesia

17© Allianz

Key Decisions 2011/12

• Lightweight Technologies

• Open Source• Java

• 1 Project as an Incubator

Photo: Alvin Trusty/Flickr/Creative Commons License

Page 18: Camunda BPM in Distributed Applications - Allianz Indonesia

18© Allianz

© Allianz

1st Project: Life Insurance Underwriting

Decisions Challenges Lessons Learned• Standalone BPM

engine• UI Integration

into Core System

Technology:• PL/SQL & Forms• Oracle 10g

Java 1.4Project:• Integrated

applications

• Up to speed in 3 Month(development)

• Don’t forget the fail scenarios

Page 19: Camunda BPM in Distributed Applications - Allianz Indonesia

19© Allianz

© Allianz

1st Project: Life Insurance Underwriting

Mission Accomplished?

Page 20: Camunda BPM in Distributed Applications - Allianz Indonesia

20© Allianz

© Allianz

1st Project Architecture

InstantiateRock Stable!

Page 21: Camunda BPM in Distributed Applications - Allianz Indonesia

21© Allianz

Missing Links

• Fault tolerance for process instantiation• Developer awareness of monolithic vs. integrated

Bild: © Markus Roeder

Page 22: Camunda BPM in Distributed Applications - Allianz Indonesia

22© Allianz

Process instantiation• Error Handling

• Core insurance system• Challenges

• No framework available• Sequential processing

• Easy: Retry• Problem:

• User has to wait• What if BPM is still not available

• Queueing • Needs to be implemented• Generic vs. integration specific implementation• Database centric vs. other architecture

Solution Design Decisions

Page 23: Camunda BPM in Distributed Applications - Allianz Indonesia

23© Allianz

Bild: Raindart

Lessons Learned• BPM Engine is not a problem• BPM Engine integration easy

• At the first glimpse• From a pure technical perspective

• Requirements are important• Non-functional always overlooked

Page 24: Camunda BPM in Distributed Applications - Allianz Indonesia

24© Allianz

Some Key Decisions 2013

• BPMN 2.0 Workshops• Middleware• Open Source• Java

Photo: Alvin Trusty/Flickr/Creative Commons License

Page 25: Camunda BPM in Distributed Applications - Allianz Indonesia

25© Allianz

© Allianz

Next Project: Policy Administration & Servicing

Decisions Challenges Lessons Learned• jBoss Module• JSF Web

Application• Integration into

Core System• ESB• SOA

Architectural:• Integration Core

System• StatefulnessProject:• Requirements• Process

Consolidation

• No Shortcuts• Statefulness

Page 26: Camunda BPM in Distributed Applications - Allianz Indonesia

26© Allianz

© Allianz

Next Project: Policy Administration & Servicing

Mission Accomplished?

Page 27: Camunda BPM in Distributed Applications - Allianz Indonesia

27© Allianz

© Allianz

Integration Architecture

Page 28: Camunda BPM in Distributed Applications - Allianz Indonesia

28© Allianz

Missing Links

• Fault tolerance in orchestration• Architecture Patterns

Bild: © Markus Roeder

Page 29: Camunda BPM in Distributed Applications - Allianz Indonesia

29© Allianz

• Integration & Orchestration• ESB

• Error Handling• Several locations

• Process, Portal, Core System• Challenges

• Synchronous vs. Asynchronous• Statefulness

• Policy Admin System• Process Instance

• Process consolidation into reusable sub-processes

Solution Design Decisions

Page 30: Camunda BPM in Distributed Applications - Allianz Indonesia

30© Allianz

Some New Ingredients

Baking ingredients by freefoodphotos.com

Page 31: Camunda BPM in Distributed Applications - Allianz Indonesia

31© Allianz

Bild: Raindart

Lessons Learned• Fault Tolerance isn’t that simple• Statefulness across systems is hard• Synchronous integration isn’t always

applicable• Message Oriented Middleware for the

rescue

Page 32: Camunda BPM in Distributed Applications - Allianz Indonesia

32© Allianz

© Allianz

Next Project: General Insurance Intermediary Portal

Decisions Challenges Lessons Learned• No additional

engine required• No processes at

portal• UI integration in

core insurance system

Technical:• PL SQL / Forms• SOAP API• Messaging

Project:• Outsourced

project• Integration

requirements

• Standardize Integration Services

Page 33: Camunda BPM in Distributed Applications - Allianz Indonesia

33© Allianz

© Allianz

Next Project: General Insurance Intermediary Portal

Mission Accomplished!

Page 34: Camunda BPM in Distributed Applications - Allianz Indonesia

34© Allianz

© Allianz

Integration Architecture

Page 35: Camunda BPM in Distributed Applications - Allianz Indonesia

35© Allianz

Missing Links

• Architecture Patterns

Bild: © Markus Roeder

Page 36: Camunda BPM in Distributed Applications - Allianz Indonesia

36© Allianz

• Integration & Orchestration• ESB• Message Oriented Middleware

• Error Handling• Several locations

• Portal• Orchestration

• Challenges• Integration into core insurance system

• No integration interfaces• Database layer• PL/SQL• Turn-key outsourcing engagement

Solution Design Decisions

Page 37: Camunda BPM in Distributed Applications - Allianz Indonesia

37© Allianz

Bild: Raindart

Lessons Learned• You have to do things several times • Learning by experience

Page 38: Camunda BPM in Distributed Applications - Allianz Indonesia

38© Allianz

Key Deciions 2014/15

38

• Javascript SPA• Mobile Apps

Photo: Alvin Trusty/Flickr/Creative Commons License

Page 39: Camunda BPM in Distributed Applications - Allianz Indonesia

39© Allianz

Some New Ingredients

Baking ingredients by freefoodphotos.com

Page 40: Camunda BPM in Distributed Applications - Allianz Indonesia

40© Allianz

© Allianz

Projects

Decisions Challenges Lessons Learned• Use existing

Instance• Further service

standardization

Technical:• Distributed

applications• Integration into

multiple core systems

• Rollback & Compensation

Project:• Non-functional

requirements

• One engine still sufficient

• For how long?• Technical

architecture in focus• BPM engine is

another integration hub component

• Claim Processing• Process automation & support• Mobile health claim submission

• Agent tablet solution• All other projects…

Page 41: Camunda BPM in Distributed Applications - Allianz Indonesia

41© Allianz

© Allianz

Current Architecture

Mission Accomplished?

Page 42: Camunda BPM in Distributed Applications - Allianz Indonesia

42© Allianz

© Allianz

BPM is One Integration & Automation Building Block

Page 43: Camunda BPM in Distributed Applications - Allianz Indonesia

43© Allianz

• External Application Integration through services / APIs• Still synchronous in some areas• Asynchronous heavily depends on message queues• Orchestration not consistent

• Some on ESB• Some in application business layer

Solution Design Decisions

Page 44: Camunda BPM in Distributed Applications - Allianz Indonesia

44© Allianz

Bild: Raindart

Lessons Learned• Rethink integration patterns• No “One Solution fits all”• Consider BPM engine as integration hub

component

Page 45: Camunda BPM in Distributed Applications - Allianz Indonesia

45© Allianz

Scenario: Mobile App electronic submission of insurance application

Submission includes:1. Data2. Documents

Mobile connectivity – not reliable

Backend integration3. Submission Tracking System4. Core Insurance System5. Document Management System6. Notifications

BPM Engine As Integration Component

Page 46: Camunda BPM in Distributed Applications - Allianz Indonesia

46© Allianz

BPM Engine As Integration Component

Page 47: Camunda BPM in Distributed Applications - Allianz Indonesia

47© Allianz

Missing Links

• High Availability• Scalability• Best Practices Rollback & Compensation

Bild: © Markus Roeder

Page 48: Camunda BPM in Distributed Applications - Allianz Indonesia

48© Allianz

Future Journey

Itinerary• Cluster & Load Balancing• Pattern Catalogue• CMMN• DMN

Creative Commons License, some rights reserved by J. Nathan Matias

Page 49: Camunda BPM in Distributed Applications - Allianz Indonesia

49© Allianz

Bild: Raindart

Lessons Learned• Starting small helps• Non-functional requirements!!!• Architects required• Distributed applications are challenging• Practice makes perfect

Page 50: Camunda BPM in Distributed Applications - Allianz Indonesia

50© Allianz

Questions to the Community

Photo credit: untrained eye, Creative Commons/Flickr

Best Practice Integration Architectures

High Availability

Load Balancing

Mobile App Integration

Page 51: Camunda BPM in Distributed Applications - Allianz Indonesia

51© Allianz

Questions?

Photo credit: untrained eye, Creative Commons/Flickr

Page 52: Camunda BPM in Distributed Applications - Allianz Indonesia

52© Allianz

Impressions from Indonesia