Skip to content
Snippets Groups Projects
Commit c7576f5e authored by Evert Bouman's avatar Evert Bouman
Browse files

Clean up

parent c84c3cc0
No related branches found
No related tags found
No related merge requests found
@startuml US2sequence_at_component
actor Repair_center as R
participant "DPP Service Provider" as DPP_Provider #LightSeaGreen
participant "Front-end Application" as FE
participant "RE Module:API" as RE_API
participant "Material Module" as MM
'participant "SEE Module:LCI generator" as SEE_LCI
'participant "SEE Module:System matcher" as SEE_match
'participant "DPP IO:API" as DPP_API
'participant "DPP IO:link" as DPP_link
'participant "DPP IO:transform" as DPP_transform
'participant "LCI background Database" as DB
'participant "SUT background Database" as DB_SUT
R -> DPP_Provider : Scans DPP with product
DPP_Provider -> FE : Circularise links to CE-RISE IS
FE -> DPP_Provider : Ask for repairability index (implies GET repairability index)
DPP_Provider -> FE : Returns repairability
R -> FE : Ask for manual
FE -> MM : Asks for manual for specific product ID
MM -> DPP_Provider : Requests Manual
DPP_Provider -> MM : Returns Manual
MM -> FE: Serves manual to repairer
FE -> R: Serves manual to repairer
'FE -> DPP : Request DPP Information with QR
'DPP -> DPP_Provider : API call for DPP data
'DPP_Provider --> DPP : DPP data
'CIS_DPP -> CIS_MAT : Query for CRM and valuable materials with DPP data
'CIS_MAT --> CIS_DPP : Enriched material details
'DPP --> FE : Provide DPP Information with enriched material details
'FE --> P : Display information
@enduml
' repairability
\ No newline at end of file
@startuml US2sequence_container
actor Product_Manager as P
participant "Front-end Application" as FE
participant "SEE Module" as SEE
participant "DPP IO" as DPP
participant "DPP Service Provider" as DPP_Provider #LightSeaGreen
participant "LCI background Database" as DB
participant "SUT background Database" as DB_SUT
P -> FE : Provide DPP Identifier
FE -> SEE : Request SEE impact indicators for the product
SEE -> DPP : API call to collect chain of custody for DPP
DPP -> SEE : Return LCI relevant parts of DPP and chain-of-custody
SEE -> DB : Collect LCI background database
DB -> SEE : Return LCI background datebase
SEE -> DB_SUT : Collect SUT background database
DB_SUT -> SEE : Return SUT background database
SEE -> SEE : Match foreground to background and generate LCI
SEE -> SEE : Calculate results
SEE -> FE : Return results
'FE -> DPP : Request DPP Information with QR
'DPP -> DPP_Provider : API call for DPP data
'DPP_Provider --> DPP : DPP data
'CIS_DPP -> CIS_MAT : Query for CRM and valuable materials with DPP data
'CIS_MAT --> CIS_DPP : Enriched material details
'DPP --> FE : Provide DPP Information with enriched material details
'FE --> P : Display information
note right of DPP_Provider
DPP Service Provider is an
external system.
end note
@enduml
\ No newline at end of file
@startuml US2sequence_at_component
actor Product_Manager as P
participant "Front-end Application" as FE
participant "SEE Module:API" as SEE_API
participant "SEE Module:SEE calculator" as SEE_calc
participant "SEE Module:LCI generator" as SEE_LCI
participant "SEE Module:System matcher" as SEE_match
participant "DPP IO:API" as DPP_API
participant "DPP IO:link" as DPP_link
participant "DPP IO:transform" as DPP_transform
participant "DPP Service Provider" as DPP_Provider #LightSeaGreen
participant "LCI background Database" as DB
participant "SUT background Database" as DB_SUT
P -> FE : Provide DPP Identifier
FE -> SEE_API : Request SEE impact indicators for the product
SEE_API -> SEE_calc: Trigger result calculation
SEE_calc -> SEE_LCI : Create and LCI system
SEE_LCI -> SEE_match : Request DPP and match to background
SEE_match -> DPP_API : Request LCI parts of DPP
DPP_API -> DPP_link : Collect DPP and chain of custody from DPP service
DPP_link -> DPP_Provider : Request DPP and chain of custody
DPP_Provider -> DPP_link : Return DPP and chain of custody
DPP_link -> DPP_transform : Transform DPP and chain-of-custody to internal standard
DPP_transform -> DPP_API : Return object with LCI relevant parts of DPP
DPP_API -> SEE_match : DPP relevant parts
SEE_match -> SEE_LCI : Foreground system and foreground-to-background system
SEE_LCI -> DB : Collect LCI background database
DB -> SEE_LCI : Return LCI background database
SEE_LCI -> DB_SUT : Collect SUT background database
DB_SUT -> SEE_LCI : Return SUT background database
SEE_LCI -> SEE_LCI : Create full LCI
SEE_LCI -> SEE_calc : LCI for calcualtion
SEE_calc -> SEE_API : Calculated results
SEE_API -> FE : Return results
'FE -> DPP : Request DPP Information with QR
'DPP -> DPP_Provider : API call for DPP data
'DPP_Provider --> DPP : DPP data
'CIS_DPP -> CIS_MAT : Query for CRM and valuable materials with DPP data
'CIS_MAT --> CIS_DPP : Enriched material details
'DPP --> FE : Provide DPP Information with enriched material details
'FE --> P : Display information
note right of DPP_Provider
DPP Service Provider is an
external system.
end note
@enduml
\ No newline at end of file
@startuml CE_RISE_Deployment_Diagram
!include <C4/C4_Deployment>
LAYOUT_WITH_LEGEND()
SHOW_PERSON_OUTLINE()
Person(collector, "Physical Collector", "Uses the system via a web interface.")
Node(Server, "NILU servers", " Ubuntu Linux servers where all CE-RISE services are running.") {
Container(webapp, "Front-end Web Application", "Vue.js", "Allows collectors to scan QR and view DPP information")
Container(dppioservice, "CIS DPP Input-Output Service", "Fetches and processes DPP data")
Container(mpservice, "CIS Material and Products Service", "Handles material data processing and analytics")
Container(re_module, "RE Module Service", "Manages resource efficiency calculations")
Container(see_module, "SEE Module Service", "Handles socio-economic and environmental data processing")
ContainerDb(db, "Internal Database", "Stores product, material, and analysis information")
}
System_Ext(dppprovider, "DPP Service Provider", "Provides digital product passports")
System_Ext(gitlab, "GitLab Repository", "Hosts the source code and CI/CD pipeline")
Rel(collector, webapp, "Accesses", "HTTPS")
Rel(dppioservice, dppprovider, "Fetches DPP data", "API/HTTPS")
Rel(dppioservice, mpservice, "Queries for material data", "Internal API")
Rel(dppioservice, re_module, "Requests RE data", "Internal API")
Rel(dppioservice, see_module, "Requests SEE data", "Internal API")
Rel(mpservice, db, "Stores/Fetches data", "JDBC")
Rel(re_module, db, "Accesses/Stores efficiency data", "JDBC")
Rel(see_module, db, "Accesses/Stores socio-economic data", "JDBC")
Rel(gitlab, Server, "Triggers deployment via webhook", "Jenkins")
@enduml
@startuml CE_RISE_Container_Diagram
!include <C4/C4_Container>
'LAYOUT_WITH_LEGEND()
SHOW_PERSON_OUTLINE()
Person(collector, "Collector", "User who collects and sorts waste")
Person(repair, "Repairer", "Repairs product")
Person(oem, "Product manager", "Responsible for product information supply at OEM")
Person(materialManufacturer, "Material Manufacturer", "Produces materials for products")
Person(consultant, "Environmental manager","Scope 1-3 reporting")
Person(scientist, "Researcher", "Wants to understand sustainability and CE related information for products")
Person(consumer, "Consumer", "Interested in sustainability/CE credentials of a product")
System_Boundary(cerise, "CE-RISE Information System") {
Container(webapp, "Front-end web Application",, "Main user interface")
Container(mpservice, "Products Information service",, "Handles product information and analytics")
Container(re_module, "RE Service",, "Manages Circular Strategy")
Container(see_module, "SEE service",,"Handles socio-economic and environmental data processing")
Container(dppioservice, "DPP I/O",, "Fetches and processes DPP data")
Container(dataIO,"Data ingest",,"Harvest data from external systems")
Container(search, "Search and Match",,"provides search and matching capabilities to the system")
Container(auth, "User authentication and authorisation")
Container(apigate, "API Gateway",, "Routes request to individual microservices")
ContainerDb(db_SUT, "SUT database", "Stores SUTs/MRIOTs")
ContainerDb(db_LCI, "LCI database", "Stores background LCI data")
ContainerDb(db_RE, "RE database", "Stores external data required for RE service")
ContainerDb(db_user, "User database", "Stores user information")
ContainerDb(db_search, "Search database", "Database enabling search and matching functionality")
}
System_Ext(dppprovider, "DPP Service Provider", "Provides digital product passports")
System_Ext(eolEwasteSystem, "E-Waste Health ", "AIKEN")
System_Ext(eurostat, "Eurostat API", "Provides relevant national statistic ")
'Users
Rel(collector, webapp, "Uses")
Rel(repair, webapp, "Uses")
Rel(oem, webapp, "Uses")
Rel(materialManufacturer, webapp, "Uses")
Rel(consultant, webapp, "Uses")
Rel(scientist, webapp, "Uses")
Rel(consumer, webapp, "Uses")
Rel(collector, webapp, "Uses")
Rel(collector, webapp, "Uses")
'Web app interactions with middleware services
Rel(webapp, auth, "Makes sure users can log in and are authorised")
Rel(webapp, apigate, "Requests RE functionality")
Rel(webapp, apigate, "Requests SEE functionality")
Rel(webapp, apigate, "Request product information")
Rel(webapp, apigate, "Request search functionality")
'API gateway router
Rel(apigate, re_module, "Routes request")
Rel(apigate, see_module, "Routes request")
Rel(apigate, mpservice, "Routes request")
Rel(apigate, search, "Routes request")
'Internal service interactions
Rel(see_module, db_SUT, "Fetches SUT data")
Rel(see_module, db_LCI, "Fetches LCI data")
Rel(re_module, db_RE, "Fetches and writes RE-data")
Rel(see_module, dppioservice, "Request DPP (chain)")
Rel(re_module, dppioservice, "Request DPP (chain)")
Rel(dppioservice, dppprovider, "Fetches DPP data")
Rel(search, db_search, "store relevant search data")
Rel(auth, db_user, "Store user data")
'Rel(mpservice, webapp, "Sends processed data")
'Rel(re_module, webapp, "Sends RE analysis")
'Rel(see_module, webapp, "Sends SEE analysis")
'Rel(search, webapp, "Enables search fucntionality")
'Rel(search, mpservice, "Does product matching")
Rel_L(see_module,re_module, "Provides RE-impacts")
Rel(dataIO,re_module, "External data for RE calculations")
Rel_D(eolEwasteSystem,dataIO, "Data uploaded to CIS")
Rel(eurostat, dataIO, "Makes Eurostat data available to system")
@enduml
@startuml
'!define RECTANGLE component
!define ACTOR actor
!define DATABASE database
ACTOR "User" as Client
RECTANGLE System {
RECTANGLE "Front-End Web Application" as FrontEnd {
RECTANGLE UI as UI {
RECTANGLE "home"
RECTANGLE "Scan QR"
RECTANGLE "Product Information view"
RECTANGLE "RE view"
RECTANGLE "SEE view"
RECTANGLE "Upload view"
}
RECTANGLE "HTTP Service" as HttpService
RECTANGLE "Utils" as Utilities
RECTANGLE "Components" as Components
RECTANGLE "Authentication" as Auth
}
RECTANGLE "services" as MiddleWare {
RECTANGLE "API Gateway" as APIGateway
RECTANGLE "Search&Match" as Service1
RECTANGLE "DPP I/O" as Service2
RECTANGLE "RE service" as Service3
RECTANGLE "SEE service" as Service4
RECTANGLE "Product Information service" as Service5
RECTANGLE "Other API data input" as Service6
}
RECTANGLE "databases" as Backend{
DATABASE "LCA database" as LCA_DB
DATABASE "SUT database" as SUT_DB
DATABASE "RE database" as RE_DB
DATABASE "Search database" as search_DB
DATABASE "User database" as user_DB
}
}
Client <--> UI
UI -- HttpService
HttpService -- APIGateway
APIGateway -- Service1
APIGateway -- Service2
APIGateway -- Service3
APIGateway -- Service4
APIGateway -- Service5
APIGateway -- Service6
Auth <--> user_DB
LCA_DB --> Service4
SUT_DB --> Service4
RE_DB <--> Service3
search_DB <--> Service1
'FrontEnd -down- MiddleWare
'MiddleWare -down- Backend
@enduml
@startuml
!define RECTANGLE component
!define ACTOR actor
!define BOUNDARY boundary
title Microservices Architecture with API Gateway and Inter-Service Communication
ACTOR "Client" as Client
RECTANGLE System {
RECTANGLE "API Gateway" as APIGateway
RECTANGLE "Microservices" {
RECTANGLE "Service A" as ServiceA
RECTANGLE "Service B" as ServiceB
RECTANGLE "Service C" as ServiceC
}
RECTANGLE "Message Broker" as MessageBroker
}
Client --> APIGateway : Makes API calls
APIGateway --> ServiceA : Routes requests
APIGateway --> ServiceB : Routes requests
APIGateway --> ServiceC : Routes requests
ServiceA --> ServiceB : Synchronous API call
ServiceB --> ServiceC : Synchronous API call
ServiceA --> MessageBroker : Publishes message
ServiceC --> MessageBroker : Subscribes to message
@enduml
@startuml
'!define RECTANGLE
!define ACTOR actor
!define DATABASE database
title Microservices Architecture with Independent Databases
ACTOR "Client" as Client
RECTANGLE "API Gateway" as APIGateway
RECTANGLE "Microservices" {
RECTANGLE "Service A" as ServiceA
RECTANGLE "Service B" as ServiceB
RECTANGLE "Service C" as ServiceC
}
DATABASE "Database A" as DatabaseA
DATABASE "Database B" as DatabaseB
DATABASE "Database C" as DatabaseC
Client --> APIGateway : Makes API calls
APIGateway --> ServiceA : Routes requests
APIGateway --> ServiceB : Routes requests
APIGateway --> ServiceC : Routes requests
ServiceA --> DatabaseA : Reads/Writes Data
ServiceB --> DatabaseB : Reads/Writes Data
ServiceC --> DatabaseC : Reads/Writes Data
@enduml
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment