The document introduces the general concepts of the EUDAT B2HANDLE service.

Modified: 07 November 2016


B2HANDLE is distributed service that manages Persistent Identifiers for data hosted on EUDAT. This document discusses the general principles of the service.

What is B2HANDLE?

B2HANDLE is EUDAT's main Persistent Identifier (PID) service. B2HANDLE is a distributed service, designed to contribute to data persistency by maintaining opaque, globally unique PIDs. PIDs are used in EUDAT to reliably identify and cite data objects over a long period of time and it is thus a  vital part of long-term data management. Moreover, data can be directly retrieved by PIDs and corresponding key-metadata can be stored together with them in the so-called PID entry. The B2HANDLE service encompasses management of identifier namespaces (Handle prefixes), establishment of policies and business workflows, operation of Handle servers and technical services, and a user-friendly Python library for general interaction with Handle servers and EUDAT-specific extensions.

In order to access a data object stored in EUDAT, an associated PID is needed. B2HANDLE enables EUDAT services and user communities to assign PIDs to different kinds of managed objects stored in the EUDAT CDI. The underlying technology is based on the Handle System, which is a reliable, redundant and scalable system built on top of an open architecture. B2HANDLE is mostly transparent to the end-users, especially shielding them from the complexity of infrastructure details.

B2HANDLE service resolution is based on the Handle System which offers a very reliable resolution service. B2HANDLE is responsible for forwarding the user to the current location of the object. B2HANDLE is a distributed service, with the organisations hosting the service mirroring each other's Persistent Identifiers. This ensures the sustainability and reliability of PIDs in the EUDAT domain.

The B2HANDLE Python library is a client library for interaction with a Handle System server, using the native REST interface introduced in Handle System 8. The library offers methods to create, update and delete Handles as well as advanced functionality such as searching over Handles using an additional search servlet and managing multiple location entries per Handle.

In the EUDAT ecosystem, EUDAT services make use of B2HANDLE to guarantee data access, long lasting references to data and to facilitate data publishing. B2SAFE and B2SHARE use the service to create and manage PIDs for their hosted data objects, whereas B2FIND and B2STAGE use the resolving mechanism of B2HANDLE to retrieve and refer to objects.

Figure 1. Mapping of EUDAT services to the B2HANDLE functionalities that they each use.

Who benefits from B2HANDLE?

  • Core communities can establish the usage of persistent identifiers in their community and exploit B2HANDLE to enrich their specific applications with extra functionality. 
  • End-users can benefit from improved cross-community tools. If they employ the EUDAT service suite, they will also benefit indirectly from the B2HANDLE service.

What does B2HANDLE offer?

  • B2HANDLE is backed by a mature IT service concept that provides long-term reliability and sustainability through a service federation. The federation is based on balancing policies and processes, including mirroring and affordable prefix service levels. 
  • PID record unification: B2HANDLE adheres to international recommendations on how to structure and manage PID records. Record unification improves interoperability between services and increases long-term value for end-users. 
  • B2HANDLE Python library: The B2HANDLE python library is a quality-controlled, mature Python product that enables easy creation, management and resolution of PIDs. The library is available as open source via Github and the Python Package Index.

How can I use B2HANDLE?

  • As an end-user, you can resolve Handles online or via the handle.net REST interface or via the B2HANDLE Python library.
  • As a research community manager of one of EUDAT's core communities, aiming to establish persistent identifiers in your community and enhance community-specific applications, you can
    • Request prefix hosting through B2HANDLE, benefitting from the operational service levels and policies maintained by the federation within EUDAT 
    • Build community software against the B2HANDLE Python library, saving effort on designing custom solutions
    • Adopt the EUDAT PID record structure or adapt it towards your needs and benefit from the improved consistency and cross-community interoperability. Creating and modifying Handles can be done more comfortably and in a programmatic way through the B2HANDLE Python library.
  • If you are interested to participate in the federation as a data center or infrastructure provider, you should contact EUDAT to learn more about the federation policies and processes that allow you to join with your own nodes.


Support for B2HANDLE is available via the EUDAT ticketing system through the webform.

If you have comments on this page, please submit them though the EUDAT ticketing system.

Document data

Version: 1.0


Themis Zamani, themis@admin.grnet.gr

Tobias Weigel, weigel@dkrz.de


Christine Staiger, christine.staiger@surfsara.nl

Kostas Kavoussanakis, kavousan@epcc.ed.ac.uk