SMP background and architecture

Holodeck B2B is an open source SMP server.
An SMP – Service Meta-data Publisher – provides information about the capabilities of a participant in a data exchange network. It enables other parties in the network to find out how they can communicate with the participant, e.g. which kind of services or documents are supported and how these can be used. 

A brief history of SMP’s

The first specification of an SMP was created in the PEPPOL EU project back in 2010. It was submitted to OASIS and published as OASIS Standard (SMP 1.0) in 2017. In 2021 an updated version (SMP 2.0) of the OASIS Standard with additional features was published.
As the dataset of the PEPPOL specification and the OASIS Version 1 Standard are a subset of the dataset supported by the OASIS Version 2 Standard the data model of the latter is used by Holodeck SMP.
The figure below shows the UML class diagram of the data model. You can find a detailed explanation of the classes in the OASIS Version 2 Standard.

Where applicable we will indicate the differences between the Peppol/OASIS Version 1 and the OASIS Version 2 data-model and how this affects the management of the Participant’s capabilities in Holodeck SMP. 

The data-model in the diagram above contains extension points that allow adding custom meta-data. Currently such extensions are not supported by Holodeck SMP.

Holodeck SMP data-model

In a four-corner network where Service Providers handle the data exchanges on behalf of the Participant it is common that the service meta-data to be published for the Participants serviced by the Service Provider is the same, except for the Participant’s identifier. Therefore Holodeck SMP splits the ServiceMetadata class into two new concepts: ServiceMetadataTemplate and Participant. To further enable re-use of meta-data, services and processes are also modelled as separate classes. This results in the following data-model as used by Holodeck SMP.

Holodeck SMP data model

SML – Service Meta-data Lookup

To discover the capabilities of a Participant in the network, a party must know where the SMP providing the meta-data is located. When there is just a single SMP within a network this is simple, but when there are multiple SMPs a Participant can choose between, parties need to have a way to locate the correct SMP. Such an SMP discovery process, the Service Meta-data Lookup (SML) is specified by both the Peppol SML specification and the OASIS BDXL Version 1.0 Standard.
Besides specifying the discovery functionality the Peppol SML specification also describes an API for managing the SMP location for Participants. Holodeck SMP includes support for this API to automatically register the SMP location for the managed Participants.