diff --git a/.github/workflows/create.yml b/.github/workflows/create.yml
index 2e7c79d..c4988dd 100644
--- a/.github/workflows/create.yml
+++ b/.github/workflows/create.yml
@@ -21,7 +21,7 @@ jobs:
- name: Install dependencies and build
run: |
- npm install @iconify-json/clarity @iconify-json/devicon @slidev/cli @slidev/theme-default slidev-theme-hep slidev-theme-neversink
+ npm install @iconify-json/clarity @iconify-json/devicon @slidev/cli @slidev/theme-default slidev-theme-hep slidev-theme-neversink playwright-chromium
npm run build -- --base /${{ github.event.repository.name }}/
npm list
diff --git a/package.json b/package.json
index 7013b49..7ba2baf 100644
--- a/package.json
+++ b/package.json
@@ -3,7 +3,7 @@
"version": "1.0.0",
"main": "index.js",
"scripts": {
- "build": "slidev build",
+ "build": "slidev build --download",
"test": "echo \"Error: no test specified\" && exit 1"
},
"repository": {
diff --git a/public/images/WebApp.png b/public/images/WebApp.png
new file mode 100644
index 0000000..4a0f3f6
Binary files /dev/null and b/public/images/WebApp.png differ
diff --git a/public/images/fcc.png b/public/images/fcc.png
new file mode 100644
index 0000000..333ef35
Binary files /dev/null and b/public/images/fcc.png differ
diff --git a/slides.md b/slides.md
index eb8d46b..8db41ca 100644
--- a/slides.md
+++ b/slides.md
@@ -55,26 +55,57 @@ color: gray-light
---
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+---
+layout: top-title
+color: gray-light
+align: l
+title: history
+---
+
+:: title ::
+
+# DIRAC timeline
+
+:: content ::
+
+```mermaid
+timeline
+ section LHCb software
+ around 2000 : MC production system: bash scripts running at production sites
+ 2002 : DIRAC2
Rewritten in Python, using xml-rpc, interfacing to EDG
+ Data Challenge 04 : First successful grid usage ever.
+ : First use of pilot jobs based WMS
+ 2006-2007 : DIRAC3
Full rewriting, development of the DISET protocol -- still in use today!
+ : the current DIRAC framework is still based on this work
+ section Open sourced, wider adoption
+ 2008 : Large-ish reshuffling to become multi-VO
+ : LHCbDIRAC extension separated from Vanilla DIRAC code
+ 2009 : CLIC community adopts DIRAC
+ 2011 : France-Grilles is the first multi-VO DIRAC installation
+ 2012 : Belle2, BES3, CTA adopt DIRAC
+ 2021 : Python3 full support
+```
---
@@ -86,7 +117,7 @@ title: WMS
:: title ::
-# Workload Management System
+# WMS: Workload Management System
- Pull model based on Pilot jobs
- Also "Push" solution for HPCs that do not support pilots (because of limited internet access).
- Will integrate [CWL (Common Workflow Language)](https://www.commonwl.org) as a way of defining jobs (replacing JDL)
@@ -126,15 +157,14 @@ titlewidth: is-5
:: title ::
-# Data Management System
+# DMS: Data Management System
It’s about **files**: placing, replicating, removing files
- there are **LFNs** (logical file names) → and users ONLY work with these
- **LFNs** are registered in *catalog(s)*
- where are the LFNs? (in the DIRAC File Catalog (DFC), or in Rucio)
- what are their metadata? (in the DFC, or in the LHCb Bookkeeping, or in AMGA)
-- LFNs *may* have **PFNs**, stored in **SEs**.
-- You can access those PFNs with several protocols.
+- LFNs *may* have **PFNs**, stored in **SEs**, that can accessed with several protocols.
:: content ::
@@ -166,12 +196,12 @@ title: Productions
- A `production` is a *Data Processing transformation* (e.g. Simulation, Merge, DataReconstruction…). A Production creates jobs in the WMS (and re-sumbit them, and destroy them).
-- (Unless you are using Rucio) a *Data Manipulation transformation* replicates, or remove, data from storage elements.
+- (Unless you are using Rucio) a *Data Manipulation* `transformation` replicates, or remove, data from storage elements.
:: content ::
- The **Transformation System (TS)** is used to automate common tasks related to production activities
+ The Transformation System (TS) is used to automate common tasks related to production activities
@@ -193,35 +223,34 @@ TransformationSystem((TransformationSystem))
```
---
-layout: top-title
+layout: top-title-two-cols
+align: c-lm-lm
color: gray-light
-align: l
-title: history
+title: webapp
---
+
:: title ::
-# Brief history of DIRAC
+# Tech stack
-:: content ::
+:: left ::
+
+- DIRAC is written in python3
+ - with the exception of the DIRAC Pilot, which needs to still be able to run with Python2
+- Services are exposed at urls like `dips://box.some.where:9132/WorloadManagement/`
+ - `dips` stands for "DIRAC protocol"
+- The DIRAC framework provides also "Agents" and "Executors" to animate the system
+- As backends, MySQL and OpenSearch are supported (for different purposes)
+
+:: right ::
+
+DIRAC also provides a WebApp
+
+
+
+Implemented using `ExtJS`, and fully custom Python "bindings"
-```mermaid
-timeline
- section LHCb software
- around 2000 : MC production system: bash scripts running at production sites
- 2002 : DIRAC2
Rewritten in Python, using xml-rpc, interfacing to EDG
- Data Challenge 04 : First successful grid usage ever.
- : First use of pilot jobs based WMS
- 2006-2007 : DIRAC3
Full rewriting, development of the DISET protocol -- still in use today!
- : the current DIRAC framework is still based on this work
- section Open sourced, wider adoption
- 2008 : Large-ish reshuffling to become multi-VO
- : LHCbDIRAC extension separated from Vanilla DIRAC code
- 2009 : CLIC community adopts DIRAC
- 2011 : France-Grilles is the first multi-VO DIRAC installation
- 2012 : Belle2, BES3, CTA adopt DIRAC
- 2021 : Python3 full support
-```
---
layout: side-title
@@ -237,7 +266,7 @@ title: issues
:: content ::
-
+
- complex, with high entrance bar
- somewhat cumbersome deployment
- late on “standards”
@@ -253,14 +282,52 @@ title: issues
- no clear interface to a running DIRAC instance
+
---
layout: section
color: cyan-light
----
+---
## DiracX, the neXt DIRAC incarnation
+---
+layout: top-title-two-cols
+color: gray-light
+align: c-lr-lr
+---
+
+## Developers and maintainers requirements
+
+- pippo
+- pippo
+- pippo
+- pippo
+
+
+:: title ::
+
+# Requirements
+
+:: left ::
+
+## Communities/Users requirements
+
+- pippo
+- pippo
+- pippo
+- pippo
+
+
+:: right ::
+
+## Administrator requirements
+
+- pippo
+- pippo
+- pippo
+- pippo
+
---
layout: side-title
side: left
@@ -293,11 +360,11 @@ color: gray-light
# DiracX Web API
-- DIRAC Web APIs are developed using FastAPI
-- Nicely documented in Swagger (or Redoc), this what you see on the right
+- DIRAC Web APIs are developed using FastAPI
+- Nicely documented in Swagger (or Redoc), this what you see on the right
-What is on the right is the certification WebApp, loaded live. Use with caution!
+What is on the right is the certification Web API, loaded live. Use with caution!
---
@@ -487,9 +554,14 @@ title: Extensions
:: content ::
-The ol'good DIRAC is extendable: from the main code (DIRAC) to the Web and the Pilot, communites can create/run extensions.
-DiracX follows the same path, including DiracX-Web. We also provide a reference extension, dubbed "gubbins"
+Dirac has to support different Communities with different workflows and requirements. For example:
+- LHCb is a HEP experiment. Stores the metadata and provenance of every produced files in a LHCb-specific database (with an Oracle backend)
+- Belle2 is a HEP experiment. Uses Rucio as data management solution.
+- CTAO is an Astrophysics experiment with radically different requirements (wrt to HEP exp.) on how to process its data
+- WeNMR brings together complementary research teams in the structural biology and life science area
+
+It is sometimes necessary to extend all Dirac(X) components (including Web and Pilot). DiracX aims to provide an easy way to do so.
---
@@ -551,7 +623,6 @@ title: summary
# Summary
-
:: left ::
@@ -603,16 +674,6 @@ speed: 0.4
Federico Stagni CERN, LHCb
Andrei Tsaregorotsev CPPM (FR), EGI and LHCb
-