Vai al contenuto| Home page|

   Ti trovi in: HOME »Programmi, progetti e risultati »I progetti »PRIN - Programmi di ricerca di Rilevante Interesse Nazionale»Programma di ricerca
INIZIO_TESTO_DA_INDICIZZARE

PROGRAMMA DI RICERCA

italiano - english
Programmi di ricerca simili:
Classificazione scientifico-disciplinare
Classificazione brevettuale
Classificazione geografica
Bibliografia
[BBDS03] F. Barbanera, M.Bugliesi, M. Dezani, V. Sassone.
A Calculus of Bounded Capacities. LNCS 2896, 2003.

[BdL03] F. Barbanera, U. de' Liguoro.
Type Assignment for Mobile Objects. ENTCS 84, 2003.

[BC01] M. Bugliesi, G. Castagna. Secure Safe Ambients. POPL 2001.

[BCC01] M. Bugliesi, G. Castagna, S. Crafa.
Reasoning about security in mobile ambients.
CONCUR 2001, LNCS 2154, 2001.

[BCC04] M. Bugliesi, G. Castagna, S. Crafa.
Access Control for Mobile Agents: the Calculus of Boxed Ambients.
ACM TOPLAS, 26(1):57-124, 2004.

[BCG88] M.C. Browne, E.M. Clarke, O. Grumberg.
Characterizing finite Kripke structures in propositional temporal logic. TCS 59, 1,2, 1988.

[BCMS04] M. Bugliesi, S. Crafa, M. Merro, V. Sassone.
Communication and Mobility Control in Boxed Ambients.
I&C 2005. To appear.

[BCPS03] M. Bugliesi, S. Crafa, A. Prelic, V. Sassone.
Secrecy in Untrusted Networks. ICALP 2003, LNCS 2719, 2003.

[BDNN01] C. Bodei, P. Degano, F. Nielson, H. Riis Nielson.
Static analysis for the pi -calculus with applications to security.
I&C 168, 2001.

[CC01] L. Caires and L. Cardelli.
A Spatial Logic for Concurrency (Part I), TACS 2001, LNCS 2215, 2001.

[CD02] M. Coppo, M. Dezani.
A fully abstract model for higher-order mobile ambients.
LNCS 2294, 2002.

[CDGS03] M. Coppo, M. Dezani, E. Giovanetti, I. Salvo.
M3 Mobility Types for Mobile Processes in Mobile Ambients.
ENTCS 78, 2003.

[CDV03] T.Chothia, D.Duggan, J.Vitek.
Type-Based Distributed Access Control. CSFW-16 2003.

[CEI+05] A. Chander, D. Espinosa, N. Islam, P. Lee, G. Necula.
Enforcing Resource Bounds via Static Verification of Dynamic Checks.
ESOP'05, LNCS 3444, 2005.

[CG00] L. Cardelli, A. D. Gordon.
Anytime, Anywhere. Modal Logics for Mobile Ambients.
POPL'00. ACM Press, 2000.

[CG01] L. Cardelli and A. D. Gordon.
Logical Properties of Name Restriction.
TLCA'01, LNCS 2044, 2001.

[CGG00] L. Cardelli, G. Ghelli, A. D. Gordon.
Secrecy and Group Creation.
CONCUR'00, LNCS 1877, 2000.

[CGG02] L. Cardelli, G. Ghelli, A. D. Gordon.
Types for Mobile Ambients.
I&C, 186(2) 194-235 (2003).

[CGT02] W. Charatonik, A. D. Gordon, J-M. Talbot.
Finite-control mobile ambients. ESOP 2002, LNCS 2305, 2002.

[CGZ01] G. Castagna, G. Ghelli, F. Zappa Nardelli.
Typing Mobility in the Seal Calculus. CONCUR'01, LNCS 2154. 2001

[CMS05] G. Conforti, D. Macedonio, V. Sassone.
BiLogics: Spatial-Nominal Logics for Bigraphs. ICALP'05. To appear.

[CR05] S. Crafa and S. Rossi.
A Theory of Noninterference for the pi-calculus.
TGC'05, LNCS. To appear, 2005.

[CZ02] G. Castagna, F. Zappa Nardelli.
The Seal Calculus Revisited: Contextual Equivalence and Bisimilarity. FSTTCS'02, LNCS 2556, 2002.

[CW00] K. Crary, S. Weirich. Resource bound certification.
POPL'00. ACM Press, 2000.

[D96] M. Dam. Model Checking Mobile Processes.
I&C, 129(1), pp. 35-51, 1996.

[DDG99] F. Damiani, M. Dezani-Ciancaglini, P. Giannini.
A filter model for mobile processes. MSCS 9(1): 63-101 (1999)

[DeHe84] R. De Nicola, M. Hennessy.
Testing Equivalences for Processes. TCS 34, 1984.

[DFP98] R. De Nicola, G. L. Ferrari, R. Pugliese.
KLAIM: A Kernel Language for Agents Interaction and Mobility.
IEEE Transactions on Software Engineering, 1998, 24(5),315-330.

[DL04] R. De Nicola, M. Loreti. A Modal Logic for Mobile Agents.
ACM TOCL 5(1), 2004.

[DLB00] P.Degano, F.Levi, C.Bodei.
Safe Ambients: Control Flow Analysis and Security. LNCS 1961, 2002.

[DFPV00] R. De Nicola, G. Ferrari, R. Pugliese, B. Venneri.
Types for Access Control. TCS 240(1):215-254, 2000.

[DV95] R. De Nicola, F. Vaandrager.
Three logics for Branching Bisimulation. JACM, 42(2): 458-487, 1995.

[DS00] M. Dezani-Ciancaglini, I. Salvo.
Security Types for Mobile Safe Ambients. ASIAN'00, LNCS 1961, 2000.

[FGMP04] G. Ferrari, S. Gnesi, U. Montanari, M. Pistore.
A Model Checking Verification Environment for Mobile Processes.
ACM Tosem, 2004.

[GC99] A. Gordon, L. Cardelli.
Equational Properties of Mobile Ambients.
MSCS 12, 2002 (Also in FoSSaCs '99).

[GHS02] J.C. Godskesen, T. Hildebrandt, V. Sassone.
A Calculus of Mobile Resources. CONCUR'02, LNCS 2421, 2002.

[Gla93] R.J. van Glabbeek.
The linear time branching time spectrum (part II).
LNCS 715, 1993.

[HeLi95] M. Hennessy, H. Lin. Symbolic bisimulations. TCS 138, 1995.

[HeMi85] M. Hennessy, R. Milner.
Algebraic laws for nondeterminism and concurrency. JACM 32(1), 1985, 137-161.

[HH97] T. Hartonas, M. Hennessy.
Full Abstractness for a Functional/Concurrent Language with Higher-Order Value-Passing. I&C 145(1), 1998, 64-106.

[HJ03] M. Hofmann, S. Jost.
Static Prediction of Heap Space Usage for First-Order Functional Programs. POPL'03. ACM Press, 2003.

[HJNN99] R. R. Hansen, J. G. Jensen, F. Nielson, H. R. Nielson.
Abstract Interpretation of Mobile Ambients. SAS'99, LNCS 1694, 1999.

[HMR03] M. Hennessy, M. Merro, J. Rathke.
Towards a Behavioural Theory of Access and Mobility Control in Distributed System. TCS 322(3): 615-669, 2004.

[Hof02] M. Hofmann. The strength of non size-increasing computation.
POPL'02. ACM Press, 2002.

[HPJ02] Y. C. Hu, A. Perrig, D. Johnson.
Ariadne: A secure on-demand routing protocol for ad hoc networks. MobiCom 2002.

[HR02] M. Hennessy, J. Riely.
Resource Access Control in Systems of Mobile Agents. I&C 173, 2002, 82-120.

[HRY03] M. Hennessy, J. Rathke, N. Yoshida.
Safedpi: a language for controlling mobile code.
FOSSACS'03, LNCS 2620, 2003.

[IK02] A. Igarashi, N. Kobayashi. Resource usage analysis.
POPL 02. ACM Press, 2002.

[J02] D. B. Johnson, D. A. Maltz, Y.-C. Hu.
The dynamic source routing protocol for mobile ad-hoc networks (DSR). Internet draft, MANET working group, Feb. 2002.

[JM04] O. H. Jensen, R. Milner.
Bigraphs and mobile processes (revised).
Univ. of Cambridge, Tech. Report UCAM-CL-TR-580. Feb 2004.

[LS03] F. Levi, D. Sangiorgi.
Controlling Interference in Ambients.
ACM TOPLAS 25(1), 2003. Also in POPL'00.

[Mil89], R. Milner.
Communication and Concurrency. Prentice Hall, 1989.

[MPW93] R. Milner, J. Parrow, D. Walker.
Modal logics for mobile processes. TCS 114, 1993.

[MS02] M. Merro, V. Sassone.
Typing and Subtyping Mobility in Boxed Ambients.
CONCUR'02, LNCS 2421, 2002.

[Mye99] A.C. Myers.
Mostly-Static Decentralized Information Flow Control.
PhD thesis, TR MIT/LCS/TR-783. Jan. 1999.

[MZ03] M. Merro, F. Zappa Nardelli.
Bisimulation Proof Techniques for Mobile Ambients.
ICALP'03, LNCS 2719, 2003.

[MZ04] I. Margaria, M. Zacchi.
A Filter Model for Safe Ambients. ENTCS 2004.

[Pa81] D.M. Park.
Concurrency on Automata and Infinite Sequences.
LNCS 104, 1981.

[PiSa00] B. Pierce, D. Sangiorgi.
Behavioral Equivalence in the Polymorphic Pi-Calculus.
JACM, 47, 2000.

[PRD02] C. E. Perkins, E. M. Royer, S. R. Das.
Ad-hoc on-demand distance vector (AODV) routing.
IETF Internet draft, MANET working group, Jan.2002.

[PS96] B. Pierce and D. Sangiorgi.
Typing and Subtyping for Mobile Processes.
JMSCS, 6(5), 1996.

[S05] K. Sanzgiri, D. LaFlamme, B. Dahill, B. N. Levine, C. Shields, E. M. Belding-Royer.
Authenticated Routing for Ad Hoc Networks.
IEEE Journal on Selected Areas in communications, 23(3) March 2005.

[San01] D. Sangiorgi.
Extensionality and Intensionality of the Ambient Logic
POPL'01. ACM Press, 2001.

[San98] D. Sangiorgi.
On the bisimulation proof method. JMSCS 8, 1998.

[SW01] D. Sangiorgi, D. Walker.
The pi-calculus: a Theory of Mobile Processes.
Cambridge University Press, 2001.

[TZH02] D. Teller, P. Zimmer, D. Hirschkoff.
Using ambients to control resources. CONCUR'02, LNCS 2421, 2002.

[YH99] N. Yoshida, M. Hennessy.
Subtyping and locality in distributed higher order mobile processes.
CONCUR'99, LNCS 1664. 1999.

[W02] Joe Wells.
The essence of principal typings.
ICALP'02, LNCS 2380, 2002.
Parole Chiave
CALCOLI TIPATI PER CODICE MOBILE; EQUIVALENZE COMPORTAMENTALI; SISTEMI DI TRANSIZIONE ETICHETTATI; SISTEMI DI TIPO PER IL CONTROLLO DELLE RISORSE; LOGICHE TEMPORALI E SPAZIALI PER LA CONCORRENZA

Fondamenti Logici dei Sistemi Distribuiti e Codice Mobile

Università "Ca' Foscari" di Venezia
Abstract
Il moderno sviluppo di programmi software è sempre più spesso rivolto al servizio di applicazioni distribuite, situate a vari livelli di astrazione, da protocolli di comunicazione a livello IP per dispositivi mobili, come il protocollo IPv6, a transazioni commerciali e sistemi di commercio elettronico. Gli ambienti computazionali in cui questi programmi operano hanno una struttura inerentemente dinamica ed estensibile, sono caratterizzati dall'assenza di strutture di controllo centralizzate e sono costruiti a partire da reti fisiche e/o virtuali con una topologia complessa, connettività dinamica e servizi di entità e qualità variabile.

Il ruolo dei metodi formali di specifica, analisi e verifica del software è chiaramente critico in questo contesto in quanto, date le dimensioni delle applicazioni e la complessità dell'ambiente computazionale sottostante, lo sviluppo di software non può prescindere da una fase rigorosa di validazione prima che il software stesso venga posto in uso. Ciononostante, i metodi classici di specifica e le tecniche di analisi esistenti non sono efficaci in questi contesti. In primo luogo, l'assenza di controllo centralizzato, che distingue i sistemi aperti, invalida l'efficacia dei metodi di verifica correnti in quanto questi ultimi troppo spesso si basano sull'esistenza di assunzioni precise, ed affidabili, sulla struttura e sul comportamento di _tutte_ le componenti del sistema da analizzare. In secondo luogo, diversi aspetti osservabili delle computazioni in sistemi aperti, quali ad esempio i fallimenti dovuti a time-out, ritardi dovuti a sovraccarico di linea, parametri di qualità del servizio e altre proprietà legate all'uso di risorse, sono trattati in modo largamente approssimativo nelle tecniche correnti.

Lo scopo del progetto è di far avanzare lo stato dell'arte sulle tecniche proprie della teoria della concorrenza per l'analisi e la verifica del software, così da rendere tali tecniche efficaci nell'analisi di proprietà complesse e in presenza di ipotesi più deboli sulle componenti del sistema. Più specificatamente, l'attività di ricerca si incentrerà sui seguenti temi:

. lo studio di nuovi modelli astratti, ma espressivi, basati su calcoli di processi, per descrivere computazioni distribuite in sistemi con mobilità di nomi e di codice.
. lo sviluppo di tecniche formali per l'analisi e la verifica di processi operanti in contesti con struttura decentralizzata, trust limitato e conoscenza parziale riguardo ai componenti del sistema.

Al fine di mantenere il progetto focalizzato, e di monitorarne il progresso verso i suoi obiettivi, le teorie e le tecniche sviluppate al suo interno saranno valutate su casi di studio rappresentativi dei sistemi di riferimento. <<<

Coordinatore Scientifico del Programma di Ricerca
Michele BUGLIESI Università "Cà Foscari" di VENEZIA
Obiettivo del Programma di Ricerca
L'esecuzione remota è un paradigma classico della ricerca sui sistemi distribuiti, che mira a sviluppare tecniche per supportare la condivisione del potere computazionale tra macchine allocate su diversi nodi di una rete, e/o dispositivi mobili. I progressi recenti nella tecnologia delle comunicazioni hanno creato rinnovato interesse e nuovi problemi per questo paradigma di programmazione.

Il moderno sviluppo di programmi software è sempre più spesso rivolto al servizio di applicazioni distribuite, situate a vari livelli di astrazione, da protocolli di comunicazione a livello IP per dispositivi mobili, come il protocollo IPv6, a transazioni commerciali e sistemi di commercio elettronico. Gli ambienti computazionali in cui questi programmi operano sono costruiti a partire da reti fisiche e/o virtuali con una struttura complessa, connettività dinamica e servizi di entità e qualità variabile. Inoltre, a tutti i livelli di astrazione, tali ambienti hanno una struttura inerentemente dinamica ed estensibile, sono caratterizzati dall'assenza di strutture centralizzate di controllo, di gestione di trust e di autorizzazione.

Il ruolo dei metodi formali di specifica ed analisi del software è indiscutibile: date le dimensioni delle applicazioni e la complessità dell'ambiente computazionale sottostante, lo sviluppo di software non può prescindere da una validazione rigorosa prima che il software stesso venga posto in uso. Ciononostante, è semplice convincersi che i metodi classici di specifica e di analisi sono largamente inefficaci in questi contesti. In primo luogo, l'assenza di controllo centralizzato, tipico dei sistemi aperti, invalida l'efficacia dei metodi tradizionali di verifica in quanto questi troppo spesso si basano sull'esistenza di assunzioni precise, ed affidabili, sulla struttura e sul comportamento di tutte le componenti del sistema da analizzare. In secondo luogo, diversi aspetti osservabili delle computazioni in sistemi aperti, quali fallimenti dovuti a time-out, ritardi dovuti a sovraccarico di linea, parametri di qualità del servizio e altre proprietà legate all'uso di risorse, sono trattati in modo largamente approssimativo nelle tecniche correnti.


Obiettivi e approccio
Lo scopo del progetto è di far progredire lo stato dell'arte sulle tecniche proprie della teoria della concorrenza per l'analisi e la verifica del software, estendendole in modo da renderle efficaci sia nell'analisi di proprietà complesse, sia in presenza di ipotesi più deboli sulle componenti del sistema. Ad alto livello gli obiettivi del progetto hanno una doppia valenza ed includono:

. lo sviluppo di nuovi modelli astratti per descrivere computazioni distribuite in sistemi con mobilità. Questi modelli saranno basati su calcoli di processo e forniranno la base per condurre analisi formali sull'esecuzione e sulla mobilià del codice, sull'esplorazione del contesto di esecuzione, descritte in termini delle proprietà osservabili rilevanti in tali computazioni.
. lo sviluppo di tecniche formali, basate su sistemi di tipo e teorie logiche, per la specifica e verifica del comportamento di programmi concorrenti. Tali tecniche dovranno rendere possibile esprimere le politiche di autorizzazione per la migrazione del codice in ambienti computazionali remoti, e allo stesso tempo permettere il controllo dei meccanismi di accesso, protezione, negoziazione ed utilizzo delle risorse disponibili in tali ambienti.

Il nostro approccio sarà incentrato sullo sviluppo dei fondamenti teorici alla base delle tecniche di specifica ed analisi, con lo scopo di identificare nozioni unificanti e produrre strumenti formali flessibili e adattabili. Allo stesso tempo, svolgeremo una attività complementare di ricerca su casi di studio per valutare i risultati teorici, il loro progresso e la loro adeguatezza.

Sul piano delle tecniche, la nostra ricerca si fonderà su modelli operazionali e sistemi "proof theoretic". La ricerca nell'area della teoria della concorrenza ha da tempo prodotto strumenti potenti per ragionare sul comportamento "contestuale" di processi concorrenti, e per analizzare e specificare il loro comportamento tramite tipi e sistemi logici. Negli anni questi strumenti hanno trovato una sempre più ampia applicazione nei calcoli di processi del prim'ordine e, in una certa misura, anche nei calcoli con mobilità di nomi come il pi-calcolo. Nella presente proposta, intendiamo estendere le tecniche esistenti a processi e sistemi le cui componenti siano mobili, distribuite, possibilmente non fidate. Proponiamo l'uso di tipi e formule logiche come interfacce, o come contratti, che esprimano e regolino la negoziazione per l'acquisizione delle risorse tra i processi e gli ambienti circostanti. L'uso di caratterizzazioni logiche e coinduttive delle corrispondenti equivalenze comportamentali fornirà la base per l'analisi formale degli effetti osservabili dell'esecuzione dei processi. Saranno richieste tecniche innovative per fornire adeguate caratterizzazioni dell'uso e della gestione delle risorse - limiti, protezione, autorizzazione, confinamento. Analogamente, nuove tecniche saranno necessarie per formalizzare meccanismi che consentano al codice cliente di scoprire/acquisire le sue risorse, spostandosi in una rete distribuita con connettività e struttura dinamiche, e con diritti di accesso/autorizzazioni ugualmente dinamici.
L'analisi statica, basata sui tipi e su sistemi logici è la soluzione che proponiamo per rendere sicure ed efficienti computazioni che devono adattarsi sulla base delle informazioni relative al loro contesto. Questa analisi contribuirà a dotare il codice cliente di certificati verificabili che ne dimostrino la conformità alle politiche di controllo dell'ambiente ospite in merito a diversi aspetti, che vanno da garanzie di segretezza e integrità dei dati, a garanzie di uso limitato delle risorse di sistema.

Le tecniche e gli strumenti di verifica sviluppati nel progetto verranno valutati su un insieme di casi di studio. Se da un lato l'identificazione dei casi di studio costituisce di per sè oggetto di studio, abbiamo al momento già identificato due esempi significativi. Il primo riguarda la specifica ed analisi di protocolli per la comunicazione e l'instradamento in reti wireless "ad hoc". Se da un lato le reti "ad hoc" sono interessanti di per sè per la loro natura profondamente dinamica, dall'altro i protocolli di instradamento in tali reti sono rilevanti all'interno del progetto poiché, vista la loro natura tipicamente cooperativa, essi richiedono la capacità di stabilire adeguate forme di "trust" tra i partecipanti all'instradamento e, dualmente, di proteggersi da componenti verso le quali non è disponibile sufficiente informazione per stabilire adeguati livelli di trust. Il secondo scenario riguarda la pratica, sempre più comune tra gli utenti, di scaricare codice remoto per mandarlo in esecuzione sui propri dispositivi (portatili o palmari). Nell'ambito del progetto, studieremo tecniche per rilevare attacchi di vario tipo, da attacchi alla sicurezza ed integrità dei dati, ed attacchi di tipo "denial-of-service" da parte di agenti ostili che degradano le prestazioni del sistema ospite sovra-utilizzandone le risorse.

Lo scopo dei casi di studio è duplice. Da una parte, permetterà di stimolare il lavoro sulle techniche di specifica e di analisi fornendo problemi specifici. Dall'altro lato, fornirà un indicatore misurabile per valutare il progresso del progetto e la qualità dei suoi risultati.

Per una descrizione dettagliata delle attività di progetto è si rimanda alla sezione "workplan" della proposta. <<<

Durata
24 mesi
Base di partenza scientifica nazionale o internazionale
Tipi, logiche e tecniche di ragionamento equazionale si stanno affermando come strumenti efficaci per l'analisi di computazioni distribuite e di sistemi aperti. Alcune tematiche di particolare rilevanza per la presente proposta riguardano l'uso di tipi e logiche per la descrizione delle risorse e delle loro modalità di utilizzo e l'impiego di teorie equazionali tipate per caratterizzare proprietà osservazionali dei processi e la loro struttura spaziale. Nel seguito descriveremo brevemente una parte della letteratura rilevante in questo ambito.


Sistemi di tipo


Negli ultimi anni le problematiche legate al controllo delle risorse e della mobilità , in forme diverse, sono state un tema cardine della ricerca di base nella teoria dei tipi. Gli argomenti considerati comprendono l'analisi di aspetti quali: l'abilità di leggere da / scrivere su un canale [PS96], il controllo della distribuzione dei nomi dei canali [YH99], la garanzia che gli agenti mobili utilizzeranno le risorse solo dopo essere stati autorizzati [HR02,DFPV00,BC01,HMR03], il controllo dell'interferenza [LS03], il controllo della mobilità degli agenti eventualmente basata su permessi specificati mediante tipi [DS00,MS02,CGG02,CDGS03], le garanzie di safety per gli scambi all'interno di ambienti di calcolo locali [CGG02], la segretezza di tali scambi [CGG00], il controllo della diffusione e condivisione di informazioni basato sul contenuto e sul contesto [Mye99,CDV03].
La maggior parte dei sistemi suddetti, con poche eccezioni, si fonda su tecniche di tipizzazione classiche nelle quali ad ogni componente del sistema è assegnato un tipo sulla base di assunzioni stabilite a livello globale. Questo approccio nonè certamente realistico in ambienti distribuiti e dinamici come quelli di interesse per il progetto. Una soluzione che consente di superare questa limitazione consiste nell'utilizzare primitive crittografiche per proteggere gli agenti mobili trusted (ovvero, tipati) dagli ambienti untrusted che tali agenti attraversano. Quindi il sistema di tipo separa il codice trusted da quello untrusted, permettendo interazioni, che vengano giudicate sicure, con siti non trusted [BCPS03]. Una soluzione alternativa si basa sul type checking dinamico, che consente di verificare, al momento dell'interazione, le assunzioni locali fatte sui componenti remoti [BC01,HR02,DFPV00]. In alcuni casi [BC01,CDGS03] le tecniche di type checking dinamiche sono formulate in termini di sistemi di inferenza di tipo, in grado di estrarre informazioni di tipo da un codice (non tipato) al fine di approssimarne il comportamento. Tali tecniche sono particolarmente rilevanti ed efficaci nel caso di sistemi che ammettono tipo principale, proprietà che risulta essenziale per un analisi composizionale dei tipi [W02]. Per estrarre informazioni sul comportamento di termini dei calcoli per la mobilità , tipati o meno, sono state utilizzate anche altre tecniche di analisi statica. Ricordiamo, tra queste, l'attività sulla flow analysis [DLB00,BDNN01], sull'interpretazione astratta [NHN99] e sulle logiche modali [CG00].

Una linea di ricerca complementare nell'ambito dei sistemi di tipo si concentra sulla certificazione di limiti sul consumo delle risorse. Tra i riferimenti rilevanti ricordiamo [Hof02,HJ03], dove si introduce una nozione di "tipo risorsa" in grado di rappresentare un'unità di spazio astratta e si utilizza un sistema di tipo lineare al fine di garantire che la computazione richieda uno spazio lineare; [CW00] dove l'uso di un linguaggio assembly tipato consente di stabilire dei limiti quantitativi sul tempo di esecuzione; e [IK02] che propone una formulazione generale di analisi dell'uso delle risorse. Nel contesto dei calcoli concorrenti e distribuiti ricordiamo [GHS02], che presenta un calcolo in cui le risorse possono essere trasportate da una locazione all'altra, a condizione che nella locazione di destinazione vi sia sufficiente spazio; [TZH02,BBDS03] che usa i sistemi di tipo per controllare l'uso ed il consumo delle risorse; e [CGT02] che adotta tecniche statiche per analizzare il comportamento di processi con controllo finito, ovvero processi con capacità limitata di allocazione di ambienti e di creazione di output.


Equivalenze comportamentali

Un'equivalenza comportamentale identifica due processi quando questi "si comportano allo stesso modo" in tutti i possibili contesti, ovvero in tutti gli ambienti nei quali possono essere utilizzati. Il comportamento dei processiè determinato da come questi interagiscono con l'ambiente e dagli effetti che producono su di esso. Nelle teorie classiche della concorrenza (dove sono assenti distribuzione e tipizzazione) il comportamento viene rappresentato dalle azioni che i processi possono eseguire ed è, in genere, formalizzato tramite la semantica operazionale strutturata. Quindi due processi sono considerati equivalenti quando possono "eseguire le stesse azioni".

La nozione di equivalenzaè particolarmente utile per giustificare formalmente le tecniche di trasformazione dei programmi ("è possibile rimpiazzare un programma P con un programma Q perché essi hanno lo stesso comportamento in tutti i contesti"), utilizzate sia dai programmatori durante lo sviluppo di software che dai compilatori nelle fasi di ottimizzazione. Tali trasformazioni richiedono però che le relazioni di equivalenza siano congruenze. e quindi che siano preservate da tutti gli operatori del calcolo, una proprietà che risulta fondamentale anche per poter ragionare in modo composizionale su sistemi complessi.

Sono state definite diverse nozioni di equivalenza comportamentale tra processi (una buona rassegnaè presentata da van Glabbeek in [Gla93]). In particolare l'equivalenza "testing" [DeHe84] e quella basata sulla bisimulazione [Pa81] si sono dimostrate tra le più utili e stabili. A partire dagli studi di Hennessy e Milner [HeMi85], queste equivalenze sono state messe in relazione con logiche modali, caratterizzando l'equivalenza tra processi in termini di equisoddisfacibilità di proprietà modali, e con teorie algebriche che permettono di trasformare processi a stati finiti in processi equivalenti utilizzando tecniche di riscrittura. Altre tecniche per verificare l'equivalenza tra processi sono quelle operazionali basate sulla coinduzione. Particolarmente importante è il caso della bisimulazione e delle "tecniche up-to" [Mil89,San98] basate sul rafforzamento del principio di coinduzione.

Tutti questi risultati sono in genere consolidati nel caso "classico" dei calcoli di processi à la CCS e, in qualche modo, anche per i calcoli puri per la mobilità come il pi-calcolo (con il termine "puro" si vuole intendere la presenza di mobilità , data dal fatto che i nomi possono essere comunicati, ma nè tipi nè primitive per la distribuzione sono considerate in questi calcoli). Nel pi-calcolo, tuttavia, lo sviluppo di strumenti per l'analisiè stato nettamente minore rispetto al caso dei calcoli classici.

Le equivalenze comportamentali per calcoli che supportano mobilità di codice e agenti, con locazioni distribuite e topologie di rete complesse, hanno ricevuto una crescente ma purtroppo ancora limitata attenzione in letteratura. I primi lavori in quest'area [LS03,BCMS04] mostrano che concetti come la mobilità e la distribuzione hanno un forte impatto sui problemi classici della teoria della concorrenza, ad es. sull'interferenza, con effetti non trascurabili sulle teorie algebriche e sugli algoritmi di verifica. Anche la mobilità stessa crea difficoltà sorprendenti nella modellazione di semplici equivalenze basate sulla bisimulazione e nell'individuazione di caratterizzazioni coinduttive di equivalenze contestuali [GHS02,CZ02,MZ03]. Difficoltà simili si riscontrano quando si utilizzano i tipi per disciplinare il comportamento dei processi con forme di controllo degli accessi [PiSa00] e della mobilità del codice [HMR03, HRY03].

Le equivalenze comportamentali per i calcoli di processi sono state studiate anche nell'approccio conosciuto come "semantica logica" nel quale gli elementi di un calcolo sono interpretati come l'insieme (filtro) delle proprietà che essi soddisfano. Queste proprietà sono di solito espresse come tipi, stabilendo così una dualità tra i termini del calcolo e i loro tipi (proprietà ), che spesso rappresentano in modo approssimato il comportamento dei processi. Quest'ideaè stata approfondita e studiata in diversi articoli sulla teoria dei calcoli dei processi. Sono stati costruiti modelli a filtro per il pi-calcolo [HH97, DDG99], il calcolo degli ambienti [CD02,MZ04] e alcune sue estensioni ad oggetti [BdL03]; le teorie equazionali di questi modelli sono state messe in relazione con equivalenze osservazionali tra processi. Esistono relazioni interessanti tra sistemi di tipo soggiacenti ai modelli a filtro e sistemi di transizione etichettati, come mostrato in [MZ04].


Logiche di Specifica

Il lavoro sulle logiche per sistemi distribuiti si è sviluppato nella letteratura recente in direzioni diverse. La logica per gli ambienti [CG00]è una logica modale, solidamente basata sul calcolo degli ambienti, che& egrave; in grado di trattare tanto lo spazio quanto il tempo. Questa logica è dotata di operatori che permettono di fare asserzioni sulle locazioni e sui loro nomi, e di esprimere loro proprietà . Un approccio collegato è quello seguito per Klaim, dove è stata adottata una logica temporale per specificare e verificare proprietà dinamiche di agenti mobili eseguiti su reti di larga scala. Inoltre, le logiche spaziali e temporali sono anche utili per analizzare sistemi aperti, dove le componenti possono essere dinamicamente connesse per interagire con i servizi di rete. Di particolare interesse in questo contesto è il nuovo approccio per la modellizzazione di sistgemi aperti basato sui "bigrafi", un formalismo che sta emergendo come una generalizzazione di molti calcoli di processo esistenti.

Le logiche modali e temporali si sono dimostrate efficaci come formalismi per la specifica e la verifica di proprietà di sistemi concorrenti, e diversi strumenti software sono stati sviluppati per supportare tali attività . La logica di Hennessy-Milner, il mu-calcolo, CTL, CTL*, ACTL si sono affermati come strumenti utili per descrivere e stabilire proprietà di sistemi concorrenti modellati per mezzo di calcoli di processi. Facendo seguito al lavoro di Hennessy e Milner [HeMi85], varie corrispondenze sono state fissate in [BCG88], dove due equivalenze sulle strutture di Kripke (sistemi di transizione con nodi etichettati) sono state messe in relazione con varianti di CTL*, e in [DV95] dove CTL e HML sono state messe in relazione con la bisimulazione branching.

Il crescente utilizzo delle reti su larga scala e la computazione pervasiva, insieme con l'introduzione di nuovi paradigmi e linguaggi che modellano l'interazione tra attori differenti (possibilmente mobili), ha suscitato un rinnovato interesse per lo studio di nuove logiche. Per queste nuove classi di programmi, come per i formalismi concorrenti, è cruciale avere strumenti per stabilire proprietà quali l'assenza di deadlock, la liveness e la correttezza rispetto a specifiche date. Comunque, per questa nuova classe di sistemi, è anche importante stabilire altre proprietà riguardanti l'allocazione e l'uso delle risorse e la diffusione delle informazioni. Per tale motivo, l'uso delle logiche modali per specificare e verificare proprietà di sistemi mobili ha trovato ampia diffusione. Le proprietà sono specificate per mezzo di operatori modali spaziali e temporali e quindi verificate tramite sistemi di prova o con il supporto di model checker. Nell'approccio basato sui sistemi di prova vengono fornite delle regole di inferenza che consentono di costruire dimostrazioni formali del fatto che le formule di interesse sono soddisfatte dai sistemi studiati. Nell'approccio basato su model checking viene introdotta, invece, una metodologia per verificare automaticamente se un sistemaè un modello formale di una formula data. Le logiche per calcoli di processi con mobilità sono state studiate in diversi articoli. A seguire riportiamo una breve panoramica dei riferimenti presenti in letteratura che sono rilevanti per gli scopi della presente proposta.

[MPW93] introduce una logica modale per il pi-calcolo. Questa logica, che mira a catturare le differenti equivalenze tra i processi e a stabilire le diversità tra la bisimulazione late e la early, è basata sulla logica di Hennessy e Milner ma non ha operatori per la ricorsione. In [D96]è presentata una logica, ispirata alla logica di Hennessy-Milner con ricorsione, per il pi-calcolo. Questa logica è dotata di un sistema di prova basato su tableau, ma non offre operatori per trattare proprietà spaziali e la mobilità degli agenti.

[CG00] presenta una logica modale per gli Ambienti Mobili. Tale logica, solidamente basata sul calcolo degli Ambienti, permette di descrivere sia proprietà spaziali che proprietà temporali. È dotata di operatori logici che possono essere usati per fare asserzioni sulle locazioni e sui loro nomi, e permette di esprimere proprietà di natura piuttosto intensionale [San01]. Il lavoro sulle logiche spaziali per i sistemi distribuiti è quindi proseguito in diverse direzioni.

[CC01] introduce una variante della logica per gli ambienti adattata al pi-calcolo asincrono. Questa interessante logica è dotata di operatori per la specifica di proprietà temporali e spaziali, e per la specifica composizionale di proprietà di sistemi. In [CG01] sono stati introdotti nuovi operatori per esprimere proprietà logiche dei nomi ristretti. Questa logica consente di specificare configurazioni spaziali e numerose proprietà di computazioni mobili, comprese le proprietà di sicurezza.

[DL04] sviluppa una logica temporale per la specifica di proprietà nel linguaggio Klaim [DPF98]. Questa logica, ispirata alla logica di Hennessy-Milner e al mu-calcolo, presenta nuove caratteristiche che permettono di catturare sia proprietà degli stati che l'impatto delle azioni e dei movimenti degli agenti sui diversi siti. La logica è dotata di un sistema di prova che consente la verifica di proprietà per sistemi mobili. Le logiche temporali sono state studiate anche nell'ambito dell'approccio ai sistemi concorrenti basato sulla teoria degli automi, con lo sviluppo di tecniche di verifica fondate sul model-checking. Gli automi History Dependent, che sono in grado di allocare e deallocare i nomi dinamicamente, sono stati introdotti e utilizzai per la verifica di (frammenti finiti di) calcoli con causalità , località e mobilità [FGMP04]. <<<