idiom transaction engine -...
TRANSCRIPT
+64 9 6308950 | @ [email protected] | idiomsoftware.com
2-2, 93 Dominion Road, Mount Eden, Auckland 1024
IDIOM Transaction Engine
An Application to Manage Complex
Business Entities
Whitepaper March 2018
IDIOM Transaction Engine
Whitepaper
© Idiom Ltd 2018 Version 21
IDIOM Transaction Engine
Background ................................................................................................................................................. 4
History ........................................................................................................................................................ 4
IDIOM Published Articles ....................................................................................................................... 5
Decisioning: a new approach to systems development ........................................................... 5
Requirements and the Beast of Complexity ................................................................................. 5
Decisioning – the Next Generation of Business Rules .................................................................. 6
The Role of SQL in Decision Centric Processing ............................................................................ 7
Taming the IT Beast with Decision Centric Processes .................................................................. 8
Where It Fits .............................................................................................................................................. 9
Form, Fit, and Function ........................................................................................................................ 10
IDIOM Transaction Engine ...................................................................................................................... 11
Purpose ................................................................................................................................................... 11
What is the Transaction Engine .......................................................................................................... 12
Transaction Engine Terminology ........................................................................................................ 14
Platform Technology ............................................................................................................................ 14
Component Overview ........................................................................................................................ 15
Built to be Secure and Scalable .................................................................................................... 16
Components ...................................................................................................................................... 17
Interpretation ..................................................................................................................................... 18
Services ................................................................................................................................................... 19
The Entity Builder Platform ................................................................................................................... 20
Generic Database ................................................................................................................................... 20
The Transaction Entity ...................................................................................................................... 21
Archetype Meta-Data ..................................................................................................................... 22
Permissioning and Workflow ........................................................................................................... 24
Batch Jobs ......................................................................................................................................... 25
Activity Log ........................................................................................................................................ 25
Putting it all Together ............................................................................................................................... 25
Data ........................................................................................................................................................ 25
IDIOM Transaction Engine
Whitepaper
© Idiom Ltd 2018 Version 21
Schemas ............................................................................................................................................. 26
ITE Meta Data .................................................................................................................................... 27
Processes ................................................................................................................................................ 28
Workflow ............................................................................................................................................. 29
Task Management ........................................................................................................................... 29
Getting Started ..................................................................................................................................... 30
The Generic Transaction ..................................................................................................................... 31
Versioning and Release ...................................................................................................................... 31
Transaction versions ......................................................................................................................... 33
IDIOM Tools ................................................................................................................................................ 33
IDIOM Decision Manager ................................................................................................................... 34
IDIOM Forms ........................................................................................................................................... 37
IDIOM Dialog Manager ....................................................................................................................... 38
IDIOM Decision Tracker ....................................................................................................................... 38
IDIOM Mapper ...................................................................................................................................... 38
IDIOM Decision Manager Workbench ............................................................................................. 38
IDIOM Document Generator ............................................................................................................. 40
Conclusion ................................................................................................................................................. 41
Mark Norton | CEO and Founder | Idiom Limited
+64 9 630 8950 | +64 21 434 669 | Australia free call 1800 049 004
2-2, 93 Dominion Road, Mount Eden, Auckland 1024 | PO Box 60101, Titirangi, Auckland 0642, New Zealand
@ [email protected] | idiomsoftware.com | Skype Mark.Norton
IDIOM Transaction Engine
Whitepaper
© Idiom Ltd 2018 Page 4
IDIOM Transaction Engine
BACKGROUND
This Whitepaper introduces the IDIOM Transaction Engine. The IDIOM Transaction Engine is a
recent IDIOM product that collates many new and existing IDIOM components into a
common enterprise scale platform that can be used to quickly and cost effectively build
transactional applications for a wide variety of complex business entities.
History
Over the past 17years IDIOM has conceived, evolved, and demonstrated the effectiveness
of its ‘decision centric’ development approach, which leverages both decisioning and agile
approaches to dramatically simplify and strengthen commercial systems development. This
whitepaper describes the IDIOM Transaction Engine and how it supports the decision centric
approach.
Development of systems using the approach, and the IDIOM tools that support it, has been
repeatedly shown to:
✓ simplify systems and their related development practices to reduce development time,
cost, and risk, by substantial amounts
✓ increase business agility
✓ improve the alignment of business policy and computer systems
The evolution of the approach has been chronicled in a series of published articles that
remain available as published.
For convenience, we have included a précis of the more important articles in the following
section. These précis’ provide insight into the evolution of the methodology and its rationale.
Links to the original articles are also provided for the interested reader.
An outline of the IDIOM Transaction Engine is then offered; this is followed by a description of
each of the IDIOM tools.
The IDIOM tools are derived from, and closely aligned with, the concepts described in the
articles, and together they provide a cost effective and risk averse path to successfully
building decision centric systems.
IDIOM Transaction Engine
Whitepaper
© Idiom Ltd 2018 Page 5
IDIOM Published Articles
Decisioning: a new approach to systems development1
This seminal article (published in the Business Rules Journal, Jan 2007) provided the
background and conceptual building blocks for decisioning and decision centric
development. It highlighted the importance and benefits of decision analysis to good
systems design, and at the same time, noted its absence from the then current development
methodologies. It drew important distinctions between decisions and ‘business rules’, and
noted the relatively greater importance of decisions over processes as analysis subjects.
It laid the conceptual foundation for decisions to be a fundamental unit of requirements
specification for both business and systems.
Decision: A single definitive datum that is derived by applying business knowledge to relevant data for the purpose of positively supporting or directing the activity of the business.
According to the article, these decisions are defined in the context of a decision model,
which is defined as:
Decision Model: An ordered assembly of decisions that creates new and proprietary information to further the mission of the business.
And decisioning itself was defined as:
Decisioning: The systematic discovery, definition, deployment, and execution of automated decision making.
Requirements and the Beast of Complexity2
[The ‘Requirements Article’]
This popular article (published in Modern Analyst, 2010 ~34,000 downloads) updated the
above article, and targeted requirements specifications as a significant weak link in the
traditional systems development cycle. It presented a case for a new approach to
requirements gathering and specification that is based on analysis of business policy to
identify core business entities and their respective state changes, which are then captured
and described as decision models and ultimately implemented as transactions. From the
paper’s conclusion:
1 http://www.brcommunity.com/b326a.php Decisioning: A new approach to Systems Development
2 http://www.modernanalyst.com/Resources/Articles/tabid/115/ID/1354/Requirements-and-the-Beast-of-
Complexity.aspx
IDIOM Transaction Engine
Whitepaper
© Idiom Ltd 2018 Page 6
“This ‘decision-centric development approach’ . . . focuses on a ‘missing link’ between business strategy and operational systems – the Decision Model. The Decision Model is a new and important requirements artefact that is accessible to and understood by both business and development practitioners, giving rise to a previously unobtainable level of shared understanding that can help bridge the gap between business strategies and the systems that support them. The Decision Model gives the business 'hands-on' control over the definition and implementation of its most critical IP – its decision making know-how.”
Decisioning – the Next Generation of Business Rules3
[The ‘Decisioning Article’]
This article (published in both Modern Analyst and Business Rules Journal, 2013) noted that
Charles Forgy, the inventor of the rete algorithm (which powered a generation of business
rules engines), listed criteria that more or less excludes ‘transactions’ as an appropriate use-
case for the algorithm. Notwithstanding, rete aligned, constraints based rules engines
continue to be used in transactional systems, adding both cost and complexity for little
value.
This article then expanded the scope of IDIOM’s business rules/decisioning concepts to
include the ability to dynamically create data that is aligned with the ‘idiom’4 of the business;
that is, with the nouns and noun clauses of the proprietary language (the idiom) that we
assert is always present when describing business rules. By definition, the idiom is always
proprietary to the author of the business rules because it is the need to define the proprietary
business rules that gives rise to the idiom.
Dynamic transformation from raw ‘real-world’ data to data that is compliant with the
business idiom is needed because a) it is rare that the real-world data is already in the
required state for adjudication by the rules, and b) the business idiom is fluid and ever
changing – it is the essence of business rules, changing whenever the business changes,
which contrasts with the relatively static nature of the real-world data definitions).
The article also highlighted the separation of the doing and decisioning components within a
system:
“Service oriented architectures are inexorably trending towards separation of ‘doing’ components from ‘deciding’ components. The ‘doing’ components can be commoditized and outsourced. The truly proprietary code, the code that captures business knowledge and IP, is being increasingly concentrated in the ‘deciding’ components.”
3 http://www.modernanalyst.com/Resources/Articles/tabid/115/ID/2713/Decisioning-the-next-generation-of-
Business-Rules.aspx 4 http://www.thefreedictionary.com/idiom [a. ‘A specialized vocabulary used by a group of people’]
IDIOM Transaction Engine
Whitepaper
© Idiom Ltd 2018 Page 7
The Role of SQL in Decision Centric Processing5
[The ‘SQL Article’]
The logical disconnect described in the above paper between the original design intent of
the technology (rete in that case) and its subsequent use, is echoed with SQL. This article
(published in Modern Analyst (2014) and the Business Rules Journal (2015)) noted that SQL
was designed from the outset to address a specific class of problem – set processing.
This class of problem does not fit easily with transactions, and is to a large extent redundant if
the data is hierarchically structured around core business entities (and is stored as such). In
essence, the article made the observation that the ubiquitous SQL ‘join’ is fundamentally
flawed when used in a transactional context: When dealing with the transaction’s subject
entity, dependent tables should be joined onto their parent entity; the parent entity should
not be joined on to the dependent tables. Again, and in apparent contrast with its original
purpose, complex ‘join’ based SQL is routinely used to underpin modern day transactions.
And to close the circle on the business idiom described in the Decisioning Article, we
observed that the labels that are used to describe data in the business idiom must describe
that data in context; that is, the labels used for the data values must include all relevant
context qualifiers. If we are going to be able to implement business rules that are described
using the idiom, then it is necessary that we also describe the data using the idiom; the
definition of the data ‘in context’ must be described using the language of the business
idiom and vice versa. This is something not easily achieved using SQL.
This correlation between the business idiom and data context is the essence of the linkage
between business policies and their implementation in computer systems. It is also the
backbone of business transactions, and in our experience, usually represents the major part
of a transaction’s internal work effort.
As a result, the SQL paper further extended the scope of IDIOM’s business rules/decisioning
concepts by highlighting data context as an integral part of a transaction’s ‘requirements
specification’.
With a decision authoring tool that understands context, we can quickly and completely
define decision models that address the full scope of policy driven decision-making,
including validation, transformation, calculation, adjudication and workflow; and which
requires only ‘simple SQL’ (i.e. no joins) to provide correct, consistent, and complete business
transactions of any size and complexity.
And these transactions will often execute much faster than solutions developed using more
traditional approaches to the use of SQL. This performance gain is primarily a reflection of the
way that SQL is used to support the transactions.
5 See, ‘The Role of SQL in Decision Centric Processing'
http://www.modernanalyst.com/Resources/Articles/tabid/115/ID/3109/The-Role-of-SQL-in-Decision-Centric-
Processes.aspx’
IDIOM Transaction Engine
Whitepaper
© Idiom Ltd 2018 Page 8
Taming the IT Beast with Decision Centric Processes6
[The ‘Process Article’]
This article (published in Modern Analyst in 2015) builds on the earlier articles to address the
process perspective of the approach. It describes a process architecture and a matching
development approach for decision centric systems. It uses ‘business transactions’ as the
core application building blocks. A business transaction is defined as:
Business Transaction: The activity that is initiated by an event that changes the state of a business entity, and which when complete leaves all systems compliant with all business policies that are relevant for that entity in that state.
A ‘business transaction’ as described by the article includes all possible state changes that
collectively define the complete life cycle of the subject ‘business entity’. This single, omnibus
transaction is called and executed for each and every event that affects the entity – this
collapses the number of business processes that need to be considered.
Process complexity is reduced to a finite and known set of business policies in the decision
models that comprise the business transaction; and a finite and known set of generic and
pre-built activities (usually implemented as services) in the underlying application. Process
orchestration is achieved by ‘just-in-time’ policy-derived decision making within the
transaction to determine the ‘best-next’ activity or process. The decision-making that follows
each activity only needs to calculate the ‘best-next’ step to ensure a complete and
consistent overall process; the only time best-next can be assessed is ‘right now’, using the
current context and event data to achieve immediate, real-time, process orchestration. We
call this approach to process management ‘binary BPM’ to reflect the two steps in the
approach (this step, next step).
The benefits are substantial. The architecture and its associated development approach
dramatically reduce the number of moving parts in the system, leading to an equally
dramatic reduction in the quantity of bespoke coding required. Throughout the article there
are observations regarding the simplification of systems development and execution that are
attributable to the approach.
When the approach is used to address complex business transaction processing, the
demonstrated results include substantial improvements in the key development metrics of
time, cost, and risk. These already encouraging results are accompanied by improvements in
business flexibility and agility, better alignment between business strategy and operational
systems, and systems that are more transparent and more durable.
In the approach described by the article, business ‘Subject Matter Experts’ [SMEs] assume
hands-on responsibility for the definition, capture, and deployment of the business policies
that manage the entity life-cycles within the business transactions. By using the IDIOM tools to
6 See, ‘Taming the IT Beast with Decision Centric Processes’
http://www.modernanalyst.com/Resources/Articles/tabid/115/ID/3291/Taming-the-IT-Beast-with-Decision-Centric-
Processes.aspx
IDIOM Transaction Engine
Whitepaper
© Idiom Ltd 2018 Page 9
implement the approach, these SMEs are empowered to take full and complete ownership
of the implementation of business policy within the operational business systems.
Where It Fits
It has become popular to refer to some systems as ‘systems of engagement’ and others as
‘systems of record’. Unfortunately, these two classes of systems are sometimes the only
classes of systems considered, and so they become receptacles for corporate knowledge in
the form of rules and similar knowledge artefacts simply for want of any other place to put
them. In which case, how is this knowledge managed and shared?
Figure 1 – Classes of Systems
IDIOM’s view is that there are other equally ranked classes of systems as per the adjacent
diagram [Figure 1]. Most importantly, all classes of systems should defer to the ‘system of
applied knowledge, innovation, and learning’ that sits centre-stage. This system becomes the
‘Core’ of the new IDIOM Transaction Engine.
IDIOM Transaction Engine
Whitepaper
© Idiom Ltd 2018 Page 10
This architectural pattern provides a formal place for corporate knowledge that is shareable
through an ‘API first’ approach. ‘API first’ is a concept that is expanding in popularity, and
which is neatly summed up by a guest commentator on the API Evangelist blog7 as follows:
“an API-first strategy is one where the API serves as both a pattern of an enterprises IT architecture as well as
catalyst for engagement. In a nutshell, an API-first strategy is a systems paradigm shift
- from a centralized, engineered mechanical system made up of subordinate parts serving as means to
deliberately designed ends
- to a decentralized, organic and evolving ecosystem where the individual actors can be spontaneously
enfranchised or co-opted by any other actor / set of actors to serve new purposes.
This allows the system to be more flexible, respond more quickly and behave more dynamically to suit
unforeseen purposes.”
API’s (especially in the form of WebAPIs) are a core feature of the Transaction Engine design
pattern, and are used to link the various classes of systems as shown in the above diagram.
Form, Fit, and Function
What we have described above can also be described by borrowing a phrase from
manufacturing viz. ‘form, fit, and function’.
In our version of ‘form, fit, and function’, form can be likened to the factory floor – the set of
activities and services that provide the core capabilities of the system (but not how it works).
Function is what is achieved with the form – that is, the application and use of the form to
achieve the ultimate purpose of the system.
And the fit describes how the activities in the form are orchestrated to achieve the function.
Form is what it is; function is what it does; and fit is how the form is orchestrated to achieve
the function.
The reframing of computer systems into form, fit, and function is the key to the improvements
that have been claimed above. The traditional systems approach does not separate form,
fit, and function; quite the opposite, the traditional computer process tightly binds the
function to the activities (the form) that support it, so that the activities are not universally
reusable, and their orchestration is not agile.
For this reason, processes are often confused with the function of the system – that is,
orthodoxy asserts that a process Is the function and includes the immediate activities that
support it. In fact, a process is an ephemeral consequence of the fit! This simple re-alignment
allows us to cleanly separate the purpose of the system (the function) from the underlying
activities that support it (the form). Process then reappears only fleetingly as the dynamic
7 http://apievangelist.com/
IDIOM Transaction Engine
Whitepaper
© Idiom Ltd 2018 Page 11
orchestration of activities to achieve the purpose, and is more correctly represented by a
decision model. The diminution of process is a key factor in reducing system complexity, and
improving flexibility and agility – a simple change to a decision can result in a new process,
quickly and safely.
Figure 2 – Business Logic is Content in an Optimally Architected System
IDIOM TRANSACTION ENGINE
Purpose
The essential purpose of the Transaction Engine is to manage the full life cycle of complex
business entities, exclusively and totally. The range of applicable entities is extensive, and
includes at least the following.
Information based products and services, for example loans, insurance policies, claims,
wealth accounts, pension accounts, etc.
People and their interactions with the organisation, for example, customers, passengers,
patients, beneficiaries, employees (including payroll).
Tangible entities; for example, property or physical assets that have conditional
maintenance and replacement cycles.
Derived concepts; for example, resource and capacity demands.
By ‘full life cycle’, we mean all events that affect the state of the entity, from acquisition
through disposition. The emphasis on ‘all’ is important – when all events are interpreted and
managed by the IDIOM decision models that sit within the Transaction Engine’s Core, then
IDIOM Transaction Engine
Whitepaper
© Idiom Ltd 2018 Page 12
the Transaction Engine can achieve its purpose exclusively, so that no other system or system
component needs to have any knowledge of the internal structure or state of the entity. This
exclusivity of knowledge and control that sits inside the Core allows the Transaction Engine to
be truly generic, to be configured by the business on demand as and when business
knowledge improves with regard to the management of the fundamental business entities
that define it. This provides the heart of a learning organisation.
This generic, business configured application is also both agile and business aligned, by
definition, which satisfies the primary objectives of the Transaction Engine concept.
And because the generic application components (i.e. ‘form’, prior to configuration) are
vendor supplied, we can reap the time, cost, and risk benefits of mass production; the
benefits of mass production and mass customisation together in a single ‘transaction
engine’.
What is the Transaction Engine
Figure 3 – IDIOM decision models provide the Fit between the Form (Transaction Engine, Legacy
Systems, External Systems), and the over-arching Business Purpose (the Function)
IDIOM Transaction Engine
Whitepaper
© Idiom Ltd 2018 Page 13
The IDIOM Transaction Engine is a set of libraries that together form the basis of a generic
application that can manage the full life-cycle of any complex business entity. The
functionality of the Transaction Engine can be described using the Form, Fit, Function
metaphor.
In the above diagram (Figure 3), we can see that the IDIOM tools (IDIOM Decision Manager
[I], IDIOM Forms [F], and IDIOM Document Generator [D]) are used to prescribe the business
functions of the system, predominantly using decision models. All of these tools interact with
the XML schema(s) that describe the entity context to provide a complete definition of the
business Function as it is seen by the business user community, at least as it relates to specific
entities.
The universe of existing systems (internal and external) are coupled together using the
Transaction Engine to provide the full set of activities that are available to support the
function, being the Form.
Finally, purpose specific IDIOM decision models operating at the Core of the Transaction
Engine provide the Fit, by orchestrating the executable form components as required to
support and achieve the function. We referred earlier to this just-in-time process orchestration
as Binary BPM, which provides a digital channel to support the function.
The Transaction Engine is not a finished application per se – it always requires configuration
with the IDIOM tools, and potentially some bespoke development in customer specific
extension libraries, to become functional in a specific client context. This is both deliberate
and beneficial. Historically, vendor applications have struggled to adapt to the many, many
variations in client business and technology requirements that are found in the real world. The
consequences of this struggle range from cumbersome, complex, and expensive ‘omnibus
systems’ (e.g. SAP); to systems that require significant customisation; to a need for multiple
systems; and/or the client simply accepts the constraints imposed by existing vendor
application(s). Or, the client goes it alone and builds entirely bespoke. Each of these options
incurs costs that can be much greater than the Transaction Engine approach to the
provisioning of business applications.
The Transaction Engine addresses the problem of variable client needs in two ways:
✓ By using the IDIOM tools to declaratively address the client’s unique business context
(‘what makes you different’) by configuration.
✓ And by completing the ‘last mile’ of application development only when the client’s
unique business context and the infrastructure context are both known; this
development is often limited to some integration.
In general, completing the ‘last mile’ of application development can be achieved in
parallel with the configuration of the business requirements using the IDIOM tools, so that any
plausible variation in the client’s technology landscape can be addressed without significant
time, cost, and risk at the same time as the client’s business context is being captured using
the IDIOM tools i.e. the entire project is completed in the time it takes to capture the
‘requirements’.
IDIOM Transaction Engine
Whitepaper
© Idiom Ltd 2018 Page 14
By the time the business requirements as described by the IDIOM tools are ready to be
deployed, the Transaction Engine is fully customised to the client’s specific needs. It is IDIOM’s
standard practice to limit this parallel development cycle to 100 days. Significant systems
can be developed within this timebox, which sits in the knee of an exponential curve as time,
cost, and risk start to climb exponentially with project size8. Limiting project size to a 100-day
time-box is a practical and effective way to ensure optimal development metrics and early
ROI.
Transaction Engine Terminology
We have chosen the term ‘transaction engine’ with some care.
Engine: “An agent, instrument, or means of accomplishment”
from the Latin ingenium innate quality, talent, ingenious contrivance 9
An engine in this context is a distinct software component that provides a ‘means of
accomplishment’. However, it may not be complete and ready for use in its delivered state:
It may need natively coded customisation and/or extension; and it will need the insertion of
various IDIOM tool generated artefacts that will define its ultimate business purpose.
The term transaction is used in a relatively orthodox manner to describe one or more
activities that collectively change the state of an entity (see Business Transaction definition in
the Process Article described above10). A state change is either made, or the entity is left
unchanged – there is no such thing as a partial transaction (by definition). The sum of all
state changes defines the life-cycle of the entity, completely and definitively.
Activity as described above refers to a secondary event that causes something to happen,
the details of which are unknown to the Transaction Engine Core. Each activity can be
thought of as a ‘black box’ from the perspective of the Transaction Engine; all required
‘black boxes’ can be orchestrated (on a ‘best next’ basis) by the Transaction Engine without
the Transaction Engine understanding how those ‘black boxes’ perform their tasks.
Finally, for the sake of clarity, any reference to Subject Matter Experts [SME] in this document
refers exclusively to the business experts who are responsible for the configurations that are
captured by the IDIOM tools; that is, they are the users of the IDIOM tools.
Platform Technology
The current reference version of the Transaction Engine is built on to Microsoft’s Azure
platform as a service as its reference platform. The choice of Azure as the initial target is a
matter of convenience, and is not intended to restrict IDIOM from porting the Transaction
8 See Programming Productivity, Capers Jones, Mcgraw-Hill, 1986. ISBN 978-0-07-032811-2 for an expansion on this
topic or visit https://en.wikipedia.org/wiki/Capers_Jones. 9 http://www.thefreedictionary.com/engine 10 Taming the IT Beast with Decision Centric Processes
IDIOM Transaction Engine
Whitepaper
© Idiom Ltd 2018 Page 15
Engine to other ‘PaaS’ offerings (for instance, Amazon or Google). IDIOM also offers
variations of the Transaction Engine, including: a virtual machine [VM] based solution that
runs on a traditional Microsoft technology stack, and which can be deployed in an
‘Infrastructure as a Service’[IaaS] cloud or on-premise; and a hybrid option for deployment of
the Core and its database in a VM, while the public facing components reside in the Azure
PaaS. In general, exclusively in-house (i.e. behind the firewall) applications tend towards the
VM options, while public facing applications tend towards PaaS, because of the greater
security and scalability offered by the PaaS.
Accordingly, the IDIOM Transaction Engine is currently Microsoft centric, primarily C# dotNET
Core, with Angular JS for the engine’s web user interfaces, and SQL Server database with
Azure Blob and File support. Authentication and authorisation use Identity Server, Active
Directory and/or Auth(0).
A secure token server [STS] is used to authorise every component that is used in every step of
every transaction to execute on behalf of the authenticated and authorised user.
Component Overview
The next diagram [Figure 4] provides an expanded view of the Transaction Engine, showing
the Core in its role as the dominant ‘system of knowledge, innovation, and learning’ inside
the larger application framework. Each icon in the diagram is a transaction engine
component making up the ‘form’.
The primary role of the Core is to execute the decision models that implement the
‘knowledge, innovation, and learning’ that makes the business transaction responsive to
business policies, and which orchestrates all workflow on a best, next basis.
The green icons highlight the IDIOM tool generated declarative components (schemas,
decision models, forms, documents) that inject the functional elements into the Transaction
Engine, and which differentiate the IDIOM Transaction Engine concept from a standard
application.
The XML that describes the subject entity is formally called the Entity XML, but the term ‘God
document’ better reflects its relative importance to the Transaction Engine concept. It is the
basis for what would often be a complete application in a traditional system; it usually
contains all of the data that describes all states of the subject entity, past, present, and
future – for instance, an insured and all of their insurance business; an entitlement beneficiary
and all of their entitlements; a superannuation fund member and all of their accounts and
entitlements, etc. In essence, it is a database for a single entity.
The God document is only ever created or changed by and within the Core under the
control of IDIOM decision models. For additional security, this document can be encrypted
and decrypted with a key that is only known to the Core.
When supported by the IDIOM Forms Engine and the IDIOM Document Generator, this allows
end-to-end entity life-cycle management to be built declaratively using the IDIOM tools.
IDIOM Transaction Engine
Whitepaper
© Idiom Ltd 2018 Page 16
The business functions defined and implemented declaratively using the IDIOM tools build on
to the balance of the Transaction Engine infrastructure as shown in Figure 4 (next page), and
when deployed, can collectively provide an end-to-end enterprise scale system of
substantial capability.
Figure 4 - The Transaction Engine, with the Core as the dominant ‘system of knowledge, innovation, and
learning’
Built to be Secure and Scalable
Each component can scale independently to service demand on virtually any scale (the
first constraint reached would be the single copy of the database).
Each component level transaction is thread-safe and stores its state in either the Blob
Store, the File Store, or the Database when complete, providing a resilient and scalable
architecture.
IDIOM Transaction Engine
Whitepaper
© Idiom Ltd 2018 Page 17
Logical transactions (online user transactions or externally managed batch processes
that change the state of the EntityXML) have a separate existence that is defined and
managed across component transactions using the ITE Meta Data.
Each component must separately acquire an ‘authority to operate’ token from the
Secure Token Server (STS) before it can perform operations on behalf of the user session
token (e.g. SAML).
Active Directory is typically used to authenticate domain users; Auth(0) is used to
authenticate Public Portal users (other home realms are possible).
The service calls between the major components only pass a small amount of data as a
single XML message (which is described by the ITE Meta Data schema, to be described
shortly).
Larger blocks of data are passed via the Blob Store, and may be encrypted by/for the
participating components.
The Database is Azure SQL if full PaaS, or SQL Server if the VM or hybrid. It can be
encrypted at rest, with the critical EntityXML data separately encrypted (if so configured)
at the column level.
The Forms Engine, which provides the user with access to the EntityXML indirectly via its
own proxy document, is isolated from the Core.
The user accessible Portals that comprise the balance of the user accessible application
can interact with all system components, but do not directly access the EntityXML.
The Admin Portal is permitted to access and update the database tables directly for the
various administration tasks that are not related to the EntityXML.
The net effect of the Portal and Forms Engine pairing is that any external web application
has either access to the Transaction Engine’s internal components, or to the EntityXML,
but not both. This is an intentional security consideration.
Other bespoke entry point applications can be added as required – for instance,
operational dashboards, mobile application servers, etc.
Components
The components in the above diagram include the following.
Admin Portal is a traditional menu based application for owners and administrators to
manage the system. Built using dotNet Core and Angular.
Public Portal is a separate web application redacted from the Admin Portal that has very
limited functionality, essentially limited to opening a form to provide access to the user’s
own business. Note that the reduction process from Admin to Public Portal actually
removed the relevant code; it is not just ‘switched off’.
Dashboard is a separate web application (Angular) that usually uses PowerBI to provide
dashboard style operational management information. The data needs of the
dashboard are provided by the Core through decision model configuration (see
ReportingXML).
IDIOM Forms Engine is enclosed in a separate container that provides full integration with
the Transaction Engine’s security and workflow.
Blob Store is Azure’s fast, low cost storage, or the local file system if in a VM.
IDIOM Transaction Engine
Whitepaper
© Idiom Ltd 2018 Page 18
SQL Server is either in a VM as the standard product, or Azure SQL if PaaS. EntityXML is the
decrypted God document in object form.
Core is a webapp that exclusively controls the EntityXML, and uses decision models to
orchestrate other components through process meta data.
Batch Job is a separate container that integrates standard and bespoke batch jobs with
the Core functionality. May be a WebJob if PaaS or a Windows Service if VM. Standard
jobs include BringUp processing and file pass.
Service Adapter is a separate application to accept and authorise all inbound service
requests. No external service has inbound access to the Core.
Service Bus is the Azure queue service (RabbitMQ if in a VM) that is used to queue batch
job requests, and Document Generator and Email requests.
Communications Handler is an application that orchestrates the response to each
‘communication request’, including document generation, email generation, and
inclusion of uploaded documents.
IDIOM Document Generator is a standalone application that has been integrated into
the Transaction Engine’s workflow. It is installed inside a WebApp.
Interpretation
With reference to Figure 1. Following is a brief description of the numbered connectors in the
diagram to give some sense of how it all works for a standard user interaction.
1. User is redirected to the Admin Portal or the Public Portal from a public website. If not
authenticated, authentication is required (perhaps Active Directory for the Admin Portal,
Auth(0) for the self-registered users).
2. Portal loads page of available entities or ‘add New’ button; if the Public Portal, only the
user’s personal entity data is available and no selection is required or offered.
3. User selects entity to work with. Portal populates a new instance of ‘ITE Meta Data’ and
passes it to the Core with the user’s request.
4. In accordance with the request from the Portal, the Core accesses the Entity XML and
loads it.
5. Within the Core, the Entity XML is decrypted (if needed) and passed to the decision
models. Rules determine the next action aka process step.
6. If a Form is required, then the Entity XML is transformed into the Form’s ‘Base Document’,
which is deposited in the Blob Store.
7. Core replies to the Portal that the base document is ready for the Forms Engine. The
Portal redirects to the Engine.
8. The Engine acquires the new Base document from the Blob Store. The form or dialog is
loaded. Periodically the Base document and ITE Meta Data are auto-saved (time based
or ‘Save’ button). When the form/dialog is ‘Submitted’, one last save is performed.
9. User interacts with the form or dialog. Note that a form can be a very large unit of work,
akin to an entire application in a traditional context. A dialog is similar but served in
smaller bites to meet the needs of other form factors.
IDIOM Transaction Engine
Whitepaper
© Idiom Ltd 2018 Page 19
10. The Forms Engine may execute external services using its own event handlers.
11. When the Base document is ‘submitted’ the Engine redirects back to the Portal.
12. The Portal reacquires the ITE Meta Data for the transaction and passes it back to the
Core.
13. The Core reacquires the Base document, and applies it to the Entity XML. The rules are
cycled to determine the next process step, which may include external services (27), a
batch job, and/or generation of business documents and emails.
14. Batch jobs, document generation and email requests are invoked by placing the ITE
Meta Data document onto the Service Bus.
15. The Service Bus handler reads the Service Bus and processes the request. This request
may have come from the Core for rules based requests, a Portal for manual requests, an
external service, or the scheduler.
16. A batch can interact with external services.
17. A Batch Job can interact with the Entity XML, but only via the Core. The Core will
transform the Batch Job’s inbound data (see 18) and apply it to the Entity XML before
running rules again. The Core updates the Entity XML and processes it back into the
database.
18. The Batch Job deposits data to the Blob Store for use by the Core or by a Portal. Business
documents that are generated by the Document Generator are also deposited into the
Blob Store (25), where they can be downloaded by users (21) or Portals (12).
19. Outbound batch files may be deposited into the File Store for download by users or
external processes. Inbound batch files may similarly be deposited into the File Store for
use by the Batch Job.
20. The Batch Job handler interacts with the database to maintain process meta data (job
started, job complete etc) and to update data outside of the Entity XML as required.
21. Authorised Users can access the Blob Store to download generated documents.
22. Any process can use the Email Server to send email.
23. New requests from external services are intercepted by the Service Adapter, which
validates and authorises the request before either launching an asynchronous Batch Job
(14), or a synchronous Core request (24).
24. Service Adapter can process transactions against the EntityXML via the Core.
25. All generated business documents are persisted in the Blob Store. The document URI is
registered in the database (26).
26. All communications, including each document and email, are registered against the
Entity.
Services
Integration is notoriously bespoke, and the Transaction Engine design accepts and adapts to
this reality. Therefore we expect to build web, queue and other bespoke service adapters as
IDIOM Transaction Engine
Whitepaper
© Idiom Ltd 2018 Page 20
required to meet the functional and integration requirements of the entity life-cycles for each
business; each new adapter that comes online can be used immediately as a new ‘activity’,
and invoked via SME authored decision models.
Any existing adapter can be reused at will. This reuse is further facilitated by separating the
generation of the data values used by the service from their formats. An IDIOM decision
model is used to map the Entity XML to each adapter’s specific schema, in both directions.
Therefore, provided that the context data and the adapter data have an appropriate
correlation, the SME designer can always read/write data to/from the adapter. In a second
and separate step, the adapter itself is then responsible for mapping that data to any
underlying technical implementation that the correspondent end-point may require (XML,
JSON, CSV etc).
The Entity Builder Platform
The Entity Builder Platform is the suite of IDIOM tools that can be used to configure the
Transaction Engine for the specific business purpose that is defined by the entities that it is
governing, for instance, an insurance product platform, a claims platform, a loan platform,
etc. Each of these tools is described later in this document, and includes:
✓ IDIOM Decision Manager
✓ IDIOM Forms Builder
✓ IDIOM Document Generator
The IDIOM Decision Manager Workbench is used to perform forward looking policy
simulations and to regression test policy changes prior to deploying new business policy. This
tool is a standalone application that is used by the SME’s to help develop and quality assure
business policy; it is not a ‘builder’ tool like the others.
All of these tools can be used by appropriately trained SMEs or their respective analysts. They
are described later in this document.
GENERIC DATABASE
The Transaction Engine uses a generic database design. By this, we mean a database that
has no awareness in its design of what business entity data it contains, nor how that data is
structured.
This database design is key to allowing the business to be able to extend and adapt entity
data as and when required, which is in turn an important element of the ‘business as
content’ design objective of the Transaction Engine itself.
The design requires that business entity data is stored as XML content within a simplified
database structure. For those familiar with data design, the following database schema
provides an approximate outline of that database, and the following discussion offers some
insight into the underlying design pattern used for the Engine. This database design is
synthesized from several databases in large scale production use today.
IDIOM Transaction Engine
Whitepaper
© Idiom Ltd 2018 Page 21
The complete system is only 34 tables, and is capable of servicing a broad range of business
domains as is. We can now look at the various colour coded sections of the database in
more detail.
Figure 5 – Database Design for Generic Transactions
The Transaction Entity
[Yellow Tables]
The focus of this discussion is on the Transaction Entity, which is the centre yellow table.
In this table we can see the business entity data stored as ‘EntityXML’. For commercial
domains of even modest complexity, this simple design concept can save us from having to
build CRUD (Create, Read, Update, Delete) programs for many (often 10’s) database tables;
nor are we constrained by the incredible development inertia that is implied by these tables.
IDIOM Transaction Engine
Whitepaper
© Idiom Ltd 2018 Page 22
As a bonus, query performance against this structure is typically better than with standard
‘many table’ database schemas because joins are rarely required. Also, ‘full text’ search on
the SearchXML column allows Google like search capability over the full extent of the
database at little cost11.
On transaction termination, the Transaction Engine will place a copy of the updated
EntityXML into the Entity History table, so that a full trace is maintained of every state change
for every entity, every time. This trace includes the latest copy of the EntityXML and the
ITEMetaDataXML. The ITEMetaDataXML is the Meta-Data that is used to control and record
the processing of and by the IDIOM Transaction Engine itself – it is a process map. Unlike the
EntityXML, the structure of the ITE Meta-Data is known to the Transaction Engine. The ITE
Meta-Data has its own IDIOM defined schema.
The Transaction Entity columns are never updated directly by a user – there is no UI for this. It
is the responsibility of the EntityModel to set the column values in most cases, and the
Transaction Engine itself for the balance. Note that complete and context rich reporting
data can be generated by the Core’s decision models within each transaction, and stored
in the ReportingXML column for use by the Dashboard.
The Service Data, Batch Entry, Payment, and Entity Log tables are all part of the overarching
audit approach, and provide supporting data for the state changes made to the EntityXML.
The Communication Table is a more complex structure that provides an audit capability for
auto generated communications, as well as a user operable communications for a modest
CRM capability.
Archetype Meta-Data
[Green Tables]
The Archetype Meta-Data is the data that describes the structure and logic of the
transactions that manage the state of the subject entities – that is, it is data that describes
the processing aspects for the type of entity being managed. This is where the business
processes and the business logic become content in the system.
The entity data describes the entity at rest; the archetype meta data describes the processes
which govern the entity state changes. Together these classes of data describe the full life
cycle of the entity.
While we refer to this meta data as ‘archetype’, in some cases ‘product’ or ‘service’, or ‘life-
cycle’, or ‘pathway’, or ‘workflow’, or some other term could be more appropriate. All such
terms describe the processes that govern the entity life cycle, and all are intended to be
covered by the term ‘archetype’.
11 Our experience with SQL Server is that the performance cost of full text search is insignificant.
IDIOM Transaction Engine
Whitepaper
© Idiom Ltd 2018 Page 23
As we can see in the above diagram, the Transaction Entity is described by an Archetype
Version (see also Figure 6 below), which links the Transaction Entity with all of the Meta-Data
that is required to manage that entity’s life-cycle.
The archetype concept is used to describe and manage all of the product and service
offerings that can be supported by the Archetype, each of which is described by an
Archetype Version record. The Archetype is the root of the Transaction Entity concept: It
names the EntityXML schema (aka the God Document) that describes all versions of the
entity for all Transaction Entities that are associated with the Archetype; and the EntityModel,
which defines all of the rules that govern the entity’s valid state changes.
The Archetype Version is a direct parent of the Transaction Entity. From the Archetype
Version we can reach:
The Product Version(s), which includes an (optional) pre-built blank EntityXML document
(as NewXML) for new instances of Transaction Entities; and an (optional) configuration
document (as ConfigXML). The configuration document is a document that holds various
parameters that will be used by the Archetype’s decision models12 to make the decision
processing specific to this Archetype Version.
The core decision models that implement and control the Archetype’s processes:
▪ The Archetype EntityModel, which is responsible for managing all states for all entities
that are described by the Archetype;
▪ the Reporting Model, which will generate easily extensible entity level reporting data
to be used by dashboards and other reporting tools;
▪ the SearchModel, which will select all searchable text for the SearchXML;
▪ the Enumeration Model, which dynamically generates all pick-lists used by the Forms,
according to both context and version constraints;
▪ the RulesDiffModel, which is used to ‘difference’ (used as a verb) the current and
immediate prior EntityXML for audit purposes;
▪ and the Payment Model, which is used to apply third party payments to the
EntityXML.
The Archetype itself, which describes the context data schema that describes all
instances of the EntityXML.
Forms, which are built over variations (the FormBaseSchema) of the Archetype’s
EntityXML schema, with further links to the models that support the Form. These include
the Business Model, which applies business logic to the form’s data; the Session Model,
which controls the Form’s Meta-Data; and the Transform Model, which maps the
EntityXML to/from the FormBaseSchema (which describes the form’s base document).
Service Adapters that may be needed to support each transaction. Each service is
supported by a decision model that is responsible for mapping the service data to/from
the EntityXML (a partially completed ‘skeleton XML’ can be used to shortcut this process);
the rest of the service is usually coded bespoke. The Content Format attribute of this table
12 For the sake of clarity, whenever we refer to a decision model, we may be referring to an entire family of decision
models that logically act as one under the control of a ‘control model’; control models are a supported feature of
the IDIOM Decision Manager.
IDIOM Transaction Engine
Whitepaper
© Idiom Ltd 2018 Page 24
is then used to transcribe the decision model defined data into the required technical
format (e.g. XML, JSON, CSV, etc).
Batch Types that may need to be processed against the Entity, both inbound and
outbound.
A list of Documents that are supported by the IDIOM Document Generator (or perhaps a
third party document generator).
The actual decision models referred to above are found in the ‘Binary’ column of the
Decision Model table [green], and are loaded directly from the database at runtime.
Permissioning and Workflow
[Red Tables]
The red tables in the model are used for workflow and process control. There are two major
classes of users:
✓ Public – Non Domain Internet Users
✓ Domain – Domain Authenticated Users
The Transaction Engine can include its own security model for managing user registration and
authentication for these users, or it can link to externally managed authentication and
authorisation.
Authorisation is not required for Public users because their very limited authorities are pre-
programmed into the Public Access Portal.
The Domain Users are authorised by the Administration Portal, which uses a role/claim based
authorisation regime that is integrated with the Azure Active Directory and Identity Server.
Within the Transaction Engine, the Domain Users are further classified into Internal and
External Domain Users. The Internal Domain Users belong to the owner of the system
(OwnerFlag = True on Party), and are not limited in the scope of the Transactions that they
can see. External Domain Users belong to a Party other than the Owner of the system; for
these users, data scope is restricted to the Transaction Entities for which they have a current
Related Party record in the Related Party table. Related Parties are generated by the Entity
Model, and are validated/updated with every transaction.
Tasks are manual workflow items that are assigned to users. They can be generated by the
Entity Model when the model needs to orchestrate human activity. The Task Code is used to
link the Task to its Task Type, which in turn links the Task to a Role Claim and thereafter to
authorised users etc. All users that are associated with a Task are tracked via the Task Role
table.
BringUps are future dated events that can be associated with different processes. The event
that the BringUpCode represents is invoked on due date, at which time the BringUp process
will pass in the Reference from the BringUp record to initiate the transaction. The normal
BringUp will simply load the parent Transaction Entity’s EntityXML into memory along with its
associated Entity Model, thereby starting a standard transaction in the Transaction Engine. A
BringUp will often generate a Task.
IDIOM Transaction Engine
Whitepaper
© Idiom Ltd 2018 Page 25
Batch Jobs
[Purple Tables]
Batches and Batch Jobs are related but not the same. A batch must be imported or
exported by a Batch Job; however, Batch Jobs can also conduct file passes of the
Transaction Entities without the need for an external file, BringUps being one specific
example.
Batch Jobs will maintain some process meta data including start and end times, record
counts, and lists of failed records.
There are many uses for batch data, including:
Financial records that are generated for the corporate ledger
Bordereaux style records for third parties
Management information and dashboard data for MIS use.
Batch Entries represent events that will be raised on external systems. These batch entries
must be persisted in the Transaction Engine until the target system is ready to receive them.
At this time a Batch Job is started and all Entries that have not yet been transferred are now
transferred and stamped with the Batch Job ID. During the transfer, the EntryDataXML will be
formatted as appropriate for the receiving system according to the Format attribute of the
Batch Type table.
Inbound batch data follows the inverse path, hence the ‘Direction’ column on Batch Type.
As each inbound Batch Entry is processed against its Transaction Entity (always in a new Core
‘logical’ transaction) the Batch Entry is inserted between its Batch Job and the Entity History
record that it just caused.
Activity Log
Any process can generate an activity log for any entity instance (a row) in any table. If
required, before and after images of changed data can be inserted into the log record.
PUTTING IT ALL TOGETHER
Data
The primary context data (the ‘God document’) is the data that describes the entity ‘en
toto’. The context data is described using an XML schema (the EntityXMLSchema), which for
a meaningful commercial entity often scales to several hundred thousand nodes or more,
with many layers of collection depth. This entity specific data is NOT known to the Transaction
Engine.
The ITE Meta-Data is data that is additional to and apart from the data that describes the
entity, and is intended to be understood by the Engine. It is produced by the decision models
IDIOM Transaction Engine
Whitepaper
© Idiom Ltd 2018 Page 26
acting as proxies for the business SMEs that manage them, and is used to control the
Transaction Engine workflow, and through it, all downstream activities.
Before and after each execution cycle of the primary decision model(s), the Engine will
inspect the Meta-Data and act accordingly (this is analogous to content based routing in an
ESB). For instance, if the decision model determines that additional data is required from
some external service, the Meta-Data would be used to initiate the service. Similarly, on
transaction termination, which occurs at the conclusion of an entity state change, the
decision models can use this mechanism to ensure that all downstream activities are
updated and aligned, by indirectly posting updates to all affected systems.
Data that is generated by the models for consumption by these external services, or which is
provided by the services for consumption by the decision models, is cached in a data store
in the form required or created by the external service. This creates an obligation on the
decision models to manage the transformation and loading of this data, which also isolates it
and implicitly validates it.
Schemas
We have referred to several XML schemas. The full set includes schemas that are defined
uniquely for each transaction; and a further set that are used to communicate with, and
support the operation of, the Transaction Engine itself. The former are named within the data
model as ‘xxxSchema’; the latter have fixed names that are known to the transaction
engine, so they are not named in the database.
The bespoke (i.e. client defined) schemas include:
EntityXMLSchema
ReportingSchema
FormBaseSchema (which is extended to create the Session Schema)
ServiceSchema
BatchSchema.
The fixed schemas are defined for and by the Transaction Engine, and include schemas that
define the:
ITEMetaData
UserConfigXML
Enumerations.
IDIOM Transaction Engine
Whitepaper
© Idiom Ltd 2018 Page 27
ITE Meta Data
Figure 6 – ITE Meta-Data XML schema
Within the Transaction Engine Core the decision models are able to control all elements of
workflow that are relevant to the business entity through the ITE Meta-Data; the ITE Meta-
Data is always present for every transaction, and exists for the duration of a business (or
IDIOM Transaction Engine
Whitepaper
© Idiom Ltd 2018 Page 28
logical) transaction, including the extended period when a user can be interacting with the
entity via Forms.
When the logical transaction has terminated, it is then persisted and retained in the same
history table record that contains the EntityXML that the transaction updated.
The Core will inspect the ITE Meta-Data on every rules cycle, and will respond to workflow
requests by initiating the relevant activities as required, including:
✓ Forms and generated Documents are requested using their respective elements in the
ITE Meta-Data schema.
✓ Real-time service based activities can be requested from the Engine by creating nodes
in the ITE Meta-Data XML that nominate the service required. The engine will then
execute the ServiceControlModel as defined by the Service Adapter (for the requested
service) to transform the context data into the data required by the Service. Any data
returned by the activity is added to the transaction’s available context data using the
same decision model to transform the inbound data.
✓ Future Dated Activities are controlled by generating Bring-Ups as ITE Meta-Data within
the primary decision cycle. The BringUps are stripped from the ITE Meta-Data XML when
the transaction terminates and persisted against the appropriate Transaction Entity in
the database. The Transaction Engine will launch a business transaction for each
business (transaction) entity that is nominated by a BringUp record on the BringUp date.
✓ Manual activities are controlled by generating Tasks as ITE Meta-Data within the primary
decision cycle. The Tasks are stripped from the ITE Meta-Data XML when the transaction
terminates and loaded against the appropriate Task Type. The Task Type implicitly
assigns the Tasks to appropriate roles by the rules that create them. The Admin Portal will
automatically present the list of outstanding Tasks and prior assignments to users
whenever they are signed on.
Processes
Processes are handled in a non-standard manner in the Transaction Engine. For the reasons
described in the Process Article, pre-defined business processes are not a primary
requirements artefact in the IDIOM approach.
Business processes are controlled by the ITE Meta Data and ‘emerge’ from the decision
models that are controlling this data. The traditional view of a process can be described as a
pre-defined and standardised sequence of activities, which in the case of the Transaction
Engine may include (at least) Decision Models, Forms, Service Requests, Tasks, BringUps, and
Document Requests. Each activity may be required in response to many conditions in the
underlying context; it is the purpose of the decision models to interpret this context data and
to translate it into the best-next activity, just-in-time, every-time.
By sequencing these component activities using the decision models, any pre-definable
process can be synthesized. Many possible variations in the activity sequences can evolve
over time, so that the ‘source of (process) truth’ is actually to be found in the decision models
rather than in any external process documentation. There is an argument that these models
are valid process documentation, albeit defining a process that is inherently more agile and
IDIOM Transaction Engine
Whitepaper
© Idiom Ltd 2018 Page 29
flexible than any that can be defined using more traditional BPM documentation techniques.
And these ‘rules as process’ models are also likely to satisfy audit or other regulatory
requirements because the intent of the ‘process’ can usually be more easily shown to have
been addressed.
Workflow
From Wikipedia:
A workflow consists of an orchestrated and repeatable pattern of business activity enabled by the systematic
organization of resources into processes that transform materials, provide services, or process information.[1] It can be depicted as a sequence of operations, declared as work of a person or group, [2] an organization of staff, or
one or more simple or complex mechanisms.
From a more abstract or higher-level perspective, workflow may be considered a view or representation of real
work.[3] The flow being described may refer to a document, service or archetype that is being transferred from
one step to another.
Workflow has many forms. There are four main workflow concepts within the Transaction
Engine, all managed by decision models.
Firstly, workflow within a transaction is managed by the decision models within an IDIOM
Form or Dialog, or if no form is present, then inside the decision models that are orchestrating
the state change in the Core. An IDIOM Form or Dialog is an activity (aka a process) that can
have diverse and complex internal workflows; it can be of significant size and complexity,
spanning many (dozens) of normalised entities and thousands of data elements, involving
many user interactions, and potentially raising other secondary events. In many ways a single
IDIOM Form or Dialog more closely resembles a traditional application than a single process.
Secondly, workflow across and between activities is managed by the Transaction Engine
acting in response to events raised in the Core and triggered via the ITE Meta Data. These
events are created by the attendant decision models, and cause the Transaction Engine to
execute the activities via the Meta Data (e.g. one or more Forms, external services, etc.).
Thirdly, workflow that involves human operator intervention is managed by Tasks. Tasks are
events that are raised in the ITE Meta Data and then inserted into the database to drive
human activities.
Fourthly, workflow that spans time is managed by BringUps. BringUps are future dated events
that can cause the Transaction Engine to initiate any of the activities described above.
Task Management
Any Domain User can have access to Task lists, either at sign-on or via the menus.
The Tasks displayed in the list(s) are selected and ranked according to the user’s roles, and
by relevant dates and status etc.
IDIOM Transaction Engine
Whitepaper
© Idiom Ltd 2018 Page 30
Depending on the system owner’s preferences, Tasks may be assigned or re-assigned for
action through self-selection (by the user), by others, or only by specific roles or levels of
seniority, or they may be operated on by any user on a first come, first serve basis, etc.
A task that is generated by decision models will usually cause some activity against the
EntityXML. This task driven activity will then cause an update to the Task list, as well as the
BringUps.
Therefore, when a Task is created, it is common to also create a follow up BringUp; if the
BringUp is still in existence on the BringUpDate, then it will cause the EntityXML to be opened
and reviewed. This process may in turn generate a new and more urgent Task (again with a
follow up BringUp) or some other activity.
This interplay of Tasks and BringUps is how human operator workflows are integrated into the
automated workflows that are being managed by the decision models.
Getting Started
As noted in our preamble, the Transaction Engine is always incomplete when delivered.
Each instance of the Transaction Engine will require some degree of tailoring to marry it up to
the existing infrastructure. This infrastructure can be all external for a new business, and/or it
can involve multiple legacy systems for a long established business.
Often, this retro-fitting process is limited to development of new Services, and perhaps linking
into existing corporate authentication and authorisation infrastructure. However, there is no
inherent limit to the customisation, and this can include extensions to the database and all
that this implies.
While the Transaction Engine is being ‘fitted’ into the technical environment, the SME’s should
be busy configuring the business content using the IDIOM tools. This process is usually started
using IDIOM consultants in a ‘buddy’ style development mode, followed by a transition to
SME development without IDIOM assistance. The SME learning period is usually measured in
weeks.
The tailoring of the Transaction Engine, and the development and testing of the IDIOM tool
configurations, should occur more or less independently of and in parallel with the technical
customisation. IDIOM recommends a maximum development window for both of these
activities of 100 working days; beyond that, we suggest reducing scope. Our underlying
principle is that a modest but concise initial business scope is an important ingredient of
success.
When the first iteration of the Transaction Engine has been deployed, ongoing adjustments
can be made by the SME’s acting alone, save perhaps for the comparatively infrequent
addition or update to Service adaptors as may be required to maintain alignment with the
external technology landscape.
IDIOM Transaction Engine
Whitepaper
© Idiom Ltd 2018 Page 31
The Generic Transaction
The following diagram [Figure 7] shows a representative transaction outline for illustrative
purposes that is capable of addressing many standard entity life-cycles, including those that
we have used as examples in this document (insurance policies, claims, loans, patient
episodes, patient clinical pathways, passengers, taxpayers, entitlements, et al).
The variations in the underlying entities, and by extension, their life-cycles, are all addressed
by the IDIOM tools within the ‘Entity Builder Platform’. The SME has extensive control over the
definition of these entities, and of the actions that form their respective life-cycles. Provided
that the various service end-points are available to supply data to the transaction on
request, and to respond to the updates generated by the transaction on termination, then
the transaction itself can be a black box.
The majority of the complexity in the transaction is in the decision models, which are
compiled and executed behind the standard interface that is built into the generic business
transaction itself. Independently measured projects have assessed this declarative
development effort as being ~20 times more efficient than traditional SDLC approaches to
achieve the same end; and the decision models are transparent, auditable, individually
testable and traceable, and more easily maintained.
The IDIOM Transaction Engine uses the Archetype to look up and load the relevant decision
models based on the nature of the entity that it is managing and as the specific event and
context requires.
Note that IDIOM Forms, Dialogs, and Document Generator use IDIOM decision models to
drive their respective runtime Meta-Data, which is what makes these runtime engines truly
generic. The ongoing development of the decision models, forms, and documents requires
the builder versions of each of these tools. These are shown inside the Entity Builder Platform.
The Workbench is also available in this platform to assist with policy modelling on the one
hand, and regression testing on the other.
Versioning and Release
Nimble, continuous, perpetual, business led development
An important objective of a transaction/decision centric application is nimble, continuous,
and perpetual development and release of business policy by business owners, or more
specifically, the SMEs. This business policy is usually focused on management of complex
entity life-cycles.
Policy adjustments should be able to be developed, tested and deployed at any time. The
intent is not to actually deploy changes (say) daily, but to be able to deploy new policy at
any time the business requires, without the delay and risk inherent in traditional ‘code-drops’.
In the Transaction Engine, all parts of the business transaction, including all policy changes,
are effective dated and cumulative forever. The business transaction is always able to
operate ‘as at’ any prior date. The IDIOM approach even allows effective dating that spans
changes in the entity schemas.
IDIOM Transaction Engine
Whitepaper
© Idiom Ltd 2018 Page 32
Figure 7 The Transaction Engine at work
IDIOM Transaction Engine
Whitepaper
© Idiom Ltd 2018 Page 33
With a transaction/decision centric application there is a new dichotomy in versioning: the
schemas, forms, rules, and business documents, and all of their associated reference data,
can all be deployed externally to, and independently of, the code-base of the Transaction
Engine.
The continuous versioning that is inherent in the IDIOM approach is designed to support
nimble, continuous, perpetual, change in a decision centric application.
Transaction versions
A ‘transaction version’ is the net effect of all of the rules that implement the entirety of the
business policy as it was defined at the point in time that is defined by the transaction’s
effective date. Transaction versioning is therefore implicitly an effective dating regime.
Each change in the rules or of any aspect of the declarative design within a business
transaction implies a version update for that transaction, and by extension, for the product or
service that it supports. In the IDIOM Transaction Engine, all such versions remain valid and
operational, subject to the effective date of the transaction at runtime.
Business transactions can also be versioned on criteria other than effective date, through
configuration or rules changes – for instance, the term for specific conditions might be
negotiated so that each customer might see a different version of the same transaction rules
on the same date. This is achieved by dynamically setting the effective date using rules that
apply the specific conditions.
As we have noted, the business transaction concept is generic. When implemented as
described, this means that entirely new business entities and their related Meta-Data can be
introduced at any time, potentially without changing any host application code. For the
sake of clarity, new types of entities, including new product types, can be introduced and,
unless new activities are required, can be quickly made fully functional within the Transaction
Engine.
IDIOM TOOLS
As you might expect, IDIOM has been fine-tuning its flagship IDIOM Decision Manager
product since its launch in 2001 to fully support the concepts outlined in our series of articles
and this document.
The ‘idiom’ is the proprietary language that is used to describe the essence of any business –
it is used to describe its business policies, its decision making, and its business rules. And in so
doing, the idiom refers to the data in the context required by the rules. In fact, the name of
our company was an early reflection of the importance of the business ‘idiom’, and its
relationship to both business rules and data.
The challenge lies in mirroring this context within the various executables that implement it.
Defining, capturing, validating, & automating the business ‘idiom’ is the essence of our business and of our flagship product, the IDIOM Decision Manager
IDIOM Transaction Engine
Whitepaper
© Idiom Ltd 2018 Page 34
The IDIOM Decision Manager Workbench is an industrial scale, ready-made, stand-alone
batch application processor for large scale, high performance batch processing of IDIOM
decision models.
A transaction often requires dialog with a human actor. A dialog is easily managed by
building an IDIOM form over the business transaction’s entity and event data – the same
data that is available to the decision models that interpret and maintain it.
An IDIOM form includes the ability to execute IDIOM decision models inside the form on a
large scale, field by field if necessary, to ensure a truly reflexive user experience.
Sometimes the form factor of the client device does not fit well with the size and complexity
of an IDIOM form. In these cases, the Dialog Manager can be used to serve equivalent data
(to that of the form) in appropriately smaller sized packages, to be eventually rendered by
form factor specific user interfaces.
Finally, the transaction end state might need to be reported via one or more business
documents. The IDIOM Document Generator can be used to generate business documents
under the control of decision models, using only Word authored text and images as
additional design input.
IDIOM Decision Manager
✓ IDIOM Decision Manager is a tool for graphically modelling, testing, and deploying
business decision-making logic – without programming!
✓ A tool for the policy maker, not the programmer.
✓ IDIOM automates complex decision-making at the enterprise level, deployable as
industrial strength stand-alone software components.
✓ In day-to-day practice it is used by SMEs, or analysts working closely with them.
✓ Together they model the business policies in terms of both data and decisions (see
Decision Model below) before moving on to define the underlying logic that binds them
together (see Formula below).
✓ The decision logic and data are usually modelled together in a single combined process
of analysis and definition.
✓ The data model and the decision model share the same ‘context awareness’, with
current-context and context boundaries visually highlighted within the development
palettes.
✓ Testing of the models is available at all times within the development palettes
themselves; extensive regression testing (incl. ‘model answer’ differencing) is available in
the on-board ‘Test Executive’ (not shown).
✓ Deployment as 100% generated software components is fully automated and ‘without
fingerprints’.
✓ Example below is a small but real model drawn from a city council implementation of
policy that calculates financial contributions to be paid by property developers.
✓ The problem domain is decomposed using a ‘mind mapping’ approach until we reach
the atomic units that we call decisions (rounded boxes).
IDIOM Transaction Engine
Whitepaper
© Idiom Ltd 2018 Page 35
✓ This ‘decision model’ and the adjacent data model (left hand panel below) are
demonstrably aligned and integrated through shared context – validating and
strengthening both.
✓ The data model defines the entity at rest; the decision model defines the valid state
transitions. Together they completely define the entity life-cycle and required business
policy.
✓ The atomic ‘decisions’ provide an easy entry point for specification of the underlying
rules details via the Formulas (see next).
✓ The underlying rules details are easily captured using a ‘Lego like’ drag-and-drop
approach that is ‘more fun than playing golf’ according to the CEO of one of our largest
customers – there is no scripting or coding required to build formulas.
✓ The rules can be tested immediately within the IDIOM Decision Manager palettes.
✓ When finished, IDIOM Decision Manager generates computer source code (C# or Java)
with a single button click, to be called by any application at run-time using any of a
wide variety of supplied interfaces and wrappers (in-line, dll, web service, queue service,
and many more).
✓ And at the same time, it generates the models into business readable PDF
documentation.
Figure 8 IDIOM Decision Manager - Decision palette showing a Decision Model and Schema
IDIOM Transaction Engine
Whitepaper
© Idiom Ltd 2018 Page 36
Key points of difference
✓ IDIOM’s decision models do for decisions what data models do for data – a powerful
abstraction that makes the underlying complexity visible and manageable.
✓ The models allow data transformations and more traditional business rules to be
intermingled. Business rules acting alone are severely limited in their ability to fully resolve
complex commercial problems – invariably, in-line data transformations are necessary to
facilitate the calculate/adjudicate/act behaviour of business rules.
✓ Context is continuously displayed and actively managed.
✓ Decision models that incorporate both data and rules behaviour enable a further critical
capability that is unique to IDIOM Decision Manager – the models can be fully tested
using real-world cases directly in the builder palettes. No external technology or
application support is required to empirically prove the completeness, consistency, and
correctness of the models.
Key points of innovation
✓ Fundamental redesign of the traditional SDLC by fully separating the development and
automation of business policy (deciding) from development of the system’s activities
that support it (doing).
✓ Use of IDIOM is effective in spawning a ‘Business Policy Development Life Cycle’ that is
managed independently of and alongside the traditional Systems Development Life
Cycle.
Key value propositions
✓ 100% alignment of systems based decision making with business policy, because the
business owners have hands-on custody and control of the policy definitions actually
used by the system.
✓ Increased agility with reduced business risk through business modelling and empirical
testing of policy definitions prior to automated generation and implementation.
✓ Significant reduction in the business cost of developing and implementing automated
business policy.
✓ Further reduction in software development time, cost, and risk through reduced system
complexity, fewer moving parts, & clear separation of concerns.
Further benefits
✓ Full auditability of policy changes, and visibility of policy implementation through the
graphical models and logical English PDF generation.
✓ Decision model artefacts can be traced to/from ‘sources of truth’ in underlying business
policy documents (Word, Excel) using the IDIOM Tracker for requirements traceability.
✓ The IDIOM Decision Manager Workbench is available to experiment with and further
develop policy independently of the underlying systems and of the SDLC.
✓ Automated, robust, industrial strength deployment on any scale that can be supported
by the ‘host application’ and its underlying platform.
✓ Simple injection into legacy systems leading to eventual legacy replacement
IDIOM Transaction Engine
Whitepaper
© Idiom Ltd 2018 Page 37
Figure 9 IDIOM Decision Manager - showing the Formula Palette
IDIOM Forms
IDIOM Forms is a tool for generating web2.0 forms that embed the power of IDIOM decision
models into the form itself. As the user navigates through an IDIOM Form, the integrated
decision models can be executed on an element by element basis to make various business
calculations and assessments; and to modify the form’s meta-data. Control of the form’s
meta-data allows the decision models to dynamically adjust the visible shape and content
of the form on an element by element basis.
A single IDIOM Form can be used to process complex business transactions (e.g. an
insurance application, a clinical pathway, a loan application) through to closure, including
such functions as validation, transaction acceptance, costing or pricing, up-selling, and
determination of subsequent workflow amongst others. Usually, a single form is used to
manage the full life-cycle of the subject entity (i.e. not just individual state changes). The
IDIOM Forms Engine (the runtime component of IDIOM Forms) is production hardened after
many years use on thousands of servers throughout the NZ health sector. The deployed
IDIOM Forms Engine became the basis for the NZ Health Information Standards Organization
(HISO) forms standard and is currently the most compliant under that standard. The Forms
Engine is now also widely used in the finance and government sectors.
IDIOM Transaction Engine
Whitepaper
© Idiom Ltd 2018 Page 38
IDIOM Dialog Manager
The IDIOM Dialog Manager leverages standardised forms definitions and platform specific
implementations to deliver tailored conversations to different form factors (e.g. iPhone,
Android Phones, Tablets, etc.). The forms are defined using an industry standard forms
schema13 that has multiple industry supplied implementations in different frameworks. The
IDIOM Dialog Manager maintains a small library of forms definitions and progressively supplies
fragments of XML data to these forms from an underlying base document. IDIOM decision
models are used to orchestrate the form sequences and to transform the inbound/outbound
data, which is mapped to/from the base document as required. The core business decision
making is implemented against the base document and executes at each step in the forms
cycle.
IDIOM Decision Tracker
The IDIOM Decision Tracker is a tool to map Microsoft Word and Excel policy documents to
IDIOM decision models for full bi-directional traceability between corporate policy definitions
in the Microsoft documents and their actual implementation as IDIOM generated decision
engines.
IDIOM Mapper
The IDIOM Mapper builds an in-memory XML document that mirrors the normalised database
structure that it is reading from. It generates ‘simple SQL’ from an XML configuration
document, and then executes a full round trip transaction cycle: from database to XML;
then rules execution (multiple decision models); and from XML back to the database if
required. All done extremely quickly, either in single transactions or in batch. The Mapper
process is thread-safe and can execute in many process streams for scalability that is limited
only by the database and its underlying platform. The Mapper is not normally used within the
Transaction Engine, which does not use the traditional fully normalised data approach, but
may be useful for tight legacy systems integration.
IDIOM Decision Manager Workbench
The IDIOM Decision Manager Workbench is a business operable application for running
decision models across enterprise databases on a large scale without the need for IT
technical support.
✓ A generic batch processing platform for use by IT and/or business operations.
13 see http://jsonschema.net/
IDIOM Transaction Engine
Whitepaper
© Idiom Ltd 2018 Page 39
✓ A platform for the auditor, the business policy manager, the product manager, the
corporate business strategy manager and the IT manager.
✓ An audit tool for identifying, reporting, and managing anomalies, errors, and issues of
concern in any database.
✓ A simulation tool for comparing the performance of current and ‘to be’ versions of any
automated policy.
✓ A tool that can intelligently modify the inbound data to simulate changes in the make-
up of inbound transactions over time.
✓ A data masking tool, able to replicate large scale databases with all personally
identifying details masked from its own library of several million fake identities.
Relationships between identities in the source data can be maintained, notwithstanding
the use of fake identities.
✓ A system conversion tool: able to read data from one system in its proprietary format;
intelligently transform it through one or more decision models; and then output it to a
new system also in its proprietary format. Millions of entities described by hundreds of
tables can be supported.
Figure 10 IDIOM Decision Manager Workbench
Examples of use
Superannuation Fund Administrator: Perform all period end processing, including fee’s,
insurances, member adjustments, entitlements, and reporting, for several hundred
thousand fund members.
Insurer: Compare the current underwriting policy with a proposed underwriting policy
across a recent portfolio of 500,000 insurance policies to determine potential changes in
the rate of referral and its attendant costs.
Superannuation Fund Administrator: Run 100’s of distinct audit tests across 1million
member accounts on a daily basis to independently verify the production data.
IDIOM Transaction Engine
Whitepaper
© Idiom Ltd 2018 Page 40
City Council: Compare this year’s rating policy with next year’s proposed rating policy
for each property in a city of more than 500,000 ratepayers to identify outlier changes in
the rates actually charged.
Insurer: Dynamically modify key attributes of real transactions to simulate changes in the
make–up of in-bound business, and assess the impact of these changes across an entire
portfolio.
Enterprise class features
✓ Full authorization and audit controls down to the field level for all users of the platform.
✓ Seamless operation across multiple user definable environments, for instance
Development, UAT, Simulation, Production.
✓ High performance, including parallel processing on a large scale across multiple
machines, for instance running up to 24 Processes on an i7 class CPU, with multiple CPU’s
possible, each logging back to the Workbench for centralized management.
Measured performance
✓ Daily pass of 1million pension fund members each comprised of a join of 20+ complex
member related tables (~one billion rows in total).
✓ 10’s of decision models implementing hundreds of individual member tests.
✓ Alerts captured and reported daily for start of business.
✓ Run daily in 2 hours using one i7 class processor, with data drawn from an IBM iSeries.
IDIOM Document Generator
The IDIOM Document Generator is a tool to collect and collate Word documents (which are
used as document ‘templates’) and many associated Word text fragments [‘blurbs’], and to
assemble these into complete documents under the control of a decision model.
At document design time, the Document Generator inspects the templates and blurbs and
builds a list of all blurbs (including nested blurbs) that could be used for each candidate
document; and it also builds a list of all of the variables declared within them. It then places
these two lists (blurbs and variables) into an XML ‘control document’.
A decision model is then built that will extend this XML control document at runtime when the
specific business entity context is known. This decision model will analyse the business entity
context data in order to set flags to control the insertion (or not) of each blurb; and it will
derive the substitution values for each of the listed variables.
At runtime, when the actual business entity data is provided and the decision model has
executed, the Document Generator will read the tags in the control document to insert the
desired blurbs into the template, followed by substitution of all variables, so that large and
complex documents can be generated automatically under the control of the decision
model to reflect the exact circumstances of the underlying business entity. The Document
Generator also allows for insertion of images and for calling bespoke programs to insert
additional generated text or images. Documents can be generated into a number of
formats, including Word and PDF. In day to day use by SME’s, the Document Generator only
IDIOM Transaction Engine
Whitepaper
© Idiom Ltd 2018 Page 41
requires standard Microsoft Word and IDIOM Decision Manager authoring skills to define new
documents.
Figure 11 IDIOM Document Generator
CONCLUSION
This whitepaper describes the rationale, structure, and use of the IDIOM Transaction Engine.
If you are a prospective user of this innovative platform, then the next step is to do a proof-of-
concept using the IDIOM tools to abstract your business within the engine.
IDIOM will be pleased to work with you to complete these activities, after which we can fix
price the end-to-end application delivery. We are then ready to start development, and you
should be operational by the end of the next quarter 100 days away.
Finis
Mark Norton | CEO and Founder | IDIOM Limited
+64 9 630 8950 | +64 21 434 669 | Australia free call 1800 049 004
2-2, 93 Dominion Road, Mount Eden, Auckland 1024 | PO Box 60101, Titirangi, Auckland 0642, New Zealand
@ [email protected] | idiomsoftware.com | Skype Mark.Norton
+64 9 6308950 | @ [email protected] | idiomsoftware.com
2-2, 93 Dominion Road, Mount Eden, Auckland 1024
About IDIOM
Established in 2001, IDIOM Limited is a private company based in Auckland, New Zealand.
IDIOM develops and licenses decision-making software that automates business policy on a
large scale, making systems more transparent, more agile, and more durable, while reducing
development time, cost, and risk.
IDIOM’s innovative business oriented software is used by business users to graphically define,
document, and verify corporate decision-making and related business rules; it then auto-
generates these into small footprint, non-intrusive software components for use in systems of
any type or scale. IDIOM is a pioneer in the development and use of decision automation
concepts, and has applied these concepts to develop and automate business policy for
Partners around the world in local/state/central government, health admin/clinical health,
insurance/superannuation/finance, telecoms, logistics, and utilities.
IDIOM develops and licenses: IDIOM Decision Manager™, IDIOM Forms™, IDIOM Document
Generator™, IDIOM Dialog Manager™, IDIOM Mapper™, IDIOM Tracker™, IDIOM Decision
Manager Workbench™ and the IDIOM Transaction Engine™