Architecture

Last modified by Mikko Heikkinen on 2024/02/02 14:08

Enterprise architecture (operating model for leadership) exists in Finnish only.

Julkisen hallinnon kokonaisarkkitehtuuri (JHKA) on rakenne, jonka avulla koordinoidaan ja kehitetään hallinnon organisaatioiden ja palveluiden välistä yhteentoimivuutta. Kokonaisarkkitehtuuri tukee johtamista, strategian toimeenpanoa, toiminnan ja palvelujen jatkuvaa kehittämistä, muutosten ja monimutkaisuuden hallintaa, digitalisaation hallittua hyödyntämistä sekä yhteentoimivuutta.

Lajitietokeskuksen kokonaisarkkitehtuuri on kuvattu täällä: https://laji.fi/about/1357

System architecture

Architecture from point of view of services and systems.

The image bellow shows some (but not all) FinBIF services and some of their relationships with each other and the user.

architecture2021-05-26.png

Key services, systems and components

Name

Type

Techniques

Description

State

Repository

Documentation

HTTP-API,

Web-UI

Loopback node.js framework

Swagger / OpenAPI specification

Swagger UI

api.laji.fi is the "frontend" of other APIs that provide most of it's services behind the scenes. The API also impelements some functionality by itself.

Production, version v0 beta

Laji.fi

Web-UI

Angular2 JS framework

Frontend for Laji.fi and its sister sites.

Production

 

Laji-Form.js

Component

React JS framework

Laji-form is responsible for creating forms of Vihko Notebook.

Production

 

Laji-Form

Component

PHP

??

Production

Laji-Map

Compontent

Javascript

Laji-Map is build on top of Leaflet map library and provides map services used by laji.fi, Vihko Notebook, etc.

Production

 

LajiStore

HTTP-API

PHP

Provides JSON storage for example for Vihko Notebook (used via api.laji.fi)

Production

 

Laji-DW

HTTP-API

Web-UI

Java, Freemarker, jQuery

Data Warehouse system provides ETL processes for observation, taxonomy, quality annotation data. It provides API for observation data primary sources to push data to the warehouse and "Pull readers" that read observation data from primary sources. It also implements several customized methods to fetch observation data from primary sources. Laji-DW provides query API that is used through api.laji.fi /warehouse endpoint. Finally it provides a management console for admins and citation viewer for performed observation data file downloads.

Production

 

Laji-Auth

HTTP-API

Web-UI

Java Jersey

login.laji.fi provides authentication methods for FinBIF services.

Production

 

Laji-Backend

HTTP-API

Java

Internal API that provides some functionalities of api.laji.fi, for example /news, /information, taxon search and api related features.

Production, internal use only

(Will be partially phased out)

 

Triplestore-API

HTTP-API

Java

Rest HTTP API for managing an querying contents of Triplestore Ontology database, that contains information for example about taxonomy, persons, image metadata, etc.

Production, internal use only

 

Triplestore Editor

Web-UI

Java, Freemarker, jQuery

Web UI for managing contents of Triplestore Ontology database for IT-admins.

Production, admin tool

 

Taxon Editor

Web-UI

Java, Freemarker, jQuery

Web UI for managing taxonomy content of Triplestore Ontology database.

Production

 

tun.fi / id redirect servce

HTTP-API

Java

Provides machine readable and human readable redirect service for HTTP URI Identifiers used by FinBIF for all things such as taxa, observations, persons, areas, collections. https://www.w3.org/TR/ld-bp/#HTTP-URIS

Production

 

Kotka

Web-UI

PHP

Kotka collection management system

Production

(will be reimplemented using laji.fi/notebook technologies)

 

Pyha

WEB-UI

Python Django

Data request service that is used to request and provide access to closed/not-coarsed observation data.

Production

 

Multimedia-API

 

HTTP-API

Java, Imagemagick

Provides HTTP API to post images (in future audio, videos?) and their metadata and to query images. Converts thumbnails etc. Used by api.laji.fi.

Production

 

Image-Storage

Web server

Nginx (hosting), Python (API)

Provides physical image storage

Production

internal only

 

GIS

WFS / WMTS

Geoserver

Provides several layers and in future observation data in GIS formats

Production

internal only

 

GIS converter

HTTP-API

R

Transforms downloads to GIS formats

Production

 

FinBIF 2 GBIF

HTTP-API

R

Shares FinBIF data to https://www.gbif.org/

Production

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

Data storage architecture

Architecture from point of view of data strorage.

System

Data

Technique

Data type

Kotka

Specimen primary data storage

Oracle

Triplets/Ontology

Kotka

Kotka internal search

ElasticSearch

JSON

Vihko

Observation primary data storage

Oracle

JSON

Master data

Taxonomy, Area, Collection metada etc storage location

Oracle

Triplets/Ontology

Multimedia-API

Image (+3d, audio) storage

Disk

Files

Laji-DW

ETL process and metadata

Oracle

Relational database

Laji-DW

Observation Search Engine

Vertica

Column storage relational database

Taxa

Taxonomy endpoint

ElasticSearch

JSON

Geo

Georeferencing and geo queries

ElasticSearch

JSON

GIS

Geoserver data

PostgreSQL

Relational database

Long-term archiving

FinBIF preservation strategy involves maintaining biodiversity occurrence data in the FinBIF data format, aligned with the international ABCD (Access to Biological Collections Data) standard. Metadata adheres to the EML (Ecological Metadata Language) standard, promoting compatibility and standardized data curation. In instances of format changes, FinBIF oversees necessary data migrations. 

Primary data responsibility resides with FinBIF, while data owners retain responsibility for secondary copies. Data owners, however, retain control over their data, including the right to request removal. In such cases, citable downloads are preserved indefinitely in text format to maintain persistent citation. Identifiers, once assigned, are kept persistent and are never reassigned. 

Data is currently hosted and backed up by the University of Helsinki IT services. We are in the process of extending collaboration with CSC's (Finnish IT Center for Science) Finnish National Digital Preservation Service. 

Server architecture

FinBIF services are hosted by Helsinki University IT Center and CSC Pouta cloud and OpenShift Kubernetes services.