Risorse e spazio di lavoro

L'hub centrale per i file di dati dell'utente è denominato spazio di lavoro. È possibile considerare il workbench della piattaforma come uno strumento che consente all'utente di esplorare e modificare lo spazio di lavoro. Il plugin delle risorse fornisce API per la creazione, l'esplorazione e la modifica di risorse in uno spazio di lavoro. Il workbench utilizza queste API per fornire tali funzionalità all'utente. Anche il plugin dell'utente può utilizzare le stesse API.

Per un plugin basato su risorse, è presente esattamente uno spazio di lavoro che rimane aperto per le operazioni per tutto il tempo in cui il plugin è in esecuzione. Lo spazio di lavoro viene automaticamente aperto quando il plugin delle risorse viene attivato e viene chiuso quando si chiude la piattaforma. Se il proprio plugin richiede il plugin delle risorse, quest'ultimo verrà avviato prima del plugin dell'utente e renderà disponibile lo spazio di lavoro.

Lo spazio di lavoro contiene una serie di risorse. In base alla prospettiva dell'utente, esistono tre differenti tipi di risorse: progetti, cartelle e file. Un progetto è una raccolta di un qualsiasi numero di file e cartelle. Rappresenta un contenitore per l'organizzazione di altre risorse in relazione ad un'area specifica. I file e le cartelle sono simili ai file e alle directory nel file system. Una cartella contiene altre cartelle o file. Un file contiene una sequenza arbitraria di byte. Il relativo contenuto non viene interpretato dalla piattaforma.

Le risorse di uno spazio di lavoro sono organizzate in una struttura ad albero, con i progetti al livello più alto e le cartelle e i file al di sotto. Una risorsa speciale, la risorsa principale dello spazio di lavoro, agisce come directory principale della struttura delle risorse. La directory principale dello spazio di lavoro viene creata internamente quando si crea uno spazio di lavoro e continua ad esistere per tutta la durata dello spazio di lavoro.

Uno spazio di lavoro può contenere un qualsiasi numero di progetti, ognuno dei quali può essere archiviato in un diverso percorso su disco.

Lo spazio nomi delle risorse dello spazio di lavoro effettua e mantiene sempre la distinzione maiuscolo/minuscolo. Di conseguenza, lo spazio di lavoro consente l'esistenza di più risorse di pari livello con nomi che differiscono solo per il maiuscolo/minuscolo. Inoltre, lo spazio di lavoro non pone limitazioni sui caratteri validi nei nomi di risorsa, sulla lunghezza dei nomi di risorsa o sulla dimensione delle risorse su disco. Naturalmente, se le risorse sono archiviate su un disco che non effettua la distinzione maiuscolo/minuscolo, o che presenta limitazioni sui nomi di risorsa, tali limitazioni si presenteranno quando si cerca effettivamente di creare o modificare le risorse.

Un esempio di struttura delle risorse

La struttura seguente (rappresentata nella vista di selezione del workbench) illustra una tipica gerarchia di risorse all'interno di uno spazio di lavoro. La directory principale della struttura (implicita) è la directory principale dello spazio di lavoro. I progetti derivano immediatamente dalla directory principale dello spazio di lavoro. Ciascun nodo (diverso dalla directory principale) rappresenta uno dei tre tipi di risorse e presenta un nome diverso rispetto all'elemento di pari livello.

Vista Selezione con spazio di lavoro di esempio

I nomi di risorse sono stringhe arbitrarie (ma devono corrispondere a nomi file legali). La piattaforma non imposta i nomi delle risorse, né specifica nomi con un significato particolare. L'unica eccezione è che l'utente non può chiamare un progetto ".metadata" in quanto tale nome viene utilizzato internamente.

I progetti contengono file e cartelle, ma non contengono altri progetti. I progetti e le cartelle sono simili alle directory di un file system. Quando si elimina un progetto, viene chiesto se si desidera eliminare tutti i file e le cartelle in esso contenuti. L'eliminazione di una cartella da un progetto comporta l'eliminazione della cartella e di tutti i relativi elementi secondari. L'eliminazione di un file equivale all'eliminazione di un file del file system.