White Area lecture on the CERN-Solid collaboration
===
Maria Dimou (CERN) & Jan Schill (IT University Copenhagen)
Presentation at [the January 25th 2021 White Area at CERN](https://indico.cern.ch/event/979381/)
---
## Overview
1. What is Solid
3. Why CERN should be involved
4. The Solid pod
5. The Solid servers
6. Solid specifications' overview
7. Implementations so far
8. The CERN-Solid code investigation project
9. Other relevant CERN applications
10. Conclusion
11. References
---
## What is Solid
* Sir Tim Berners-Lee (TimBL) announced his Solid project (Social Linked Data) in 2016.
* This Open Source platform aims to re-decentralize the Web and empower users' control over their own data.
* Solid includes standards, missing from the original Web specifications, giving back to the users:
* _ownership_ of their _data_, private, shared, and public.
* _choice_ on the _storage_ where these data reside and
* _control_ over who has _access_ to them.
* TimBL co-founded [inrupt](https://inrupt.com) to implement the Solid standards.
---
## Why CERN should be involved
* CERN is the birthplace of the Web
* Many sophisticated software projects at CERN
* Already open source
* Operational status (tens of thousands of users)
* Solid is here to stay - we should be more actively involved than we were with W3C.
---
## The Solid pod
* People store their data securely in decentralized data stores called _Pods_. (*)
* Pods are like secure personal Web servers for data.
* Solid connects resources in different pods by representing all data as _Linked Data_, i.e. every piece of data gets its own HTTP URL on the Web, and we use those URLs to refer to this data.
* When data is stored in someone's pod, they control who and what can access it.
* There will be a pod demo by Jan.
(*) Pod: a usually protective container or housing (from the Webster dictionary).
---
## The Solid servers
1. **Node Solid Server (NSS):** _Open Source_ server by the MIT Solid team since 2016. NSS instances in the next slide.
2. **Enterprise Solid Server (ESS):** inrupt's commercial _Closed Source_ alternative, based on [Trellis](https://www.trellisldp.org/). Launched in November 2020. [Article](https://sdtimes.com/data/inrupt-launches-enterprise-solid-server-to-restore-trust-in-data/).
3. **Community Solid Server (CSS):** _Open Source_ project by Ghent University, paid for by inrupt, to rewrite NSS from scratch in [TypeScript](https://www.typescriptlang.org/).
5. **php-solid-server (PSS):** _Open Source_, good test results, under dev. The basis for the Nextcloud app that makes Nextcloud compatible with Solid.
---
## Solid servers' interfaces
* All Solid servers have the same common interface, so they don’t need to know anything about what apps are being run on them. See [more here](https://solidproject.org/users/get-a-pod#get-a-pod-from-a-pod-provider)
* Two public demo/test sites for making your own pod. They both run NSS:
* [inrupt.net](https://inrupt.net/) run by inrupt, hosted at inrupt premises, USA, data in Amazom Web Services.
* [solidcommunity.net](https://solidocmmunity.net) run by the Solid organisation, hosted in the UK, data in Digital Ocean.
* a few others people show at the [monthly Solid World Webinar](https://solidproject.org/events).
_Slide with input from TimBL_
---
## Solid specifications
Recently matured, they cover areas of:
* Authentication
* Authorisation
* Data inter-operability
* Testing suites
As the **Web Access Control (WAC)** gives all privileges to the user,
**Access Control Policies (ACP)** are now being defined to assist newcomers.
*Specs' current location:* https://solid.github.io/specification/
*Specs' future location:* https://solidproject.org/TR/
*Test suite:* https://github.com/solid/test-suite
---
## Solid implementations
By start-up companies and government agencies. Most engaged countries, so far, are Belgium, the Netherlands, Germany and the UK.
* UK NHS (National Health System)
* Flanders' government applications
* Belgian [Digita](https://www.digita.ai/) [inox](https://www.inox.app/) (connects your different pods)
* inrupt developments - [sign-up and play](https://signup.pod.inrupt.com/)
Activities summarised in the [Solid newsletter](https://solidproject.org/newsletter) and reported at the [monthly Solid World Webinar](https://solidproject.org/events).
---
## The CERN-Solid code investigation project
1. **Review Solid specifications**
2. **Evaluate Solid implementations**
3. **Enrich Indico with Solid principles**
4. Recommendations on Solid adoption in CERN applications
5. Document challenges, advantages, gaps
6. Presentation of proceedings
*[Full project description](https://it-student-projects.web.cern.ch/projects/cern-solid-code-investigation)*
*[Very comprehensive report on points 1 & 2 by Jan ](https://indico.cern.ch/event/979244/attachments/2150378/3668572/JanSchill_20201225-Solid-specs-and-implemenations-report.pdf)*
*[GitHub: janschill/uni-research_project](https://github.com/janschill/uni-research_project)*
---
### Proof of Concept via Indico extensions

---
## Conference Registration

---
## Conference Registration Client-Side

---
## Conference Registration Server-Side

---
## How to Login/Register with a Solid Pod
1. Pick a provider: solidcommunity.net* or inrupt.net**
2. Register with **username\*\*\*, password, name, email address**
3. Log in using the newly created WebID with username and password
4. Go to https://podbrowser.inrupt.com/ and log in
*Hosted: \*DigitalOcean (UK) , \*\*AWS (USA)*
*WebID: \*\*\*username will be part of your WebID*
---
## Other relevant CERN applications
Mutual benefit will derive from other PoCs with:
* The CERN _Notifications project_, unilateral, via subscription and archived.
* The _new CERN Authentication_ project.
* _CS3MESH_, a pan-European cross-institution mesh that will offer data sharing/co-editing facilities, relying on the federation of different sites by using well-known APIs.
* _InvenioRDM_, a Research Data Management, open source platform for persistent paper & data registration.
---
## Conclusion
The success of the [CERN-Solid code investigation project](https://it-student-projects.web.cern.ch/projects/cern-solid-code-investigation) is important:
1. For Jan's MSc thesis at itu.dk to demonstrate that the implementation works.
2. For CERN to be inspired by the PoC and embrace Solid.
* Solid is there to stay. We should embark now!
4. For Solid to show that its principles can work in an environment of tens of thousands of users.
---
## Thanks!
* To TimBL for always giving advice, despite the millions who contact him.
* To Michiel de Jong & Sarven Capadisli, for their answers to our frequent questions.
* To Jan Schill (from Maria) for choosing this project for his MSc thesis.
* To the CERN/IT-CDA management for approving this work.
---
## References current
* *The Solid project web site:* https://solidproject.org
* *Jan's MSc Thesis description:* [https://it-student-projects.web.cern.ch/projects/cern-solid-code-investigation](https://it-student-projects.web.cern.ch/projects/cern-solid-code-investigation)
* *Thesis repo.:* [https://github.com/janschill/uni-research_project](https://github.com/janschill/uni-research_project)
* *CERN-Solid entry point:* [https://indico.cern.ch/category/11962/](https://indico.cern.ch/category/11962/)
* *CERN-Solid chat:* [https://gitter.im/cern-solid/community](https://gitter.im/cern-solid/community)
---
## References Historical
* *The original Web proposal:* https://www.w3.org/History/1989/proposal.html
* *When the CERN Web was Open Source (most data missing today):* https://weboffice.web.cern.ch/WebOffice/
* *Past attempts to involve CERN in W3C work:*
* *CERN-W3C 2014 proposal:* https://cern.ch/dimou/personal/CERN-W3C_Collaboration.pdf
* *CERN-W3C 2017 proposal:* https://cern.ch/dimou/personal/CERN-W3C_Collaboration_2017_proposal.pdf