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.

Peppol Directory

In the Peppol network there is the option to register some business information of Participants in a central, publicly accessible database: the Peppol Directory. This directory can be used to determine if a business is registered in the Peppol network and which documents it can receive. The Peppol directory gets the Participant’s data from the SMP in which the Participant is registered. As inclusion in the directory is optional, the SMP has to indicate to the Peppol Directory that a Participant should be added.
Holodeck SMP supports integration with the Peppol Directory and registration of the additional business meta-data on a Participant to be published in the directory. For each Participant an administrator can indicate whether the Participant should be published to the directory.