A SOLID Distributed Architecture for Sciebo Research Data Services

27 Jan 2020, 15:51
6m
Lightning talk CS3 Community Site Reports Site reports

Speakers

Mr Peter Heiss (University of Muenster)Mr Jens Stegmann (University of Muenster)Mr Holger Angenent (University of Muenster)

Description

The project sciebo Research Data Services (sciebo RDS) [1] of the University of Münster and the University of Duisburg-Essen aims to extend the functionality of the ownCloud-based sciebo service, in particular by integrating existing services (e.g. Zenodo, DataCite, EPIC, CLARIN Webservices), in order to provide one-click solutions and easily reusable workflows for integrated research data management (RDM). The RDM services are supposed to enable the users in their day-to-day research work via sciebo.

Currently, sciebo [2] has more than 100.000 users with 35.000 of them being scientists, i.e. they are employed at participating universities in the German federal state of North Rhine-Westphalia. Hence, infrastructure and architecture have to support scalability. In order to make the integration, the development of new services and the management of the sciebo RDS as easy as possible, a modular, flexible and sustainable architecture is required. A suitable architecture should follow clear principles concerning both structure and dependencies, such that developers can contribute and reuse easily without knowledge of all implementation details.

The architecture to be presented is based on the Clean Architecture approach of Robert C. Martin. It follows the so called SOLID principles (Single responsibility, Open-closed, Liskov substitution, Interface segregation, Dependency inversion) [4], which simplify and clarify the design, the implementation and the maintenance of the whole ecosystem. Some of these principles were postulated as early as the 1980s. They are grounded in observations about different kinds of programming paradigms (structured, object-oriented, functional). With these principles in place, we strive to enable and sustain reusability of the architecture and its components.

The talk will introduce the applied architectural features and discuss aspects of their implementation in depth, i.e., we intend to show how specific parts of a scalable ecosystem based on microservices and containers on top of Kubernetes can integrate and function for this purpose. Concerning the interfaces of the microservices under discussion, we showcase the usage of the OpenAPI v3 specification, which additionally fosters reusability.

Sciebo RDS is funded by the Deutsche Forschungsgemeinschaft (DFG, German Research Foundation) - project number 403637381.

[1] https://www.research-data-services.org

[2] https://www.sciebo.de

[3] https://blog.cleancoder.com/uncle-bob/2012/08/13/the-clean-architecture.html

[4] https://en.wikipedia.org/wiki/SOLID

Primary authors

Mr Peter Heiss (University of Muenster) Mr Jens Stegmann (University of Muenster) Mr Holger Angenent (University of Muenster)

Presentation materials