camunda bpm in distributed applications - allianz indonesia
TRANSCRIPT
Camunda BPM in Distributed Applications
Integration, resilience and fault tolerance challenges
Jörg Sauer /Camunda Community Days / 17.09.2015
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
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)
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
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
6© Allianz
Allianz in Indonesia2 Companies• General Insurance #10 market position• Life Insurance #2 market position
1 IT-Organisation• Software development: 50 employees
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
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
9© Allianz
Before we start
hiroo - Jakarta Kota Station / creative commons CC BY-SA 2.0
10© Allianz
Disclaimer
Not applicable everywhere!Do it at your own risk!
Oktiviano taken from Wikipedia
11© Allianz
2011: Silo
Doc Searls
12© Allianz
Silo: or more like this
Photo: Chris Harnish
14© Allianz
Silo: For a Better Understanding
Two Companies• 8 Core Insurance Systems
• A Zoo full of Supporting Applications
Doc Searls
15© Allianz
Silo: For a Better Understanding
Cool Technologies:• Oracle PL/SQL Forms
• .Net 1.1, 2.0• Powerbuilder
• Gupta
Doc Searls
16© Allianz
Silo: No Integration
All manual – Export - ImportJean-Marie Hullot
17© Allianz
Key Decisions 2011/12
• Lightweight Technologies
• Open Source• Java
• 1 Project as an Incubator
Photo: Alvin Trusty/Flickr/Creative Commons License
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
19© Allianz
© Allianz
1st Project: Life Insurance Underwriting
Mission Accomplished?
20© Allianz
© Allianz
1st Project Architecture
InstantiateRock Stable!
21© Allianz
Missing Links
• Fault tolerance for process instantiation• Developer awareness of monolithic vs. integrated
Bild: © Markus Roeder
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
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
24© Allianz
Some Key Decisions 2013
• BPMN 2.0 Workshops• Middleware• Open Source• Java
Photo: Alvin Trusty/Flickr/Creative Commons License
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
26© Allianz
© Allianz
Next Project: Policy Administration & Servicing
Mission Accomplished?
27© Allianz
© Allianz
Integration Architecture
28© Allianz
Missing Links
• Fault tolerance in orchestration• Architecture Patterns
Bild: © Markus Roeder
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
30© Allianz
Some New Ingredients
Baking ingredients by freefoodphotos.com
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
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
33© Allianz
© Allianz
Next Project: General Insurance Intermediary Portal
Mission Accomplished!
34© Allianz
© Allianz
Integration Architecture
35© Allianz
Missing Links
• Architecture Patterns
Bild: © Markus Roeder
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
37© Allianz
Bild: Raindart
Lessons Learned• You have to do things several times • Learning by experience
38© Allianz
Key Deciions 2014/15
38
• Javascript SPA• Mobile Apps
Photo: Alvin Trusty/Flickr/Creative Commons License
39© Allianz
Some New Ingredients
Baking ingredients by freefoodphotos.com
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…
41© Allianz
© Allianz
Current Architecture
Mission Accomplished?
42© Allianz
© Allianz
BPM is One Integration & Automation Building Block
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
44© Allianz
Bild: Raindart
Lessons Learned• Rethink integration patterns• No “One Solution fits all”• Consider BPM engine as integration hub
component
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
46© Allianz
BPM Engine As Integration Component
47© Allianz
Missing Links
• High Availability• Scalability• Best Practices Rollback & Compensation
Bild: © Markus Roeder
48© Allianz
Future Journey
Itinerary• Cluster & Load Balancing• Pattern Catalogue• CMMN• DMN
Creative Commons License, some rights reserved by J. Nathan Matias
49© Allianz
Bild: Raindart
Lessons Learned• Starting small helps• Non-functional requirements!!!• Architects required• Distributed applications are challenging• Practice makes perfect
50© Allianz
Questions to the Community
Photo credit: untrained eye, Creative Commons/Flickr
Best Practice Integration Architectures
High Availability
Load Balancing
Mobile App Integration
51© Allianz
Questions?
Photo credit: untrained eye, Creative Commons/Flickr
52© Allianz
Impressions from Indonesia