Skip to main content
Version: 24.05

Architecture

Behaviour Twin KIT banner

Behaviour Twin KIT

BASIC ARCHITECTURE

OVERVIEW

A Behaviour Twin use case consists of data and calculation services. In addition, a logic is required, that defines how data and services must interact to produce the desired result. This logic is called skill. It must be invoked directly or indirectly by the consumer.

logic

Data and services are federated over the dataspace:

dataspace

A use case may consist of multiple data sources and calculation services:

dataspace-complex

ROLES

Each participant in a Behaviour Twin use case applies to one or more of the following roles:

  • consumer (result requester)
  • skill provider (provider of the use case logic)
  • data provider (provider of usage data, likely an OEM)
  • delegator (delegates data to calculation services, likely a supplier of a component that is assembled of sub-components which are providing calculation services)
  • calculation service provider (likely a supplier of a part or component)

DETAILED ARCHITECTURE

KNOWLEDGE AGENT

The architecture is based on so-called Knowledge Agents that consists of:

  • Federated Catalog
  • Matchmaking Agent
  • Binding Agents (Provisioning Agent/Remoting Agent)
  • Bindings (configurations of binding agents)

The components are federated over all participants. All data (and services) are represented together as a federated knowledge graph. The processing logic for the agents is defined in so-called skills. All communication is handled by EDC connectors.

A detailed view of how Knowledge Agents and skills work is given in the section Knowledge Agent (which comes next to this section).

BUSINESS PROCESS

In Behaviour Twin use cases, the fist step into the federated logic is usually the data provider. There, dependencies of the targeted main-component (e.g. a vehicle) are known. Therefore, registering predefined skills at the data provider is a common option. Such skills then can be initiated by external partners as well as internally. As an alternative, skills can be hosted externally (at the consumer or a third party). In every case, especially if the skill is not located at the data provider, the skill must be written in a way that the relation between the usage data and the calculation services is resolved at the data provider or any other party, that has all the required information in its federated catalog (see To Be Considered).

The following business process is only an example. Depending on how the skill is written, the process can vary.

business-process

  1. Register skill asset (0.1) and sync federated catalog (0.2):
    The predefined skill is registered as an asset at the data provider's EDC connector. The federated catalogs are synchronized periodically.

  2. Invoke skill asset:
    The consumer invokes the skill by calling the agents API at its own EDC connector. The partner's EDC connector address must be known. To resolve this address is up to the use case. A prognosis function result type and a component or vehicle ID (e.g. VIN) is set as parameter for the skill.

  3. Request skill asset:
    The skill is invoked by requesting the skill asset at the data provider via EDC connectors.

  4. Resolve prognosis function assets by requested result type:
    The Knowledge Agent resolves all prognosis function assets from the federated catalog that matches the desired result type.

  5. Resolve prognosis data assets by function parameter types:
    The Knowledge Agent resolves all data assets by the parameter types of the previously matched prognosis function(s).

  6. Resolve actual usage data and service provider by component ID:
    The Knowledge Agent resolves the sub-component of interest, its supplier and the actual related data by the component's ID.

  7. Fetch data:
    The data (parameters for prognosis functions) are fetched from the data provider's bound data source. They are transferred into graph representation by a provisioning agent (data binding agent).

  8. Transfer data and deploy sub-skill:
    The fetched data and a sub-skill (logic for calling the calculation service) are transferred to the calculation service provider's Knowledge Agent via EDC connectors.

  9. Call service and fetch result:
    The calculation service (prognosis function) is called. The data (parameters for the prognosis function) are translated into the format the service requires. This is automatically done by an remoting agent (service binding agent), which is statically configured by service bindings. The result of the service then is translated back into graph format by the remoting agent.

  10. Return result:
    The result is transferred to the invoker of the sub-skill (here, it is the data provider) via EDC connectors.

  11. Delegate result:
    The result is delegated to the consumer via EDC connectors.

  12. Get result:
    The result is delegated to the consumer's application.

To have a common understanding of how to interpret and translate elements in the graph, common ontologies and taxonomies must be used. These are also needed for the interpretation of skills and sub-skills as there is e.g. inheritance in ontologies which must be known by the Knowledge Agent to resolve relations.

BUILDING BLOCK COMPONENTS

USE-CASE-SPECIFIC COMPONENTS

SubsystemDescription
Data Consuming AppThis component is the app that is hosted at the consumer and provides the end user interface.
Usage DataA data source at the data provider that provides usage data that are required for prognosis services.
It can be accessed by the Knowledge Agent via data bindings.
Calculation ServiceA calculation service at the service provider. It accepts input data from federated data sources, calculates the result values and returns them.

KNOWLEDGE AGENT COMPONENTS

SubsystemDescription
Matchmaking AgentThis component supports SPARQL (skills/sub-skills) to traverse the federated data space as a large data structure. It interacts with the EDC connector.
A provider's Matchmaking Agent will be activated by its EDC connector. Therefore, the EDC must offer a Graph Asset (variant of ordinary data assets in the related Catena-X standards).
A consumer's Matchmaking Agent interacts with its EDC to negotiate and perform the transfer of sub-skills to other dataspace participants.
The Matchmaking Agents are matching the (sub-)graphs and negotiate appropriated graph assets with the partner EDCs.
Binding AgentThe Binding Agent is a restricted version of the Matchmaking Agent (subset of OWL/SPARQL, e.g., without federation) which is just focused on translating sub-skills of a particular business domain (Bill-Of-Material, Chemical Materials, Production Sites, etc.) into proper SQL- or REST based backend system calls.
Binding agents for data bindings are called Provisioning Agent.
Binding agents for service bindings are called Remoting Agent.
BindingA Binding is part of the configuration of a Binding Agent. It defines the binding (translation form/into graph representation) for specific data/service instances.
OntologyThe ontology is a formal representation of knowledge that captures concepts, relationships, and properties. It allows a shared understanding and reasoning about the respective domain.
It must be hosted in a way that all participants can access it.
Skill/Sub-SkillThe Skill describes, what to do (which data have to be connected, transferred, processed ...).

CATENA-X CORE SERVICES (EXCEPT KNOWLEDGE AGENT COMPONENTS)

SubsystemDescription
EDC connectorThe Connector of the Eclipse Dataspace Components (EDC) provides a framework for sovereign, inter-organizational data exchange. It implements the International Data Spaces standard (IDS) as well as relevant protocols associated with GAIA-X. The connector is designed in an extensible way in order to support alternative protocols and integrate in various ecosystems.

MANDATORY COMPONENTS

You always need access to your running connector (EDC) with knowledge agent components and the (extensible) ontologies of Catena-X. In most cases, you can use them as they are.

Depending on your role, you need a combination of the following components:

  • EDC connector + knowledge agent
  • ontologies (semantic models)
  • usage data
  • calculation services
  • matchmaking agent: mapping ontology to knowledge graph, integrated into KA-dataplane
  • binding agents:
    • provisioning agent: provide data
    • remoting agent: bind service to graph
service providerdelegatordata providerconsumerskill provider
EDC connector
+ agent plane / matchmaking agent
xxxxx
ontologiesxxxxx
skill-accessxx
usage datax
provisioning agentx
calculation servicex
remoting agentx

USE CASE TYPES

Depending on how roles coincide and where skills are executed, the use case architecture, graph assets and skills must be adapted. Detailed information about how to write dedicated skills can be found in the Agents KIT's Operation View.

COMBINATION OF ROLES

The use cases can be divided depending on which roles coincide. When writing a skill, you always have to keep in mind who has access to whose resources and how to write the skill correctly and safely.

The roles data provider and calculation service provider can occur more than once. There are many combinations of the roles possible, but the following ones are the more common ones.

SKILL PROVIDER IS NEUTRAL ENTITY

combination skill provider is neutral entity

There may be reasons why the skill provider is not the consumer, as well as not one of the other roles:

  • The skill provider invents new skills and offers them.
  • The skill provider is a trustee, it has knowledge over relations that others don't have.

CONSUMER IS SKILL PROVIDER

combination consumer is skill provider.drawio

Often the consumer is also the skill provider. It knows what to ask for and how to process the data to get the desired results.

DATA PROVIDER IS CALCULATION SERVICE PROVIDER

combination data provider is service provider

If the data provider is also the calculation service provider, from the caller's point of view, it's like they're different entities that have full access to each other. The skill provider is a neutral entity.

DATA PROVIDER IS SKILL PROVIDER

combination data provider is skill provider

In some cases, the data provider provides a skill that can process its data in a data sovereign way. Through this, it has the full control over how its data can be processed.

CALCULATION SERVICE PROVIDER IS SKILL PROVIDER

combination service provider is skill provider

If the calculation service provider provides a skill, from the caller's point of view, it's like a data asset that can be parameterized.

CONSUMER IS SKILL PROVIDER AND IS DATA PROVIDER

combination consumer is skill and data provider

With this combination, a consumer can utilize its own data in any way it wants to by using external calculation services.

CONSUMER IS SKILL PROVIDER AND IS CALCULATION SERVICE PROVIDER

combination consumer is skill and service provider

With this combination, a consumer can parameterize its own calculation service with data of partners in any way it wants to.

CONSUMER IS SKILL PROVIDER AND DATA PROVIDER IS CALCULATION SERVICE PROVIDER

combination consumer is skill provider and data provider is service provider

If the data provider is also the calculation service provider, from the caller's point of view, it's like they're different entities that have full access to each other. When using its own skill, the consumer has control over how the data is processed.

ALL ROLES COINCIDE

combination all roles coincide

With this combination, a consumer can utilize its own data in any way it wants to.

MORE COMBINATIONS

All combinations above may be extended by additional, separate data and/or calculation service providers.

SKILL EXECUTION

There are different options where and how the skill is executed initially:

  • at consumer side or at provider side
  • ad hoc or as a registered skill

Allowed variants may be dependent on a framework agreement.

For more information, see Agents KIT's Operation View.