Skip to content

FOSS DCM Application ‐ Upgrade to Catena‐X 24.05

Stephan Bauer edited this page May 6, 2024 · 2 revisions

Table of Contents

What is this challenge about?

This challenge is about updating and upgrading an existing application, mainly written in React and Java, to be compatible with Catena-X standards 24.05. It is divided into three areas, that deal with: upgrading capabilities as defined within Catena-X standards, upgrading capabilities outside Catena-X standards and upgrading the technical stack as defined by Catena-X standards and Eclipse Tractus-X. We do hope to provide an interesting challenge and establish long-term maintainers for this application.

Surrounding Conditions

  • We do have code, that fully implemented Catena-X DCM standard in version 23.09
  • Version 23.09 is out of date.
  • Version 24.05 will result in a breaking change for the whole of Catena-X
  • The Eclipse Tractus-X version is currently not deployable
  • It was deployable within the Catena-X consortia environment
  • A guide with access to all relevant standards, be it released or unreleased will be present. Said guide also knows the Catena-X DCM standard by heart.
  • A guide with technical expertise regarding Catena-X und Eclipse Tractus-X environment will be present. Said guide is also experienced with React (Frontend) and Java (Backend).

How to prepare for the challenge

  • Be aware that we except participants to run their DEV environment locally
    • Ensure that your DEV machine has at least 16 GB of RAM as well as a quad-core CPU
  • Install your favorite IDE to your local DEV machine
  • Ensure that you have access to your github account
  • Install git to your local DEV machine
  • Clone the DCM FOSS repository to your local DEV machine
  • Install your favorite container management to your local DEV machine
  • Deploy a keycloak container to your local DEV machine
  • Deploy a postgres container to your local DEV machine
  • Polish up on React and Java
  • Familiarize yourself with the DCM FOSS repository
  • Familiarize yourself with the Catena-X standards

Questions and Answers

Question Answer
Why is this event a challenge and not a workshop? Within a workshop we would show you how to deploy a working DCM FOSS application and give you suggestions on how to utilize it for your business processes. Within this challenge we are working on fixing or rather upgrading DCM FOSS so we may conduct a workshop at the third community days.
Whats the goal of this event? Improve und upgrade the state of DCM FOSS and establish a group of at least three people that are willing to maintain the DCM FOSS application in the medium- to long-term.
Who is the target audience of the DCM FOSS application? Small and medium enterprises. The aim is to allow companies with a single IT-guy to participate easily within the Catena-X DCM usecase, without having to pay a big software vendor.
What should I bring to the event? Bring your DEV machine, admin rights to that machine, a working GitHub account and that sweet delicious brain of yours.
Where can I find the Catena-X standards? You can find released versions in the standard library
When preparing for the challenge, what should I focus on? Familiarize yourself with the current state of the application and CX-0128 in Version 2.0.0
The standard library does not contain version 2.0.0, only version 1.0.0 Depending on when you read this, CX-0128 might not have been publicly released yet.
How am I supposed to work on something without the most recent version of the corresponding standard? Guides with access to all (even not yet released) standards will be present during the event.

Upgrade functional capabilities as defined by Catena-X Standards

Status of capabilities defined by Catena-X standards

NIS: Capability was not part of that particular standard version NV: Not verified N/A: Not applicable

Capability / Standard 23.09 24.03 24.05 Outside Standard
Core Process 100% 100% NV N/A
Supply Chain Disruption Notification NIS NIS 0% N/A
Request for Update NIS 0% 0% N/A
Comments NIS 0% 0% N/A
DCM Asset Administration Shell API (AAS API) NIS 0% 0% N/A
Simulated Delta-Production (Pre-/Post-production) NIS 25% 0% N/A
Demand Volatility Metrics NIS NIS 0% N/A
Load Factors NIS NIS 0% N/A

Core Process as described by CX - 0128 Demand and Capacity Management Data Exchange

Type Name Function
Standard CX-0128 Demand and Capacity Management Data Exchange Contains all relevant information on how the core DCM process works
Aspect Model WeekBasedMaterialDemand Contains Demand Data, including materialNumberCustomer, demandCategoryCode and customerLocation
Aspect Model WeekBasedCapacityGroup Contains Capacity Data, including linkedDemandSeries{}
API WeekBasedMaterialDemand EndPoint for receiving Demand Data
API WeekBasedCapacityGroup EndPoint for receiving Capacity Data
sequenceDiagram
actor Customer
actor Supplier
autonumber
    loop provide weekBasedMaterialDemand
        Customer-)+Supplier: I require x amount of material N
    end
        loop link weekBasedMaterialDemand and weekBasedCapacityGroup
            Supplier->>Supplier: I had a look in my contracts and<br> matched my customers materialnumbers to my own materialnumbers
            Supplier->>Supplier: I have analyzed my production facilities and<br> concluded what the relevant bottlenecks are
            Supplier->>Supplier: Materials N,M,... share a common, relevant bottleneck
        end
    loop provide weekBasedCapacityGroup
        Supplier -)-Customer: I do have y capacity for the following combination of materials N,M,...
    end

Loading

Additional Features as described by CX - 0128 Demand and Capacity Management Data Exchange

Supply Chain Disruption Notification

Type Name Function
Standard CX-0146 Supply Chain Disruption Notifications Contains all relevant information on how Supply Chain Disruption Notification works
Aspect Model DemandAndCapacityNotification Contains Notification Data
API DemandAndCapacityNotification Endpoint for receiving Notification Data
sequenceDiagram
actor J as Company J
actor K as Company K
autonumber
    alt provide DemandAndCapacityNotification A
        J-)K: There is an earth-quake effecting site A and B <br> starting on 10.10.2010 which results in demand-reduction for materials X,Y and Z.<br> I expect is disruption to end on 20.10.2010
    end
    opt provide DemandAndCapacityNotification B
        J-)K: There is an strike effecting site C <br> starting on 12.10.2010 which results in demand-reduction for material Z.<br> This happened because of the event mentioned in DemandAndCapacityNotification A
    end
    opt provide DemandAndCapacityNotification A
        J-)K: The earth-quake has been resolved.
    end
    opt provide DemandAndCapacityNotification B
        J-)K: The strike has been resolved.
    end
Loading

Request for Update

Type Name Function
Standard CX-0128 Demand and Capacity Management Data Exchange Contains all relevant information on how Request for Update works
Aspect Model IdBasedRequestForUpdate Contains RfU Data
API IdBasedRequestForUpdate Endpoint for receiving RfU Data
sequenceDiagram
actor J as Company J
actor K as Company K
autonumber
    par provide IdBasedRequestForUpdate
        J-)+K: Give every single WeekBasedMaterialDemand you have, that concerns us both
    and
        J-)K: Give me WeekBasedCapacityGroup A and B <br> also give me C but only if your version of C is more recent than 01.01.2022
    end


    loop provide weekBasedMaterialDemand
        K-)J: Here are all the WeekBasedMaterialDemands<br> where you and I are Customer and Supplier OR Supplier und Customer
    end
        loop provide weekBasedCapacityGroup
        K-)-J: Here are WeekBasedCapacityGroup A and C<br> but not B, because you are neither Customer nor Supplier in B
    end

Loading

Comments

Type Name Function
Standard CX-0128 Demand and Capacity Management Data Exchange Contains all relevant information on how comments work
Aspect Model IdBasedComment Contains Comment Data
API IdBasedComment Endpoint for receiving Comment Data
sequenceDiagram
actor J as Company J
actor K as Company K
autonumber
    par provide IdBasedComment
        J-)K: Here is a comment, concerning WeekBasedCapacityGroup A
    and
        J-)K: Here is a comment, concerning WeekBasedCapacityGroup B: weeks 34 to 40
    and
        J-)K: Here is a comment, concerning your previous IdBasedComment Y
    end

Loading

DCM Asset Administration Shell API (AAS API)

Type Name Function
Standard CX-0002 DIGITAL TWINS IN CATENA-X Contains all relevant information on how Digital Twins in Catena- X work
Standard CX-0128 Demand and Capacity Management Data Exchange Contains all relevant information on how to utilize Digital Twins within DCM
Aspect Model WeekBasedMaterialDemand Contains Demand Data, including materialNumberCustomer, demandCategoryCode and customerLocation
Aspect Model WeekBasedCapacityGroup Contains Capacity Data, including linkedDemandSeries{}
API DCM Asset Administration Shell API (AAS API) Endpoint for patching submodels within a DTR
API WeekBasedMaterialDemand EndPoint for receiving Demand Data
API WeekBasedCapacityGroup EndPoint for receiving Capacity Data
sequenceDiagram
actor Customer
actor Supplier
autonumber
    activate Customer
    loop
        par Manage Material Demands
            Customer-)Customer: I need to communicate <br>the following material demands to the following suppliers
        and Manage Digital Twin Registry
            Customer-)Customer:Register submodel and grant supplier right <br>to write to patch the submodel
        and provide weekBasedMaterialDemand
            Customer-)+Supplier: I require X amount of material N
        end
    end
    deactivate Customer
    loop
        par Manage Capacity Groups
            Supplier-)Supplier: I need to bundle the following weekBasedMaterialDemand together<br> into the following weekBasedCapacityGroup<br> and communicate them to the following Customer.
        and Patch submodel in Customer DTR
            Supplier-)Customer: The following weekBasedCapacityGroup<br> relate to the following materials.
        and Manage Digital Twin Registry
            Supplier-)Supplier: Register submodel and grant customer right <br>to write to patch the submodel
        and provide weekBasedCapacityGroup
            Supplier-)-Customer: I do have Y capacity for<br> the following combination of materials N,M,...
        activate Customer
        end
    end
    loop
        par Patch submodel in Supplier DTR
            Customer-)Supplier: The following weekBasedMaterialDemand<br> relate to the following materials.
        end
        deactivate Customer
    end
Loading

Simulated Delta-Production (Pre-/Post-production)

Type Name Function
Standard CX-0128 Demand and Capacity Management Data Exchange Contains all relevant information on how simulated delta production works
Aspect Model WeekBasedCapacityGroup Contains Capacity Data including deltaProductionResult
API WeekBasedCapacityGroup EndPoint for receiving Capacity Data
sequenceDiagram
actor Customer
actor Supplier
autonumber
    alt provide weekBasedCapacityGroup
        Supplier-)Customer: I do have y capacity for the following combination of materials N,M,...<br>and I am using Post-production in weeks 8,9,10 to compensate bottlenecks in weeks 5,6


    else provide weekBasedCapacityGroup
        Supplier-)Customer: I do have y capacity for the following combination of materials N,M,...<br>and I am using Pre-production in weeks 11,12,13,14 to compensate bottlenecks in week 20
    end
Loading

Demand Volatility Metrics

Type Name Function
Standard CX-0128 Demand and Capacity Management Data Exchange Contains all relevant information on how demand volatility metrics work
Aspect Model WeekBasedCapacityGroup Contains Capacity Data, including demandVolatilityParameters{}
API WeekBasedCapacityGroup EndPoint for receiving Capacity Data
sequenceDiagram
actor Customer
actor Supplier
autonumber
    alt provide weekBasedCapacityGroup
        Supplier-)Customer: I do have y capacity for the following combination of materials N,M,...<br>and I am measuring the volatility of the demands linked to this weekBasedCapacityGroup<br>using the following parameters
    end
Loading

Load Factors

Type Name Function
Standard CX-0128 Demand and Capacity Management Data Exchange Contains all relevant information on how load factors work
Aspect Model WeekBasedCapacityGroup Contains Capacity Data, including loadFactor and unitOfMeasure
API WeekBasedCapacityGroup EndPoint for receiving Capacity Data
sequenceDiagram
actor Customer
actor Supplier
autonumber
    alt provide weekBasedCapacityGroup
        Supplier-)Customer: I do have X capacity for the following combination of materials N,M,...<br>and the demands of your material N should be treated as if multiplied by Y<br>and the demands of your material M should be treated as if multiplied by Z<br>and that the unitOfMeasure of all your materials should be treated as if it were {cycles or seconds}.
    end
Loading

Upgrade functional capabilities outside Catena-X standards

Status of capabilities not defined by Catena-X standards

NIS: Capability was not part of that particular standard version NV: Not verified N/A: Not applicable

Capability / Standard 23.09 24.03 24.05 Outside Standard
Local Address Book NIS NIS NIS 90%
Capacity Groups and Material Demand - Alerts NIS NIS NIS 65%
Event Logging and History NIS NIS NIS 90%
Favorites NIS NIS NIS 80%
Admin Panel NIS NIS NIS 20%

Local Address Book

  • Capability to create local address book entries for companies from a Catena-X provided golden record
  • Capability to synchronize those local entries with golden records
  • Capability to import an existing list of company records and verify them against golden records
  • Capability to create local person records and link them to company records

Capacity Groups and Material Demand - Alerts

  • Capability to manage global alerts
  • Capability to manage dedicated alerts
  • Capability to manage alerts for absolute changes of demand and capacity
  • Capability to manage alerts for relative changes of demand and capacity

Event Logging and History

  • Capability to log user interactions
  • Capability to log system events (EDC)

Favorites

  • Capability to favorite companies, materials, material demands, capacity groups, persons, ...
  • Capability to manage favorites on a per user basis
  • Integration of favorites in all related search functionalities and drop-downs
    • Show favorites on top
    • Search favorites first

Admin Panel

  • Integration of all relevant admin functionalities into a single GUI
    • Manage BPN L/S/A
    • Configure events
    • Configure alerts
    • Setup EDC
    • ...

Upgrade technical stack as defined by Catena-X Standards and Eclipse Tractus-X

EDC

Type Name Function
Standard CX-0018 Eclipse Data Space Connector (EDC) Contains all relevant information on how EDC works
Repository Tractus-X EDC Contains EDC release 0.7

Catena-X release 24.05 mandates EDC 0.7, which represents a breaking change from EDC 0.5. DCM FOSS needs to be updated to work with EDC 0.7

GitHub Organization and Repository

Type Name Function
Repository Eclipse Tractus-X Demand Capacity Management Contains DCM FOSS. This is the intended and final repository.
Repository Catena-X Demand Capacity Management Contains DCM FOSS. This was an intermediate repository.
PULL Request Consortia Cleanup Merged the final development efforts of the consortia into Eclipse Tractus-X

DCM FOSS was initially developed within the Catena-X Consortia organization and repository. Both organization and repository will be locked and abandoned once the consortia ends in 2024. For DCM FOSS the consortia cleanup was successfully executed and it was migrated to Eclipse Tractus-X. However DCM FOSS has never been built within and from this new environment.

DCM FOSS needs to be fully integrated into Eclipse Tractus-X