Pilot implementations Clause Samples

Pilot implementations. In order to compare the two remaining options, pilot implementations of the PID micro-services were created using the two acceptable options. The final decision about which option to use was based on the results and experiences from these practical exercises. The proof-of-concept implementation of the PID manipulation micro-services in C was provided by Jedrzej Rybick (FZJ). The results8 of this exercise are available in the EUDAT SVN repository. The implementation facilitates external libraries for JSON manipulation (jansson) and HTTP communication (libcurl). In particular, it was noted that manipulating JSON was much harder than in Python, and that there was a lack of C-programming expertise amongst the partners. Hence there was a possibility that the production-ready implementation would not be ready in time, and it was likely to be harder to maintain the module. The proof-of-concept implementation of a Python-based EPIC client was provided by ▇▇▇▇▇▇ ▇▇▇▇▇▇▇▇▇ (BSC) and the integration into iRODS was done by ▇▇▇▇▇▇ ▇▇▇▇▇▇ (MPI-PL) and subsequently by other partners. It was found that the JSON manipulation was much easier when using the Python external library (simplejson). For the HTTP interactions, the Python library (httplib2) was used. The implementation9 was made available in the project SVN repository. This was tested by all the partners and was proven to work properly. A further advantage of this approach was that there was much more Python expertise available among the project partners. Hence quicker development, testing and integration were possible. Maintenance was also expected to be easier. After internal discussions, the Safe Replication Task Force made the following recommendations:  For the pilot implementations, the Python module should be used.  Because native iRODS modules are written in the C programming language it is advisable when the service reaches production-ready status and is handed-over to operations to revive the effort on a C implementation of the micro service.