owned this note
owned this note
Published
Linked with GitHub
---
title: Architecture Slides
slideOptions:
theme: white
# Black (default) - White - League - Sky - Beige - Simple
# Serif - Blood - Night - Moon - Solarized
spotlight:
enabled: false
embedded: true
---
iSamples Architecture Notes
2021-09-24
Notes on the overall design and deployment of iSamples
https://hackmd.io/@isamples/BkWlLDo7K#/
---
```plantuml
!include https://raw.githubusercontent.com/datadavev/C4-PlantUML/master/C4_Component.puml
AddElementTag("v2.0", $fontColor="white")
AddRelTag("v2.0", $lineColor="gray", $textColor="gray")
AddElementTag("v3.0", $borderColor="gray", $fontColor="white", $bgColor="8e8e8e" )
AddRelTag("v3.0", $lineColor="gray", $textColor="gray")
System(isc, "iSC", "iSamples Central")
System_Boundary(isamples, "iSamples"){
System(isb, "iSB", "iSamples-In-A-Box")
System_Ext(collection, "Collection", "Collection of sample records")
Rel(isb, collection, "Get records from collection")
}
BiRel(isb, isc, "Synchronize records")
System_Ext(pid, "Id Authority", "Identifier authorities (IGSN, ARK, DOI, ROR, ...", $tags="v2.0")
Rel(pid, isb, "Allocate range of identifier values", $tags="v2.0")
Rel(pid, isc, "Allocate range of identifier values?", $tags="v2.0")
Person(user, "User", "Data User")
Rel(user, isc, "Discover")
Rel(user, isc, "Annotate", $tags="v2.0")
Rel(user, isb, "Discover, Retrieve")
Rel(user, collection, "Retrieve")
Rel(user, isb, "Annotate, [Create, Update if authorized]", $tags="v2.0")
Person(admin, "Admin", "Administrator")
Rel_U(admin, isc, "Manage")
Rel(admin, isb, "Manage")
System_Ext(evocab, "Vocabularies", "Community maintained vocabularies and ontologies")
Rel(evocab, isb, "Inform")
Rel(evocab, isc, "Inform")
System_Ext(identity, "Identity", "User identity service (ORCID, GitHub, ...)", $tags="v2.0")
Rel(isc, identity, "User metadata, Authenticate", $tags="v2.0")
Rel(isb, identity, "User metadata, Authenticate (if applicable)", $tags="v2.0")
Rel(admin, identity, "Identified by", $tags="v2.0")
Rel(user, identity, "Identified by", $tags="v2.0")
System_Ext(publisher, "Publisher", "Source of identifier appareance in publications", $tags="v3.0")
Rel(isc, publisher, "Get identifier appearances", $tags="v3.0")
```
---
```plantuml
!include https://raw.githubusercontent.com/datadavev/C4-PlantUML/master/C4_Component.puml
System(isa, "iSamples", "iSamples Infrastructure")
System_Ext(coll, "Collection", "Collection of records")
Rel_U(isa, coll, "Synchronize records from")
System_Ext(ont, "Ontologies", "Community maintained ontologies and vocabularies")
Rel_L(isa, ont, "Uses")
Person(admin, "Admin", "Administrator")
Rel(admin, isa, "Manages")
Person(user, "User", "Data User")
Rel(user, isa, "Discover, Retrieve, Annotate, [Create, Update if authorized]")
System_Ext(pid, "Id Authority", "Identifier authorities (IGSN, ARK, DOI, ROR, ...)")
Rel(isa, pid, "Get allocation of identifier value range from")
System_Ext(identity, "Identity", "User identity service (ORCID, GitHub, ...)")
Rel(isa, identity, "Get user metadata and authenticate using")
System_Ext(publisher, "Publisher", "Source of identifier appareance in publications")
Rel(isa, publisher, "Get identifier appearances from")
SHOW_LEGEND()
```
---
```plantuml
!include https://raw.githubusercontent.com/datadavev/C4-PlantUML/master/C4_Component.puml
AddElementTag("v2.0", $borderColor="#250339", $fontColor="#ffffff", $bgColor="#9775AA" )
AddRelTag("v2.0", $lineColor="#754B8E", $textColor="#754B8E")
AddElementTag("v3.0", $borderColor="#ffffff", $fontColor="#ffffff", $bgColor="#D4D46A" )
AddRelTag("v3.0", $lineColor="#807F15", $textColor="#807F15")
System(isc, "iSC", "iSamples Central")
System_Boundary(isamples, "iSamples"){
System(isb, "iSB", "iSamples-In-A-Box")
System_Ext(collection, "Collection", "Collection of sample records")
Rel(isb, collection, "Get records from collection")
}
BiRel(isb, isc, "Synchronize records")
System_Ext(pid, "Id Authority", "Identifier authorities (IGSN, ARK, DOI, ROR, ...", $tags="v2.0")
Rel(pid, isb, "Allocate range of identifier values", $tags="v2.0")
Rel(pid, isc, "Allocate range of identifier values?", $tags="v2.0")
Person(user, "User", "Data User")
Rel(user, isc, "Discover")
Rel(user, isc, "Annotate", $tags="v2.0")
Rel(user, isb, "Discover, Retrieve")
Rel(user, collection, "Retrieve")
Rel(user, isb, "Annotate, [Create, Update if authorized]", $tags="v2.0")
Person(admin, "Admin", "Administrator")
Rel_U(admin, isc, "Manage")
Rel(admin, isb, "Manage")
System_Ext(evocab, "Vocabularies", "Community maintained vocabularies and ontologies")
Rel(evocab, isb, "Inform")
Rel(evocab, isc, "Inform")
System_Ext(identity, "Identity", "User identity service (ORCID, GitHub, ...)", $tags="v2.0")
Rel(isc, identity, "User metadata, Authenticate", $tags="v2.0")
Rel(isb, identity, "User metadata, Authenticate (if applicable)", $tags="v2.0")
Rel(admin, identity, "Identified by", $tags="v2.0")
Rel(user, identity, "Identified by", $tags="v2.0")
System_Ext(publisher, "Publisher", "Source of identifier appareance in publications", $tags="v3.0")
Rel(isc, publisher, "Get identifier appearances", $tags="v3.0")
SHOW_FLOATING_LEGEND()
```
---
```plantuml
!include https://raw.githubusercontent.com/datadavev/C4-PlantUML/master/C4_Component.puml
AddElementTag("v2.0", $borderColor="#ffffff", $fontColor="#ffffff", $bgColor="#ffffff" )
AddRelTag("v2.0", $lineColor="#ffffff", $textColor="#ffffff")
AddElementTag("v3.0", $borderColor="#ffffff", $fontColor="#ffffff", $bgColor="#ffffff" )
AddRelTag("v3.0", $lineColor="#ffffff", $textColor="#ffffff")
System(isc, "iSC", "iSamples Central")
System_Boundary(isamples, "iSamples"){
System(isb, "iSB", "iSamples-In-A-Box")
System_Ext(collection, "Collection", "Collection of sample records")
Rel(isb, collection, "Get records from collection")
}
BiRel(isb, isc, "Synchronize records")
System_Ext(pid, "Id Authority", "Identifier authorities (IGSN, ARK, DOI, ROR, ...", $tags="v2.0")
Rel(pid, isb, "Allocate range of identifier values", $tags="v2.0")
Rel(pid, isc, "Allocate range of identifier values?", $tags="v2.0")
Person(user, "User", "Data User")
Rel(user, isc, "Discover")
Rel(user, isc, "Annotate", $tags="v2.0")
Rel(user, isb, "Discover, Retrieve")
Rel(user, collection, "Retrieve")
Rel(user, isb, "Annotate, [Create, Update if authorized]", $tags="v2.0")
Person(admin, "Admin", "Administrator")
Rel_U(admin, isc, "Manage")
Rel(admin, isb, "Manage")
System_Ext(evocab, "Vocabularies", "Community maintained vocabularies and ontologies")
Rel(evocab, isb, "Inform")
Rel(evocab, isc, "Inform")
System_Ext(identity, "Identity", "User identity service (ORCID, GitHub, ...)", $tags="v2.0")
Rel(isc, identity, "User metadata, Authenticate", $tags="v2.0")
Rel(isb, identity, "User metadata, Authenticate (if applicable)", $tags="v2.0")
Rel(admin, identity, "Identified by", $tags="v2.0")
Rel(user, identity, "Identified by", $tags="v2.0")
System_Ext(publisher, "Publisher", "Source of identifier appareance in publications", $tags="v3.0")
Rel(isc, publisher, "Get identifier appearances", $tags="v3.0")
SHOW_FLOATING_LEGEND()
```
---
```plantuml
!include https://raw.githubusercontent.com/datadavev/C4-PlantUML/master/C4_Component.puml
System(isc, "iSC", "iSamples Central")
System_Boundary(isamples_geome, "iSamples-GEOME"){
System(isb_geome, "iSB", "GEOME")
System_Ext(collection, "GEOME", "Collection of sample records")
Rel(isb_geome, collection, "Get records from collection")
}
System_Boundary(isamples_smith, "iSamples-SMITHSONIAN"){
System(isb_smith, "iSB", "Smithsonian")
System_Ext(collection_smith, "Smithsonian", "Collection of sample records")
Rel(isb_smith, collection_smith, "Get records from collection")
}
System_Boundary(isamples_oc, "iSamples-OpenContext"){
System(isb_oc, "iSB", "OpenContext")
System_Ext(collection_oc, "OpenContext", "Collection of sample records")
Rel(isb_oc, collection_oc, "Get records from collection")
}
System_Boundary(isamples_sesar, "iSamples-SESAR"){
System(isb_sesar, "iSB", "SESAR")
System_Ext(collection_sesar, "SESAR", "Collection of sample records")
Rel(isb_sesar, collection_sesar, "Get records from collection")
}
BiRel(isc, isb_geome, "Synchronize Records")
BiRel(isc, isb_smith, "Synchronize Records")
BiRel(isc, isb_oc, "Synchronize Records")
BiRel(isc, isb_sesar, "Synchronize Records")
```
---