DR-OSGi: Hardening Distributed Components with Network Volatility Resiliency

  • Young-Woo Kwon
  • Eli Tilevich
  • Taweesup Apiwattanapong
Part of the Lecture Notes in Computer Science book series (LNCS, volume 5896)

Abstract

Because middleware abstractions remove the need for low- level network programming, modern distributed component systems expose network volatility (i.e., frequent but intermittent outages) as application-level exceptions, requiring custom manual handling. Unfortunately, handling network volatility effectively is nontrivial—the programmer must consider not only the specifics of the application, but also of its target deployment environment. As a result, to make a distributed component application resilient against network volatility, programmers commonly create custom solutions that are ad-hoc, tedious, and error-prone. In addition, these solutions are difficult to customize for different networks and to reuse across different applications.

To address these challenges, this paper presents a systematic approach to hardening distributed components to become resilient against network volatility. Specifically, we present an extensible framework for enhancing a distributed component application with the ability to continue executing in the presence of network volatility. To accommodate the diverse hardening needs of various combinations of networks and applications, our framework not only provides a collection of hardening strategies, but also simplifies the creation of new strategies. Our reference implementation, built on top of the R-OSGi infrastructure, is called DR-OSGi. DR-OSGi imposes a very low overhead on the hardened applications, requires no changes to their source code, and is plug-in extensible. Applying DR-OSGi to several realistic distributed applications has hardened them with resiliency to effectively withstand network volatility.

Keywords

Distributed Component Architectures Network Volatility Aspect Oriented Programming OSGi R-OSGi 

References

  1. 1.
  2. 2.
  3. 3.
    Aldrich, J., Sazawal, V., Chambers, C., Notkin, D.: Language support for connector abstractions. In: Cardelli, L. (ed.) ECOOP 2003. LNCS, vol. 2743. Springer, Heidelberg (2003)Google Scholar
  4. 4.
    The AspectJ project, http://www.eclipse.org/aspectj/
  5. 5.
    Benson, D.A., Karsch-Mizrachi, I., Lipman, D.J., Ostell, J., Rapp, B.A., Wheeler, D.L.: Genbank. Nucleic Acids Res. 30, 17–20 (2002)CrossRefGoogle Scholar
  6. 6.
    Dahlin, M., Chandra, B., Gao, L., Khoja, A., Nayate, A., Razzaq, A., Sewani, A.: Using mobile extensions to support disconnected services. Technical Report CS-TR-00-20, University of Texas at Austin (2000)Google Scholar
  7. 7.
    Fullmer, C.L., Garcia-Luna-Aceves, J.: Solutions to hidden terminal problems in wireless networks. In: Proceedings ACM SIGCOMM, pp. 39–49 (1997)Google Scholar
  8. 8.
    Herrero, J.L., Sanchez, F., Sanchez, O., Toro, M.: Fault tolerance AOP approach. In: Workshop on AOP and Separation of Concerns, pp. 44–52 (2001)Google Scholar
  9. 9.
    Hull, B., Jamieson, K., Balakrishnan, H.: Mitigating congestion in wireless sensor networks. In: ACM SenSys 2004, Baltimore, MD (November 2004)Google Scholar
  10. 10.
    Jain, K., Padhye, J., Padmanabhan, V.N., Qiu, L.: Impact of interference on multi-hop wireless network performance. In: MobiCom 2003: Proceedings of the 9th annual international conference on Mobile computing and networking, pp. 66–80. ACM, New York (2003)Google Scholar
  11. 11.
  12. 12.
    Joseph, A.D., de Lespinasse, A.F., Tauber, J.A., Gifford, D., Kaashoek, M.F.: Rover: A toolkit for mobile information access. In: Proceedings of the Fifteenth Symposium on Operating Systems Principles (December 1995)Google Scholar
  13. 13.
    Kiczales, G., Lamping, J., Mendhekar, A., Maeda, C., Lopes, C.V., Loingtier, J.-M., Irwin, J.: Aspect-oriented programming. In: Aksit, M., Matsuoka, S. (eds.) ECOOP 1997. LNCS, vol. 1241, pp. 220–242. Springer, Heidelberg (1997)CrossRefGoogle Scholar
  14. 14.
    Knopflerfish - open source OSGi, http://www.knopflerfish.org
  15. 15.
    Microsoft. Component Object Model (COM)Google Scholar
  16. 16.
    Mikic-Rakic, M., Medvidovic, N.: A classification of disconnected operation techniques. In: Proceedings of the 32nd EUROMICRO Conference on Software engineering and Advanced Applications (EUROMICRO-SEAA 2006) (2006)Google Scholar
  17. 17.
    Noble, B.D., Sayanarayanan, M., Narayanan, D., Tilton, J.E., Flinn, J., Walker, K.R.: Agile application-aware adaptation for mobility. In: Proceedings of the 16th ACM Symposium on Operating Systems Principles (October 1997)Google Scholar
  18. 18.
    Object Management Group. The common object request broker: Architecture and specification version 3.0 (July 2003), http://doc.ece.uci.edu/CORBA/formal/02-06-33.pdf
  19. 19.
    Object Management Group. The CORBA component model specification. Specification, Object Management Group (2006)Google Scholar
  20. 20.
    OSGi Alliance. OSGi release 4.1 specification. Specification (2007)Google Scholar
  21. 21.
    Polze, A., Schwarz, J., Malek, M.: Automatic generation of fault-tolerant CORBA-services. In: Haverkort, B.R., Bohnenkamp, H.C., Smith, C.U. (eds.) TOOLS 2000. LNCS, vol. 1786. Springer, Heidelberg (2000)Google Scholar
  22. 22.
    Rellermeyer, J.S., Alonso, G.: Concierge: a service platform for resource-constrained devices. In: The 2nd ACM SIGOPS/EuroSys European Conference on Computer Systems 2007, pp. 245–258 (2007)Google Scholar
  23. 23.
    Rellermeyer, J.S., Alonso, G., Roscoe, T.: R-OSGi: Distributed applications through software modularization. In: Cerqueira, R., Campbell, R.H. (eds.) Middleware 2007. LNCS, vol. 4834, pp. 1–20. Springer, Heidelberg (2007)CrossRefGoogle Scholar
  24. 24.
    Sadjadi, S.M., McKinley, P.K.: ACT: An adaptive CORBA template to support unanticipated adaptation. In: Proceedings of the 24th International Conference on Distributed Computing Systems (ICDCS 2004), pp. 74–83 (2004)Google Scholar
  25. 25.
    Smith, T., Waterman, M.: Identification of common molecular subsequences. J. Mol. Biol. 147, 195–197 (1981)CrossRefGoogle Scholar
  26. 26.
    Spring Framework, http://www.springsource.org/
  27. 27.
    Tambe, S., Dabholkar, A., Balasubramanian, J., Gokhale, A.: Automating middleware specializations for fault tolerance. In: Proceedings of the International Symposium on Object/component/service-oriented Real-time distributed Computing, ISORC 2009 (March 2009)Google Scholar
  28. 28.
    Weinsberg, Y., Ben-Shaul, I.: A programming model and system support for disconnected-aware applications on resource-constrained devices. In: Proceedings of the 24th International Conference on Software Engineering, Orlando, Florida, May 2002, pp. 374–384 (2002)Google Scholar
  29. 29.
    Wuyts, K., Scandariato, R., Claeys, G., Joosen, W.: Hardening XDS-based architectures. In: ARES 2008: Proceedings of the 2008 Third International Conference on Availability, Reliability and Security, Washington, DC, USA, pp. 18–25. IEEE Computer Society, Los Alamitos (2008)CrossRefGoogle Scholar
  30. 30.
    Zhang, M., Wolff, R.: Crossing the digital divide: cost-effective broadband wireless access for rural and remote areas. IEEE Communications Magazine 42(2), 99–105 (2004)CrossRefGoogle Scholar

Copyright information

© IFIP International Federation for Information Processing 2009

Authors and Affiliations

  • Young-Woo Kwon
    • 1
  • Eli Tilevich
    • 1
  • Taweesup Apiwattanapong
    • 2
  1. 1.Department of Computer ScienceVirginia TechUSA
  2. 2.National Electronics and Computer Technology CenterThailand

Personalised recommendations