Vaulting e procedure di esecuzione remota


Questo documento descrive, tentativamente, alcune proposte di specifiche generali relative alle tematiche di vaulting e di esecuzione remota di applicazioni nel quadro del progetto SPI-10

Specifiche generali per le caratteristiche di vaulting

Per quanto segue, assumiamo come riferimento un sistema generale di EDM-PDM in cui possano venire distinte le seguenti unità funzionali: Assumiamo inoltre che, nelle interazioni tra client e server, i partecipanti si attengano al seguente contratto:

Tutte le operazioni sulla macchina client sono autorizzate dal server (in base a richieste del client) ed effettuate dal client.

(Questa stipulazione in pratica esclude interazioni - quali quelle tramite condivisione del filesystem - che richiedono una speciale preparazione sistemistica del client, al di là dell'installazione del software indispensabile).

Il vaulting è definito come il complesso di azioni che regola l'inserimento (check-in) e il prelievo (check-out), da parte di un client, del contenuto documentale di un'unità d'informazione.

In quest'ambito, possiamo distinguere almeno due domini funzionali, che sono discussi in quanto segue.

Vaulting logico

Quest'area comprende le operazioni che sono compito esclusivo dell'application server. In quest'ambito, possiamo elencare le macrofunzioni che sono effettuate dall'application server durante le due operazioni di base.

Checkout logico

Durante questa fase, i vari sottosistemi dell'application server vengono interessati come segue:

Autorizzazione
Verifica che l'operazione richiesta sia permessa dal contesto del client e del documento

Esclusione (lock)
Distingue tra checkout esclusivo, che richiede l'esclusione di altri client dalla stessa operazione, e checkout condiviso. Ulteriori raffinamenti possono prevedere, nell'ambito del checkout esclusivo, di distinguere tra un lock opaco - che proibisca la possibilità di effettuare checkout condivisi - e un lock trasparente, che invece li consente. Se il sistema prevede la possibilità di effettuare il lock stealing, questa fase può interessare ulteriormente i sottosistemi di autorizzazione e messaging.

Name mapping
Al termine delle fasi precedenti, il sistema si occupa di prelevare dai metadati i dati di storage relativi al documento richiesto, convertendoli in un formato adatto al client. Ipotizzeremo che il risultato di quest'attività sia una URL, ad esempio:
ftp://user:password@ftp.cadlab.it/private/winzip.exe
http://www.microsoft.com/pub/BillSpeaksOut.doc
file://pcserver/cadvault/Assembly.e3

Questa ipotesi ha il vantaggio di permettere una rappresentazione omogenea dei vault, e capitalizza lo stato attuale della tecnologia, che mette a disposizioni una gran varietà di strumenti per la manipolazione delle URL.

Rollback
Nel caso in cui il client incontri un errore durante il checkout fisico, le azioni precedenti debbono essere cancellate e il database riportato in uno stato consistente. (Questa operazione complica notevolmente l'interazione col client, e viene talvolta trascurata, demandandone le funzioni ad un reset manuale della condizione di errore).

Messaging
Facoltativamente, al termine del checkout può essere attivata una fase di comunicazione ad altri utenti del sistema che possono essere registrati come osservatori di questo particolare evento.

Checkin logico

Durante questa fase, i vari sottosistemi dell'application server vengono interessati come segue:

Autorizzazione
Verifica che l'operazione richiesta sia permessa dal contesto del client e del documento

Esclusione (lock)
A seconda dei livelli di lock implementati e della logica di esclusione, l'operazione può essere permessa o vietata. Ad esempio una logica abbastanza diffusa, mutuata da sistemi quali RCS, impedisce il checkin a chi non detenga già un lock esclusivo per il documento interessato.

Name mapping
Il compito di questo sottosistema è convertire l'identificativo del documento in una URL. Nel caso il documento sia già associato ad un file, questo processo è analogo a quanto visto nel caso del checkout; se, invece, non esistono file associati (si tratta, cioè del primo checkin) il sottosistema si deve occupare di generare i dati di storage appropriati, determinando un nome di forma adatta per il file) tale, ad esempio, da garantire che non avvengano collisioni con altri file al momento della scrittura fisica. Il risultato di questa operazione sarà, come già discusso, una URL.

Rollback
Agisce analogamente al caso del checkout.

Messaging
Agisce analogamente al caso del checkout.

Vaulting fisico

Al termine delle operazioni sopra elencate, la fase di vaulting fisico (cioè lo spostamento dei byte che costituiscono il file propriamente detto) si riduce, da parte del file server, all'espletamento dei compiti che sono propri del particolare tipo di protocollo che viene usato per la gestione del vault (ftp, http, SMB...). Tutte le funzioni relative (autenticazione di basso livello degli accessi, autorizzazione in base all'indirizzo del client, segnalazione degli errori) sono impliciti nella quasi totalità dei server moderni. Questa circostanza rappresenta un altro vantaggio insito nell'uso delle URL.

Compiti del client

Le azioni compiute dal client nel corso di queste attività possono essere schematizzate come segue:

Interazioni nel quadro del progetto SPI-10

Esporremo ora un (ipotetico) schema tramite il quale gli agenti, oggetto del progetto SPI-10.

Invocazione di applicazioni

L'invocazione di applicazioni remote è un evento che può avvenire a seguito della richiesta di apertura di un documento da parte dell'utente. Nello schema del progetto, questa richiesta viene originata nell'ambito della JavaUI.

A seguito della richiesta di apertura del documento, il tmm_server deve compiere alcune operazioni, così schematizzabili :

JavaUI fa uso dell'informazione ottenuta sfruttando il browser per invocare l'agente selezionato da tmm_manager (che in questa fase, si suppone abbia la forma di contenuto eseguibile, quindi, tipicamente, di una applet java). Sarà l'agente stesso ad eseguire le fasi di post processing.

Interazione con il vaulting e il sistema

L'interazione con il vaulting è concentrata nell'agente appena discusso (si suppone che quest'ultimo dialoghi con l'orb_tmm). Si richiede che quest'ultimo esponga due metodi (checkin e checkout) che accettano un documento e sintetizzino una URL appropriata per il tipo di operazione richiesta: le interazioni con il file manager dovranno poi essere compiute dal client/agente stesso.

Al termine dell'interazione con il sistema di vaulting (e ipotizzando che l'agente sia stato in grado di procurarsi i permessi di esecuzione adeguati interagendo con il Java Security Manager del browser) sarà mandato in esecuzione il programma di manipolazione dei dati vero e proprio.

Dettagli implementativi

Il tmm_server mette a disposizione del client (sia esso Java o LPG) i seguenti metodi (dove doc è il riferimento ad una entità di tipo documento):

Note

I documenti presenti nel vault sono riconoscibili dalla info DocPath dell'entità documento, che in tal caso assumerà un valore convenzionale (es. <vault>). Per il momento viene gestito un unico vault. In futuro il vault nel quale memorizzare il file diventerà una opzione dell'operazione di primo checkin. Il protocollo per il trasferimento dei file deve essere comunicato al server e viene utilizzato per generare l'url a partire dal nome del documento. Tali informazioni possono essere codificate in variabili di environment.
(Queste considerazioni sono applicabili ad un prototipo d'implementazione, e sono pertanto soggette a possibili cambiamenti futuri)


  Back

($Revision: 1.2 $)
($Author: forghier $ )
(Ultima modifica $Date: 1999/09/30 15:16:33 $ )

Riferimento:      Alessandro Forghieri