Abstract
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.
- ]]Portland pattern repository, 1995. URL http://c2.com/cgi/wiki?ExceptionPatterns.Google Scholar
- ]]G. Agha. Actors: a Model of Concurrent Computation in Distributed Systems. MIT Press, Cambridge, MA, USA, 1986. ISBN 0-262-01092-5. Google Scholar
Digital Library
- ]]R. Allen and D. Garlan. A formal basis for architectural connection. ACM Tansactions on Software Engineering and Methodology, 6 (3): 213--249, 1997. ISSN 1049-331X. 10.1145/258077.258078. Google Scholar
Digital Library
- ]]J. Bruneau, W. Jouve, and C. Consel. DiaSim, a parameterized simulator for pervasive computing applications. In Proceedings of the 6th IEEE International Conference on Mobile and Ubiquitous Systems: Computing, Networking and Services (Mobiquitous '09), Toronto, CAN, jul 2009. ICST/IEEE.Google Scholar
- ]]N. Cacho, F. C. Filho, A. Garcia, and E. Figueiredo. EJFlow: Taming exceptional control flows in aspect-oriented programming. In Proceedings of the 7th International Conference on Aspect-Oriented Software Development (AOSD '08), pages 72--83, New York, NY, USA, 2008. ACM Press. ISBN 978-1-60558-044-9. 10.1145/1353482.1353492. Google Scholar
Digital Library
- ]]sou et al.(2009)Cassou, Bertran, Loriant, and Consel}CASSOU:2009:INRIA-00405819:1D. Cassou, B. Bertran, N. Loriant, and C. Consel. A generative programming approach to developing pervasive computing systems. In Proceedings of the 8th International Conference on Generative Programming and Component Engineering (GPCE '09), pages 137--146, Denver, CO, USA, 2009. ACM Press. 10.1145/1621607.1621629. Google Scholar
Digital Library
- ]]S. Chetan, A. Ranganathan, and R. Campbell. Towards Fault Tolerant Pervasive Computing. IEEE Technology and Society Magazine, 24 (1): 38--44, 2005.Google Scholar
Cross Ref
- ]]E. Christensen, F. Curbera, G. Meredith, and S. Weerawarana. Web Services Description Language (WSDL) 1.1, 2001.Google Scholar
- ]]W. W. W. Consortium. Web services architecture, 2004. URL http://www.w3.org/TR/ws-arch/.Google Scholar
- ]]J. Dedecker, T. V. Cutsem, S. Mostinckx, T. D'Hondt, and W. De Meuter. Ambient-oriented programming in AmbientTalk. In Proceedings of the 20th European Conference on Object-Oriented Programming (ECOOP '06), pages 230--254, Berlin, Heidelberg, 2006. Springer-Verlag. ISBN 3-540-35726-2. Google Scholar
Digital Library
- ]]B. Demsky and A. Dash. Bristlecone: A language for robust software systems. In Proceedings of the 22nd European Conference on Object-Oriented Programming (ECOOP '08), pages 490--515, Berlin, Heidelberg, 2008. Springer-Verlag. ISBN 978-3-540-70591-8. Google Scholar
Digital Library
- ]]A. K. Dey, G. D. Abowd, and D. Salber. A conceptual framework and a toolkit for supporting the rapid prototyping of context-aware applications. Human-Computer Interaction, 16 (2): 97--166, 2001. ISSN 0737-0024. Google Scholar
Digital Library
- ]]T. B. Downing. Java RMI: Remote Method Invocation. IDG Books Worldwide, Inc., Foster City, CA, USA, 1998. ISBN 0764580434. Google Scholar
Digital Library
- ]]P. Eugster, P. A. Felber, R. Guerraoui, and A.-M. Kermarrec. The many faces of publish/subscribe. ACM Computer Survey, 35 (2): 114--131, 2003. ISSN 0360-0300. 10.1145/857076.857078. Google Scholar
Digital Library
- ]]F. C. Filho, P. H. Brito, and C. M. F. Rubira. Specification of exception flow in software architectures. Journal of Systems and Software, 79 (10): 1397--1418, 2006. 10.1016/j.jss.2006.02.060.Google Scholar
Cross Ref
- ]]D. Gelernter. Generative communication in Linda. ACM Transactions on Programming Languages and Systems, 7 (1): 80--112, 1985. ISSN 0164-0925. 10.1145/2363.2433. Google Scholar
Digital Library
- ]]G. Kiczales, J. Lamping, A. Mendhekar, C. Maeda, C. V. Lopes, J.-M. Loingtier, and J. Irwin. Aspect-oriented programming. In Proceedings of the 11th European Conference on Object-Oriented Programming (ECOOP '97), pages 220--242, 1997.Google Scholar
Cross Ref
- ]]R. Laddad. AspectJ in Action: Practical Aspect-Oriented Programming. Manning Publications Co., Greenwich, CT, USA, 2003. ISBN 1930110936. Google Scholar
Digital Library
- ]]L. Lamport, R. Shostak, and M. Pease. The Byzantine Generals problem. ACM Transactions on Programming Languages and Systems, 4 (3): 382--401, 1982. ISSN 0164-0925. 10.1145/357172.357176. Google Scholar
Digital Library
- ]]M. Lippert and C. V. Lopes. A study on exception detection and handling using aspect-oriented programming. In Proceedings of the 22nd International Conference on Software Engineering (ICSE '00), pages 418--427. ACM Press, 2000. Google Scholar
Digital Library
- ]]D. C. Luckham and J. Vera. An event-based architecture definition language. IEEE Transactions on Software Engineering, 21 (9): 717--734, Sept. 1995. 10.1109/32.464548. Google Scholar
Digital Library
- ]]J. Magee and J. Kramer. Dynamic structure in software architectures. Proceedings of the 4th ACM SIGSOFT Symposium on Foundations of Software Engineering (SIGSOFT '96), 21 (6): 3--14, 1996. ISSN 0163-5948. 10.1145/250707.239104. Google Scholar
Digital Library
- ]]S. Mostinckx, J. Dedecker, E. G. Boix, T. V. Cutsem, and W. D. Meuter. Ambient-oriented exception handling. In C. Dony, J. L. Knudsen, A. B. Romanovsky, and A. Tripathi, editors, Advanced Topics in Exception Handling Techniques, volume 4119 of Lecture Notes in Computer Science, pages 141--160. Springer, 2006. ISBN 3-540-37443-4. Google Scholar
Digital Library
- ]]OMG. The common Object Request Broker: Architecture and specification. Technical Report 2.0, Object Management Group, 1995.Google Scholar
- ]]T. Parr. The Definitive ANTLR Reference: Building Domain-Specific Languages. The Pragmatic Bookshelf, Raleigh, 2007. Google Scholar
Digital Library
- ]]S. R. Ponnekanti, B. Johanson, E. Kiciman, and A. Fox. Portability, extensibility and robustness in iROS. In Proceedings of the First IEEE International Conference on Pervasive Computing and Communications (PerCom '03), page 11, Washington, DC, USA, 2003. IEEE Computer Society. ISBN 0-7695-1893-1. Google Scholar
Digital Library
- ]]G. R. One.world: Experiences with a pervasive computing architecture. IEEE Pervasive Computing, 3 (3): 22--30, 2004. ISSN 1536-1268. 10.1109/MPRV.2004.1321024. Google Scholar
Digital Library
- ]]A. Ranganathan, S. Chetan, J. Al-Muhtadi, R. H. Campbell, and M. D. Mickunas. Olympus: A high-level programming model for pervasive computing environments. In Proceedings of the 3rd IEEE International Conference on Pervasive Computing and Communications (PerCom '05), pages 7--16, Washington, DC, USA, 2005. IEEE Computer Society. ISBN 0-7695-2299-8. 10.1109/PERCOM.2005.26. Google Scholar
Digital Library
- ]]et al.(2002)Román, Hess, Cerqueira, Ranganathan, Campbell, and Nahrstedt}gaiaM. Román, C. Hess, R. Cerqueira, A. Ranganathan, R. H. Campbell, and K. Nahrstedt. A middleware infrastructure for active spaces. IEEE Pervasive Computing, 1 (4): 74--83, 2002. ISSN 1536-1268. 10.1109/MPRV.2002.1158281. Google Scholar
Digital Library
- ]]J. Rosenberg, H. Schulzrinne, G. Camarillo, A. Johnston, J. Peterson, R. Sparks, M. Handley, and E. Schooler. SIP: Session Initiation Protocol. Technical report, RFC 3261, Aug. 2002. URL http://www.ietf.org/rfc/rfc3261.txt. Google Scholar
Digital Library
- ]]R. N. Taylor, N. Medvidovic, and E. M. Dashofy. Software Architecture: Foundations, Theory, and Practice. Wiley Publishing, 2009. ISBN 0470167742, 9780470167748. Google Scholar
Digital Library
Index Terms
A domain-specific approach to architecturing error handling in pervasive computing
Recommendations
A domain-specific approach to architecturing error handling in pervasive computing
OOPSLA '10: Proceedings of the ACM international conference on Object oriented programming systems languages and applicationsThe 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 ...
A domain-specific language for building self-optimizing AST interpreters
GPCE '14Self-optimizing AST interpreters dynamically adapt to the provided input for faster execution. This adaptation includes initial tests of the input, changes to AST nodes, and insertion of guards that ensure assumptions still hold. Such specialization ...
Development of internal domain-specific languages: design principles and design patterns
PLoP '11: Proceedings of the 18th Conference on Pattern Languages of ProgramsA great part of software development challenges can be solved by one universal tool: Abstraction. Developers solve development challenges by using expressions and concepts that abstract from too technical details. One especially supportive tool for ...







Comments