Second tip I’ve got for you is about the closed loop system that you could see marked below on the application layer metamodel - Advised Skills

ArchiMate metamodel – tips to understand it better – Part 2

In previous part of this article, ArchiMate metamodel – tips to understand it better – Part 1[1], we introduced metamodels – the visual way of describing ArchiMate’s structure and relationships. We also introduced three metamodels: top-level language structure, which describes how the ArchiMate Language is constructed, the Generic Metamodel which is the base metamodel for all the layers and Technology Layer Metamodel, that we used to introduce first tip on reading the metamodels.

In today’s article we are going to explore Business and Application metamodels and learn new tips on reading them. At the end we will check the cross-layer metamodels to provide you with easy understanding how to connect layers together.

Internal and external view

If you take a closer look on the business metamodel below you could distinguish two parts. The top one (external) tells us about elements visible or used by others or other systems. The bottom one (internal) tells us about the internal (to the use case or system) elements.



(Source: https://pubs.opengroup.org/architecture/archimate3-doc/chap08.html)[2]
Simply said, on top you show what is needed from user/customer/other system point of view (interfaces + needed behaviors).
On the bottom you model how you are going to realize those needs, meaning which roles and actors you need and what kind of processes or functions or interactions are established to realize services.
Let’s look on business layer example below:


In this scenario we have three companies: Facebook, Google and Intel. Facebook and Google are Intel’s customers, so they need some customer service. External view tells us what are the channels (interfaces) through which they contact Intel: we’ve got Web Interface and Phone Interface. Through those channels they have access to group of Customer Services related to Fault Fixing and Fault Reporting.
Internally we have the Intel’s Customer Service Team which is assigned to Fault Handling function, which is realizing whole group of services. Thanks to that we have a clear split what is needed and visible from customer’s point of view and how we organize the work internally.
Tip: As you see there are two relationships used mostly: Internal Behavior is realizing Services while Active Structure Element is composed of interfaces.

Closed loop system

Second tip I’ve got for you is about the closed loop system that you could see marked below on the application layer metamodel:

(Source: https://pubs.opengroup.org/architecture/archimate3-doc/chap09.html)
This concept derives from Service-Oriented Architectures. Most of the behaviors are exposed in form of services. Let’s look on example below:

In this example we have a web application component (CMSWeb) that needs some data-related services from our database application component CMSDB.
You could see that we need 4 types of elements to fully expose behavior outside. You need active structure element (CMSDB), that has interface (REST API) that is used to get an access to data-related services. Those three elements are all Active Structure Elements.
Now, we need to add behaviors: trough REST API we got access to three application services (RemoveData, PutData and GetData). To realize those, we need some internal behavior – in this example we have a function (Data access) to which CMSDB is assigned.
To sum up: Closed loop system is a combination of four elements needed to expose behavior outside: main active structure element that is assigned to a behavior, that is realizing services accessible through interface, which is part of active structure element.

Note: In this example you could also recognize previous tips:
• Right column (Active Structure Elements) is always assigned to Behaviors column
• Interface and Services are our external elements, while Application Component and Function are our internal elements

Connecting layers together

There is also a special metamodel that shows how layers are connected. You could see it below.

 

Despite the fact at the first glance it looks overly complicated it is not so bad after you analyze this metamodel. If you take a closer look you could spot that there are just two relationships used for connecting layers together.
Serving – is used between services and other layer’s behaviors or other layer’s main active structure component to show that those services are used by them. We use serving between interfaces and other layer’s active structure elements to show that those interfaces are used by them.
Realization – is used between elements of the same type to show relationship between more abstract and less abstract entity. For example: Business Object is realized by Data Object, because Business Object is just a representation of some kind of business data, while the same data, if organized logically becomes a Data Object on application layer. Business Process is more abstract than Application Process which realizes it – cause Application Process is better defined in terms of what exactly is happening.

Tip: There is one exception to the rules mentioned above. Let us analyze extended example from first part of article:


Artifact – the passive structure object from Technology layer – can realize Data Object, but also could realize Application Component. Artifact (Customer Database) realizes Data Object (Customer Data), because it is a physical representation of logical data. Other artifact (Capp.jar) could realize Application Component (CApp), because it is an executable file, that is deployed somewhere for execution. Realization in such sense is a translation of an application component onto a technology layer artifact.
To sum up, let’s look on main takeaways from this article:

• All layer’s metamodels are based on the generic metamodel
• Each metamodel has internal and external elements.
• External elements represent outside needs: what is needed from user/customer/other system point of view (interfaces + needed services).
• Internal elements represent how we are going to realize those needs – which internal active structure elements and internal behaviors are needed.
• Combination of internal and external elements is called a closed loop system – to expose fully behaviors outside you need four elements – interface, service, main active structure element and related internal behavior which will realize services.
• To connect layers together you need just two relationships: realization and serving
• Artifact could realize Data Object but also Application Component

[1] ArchiMate metamodel – tips to understand it better – Part 1
[2] https://pubs.opengroup.org/architecture/archimate3-doc/chap08.html
[3] https://pubs.opengroup.org/architecture/archimate3-doc/chap09.html

The Knowledge Centre

Sharing knowledge is essential
for our team

Enterprise architects have a ton of responsibilities within an organization or business. Find out exactly what an enterprise architect does.

What Do Enterprise Architects Do?

Enterprise Architects have a ton of responsibilities within an organization or business. Find out exactly what an enterprise architect does.

AdvisedSkills

NewsNovember 30, 2022

Enterprise Architecture: 3 Things of Note in Changing Times

Enterprise Architecture: 3 Things of Note in Changing Times

40% of organizations have Enterprise Architects on their staff. The business world now recognizes its benefits. New tools and standards changed how Enterprise Architects do their job.

AdvisedSkills

NewsNovember 25, 2022

Scaled Agile Exam Prep Tips for Certification

Beyond Agile Training: Scaled Agile Exam Prep Tips for Certification

Have you almost completed your Agile training? Are you looking to get ready for the exam? Click here for some tips that will help you succeed.

AdvisedSkills

NewsNovember 23, 2022

What is Open Agile Architecture? Watch Video

Watch video what is Open Agile Architecture

The Open Group's latest standard, Open Agile Architecture™ offers an approach to architect at scale with agility.

AdvisedSkills

NewsNovember 22, 2022

Agile is a software development methodology that many software developers follow. Learn about the best practices of this method here.

What Are Agile Practices in Software Development

Agile is a software development methodology that many software developers follow. Learn about the best practices of this method here.

AdvisedSkills

NewsNovember 21, 2022

Become a trainer

We are looking for Instructor who will be responsible for delivering classroom and online live courses. Positive and efficient working environments are key to our trainers' success.

Get started now!