SDMX-REFERENCE INFRASTRUCTURE

SDMX RI description

Introduction

The SDMX-Reference Infrastructure (SDMX-RI) is a set of pick-and-choose building blocks and tools that allow data to be exposed to the external world through access rights by using web services. Thus, it creates a universal framework for modern data provision – single exit point – an interlocutor to Eurostat's Single Entry Point.

SDMX RI diagram

SDMX-RI enables the production and dissemination of SDMX data from existing reference/dissemination databases. It is composed of reusable building blocks that are designed to provide data and structural metadata based on mappings to each organisation's dissemination data warehouse.

Business case

If new statistical data are available in a data provider’s production environment, these can be provided to interested parties in various formats, depending on the requirements of the data consumer. In the case of SDMX format, a data provider can make data available by:

  • Producing an SDMX data file using data stored in a local database. In this context, the data consumer can use the SDMX-RI.
  • Producing an SDMX data file directly from a data file having another format, e.g. CSV or GESMES/TS. In which case the SDMX Converter is the tool to choose. 

 

An organisation can decide whether to use the entire service infrastructure, extend it by adding new modules, modify some modules, or integrate some modules within its existing dissemination environment. In order to offer an increased flexibility, SDMX-RI was developed in both Java and .NET.

Components

The components can be divided into 3 categories: modules, tools and the SDMXSource.

  • The modules are reusable building blocks with a specific purpose. List of modules (excluding tools): DataRetriever, StructureRetriever.
  • The tools are modules translated into software that has to be installed in servers/clients. Once the tools are properly configured and connected among them and to the dissemination database, we can obtain the desired SDMX output. They can be used independently of each other. List of tools: NSI Web Service, Mapping Assistant, NSI Client, Test Client and Test Auth. Config.
  • The SDMXSource is explained below.

The following diagram shows the structure of the tools (coloured) and the connection with the other components and databases.

SDMX RI components diagram

NSI Web Service: the heart of the SDMX-RI. The NSI Web Service upon a SOAP or REST request (sent by the NSI Client, the Test Client or any other SOAP or REST client), gathers the data from the DDB and the structural metadata from the MSDB, creates the SDMX-ML data and sends it back to the client. The NSI Web Service can be in Java or .NET. This module is treated in more detail in a separate page.

NSI Client: this application acts like a front-end for a configured web service instance. Its purpose is to connect to the NSI Web Service to retrieve the SDMX-ML data.

Mapping Assistant: this module facilitates mapping between the structural metadata provided by an SDMX-ML Data Structure Definition (DSD) and the data that reside in the dissemination database of a dissemination environment. The Mapping Assistant then stores the mappings between the SDMX and the local data storage scheme in the Mapping Store Database, or MSDB. Internally, the Mapping Assistant provides mapping information to the Data Retriever. The Data Retriever module connects to the Mapping Store database and accesses the appropriate mappings to translate the SDMX-ML queries to SQL for the dissemination database.

Test Client: this module tests the SDMX-RI building blocks and exposes/browses the dissemination environment of an National Statistical Institute (NSI). It can connect directly to the DDB and to the MSDB in order to extract data. Furthermore, it can connect to the NSI Web Service via SOAP or REST protocols to gather data through the web service. Therefore, it acts as a very important tool of validation of the other services, allowing testers to interact with each of those components individually.

Test Auth. Config.: this is a sample application for configuring authentication and authorization information for the NSI WS Auth Module. It allows the list of users to be updated, with additions and removals as well as allowing the list of permitted dataflows for a user to be maintained.

DataRetriever: this module is responsible for querying the dissemination database and getting the respective “record set”, which is then streamed to the caller.

StructureRetriever: this module is responsible for retrieving structural metadata from the Mapping Store database. It can also return partial codelists based on the available data from the Dissemination Database.

SdmxSource: this is the implementation of the common SDMX API. It is an API that provides interfaces of objects for storing data and metadata based on the SDMX information model. This API includes methods for reading and writing from SDMX-ML message and writing to SDMX-ML messages. It also provides interfaces of methods for reading and writing from/to SDMX-ML messages. It is the common SDMX API that is intended to be used in an inter-organisation scope in order to foster the reusability of components. SdmxSource is treated in more detail in a separate page.