Unit Papers

Home
Up
Unit Research
Unit Papers
[1] L. Bettini, V. Bono, and S. Likavec. A core calculus of higher-order mixins and classes. In Types 2003, Lecture Notes in Computer Science. Springer-Verlag, 2004. To appear in Types 2003.
[ bib | .pdf ]

This work presents an object-oriented calculus based on higher-order mixin construction via mixin composition, where some software engineering requirements are modeled in a formal setting allowing to prove the absence of message-not-understood run-time errors. Mixin composition is shown to be a valuable language feature enabling a cleaner object-oriented design and development. In what we believe being quite a general framework, we give directions for designing a programming language equipped with higher-order mixins, although our study is not based on any already existing object-oriented language.
[2] L. Bettini, V. Bono, and S. Likavec. A core calculus of mixin-based incomplete objects. In Proceedings of FOOL 11, 2004. To appear in the informal proceeedings of the workshop.
[ bib | .pdf ]

We design a calculus that combines class-based features with object-based ones, with the aim of fitting into a unifying setting the ``best of both worlds''. In a mixin-based approach, mixins are seen incomplete classes from which incomplete objects can be instantiated. In turn, incomplete objects can be completed in an object-based fashion. Our hybrid calculus is shown to be useful in some real world scenarios that we present as examples.
[3] L. Bettini, V. Bono, and B. Venneri. Coordinating Mobile Object-Oriented Mobile Code. In F. Arbarb and C. Talcott, editors, Proc. of Coordination Models and Languages, number 2315 in Lecture Notes in Computer Science, pages 56-71. Springer, 2002.
[ bib | .ps.gz ]

Standard class-based inheritance mechanisms, which are often used to implement distributed systems, do not seem to scale well to a distributed context with mobility. In this paper, a mixin-based approach is proposed for structuring mobile object-oriented code and it is shown to fit in the dynamic and open nature of a mobile code scenario. We introduce MoMi (Mobile Mixins), a coordination language for mobile processes that communicate and exchange object-oriented code in a distributed context. MoMi is equipped with a type system, based on polymorphism by subtyping, in order to guarantee safe code communications.
[4] L. Bettini, V. Bono, and B. Venneri. Subtyping mobile classes and mixins. In Proc. of Int. Workshops on Foundations of Object-Oriented Languages, FOOL 10, 2003.
[ bib | .ps.gz ]

MoMi (Mobile Mixins) is a coordination language for mobile processes that communicate and exchange object-oriented code in a distributed context. MoMi's key idea is structuring mobile object-oriented code by using mixin-based inheritance. Mobile code is compiled and typed locally, and can successfully interact with code present on foreign sites only if its type is subtyping-compliant with what is expected by the receiving site. In this paper, we study a subtyping relation for MoMi that includes both subtyping-in-width and subtyping-in-depth, in order to achieve a significantly more flexible, yet still simple, communication pattern. Technical problems arising from this extension are solved by a static annotation procedure.
[5] L. Bettini, V. Bono, and B. Venneri. O'Klaim: a coordination language with mobile mixins. In Proceedings of COORDINATION 2004, Lecture Notes in Computer Science, 2004. To appear.
[ bib | .pdf ]

This paper presents O'Klaim (Object-Oriented Klaim), a linguistic extension of the higher-order calculus for mobile processes Klaim with object-oriented features. Processes interact by an asynchronous communication model: they can distribute and retrieve resources, sometimes structured as incomplete classes, i.e., mixins, to and from distributed tuple spaces. This mechanism is coordinated by providing a subtyping relation on classes and mixins, which become polymorphic items during communication. We propose a static typing system for: (i) checking locally each process in its own locality; (ii) decorating object-oriented code that is sent to remote sites with its type. This way, tuples can be dynamically retrieved only if they match by subtyping with the expected type. If this pattern matching succeeds, the so retrieved code can be composed with local code, dynamically and automatically, in a type-safe way. Thus a global safety condition is guaranteed without requiring any additional information on the local reconfiguration of local and foreign code, and, in particular, without any further type checking. Finally, we present main issues concerning the implementation of O'Klaim.
[6] L. Bettini, S. Capecchi, and B. Venneri. Extending java to dynamic object behaviors. In Proc. of WOOD 2003, volume 82 of ENTCS, 2003.
[ bib ]

Class inheritance and dynamic binding are the key features of object-oriented programming and they permit designing and developing complex systems. However, standard class inheritance is essentially static and cannot be directly employed for modeling dynamic object behaviors. In this paper we propose a linguistic extension of Java, called Dec-Java, that is partially inspired by the decorator design pattern. This extension permits easily separating the basic features of objects (that are likely not to change during the application) from their behaviors (that, instead, can be composed dynamically at run-time). Thus, Dec-Java enables a dynamic extension and specialization of object responsibilities.
[7] L. Bettini and R. De Nicola. A java middleware for guaranteeing privacy of distributed tuple spaces. In Nicolas Guelfi, Egidio Astesiano, and Gianna Reggio, editors, Scientific Engineering for Distributed Java Applications, International Workshop, FIDJI 2002, Luxembourg-Kirchberg, Luxembourg, November 28-29, 2002, Revised Papers, volume 2604 of Lecture Notes in Computer Science. Springer, 2003. to appear.
[ bib | .ps.gz ]

The tuple space communication model, such as the one used in Linda, provides great flexibility for modeling concurrent, distributed and mobile processes. In a distributed setting with mobile agents, particular attention is needed for protecting sites and information. We have designed and developed a Java middleware, Klava, for implementing distributed tuple spaces and operations to support agent interaction and mobility. In this paper, we extend the Klava middleware with cryptographic primitives that enable encryption and decryption of tuple fields. We describe the actual implementation of the new primitives and provide a few examples. The proposed extension is general enough to be applied to similar Java frameworks using multiple distributed tuples spaces possibly dealing with mobility.
[8] L. Bettini, R. De Nicola, and M. Loreti. Formalizing Properties of Mobile Agent Systems. In F. Arbarb and C. Talcott, editors, Proc. of Coordination Models and Languages, number 2315 in Lecture Notes in Computer Science, pages 72-87. Springer, 2002.
[ bib | .ps.gz ]

The wide-spreading of Internet has stimulated the introduction of new programming paradigms and languages that model interactions among hosts by means of mobile agents, and that are centered around the notions of location awareness. In this paper we show how to use formal tools, specifically a modal logic, for formalizing properties for mobile agent systems. We concentrate on one of these new languages, Klaim, and we use it to specify a system that permits maintaining the software installed on several heterogeneous computers distributed over a network by taking advantage of the mobile agent paradigm.
[9] L. Bettini, R. De Nicola, and M. Loreti. Software Update via Mobile Agent Based Programming. In Proc. of ACM SAC 2002, Special Track on Agents, Interactions, Mobility, and Systems, pages 32-36. ACM Press, 2002.
[ bib | .ps.gz ]

We describe a system that permits maintaining the software installed on several heterogeneous computers distributed over a network by taking advantage of the mobile agent paradigm. The applications are installed and updated only on the central server. When a new release of an application is installed on the server, agents are scattered along the network to update the application on the clients. To build a prototype system we use X-Klaim, a programming language specifically designed to program distributed systems composed of several components interacting through multiple tuple spaces and mobile code.
[10] L. Bettini, R. DeNicola, and R. Pugliese. KLAVA: a Java package for distributed and mobile applications. Software Practice and Experience, 32(14):1365-1394, 2002.
[ bib | .ps.gz ]

Highly distributed networks have now become a common infrastructure for a new kind of wide-area distributed applications whose key design principle is network awareness, namely the ability of dealing with dynamic changes of the network environment. Network-aware computing has called for new programming languages that exploit the mobility paradigm as a basic interaction mechanism. In this paper we present the architecture of Klava, an experimental Java package for distributed applications and code mobility. We explain how Klava implements code mobility by relying on Java and show a few distributed applications that exploit mobile code and are programmed in Klava.
[11] L. Bettini, M. Loreti, and R. Pugliese. An Infrastructure Language for Open Nets. In Proc. of ACM SAC 2002, Special Track on Coordination Models, Languages and Applications, pages 373-377. ACM, 2002.
[ bib | .ps.gz ]

The structure of open nets, like the Internet, is highly dynamic, as the topology of component networks continuously evolves. In this context, node connectivity is a key aspect and a language for distributed network-aware mobile applications should provide explicit mechanisms to handle it. In this paper, we address the problem of expressing dynamic changes of node connectivity at linguistic level and, in particular, we focus on a slight extension of the language Klaim, that is targeted to this aim. The extension consists of the introduction of a new category of processes that, in addition to the standard process operations, can execute a few new coordination operations for establishing new connections, accepting connection requests and removing connections. Our extension puts forward a clean separation between the coordinator level and the user level and, hence, it is modular enough to be easily applicable also to other network-aware languages. We will also show that our approach can be used as a guide for actual distributed (i.e. without a single centralized server) implementations of mobile systems.
[12] Lorenzo Bettini, Rocco De Nicola, and Michele Loreti. Formulae meet programs over the net: a framework for reliable network aware programming. Annals of Software Engineering, 2003. Accepted for publication.
[ bib ]

A general framework for network aware programming is presented that consists of a language for programming mobile applications, a logic for specifying properties of the applications and an automatic tool for verifying such properties. The framework is based on XKlaim, eXtended Klaim, an experimental programming language specifically designed to program distributed systems composed of several components interacting through multiple tuple spaces and mobile code. The proposed logic is a modal logic inspired by Hennessy-Milner logic and is interpreted over the same labelled structures used for the operational semantics of XKlaim. The automatic verification tool is based on a complete proof system that has been previously developed for the logic.
[13] M. Boreale, M.Buscemi, and U. Montanari. D-fusion, a distinctive fusion calculus. Submitted., 2003.
[ bib ]

Fusion calculus is commonly regarded as a generalisation of pi-calculus. Actually, we prove that there is no uniform fully abstract embedding of pi-calculus into Fusion. This fact motivates the introduction of a new calculus, D-Fusion, with two binders, lambda and nu. We show that D-Fusion is strictly more expressive than both pi-calculus and Fusion. The expressiveness gap is further clarified by the existence of a fully abstract encoding of mixed guarded choice into the choice-free fragment of D-Fusion.
[14] M. Boreale, R. De Nicola, and R. Pugliese. Trace and testing equivalence on asynchronous processes. Information and Computation, 172(2):139-164, 2002.
[ bib ]

We study trace and may-testing equivalences in the asynchronous versions of CCS and pi-calculus. We start from the operational definition of the may-testing preorder and provide for it finitary and fully abstract trace-based characterizations, along with a complete in-equational proof system. We also touch upon two variants of this theory, by first considering a more demanding equivalence notion (must-testing) and then a richer version of asynchronous CCS. The results throw light on the difference between synchronous and asynchronous communication and on the weaker testing power of asynchronous observations.
[15] Michele Boreale and Daniele Gorla. On compositional reasoning in the spi-calculus. In FOSSACS: International Conference on Foundations of Software Science and Computation Structures. Lecture Notes in Computer Science, 2002.
[ bib | .pdf ]

Observational equivalences can be used to reason about the correctness of security protocols described in the spi-calculus. Unlike in CCS or in pi-calculus, these equivalences do not enjoy a simple formulation in spi-calculus. The present paper aims at enriching the set of tools for reasoning on processes by providing a few equational laws for a sensible notion of spi-bisimilarity. We discuss the difficulties underlying compositional reasoning in spi-calculus and show that, in some cases and with some care, the proposed laws can be used to build compositional proofs. A selection of these laws forms the basis of a proof system that we show to be sound and complete for the strong version of bisimilarity.
[16] Michele Boreale and Daniele Gorla. Process calculi and the verification of security protocols. Journal of Telecommunication and Information Technology, 2002. to appear.
[ bib | .pdf ]

Recently there has been much interest towards using formal methods in the analysis of security protocols. Some recent approaches take advantage of concepts and techniques from the field of process calculi. Process calculi can be given a formal yet simple semantics, which permits rigorous definitions of such concepts as `attacker', `secrecy' and `authentication'. This feature has led to the development of solid reasoning methods and verification techniques, a few of which we outline in this paper.
[17] F. Corradini, R. De Nicola, and A. Labella. An equational axiomatization of bisimulation over regular expressions. Journal of Computational Logic, 12(2):301-320, 2002.
[ bib ]
[18] R. De Nicola, G.-L. Ferrari, U. Montanari, R. Pugliese, and E. Tuosto. A formal basis for reasoning on programmable qos. In N. Dershowitz, editor, Proc. of the International Symposium on Verification (Theory and Practice) - Celebrating Zohar Manna's 64-th Birthday, number 2772 in Lectures Notes in Computer Science. Springer-Verlag, 2003. to appear.
[ bib ]

The explicit management of Quality of Service (QoS) of network connectivity, such as, e.g., working cost, transaction support, and security, is a key requirement for the development of the novel wide area network applications. In this paper, we introduce a foundational model for specification of QoS attributes at application level. The model handles QoS attributes as semantic constraints within a graphical calculus for mobility. In our approach QoS attributes are related to the programming abstractions and are exploited to select, configure and dynamically modify the underlying system oriented QoS mechanisms.
[19] Rocco De Nicola and Michele Loreti. A Modal Logic for Mobile Agents. ACM Transactions on Computational Logic, 5(1), 2004.
[ bib | .ps.gz ]

Klaim is an experimental programming language that supports a programming paradigm where both processes and data can be moved across different computing environments. The language relies on the use of explicit localities, and on allocation environments that associate logical localities to physical sites. This paper presents a temporal logic for specifying properties of Klaim programs. The logic is inspired by Hennessy-Milner Logic (HML) and the mu-calculus, but has novel features that permit dealing with state properties to describe the effect of actions over the different sites. The logic is equipped with a consistent and complete proof system that enables one to prove properites of mobile systems.
[20] G. Ferrari, E. Moggi, and R. Pugliese. Higher-order types and meta-programming for global computing. Mathematical Structures in Computer Science, 2003. to appear.
[ bib ]

This paper describes the design and the semantics of MetaKlaim, an higher order distributed process calculus equipped with staging mechanisms. MetaKlaim integrates MetaML (an extension of SML for multi-stage programming) and Klaim (a Kernel Language for Agents Interaction and Mobility), to permit interleaving of meta-programming activities (like assembly and linking of code fragments), dynamic checking of security policies at administrative boundaries and ``traditional'' computational activities on a wide area network (like remote communication and code mobility). MetaKlaim exploits a powerful type system (including polymorphic types á la system F) to deal with highly parameterized mobile components and to dynamically enforce security policies: types are metadata which are extracted from code at run-time and are used to express trustiness guarantees. The dynamic type checking ensures that the trustiness guarantees of wide are network applications are maintained whenever computations interoperate with potentially untrusted components.
[21] G. Ferrari, E. Moggi, and R. Pugliese. MetaKlaim: A type safe multi-stage language for global computing. Mathematical Structures in Computer Science, 2004. To appear.
[ bib | .pdf ]

This paper describes the design and the semantics of MetaKlaim, an higher order distributed process calculus equipped with staging mechanisms. MetaKlaim integrates MetaML (an extension of SML for multi-stage programming) and Klaim (a Kernel Language for Agents Interaction and Mobility), to permit interleaving of meta-programming activities (like assembly and linking of code fragments), dynamic checking of security policies at administrative boundaries and ``traditional'' computational activities on a wide area network (like remote communication and code mobility). MetaKlaim exploits a powerful type system (including polymorphic types a la system F) to deal with highly parameterized mobile components and to dynamically enforce security policies: types are metadata which are extracted from code at run-time and are used to express trustiness guarantees. The dynamic type checking ensures that the trustiness guarantees of wide are network applications are maintained whenever computations interoperate with potentially untrusted components.
[22] Gianluigi Ferrari, Eugenio Moggi, and Rosario Pugliese. Guardians for ambient-based monitoring. In Proc. Foundations of Wide Area Network Programming, volume 66(3) of Electronic Notes in Theoretical Computer Science. Elsevier, 2002.
[ bib ]

In the Mobile Ambients of Cardelli and Gordon an ambient is a unit for mobility, which may contain processes (data) and sub-ambients. Since the seminal work of Cardelli and Gordon, several ambient-based calculi have been proposed (Seal, Box-Pi, Safe Ambients, Secure Safe Ambients, Boxed Ambients), mainly for supporting security. At the operational level these (box- and) ambient-based calculi differ only in the capabilities of processes. We propose a way of extending ambient-based calculi, which embodies two principles: an ambient is a unit for monitoring and coordination, the name of an ambient determines its (monitoring and coordination) policy. More specifically, to each ambient we attach a guardian, which monitors the activity of sub-components (i.e. processes and sub-ambients) and the interaction with the external environment. In our proposal, guardians and processes play a dual role: guardians are centralized entities monitoring and inhibiting actions, while processes are decentralized entities performing actions. We exemplify the use of guardians for enforcing security properties.
[23] D. Gorla and R. Pugliese. Enforcing security policies via types. In D. Hutter, G. Muller, W. Stephan, and M. Ullmann, editors, Proc. of International Conference on Security in Pervasive Computing (SPC'03), number 2802 in Lectures Notes in Computer Science, pages 88-103. Springer-Verlag, 2003.
[ bib ]

Security is a key issue for distributed systems/applications with code mobility, like, e.g., e-commerce and on-line bank transactions. In a scenario with code mobility, traditional solutions based on cryptography cannot deal with all security issues and additional mechanisms are necessary. In this paper, we present a flexible and expressive type system for security for a calculus of distributed and mobile processes. The type system has been designed to supply real systems security features, like the assignment of different privileges to users over different data/resources. Type soundness is guaranteed by using a combination of static and dynamic checks, thus enforcing specific security policies on the use of resources. The usefulness of our approach is shown by modeling the simplified behaviour of a bank account management system.
[24] D. Gorla and R. Pugliese. Resource access and mobility control with dynamic privileges acquisition. In J.C.M. Baeten, J.K. Lenstra, J. Parrow, and G.J. Woeginger, editors, Proc. of International Colloquium on Automata, Languages and Programming (ICALP'03), number 2719 in Lectures Notes in Computer Science, pages 119-132. Springer-Verlag, 2003.
[ bib ]

muKlaim is a process language that permits programming distributed systems made up of several mobile components interacting through multiple distributed tuple spaces. We present the language and a type system for controlling the activities, e.g. access to resources and mobility, of the processes in a net. By dealing with privileges acquisition, the type system enables dynamic variations of security policies. We exploit a combination of static and dynamic type checking, and of in-lined reference monitoring, to guarantee absence of run-time errors due to lack of privileges and state two type soundness results: one involves whole nets, the other is relative to subnets of larger nets.
[25] D. Gorla and R. Pugliese. Controlling data movement in global computing applications. In Proc. of the 2004 ACM Symposium on Applied Computing (SAC'04), Special Track on Programming Languages. ACM Press, 2004. to appear.
[ bib ]

We present a programming notation aiming at protecting the secrecy of both host and agent data in global computing applications. The approach exploits annotations with sets of node addresses, called regions. A datum can be annotated with a region that specifies the network nodes that are allowed to interact with it. Network nodes come equipped with two region annotations specifying the nodes that can send data and spawn processes over them. The language semantics guarantees that computation proceeds according to these region constraints. To minimize the overhead of runtime checks, a static compilation phase is exploited. The proposed approach is largely independent of a specific programming language; however, to put it in concrete form, here we focus on its integration within the process language muKlaim. We prove that in compiled muKlaim nets, data can be manipulated only by authorized users. We also give a more local formulation of this property, where only a subnet is compiled. Finally, we use our theory to model the secure behaviour of a UNIX-like multiuser system.
[26] Daniele Gorla and Rosario Pugliese. Enforcing security policies via types. sbmitted, 2002.
[ bib | .pdf ]

Security is a key issue for distributed systems/applications with code mobility, like, e.g., e-commerce and on-line bank transactions. In a scenario with code mobility, traditional solutions based on cryptography cannot deal with all security issues and additional mechanisms are necessary. In this paper, we present a flexible and expressive type system for security for a calculus of distributed and mobile processes. By using a combination of static and dynamic checks, type safety and well-typedness preservation can be guaranteed, thus enforcing specific security policies on the use of resources. The usefulness of our approach will be shown by modeling the simplified behaviour of a bank account management system.
[27] Daniele Gorla and Rosario Pugliese. Resource access and mobility control with dynamic privileges acquisition. sbmitted, 2002.
[ bib | .pdf ]

microKLAIM is a process language that permits programming distributed systems made up of several components interacting through multiple distributed tuple spaces. We present the language and a type system for controlling the activities, e.g. access to resources and mobility, of the processes in a net. By dealing with privileges acquisition and consumption, the type system enables dynamic variations of security policies. We exploit a combination of static and dynamic type checking, and of in-lined reference monitoring, to guarantee the absence of run-time errors due to lack of privileges and show two type safety results: one involves whole nets, the other is relative to subnets of larger nets.
[28] L.Bettini, V.Bono, R.De Nicola, G.Ferrari, D.Gorla, M.Loreti, E.Moggi, R.Pugliese, E.Tuosto, and B.Venneri. The klaim project: Theory and practice. In C. Priami, editor, Global Computing: Programming Environments, Languages, Security and Analysis of Systems, number 2874 in Lecture Notes in Computer Science. Springer-Verlag, 2003. to appear.
[ bib ]

Klaim (Kernel Language for Agents Interaction and Mobility) is an experimental language specifically designed to program distributed systems consisting of several mobile components that interact through multiple distributed tuple spaces. Klaim primitives allow programmers to distribute and retrieve data and processes to and from the nodes of a net. Moreover, localities are first-class citizens that can be dynamically created and communicated over the network. Components, both stationary and mobile, can explicitly refer and control the spatial structures of the network. This paper reports the experiences in the design and development of Klaim. Its main purpose is to outline the theoretical foundations of the main features of Klaim and its programming model. We also present a modal logic that permits reasoning about behavioural properties of systems and various type systems that help in controlling agents movements and actions. Extensions of the language in the direction of object oriented programming are also discussed together with the description of the implementation efforts which have lead to the current prototypes.
[29] F. Gadducci M. Boreale. Denotational testing semantics in coinductive form. In P. Vojtás B. Rovan, editor, Proc. of MFCS 2003, volume 2747 of Lecture Notes in Computer Science. Springer, 2003.
[ bib ]

Building on recent work by Rutten on coinduction and formal power series, we define a denotational semantics for the csp calculus and prove it fully abstract for testing equivalence. The proposed methodology allows for abstract definition of operators in terms of behavioural differential equations and for coinductive reasoning on them, additionally dispensing with continuous order-theoretic structures.
[30] M.Buscemi M. Boreale. Symbolic analysis of crypto-protocols based on modular exponentiation. In P. Vojtás B. Rovan, editor, Proc. of MFCS 2003, volume 2747 of Lecture Notes in Computer Science. Springer, 2003.
[ bib ]

Automatic methods developed so far for analysis of security protocols only model a limited set of cryptographic primitives (often, only encryption and concatenation) and abstract from low-level features of cryptographic algorithms. This paper is an attempt towards closing this gap. We propose a symbolic technique and a decision method for analysis of protocols based on modular exponentiation, such as Diffie-Hellman key exchange. We introduce a protocol description language along with its semantics. Then, we propose a notion of symbolic execution and, based on it, a verification method. We prove that the method is sound and complete with respect to the language semantics.
[31] Maria Grazia Buscemi Michele Boreale. Experimenting with sta, a tool for automatic analysis of cryptographic protocols. In Proc. of ACM Symposium on Applied Computing (SAC'02). ACM Press, 2002.
[ bib ]

We present STA (Symbolic Trace Analyzer), a tool for the analysis of security protocols. STA relies on symbolic techniques that avoid explicit construction of the whole, possibly infinite, state-space of protocols. This results in accurate protocol modeling, increased efficiency and more direct formalization, when compared to finite-state techniques. We illustrate the use of STA by analyzing two well-known protocols, asymmetric Needham Schroeder and Kerberos. We discuss the results of this analysis, and contrast them with previous work based on finite-state model checking.
[32] R. De Nicola and A. Labella. Nondeterministic regular expressions as solutions of equational systems. Theoretical Computer Science, 302(1-3):179-189, 2003.
[ bib ]

This file has been generated by bibtex2html 1.65