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") ``` ---
{"metaMigratedAt":"2023-06-16T11:11:43.232Z","metaMigratedFrom":"YAML","title":"Architecture Slides","breaks":true,"slideOptions":"{\"theme\":\"white\",\"spotlight\":{\"enabled\":false},\"embedded\":true}","contributors":"[{\"id\":\"9681a99b-8995-4719-8f14-bd8a20422101\",\"add\":9660,\"del\":1253}]","description":"iSamples Architecture Notes"}
    295 views
   Owned this note