Welcome to the
phoss SMP wiki!
Latest release: 5.2.0 (2019-07-18) - See Migrations to read on specific upgrade requirements.
Docker releases: https://hub.docker.com/r/phelger/smp/tags/
This is an SMP (Service Metadata Publisher) server to be used in the PEPPOL transport infrastructure or as part of e-SENS. An SMP is part of the PEPPOL registry infrastructure and can handle the registry for multiple Access Points (APs). It is queried upon document exchange for the correct endpoint URL to deliver the document to. The endpoint URL depends on the participant identifier, the document type identifier, the process identifier and the used transport protocol. Please see the official PEPPOL SMP specification for all the details. Additionally this SMP implementation supports the OASIS BDXR SMP specification 1.0 specification - the differentiation happens in the Configuration file.
Note: this Wiki only refers to the SMP Server version 5. Earlier versions are not touched and it is strongly recommended to update to the latest version!
If you have specific questions, don't hesitate to contact me by email (philip[at]helger.com) or Twitter (@philiphelger).
- Thanks to Jerry / @jerouris for providing the initial Vagrant configuration
- Thanks to David / @dhixon for pointing me in the direction of Docker
Public start page of the SMP:
Overview of all service groups in the management area:
Create a new SMP service group:
Show all endpoints of all service groups in a list:
or show all endpoints of all service groups in a tree structure:
Create a new endpoint:
or copy and existing endpoint:
Show tasks and problems:
Modify certain settings at runtime:
Manage PEPPOL Directory Business Cards:
Edit PEPPOL Directory Business Cards online:
Here are some SMPs using phoss SMP (in random order):
- http://220.127.116.11 (test)
- http://18.104.22.168 (production)
- http://22.214.171.124 (production)
- http://126.96.36.199 (production)
- http://188.8.131.52 (test)
- http://184.108.40.206 (test)
- http://b2b.fabersystem.it (production & test)
- http://noblesmp.governikus.de (test)
- http://peppol.bluzor.com (test)
- http://peppol.derwid.net (production)
- http://peppol-pilot.derwid.net (test)
- http://smp.ecosio.com (production)
- http://smp.peppol.at (production)
- http://smp.hbsolutions.de (production)
- http://smp.helger.com (test)
- http://smp.officient.com (production)
- http://smp1.espap.pt (test)
- http://smp-peppol-prod-sia-eu.satanet.it (production)
- http://smp-peppol-test-sia-eu.satanet.it (test)
- http://test-infra.peppol.at (test)
- http://test-smp.ecosio.com (test)
- http://test-smp.hbsolutions.de (test)
- http://test-smp.peppol.gr (test)
- http://xbenvoices.setcce.si (test)
The SQL backend is fully compatible with the one used by CIPA, so you can use this SMP server as a replacement. Just adopt the JDBC parameters of this SMP server and your fine.
Internally the structure of the DB meta model was slightly adopted. E.g. the "endpoint reference" is no longer part of the service metadata primary key. Also the "service expiration date" of an endpoint became optional.
Also please note that old versions of the CIPA SMP server ship with incompatible data types in the .sql file. Please ensure that all columns with the data type
BLOB are changed to data type
TEXT (for MySQL).
Compatibility with CIPA SMP 3.x or higher is unknown.
This project was initially forked from the CIPA SMP 2.2.3 because I was unhappy with the development. Compared to the CIPA SMP the following enhancements are present in this SMP (status as of 2015):
- It provides a management GUI where you can create/edit/delete your users, service groups and endpoints.
- Alternatively to the SQL backend it offers an XML backend which does not require any database and therefore has less operational costs. See Configuration on how to enable it.
- It uses Jersey 2.x instead of the old Jersey 1.x
- Having real support for SMP redirects - via REST and via the GUI
Before version 4 of this project two different web applications existed:
peppol-smp-server which had the SQL backend and
peppol-smp-server-lightweight which used the XML backend and provided a small management GUI. I decided to merge these two versions to have the advantage of the GUI for both backends.