Harmonising two conceptual frameworks for EA

Mapping TOGAF® to ArchiMate® (aka terminology torture)

One of about 300 papers at http://avancier.website. Copyright Graham Berrisford. Last updated Saturday, 14 July 2018

 

A comprehensive enterprise architecture (EA) framework, for the architectural design and planning of large-scale changes to business systems, should provide both processes and products.

 

The Open Group develops open standards with a view to enabling the efficiency, effectiveness, portability and interoperability of business systems.

Two of their standards are intended to assist enterprise architects.

 

TOGAF is a wide-ranging management framework for architecture-intensive work.

It is best known for its process, the Architecture Development Method (ADM).

It also offers a menu of products (deliverables and artifacts) architects may find helpful.

It classifies artifacts into catalogs, matrices and diagrams.

It does not include a language drawing the diagrams.

 

ArchiMate is more limited in its scope

It is a modelling language for drawing diagrams that represent the structures and behaviors of business systems.

 

People naturally assume the two standards can be married together.

The difficulty is that the bride and groom come from different families, with different cultures.

To put it simply: ArchiMate tries to present a coherent and consistent conceptual framework, using a tightly controlled language.

TOGAF tries to embrace all terms and concepts that its authors have found useful in practice, resulting in some terminology torture.

 

However, you can find a coherent conceptual framework within the TOGAF standard; and it is close to conceptual framework of ArchiMate.

If TOGAF is to maintain its own conceptual framework, it needs to be exposed more clearly, and change requests be reviewed against it.

 

(This paper includes material from papers at http://avancier.website copyright © Avancier Ltd, and three diagrams from the ArchiMate version 3.0.1 standard, Copyright © The Open Group, All Rights Reserved.

TOGAF and ArchiMate are registered trademarks of The Open Group.)

Contents

The initial direction to EA.. 2

What is a business system?. 2

Service-orientation in the TOGAF standard. 3

Abstraction in the TOGAF standard. 4

The generic meta model that underpins ArchiMate. 5

Mapping terms in the two standards. 6

Service v Process. 8

Interface v Component 10

Actor v Role. 11

Process v Function. 12

Structure v Behavior 14

Data Object v Business Object 16

Describing data architecture in TOGAF. 17

Other terms and concepts. 19

 

The initial direction to EA

“Business planning at the strategy level provides the initial direction to Enterprise Architecture”. (TOGAF Ch. 5)

 

TOGAF says the “non-architectural inputs” from business planning include “business strategy, business principles, business goals, and business drivers”.

The business context for EA also includes stakeholders who have an interest in whatever changes an architect is engaged to design and plan.

 

Both TOGAF and ArchiMate assume architects start by capturing and recording business directions.

ArchiMate includes symbols for drawing diagrams to describe the context or motivation for EA.

TOGAF includes an artifact designed to record the relation in this table.

 

Driver/Goal/Objective catalog

Drivers

<stimulate>

 Goals

<are decomposed into>

Objectives

 

Both TOGAF and ArchiMate are service-oriented.

Both presume architects should start by defining business services to support goals and objectives.

TOGAF includes an artifact to show the relation in this table.

 

Goal/Objective/Service diagram

Goals

<are decomposed into>

Objectives

<are met by provision of>

Services

 

Note that measures assigned to services (e.g. response time) may well reflect measures assigned to objectives (e.g. to speed up a business process).

 

This paper is not concerned with board-level business planning.

The focus below is on the business system planning that needs to be done in response to business planning

What is a business system?

“EA structures the business planning into an integrated framework that regards the enterprise as a system or system of systems.” (TOGAF Ch. 5)

 

A business system is a social activity system in which the roles and rules are formalised.

This means that actors act in response to defined messages, in the light of defined memories, according to defined business rules.

It is also what is known as a discrete event-driven system.

 

Architects model business operations in terms of events that trigger actors (active structures) to perform repeatable activities (behaviors).

 

An event is often input to a system in the form of a data flow.

It may instead be a time event, or a state change inside a system.

An event triggers an active structure to perform a particular behavior, in the light of the current system state.

Events often carry data that influence the behavior to be performed.

 

Active structures go by many names, including actor, organization unit, component, module and node.

An active structure may be encapsulated by an interface that lists the services it can perform, in response to events.

 

Relatively logical active structures (like role, business function and logical component) specify what relatively physical active structures (like actor, organization unit and physical component) can do.

 

Behaviors go by many names, including process, scenario, value stream, use case, service and operation.

A behavior runs from an event-triggered start to an end, which may be specified at two levels:

·         One or more products (output flows and/or system state changes).

·         One or more desired results to be met by users of those products (see footnotes).

 

A behavior may fail; but if its preconditions are met, and it completes, then its post conditions will be met.

That is to say, it will produce whatever products it is designed to produce.

Following which, users of those products may use them to meet some higher or longer term goal or objective.

 

Two behaviors can collaborate by communication, and one can invoke the other.

However, a behavior cannot perform another behavior; you need an actor to perform an activity; you need an active structure to perform a behavior.

Long behaviors are divided into shorter ones assignable to actors

 

A service is a behavior exposed at the interface of a system or component thereof.

It may update or change the internal state of the system.

It may “add value” by progressing an artifact or activity.

It may consume and produce external I/O flows that contain passive structures.

 

·         IS services consume and produce flows of data (messages if you like).

·         Business services consume and produce flows of data and materials (products if you like).

 

A service is definable by a contract that defines the inputs, outputs, rules and quality measures of a service.

It encapsulates the one or more processes (in one or more components) needed to complete the service.

 

A passive structure is a structure that does not act, but is acted on.

It can be a material or data structure.

A data structure may be conveyed in transient input or output data flow, or stored in persistent data component.

(Note that an active structure may be passive in some contexts, when being moved or deployed somewhere.)

 

To recap, key points in a generic conceptual framework for EA are:

·         EA is about business system planning.

·         Business systems are designed to meet business goals and objectives.

·         A business system is a structure of interoperating components.

·         A service is unit of behavior, defined as an external user sees it.

·         A component is a unit of active structure, which may be defined logically and/or physically.

·         Logical components are realized by physical components.

Service-orientation in the TOGAF standard

 

The Open Group develops open standards with a view to enabling the efficiency, effectiveness, portability and interoperability of business systems.

Their overarching vision is called Boundaryless Information Flowtm.

And their general principle is that standards should be based on “executable specification”.

This means specifying a system by defining the behaviors it is required to perform, and their results.

 

TOGAF applies this general principle to the specification of business systems.

TOGAF defines the architecture of a system as a set of interoperating components that interact, to perform the behaviors required of that system, by providing services to each other.

 

TOGAF’s many authors use terms differently.

For example, some use the terms “building block” and “component” as synonyms, others use the term “building block” more loosely, applying it to any element of architecture description.

This section fixes the meanings of some terms for the purposes of this paper.

 

The unit of behavior is a service

A service is a required behavior or unit of work (the same meaning as in ArchiMate).

A service is defined as a service requester sees it.

A service is a logical representation of a repeatable behavior that has a specified result.

A service may be short (retrieve customer address) or long (deliver a package).

The scope depends on what the requester wants and the resources available to the service provider.

A service is realised by one or more components performing one or more processes.

 

The unit of structure is a component (aka “building block” aka “active structure”)

A component is a subsystem or actor of any kind, including human and computer actors.

A component may be coarse-grained or fine-grained.

A component can realise one or more services, either on its own or in collaboration with others

A component can play the client role of service requester and/or server role of service provider.

A component requests a service by sending a message that identifies the service to be performed. 

(Less commonly, it pushes a service when triggered by a time event or system state change event.)

 

Architecture description is based on a generic relation

A simple relation underpins the artifacts used in TOGAF to define a business system.

Required services <are assigned to> Logical Components <are realized by> Physical Components.

 

Logical means “An implementation-independent definition", one that is portable and supplier-neutral.

Physical means “A description of a real-world entity”, but although physical components are more physical than logical ones, they are still “considerably abstracted from implementation“.

Abstraction in the TOGAF standard

 

Architecture description elements are classified using the “Enterprise Continuum”

The Enterprise Continuum classifies component specifications in two dimensions.

·         Left to right: from generic or universal, to specific or unique to an organisation.

·         Top to bottom: from logical to physical to real, as shown below.

 

Requirements and context

Required Services

Architecture Requirements Specification includes Business and Application/IS Service contracts.

Architecture continuum

Architecture Building Blocks

Logical Components are defined by the services they provide to each other and to external entities, also by the abilities and data resources they need.

Solution continuum

Solution Building Blocks

Physical Components are procurable; they can be hired, bought or built to realise Logical Components, and so deliver the required Services.

Deployed solutions

Operations

The real world components employed or deployed to do work at run-time (which might be called Operational Components).

 

TOGAF phases A to D focus on defining required services and logical components.

However, it is normal to identify some physical components at the same time.

 

The generic relation has been a little obscured by changes to the TOGAF standard in recent years.

Still, it makes sense.

It enables TOGAF to be read as a coherent and consistent standard.

And knowing it helps readers recognise where some authors use core terms in different ways.

 

The table below expresses the generic relation in two different ways.

It shows the specialisation of that generic relation in the business, applications and technology domains, recorded using different artifacts.

 

Generic

Required behaviors

<clustered and assigned to>

Logical Active Structures

<realised by>

Physical Active Structures

TOGAF 9 artifacts

Services

<clustered and assigned to>

Logical Components

<realised by>

Physical Components

Business Service/Function catalog

Business Services

Functions

Organization Units

Role catalog + Actor/Role matrix

Activities (in processes)

Roles

Actors

Application portfolio catalog

IS Services

Logical Application Components

Physical Application Components

Technology portfolio catalog

Technology Services

Logical Technology Components

Physical Technology Components

 

The artifacts mentioned in the table above connect the three elements shown.

Other artifacts (some listed below) define other attributes and relationships of the same elements.

 

The service to component relationship

A service is “a repeatable activity that a building block may be requested or otherwise triggered to perform.”( TOGAF Ch. 3)

TOGAF encourages architects to assign the responsibility for one service to one component (at least in the logical specification), and to minimise duplication of service provision by different components. However, a component can delegate work to other components. So, generally, one component may provide many services, and one service may be provided by many components.

 

The logical component to physical component relationship

In the application and technology domains, the ideal is a 1-to1 relation:

·         one Logical Application Component is realised by one Physical Application Component.

·         one Logical Technology Component is realised by one Physical Technology Component.

 

In practice, the relationships may be more complex, or logical components may be reverse-engineered to keep the relationship simple.

In the business domain, there are artifacts to capture the many-to-many logical-to-physical relationship .

 

Function/Organization matrix

 N Functions

<are realised by>

N Organization Units

Actor/Role matrix

 N Roles

<are realised by>

N Actors

The generic meta model that underpins ArchiMate

 

The generic meta model is simplified for discussion in this paper. It is a grid with two dimensions.

 

ArchiMate terms

Behavior element

Active structure element

External element

Service: an explicitly defined exposed behavior

Interface: a point of access where one or more services are provided to the environment

Internal element

A unit of activity performed by one or more active structure elements (e.g. process).

An entity that is capable of performing behavior (e.g. component).

 

One dimension distinguishes active structures from the behaviors they perform.

 

·         Active structures (e.g. Butlers) perform behaviors (e.g. polish shoes).

·         Behaviors cannot perform behaviors – that would undermine the structure/behavior dichotomy.

·         Processes cannot perform processes, but they can invoke processes, directly or via exposed services.

 

The other dimension distinguishes the external or client view of a system from how it works internally.

Since systems can be nested (recursively composed and decomposed) the external to internal boundary is a matter of choice or design.

 

In a “green field” scenario, a recommendation is to design from out to in, from external to internal:

·         define services to be provided by a system (A) with minimal regard to its internal organization.

·         divide that service portfolio into interfaces for different external service requesters

·         divide that service portfolio into service bundles for assignment to internal subsystems AA, AB etc.

·         either assign one external service to one internal subsystem (which may delegate to others), or introduce a broker to orchestrate internal subsystems to provide that service.

 

Recursively, you can now define services to be provided by subsystem AA with minimal regard to its internal organization.

And so on, until you identify where a suitable subsystem or component exists, or can hand over design to another, or are listing “atomic activities” presumed to be performable without further definition.

 

System design always requires some insight into what is achievable, with some regard to the internal abilities and resources of a system.

You don’t ask your dentist to sell you cheese.

You don’t expect your customer relationship management system to report which stock levels are low in a particular warehouse.

 

Note that services can be “bigger” than components.

Components can be big or small, services may be long or short; both can be composed and decomposed.

And to provide one service, a component may delegate work.

So, one long service (e.g. package delivery) may require the participation of very many components in a business (e.g. a logistics company).

Mapping terms in the two standards

The table below maps terms used in ArchiMate to terms used in TOGAF.

 

Required behavior

Has entry conditions

(trigger, inputs and ppreconditions) and 

exit conditions (outputs and post-conditions).

Logical active structure

An abstract specification of what

one or more physical actors can do.

 

Physical active structure

Has abilities and resources.

It  realises services by performing

activities in processes.

 

ArchiMate

TOGAF

ArchiMate

TOGAF

ArchiMate

TOGAF

Business

Business service

Business service

Business Function

Function

Business Actor

Organization Unit

Business process

Process

Business Role

Role

Actor

Applications

Application service

IS service

Application Interface

Logical

application component

Application Component

Physical

application component

 

Application Function

Technology

Technology Service

Technology Service

Technology Interface

Logical

technology component

Node

Physical

technology component

 

Technology Function

 

TOGAF encourages architects to specify systems at portfolio management and solution architect levels.

ArchiMate is often used at level of work that is closer to physical implementation, and so a more natural fit to specification at the solution and software architect levels.

 

Some terminology torture:

·         A Web Service is an Interface Definition, which contains a Service Portfolio in TOGAF terms.

·         A Web Service Operation is an Application/IS Service in ArchiMate and TOGAF terms.

·         A Micro Service is an Application Component in ArchiMate and TOGAF terms.

Service v Process

 

Compare ArchiMate’s generic meta model:

ArchiMate terms

Behavior element

Active structure element

External element

Service: an explicitly defined exposed behavior

Interface: a point of access where one or more services are provided to the environment

Internal element

A unit of activity performed by one or more active structure elements (e.g. process).

An entity that is capable of performing behavior (e.g. component).

 

With TOGAF’s generic relation:

Services

<clustered and assigned to>

Logical Components

<realised by>

Physical Components

 

Process

In both standards, a process is a sequence of stages or steps that leads to a result of value.

 

Service

In both standards, a service is a behavior that can be requested of a system (e.g. Replace battery, Replace exhaust, Annual service, Remove tooth), defined without regard to internal procedures required.

 

In system operation, a service does involves the performance of one or more processes by one or more components within a system.

But in describing that service, the internal procedures and component structure should be hidden as far as possible.

 

A service can be short or long.

Its performance may involve the performance of many shorter subordinate services.

E.g. “Build a house to this plan” is a big/long service; it might take a year, and involve much delegation of shorter services to many third parties.

 

In your local bar, the much smaller “serve customer” may be decomposed into subordinate services: “take order”, “serve product” and “take payment”.

Of course you can model “serve customer” as composite or sequence of the other three smaller/shorter services.

Or model it as invoking or orchestrating the other three services.

But that is to disrespect the external/internal division in the ArchiMate generic meta model.

 

The SOA principle is to define a service explicitly by its entry conditions and exit conditions with minimal reference to internal procedures and structures.

So, you define “serve customer” as an external view of the end-to-end behavior, hiding processes that realise it and subordinate services that are invoked.

Then, you can not only re-sequence the internal procedure, but also restructure the internal components and whatever services they delegate to.

 

If services are not distinguished from processes, there is no point having both concepts.

 

·         A component can perform services, or more accurately...

·         A component can perform processes, both to realise services and to invoke other processes, directly or via exposed services.

·         When component A uses (aka delegates to) component B, a process performed by component A invokes a process performable by component B.

·         The invocation must both locate component B and identify the required process, directly or via an exposed service (Jeeves, polish my shoes).

·         Services can neither perform services or processes nor invoke them, because services are “logical representations” (TOGAF 9.1), defined declaratively, with no awareness of processes that realise them or any services those processes invoke.

Interface v Component

 

Compare ArchiMate’s generic meta model:

ArchiMate terms

Behavior element

Active structure element

External element

Service: an explicitly defined exposed behavior

Interface: a point of access where one or more services are provided to the environment

Internal element

A unit of activity performed by one or more active structure elements (e.g. process).

An entity that is capable of performing behavior (e.g. component).

 

With TOGAF’s generic relation:

Services

<clustered and assigned to>

Logical Components

<realised by>

Physical Components

 

Component

In both standards, components are the things that do work.

Components perform processes to provide services (or they are logical specifications of such components).

 

Interface

An interface is a complex architectural entity type that has both logical and physical aspects.

There are:

·         logical interface definitions (Menus, SLAs, Web page designs, WSDL-defined web service operations) in which services are defined.

·         physical channels or mediums (Waiters, Telephones, Computer Screens, WSDL-defined addresses) via which services can be requested and delivered.

 

TOGAF presumes a component can defined logically by a service portfolio, which is a collection of services grouped using criteria such as customer experience, abilities or resources needed.

It speaks of components or“building blocks” having “published interfaces, but elsewhere its uses the term interface loosely.

 

In ArchiMate, an interface has both logical and physical aspects.

In business architecture examples, the interface symbol is often used to represent a physical channel or medium.

In the application layer it is more often used to indicate an interface that is defined by logical services or operations offered, before relatively physical protocols and end point addresses are defined.

 

In TOGAF, the logical definition is the first concern.

You define business goals and objectives, and then define business services to meet them.

You group business services into bundles for a) presentation to requesters and b) provision by business functions (logically) and organization units (in reality).

 

Similarly, you may bundle activities into a group performable by one business role (logically) or actor (physically).

Actor v Role

 

Compare ArchiMate’s generic meta model:

ArchiMate terms

Behavior element

Active structure element

External element

Service: an explicitly defined exposed behavior

Interface: a point of access where one or more services are provided to the environment

Internal element

A unit of activity performed by one or more active structure elements (e.g. process).

An entity that is capable of performing behavior (e.g. actor or business role).

 

With TOGAF’s generic relation:

Required behaviors

<clustered and assigned to>

Logical Active Structures

<realised by>

Physical Active Structures

Activities (in processes)

Roles

Actors

 

Role

“A business role is the responsibility for performing specific behavior”. (ArchiMate)

TOGAF’s role has the same meaning.

Simply put, a business role is a collection of behaviors that are grouped because they can be performed one actor with the necessary abilities.

You might speak either of behaviors, or of the responsibility for performing behaviors, but when documented, they look the same.

 

A role (as in the script of a film, a play or a symphony) defines behaviors that actors playing that role are expected to perform.

The role does not perform behaviors; it only specifies behaviors to be performed.

It is an abstraction, a type.

An instantiation of that type is not an actor, it is the performance of some or all behaviors associated with the role by an actor.

The actor is the instantiator rather than the instantiation.

 

A role name is a type name – a general name given to each instantiation.

The role definition defines the behavior types an actor playing that role is responsible for.

It may also define abilities and resources an actor needs to perform the role.

 

Actor

“A business actor is a business entity that is capable of performing behavior.” (ArchiMate)

TOGAF’s actor has the same meaning.

In the most straightforward interpretation, an actor (e.g. ABC inc.) is an individual human or organization unit.

Using individual actor names is probably best reserved for roles played by very stable actors and important stakeholders.

 

In a goods receipt process model, rather than name an individual actor (ABC inc.) you’d probably better name the role played – perhaps Supplier.

In a budget approval process, there might be only one approver (Joe Ledger), but even then, you might better name the role played - Finance Director, or Budget Approver.

 

In the example below, note that saying an organization unit is “composed of” the actors is misleading, since those same actors may play other roles in other organizations.

 

ArchiMate example 22 http://pubs.opengroup.org/architecture/archimate3-doc/chap08.html#_Toc489946043

Process v Function

 

ArchiMate terms

Behavior element

Active structure element

External element

Service: an explicitly defined exposed behavior

Interface: a point of access where one or more services are provided to the environment

Internal element

A unit of activity performed by one or more active structure elements (e.g. process).

An entity that is capable of performing behavior (e.g. component).

 

Process

“A business process represents a sequence of business behavior” (ArchiMate)

In TOGAF similarly, a process (Sell product, Send message) is a sequence of activities, usually connected in a diagram by trigger arrows.

 

Function

“A business function is a collection of business behavior based on a chosen set of criteria” (ArchiMate)

In TOGAF similarly, a function (Sales, Messaging) is a logical group of activities; functions are usually connected in a diagram by flow arrows.

 

In TOGAF however, a function is a “package” rather than “unit” of functionality.

It is a collection of behaviors grouped according to criteria such as customer experience, abilities or resources needed.

It is related in the service/function catalog to a collection (portfolio or bundle) of business services.

It can be seen as a logical organization unit, and may be mapped to one or more real organization units in an organization/function matrix.

 

Beware! ArchiMate standard examples of the function symbol (examples 23, 27 and 30) appear to show processes.

This might be explained and justified as compatible with other standards, but can mislead people about the function/process distinction in TOGAF.

 

ArchiMate example 23 http://pubs.opengroup.org/architecture/archimate3-doc/chap08.html#_Toc489946043

 

More terminology torture

Process is a generic term, used in most applications of system theory, for any level or length of process.

In some specific business analysis methods, the term value stream is used for a specific kind of process.

Structure v Behavior

 

Compare ArchiMate’s generic meta model:

ArchiMate terms

Behavior element

Active structure element

External element

Service: an explicitly defined exposed behavior

Interface: a point of access where one or more services are provided to the environment

Internal element

A unit of activity performed by one or more active structure elements (e.g. process).

E.g. Business Function?

An entity that is capable of performing behavior (e.g. component).

 

With TOGAF’s generic relation:

Required behaviors

<clustered and assigned to>

Logical Active Structures

<realised by>

Physical Active Structures

 

Behavior

In general system theory and UML, behaviors are services or processes than run over time.

ArchiMate has a different view, that all groupings of activities are behaviors.

 

Structure

The active structures and components in models are types.

A type is an abstraction, it cannot do anything; it can only describe what an instance of that type can perform.

In TOGAF, some types (ABBs) are more abstract, more logical, more idealised, further removed from run-time instances, than other types (SBBs).

 

ArchiMate classifies functions as behavior because they group activities.

However, all active structures group activity types at design or description time.

And by the same reasoning, business roles and physical application components could be classified as behavior.

 

A business role is a grouping of behavior types

A role is designed by grouping activities an actor can perform (as shown seen in diagrams that associate a role with a service or process.) Behaviors are grouped using criteria such as abilities or resources needed.

Real world actors instantiate roles by performing behavior instances at run time.

 

A physical application component is a grouping of behavior types.

An application is designed by grouping use cases, services or operations an instance of it should perform.

Behaviors are grouped using criteria such as data or technology resources needed.

Deployed applications perform behavior instances at run time.

 

A function is a grouping of behavior types

A function is designed by grouping services or activites that an organisaiton should perform.

Behaviors are group using criteria such as customer experience, or abilities or resources needed.

The activities-to-business function relationship is seen in diagrams that associate a function with a service or process.

Real-world organization units instantiate functions by performing behavior instances at run time.

 

In TOGAF terms, business functions are logical active structures.

And a functional decomposition is a logical organization structure.

True, in a “functional organization”, the functional decomposition looks like the real-world management structure, but one may change without the other.

 

More terminology torture

You might speak either of a function, or of a capability to perform a collection of behaviors, but when documented, they look the same.

Functional decomposition diagrams are usually, if not always, indistinguishable from business capability maps.

Such terminology variations lead to the creation of parallel vocabularies and parallel artifact sets.

Data Object v Business Object

 

In ArchiMate, a data object can be a data store, or the payload in a message or data flow.

It can also be a data entity/item within a data store, or an element within a message, at any level of granularity.

 

In TOGAF’s business architecture, when defining a conceptual data diagram, a data entity/business function matrix, or a business service/information diagram, you define business data created and used by business processes, with no reference to applications or IT.

There is no implication that the data is digital, though it is increasingly digital of course.

 

Making “no reference to applications or IT” doesn’t mean defining business architecture artifacts regardless of digital data that exists.

And any duplication or overlap of data definition has to be managed somehow.

 

In TOGAF, architects define “data entities” that are stored and maintained in digital “data components”.

However, when defining the meaning of a data entity type, the storage mechanism is irrelevant.

A data entity may model, describe or represent a material object (your motor car) or a conceptual/data object (an insurance claim).

To define such a data entity is not to define its physical nature (ink on paper, magnetic pattern on discs, sound waves, electron movements in wires).

In defining it, you make no reference to IT, rather, you define the meaning of the thing the data represents.

So, to define the data entity is tantamount to defining the business entity it represents.

 

A business object is supposedly more logical or conceptual in nature than a data object, but data definition is already conceptual.

E.g. the definition associated with a “Supplier” data entity may be indistinguishable from the definition of a “Supplier” real-world entity.

And 50 years into the Information Age, often, the things or events of importance to a business are data objects.

 

This example shows a business object that is realisable by three different physical representations.

In practice, the definition of the “Claim” business object in this model may be indistinguishable from the definition a corresponding “Claim” data object (whether the object instances are digital or not).

 

 

ArchiMate example 24 http://pubs.opengroup.org/architecture/archimate3-doc/chap08.html#_Toc489946043

Describing data architecture in TOGAF

Data architecture is not only about data structures at rest (in store); it is also about data structures in motion (in flows).

TOGAF classifies artifacts that record the production and consumption of transient data flows under the headings of business and applications architecture.

As a result, what it classifies under the data architecture heading are artifacts that record the creation and use of data entities in persistent data stores.

 

TOGAF says: “The purpose of the Data Entity/Data Component catalog ... including data entities and also the data components where data entities are stored.”

In other words, a data component relates persistent data entities in a passive data structure that persists.

That data structure must survive the deletion of application/technology component instances, and the turning off of electricity to devices.

In the simple and normal case, one logical data component is realised in one physical data component, defined in the form required by a physical technology for storage in one location.

For some reasons (e.g. agile development) one logical data structure may be divided between two or more physical data components, which may be integrated asynchronously.

For other reasons, one physical data component may contain two or more logical data components.

 

Where are business layer data entities defined in artifacts?

The conceptual data diagram and data entity/business function matrix can contain only a small fraction of the number of data entities in the application layer data entity/data component catalog.

 

Data entity/business function matrix

Business data entities

<are created and used by>

Business functions

Conceptual data diagram

Business data entities

<are related to>

Business data entities

 

Moreover, business data entities may differ by aggregation or generalisation from application data entities.

This implies need for a separate business data catalog in which those larger or more generic data entities are defined.

The business data catalog should serve to define business objects that are important enough to be remembered as data entities.

(Would we want to define business objects that are not that important?)

 

Where are application layer data entities defined in artifacts?

Data entities can be related to each in a larger data structure using a logical data diagram.

Logical data diagram

Data entities

<are related to>

Data entities

 

One data entity type may appear in several logical data diagrams.

A logical data diagram may be realised in a variety of physical database schema.

These relationships are recorded in the data entity/data component catalog.

Data entity/data Component catalog

Data entities

<are related together in>

Logical Data Components

<are realised by

Physical Data Components

 

The data relation above looks like the generic relation, but it is different.

There is neither behavior nor active structure in the relation above; there are only three passive structures.

 

Where are data flows defined in artifacts?

Data flows are recorded in two matrices and one catalog.

Information Exchange matrix

Data flows

<pass between>

Business Entities

Application Interaction matrix

Data flows

<pass between>

Application Components

Interface catalog AKA Data flow catalog

Data flows

<pass between>

Application Components

 

Data flows can also appear as arrows in these two diagrams.

Business Interaction diagram

Business architecture entities

<communicate with>

Business architecture entities

Application Interaction diagram

Application architecture entities

<communicate with>

Application architecture entities

 

In these two diagrams, the “communicate with” relationship may be modelled in two different ways, using a flow arrow or a serves arrow.

And the arrow may represent one flow or service, or several of them.

 

Where is data flow in the meta model?

Looking at the meta model of TOGAF, some see “data entity” as standing for data structures both in stores and flows, and/or see data components as data flows.

Instead, however, data flows can be seen attributes of business and application/IS services.

 

Both ArchiMate and TOGAF standards define a service as a requestable or exposed unit of behavior.

This interaction between a client actor/component and a server actor/component is definable in a contract.

Indeed, the Architecture Requirements Specification includes business service contracts and application/IS service contracts.

Ideally, a contract declares any input and output data flows that a service consumes and produces, without reference to internal procedures.

 

Where are data flows that are not defined in service contracts?

Will all data flows be associated with and defined in service contracts? And if not, then where are they documented? One obvious place is what TOGAF calls the interface catalog.

And if architects use that to record data flows, then should service contracts cross-refer to it? And if the interface catalog is where application layer data flows are recorded, then where are business layer flows recorded?

 

Where are data structures conveyed within data flows defined?

A customer told me they have an enterprise message catalog containing more than 2,000 message types, with duplicated content but different data types.

A presumption of EA is that application integration costs will be lower if there is a single point of definition (SPOD) for data elements.

 

Business actors exchange defined messages, and act in response in the light of defined memories.

TOGAF addresses the memory side of things along the lines in the left hand column below.

Superficially, the messaging side of things can be described in a similar way, but it is different.

 

Data elements in memories (entities in data stores)

Data elements in messages (canonical data structures)

A data entity is a structure of data items that is or represents

a thing or event that a business needs to remember.

E.g. customer, order, product, application, employee, or asset.

A message element is a structure of data items that is

a collection of facts business entities need to exchange in messages.

E.g. name + address + telephone, order + items, or a table of exchange rates.

One data store contains a data structure composed of several/many data entities related semantically to each other

in a logical structure (an entity-attribute relationship model).

One data flow contains a data structure composed of

one or more message elements related to each other

in a sequential structure (a regular expression).

Data entities may be related in

different data structures, in

different data stores, which are

differently located.

Message elements may be related in data flows that are

differently sequenced,

sent to different receivers and

differently timed.

 

Data flows are weakly represented in most EA frameworks. However...

In TOGAF, data flow structures are defined in or associated with the Interface Catalog and the Information Exchange Matrix.

The artifacts culd include business and application data flow catalogs, in which the data flow structure is an attribute of a data flow.

Surely, rather than confuse the definition of data stores and data flows, the next step would be add a canonical data model for defining message elements?

Other terms and concepts

ArchiMate’s interaction and collaboration were derived from those in UML.

An interaction is an “internal behavior”, a process which may realise a service.

A collaboration is the term for a structure of communicating elements, which may perform interactions.

 

Interactions as behaviors

In UML, an interaction diagram shows a process than can be performed from start to finish.

An interaction is composed of “traces”, each being a “sequence of event occurrences”

“The sequence of the messages is considered important for the understanding of the situation.”

“In an interaction diagram each vertical line describes the time-line for a process, where time increases down the page.”

In ArchiMate, an interaction is “A unit of collective behavior performed by (a collaboration of) two or more structure elements.

“The name of an application interaction should clearly identify a series of application behaviors”.

“An application interaction may realize an application service.”

 

Collaborations as structures

In UML, “A collaboration defines a set of cooperating participants.”

It explains “how a system of communicating elements collectively accomplish a specific task or set of tasks”.

In ArchiMate, a collaboration is an “internal active structure”.

It is “an aggregate of two or more active structure elements, working together to perform some collective behavior.”

 

Behaviors go by many names, including process, scenario, value stream, use case, service and operation.

A behavior runs from an event-triggered start to an end, which may be specified at two levels:

·         One or more products (output flows and/or system state changes).

·         One or more desired results (goals, objectives, outcomes) to be met by users of those products.

 

Flows as products

The input and outputs of a behavior may be called flows.

Architects describe I/O flows contain data and sometimes material goods.

The product of a service includes any data or material flow a requester or consumer obtains from it.

E.g. An “inspect exhaust service” produces a flow of information to the vehicle owner

E.g. A “fit new tyre service” produces a flow of material goods to the vehicle owner.

 

System state changes as products

Another product of a service is a change to the state of a system.

E.g. value added to a product.

E.g. address updated after a change of address

 

Results as outcomes of product use

Actors make use of the products of behaviors to meet goals, objectives or achieve outcomes.

“Desired results” is a label used in the OMG’s business motivation model for goals and objectives.

 

Value propositions

Architects define different value propositions for different stakeholders in any proposed change.

Architects might define different value propositions for different consumers of one product.

 

Capability

A capability is ability to do something (perform one or more processes) or achieve something (reach one or more goals).

So a capability is always in 1 to 1 correspondence with something else that can be modelled.

Business Capability is a subtype of Capability in 1 to 1 correspondence with Business Function.

 

(This paper includes material from papers at http://avancier.website copyright © Avancier Ltd, and three diagrams from the ArchiMate version 3.0.1 standard, Copyright © The Open Group, All Rights Reserved.

TOGAF and ArchiMate are registered trademarks of The Open Group.)