Modelling business processes intern in a company might be totally different as speaking about processes between different companies. The reason for that that companies are built up based on different departments and the major challenge of a corporate business process is to describe the information flow of the department. If we speak about cross company processes however they have a little bit different characteristics. Companies working with each other mostly based on markets, either based on general free markets or some kind of a limited market. Another important difference is that information can not free flow freely, it has very strict private characteristics. As a result, if we want to define cross-company business processes we should much more concentrate and model the markets that are connecting the different enterprises.
Practical notes on Enterprise software systems and the economics of software.
...by Daniel Szego
![]() | |
"On a long enough timeline we will all become Satoshi Nakamoto.."
|
|
Daniel Szego
|
Showing posts with label Decentralised Business Process Management. Show all posts
Showing posts with label Decentralised Business Process Management. Show all posts
Monday, April 30, 2018
Wednesday, January 11, 2017
Creating a simple task for an approvement workflow on the Ethereum Blockchain
Let we assume that we want to implement a simple approvement workflow, practically containing one user task with a responsible person to be approved and there are three possible outcome of the task: approves, declined or delegated. For the sake of completeness, we assume that functionalities for logging and access method control are already available, as we described them in the previous blog, The approvement process has one special information field in our example ApprovementInformation that is the information to be approved. In real case scenarios this information is best realized by an explicit smart contract.
The implementation is pretty much straightforward. The state is stored in the workflowState variable and modified by the Approve and Reject functions. Responsible person of the workflow is stored in the WorkflowResponsible variable; in current implementation only responsible person of the task can accept or decline, however everyone with a write access is allowed to delegate the task for someone else.
Wednesday, January 4, 2017
Serializing state into the Blockchain in Decentralized Business Process Management
Well serializing state for Decentralized Business Process Management (or simply DBPM) does not seem to be very complicated for the first sight If we consider Ethereum as a Blockchain solutions. Let we assume that we have custom workflow for approving a project budget, having the following properties: ProjectName, ProjectType, ProjectBudget.The first intuitive realization is a simple smart contract, called WF_ProjectBudget having the three properties as parameters and having a set get function for each:
contract WF_ProjectBudget
{
string ProjectName;
string ProjectType;
int ProjectBudget;
function setProjectName(string _ProjectName)
{
ProjectName = _ProjectName;
}
function getProjectName() constant returns (string)
{
return ProjectName;
}
function setProjectType(string _ProjectType)
{
ProjectType = _ProjectType;
}
function getProjectType() constant returns (string) {
return ProjectType;
}
function setProjectBudget(int _ProjectBudget)
{
ProjectBudget = _ProjectBudget;
}
function getProjectBudget() constant returns (int) {
return ProjectBudget;
}
}
There is a problem however with this intuitive approach. As the parameters can be set one by one, there is no guarantee that they will be set in an atomic action, meaning that either all of the values change or none of them. Supposing that atomic action is required saving the workflow state, the following code might describe the situation better:
contract WF_ProjectBudget
{
string ProjectName;
string ProjectType;
int ProjectBudget;
function getProjectName() constant returns (string) {
return ProjectName;
}
function getProjectType() constant returns (string) {
return ProjectType;
}
function getProjectBudget() constant returns (int) {
return ProjectBudget;
}
function setWFState(string _ProjectName, string _ProjectType, int _ProjectBudget) {
ProjectName = _ProjectName;
ProjectType = _ProjectType;
ProjectBudget = _ProjectBudget;
}
}
It is important to note that although the construct seems to be pretty simple, it guarantees that the three values are set in an atomic transaction independently of any kind of possible errors, like network outage, validation node failure or heavy cyber attack.
In real life scenarios we should consider that not always the whole state but only a part of it is saved in a transaction. As a consequence, it might make sense to explicitly define atomic groups: group of variables that should be serialized together. Another drawback is that this model assumes the one contract - one workflow model. A more general model might be to work with structs instead of individual variables, in this way one general solidity contract can contain the storage interface for several different workflows:
contract WF_State
{
struct ST_ProjectBudget{
string STProjectName;
string ProjectType;
int ProjectBudget;
}
ST_ProjectBudget LatestProjectBudget;
function WF_State(string _ProjectName, string _ProjectType, int _ProjectBudget)
{
LatestProjectBudget = ST_ProjectBudget(_ProjectName, _ProjectType, _ProjectBudget);
}
function getProjectName() constant returns (string) {
return LatestProjectBudget.ProjectName;
}
function getProjectType() constant returns (string) {
return LatestProjectBudget.ProjectType;
}
function getProjectBudget() constant returns (int) {
return LatestProjectBudget.ProjectBudget;
}
function setWFState(string _ProjectName, string _ProjectType, int _ProjectBudget) {
LatestProjectBudget.ProjectName = _ProjectName;
LatestProjectBudget.ProjectType = _ProjectType;
LatestProjectBudget.ProjectBudget = _ProjectBudget;
}
}
Ways of decentralization for Decentralised Business Process Management
Considering Decentralized Business Process Management (or simply DBPM), one of the major question is which part of the framework should be decentralized and which should be not. The system has at least three layers (Figure 1), so let we see which one should be decentralized:
- Data Layer: Data is the state of the system tha has an initial state and a final one between all transitions. That must be saved into the Blockchain, it is one of the key characteristic of the Business Process Management solution. However, it might be considered if all state between all transitions are saved or only certain ones, working as a checkpoint of the system. As an example, it can be imagined that cross-company decentralized processes save states of transitions in the Blockchain only if they deal with cross-company communication. Local steps that are internal for a company can be realized independently from the Blockchain.
- Workflow and Rule Engine: Well it is the major question of only storage should be decentralized or computation as well, like workflow or business rules. Having decentralized storage only without computation provides us clearly the advantage that workflow transitions run efficient. However, if the system is hacked in a way, then perhaps a state is written into the Blockchain that is already 'hacked'. It would be certainly a tragedy. On the other hand, keeping the computation decentralized might provide an enorm computing capacity.
- Low code editors and API-s: Low-code, no-code editors are usually user interface components that should not be considered to keep decentralized. However, it is an open question how it is possible to avoid that the system is hacked and a wrong state transition is simulated.
Figure 1. Possibilities for decentralization.
As a conclusion, the best option should be to provide a customizable solution, in which both elements of the state and types of the transitions could be individually parametrized if they should be saved into the Blockchain and validated by a decentralized consensus or not.
Monday, December 12, 2016
Competitive Analysis for Decentralised Business Process Management
Competitor landscape
has been analysed with the help of two frameworks. Figure 1 uses the classical
ambition matrix positioning Decentrlised Business Process Management or simply DBPM as a rather further out than
closer in innovation. We positioned multiply version of DBPM on the market
segment, because creating a cross-company business process between two
companies should not necessarily be regarded as a new market, perhaps not even
emerging. However creating business processes between companies, individuals
and IoT devices surely manifests as a new market segment.
Figure 1. Industry and competitive analysis with
ambition matrix
Figure 2
summarises the competitors on a rather architectural way concentrating on two
dimensions:
1. At the dimension of high trust architecture
the question is if the technology is based on Blockchain, providing a scalable
high-trust architecture by design, or on a classical client-server framework
(or perhaps old fashioned mainframe).
2. The diversity of
actors analyses how many different parties should be considered for a business
process, ranging from a one-company process to the processes of multiply
companies, individuals or intelligent gadgets.
Figure 3. Solution segmentation
Based on the two
orientation diagrams as well, we would argue that enterprise ready classical
Business Process solutions should be regarded as direct competitors of DBPM.
They do not necessarily focus directly on a cross-actor market, apart from some
examples like Kofax, but enterprise ready basically means that they can be
extended with some further development on a cross-company or even
cross-intelligent gadget scale. For example some of the ‘big players’, like
Oracle, IBM, or SAP implement cross-company functionalities as well. However on
the one hand they are not based on Blockchain solutions on the other hand they
require that the same solution is installed and licensed in all of the trusted
companies, like SAP processes between subsidiaries of a company. Enterprise
business process solutions can clearly compete on a markets where processes
between a few previously trusted companies should be implemented, but they will
have the weakness as soon as processes between a larger numbers of untrusted
actors should be set up.
As indirect
competitors we regard the whole smart contract market, including general
platforms, like Ethereum, Counterparty (Bitcoin based smart contract system) and systems like
Hyperledger. These platforms clearly provide the possibility to set up trust
between different untrusted actors based on smart contracts and Blockchain,
however they have rather a general focus and not a BPM specific one. As an
example a specific decentralised business process can surely be implemented as
a set of hard-coded smart contracts, but hard-coding one such a company
cooperation is completely different from providing a whole platform on which
such processes can be practically clicked together. Nevertheless the risk that
someone develops a competing solution on top of these frameworks is surely
bigger than zero.
Companies who
do something in the direction of multi-party trust system or business rules can
be regarded as potential competitors. The range is here pretty big, starting
from business rule engines like Decision, through digital business logic
platforms like Drools, to general IoT solutions, like Ritc. They seem
to be pretty far from DBPM at the first sight however they
have a similar and strong technology basis that can be further developed in the
direction of decentralised business process management without too much effort.
Based on the
previous analysis our competitive strategy is based on two major building
blocks:
1. Decentralised processes among large number of
possibly different kind of untrusted parties, including companies, individuals
and intelligent gadgets.
2. Low code solution in cooperation with local
consulting companies of different industrial fields, making possible that
decentralised processes are set up directly by the local experts of a certain
field or even by end-customers in a self-service way.
We see that
the market is pretty much in the emerging phase, hence the strategy is based on
segments, like IoT communication that are emerging markets themselves. As a
consequence we see the market and our competitive strategy as a blue ocean one.
Financial Framework for Decentralised Business Process Management
Setting up a financial framework for analysing DBPM (Decentralised
Business Process Management) we are going to use the following
considerations:
From a unit economical point of view the most important element that
directly carries the cost and indirectly generates revenue is an atomic t
transaction. A p process is set up as executing and validating a sequence of t transactions.In the business model, we distinguish two levels of the business. Core platform is responsible for executing decentralised transactions and processes. On the top of the core platform industry specific solutions can be delivered with the help of partner companies. On a long run industry specific solutions could be implemented directly by partner companies, however it is probably not realistic on a short run. As a consequence initial financial models consider both the development of the core platform and some of the industry specific solutions.
Costs structure is based on the following elements [Figure 1]:
1. Variable cost:
a. CoGS is mostly based on executing and
validating the transactions on a decentralised consensus. It can be easily
scale up or down depending on the customer needs. As opposed to a general
Turing complete Blockchain system where executing a transaction might be pretty
expensive due to the possibility of the infinite loops, at DBPM runtime of the
atomic transactions are always limited from above, implying O(|T|) execution cost for a set of T
transactions. The exact cost pretty much depends on the consensus mechanism,
implying different numbers at proof of work, at proof of stake or at majority
voting.
b. CoGS is also influenced by storing the states
of the validated transactions of a p process. It is manifested as a
general storage cost that will be increased as the process itself is used. It
requires further considerations if the whole state between two transactions is
directly and fully stored in the Blockchain itself or rather off-chain solution
might be used and only hash of the state is stored in the Blockchain.
c. Supporting the system to partner companies or
end-users is manifested as an additional variable cost.
2. Fix cost factors are mainly the SG&A expenses for running the
company itself. As the primary focus is on the partner business, the most
important is the professional business development as CAC.
3. Investment: For a successfully start both
the core framework and the first two or three industry specific solutions must
be ready. They requires a certain amount of development and initial investment.
Revenue structure has the following factors [Figure 1]:
1. Core services: customers get the value
of using a certain business process itself. As executing a business process
practically means executing a set of state changing transactions, it makes
sense to charge money after transactions.
2. Extended services might be possible as
well, as providing training or consulting. It might be however a possibility
that the company concentrates only core functionalities and every extended
service is provided only by partner companies.
Figure 5. General
cash-flow schema.
Business Model for Decentralised Business Process Management
Decentralised Business process management or simply DBPM is
intended to be a strong infrastructure oriented solution, business model is
based on an intensive partner network. The platform is not planned to be sold
directly to the end-customer, instead partner companies having the industry
specific know-how set up solutions on the top of DBPM [Figure 1]. A more
detailed description of the ten types of innovation is covered in chapter plan
as general operation model.
Figure 1. Business Model with Ten types of innovation
As DBPM
is based on a Blockchain protocol, both cost drivers and profit should be based
on transactions. It is certainly a question which digital consensus is applied,
at Poof of Work model each transaction or block validation cost directly a
certain amount of energy and money called the mining. At Proof of Stake or at general consensus mechanism like voting at Ripple rather a
general hosting and participation cost is manifested. In any case profit model
should be based on charging the customers after usage for individual or branch
of transactions.
From the
network perspective DBPM solution would not be offered directly to the
end-customers, instead the service would be sold with the help of strong B2B
cooperation via partner companies. Examples can be:
- consulting companies for setting up
cross-company contracts and processes
- IoT solution providers for setting up decentralised processes between hardware devices, for example for smart-homes.
- IoT solution providers for setting up decentralised processes between hardware devices, for example for smart-homes.
Structure and
process of the DBPM company would be pretty much similar to the classical
enterprise software vendors. The core solution is continuously developed; based
on the core solution industry specific features are developed. Instead of
internal development, a possible way is to work with a strong open source
community and develop the framework either with freelancers or with partner
companies, just as at Ethereum Foundation. Another aspect that must be
taken into consideration is the Network of hosters or miners who actually run
the whole system. Depending on the Blockchain solution miners and hosters are
paid in either by an internal cryptocurrency system or directly based on
revenue.
In the
middle of the product performance the core platform can be found: A
decentralised P2P process management platform, in which each workflow state
transition is validated by a consensus of the whole network. Apart from the
core, the product system will contain industry and branch specific solutions
and features.
One of the
most important feature from a customer point of view is that DBPM
is a no-code solution. It means that business processes can be ‘clicked’
together; in most of the cases no software developer is required. It makes a
strong impact both on the service and on the customer engagement side. As a
consequence of no-code development, distributed business processes can be
directly built and modified by the knowledge workers of a specific industry. In
this way rapid solution development and continues process improvement can be
realised, instead of having long-running development life cycles.
As a
consequence of no-code development, sales channels are the best to realise in
cooperation with local consulting companies. As an example on of the Big Four or Big Three companies can be an excellent candidate to use DBPM
with local consultants realising indirectly common sales channels as well.
Branding must
suggest the core business idea in a way and must suggest a strong and stability. From a technology point of view, name of the core technology can remain DBPM
however it is adequate only for strong technical audiences.
Tuesday, December 6, 2016
Decentralised Business Process Management
Reaching
slowly to the second machine age, cooperation and trust between different
actors will be an always increasing problem. We did have previously
difficulties as well as processes had to be set up including several companies
but the situation will be much more challenging as several million more or less
intelligent IoT devices start to communicate with each other.
Decentralised
Business Process Management (or briefly DBPM) is a customisable process
management platform to set up workflows among different untrusted parties,
independently if these parties are companies, end-users, end-customers or
intelligent gadgets of the IoT revolution. The processes are set up on the top
of a Blockchain, as a consequence trust is evaluated by the decentralised
consensus itself, making possible to implement complex trust scenarios among
many fundamentally different actors. DBPM provides a no-code or low-code
way of configuring processes, meaning that most workflows can be clicked
together with the help of a web based tool. It implies on the one hand that
end-customers without prior development or deep IT knowledge are able to
customize processes on their own. On the other hand, consulting companies of
different industrial fields are able to set up industry specific process
solutions as well; again without the need of coding or deep IT know-how. Considering current achievements and technological platforms of the Blockchain Revolution , setting up a DBPM framework and the full business around can be feasible from a couple of million dollar financing. .
Subscribe to:
Posts (Atom)