Skip to main content
Log in

safeDpi: a language for controlling mobile code

  • Original Article
  • Published:
Acta Informatica Aims and scope Submit manuscript

Abstract

safeDpi is a distributed version of the Picalculus, in which processes are located at dynamically created sites. Parametrised code may be sent between sites using so-called ports, which are essentially higher-order versions of Picalculus communication channels. A host location may protect itself by only accepting code which conforms to a given type associated to the incoming port.

We define a sophisticated static type system for these ports, which restrict the capabilities and access rights of any processes launched by incoming code. Dependent and existential types are used to add flexibility, allowing the behaviour of these launched processes, encoded as process types, to depend on the host's instantiation of the incoming code.

We also show that a natural contextually defined behavioural equivalence can be characterised coinductively, using bisimulations based on typed actions. The characterisation is based on the idea of knowledge acquisition by a testing environment and makes explicit some of the subtleties of determining equivalence in this language of highly constrained distributed code.

This is a preview of subscription content, log in via an institution to check access.

Access this article

Price excludes VAT (USA)
Tax calculation will be finalised during checkout.

Instant access to the full article PDF.

Similar content being viewed by others

References

  1. Boreale, M., Sangiorgi, D.: Bisimulation in name-passing calculi without matching. In Proceedings of 13th LICS Conf, IEEE Computer Society Press (1998)

  2. Cardelli, L., Ghelli, G., Gordon, A.: Ambient groups and mobility types. In Proceedings of IFIP TCS 2000, vol. 1872 of Lecture Notes in Computer Science, Springer-Verlag (2000)

  3. Cardelli, L., Gordon, A.: Mobile ambients. In Proceedings of FoSSaCS '98, LNCS, Springer-Verlag (1998)

  4. Castagna, G., Nardelli, F.Z.: The Seal calculus revisited: Contextual equivalences and bisimilarity. In Proceedings of FSTTCS, Lecture Notes in Computer Science (2002)

  5. Castagna, G., Vitek, J., Zappa, F.: The Seal calculus. Available from ftp://ftp.di.ens.fr/pub/users/castagna/seal.ps.gz.

  6. Fournet, C., Gonthier, G., Levy, J.-J., Maranget, L., Remy, D.: A calculus of mobile agents. In Proceedings of CONCUR, vol. 1119 of Lecture notes in computer science, Springer-Verlag (1996)

  7. Hennessy, M., Merro, M.: Bisimulation congruences in safe ambients. In Proceedings of POPL 02, ACM Press (2002)

  8. Hennessy, M., Merro, M., Rathke, J.: Towards a behavioural theory of access and mobility control in distributed systems. Theoretical Computer Science 322, 615–669 (2003)

    MathSciNet  Google Scholar 

  9. Hennessy, M., Rathke, J.: Typed behavioural equivalences for processes in the presence of subtyping. Mathematical Structures in Computer Science 14, 651–684 (2004)

    Article  MathSciNet  Google Scholar 

  10. Hennessy, M., Riely, J.: Resource access control in systems of mobile agents. Information and Computation 173, 82–120 (2002)

    Article  MathSciNet  Google Scholar 

  11. Honda, K., Yoshida, N.: On reduction-based process semantics. Theoretical Computer Science 152(2), 437–486 (1995)

    MathSciNet  Google Scholar 

  12. Igarashi, A., Kobayashi, N.: Resource usage analysis. In Proceedings of ACM Symposium on Principles of Programming Languages (POPL'02), pp. 331–342 (2002)

  13. Jeffrey, A., Rathke, J.: Contextual equivalence for higher-order π-calculus revisited. In Proceedings MFPS XIX, Montreal (2003)

  14. Lhoussaine, C.: Type inference for a distributed pi-calculus. In ESOP'02, vol. 2618 of LNCS, Springer-Verlag, pp. 253–269 (2002)

  15. Merro, M., Nardelli, F.Z.: Bisimulation proof techniques for mobile ambients. In Proceedings of 30th International Colloquium on Automata, Languages, and Programming (ICALP 2003), Eindhoven, Lecture Notes in Computer Science, Springer-Verlag, 2003

  16. Merro, M., Sassone, V.: Typing and subtyping mobility in boxed ambients. In Proceedings CONCUR 02, vol. 1644 of Lecture Notes in Computer Science, Springer-Verlag (2002)

  17. Morrisett, G., Crary, K., Glew, N., Walker, D.: Stack-based typed assembly language. In Types in Compilation, vol. 1473 of Lecture notes in Computer Science, Springer-Verlag, pp. 25–35 (1998)

  18. Necula, G.C.: Proof-carrying code. In Conference Record of POPL'97: The 24th ACM SIGPLAN-SIGACT Symposium on Principles of Program- ming Languages (Paris, France), pp. 106–119 (1997)

  19. Pierce, B., Sangiorgi, D.: Behavioral equivalence in the polymorphic pi-calculus. Journal of the ACM 47(3), 531–584, (2000)

    Article  MathSciNet  Google Scholar 

  20. Riely, J., Hennessy, M.: Trust and partial typing in open systems of mobile agents. Journal of Automated Reasoning 31, 335–370 (2003)

    Article  MathSciNet  Google Scholar 

  21. Sangiorgi, D., Walker, D.: The π-calculus. Cambridge University Press (2001)

  22. Schmitt, A., Stefani, J.-B.: The M-calculus: A higher-order distributed process calculus. In POPL2003 (2003)

  23. Walker, D.: A type system for expressive security properties. In the twenty seventh ACM SIGPLAN-SIGACT Symposium on Principles of Programming Languages, Boston, pp. 254–267 (2000)

  24. Yoshida, N.: Channel dependent types for higher-order mobile processes. In Conference Record of POPL '04: The 24th ACM SIGPLAN-SIGACT Sym- posium on Principles of Programming Languages, Venice, Italy (2004)

  25. Yoshida, N., Hennessy, M.: Subtyping and locality in distributed higher order processes. In Proceedings of CONCUR, vol. 1664 of Lecture notes in computer science, Springer-Verlag (1999)

  26. Yoshida, N., Hennessy, M.: Assigning types to processes. Information and Computation 172, 82–120 (2002)

    MathSciNet  Google Scholar 

Download references

Author information

Authors and Affiliations

Authors

Corresponding author

Correspondence to Matthew Hennessy.

Rights and permissions

Reprints and permissions

About this article

Cite this article

Hennessy, M., Rathke, J. & Yoshida, N. safeDpi: a language for controlling mobile code. Acta Informatica 42, 227–290 (2005). https://doi.org/10.1007/s00236-005-0178-y

Download citation

  • Received:

  • Published:

  • Issue Date:

  • DOI: https://doi.org/10.1007/s00236-005-0178-y

Keywords

Navigation