workspace"Czech National Open Data Catalog (NODC) workspace""This workspace documents the architecture of the National Open Data Catalog (NODC) which serves as a catalog of all open data sets published by public institutions in Czechia."{
model{
nodc=softwareSystem"Czech National Open Data Catalog (NODC)""Stores and presents metadata records about data sets and harvests meta data from local open data catalogs."
consumer=person"Consumer""A person from the public who searches for data sets and accesses them for various purposes.""Public"{
->nodc"Searchers for metadata records in"
}
gov=person"Government""A person from a government institution who searches for data sets and accesses them for various purposes.""Gov"
workspace"Czech National Open Data Catalog (NODC) workspace""This workspace documents the architecture of the National Open Data Catalog (NODC) which serves as a catalog of all open data sets published by public institutions in Czechia."{
model{
nodc=softwareSystem"Czech National Open Data Catalog (NODC)""Stores and presents metadata records about data sets and harvests meta data from local open data catalogs."
lodc=softwareSystem"Local Open Data Catalog""Stores and presents metadata records about data sets and harvests meta data from local open data catalogs.""Existing System"
consumer=person"Consumer""A person from the public who searches for data sets and accesses them for various purposes.""Public"
gov=person"Government""A person from a government institution who searches for data sets and accesses them for various purposes.""Gov"
workspace"Czech National Open Data Catalog (NODC) workspace""This workspace documents the architecture of the National Open Data Catalog (NODC) which serves as a catalog of all open data sets published by public institutions in Czechia."{
model{
nodc=softwareSystem"Czech National Open Data Catalog (NODC)""Stores and presents metadata records about data sets and harvests meta data from local open data catalogs."{
webFrontend=container"NODC Web Front-end""Provides all functionality for browsing and viewing metadata records to open data consumers.""TypeScript""Web Front-End"
server=container"NODC Server""Implements all business functionality for browsing and viewing metadata records and provides it via API.""Node.js"
}
lodc=softwareSystem"Local Open Data Catalog""Stores and presents metadata records about data sets and harvests meta data from local open data catalogs.""Existing System"
consumer=person"Consumer""A person from the public who searches for data sets and accesses them for various purposes.""Public"
gov=person"Government""A person from a government institution who searches for data sets and accesses them for various purposes.""Gov"
//relationshipsbetweenpersonsandsystems
consumer->nodc"Searchers for metadata records in"
gov->nodc"Searchers for metadata records in"
//relationshipsbetweensystems
nodc->lodc"Harvests metada records from"
//relationshipsbetweenpersonsandcontainers
consumer->webFrontend"Searches for metadata records and views their details with"
gov->webFrontend"Searches for metadata records and views their details with"
//relationshipsbetweencontainers
webFrontend->server"Uses to deliver functionality"
workspace"Czech National Open Data Catalog (NODC) workspace""This workspace documents the architecture of the National Open Data Catalog (NODC) which serves as a catalog of all open data sets published by public institutions in Czechia."{
model{
nodc=softwareSystem"Czech National Open Data Catalog (NODC)""Stores and presents metadata records about data sets and harvests meta data from local open data catalogs."{
webFrontend=container"NODC Web Front-end""Provides all functionality for browsing and viewing metadata records to open data consumers.""TypeScript""Web Front-End"
server=container"NODC Server""Implements all business functionality for browsing and viewing metadata records and provides it via API.""Node.js"{
listAPI=component"Record List API""Provides API for getting a list of metadata records according to specified search parameters via API.""""Infrastructure"
searchController=component"Records Search Controller""Implements and provides business functionality related to searching for metadata records""""Logic"
datasetModel=component"Dataset""Internal model of dataset metadata""""Model"
recordIndexGateway=component"Metadata Index Gateway""Provides access to a metadata records index""""Infrastructure"
}
}
lodc=softwareSystem"Local Open Data Catalog""Stores and presents metadata records about data sets and harvests meta data from local open data catalogs.""Existing System"
consumer=person"Consumer""A person from the public who searches for data sets and accesses them for various purposes.""Public"
gov=person"Government""A person from a government institution who searches for data sets and accesses them for various purposes.""Gov"
//relationshipsbetweenpersonsandsystems
consumer->nodc"Searchers for metadata records in"
gov->nodc"Searchers for metadata records in"
//relationshipsbetweensystems
nodc->lodc"Harvests metada records from"
//relationshipsbetweenpersonsandcontainers
consumer->webFrontend"Searches for metadata records and views their details with"
gov->webFrontend"Searches for metadata records and views their details with"
//relationshipsbetweencontainers
webFrontend->server"Uses to deliver functionality"
webFrontend->listAPI"Makes API calls to""JSON/HTTPS"
listAPI->searchController"Uses to access search business functionality"
searchController->datasetModel"Uses to access metadata about datasets"
searchController->recordIndexGateway"Uses to retrieve list of metadata records with given values of selected properties"
workspace"Czech National Open Data Catalog (NODC) workspace""This workspace documents the architecture of the National Open Data Catalog (NODC) which serves as a catalog of all open data sets published by public institutions in Czechia."{
model{
nodc=softwareSystem"Czech National Open Data Catalog (NODC)""Stores and presents metadata records about data sets and harvests meta data from local open data catalogs."{
webFrontend=container"NODC Web Front-end""Provides all functionality for browsing and viewing metadata records to open data consumers.""TypeScript""Web Front-End"
server=container"NODC Server""Implements all business functionality for browsing and viewing metadata records and provides it via API.""Node.js"{
group"API Logic"{
listAPI=component"Record List API""Provides API for getting a list of metadata records according to specified search parameters via API.""""Infrastructure, API"
detailAPI=component"Record Detail API""Provides API for getting a detail of a given metadata record via API.""""Infrastructure, API"
}
group"Gateway Logic"{
recordIndexGateway=component"Metadata Index Gateway""Provides access to a metadata records index.""""Infrastructure, Gateway"
recordDetailGateway=component"Metadata Detail Gateway""Provides access to a metadata records store.""""Infrastructure, Gateway"
codeListAccess=component"Code List Gateway""Provides access to code lists and their items via HTTPS dereferencing Web IRIs.""""Infrastructure, Gateway"
}
group"Business Logic"{
searchController=component"Records Search Controller""Implements and provides business functionality related to searching for metadata records.""""Logic"
detailController=component"Record Detail Controller""Implements and provides business functionality related to viewing details of metadata records.""""Logic"
}
group"Domain Model"{
datasetModel=component"Dataset""Internal domain model of dataset metadata.""""Model"
distributionModel=component"Distribution Model""Internal domain model of distribution metadata.""""Model"
}
}
}
lodc=softwareSystem"Local Open Data Catalog""Stores and presents metadata records about data sets and harvests meta data from local open data catalogs.""Existing System"
consumer=person"Consumer""A person from the public who searches for data sets and accesses them for various purposes.""Public"
gov=person"Government""A person from a government institution who searches for data sets and accesses them for various purposes.""Gov"
//relationshipsbetweenpersonsandsystems
consumer->nodc"Searchers for metadata records in"
gov->nodc"Searchers for metadata records in"
//relationshipsbetweensystems
nodc->lodc"Harvests metada records from"
//relationshipsbetweenpersonsandcontainers
consumer->webFrontend"Searches for metadata records and views their details with"
gov->webFrontend"Searches for metadata records and views their details with"
//relationshipsbetweencontainers
webFrontend->server"Uses to deliver functionality"
webFrontend->listAPI"Makes API calls to""JSON/HTTPS"
webFrontend->detailAPI"Makes API calls to""JSON/HTTPS"
listAPI->searchController"Uses to access search business functionality"
detailAPI->detailController"Uses to access detail business functionality"
searchController->datasetModel"Uses to access metadata about datasets"
detailController->datasetModel"Uses to access metadata about datasets"
detailController->distributionModel"Uses to access metadata about distributions"
searchController->recordIndexGateway"Uses to retrieve list of metadata records with given values of selected properties"
detailController->recordDetailGateway"Uses to retrieve detailed metadata"
detailController->codeListAccess"Uses to retrieve code list items labels and descriptions"
workspace"Czech National Open Data Catalog (NODC) workspace""This workspace documents the architecture of the National Open Data Catalog (NODC) which serves as a catalog of all open data sets published by public institutions in Czechia."{
model{
nodc=softwareSystem"Czech National Open Data Catalog (NODC)""Stores and presents metadata records about data sets and harvests meta data from local open data catalogs."{
webFrontend=container"NODC Web Front-end""Provides all functionality for browsing and viewing metadata records to open data consumers.""TypeScript""Web Front-End"
server=container"NODC Server""Implements all business functionality for browsing and viewing metadata records and provides it via API.""Node.js"{
group"API Logic"{
listAPI=component"Record List API""Provides API for getting a list of metadata records according to specified search parameters via API.""""Infrastructure, API"
detailAPI=component"Record Detail API""Provides API for getting a detail of a given metadata record via API.""""Infrastructure, API"
}
group"Gateway Logic"{
recordIndexGateway=component"Metadata Index Gateway""Provides access to a metadata records index.""""Infrastructure, Gateway"
recordDetailGateway=component"Metadata Detail Gateway""Provides access to a metadata records store.""""Infrastructure, Gateway"
codeListAccess=component"Code List Gateway""Provides access to code lists and their items via HTTPS dereferencing Web IRIs.""""Infrastructure, Gateway"
}
group"Business Logic"{
searchController=component"Records Search Controller""Implements and provides business functionality related to searching for metadata records.""""Logic"
detailController=component"Record Detail Controller""Implements and provides business functionality related to viewing details of metadata records.""""Logic"
}
group"Domain Model"{
datasetModel=component"Dataset""Internal domain model of dataset metadata.""""Model"
distributionModel=component"Distribution Model""Internal domain model of distribution metadata.""""Model"
}
}
recordIndex=container"Metadata Index""Index for fast searching in metadata records.""Apache SOLR configuration and schema"
recordStorage=container"Metadata Storage""Storage of metadata records.""Apache CouchDB database"
harvestor=container"Metadata Harvestor""Harvests metadata records from local open data catalogs.""LinkedPipes ETL pipeline"
}
lodc=softwareSystem"Local Open Data Catalog""Stores and presents metadata records about data sets and harvests meta data from local open data catalogs.""Existing System"
lodcRegistry=softwareSystem"Registry of local open data catalogs""SPARQL endpoint for reading locations of registered local open data catalogs which need to be harvested.""Existing System"
consumer=person"Consumer""A person from the public who searches for data sets and accesses them for various purposes.""Public"
gov=person"Government""A person from a government institution who searches for data sets and accesses them for various purposes.""Gov"
//relationshipsbetweenpersonsandsystems
consumer->nodc"Searchers for metadata records in"
gov->nodc"Searchers for metadata records in"
//relationshipsbetweensystems
nodc->lodc"Harvests metada records from"
nodc->lodcRegistry"Reads registered local open data catalogs from"
lodc->lodcRegistry"Is registered in"
//relationshipsbetweenpersonsandcontainers
consumer->webFrontend"Searches for metadata records and views their details with""HTTPS"
gov->webFrontend"Searches for metadata records and views their details with""HTTPS"
//relationshipsbetweencontainersandsystems
harvestor->lodcRegistry"Uses to read locations of registered local open data catalogs""HTTPS"
harvestor->lodc"Harvests metadata records from""HTTPS"
//relationshipsbetweencontainers
webFrontend->server"Uses to deliver functionality""HTTPS"
server->recordIndex"Uses for fast retrieval of metadata records lists""HTTPS"
server->recordStorage"Uses for fast retrieval of metadata records details""HTTPS"
harvestor->recordIndex"Uses to reset metadata records index. The whole index is always replaced""HTTPS"
harvestor->recordStorage"Uses to persists harvested metadata records. All records are always replaced""HTTPS"
webFrontend->listAPI"Makes API calls to""JSON/HTTPS"
webFrontend->detailAPI"Makes API calls to""JSON/HTTPS"
listAPI->searchController"Uses to access search business functionality"
detailAPI->detailController"Uses to access detail business functionality"
searchController->datasetModel"Uses to access metadata about datasets"
detailController->datasetModel"Uses to access metadata about datasets"
detailController->distributionModel"Uses to access metadata about distributions"
searchController->recordIndexGateway"Uses to retrieve list of metadata records with given values of selected properties"
detailController->recordDetailGateway"Uses to retrieve detailed metadata"
detailController->codeListAccess"Uses to retrieve code list items labels and descriptions"
deploymentEnvironment"Server Development"{
deploymentNode"Developer Laptop""""Microsoft Windows 11"{
deploymentNode"Web Browser""""Chrome, Firefox or Edge"{
containerInstancewebFrontend
}
deploymentNode"Node.js""""Node.js 14.*"{
containerInstanceserver
}
}
deploymentNode"NODC develop""""NODC development infrastructure"{