When BPM meets Blockchain Lionel Palacin - Technical Evangelist Miguel Valdés Faura – CEO & co-founder Hello everyone, we are going to cover today some interesting use cases in which BPM and Blockchain will work together to create advanced applications involving multiple parties. Let’s start by an example of how blockchain work.
Blockchain – in a nutshell In this application A wants to send money to B, this transaction is represented as a « block » that is broadcasted to the network before being approved and chained… then the money will be transferred. Source: Financial Times
Benefits Virtual continuity Transparency Resilience Immutability Independency Self trusted There are several benefits about using blockchain technology, which is actually a decentralized database. Those includes, the virtual continuity of applications or the transparency and immutability of each transaction ever executed.
Challenges Young technology Regulation Energy consumption Privacy Integration Adoption In the case of blockchain the most relevant challenges are related to regulation (particularly reporting), privacy (as data is replicated in each node of the network) and adoption (as there is a lack of platforms to effective create blockchain apps)
Private blockchains Transaction speed is considerably improved Data is not publicly available to anyone with a net connection. Public auditability can be implemented (consortium blockchains and regulations) Some of those challenges can be addressed by the concept known as private blockchains, which are actually private deployments in which the number of cores is limited, access to data can be restricted and public auditability can be implemented
BPM and blockchain integration Unified platform to build critical applications in consortiums of multiple organizations In terms of adoption and integration we really believe that BPM platforms can dramatically help companies to create, deploy and manage advanced business applications, particularly the ones in which multiple parties/organizations are involved
Main benefits Allow multiple partners to trust a common process Improve customer engagement Provide end-to-end traceability and real time audit trail Blockchain network We see 3 major benefits about using BPM platform to build blockchain applications: allow different partners to trust a common processes (ie financial services), improve customer/user engagement and endure end-to-end traceability and real time audit trail. Let’s have a look.
Allow multiple partners to trust a common process Use business processes to encapsulate the logic to allow multiple independent participants to exchange assets. This is a complementary approach to “immutable” Smart Contracts in blockchain. Processes can encapsulate the business logic that allow multiple participants to exchange assets. Those processes can be used in conjunction to some native blockchain concepts to manage contracts between parties, such for example Smart Contracts.
Improved customer engagement Seamless coordination between systems, processes and dedicated user interfaces and applications allows blockchain partners to better engage and serve customers Customer engagement in multi-parties solutions is even more challenging than in traditional business applications. With a BPM platform, blochchain developers can ensure a seamless coordination between the different systems and to can create dedicated apps and UIs for each party.
End-to-end traceability and real time audit trail A real-time audit trail can be generated with timestamps and digital signatures for each step with every partner. To ensure real time audit at different levels we propose to user “off the shelf” BPM traceability capabilities, coupled with private blockchain features such local and global data visibility, digital signatures and transaction monitoring
Use case Scenario - Car order management 2 Local retailer checks if the car is in store. 3 Production site built the new car and deliver it to the retailer. 1 Customer orders a new car at the local retailer. Customer Local retailer Production site 2A-4 Retailer delivers the car to the customer and get the payment. 2B New car is ordered from the production site if there is no availability. The use case scenario that we will cover during the demo is a Car order management solution involving 5 parties and 4 main milestones: All those entities are part of a unified solution based on a private blockchain and a global business process. 3b Car company request the Controller to issue a new car Asset on the blockchain. Controller Car store
Demo scenario – Payment transaction 2 Local retailer checks if the car is in store. 3 Production site built the new car and deliver it to the retailer. 1 Customer orders a new car at the local retailer. Customer Local retailer Production site 2A-4 Retailer delivers the car to the customer and get the payment. 2B New car is ordered from the production site if there is no availability. For the purpose of today’s demo, Lionel will focus on one important milestone (Payment transaction). The idea here is to illustrate how a blockchain business transaction between two different parties can be managed without and with Business Process Management technologies. 3b Car company request the Controller to issue a new car Asset on the blockchain. Controller Car store
Demo – Main components Bonita BPM Chain.com Business process with the business logic orchestration and blockchain transactions management Connectivity framework to Chain.com blockchain 3 business applications with dedicated UX: Customer and Car company, Regulator Private blockchain deployment with 4 cores: Asset manager, Customer, Car company and Regulator Dashboard application to manage blockchain cores, account, assets and transaction Java SDK We’ve developed a solution based on Bonita BPM and Chain.com (both having OSS versions). In Bonita we have the orchestration business logic, the native connectors to blockchain and the dedicated apps and we use Chain.com as a private blockchain deployment.
Demo – Architecture Chain.com Customer core Controller core Customer App Car company app Controller App REST REST REST API Process Management Task Management User Management Connectors Here is the high level architecture of this integrated solution. We’ve deployed a private chain.com blockchain with 4 cores representing the car company, customer, controller and the observer. The Bonita engine connects with the blockchain through generic connectors. 3 business apps interact with the BPM platform to get info and trigger actions. JAVA JAVA JAVA JAVA Car company core Customer core Controller core Observer core Blockchain network Java SDK Chain.com
Demo – Blockchain data model The purpose of a blockchain network is to manage issuance, ownership, and control of digital assets. Asset: Demo: Bonita White Car Define by a Chain Core. Can be issued only by the key holder defined at the asset definition. Global data In this demo we are using default data concepts managed any blockhain application such assets (ie cars in the demo), accounts (the Bonita store) and transaction (10k$). As you can see some of these data is local and some is global to the blockchain. The ultimate purpose is to exchange digital assets. Account: Demo: Bonita Store Track ownership of assets on a blockchain Local Data Transaction: Demo: 10.000$ Use to issue, transfer, exchange assets on the blockchain network Global data
Demo – Payment transaction Without BPM Bonita store sells a car for $10,000 to John Doe Accounts Bonita Store Bonita Production Accounts John Doe Jan Ripley Let’s have a closer look to the Payment transaction scenario.… Bonita store will sell a car for 10k$ to John Doe. For that, we are going to have two accounts in two different cores of our blockchain network managing a transaction Car company core Customer account core Blockchain network T1 T1
Demo – Payment transaction Without BPM Bonita store sells a car for $10,000 to John Doe Account: Bonita Store Spend 1 Bonita White Car Receive $10,000 Return a partial transaction Accounts John Doe Jan Ripley Here is how that would work in pure blockchain (without BPM). The Account Bonita Store will spend 1 Car and will receive 10k$. For that to be done the core called “company core” will build a partial transaction that is signed by the core/ Accounts Bonita Store Bonita Production Car company core Customer account core Blockchain network T1 T1
Demo – Payment transaction Without BPM Bonita store sells a car for $10,000 to John Doe Base transaction: Partial transaction Account: John Doe Spend $10,000 Receive 1 Bonita White Car Partial transaction Account: Bonita Store Spend 1 Bonita White Car Receive $10,000 Return a partial transaction Multi-assets trade between cores Accounts John Doe Jan Ripley The second core involved in this transaction will be the Customer account core. This is the core that will complete the transaction allowing the account John Doe to sepnd 10k$ and to receive a Bonita White car. The transaction will be then be submitted to the network. This is called multi-assets trade between cores. Accounts Bonita Store Bonita Production Build and sign new transaction T1 Car company core Customer account core Blockchain network T1 T1
Demo – Payment transaction With BPM Partial transaction Partial transaction Prepare payment Confirm payment Accounts John Doe Jan Ripley The exact same use case developed with a BPM Platform allows to abstract the business logic to prepare the transaction in a business process, to manage the storage of intermediate date as well as the partial transaction and of course to build the dedicated Apps for the two parties. Accounts Bonita Store Bonita Production Car company core Customer account core Blockchain network T1 T1
Live DEMO