As part of efforts to standardise reusable FIWARE Architecture Patterns, SmartSDK is realising a collection of reusable and modular UML Component Diagrams.
The Architecture patterns are described using PlantUML, a well know open source tool for UML Diagrams.
The code below, for example, describe the architecture pattern for the Data/Context Management services.
@startuml;
skinparam componentStyle uml2
!define ICONURL https://raw.githubusercontent.com/smartsdk/architecture-diagrams/smartsdk-template/dist
!includeurl ICONURL/common.puml
!includeurl ICONURL/fiware.puml
!includeurl ICONURL/smartsdk.puml
package "Data/Context Management Core" {
interface NGSI
FIWARE(ctx,"Context Broker \n - Orion",component)
FIWARE(cep,"CEP \n - Proton",component)
FIWARE(ckan,"CKAN",component)
FIWARE(kurento,"Stream Oriented \n- Kurento",component)
NGSI -left- ctx
NGSI -up- cep
NGSI -up- ckan
NGSI -up- kurento
package "Cosmos" {
FIWARE(cygnus,"Cygnus",component)
FIWARE(bda,"Big Data Analysis",component)
FIWARE(sth,"STH Comet",component)
NGSI -up- cygnus
cygnus -up- bda
cygnus -up- sth
}
}
@enduml
The above code is rendered into a UML Component Diagram as follow.
Combining different PlantUML files representing different Architecture Patterns, its quite easy.
For example the typical Northbound / Southbound FIWARE Reference Architecture, can be obtained by combining the FIWARE Reference Architecture Pattern for Data Management and FIWARE Reference Architecture Pattern for IoT Enablement.
@startuml;
skinparam componentStyle uml2
!define BASEURL https://raw.githubusercontent.com/smartsdk/architecture-diagrams/master
!includeurl BASEURL/data-management/Data-ContextManagement.puml
!includeurl BASEURL/iot-management/IoT-Service-Enablement.puml
@enduml
You can find the code on SmartSDK Github!