Skip to content

Architecture

Nuno Macedo edited this page Jun 12, 2017 · 61 revisions

PTCRISync Architecture

The main functionality of PTCRISync is to synchronize user profiles of interested services with the respective ORCID profiles, acting as a proxy between the two services. Thus, the parties involved in the process are:

  • The ORCID service (see an overview of relevant concepts)
  • A CRIS service using PTCRISync (see the imposed requirements)
  • The PTCRISync library (see a description of the synchronization procedures)
  • A CRIS interface implementing PTCRISync (see a recommended interface)
  • The user, which acts directly on both the CRIS and ORCID profiles, and grants privileges to PTCRISync

To encapsulate the communication with ORCID, PTCRISync relies on an third-party ORCID client.

PTCRISync is a stateless library of synchronization procedures that connects with both the ORCID and the CRIS services. To facilitate integration, communication with PTCRISync is always performed according to the ORCID data model, whose most relevant feature is the grouping of productions considered to be the same. The user manages the behaviour of the PTCRISync library through the CRIS interface, that should support certain functionalities in order to be compatible with PTCRISync. The CRIS back-end itself should support the paradigm over which PTCRISync is build.

In particular, there are two main functionalities that the CRIS service adopting PTCRISync must follow:

  • It must employ, and allow the user to manage, a persistent list of productions that are being actively synchronized. This means that when a user selects a production to be synchronized, this is not a one-time action, but rather a decision that will be preserved by the CRIS which will keep it up-to-date in the background.
  • It must support a notification paradigm as the synchronization procedures do not act directly on the local data of the CRIS, but rather suggests modifications. These may either suggest the creation of the productions, or the update or existing productions; both notifications should be handled in a suitable way.