The role of an SMP
Service Metadata Publishers (SMPs) play a role in the publication and lookup of trading entities (‘participants’) on the PEPPOL network, by publishing information about where they can be reached, and what electronic business processes and document types they support.
The PEPPOL Network
The Pan-European Public Procurement On-Line (PEPPOL) project is a European project to enable businesses to communicate electronically with each other and with public institutions in Europe in their procurement process.
In order to do that, PEPPOL has defined a number of standards for the exchange of documents, such as orders and invoices. These standards include the formats of these documents and a method to exchange them. Service providers connect to the PEPPOL network on behalf of participants to send and retrieve those documents, and to enable the ERP systems of the participants to process them.
The 4-corner model
The PEPPOL network uses a four corner model:
Say a supplier (corner 1) wishes to send an invoice to a buyer (corner 4). They provide their electronic invoice document to their service provider (corner 2). The service provider then sends it over the PEPPOL network to the service provider of the buyer (corner 3), which in turn delivers it to the buyer.
Determining the service provider
The image in the previous section skips over an important detail: how does corner 2 know which service provider to contact, where they can be reached, and which document types they support? This is where the Service Metadata Providers come into play.
Participants that are connected to the PEPPOL network are published by their service providers in a Service Metadata Provider, or SMP. This SMP can be operated by the service provider itself, or it can be operated by a third party, such as Ionite.
In the SMP, information about the participant is published: their globally unique identifier(s), such as GLNs or Chamber of Commerce numbers, the document types and business processes they support, the URL where those documents can be sent (i.e. the endpoint URL(s) of the access point at corner 3), and the public key certificate of that access point.
The data provided by the SMP gives the sending access point all information that it needs to securely send the document to the access point of the recipient. In addition to that, it also provides technical and contact information about the service provider that maintains the access point, to be used when there are operational issues between access points.
Of course, since there are many SMPs, sending access points need to find out in which SMP the recipient is published. This is done through the Service Metadata Locator, or SML. The SML is a central service, hosted by the European Commission, with the sole purpose of finding the correct SMP for any recipient on the network.
SMPs register all recipients they publish on the central SML, and sending access points contact the SML to find the location of the SMP. Since the SML is a central service, at a fixed location, this is the starting point of the lookup.
Implementation-wise, the SML is a DNS service; all recipients on the Peppol network are added as a DNS entry (by a hash of their Peppol identifier(s), such as their Chamber of Commerce number), to this service, and this DNS entry points to the correct SMP.
The Peppol Testing infrastructure: SMK
Next to the production network, Peppol also supplies a testing network. All service providers receive a second set of Peppol certificates that they can use on the testing network. If they choose to make use of this, they generally maintain a second access point, at a separate URL, which uses these testing certificates, and which is not connected to actual production financial systems.
These access points, and the ‘receiving’ participants they serve, are published on an SMP as well. In some cases (such as with ion-SMP), this is the same SMP. In other cases, this SMP is a second instance, just as for access points.
Centrally, the identifiers for the testing network should not be published in the SML, which is meant for production only. There is a second instance of the SML as well: the SMK. The SMK functions exactly the same as the SML, but at a different location, and specifically meant for use with testing.
ion-SMP supports both the SMK and the SML, and you can choose per participant whether they should be published in the production network or the testing network.