Article
August 20, 2020 · 3 min read timeTogether with the IT Center for Science (CSC), Nitor is developing the REMS system for managing scientific data. The system allows users in different organizations to apply for and authorize access to different materials. The solution is implemented in an agile way in Clojure and published as open source. Nitor has been CSC's framework contract supplier since 2017 and won the tender for the further development of the REMS system also for the years 2020–2022.
The IT Center for Science, or CSC, is a Finnish center of expertise in information technology owned by the Finnish state and higher education institutions. CSC provides internationally high-quality ICT expert services and is known, for example, for its computing services and supercomputers. Together with CSC, Nitor is renewing the center's REMS system utilized by, for example, Findata and THL Biobank.
What is the REMS system used by researchers?
REMS or Resource Entitlement Management System has been implemented as part of the international ELIXIR project, which brings together data and tools from the life and health sciences across Europe. The aim of the project is to create a research infrastructure that will make it easier for researchers to find and analyze data and share their knowledge, implementing best practices in the field. REMS provides researchers from different organizations access to data and materials, and the application process can be handled entirely within the service.
Built in the Clojure programming language, REMS is an open source product with CSC and Nitor as the main implementers. From the beginning, two of Nitor’s experienced software architects, Markku Rontu and Joel Kaasinen, have been involved in the project. Clojure and open source mean a lot for both of them.
“I think it’s important for public systems to be open source. It's also great to get to show an example of an extensive system made with Clojure as well as to help others by developing open source components. Unlike many other modern languages, Clojure was originally built for heavy production use and is well suited for programming a system like this,” says Markku.
REMS includes an interface through which the license application circulates from the applicant to the owner of the material or their representative for approval. In addition, it provides an extensive interface that shares information on applications and licenses granted and acts as an integration point with other licensing or processing systems. REMS can be flexibly applied to meet the needs of the organization using it. The system is utilized, for example, by the data permit authority Findata and the biobank of the Finnish Institute for Health and Welfare (THL).
The solution implemented with an agile team adapts to the needs of different users
Passionate Clojure experts from CSC and Nitor worked together to build a system that adapts to the needs of different user organizations. The suitability of the new system was validated with a proof-of-concept implementation, on top of which new features have been built piece by piece according to the needs of user organizations. REMS was first adopted by the Language Bank of Finland where the system has been in production since 2018.
“New user organizations always bring new needs to the system, which can be a big challenge. Our project has gone through a few extensive rewrites, such as a significant simplification of the processing model. However, pure functional code, good coverage of automatic tests and the expressive power of the Clojure programming language have kept the code mass under control,” says Markku.
Nitor has been the supplier of the REMS system since 2017 and won the tender for the further development of the system also for the years 2020–2022. The remote work recommendation, which began in spring 2020, did not slow down the agile team.
“The success of a project is almost always the result of effective teamwork. For example, we've been working remotely with CSC developers since the beginning. Remote work is well suited for an open source project and our experience has, of course, facilitated the overall transition to the new normal. In addition, good product management is needed for the overall management and especially to adapt to new needs, and for this thanks go to the CSC product owners. Continuous learning is also essential; coincidentally, our technology selection was also inspired by the product owner who originally attended the Clojure programming course held by Joel!,” says Markku.