A domain-specific approach to architecturing error handling in pervasive computing

The challenging nature of error handling constantly escalates as a growing number of environments consists of networked devices and software components. In these environments, errors cover a uniquely large spectrum of situations related to each layer ranging from hardware to distributed platforms, to software components. Handling errors becomes a daunting task for programmers, whose outcome is unpredictable. Scaling up error handling requires to raise the level of abstraction beyond the code level and the try-catch construct, approaching error handling at the software architecture level. We propose a novel approach that relies on an Architecture Description Language (ADL), which is extended with error-handling declarations. To further raise the level of abstraction, our approach revolves around a domain-specific architectural pattern commonly used in pervasive computing. Error handling is decomposed into components dedicated to platform-wide, error-recovery strategies. At the application level, descriptions of functional components include declarations dedicated to error handling. We have implemented a compiler for an ADL extended with error-handling declarations. It produces customized programming frameworks that drive and support the programming of error handling. Our approach has been validated with a variety of applications for building automation.

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

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

[3]  Robert Grimm,et al.  One.world: experiences with a pervasive computing architecture , 2004, IEEE Pervasive Computing.

[4]  Cristina V. Lopes,et al.  A study on exception detection and handling using aspect-oriented programming , 2000, Proceedings of the 2000 International Conference on Software Engineering. ICSE 2000 the New Millennium.

[5]  Brian Demsky,et al.  Bristlecone: A Language for Robust Software Systems , 2008, ECOOP.

[6]  Damien Cassou,et al.  A generative programming approach to developing pervasive computing systems , 2009, GPCE '09.

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

[8]  Cristina V. Lopes,et al.  Aspect-oriented programming , 1999, ECOOP Workshops.

[9]  Leslie Lamport,et al.  The Byzantine Generals Problem , 1982, TOPL.

[10]  David M. Booth,et al.  Web Services Architecture , 2004 .

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

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

[13]  David Garlan,et al.  A formal basis for architectural connection , 1997, TSEM.

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

[15]  Jessie Dedecker,et al.  Ambient-Oriented Exception Handling , 2006, Advanced Topics in Exception Handling Techniques.

[16]  Anne-Marie Kermarrec,et al.  The many faces of publish/subscribe , 2003, CSUR.

[17]  Jessie Dedecker,et al.  Ambient-Oriented Exception Handling (DRAFT) ? , 2006 .

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

[19]  Anand Ranganathan,et al.  Towards fault tolerance pervasive computing , 2005, IEEE Technology and Society Magazine.

[20]  Fernando Castor Filho,et al.  Specification of exception flow in software architectures , 2006, J. Syst. Softw..

[21]  Gregor Kiczales,et al.  Aspect-oriented programming , 2001, ESEC/FSE-9.

[22]  Richard N. Taylor,et al.  Software architecture: foundations, theory, and practice , 2009, 2010 ACM/IEEE 32nd International Conference on Software Engineering.

[23]  Gul A. Agha,et al.  ACTORS - a model of concurrent computation in distributed systems , 1985, MIT Press series in artificial intelligence.

[24]  David Gelernter,et al.  Generative communication in Linda , 1985, TOPL.

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

[26]  Terence Parr The Definitive ANTLR Reference: Building Domain-Specific Languages , 2007 .

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

[28]  David C. Luckham,et al.  An Event-Based Architecture Definition Language , 1995, IEEE Trans. Software Eng..

[29]  Eduardo Figueiredo,et al.  EJFlow: taming exceptional control flows in aspect-oriented programming , 2008, AOSD.

[30]  Armando Fox,et al.  Portability, extensibility and robustness in iROS , 2003, Proceedings of the First IEEE International Conference on Pervasive Computing and Communications, 2003. (PerCom 2003)..

[31]  Ramnivas Laddad,et al.  Aspectj in Action: Practical Aspect-Oriented Programming , 2003 .

[32]  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.

[33]  I. Melzer Web Services Description Language , 2010 .

[34]  Theo D'Hondt,et al.  Ambient-oriented programming in ambientTalk , 2005, OOPSLA '05.