skip to main content
10.1145/1621607.1621629acmconferencesArticle/Chapter ViewAbstractPublication PagesgpceConference Proceedingsconference-collections
research-article

A generative programming approach to developing pervasive computing systems

Published:04 October 2009Publication History

ABSTRACT

Developing pervasive computing applications is a difficult task because it requires to deal with a wide range of issues: heterogeneous devices, entity distribution, entity coordination, low-level hardware knowledge. . . Besides requiring various areas of expertise, programming such applications involves writing a lot of administrative code to glue technologies together and to interface with both hardware and software components.

This paper proposes a generative programming approach to providing programming, execution and simulation support dedicated to the pervasive computing domain. This approach relies on a domain-specific language, named DiaSpec, dedicated to the description of pervasive computing systems. Our generative approach factors out features of distributed systems technologies, making DiaSpec-specified software systems portable.

The DiaSpec compiler is implemented and has been used to generate dedicated programming frameworks for a variety of pervasive computing applications, including detailed ones to manage the building of an engineering school.

References

  1. Jonathan Aldrich, Craig Chambers, and David Notkin. ArchJava: connecting software architecture to implementation. In ICSE '02: Proceedings of the 24th International Conference on Software Engineering, pages 187--197, New York, NY, USA, 2002. ACM. ISBN 1-58113-472-X. doi: 10.1145/581339.581365. Google ScholarGoogle ScholarDigital LibraryDigital Library
  2. Jonathan Aldrich, Vibha Sazawal, Craig Chambers, and David Notkin. Language support for connector abstractions. In Luca Cardelli, editor, Proceedings ECOOP 2003, volume 2743 of Lecture Notes in Computer Science, pages 74--102, Darmstadt, Germany, 2003. Springer. doi: 10.1007/b11832. URL http://dblp.uni-trier.de/rec/bibtex/conf/ecoop/AldrichSCN03.Google ScholarGoogle Scholar
  3. Robert J. Allen. A Formal Approach to Software Architecture. Ph.D. thesis, School of Computer Science, Carnegie Mellon University, Pittsburgh, PA, USA, May 1997. URL http://www.cs.cmu.edu/afs/cs/project/able/www/paper_abstracts/rallen_thesis.htm. Google ScholarGoogle ScholarDigital LibraryDigital Library
  4. Pam Binns, Matt Engelhart, Mike Jackson, and Steve Vestal. Domainspecific software architectures for guidance, navigation, and control. International Journal of Software Engineering and Knowledge Engineering, 6(2):201--227, 1996. doi: 10.1142/S0218194096000107.Google ScholarGoogle ScholarCross RefCross Ref
  5. Julien Bruneau, Wilfried Jouve, and Charles Consel. Diasim, a parameterized simulator for pervasive computing applications. In Proceedings of the 6th International Conference on Mobile and Ubiquitous Systems: Computing, Networking and Services (Mobiquitous'09), Toronto, CAN, jul 2009. ICST/IEEE.Google ScholarGoogle Scholar
  6. World Wide Web Consortium. Web services architecture, 2004. http://www.w3.org/TR/ws-arch/.Google ScholarGoogle Scholar
  7. Anind K. Dey, Gregory D. Abowd, and Daniel Salber. A conceptual framework and a toolkit for supporting the rapid prototyping of contextaware applications. Human-Computer Interaction, 16(2):97--166, 2001. ISSN 0737-0024. Google ScholarGoogle ScholarDigital LibraryDigital Library
  8. Troy Bryan Downing. Java RMI: Remote Method Invocation. IDG Books Worldwide, Inc., Foster City, CA, USA, 1998. ISBN 0764580434. Google ScholarGoogle ScholarDigital LibraryDigital Library
  9. Torbjörn Ekman and Görel Hedin. The JastAdd system - modular extensible compiler construction. Science of Computer Programming, 69(1-3): 14--26, 2007. ISSN 0167-6423. doi: 10.1016/j.scico.2007.02.003. Google ScholarGoogle ScholarDigital LibraryDigital Library
  10. Erich Gamma, Richard Helm, Ralph Johnson, and John Vlissides. Design Patterns: Elements of Reusable Object-Oriented Software. Addison Wesley, Reading, Mass., 1995. ISBN 0-201-63361-2-(3). Google ScholarGoogle ScholarDigital LibraryDigital Library
  11. David Garlan, Robert T. Monroe, and David Wile. Acme: Architectural description of component-based systems. In Gary T. Leavens and Murali Sitaraman, editors, Foundations of Component-Based Systems, chapter 3, pages 47--67. Cambridge University Press, New York, NY, USA, 2000. Google ScholarGoogle ScholarDigital LibraryDigital Library
  12. Jevgeni Kabanov and Rein Raudjärv. Embedded typesafe domain specific languages for Java. In PPPJ '08: Proceedings of the 6th international symposium on Principles and Practice of Programming in Java, pages 189--197, New York, NY, USA, 2008. ACM. ISBN 978-1-60558-223-8. doi: 10.1145/1411732.1411758. Google ScholarGoogle ScholarDigital LibraryDigital Library
  13. David C. Luckham, John L. Kenney, Larry M. Augustin, James Vera, Doug Bryan, and Walter Mann. Specification and Analysis of System Architecture Using Rapide. IEEE Transactions on Software Engineering, 21(4):336--355, April 1995. URL ftp://pavg.stanford.edu/pub/Rapide-1.0/tse94.ps.Z. Google ScholarGoogle ScholarDigital LibraryDigital Library
  14. Jeff Magee and Jeff Kramer. Dynamic structure in software architectures. In SIGSOFT '96: Proceedings of the 4th ACM SIGSOFT symposium on Foundations of software engineering, pages 3--14, San Francisco, CA, USA, 1996. ACM. ISBN 0-89791-797-9. doi: 10.1145/239098.239104. Google ScholarGoogle ScholarDigital LibraryDigital Library
  15. Miquel Martin and Petteri Nurmi. A generic large scale simulator for ubiquitous computing. In Third Annual International Conference on Mobile and Ubiquitous Systems: Networking&Services, 2006 (MobiQuitous 2006), San Jose, CA, USA, July 2006. IEEE Computer Society. doi: 10.1109/MOBIQ.2006.340388. Poster.Google ScholarGoogle ScholarCross RefCross Ref
  16. Nenad Medvidovic and Richard N. Taylor. A classification and comparison framework for software architecture description languages. IEEE Transactions on Software Engineering, 26(1):70--93, 2000. ISSN 0098-5589. doi: 10.1109/32.825767. Google ScholarGoogle ScholarDigital LibraryDigital Library
  17. Julien Mercadal, Nicolas Palix, Charles Consel, and Julia Lawall. Pantaxou: a domain-specific language for developing safe coordination services. In Proceedings of the Seventh International Conference on Generative Programming and Component Engineering (GPCE), pages 149--160, Nashville, TN, USA, October 2008. Acm Press. doi: 10.1145/1449913.1449936. Google ScholarGoogle ScholarDigital LibraryDigital Library
  18. Mark Moriconi and Robert A. Riemenschneider. Introduction to SADL 1.0: A language for specifying software architecture hierarchies. Sri-csl-97-01, SRI International, mar 1997.Google ScholarGoogle Scholar
  19. OMG. The common object request broker: Architecture and specification. Technical Report 2.0, Object Management Group, 1995.Google ScholarGoogle Scholar
  20. Anand Ranganathan, Shiva Chetan, Jalal Al-Muhtadi, Roy H. Campbell, and M. Dennis Mickunas. Olympus: A high-level programming model for pervasive computing environments. In PERCOM '05: Proceedings of the Third IEEE International Conference on Pervasive Computing and Communications, pages 7--16, Washington, DC, USA, 2005. IEEE Computer Society. ISBN 0-7695-2299-8. doi: 10.1109/PERCOM.2005.26. Google ScholarGoogle ScholarDigital LibraryDigital Library
  21. Manuel Román, Christopher Hess, Renato Cerqueira, Anand Ranganathan, Roy H. Campbell, and Klara Nahrstedt. A middleware infrastructure for active spaces. IEEE Pervasive Computing, 1(4):74--83, 2002. ISSN 1536-1268. doi: 10.1109/MPRV.2002.1158281. Google ScholarGoogle ScholarDigital LibraryDigital Library
  22. Jonathan Rosenberg, Henning Schulzrinne, Gonzalo Camarillo, Alan Johnston, Jon Peterson, Robert Sparks, Mark Handley, and Eve Schooler. SIP: Session Initiation Protocol. Technical report, RFC 3261, August 2002. http://www.ietf.org/rfc/rfc3261.txt.Google ScholarGoogle Scholar
  23. João Costa Seco and Luís Caires. A basic model of typed components. In ECOOP '00: Proceedings of the 14th European Conference on Object-Oriented Programming, pages 108--128, London, United Kingdom, 2000. Springer-Verlag. ISBN 3-540-67660-0. doi: 10.1007/3-540-45102-1_6. Google ScholarGoogle ScholarDigital LibraryDigital Library
  24. Roger Sessions. COM and DCOM: Microsoft's vision for distributed objects. John Wiley&Sons, Inc., New York, NY, USA, 1998. ISBN 0-471-19381-X. Google ScholarGoogle ScholarDigital LibraryDigital Library
  25. Mary Shaw, Robert DeLine, Daniel V. Klein, Theodore L. Ross, David M. Young, and Gregory Zelesnik. Abstractions for software architecture and tools to support them. IEEE Transactions on Software Engineering, 21(4):314--335, April 1995. ISSN 0098--5589. doi: 10.1109/32.385970. Google ScholarGoogle ScholarDigital LibraryDigital Library
  26. Vugranam C. Sreedhar. Mixin'up components. In ICSE '02: Proceedings of the 24th International Conference on Software Engineering, pages 198--207, New York, NY, USA, 2002. ACM. ISBN 1-58113-472-X. doi: 10.1145/581339.581366. Google ScholarGoogle ScholarDigital LibraryDigital Library
  27. Sun Microsystem. RPC: Remote procedure call protocol specification, version 2. Technical report, Sun Microsystem, 1988.Google ScholarGoogle Scholar
  28. Eric. Van Wyk, Lijesh Krishnan, Derek Bodin, and August Schwerdfeger. Attribute Grammar-Based Language Extensions for Java. Lecture Notes in Computer Science, 4609:575, 2007. Google ScholarGoogle ScholarDigital LibraryDigital Library
  29. X10. Standard and extended x10 code protocol, 1993. URL http://software.x10.com/pub/manuals/xtdcode.pdf.Google ScholarGoogle Scholar

Index Terms

  1. A generative programming approach to developing pervasive computing systems

                Recommendations

                Comments

                Login options

                Check if you have access through your login credentials or your institution to get full access on this article.

                Sign in
                • Published in

                  cover image ACM Conferences
                  GPCE '09: Proceedings of the eighth international conference on Generative programming and component engineering
                  October 2009
                  194 pages
                  ISBN:9781605584942
                  DOI:10.1145/1621607
                  • General Chair:
                  • Jeremy Siek,
                  • Program Chair:
                  • Bernd Fischer
                  • cover image ACM SIGPLAN Notices
                    ACM SIGPLAN Notices  Volume 45, Issue 2
                    GPCE '09
                    February 2010
                    182 pages
                    ISSN:0362-1340
                    EISSN:1558-1160
                    DOI:10.1145/1837852
                    Issue’s Table of Contents

                  Copyright © 2009 ACM

                  Publisher

                  Association for Computing Machinery

                  New York, NY, United States

                  Publication History

                  • Published: 4 October 2009

                  Permissions

                  Request permissions about this article.

                  Request Permissions

                  Check for updates

                  Qualifiers

                  • research-article

                  Acceptance Rates

                  GPCE '09 Paper Acceptance Rate18of62submissions,29%Overall Acceptance Rate56of180submissions,31%

                PDF Format

                View or Download as a PDF file.

                PDF

                eReader

                View online with eReader.

                eReader
                About Cookies On This Site

                We use cookies to ensure that we give you the best experience on our website.

                Learn more

                Got it!