Abstract
The OSGi TM Service Platform is becoming the de facto standard for modularized Java applications. The market of OSGi based COTS components is continuously growing. OSGi specific problems make it harder to validate such components. The absence of separate object spaces to isolate components may lead to inconsistencies when they are stopped. The platform cannot ensure that objects from a stopped component will no longer be referenced by active code (a problem referred by OSGi specification as stale references) leading to memory retention and inconsistencies (e.g., utilization of invalid cached data) that can introduce faults in the system. This paper classifies different patterns of stale references detailing them and presents techniques based on Aspect Oriented Programming for runtime detection of such problems. We also present a fail-stop mechanism on services to avoid propagation of incorrect results. These techniques have proven to be effective in a tool implementation that validated our study.
Preview
Unable to display preview. Download preview PDF.
Similar content being viewed by others
References
OSGi Alliance, http://www.osgi.org
OSGi Alliance. About the OSGi Service Platform, Technical Whitepaper Revision 4.1, http://www.osgi.org/wiki/uploads/Links/OSGiTechnicalWhitePaper.pdf
Delapp, S.: Industry Use of OSGi Continues to Increase (retrieved April 9, 2008), http://www.infoq.com/news/OSGi-Use-Increases
Chappel, D.: Universal Middleware: What’s Happening With OSGi and Why You Should Care (retrieved April 9, 2008), http://soa.sys-con.com/read/492519_3.htm
Desertot, M., Donsez, D., Lalanda, P.: A Dynamic Service-Oriented Implementation for Java EE Servers. In: 3th IEEE International Conference on Service Computing, Chicago, USA, pp. 159–166 (2006)
Gruber, O., Hargrave, B.J., McAffer, J., Rapicault, P., Watson, T.: The Eclipse 3.0 platform: Adopting OSGi technology. IBM Systems Journal 44(2), 289–300 (2005)
Kiczales, G., Lamping, J., Mendhekar, A., Maeda, C., Lopes, C.V., Loingtier, J.M., Irwin, J.: Aspect-Oriented Programming. In: AkÅŸit, M., Matsuoka, S. (eds.) ECOOP 1997. LNCS, vol. 1241. Springer, Heidelberg (1997)
Gama, K., Donsez, D.: Service Coroner: A Diagnostic Tool for Locating OSGi Stale References. In: Proceedings of the 34th Euromicro Conference on Software Engineering and Advanced Applications, Parma, Italy (2008)
Cervantes, H., Hall, R.S.: Automating Service Dependency Management in a Service-Oriented Component Model. In: Proceedings of the 6th International Workshop on Component-Based Software Engineering, Portland, USA (2003)
Escoffier, C., Hall, R.S., Lalanda, P.: iPOJO: An extensible service-oriented component framework. In: IEEE International Conference on Service Computing, Salt Lake City, USA, pp. 474–481 (2007)
Spring Dynamic Modules for OSGiTM Service Platforms, http://www.springframework.org/osgi
Hobbs, C., Becha, H., Amyot, D.: Failure Semantics in a SOA Environment. In: 3rd Int. MCeTech Conference on eTechnologies, pp. 116–121. IEEE Computer Society, Montréal (2008)
Gosling, J., Joy, B., Steele, G., Bracha, G.: The Java Language Specification, 3rd edn., pp. 330–331. Addison-Wesley, Reading (2005)
Kiczales, G., Hilsdale, E., Hugunin, J., Kersten, M., Palm, J., Griswold, W.G.: An Overview of AspectJ. In: Knudsen, J.L. (ed.) ECOOP 2001. LNCS, vol. 2072, pp. 327–355. Springer, Heidelberg (2001)
Equinox Framework, http://www.eclipse.org/equinox/framework
Apache Felix, http://felix.apache.org
Knopflerfish OSGi, http://www.knopflerfish.org
JOnAS Open Source Java EE Application Server, http://jonas.objectweb.org
SIP Communicator, http://www.sip-communicator.org
Newton Framework, http://newton.codecauldron.org/
Apache Sling, http://incubator.apache.org/sling/
Service Component Architecture Specifications – Open SOA Collaboration, http://www.osoa.org/display/Main/Service+Component+Architecture+Specifications
JSR 277: Java Module System, http://jcp.org/en/jsr/detail?id=277
Chen, Z., Fickas, S.: Do No Harm: Model Checking eHome Applications. In: Proceedings of the 29th Intl. Conference on Software Engineering Workshops, Minneapolis, USA (2007)
Ahn, H., Oh, H., Sung, C.O.: Towards Reliable OSGi Framework and Applications. In: Proceedings of the 2006 ACM symposium on Applied computing, Dijon, France, pp. 1456–1461 (2006)
Escoffier, C., Donsez, D., Hall, R.S.: Developing an OSGi-like service platform for. NET. In: Consumer Communications and Networking Conference, Las Vegas, USA, pp. 213–217 (2006)
JSR 121: Application Isolation API Specification, http://jcp.org/en/jsr/detail?id=121
Author information
Authors and Affiliations
Editor information
Editors and Affiliations
Rights and permissions
Copyright information
© 2008 Springer-Verlag Berlin Heidelberg
About this paper
Cite this paper
Gama, K., Donsez, D. (2008). A Practical Approach for Finding Stale References in a Dynamic Service Platform. In: Chaudron, M.R.V., Szyperski, C., Reussner, R. (eds) Component-Based Software Engineering. CBSE 2008. Lecture Notes in Computer Science, vol 5282. Springer, Berlin, Heidelberg. https://doi.org/10.1007/978-3-540-87891-9_16
Download citation
DOI: https://doi.org/10.1007/978-3-540-87891-9_16
Publisher Name: Springer, Berlin, Heidelberg
Print ISBN: 978-3-540-87890-2
Online ISBN: 978-3-540-87891-9
eBook Packages: Computer ScienceComputer Science (R0)