skip to main content
10.1145/1960275.1960297acmconferencesArticle/Chapter ViewAbstractPublication PagesmodularityConference Proceedingsconference-collections
research-article

Applying dependability aspects on top of "aspectized" software layers

Published: 21 March 2011 Publication History

Abstract

Dynamic platforms where components can be loaded at runtime can introduce risks to applications stability if components are not previously known before deployment. It may be needed anyway to execute such untrustworthy code, even if it is not malicious. The OSGi platform presents such a scenario where components can be installed, started, stopped, updated or uninstalled during application execution. In this paper we describe how we introduced dependability and monitoring as crosscutting concerns in the OSGi platform for improving applications resistance to such risks. These concerns crosscut different software layers which are well defined in the OSGi specification but scattered over different places in the OSGi API. We also created a level of indirection by representing software layers as aspects, enhancing the API's modularity as well as reuse by avoiding redundant pointcut definitions. The dependability aspects helped us validating the layer aspect abstraction reuse. Since the aspects targeted the OSGi API, it was possible to weave our solution into distinct versions of three different OSGi implementations, namely Apache Felix, Equinox and Knopflerfish. We validate our approach on all of the woven platforms in a simulation of an RFID and sensor-based application that uses untrustworthy components.

References

[1]
Alonso, J., Torres, J. Grith, R., Kaiser, G. and Silva, L. Towards self-adaptable monitoring framework for self-healing. In Proc. of the 3rd CoreGrid Workshop on Middleware, June 2008.
[2]
Alves, V., Matos, P., Cole, L., Vasconcelos, A., Borba, P., and Ramalho, G. 2007. Extracting and evolving code in product lines with aspect-oriented programming. In Transactions on Aspect-Oriented Software Development IV, Lecture Notes In C. S., vol. 4640. Springer-Verlag, Berlin, Heidelberg, pp. 117--142.
[3]
Buschmann, F., Meunier, R., Rohnert, H., Sommerlad, P. and Stal, M. Pattern-Oriented Software Architecture: A System of Patterns. Wiley, 1996.
[4]
Candea, G., Kawamoto, S., Fujiki, Y., Friedman, G., and Fox, A. 2004. Microreboot - A technique for cheap recovery. In Proc. of the 6th Conference on Symposium on Operating Systems Design & Implementation - Vol. 6 (San Francisco, CA, Dec. 2004). Operating Systems Design and Implementation. USENIX Association, Berkeley, CA, 3--3.
[5]
Cervantes, H. and Hall, R. S. 2004. Autonomous Adaptation to Dynamic Availability Using a Service-Oriented Component Model. In Proc. of the 26th International Conference on Software Engineering (May 23 - 28, 2004). IEEE Computer Society, Washington, DC, 614--623.
[6]
Chan, H. and Chieu, T. C. 2003. An approach to monitor application states for self-managing (autonomic) systems. In Companion of the 18th Annual ACM SIGPLAN Conference on Object-Oriented Programming, Systems, Languages, and Applications (Anaheim, CA, USA, October 26 - 30, 2003). OOPSLA '03. ACM, New York, NY, 312--313.
[7]
Engel, M. and Freisleben, B. 2005. Supporting autonomic computing functionality via dynamic operating system kernel aspects. In Proc. of the 4th international Conference on Aspect-Oriented Software Development (AOSD). Chicago, Illinois, March 14 - 18, 2005. ACM, New York, NY, 51--62.
[8]
Escoffier, C., Hall, R.S. and Lalanda, P. 2007. iPOJO: an Extensible Service-Oriented Component Framework. In Proc. of the IEEE International Conference on Services Computing (July 09 - 13, 2007). IEEE Computer Society, Washington, DC, 474--481.
[9]
Filho, F. C., Garcia, A., and Rubira, C. M. 2007. Error handling as an aspect. In Proc. of the 2nd Workshop on Best Practices in Applying Aspect-Oriented Software Development. vol. 211. ACM, New York, NY, 1
[10]
Frei, A. and Alonso, G. 2005. A Dynamic Lightweight Platform for Ad-Hoc Infrastructures. In Proc. of the Third IEEE international Conference on Pervasive Computing and Communications (March 08 - 12, 2005). PERCOM. IEEE Computer Society, Washington, DC, 373--382.
[11]
Gama, K. and Donsez, D. 2008. Service Coroner: A Diagnostic Tool for Locating OSGi Stale References. In Proc. of the 34th Euromicro Conference Software Engineering and Advanced Applications (SEAA 2008). IEEE Computer Society, Washington, DC, 108--115.
[12]
Gama, K. and Donsez, D. 2008. A Practical Approach for Finding Stale References in a Dynamic Service Platform. In Proc. of the 11th Intl. Symposium on Component-Based Software Engineering (CBSE 2008). Lecture Notes In C. S., vol. 5282. Springer-Verlag, Berlin, Heidelberg, 246--261
[13]
Gama, K. and Donsez, D. 2009. Towards Dynamic Component Isolation in a Service Oriented Platform. In Proceedings of the 12th Intl. Symposium on Component-Based Software Eng. (CBSE 2009). Lecture Notes In C. S., vol. 5582. Springer-Verlag, Berlin, Heidelberg, 104--120
[14]
Gama, K. and Donsez, D. 2010. A Self-healing Component Sandbox for Untrustworthy Third-party Code Execution. In Proc. of the 13th Intl. Symposium on Component-Based Software Engineering (CBSE 2010). Lecture Notes In C.S., vol. 6092. Springer-Verlag, Berlin, Heidelberg.
[15]
Gamma, E., Helm, R., Johnson, R., and Vlissides, J. 1995 Design Patterns: Elements of Reusable Object-Oriented Software. Addison-Wesley Longman Publishing Co., Inc.
[16]
Gosling, J., Joy, B., Steele, G., Bracha, G.: The Java Language Specification 3rd Edition. pp. 330--331, Addison-Wesley, 2005
[17]
Greenwood, P. and Blair, L. Using Dynamic AOP to Implement an Autonomic System. In: Dynamic Aspects Workshop. 2004. Lancaster, UK.
[18]
Hall, R.S. A Policy-Driven Class Loader to Support Deployment in Extensible Frameworks. In Proc. of the International Working Conference on Component Deployment, pp 81--96. Springer, May 2004.
[19]
Hanenberg, S. and Unland, R. Using and reusing aspects in AspectJ. In Workshop on Advanced Separation of Concerns in Object-Oriented Systems, OOPSLA '2001, Oct. 2001.
[20]
Hanenberg, S., C. Oberschulte and R. Unland, Refactoring of aspect-oriented software. In Proc. of Net.ObjectDays Conference (NODe'03), 2003
[21]
Hilsdale, E. and Hugunin, J. 2004. Advice weaving in AspectJ. In Proc. of the 3rd international Conference on Aspect-Oriented Software Development. AOSD '04. ACM, New York, NY, 26--35
[22]
Irmert, F., Lauterwald, F., Bott, M., Fischer, T., and Meyer-Wegener, K. Integration of dynamic AOP into the OSGi service platform. In Proc. of the 2nd Workshop on Middleware-Application Interaction, vol. 306. ACM, 2008, New York, NY, 25--30.
[23]
Kephart, J. O. and Chess, D. M. 2003. The Vision of Autonomic Computing. Computer 36, 1 (Jan. 2003), 41--50
[24]
Keuler, T. and Kornev, Y. 2008. A light-weight load-time weaving approach for OSGi. In Proc. of the 2008 Workshop on Next Generation Aspect-oriented Middleware (Brussels, Belgium, 2008). NAOMI '08. ACM, New York, NY, 6--10.
[25]
Kon, F., Roman, M., Liu, P., Mao, J., Yamane, T., Magalhaes, L. and Campbell, R. 2000. "Monitoring, Security, and Dynamic Configuration with the dynamicTAO Reflective ORB," In Proc. of the Middleware 2000 Conference, ACM/IFIP.
[26]
Lippert, M. and Lopes, C. V. 2000. A study on exception detection and handling using aspect-oriented programming. In Proc. of the 22nd international Conference on Software Engineering. ICSE '00. ACM, New York, NY, 418--427.
[27]
Lippert, M. 2003. An AspectJ-enabled eclipse core runtime platform. In Companion of the 18th Annual ACM SIGPLAN Conference on Object-Oriented Programming, Systems, Languages, and Applications (OOPSLA), Anaheim, CA, USA, 2003. ACM, New York, NY, 322--323.
[28]
Lippert, M. 2004. AJEER: an AspectJ-enabled Eclipse runtime. In Companion To the 19th Annual ACM SIGPLAN Conference on Object-Oriented Programming Systems, Languages, and Applications (Vancouver, BC, CANADA, 2004). OOPSLA '04. ACM, New York, NY, 23--24.
[29]
Lippert, M. 2008. Aspect weaving for OSGi. In Companion To the 23rd ACM SIGPLAN Conference on Object-Oriented Programming Systems Languages and Applications (Nashville, TN, USA, October 19 - 23, 2008). OOPSLA Companion '08. ACM, New York, NY, 717--718.
[30]
Moraes, R., Barbosa, R., Duraes, J., Mendes, N., Martins, E., and Madeira, H. 2006. Injection of faults at component interfaces and inside the component code: are they equivalent?. In: 6th European Dependable Computing Conference. IEEE Computer Society, Washington, DC 53--64
[31]
OSGi Alliance. http://www.osgi.org
[32]
OSGi Service Platform Release 4 Version 4.2 Core Specification. http://www.osgi.org/Download/Release4V42
[33]
Papazoglou, M. P. 2003. Service-Oriented Computing: Concepts, Characteristics and Directions. In Proc. of the Fourth international Conference on Web information Systems Engineering (December 10 - 12, 2003). WISE. IEEE Computer Society, Washington, DC.
[34]
Plásil, F., Bálek, D., Janecek, R. 1998. SOFA/DCUP: Architecture for Component Trading and Dynamic Updating. In Proceeding of International Conference on Configurable Distributed Systems. pp. 43.
[35]
Phung, P. H. and Sands, D. 2008. Security Policy Enforcement in the OSGi Framework Using Aspect-Oriented Programming. 32nd Annual IEEE Intl Computer Software and Applications (COMPSAC 2008). pp.1076--1082.
[36]
Redmond, B. and Cahill, V. 2002. Supporting Unanticipated Dynamic Adaptation of Application Behavior. In Proc. of the 16th European Conference on Object-Oriented Programming (2002). Lecture Notes In Computer Science, vol. 2374. Springer-Verlag, London, 205--230.
[37]
Rouvoy, R., Eliassen, F., and Beauvois, M. 2009. Dynamic planning and weaving of dependability concerns for self-adaptive ubiquitous services. In Proc. of the 2009 ACM Symposium on Applied Computing (Honolulu, Hawaii). SAC '09. ACM, New York, NY, 1021--1028.
[38]
Singh, A. and Kiczales, G. 2007. The scalability of AspectJ. In Proc. of the 2007 Conference of the Center For Advanced Studies on Collaborative Research (Richmond Hill, Ontario, Canada, October 22 - 25, 2007). CASCON '07. ACM, New York, NY, 203--214.
[39]
Soares, S., Laureano, E., and Borba, P. 2002. Implementing distribution and persistence aspects with AspectJ. In Proc. of the 17th ACM SIGPLAN Conference on Object-Oriented Programming, Systems, Languages, and Applications (Seattle, Washington, USA, November 04 - 08, 2002). OOPSLA '02. ACM, New York, NY, 174--190.
[40]
Yang, Z., Cheng, B. H., Stirewalt, R. E., Sowell, J., Sadjadi, S. M., and McKinley, P. K. 2002. An aspect-oriented approach to dynamic adaptation. In Proc. of the First Workshop on Self-Healing Systems (Charleston, South Carolina, November 18 - 19, 2002). D. Garlan, J. Kramer, and A. Wolf, Eds. WOSS '02. ACM, New York, NY, 85--92.

Cited By

View all
  • (2015)A Comprehensive Survey of System Dependability for Real Time Embedded SoftwareProceedings of the International Conference on Intelligent Information Processing, Security and Advanced Communication10.1145/2816839.2816917(1-7)Online publication date: 23-Nov-2015

Index Terms

  1. Applying dependability aspects on top of "aspectized" software layers

    Recommendations

    Comments

    Information & Contributors

    Information

    Published In

    cover image ACM Conferences
    AOSD '11: Proceedings of the tenth international conference on Aspect-oriented software development
    March 2011
    326 pages
    ISBN:9781450306058
    DOI:10.1145/1960275
    • General Chair:
    • Paulo Borba,
    • Program Chair:
    • Shigeru Chiba
    Permission to make digital or hard copies of all or part of this work for personal or classroom use is granted without fee provided that copies are not made or distributed for profit or commercial advantage and that copies bear this notice and the full citation on the first page. Copyrights for components of this work owned by others than ACM must be honored. Abstracting with credit is permitted. To copy otherwise, or republish, to post on servers or to redistribute to lists, requires prior specific permission and/or a fee. Request permissions from [email protected]

    Sponsors

    In-Cooperation

    • Centro de Informatica - UFPE: Centro de Informatica - UFPE
    • CAPES: Coordençãao de Aperfeiçoamento de Pessoal de Nível Superior
    • CNPq: Conselho Nacional de Desenvolvimento Cientifico e Tecn
    • FINEP: Financiadora de Estudos e Projetos
    • PUC-Rio
    • FACEPE: Fundacao de Amparo a Ciencia e Tecnologia do Estado de Pernambuco

    Publisher

    Association for Computing Machinery

    New York, NY, United States

    Publication History

    Published: 21 March 2011

    Permissions

    Request permissions for this article.

    Check for updates

    Author Tags

    1. aspect-oriented programming
    2. component-based software engineering
    3. dependability
    4. osgi
    5. reengineering
    6. software layers

    Qualifiers

    • Research-article

    Conference

    AOSD'11

    Acceptance Rates

    Overall Acceptance Rate 41 of 139 submissions, 29%

    Contributors

    Other Metrics

    Bibliometrics & Citations

    Bibliometrics

    Article Metrics

    • Downloads (Last 12 months)0
    • Downloads (Last 6 weeks)0
    Reflects downloads up to 07 Mar 2025

    Other Metrics

    Citations

    Cited By

    View all
    • (2015)A Comprehensive Survey of System Dependability for Real Time Embedded SoftwareProceedings of the International Conference on Intelligent Information Processing, Security and Advanced Communication10.1145/2816839.2816917(1-7)Online publication date: 23-Nov-2015

    View Options

    Login options

    View options

    PDF

    View or Download as a PDF file.

    PDF

    eReader

    View online with eReader.

    eReader

    Figures

    Tables

    Media

    Share

    Share

    Share this Publication link

    Share on social media