2015-04-20

Architecting #cloud-friendly application architecture #apparch (inspired by #microservices)

1 Introduction


This blogpost extends the blogpost “Architecting application architecture #apparch (inspired by #microservices)” http://improving-bpm-systems.blogspot.ch/2014/12/architecting-application-architecture.html to “cloud-friendly application architecture”. You may jump to chapter 8 to see a demo of it.

This cloud-friendly application architecture opens the way to synergy between #BPM, #SOA, #cloud, #microservices, #IoT, #digital and #security.

2 Clarification of some terminology


2.1 Process

Many articles about microservices mentioned “process”. I believe they mean “computing process” (e.g. an instance of JVM) which should not be confused with “business process”.

2.2 Orchestration

Another confusing term is “orchestration”. In some articles, it means “container orchestration layer” which allows one to specify how the micro-services are handled in fault tolerant and in scaling up and scaling down (see http://cloudramblings.me/2015/03/20/microservices-martin-fowler-netscape-componentized-composable-platforms-and-soa-service-oriented-architecture ).

See also http://www.slideshare.net/adriancockcroft/dockercon-state-of-the-art-in-microservices slide 70 “Orchestration for Applications”

O’Reilly book “Migrating to Cloud-Native Application Architectures” http://pivotal.io/platform-as-a-service/migrating-to-cloud-native-application-architectures-ebook says “The ESB becomes the owner of all routing, transformation, policy, security, and other decisions governing the interaction between services. We call this orchestration, analogous to the conductor who determines the course of the music performed by an orchestra during its performance. ESBs and orchestration make for very simple and pleasing architecture diagrams, but their simplicity is deceiving. Often hiding within the ESB is a tangled web of complexity.” I think, this is a wrong analogy. The conductor delivers only one symphony at a time. ESB delivers many symphonies at the same time. Not surprising that it such “centralised orchestration” is difficult.

In other articles, it means one of two BPMN ways to compose business processes – orchestration as a strong coordination and choreography as weak coordination. This orchestration is a domain bounded because it is carried out in the scope of a particular business process.

3  Commenting some posts about microservices


From http://intellyx.com/2015/03/11/microservices-avoiding-dumb-pipes/ “Rather, we simply have a new way of thinking about “smart” pipes – microservice integration that is architected following web scale, cloud-centric principles.”

Good point although I think being “cloud-friendly” is better than “cloud-centric” as the hybrid environment is very attractive right now.

From http://www.computerweekly.com/feature/Microservices-How-to-prepare-next-generation-cloud-applications “Each microservice is an independent, autonomous process with no dependency on other microservices. It does not even know or acknowledge the existence of other microservices.

Microservices communicate with each other through language and platform-agnostic application programming interfaces (APIs). These APIs are typically exposed as Rest endpoints or can be invoked via lightweight messaging protocols such as RabbitMQ. They are loosely coupled with each other avoiding synchronous and blocking-calls whenever possible.”

The first of these two paragraphs says that each microservice is “independent” from other microservices and the second paragraph says “microservices communicate with each other” thus there is some dependency.

Certainly, microservices are interdependent by design and operationally-independent. It seems that microservices may refer to each other indirectly via a “naming service” (some kind of URI to URL mapper or like in CORBA). Therefore, a microservice may employ other microservices to complete its work. In extreme, a microservice may be an assembly of microservices. Article http://microxchg.io/2015/slides/02_01_DomainServiceAggregators.pdf provides an example of data aggregation with a business domain.

From http://www.ben-morris.com/how-big-is-a-microservice/ ‘Perhaps “micro” is a misleading prefix here. These are not necessarily “small” as in “little”.’

Yes, size in LOC does not matter. There is only one limit – SRP. Interesting, that no limitations on “size” of this single responsibility. Thus a microservice with a greater and single responsibility may be assembled from microservices with lesser and single responsibilities.

From https://genehughson.wordpress.com/2015/02/06/wait-did-i-just-say-knuth-was-wrong/ “In the comments, it was suggested that granularity was irrelevant as multiple granular microservices could be composed to form a coarser-grained microservice that would provide a more appropriate level of abstraction. My response was that while this is theoretically true, aggregating service calls in that manner risks issues due to network latency.”

In addition for my comments to that blogpost, I would like to add that designing microservices as distributed autonomous components (each with own computing process) is forcing to consider (up-front and not as refactoring) a proper error-recovery which is much more difficult than the error-handling when components are in the same computing process.

From http://avirosenthal.blogspot.co.il/2015/04/micro-services-new-soa-style.html “How could a [Business] Capacity will be related to a Fine Grained entity such as Micro Service?”

In general, a business capability is a cohesive set of processes (or cluster of processes in accordance with http://improving-bpm-systems.blogspot.ch/2014/03/enterprise-as-system-of-processes.html ). Those processes are implemented as assemblies of microservices. Some of those microservices are unique for a particular process and for a particular cluster; others are shared between clusters.

From https://www.voxxed.com/blog/2015/01/good-microservices-architectures-death-enterprise-service-bus-part-one/ “Microservices and their granularity are ideal for the development and maintenance of the service. But that does push complexity more towards the app itself. A complexity that those apps cannot manage as they are often executed on platform with constrained resources (battery, network, CPU). Combining services in a higher level logic to serve the purpose of apps or business processes proves to be faster to develop and easier to maintain.”

Yes, assembling of microservices is the way to reduce complexity.

From http://martinfowler.com/articles/microservices.html “In short, the microservice architectural style is an approach to developing a single application as a suite of small services.”

If application as a unit of deployment (even decomposed into a few tiers) is no more the physical boundary then boundaries becomes logical and they are coming from the business – business functions, business services and business capabilities. Note they are actually just different viewpoints – see “Common understanding of #bizarch (business architecture) and #BPM” http://improving-bpm-systems.blogspot.ch/2015/01/common-understanding-of-bizarch.html . Less IT applications and more business-process-centric solutions.

From http://nealford.com/memeagora/2015/03/30/architecture_is_abstract_until_operationalized.html “Continuous Delivery and the DevOps movement illustrated the pitfalls of ignoring the effort required to implement an architecture and keep it current. There is nothing wrong with modeling architecture and capturing those efforts, but the implementation is only the first step. Architecture is abstract until operationalized. In other words, you can’t really judge the long-term viability of any architecture until you’ve not only implemented it but also upgraded it. And perhaps even enabled it to withstand unusual occurrences.”

Correct, but slightly simplified observations – actually, 3 (three) major upgrades are necessary to demonstrate that architecture is good. Rationale: it is recommend leaving a solution team before the 3th major upgrade of this solution.

From http://www.infoq.com/articles/service-oriented-architecture-and-legacy-systems “Integration suites offer a complete stack that not only gives ESB capabilities but also more business-specific tools such as BPM (business process management), business activity monitoring, master data management, and a repository.”

Sorry, but ESB is not the centre of the universe if the business position is taken http://improving-bpm-systems.blogspot.ch/2014/08/bpm-for-software-architects-from.html .



4 Forces

4.1 Containers enables the free movement of microservices

As microservices are not confined any more by the physical boundaries of application, they can freely move among on-premises environments, private and public clouds, intellectual “things” and even mobile devices. See “We’re finally headed towards autonomous, self-migrating containers for cloud-application automation” http://research.gigaom.com/2014/12/are-we-moving-to-autonomous-self-migrating-containers-for-cloud-application-automation-i-think-so/

As microservices become place-independent, it is necessary to have a good “naming service” (as we had in CORBA) to allow mapping of microservice’s URI to new URL. Such “naming services” is also known as discovery services.

The most popular container is www.docker.com. From http://www.infoq.com/articles/microservices-revolution “Docker’s appeal is twofold: it’s fast and it’s portable” and “Docker containers can start, and stop, in hundreds of milliseconds.” 

4.2 Microservices vs API

At present, there is no synergy between microservices and API as illustrated by the following quotes:
Considering that “IT application” as a physical boundary is disappearing with microservices and integration between “IT applications” often follows the span of business processes ( http://improving-bpm-systems.blogspot.ch/2013/06/enterprise-patterns-eclipse.html ) then microservices and API must “fuse”.

From http://cloudramblings.me/2015/03/20/microservices-martin-fowler-netscape-componentized-composable-platforms-and-soa-service-oriented-architecture/ “Part of the problem with API management and micro-services or with the mediation / message broker middleware technologies is that these can impose a software layer that is burdensome on the micro-services architecture... Let us say an approach to implementing micro-services would be to put them into a traditional API Management service as offered by a number of vendors. There would indeed be an overhead introduced because the API Layers impose a stiff penalty of authentication, authorization, then load balancing before a message can be delivered. What is needed is a lightweight version of API Management for some trusted services behind a firewall that are low risk and high performance.”

And from http://cloudramblings.me/2015/03/20/microservices-martin-fowler-netscape-componentized-composable-platforms-and-soa-service-oriented-architecture/ “Micro-services however should still be implemented in an API Management framework and ESB’s, Message Brokers and other SOA architectural components still make sense in this micro-services world especially when augmented with a container composition tool. In fact these components should be used to make micro-services transparent and reusable.”

Agree about simplification of API management which should not repeat mistakes of ESB being over complicated. 

4.3 Potentials of microservices

Are microservices going to replace apps and potentially be executable in Things linked to Internet of Things ? From http://www.computerweekly.com/feature/Microservices-How-to-prepare-next-generation-cloud-applications “The evolution of the internet of things and machine-to-machine communication demands new ways of structuring the application modules. Each module should be responsible for one task participating in the larger workflow.” Also, http://iot.sys-con.com/node/3289475?utm_content=buffer97b76&utm_medium=social&utm_source=twitter.com&utm_campaign=buffer .

Microservices and mobile apps from http://www.feedhenry.com/microservices-for-mobile/

Microservices and digital from https://www.linkedin.com/pulse/microservices-role-digital-business-architect-mike-clark and from http://forms2.tibco.com/rs/tibcoinfra/images/WP-microservices%20part1-web.pdf

Potentially better resilience from http://www.slideshare.net/ufried/patterns-of-resilience ?

Are microservices the next big thing from https://genehughson.wordpress.com/2015/04/09/are-microservices-the-next-big-thing/ . 

4.4 Concerns about microservices

From http://research.gigaom.com/2014/12/are-we-moving-to-autonomous-self-migrating-containers-for-cloud-application-automation-i-think-so/ “Using containers is not a new procedure: They certainly predate Docker. However, auto-provisioning and auto-migration are concepts that were often pushed but very remained elusive in practice.”

How does eventual consistency relate to SLA? Is eventual consistency applicable to all sectors?

Performance in https://genehughson.wordpress.com/2015/02/06/wait-did-i-just-say-knuth-was-wrong/

Misuse of technology from http://blog.christianposta.com/microservices/youre-not-going-to-do-microservices/

Challenges from https://www.voxxed.com/blog/2015/01/good-microservices-architectures-death-enterprise-service-bus-part-one/

A long list from http://highscalability.com/blog/2014/4/8/microservices-not-a-free-lunch.html “Significant Operations Overhead” “Substantial DevOps Skills Required” “Implicit Interfaces”, “Duplication Of Effort”, “Distributed System Complexity”, “Asynchronicity Is Difficult!”, “Testability Challenges”.

From http://blogs.gartner.com/gary-olliffe/2015/01/30/microservices-guts-on-the-outside/ ‘However, “there is a price to pay for microservices,” cautions Thomas. “You are increasing the complexity of the application system by having a lot more moving parts and a lot more interdependencies.”’

Various system-design related concerns from http://particular.net/blog/microservices-future-or-empty-hype .

A longer list on slide 34 from http://www.slideshare.net/myfear/eisele-architecting-largeenterpriseprojects-46546852 .

A collection of scaring factors from http://www.infoq.com/research/adopting-microservice-architecture?utm_source=infoqresearch&utm_campaign=rr-content .

And a few future problems from http://www.thoughtworks.com/talks/software-development-21st-century-xconf-europe-2014 .


5 Characteristics of cloud-scale applications

From http://devops.com/blogs/containers-designed-antiquated-application-architecture/ “Cloud-scale applications by nature are stateless with any application state being managed by cache or database services. The compute unit of measure is the process not the CPU, which enables greater scalability. .... They scale across network architectures easily allowing businesses to run in private data centers and leverage cloud for excess capacity when needed.”

From http://thenewstack.io/best-practices-for-developing-cloud-native-applications-and-microservice-architectures “Be micro”, “Be explicit”, “Be stateless”, “Be temporal”.

From http://12factor.net/backing-services “Twelve-factor processes are stateless and share-nothing. Any data that needs to persist must be stored in a stateful backing service, typically a database.” and “Treat backing services as attached resources”.

From http://www.infoq.com/articles/microservices-revolution “The point is that in the modern stateless application architecture, state is actually everywhere--and this state needs to be managed.”

A huge list from http://cloudramblings.me/2015/03/20/microservices-martin-fowler-netscape-componentized-composable-platforms-and-soa-service-oriented-architecture/ .

Slide 68 from http://www.slideshare.net/adriancockcroft/dockercon-state-of-the-art-in-microservices .


6 Becoming cloud-friendly

6.1 State management

Potential techniques for the state management:
  1. one persistency service (or backing service) for the state of the whole solution (even distributed solution) 
  2. predefined state which is created by embedding state into an individual containerized copy of the microservice (but the run-time knowledge about the context is mandatory) 
  3. idempotency 

6.2 Performance

Potential techniques for performance improvement (primarily the network latency):
  1. easy moving an individual containerized copy of the microservice between nodes (thus moving a microservice close to its consumer upto his/her mobile device) 
  2. on-demand creating an individual containerized copy of the microservice (but the run-time knowledge about the context is mandatory) 
  3. creating an individual containerized copy of the microservice for a particular consumer to diminish the security overhead (but the run-time knowledge about the context is mandatory) 

6.3 Lightweight security

  1. predefined state which is created by embedding security keys into an individual containerized copy of the microservice (but the run-time knowledge about the context is mandatory) thus achieving self-containment of PEPs 
  2. one-off execution (i.e. self-destruction) 
See also the blogpost “Enrich RBAC and ABAC with ProBAC” http://improving-bpm-systems.blogspot.ch/2015/01/enrich-rbac-and-abac-with-probac.html which explains how the run-time knowledge about the context can be provided to achieve “embedded” security.



7 Cloud-friendly architecture


Let us look at the post “Architecting application architecture #apparch (inspired by #microservices)” http://improving-bpm-systems.blogspot.ch/2014/12/architecting-application-architecture.html and extend the described in it architecture to being cloud-friendly. In that blogpost, I introduced Autonomous Component (AC) with a note that at present, it is not possible to claim that ACs are microservices or services.

This architecture implements business solutions (instead of IT applications because the boundaries of IT applications are not relevant any more) as a coordinated collection of autonomous components. Each AC is a unit of functionality (as SRP) which can be executed in its own computing process (thus a unit of deployment which can be deployed in a separate host somewhere). An AC may be an assembly of several ACs. In general, ACs are structurally interdependent, behaviorally (or operationally) independent and contractually dependent.

Below, several typical ACs are described from the “being cloud-friendly” viewpoint through the following characteristics:
  • state: “stateless”, “stateful” 
  • idempotency: “yes”, “no” 
  • instantiation: “availability-based”, “on-demand” (or “lazy loading”), “individual” 
  • place: “place-dependent”, “place-independent”, “multiple-place-independent” 
  • security: RBAC, ABAC, ProBAC, “embedded” 
Resource-access (RA) AC to carry out basic operations over data or documents which are stored in a single repository.
  • Cloud-friendly: stateful, place-dependent for updates, place-independent for reads, idempotent, availability-based-instantiation. 
  • Security techniques: RBAC, ABAC and ProBAC. 
  • Contracting ACs: No use of other ACs. 
  • Examples: access to a database, access to a document management repository. 
  • Note: Usually have an internal database. 
Resource-assembly-access (RAA) AC to carry out basic operations over a compound business entity (which comprises several resources).
  • Cloud-friendly: stateless, multiple-place-independent, idempotent, on-demand-instantiation. 
  • Security techniques: RBAC, ABAC, ProBAC and embedded. 
  • Contracting ACs: Use of some ACs, primarily, resource-access ACs. 
  • Example: virtual data layer, MDM. 
Persistence backing (PB) AC to keep a state or configuration.
  • Cloud-friendly: stateful, place-dependent, idempotent, availability-based-instantiation. 
  • Security techniques: ProBAC. 
  • Contracting ACs: No use of other ACs. 
  • Example: Database persistence layer. 
Utility (U) AC to transform or analyse data/documents.
  • Cloud-friendly: stateless, multiple-place-independent, individual-instantiation 
  • Security techniques: RBAC, ABAC, ProBAC and embedded. 
  • Contracting ACs: No use of other ACs. 
  • Note: May have its own configuration database. 
  • Example: Word-to-PDF converter. 
DSL-manager (DM) AC to manage DSL scripts.
  • Cloud-friendly: stateful, multiple-place-independent, availability-based-instantiation. 
  • Security techniques: RBAC. 
  • Contracting ACs: Use its own configuration persistence backing AC. 
  • Example: A business rules engine, process execution languages. 
DSL-processor (DP) AC to execute scripts in the DSL.
  • Cloud-friendly: stateless, multiple-place-independent, availability-based-instantiation. 
  • Security techniques: RBAC. 
  • Contracting ACs: Stateful DSL-processor has its own state persistence backing AC. 
  • Note: Business rules are considered be immutable thus its DSL-processes is stateless.
DSL-script (DS) AC to execute a particular DSL algorithm with some parameters.
  • Cloud-friendly: stateless or stateful, multiple-place-independent, individual-instantiation. 
  • Security techniques: RBAC, embedded. 
  • Contracting ACs: Use DSL-processor AC. 
  • Example: A particular rule for a particular business rules engine. 
Resource role-based mini-portal (RRBMP) AC to select data/documents and initiate an operation on them as a user-facing AC.
  • Cloud-friendly: stateless, multiple-place-independent, availability-based-instantiation 
  • Security techniques: RBAC. 
  • Contracting ACs: Use of some resource-access ACs and short-running ACs. 
  • Example: Web-client or Fat-client for a document management system. 
  • Note: Operation are usually short-running human and short-running automated ones. 
Functional role-based portal (FRBP) AC to select a function and execute it with some data/documents as a user-facing AC. It provides two types of operations: 1) static list of functions what this role may do and 2) dynamic list of activities what this role has to do. A function is a set of activities.
  • Cloud-friendly: stateless, multiple-place-independent, availability-based-instantiation. 
  • Security techniques: RBAC. 
  • Contracting ACs: Use some various ACs. 
  • Example: Intranet with some workflows. 
  • Note: There are two types of operations: 1An operation may be short-running human, short-running automated and long-running one. The latter is a coordination of short-running ones and other long-running ones. 
Human operation (HO) AC to interact with a human.
  • Cloud-friendly: stateless or stateful, multiple-place-independent, individual-instantiation. 
  • Security techniques: RBAC, embedded. 
  • Contracting ACs: May use some resource-access, resource-assembly-access and utility ACs. 
  • Example: Interactive form. 
  • Note: The state is kept in a solution-state persistence backing service. 
  • Note: Human operation AC may be short-running and long-running. 
Automated operation (AO) AC to transform some resources and/or solution-state data.
  • Cloud-friendly: stateless, idempotent, multiple-place-independent, individual-instantiation. 
  • Security techniques: RBAC, embedded. 
  • Contracting ACs: May use some resource-access, resource-assembly-access, utility and other ACs. 
  • Example: PublishDocument 
  • Note: May be implemented as a robot (scripts and their processor). 
  • Note: Automated operation AC may be short-running and long-running. 
Implicit coordination operation (ICO) AC to coordinate several human and automated operations AC.
  • Cloud-friendly: stateful, place-dependent, individual-instantiation. 
  • Security techniques: RBAC. 
  • Contracting ACs: Human and automated operations ACs. 
  • Example: A composite service. 
  • Note: Implicit coordination operation AC may be short-running and long-running. 
Explicit coordination operation (ECO) AC to coordinate several human and automated operations AC.
  • Cloud-friendly: stateful, idempotent, multiple-place-independent, individual-instantiation. 
  • Security techniques: RBAC, embedded. 
  • Contracting ACs: Human and automated operations ACs. 
  • Example: An assembly of other ACs. 
  • Note: Used human and automated operations ACs may be unique for this coordination operation AC. 
  • Note: It is implemented in a DSL; its DSL-processor AC has its own state persistence backing AC which acts as solution-state persistence backing AC. 
  • Note: Explicit coordination operation AC is mainly long-running. 
Legacy pseudo (LP) AC to access functionality of a legacy system.
  • Cloud-friendly: stateful, place-dependent, availability-based-instantiation. 
  • Security techniques: RBAC. 
  • Contracting ACs: Unknown. 
  • Example: ERP. 

8 Demo


The cloud-friendly application architecture is demonstrated on video below to show how various ACs implement a typical process-centric solution (this video is inspired by http://improving-bpm-systems.blogspot.ch/2014/12/bpm-for-soaesbapi-and-cloud-paas-and.html ). Obvious, presented scenario may handle several process-centric solutions and several copies of the same solution (a copy per user) simultaneously.

The scenario has the following stages:

a) The functional-role-based-portal AC offers to a user some functions to initiate (as a static list). Each of functions is an explicit-coordination-operation AC which comprises several human-operation ACs and automated-operation ACs. Human-operations ACs are to be executed by users and they are dynamically listed for each users.

b) All explicit-coordination-operation ACs are implemented as DSL-script. The DSL-manager AC provides a list of functions which are offered for users. The DSL-processor AC provides a list of activities which have to be executed by some users.

c) A user executes a function which is implemented as a DSL-script; the DSL-manager AC instantiates an individual copy of this explicit-coordination-operation AC via the DSL-processor AC. (Covered by markers 1-3.)

d) The first of two operations within this explicit-coordination-operation AC is the automated-operation AC which uses several other ACs; the explicit-coordination-operation AC instantiates an individual copy of this automated-operation AC and individual copies of two of ACs used by it (“Utility” and “Resource assembly access”). Then the automated-operation AC is executed (Covered by markers 4-6.)

e) The second of two operations within this explicit-coordination-operation AC is the human-operation AC; the explicit-coordination-operation AC instantiates an individual copy of this human-operation AC and an individual copy of the other AC used by it. (Covered by marker 7).

f) The human operation AC must be completed by a user and it informs the explicit-coordination-operation AC. (Covered by markers 8 and 9).

g) The explicit-coordination-operation AC terminates.




and its static view

9 Conclusion


The cloud-friendly application architecture follows the business domain boundaries, processes, entities, documents, roles and rules.

The cloud-friendly application architecture reduces complexity by adding a structure among ACs:
  • long-running functions (actually, business processes) 
  • short-running operations (actually activities or routines) 
  • assembly of resources (actually, business entities or business objects) 
  • resource (actually data and documents) 
The cloud-friendly application architecture reinforces the information security by dynamics security for resources and embedded security for ACs

In the cloud-friendly application architecture the majority of ACs are cloud-friendly thus solutions based on this architecture are scalable.

The cloud-friendly application architecture covers majority of cross-cutting concerns : event handling, error recovery, persistence (state management), concurrency, security, interactions, distributed transactions, logging, monitoring and testing.

Thanks,
AS





2015-03-26

Interesting combination of two recent blogposts about #governance and #digital

In the following discussion
http://bpm.com/bpm-today/in-the-forum/do-you-think-the-more-talent-you-have-the-less-process-you-need I used a combination of two recent blogposts.

From the EA viewpoint, the topic of this discussion is the following:
  1. There are two essential enterprise-wide artefacts “talented staff member” and “processes”. 
  2. Are there some relationships between these artefacts? It seems yes.
  3. Are these relationships strong? i.e. a small change in one artefact may strong affect to another artefact? It seems yes.
  4. So, how to achieve synergy between these artefacts? Let us allow talented staff members develop processes which simplify and amplify their work for the best of an enterprise.
  5. Can digital amplify this synergy? Of course! – please follow http://improving-bpm-systems.blogspot.ch/2015/03/entarch-view-on-ditigal.html
  6. Thus it should be some governance around these artefacts? Absolutely! – To read more please follow http://improving-bpm-systems.blogspot.ch/2015/03/enterprise-patterns-ghost.html
  7. Any questions, please?
Thanks,
AS


2015-03-18

Enterprise patterns: GHOST

Enterprise pattern “Govern Handling Of Some Things”

(see also “Enterprise patterns: AGA” http://improving-bpm-systems.blogspot.ch/2014/03/enterprise-patterns-aga.html)

Part of enterprise architecture is about establishing practices (processes and decisions) to govern (or to steer) some domains of enterprise activities. This blogpost provides a generic approach to setup domain governance.

1 Generic approach


Domain governance covers the entire life-cycle of the domain primary-artefacts.

Decompose the whole life-cycle into phases (or stages).

Each phase comprises several primary-artefacts, rules, activities and processes.

Responsibilities to own these primary-artefacts, rules and processes must be assigned to somebody.

Responsibilities to perform these processes and activities must be assigned to somebody.

All these responsibilities are grouped into several roles (under some considerations including “separation of duties”).

Domain stakeholders are assigned to these roles.

Various documents to support primary-artefacts are identified and their life-cycles are considered as well (roles to write, use and approve these documents).

Domain governance makes explicit primary-artefacts, supporting-documents, roles, rules, processes, phases and life-cycles.

Domain governance specifies dependencies with other domains governance practices established in the enterprise.

2 EXAMPLE TW

2.1 Context for Technology Watch function

A typical IT Department uses hundreds digital technologies, tools, products and services from third-party companies to provide highly efficient digital business solutions. There are complex dynamic dependencies between those technologies, tools, products, services, companies and digital business solutions. For example, companies may merge or go bankrupt, products may be discontinued, tools may be exposed to security bridges, new technology may make an existing technology obsolete, etc. All of these may have a negative impact on some digital business solutions or, on the contrary, create an opportunity for improving some digital business solutions.

2.2 Technology Watch (TW) vision and mission

TW vision – timely provisioning IT industry information for decisions related to strategic, tactical and operational aspects of digital business solutions.

TW mission – systematic capturing, analysing, disseminating and exploiting information about used digital technologies, tools, products and services.

2.3 TW governance


TW function operates with three primary-artefacts:
  1. Critical Watch Artefact (CWA) – a technology, tool, product, service, company to be watched
  2. TW-Event (TWE) – a fact of detecting something interesting about a particular CWA
  3. TW-Decision (TWD) – a decision taken for a particular TWT

The relationships between these primary-artefacts is depicted in figure BELOW. Monitoring of a CWA may detect hat something of interest has happened with this CWA and thus to trigger the initial analysis. The latter may lead to a deeper investigation and a decision for dispatching some ITSM processes.

Figure 1

3      EXAMPLE SOA Governance

3.1 SOA Governance vision and mission

SOA vision – considerably speed-up the delivery and evolution of software-intensive digital business solutions.

SOA mission – industrialise the delivery of software-intensive business solutions as a set of autonomous components (i.e. services).

3.2 SOA Governance approach

SOA governance is balancing the demand side and supply side. Some service providers (supply side) may be temporary not consumed. Some service consumers (demand side) may use the same service provider. A service consumer (demand side) may use a few service providers at the same time.

Figure 2 Links between service consumers and service provides

The life-cycle of service demand comprises the following phases: D1. Contracting, D2. Renting and D3. Reviewing.

The life-cycle of service supply comprises the following phases: S1. Planning, S2. Building, S3. Running and S4. Optimising.

3.3 Scenarios for service provisioning

There are three scenarios in the service provisioning.

1. Scenario “sur mesures” or “make-engineer-to-order” - design a new service and deploy; coordination between phases in this scenario is shown in figure below.
Figure 3 Scenario “sur mesures” for service provisioning

2. Scenario “adaptation” or “make-build-to-order“ - tailor an existing service and deploy; coordination between phases in this scenario is shown in figure below.
Figure 4 Scenario “adaptation” for service provisioning

3. Scenario “prêt-à-porter” or “make-build-to-catalogue” - build some services before actual demands; coordination between phases in this scenario is shown in figure below.

Figure 5 Scenario “prêt-à-porter” for service provisioning

3.4 Stakeholders and their participation into the service demand and service supply life-cycles

Demand side roles are:
  • demand initiator, e.g. a Head of Department
  • service consumer, e.g. staff member from a Department
Supply side roles are:
  • service owner, e.g. somebody from the IT department
  • service implementer, e.g. a preferable partner
  • service operator, e.g. a preferable partner or the IT Department (actually, its OPS group)
Governance side role is:
  • service auditor, e.g. somebody from the IT department, EA function or third-party
General participation of various roles in all phases is depicted in figure below (the first pattern for service provisioning is used).
Figure 6 Participation of some roles

The detailed participation of various stakeholders is shown below in accordance with the RACI technique.



service demand
service supply
contracting
renting
reviewing
planning
building
running
optimising
Demand initiator
(demand side)
RA
RA
R
C
I
I
C
Service owner
(supply side)
C
C
C
RA
C
I
R
Service implementer
(supply side)
C
-
-
-
RA
C
C
Service operator
(supply side)
C
C
I
-
C
RA
C
Service consumer
(demand side)
C
I
C
-
C
I
C
Service auditor
(governance side)
I
I
A
I
-
I
A


3.5 Outline of the process

The coordination between the two life-cycles is shown in figure below. The pink numbered markers show the sequence in the control flow (only the “happy” path). The solid arrows are used within each of the life-cycles. The dashed arrows are used between the two life-cycles.
Figure 7 Coordination between two life-cycles

This figure is the base for defining the domain documents and their life-cycles as well (thus governing bodies which approve these documents).


Thanks,
AS

2015-03-16

#entarch view on #digital

A several statements (à la manifesto) about digital from the enterprise architecture viewpoint


Note: The illustration is adapted from http://improving-bpm-systems.blogspot.ch/2013/06/entarch-basics-in-for-dummies-style.html

Business artefacts are available in digital formats (thus formal and executable).

Digital is the master media for business artefacts.

Enterprise, ecosystem and society “understand” the digital formats for business artefacts (not consider digital artefacts as BLOBs).

Enterprise can transmit, protect, validate, enrich, interpret and manipulate digital business artefacts at their whole life-cycle.

Enterprise can generate new knowledge from digital business artefacts.

Enterprise knows all the dependencies between its digital business artefacts (i.e. how a change in an asset affects some other assets).

Enterprise can transform digital business artefacts (extract, combine, change presentation, convert, etc.) to fit the current needs of a particular customer.

Business artefacts can be moved between digital, analog and physical medias (e.g. with 3D printing).

Enterprise can capture the external physical world into its digital artefacts.

Business digital artefacts may be offered for consumers as apps.

People can delegate to "things" (i.e. computers and robots) some routine activities with their business artefacts (e.g. with the use of #IoT)

With the progress of #IoT, "things" become more capable actors of digital business processes ("things" may form temporary groups to cayy out a particular activity).

Digital business artefacts help increasing flexibility of enterprise systems (from www.samarin.biz/book ):
  • All artefacts must be versionable throughout their lifecycle
  • All artefacts must evolve to become digital, externalised, virtual and components of clouds
  • All relationships between artefacts must be modelled explicitly
  • All models must be made to be executable
(see also "Yet another definition of enterprise architecture #entarch and metrics for enterprise architects" http://improving-bpm-systems.blogspot.ch/2014/12/yet-another-definition-of-enterprise.html )

Thanks,
AS

2015-02-24

Iceberg of processes within an enterprise

Processes within an enterprise are not equally visible.


All together should be a system-of-processes ( http://improving-bpm-systems.blogspot.ch/2014/03/enterprise-as-system-of-processes.html ).

Thanks,
AS

2015-01-22

Enrich RBAC and ABAC with ProBAC, #infosec #security #BPM

1 The problem


For the stable functioning of an enterprise, it is mandatory to define up-front WHO (person, system, role) can DO SOMETHING (e.g. read, update, delete) with WHAT (tangible or intangible asset or resource), WHEN (at a particular moment of time), WHERE (from which tool, environment), WHY (justification) and HOW to impose this.

There are two popular techniques:
  1. Role-Based Access Control (RBAC) is about what role (WHO) can execute what operation (DO SOMETHING) on a particular object (WHAT).
  2. Attribute-Base Access Control (ABAC) is about granting rights to users (WHO) through the use of policies which combine attributes together. The policies can use any type of attributes: user (WHO) attributes, resource (WHAT) attributes, environment (WHERE) attribute etc.
To provide a reasonable granularity, RBAC causes an explosion of roles and ABAC causes an explosion of rules. Both techniques are static and require a lot of work to handle compound resources.

2 Process-Based Access Control (ProBAC)


To reinforce the governance, management and operations over the classic access control techniques, it is proposed to consider the access control with the context of business processes.

The enterprise functioning is considered as business activity flows spanning systems, employees, customers and partners within and beyond the enterprise boundaries. Various roles as well as tangible and intangible resources are involved in each business activity. Some resources are read-only for some of those roles; other resources can be modified by some of these roles. (Of course, we remember, that for each activity, the RACI pattern may be applied).

The illustration below shows this in dynamic:
  1. by default, the roles associated with a particular activity have no access to the resources associated to this activity;
  2. an actor (a concrete staff member) who claimed this activity is granted necessary permissions to do something with the associated resources;
  3. as the actor finished the activity, all given permission are revoked.


This is the principle. Of course, the activity life-cycle is more complex because of delegation, escalation, cancellation and un-claiming. Each change of activity’s state should

3 Link to microservices

ProBAC, as a way to know the context, also simplifies the use of microservices - see http://improving-bpm-systems.blogspot.ch/search/label/%23microservice  .

4 Bigger picture of the information security


ProBAC is an integral part of the bigger picture which enhances the enterprise-wide information security – see http://improving-bpm-systems.blogspot.ch/search/label/%23security



Thanks,
AS

2015-01-20

Business process in #BPMN - flow-of-control or flow-of-assets ?

This blogpost explains in more details one of business-process-related misunderstanding (number 8, process as a flow-of-resources) from the blogpost http://improving-bpm-systems.blogspot.ch/2015/01/common-understanding-of-bizarch.html

One of the root cause of this misunderstanding is a confusion between Flow-Of-Control (FOC) and Flow-Of-Assets (FOA). Note: assets maybe tangible (e.g. goods, products) and intangible (e.g. money, value, cost, information). Assets are more generic than resources.

Flow of assets


FOA is a coordination between different activities by sending to them and receiving from them some assets to transform. Process as FOA is executed as in illustration below. Activities are only activities for transformation of assets.


IDEF0 notation and many diagrams with exchange of data between various systems or components are typical FOA.

     

Flow-of-control


FOC is a coordination between different activities by sending to them and receiving from them a special marker (token). Activities are free to fetch some assets as inputs and deposit some assets as outputs. Thus, activities that do other “work” in addition to transforming inputs to outputs (e.g. monitoring) are explicitly coordinated as well.


Workflow notations and BPMN are examples of FOC.

Example


Cooking is an example of FOC. For example, to prepare a Swiss raclette, it is mandatory to complete all the following activities: 1) turn on the heat and melt cheese, 2) fry onions, 3) boil potatoes, 4) brown bacon and 5) find pickles, at the same time (or just-in-time). Depending of the situation, one has to start different activities at different time and coordinate their cooking.

More complex cooking example is the serving of different dishes at the same time. The chef coordinates their preparation.

Conclusions


Business process in BPMN is explicitly-defined FOC.

FOC defines FOA which is implicit but easy to generate (or make explicit). At the same time, it is not possible to generate FOC from FOA.

Value-stream is FOA for assets which are related to value – cost, products, etc.




Value-stream is a view-point (projection) on the underlying end-to-end business processes (more correctly, a system of processes).

Another example of FOA is VDML.

Maybe related topic - http://en.wikipedia.org/wiki/Behavioral_modeling

Thanks,
AS