UML Component Diagrams for FIWARE Architecture Patterns

UML Component Diagrams for FIWARE Architecture Patterns

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!