A generative programming approach to developing pervasive computing systems

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.

[1]  A. Watson,et al.  OMG (Object Management Group) architecture and CORBA (common object request broker architecture) specification , 2002 .

[2]  Torbjörn Ekman,et al.  The JastAdd system - modular extensible compiler construction , 2007, Sci. Comput. Program..

[3]  David Notkin,et al.  Language Support for Connector Abstractions , 2003, ECOOP.

[4]  Wilfried Jouve,et al.  DiaSim: A parameterized simulator for pervasive computing applications , 2009, 2009 6th Annual International Mobile and Ubiquitous Systems: Networking & Services, MobiQuitous.

[5]  Steve Vestal,et al.  Domain-Specific Software Architectures for Guidance, Navigation and Control , 1996, Int. J. Softw. Eng. Knowl. Eng..

[6]  Jevgeni Kabanov,et al.  Embedded typesafe domain specific languages for Java , 2008, PPPJ '08.

[7]  Robert A. Riemenschneider,et al.  Introduction to SADL 1.0: A Language for Specifying Software Architecture Hierarchies , 1997 .

[8]  Massachusett Framingham,et al.  The Common Object Request Broker: Architecture and Specification Version 3 , 2003 .

[9]  David Notkin,et al.  ArchJava: connecting software architecture to implementation , 2002, ICSE '02.

[10]  Gregory D. Abowd,et al.  A Conceptual Framework and a Toolkit for Supporting the Rapid Prototyping of Context-Aware Applications , 2001, Hum. Comput. Interact..

[11]  Petteri Nurmi,et al.  A Generic Large Scale Simulator for Ubiquitous Computing , 2006, 2006 Third Annual International Conference on Mobile and Ubiquitous Systems: Networking & Services.

[12]  Eric Van Wyk,et al.  Attribute Grammar-Based Language Extensions for Java , 2007, ECOOP.

[13]  C LuckhamDavid,et al.  Specification and Analysis of System Architecture Using Rapide , 1995 .

[14]  Sun Microsystems,et al.  RPC: Remote Procedure Call Protocol specification: Version 2 , 1988, RFC.

[15]  Charles Consel,et al.  A Parameterized Simulator for Pervasive Computing Applications , 2009 .

[16]  Robert J. Allen A formal approach to software architecture , 1997 .

[17]  Raj Srinivasan,et al.  RPC: Remote Procedure Call Protocol Specification Version 2 , 1995, RFC.

[18]  Ralph Johnson,et al.  design patterns elements of reusable object oriented software , 2019 .

[19]  Mark Handley,et al.  SIP: Session Initiation Protocol , 1999, RFC.

[20]  Mary Shaw,et al.  Abstractions for Software Architecture and Tools to Support Them , 1995, IEEE Trans. Software Eng..

[21]  João Costa Seco,et al.  A Basic Model of Typed Components , 2000, ECOOP.

[22]  Matthew MacDonald,et al.  Web Services Architecture , 2004 .

[23]  Klara Nahrstedt,et al.  A Middleware Infrastructure for Active Spaces , 2002, IEEE Pervasive Comput..

[24]  David Garlan,et al.  A Formal Approach to Software Architectures , 1992, IFIP Congress.

[25]  Vugranam C. Sreedhar,et al.  Mixin'Up components , 2002, ICSE '02.

[26]  Richard N. Taylor,et al.  A Classification and Comparison Framework for Software Architecture Description Languages , 2000, IEEE Trans. Software Eng..

[27]  Roger Sessions COM and DCOM - Microsoft's vision for distributed objects , 1997 .

[28]  Anneli Folkesson,et al.  Java RMI (Remote Method Invocation) , 2005 .

[29]  Julia L. Lawall,et al.  Pantaxou: a domain-specific language for developing safe coordination services , 2008, GPCE '08.

[30]  Mirina Grosz,et al.  World Wide Web Consortium , 2010 .

[31]  Roy H. Campbell,et al.  Olympus: A High-Level Programming Model for Pervasive Computing Environments , 2005, Third IEEE International Conference on Pervasive Computing and Communications.

[32]  Walter Mann,et al.  Correction to "Specification and Analysis of System Architecture Using Rapide" , 1995, IEEE Trans. Software Eng..

[33]  David Garlan,et al.  Acme: architectural description of component-based systems , 2000 .

[34]  Jeff Magee,et al.  Dynamic structure in software architectures , 1996, SIGSOFT '96.