9 Architecture for an SDMX System
- Contents
9.1 Scope of this Chapter
This Chapter brings together the different SDMX constructs described in this User Guide into a coherent architecture that supports the typical SDMX use cases shown above. The architecture described here shows how applications need not be concerned with the actual XML (or SDMX-EDI) or version of SDMX, but are concerned with interfaces offered by components that work with objects constructed according to the SDMX
Information Model (called SDMX Beans in the diagrams) which are themselves built from the actual XML (or SDMX-EDI). For data and metadata sets the actual XML is read directly into or written directly out of the SDMX Component.
Such an architecture, known as a Component Architecture, enables applications to be built quickly and with minimal resource. As each Component is agnostic to the context in which it is used it can therefore be used by many applications (e.g. a Data Writer Component may be used in a database application, or an application reading a spreadsheet), thus reducing considerably the development effort and resulting in more robust and more easily maintained systems.
9.2 Architecture
Figure 26: Schematic of a Component Architecture
The SDMX Beans underpin the framework and are what may be referred to as ‘domain objects’, ‘data transfer objects’, or ‘business objects’. The SDMX Beans are an Object representation of the information being exchanged. The information may have been exchanged in SDMX, EDI, or even CSV, it does not matter, as the SDMX Beans are not coupled to a particular syntax or version of the standard. The SDMX Beans are format and version independent allowing the software that uses them to be decoupled from the format in which the data/metadata are exchanged.
Whilst “bean” objects can be created for a data set or metadata set, this does not scale well for large volumes of data/metadata. Therefore, the architecture shows a data streaming approach where the data/metadata are read or written directory to/from an input or output stream – this could be a local file or streamed over the internet.
The “structure” components use the SDMX Beans by means of the object interfaces, thus they do not need to be concerned with the external format of the structural metadata – this is done by structure readers and writers.
For data sets and metadata sets there are no “beans” but rather the data/metadata are input to/output from the data and metadata readers and writers.
9.3 Using the Architecture
9.3.1 Tools and Applications
Figure 27: Applications Supporting Use Cases
These three basic tools/applications support the requirements of many of the use cases listed in 3.2.
Figure 28: Applications Integrated with a Component Architecture
A Component Architecture enables the components to be shared by many applications thus reducing development and maintenance effort and resulting in a more robust system.
9.4 Availability of Component Architectures
Component Architectures based on the schematic depicted above are beginning to emerge as freely available components or open source. The SDMX Tools Database (accessible from the SDMX website at www.sdmx.org) contains details of many SDMX tools including complete architectures.