Distributed Abstract Data Types

  • Gian Pietro Picco
  • Matteo Migliavacca
  • Amy L. Murphy
  • Gruia-Catalin Roman
Part of the Lecture Notes in Computer Science book series (LNCS, volume 4276)


In this paper we introduce the concept of Distributed Abstract Data Type (dadt), a new programming model simplifying the development of distributed, context-aware applications. A dadt instance logically encapsulates a collection of adt instances distributed throughout the system. dadt operations specify the semantics of access to this distributed state by using dedicated programming constructs. The scope of these operations can be restricted using dadt views, i.e., projections over the target adt instances, defined declaratively and dynamically based on adt properties. Interestingly, dadt constructs can be used to deal not only with application data, but also with the space where it resides. This leads to a uniform treatment of the data and space concerns, simplifying the development of context-aware applications and providing the programmer with considerable flexibility and expressive power. We argue that dadts are amenable to incorporation in existing object-oriented programming languages, as demonstrated by our prototype implementation.


Virtual Network View Object Abstract Data Type Abstract Syntax Tree Place Operation 
These keywords were added by machine and not by the authors. This process is experimental and the keywords may be updated as the learning algorithm improves.


Unable to display preview. Download preview PDF.

Unable to display preview. Download preview PDF.


  1. 1.
    ANTLR Web page:
  2. 2.
    Borcea, C., Intanagonwiwat, C., Kang, P., Kremer, U., Iftode, L.: Spatial programming using smart messages: Design and implementation. In: Proc. of the 24th Int. Conf. on Distributed Computing Systems (ICDCS) (March 2004)Google Scholar
  3. 3.
    Chien, A.A., Dally, W.J.: Concurrent Aggregates (CA). In: Proc. of the Symp. on Principles & practice of parallel programming, pp. 187–196 (1990)Google Scholar
  4. 4.
    Fuggetta, A., Picco, G.P., Vigna, G.: Understanding Code Mobility. IEEE Trans. on Soft. Eng. 24(5) (1998)Google Scholar
  5. 5.
    Goodeve, D.M., et al.: Toward a model for shared data abstraction with performance. J. of Parallel and Distributed Computing 49(1), 156–167 (1998)MATHCrossRefGoogle Scholar
  6. 6.
    Jul, E., Levy, H., Hutchinson, N., Black, A.: Fine-grained Mobility in the Emerald System. ACM Trans. on Computer Systems 6(2), 109–133 (1988)CrossRefGoogle Scholar
  7. 7.
    Julien, C., Roman, G.-C.: Active Coordination in Ad Hoc Networks. In: Proc. of COORDINATION (2004)Google Scholar
  8. 8.
    Picco, G.P., Murphy, A.L., Roman, G.-C.: Lime: Linda Meets Mobility. In: Proc. of the Int. Conf. on Software Engineering, pp. 368–377 (May 1999)Google Scholar
  9. 9.
    Ni, Y., Kremer, U., Stere, A., Iftode, L.: Programming ad-hoc networks of mobile and resource-constrained devices. In: Proc. of the ACM SIGPLAN Conf. on Programming language design and implementation (PLDI) (2005)Google Scholar
  10. 10.
    Picco, G.P., Migliavacca, M., Murphy, A.L., Roman, G.-C.: Distributed Abstract Data Types. Technical report, Politecnico di Milano (2004), Available at:
  11. 11.
    Schwartz, J.T., et al.: Programming with sets; an introduction to SETL. Springer, Heidelberg (1986)MATHGoogle Scholar
  12. 12.
    Studman, M., et al.: Java 1.5 Grammar,

Copyright information

© Springer-Verlag Berlin Heidelberg 2006

Authors and Affiliations

  • Gian Pietro Picco
    • 1
  • Matteo Migliavacca
    • 1
  • Amy L. Murphy
    • 2
  • Gruia-Catalin Roman
    • 3
  1. 1.Dip. di Elettronica e Informazione, Politecnico di MilanoItaly
  2. 2.Faculty of InformaticsUniversity of LuganoSwitzerland
  3. 3.Dept. of Computer Science and EngineeringWashington Univ. in St. LouisUSA

Personalised recommendations