Personal and Ubiquitous Computing

, Volume 10, Issue 1, pp 21–27 | Cite as

UbiqStack: a taxonomy for a ubiquitous computing software stack

  • Martin Modahl
  • Bikash Agarwalla
  • T. Scott Saponas
  • Gregory Abowd
  • Umakishore Ramachandran
Original article


This paper describes a taxonomy for a ubiquitous computing software stack called UbiqStack. Through the lens of the UbiqStack taxonomy we survey a variety of subsystems designed to be the building blocks from which sophisticated infrastructures for ubiquitous computing are assembled. Our experience shows that many of these building blocks fit neatly into one of the five UbiqStack categories, each containing functionally-equivalent components. Effectively identifying the best-fit “Lego pieces”, which in turn determines the composite functionality of the resulting infrastructure, is critical. The selection process, however, is impeded by the lack of convention for labeling these classes of building blocks. The lack of clarity with respect to what ready-made subsystems are available within each class often results in naive re-implementation of ready-made components, monolithic and clumsy implementations, and implementations that impose non-standard interfaces onto the applications above. This paper describes the UbiqStack classes of subsystems and explores each in light of the experience gained over 2 years of active development of both ubiquitous computing applications and software infrastructures for their deployment.



We would like to acknowledge Ilya Bagrak, Phillip Hutto and Matthew Wolenetz for their help reviewing and revising this paper. The work has been funded in part by an NSF ITR grant CCR-01-21638, the Yamacraw project of the State of Georgia, the Georgia Tech Broadband Institute, and the PURA award from Georgia Tech.


  1. 1.
    Kidd CD, Orr R, Abowd GD, Atkeson CG, Essa IA, MacIntyre B, Mynatt ED, Starner T, Newstetter W (1999) The aware home: a living laboratory for ubiquitous computing research. In: Cooperative buildings, pp 191–198Google Scholar
  2. 2.
    Modahl M, Bagrak I, Wolenetz M, Hutto P, Ramachandran U (2004) MediaBroker: an architecture for pervasive computing. In: Proceedings of the 2nd IEEE international conference on pervasive computing and communicationsGoogle Scholar
  3. 3.
    Contributing Members of the UPnP(TM) Forum: Welcome to the UPnP(TM) Forum (2003) (March 1st, 2004)
  4. 4.
    Jiang X, Dong Y, Xu D, Bhargava B (2003) GnuStream: a p2p media streaming prototype. In: Proceedings of IEEE international conference on multimedia and expoGoogle Scholar
  5. 5.
    Adhikari S, Paul A, Ramachandran U (2002) D-Stampede: distributed programming system for ubiquitous computing. In: Proceedings of the 22nd international conference on distributed computing systems (ICDCS), ViennaGoogle Scholar
  6. 6.
    Satyanarayanan M, Kistler JJ, Kumar P, Okasaki ME, Siegel EH, Steere DC (1990) Coda: a highly available file system for a distributed workstation environment. IEEE Trans Comput 39:447–459CrossRefGoogle Scholar
  7. 7.
    Lehman TJ, McLaughry SW, Wycko P (1999) T Spaces: the next wave. In: HICSSGoogle Scholar
  8. 8.
    Goland YY, Cai T, Leach P, Gu Y (1999) IETF Internet draft: simple service discovery protocol/1.0 octGoogle Scholar
  9. 9.
    Bellwood et al (2002) UDDI Version 2.03 Data Structure ReferenceGoogle Scholar
  10. 10.
    Gudgin M, Lewis A, Schlimmer J (2004) W3C working draft: Web services description language (wsdl) version 2.0 part 2: message exchange patternsGoogle Scholar
  11. 11.
    Mockapetris PV (1989) RFC 1101: DNS encoding of network names and other typesGoogle Scholar
  12. 12.
    Terraserver.Com, Inc.: (2004) (March 1st 2004)
  13. 13.
    Salber D, Dey AK, Abowd GD (1999) The context Toolkit: aiding the development of context-enabled applications. In: CHI, pp 434–441Google Scholar
  14. 14.
    Ooi WT, Pletcher P, Rowe LA (2002) INDIVA: middleware for managing a distributed media environment. (BMRC Technical Note)Google Scholar
  15. 15.
    Anderson T, Dahlin M, Neefe J, Patterson D, Roselli D, Wang R (1995) Serverless network file systems. In: Proceedings of the 15th symposium on operating system principles, Copper Mountain Resort, Colorado, pp 109–126Google Scholar
  16. 16.
    Sun Microsystems: JavaSpace Specification (1998)Google Scholar
  17. 17.
    Foster I, Kesselman C, Tuecke S (2001) The anatomy of the grid: enabling scalable virtual organizations. In: Lecture Notes in Computer Science 2150Google Scholar
  18. 18.
    Foster I, Kesselman C, Nick J, Tuecke S (2002) The physiology of the grid: an open grid services architecture for distributed systems integration. Technical report, The Globus ProjectGoogle Scholar
  19. 19.
    Foster I, Kesselman C (1997) Globus: a metacomputing infrastructure toolkit. Int J Supercomput Appl High Performance Comput 11:115–128CrossRefGoogle Scholar
  20. 20.
    Forum MPI (1994) MPI: a message-passing interface standard. UT-CS-94-230 MPI ForumGoogle Scholar
  21. 21.
    Geist A, Beguelin A, Dongarra J, Jiang W, Manchek R, Sunderam V (1994) PVM parallel virtual machine, a user’s guide and tutorial for networked parallel computing. MIT Press, CambridgeGoogle Scholar
  22. 22.
    Calvanese D, Giacomo GD, Lenzerini M (2001) A framework for ontology integration. In: The first semantic Web working symposium, pp 303–316Google Scholar
  23. 23.
    Spyns P, Oberle D, Volz R, Zheng J, Jarrar M, Sure Y, Studer R, Meersman R (2002) OntoWeb—a semantic web community portal. In: Fourth international conference on practical aspects of knowledge management (PAKM)Google Scholar
  24. 24.
    Parker DB (2002) Computer security handbook. Wiley, New YorkGoogle Scholar
  25. 25.
    Zhou L, Haas ZJ (1999) Securing ad hoc networks. IEEE Netw 13:24–30CrossRefGoogle Scholar

Copyright information

© Springer-Verlag London Limited 2005

Authors and Affiliations

  • Martin Modahl
    • 1
    • 3
  • Bikash Agarwalla
    • 1
  • T. Scott Saponas
    • 2
  • Gregory Abowd
    • 1
  • Umakishore Ramachandran
    • 1
  1. 1.College of ComputingGeorgia Institute of TechnologyAtlantaUSA
  2. 2.Department of Computer ScienceUniversity of WashingtonSeattleUSA
  3. 3. CologneGermany

Personalised recommendations