Register
Process Type
Graphical expression
Mind Type
Structured expression
Note Type
Efficient expression

ArchitectuurdiagramSyntaxis

Architectuurdiagram

Architectuurdiagrammen worden gebruikt om de relaties tussen services en resources weer te geven die veel voorkomen in cloud- of CI/CD-implementaties. In een architectuurdiagram worden services (knooppunten) met lijnen verbonden. Gerelateerde services kunnen in groepen worden geplaatst om hun organisatie beter te illustreren.

Voorbeeld

Code
                            
Kopiëren
Insluiten
architecture-beta group api(cloud)[API] service db(database)[Database] in api service disk1(disk)[Storage] in api service disk2(disk)[Storage] in api service server(server)[Server] in api db:L -- R:server disk1:T -- B:server disk2:T -- B:db

Syntaxis

De bouwstenen van een architectuurdiagram zijn: groepen, services, verbindingen en verbindingspunten.

Voor ondersteunde componenten wordt een pictogram gedeclareerd tussen ronde haakjes (), terwijl een label gedeclareerd wordt met de tekst tussen vierkante haken [].

Om een architectuurdiagram te beginnen, gebruik je de syntaxis architecture-beta en vermeld je vervolgens groepen, services, verbindingen en verbindingspunten. Hoewel deze 3 bouwstenen in willekeurige volgorde kunnen worden gedeclareerd, moet je ervoor zorgen dat de identificatie eerder al door een andere component is gedeclareerd.

Groep

De syntaxis voor het declareren van een groep is:

                            
Kopiëren
Insluiten
group {group id}({icon name})[{title}] (in {parent id})?

Na combinatie:

                            
Kopiëren
Insluiten
group public_api(cloud)[Public API]

Er is een groep met de naam public_api gemaakt, met het pictogram cloud en het label Public API.

Bovendien kan een groep met de optionele syntaxis in in een andere groep worden geplaatst.

                            
Kopiëren
Insluiten
group private_api(cloud)[Private API] in public_api

Service

De syntaxis voor het declareren van een service is:

                            
Kopiëren
Insluiten
service {service id}({icon name})[{title}] (in {parent id})?

Na combinatie:

                            
Kopiëren
Insluiten
service database1(database)[My Database]

Er wordt een service met de naam database1 gemaakt, met het pictogram database en het label My Database.

Als de service tot een groep behoort, kan deze met de optionele syntaxis in daarin worden geplaatst

                            
Kopiëren
Insluiten
service database1(database)[My Database] in private_api

Verbinding

De syntaxis voor het declareren van een verbinding is:

                            
Kopiëren
Insluiten
{serviceId}{{group}}?:{T|B|L|R} {<}?--{>}? {T|B|L|R}:{serviceId}{{group}}?

Richting van de verbinding

Aan welke kant van de service de verbinding uitgaat, kan worden gespecificeerd door aan de servicezijde van de verbindingspijl een dubbele punt : en L|R|T|B toe te voegen.

Bijvoorbeeld:

                            
Kopiëren
Insluiten
db:R -- L:server

Maak een verbinding tussen de services db en server, die van de rechterkant van db naar de linkerkant van server loopt.

                            
Kopiëren
Insluiten
db:T -- L:server

Maak een verbinding van 90 graden tussen de services db en server, die vanaf de bovenkant van db en de linkerkant van server uitgaat.

Pijl

Door aan de linkerkant voor de richting < toe te voegen, of aan de rechterkant na de richting >, kun je aan elke zijde van de verbinding een pijl toevoegen.

Bijvoorbeeld:

                            
Kopiëren
Insluiten
subnet:R --> L:gateway

Maak een verbinding met een pijl die naar de gateway-service wijst.

Verbindingen buiten een groep

Om een verbinding van de ene groep naar een andere groep of naar een service in een andere groep te laten lopen, kun je na de serviceId de wijzigingsteken {group} toevoegen.

Bijvoorbeeld:

                            
Kopiëren
Insluiten
service server[Server] in groupOne service subnet[Subnet] in groupTwo server{group}:B --> T:subnet{group}

Maak een verbinding die vertrekt vanuit groupOne, naar de nabije locatie van server loopt en vervolgens groupTwo binnengaat en naar de nabije locatie van subnet loopt.

Houd er rekening mee dat groupId niet kan worden gebruikt om een verbinding te specificeren, en dat de wijzigingsteken {group} alleen kan worden gebruikt voor services binnen een groep.

Verbindingspunt

Een verbindingspunt is een speciaal soort knooppunt dat kan dienen als een potentieel vierrichtingsvertakkingspunt voor verbindingen.

De syntaxis voor het declareren van een verbindingspunt is:

                            
Kopiëren
Insluiten
junction {junction id} (in {parent id})?
Code
                            
Kopiëren
Insluiten
architecture-beta service left_disk(disk)[Disk] service top_disk(disk)[Disk] service bottom_disk(disk)[Disk] service top_gateway(internet)[Gateway] service bottom_gateway(internet)[Gateway] junction junctionCenter junction junctionRight left_disk:R -- L:junctionCenter top_disk:B -- T:junctionCenter bottom_disk:T -- B:junctionCenter junctionCenter:R -- L:junctionRight top_gateway:B -- T:junctionRight bottom_gateway:T -- B:junctionRight