Design patterns: elements of reusable object-oriented software
Design patterns: elements of reusable object-oriented software
Pattern-oriented software architecture: a system of patterns
Pattern-oriented software architecture: a system of patterns
A study on exception detection and handling using aspect-oriented programming
Proceedings of the 22nd international conference on Software engineering
Monitoring, security, and dynamic configuration with the dynamicTAO reflective ORB
IFIP/ACM International Conference on Distributed systems platforms
An aspect-oriented approach to dynamic adaptation
WOSS '02 Proceedings of the first workshop on Self-healing systems
Implementing distribution and persistence aspects with aspectJ
OOPSLA '02 Proceedings of the 17th ACM SIGPLAN conference on Object-oriented programming, systems, languages, and applications
The Vision of Autonomic Computing
Computer
Supporting Unanticipated Dynamic Adaptation of Application Behaviour
ECOOP '02 Proceedings of the 16th European Conference on Object-Oriented Programming
SOFA/DCUP: Architecture for Component Trading and Dynamic Updating
CDS '98 Proceedings of the International Conference on Configurable Distributed Systems
An approach to monitor application states for self-managing (autonomic) systems
OOPSLA '03 Companion of the 18th annual ACM SIGPLAN conference on Object-oriented programming, systems, languages, and applications
An AspectJ-enabled eclipse core runtime platform
OOPSLA '03 Companion of the 18th annual ACM SIGPLAN conference on Object-oriented programming, systems, languages, and applications
Service -Oriented Computing: Concepts, Characteristics and Directions
WISE '03 Proceedings of the Fourth International Conference on Web Information Systems Engineering
Proceedings of the 3rd international conference on Aspect-oriented software development
Autonomous Adaptation to Dynamic Availability Using a Service-Oriented Component Model
Proceedings of the 26th International Conference on Software Engineering
AJEER: an aspectJ-enabled eclipse runtime
OOPSLA '04 Companion to the 19th annual ACM SIGPLAN conference on Object-oriented programming systems, languages, and applications
Java(TM) Language Specification, The (3rd Edition) (Java (Addison-Wesley))
Java(TM) Language Specification, The (3rd Edition) (Java (Addison-Wesley))
A Dynamic Lightweight Platform for Ad-Hoc Infrastructures
PERCOM '05 Proceedings of the Third IEEE International Conference on Pervasive Computing and Communications
Supporting autonomic computing functionality via dynamic operating system kernel aspects
Proceedings of the 4th international conference on Aspect-oriented software development
Injection of faults at component interfaces and inside the component code: are they equivalent?
EDCC '06 Proceedings of the Sixth European Dependable Computing Conference
Proceedings of the 2nd workshop on Best practices in applying aspect-oriented software development
Microreboot — A technique for cheap recovery
OSDI'04 Proceedings of the 6th conference on Symposium on Opearting Systems Design & Implementation - Volume 6
CASCON '07 Proceedings of the 2007 conference of the center for advanced studies on Collaborative research
Integration of dynamic AOP into the OSGi service platform
Proceedings of the 2nd workshop on Middleware-application interaction: affiliated with the DisCoTec federated conferences 2008
A light-weight load-time weaving approach for OSGi
Proceedings of the 2008 workshop on Next generation aspect oriented middleware
Security Policy Enforcement in the OSGi Framework Using Aspect-Oriented Programming
COMPSAC '08 Proceedings of the 2008 32nd Annual IEEE International Computer Software and Applications Conference
Companion to the 23rd ACM SIGPLAN conference on Object-oriented programming systems languages and applications
A Practical Approach for Finding Stale References in a Dynamic Service Platform
CBSE '08 Proceedings of the 11th International Symposium on Component-Based Software Engineering
Service Coroner: A Diagnostic Tool for Locating OSGi Stale References
SEAA '08 Proceedings of the 2008 34th Euromicro Conference Software Engineering and Advanced Applications
Dynamic planning and weaving of dependability concerns for self-adaptive ubiquitous services
Proceedings of the 2009 ACM symposium on Applied Computing
Towards Dynamic Component Isolation in a Service Oriented Platform
CBSE '09 Proceedings of the 12th International Symposium on Component-Based Software Engineering
Extracting and evolving code in product lines with aspect-oriented programming
Transactions on aspect-oriented software development IV
A self-healing component sandbox for untrustworthy third party code execution
CBSE'10 Proceedings of the 13th international conference on Component-Based Software Engineering
Hi-index | 0.01 |
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.