Low-Disruptive and Timely Dynamic Software Updating of Smart Grid Components

  • Martin Alexander NeumannEmail author
  • Christoph Tobias Bach
  • Yong Ding
  • Till Riedel
  • Michael Beigl
Conference paper
Part of the Lecture Notes of the Institute for Computer Sciences, Social Informatics and Telecommunications Engineering book series (LNICST, volume 203)


Components in the power grid require security, high availability and real-time communications for reliable operation. But these components are based on software that contains issues that need to be fixed. Timely installation of software updates allows securing vulnerable software quickly but conventionally disrupts availability and communications. Rolling updates on redundant systems prevent such disruptions but delay update installations as they need to be prepared carefully to update reliably. Dynamic Software Updating shortens the installation duration of updates by implementing them in-memory, allowing timely hot-fixing and installation of new features without service disruption or degradation in soft real-time communications. As the Smart Grid settles on standardization and common technologies for interoperability, the need for timely hot-fixing and updating of software applications and libraries which are in widespread use increases.

In this paper, we discuss requirements of Smart Grid components and their updating opportunities. Afterwards, we present Lusagent, our dynamic updating system for Java 6 to 8 that is based on a novel eager program state transformation approach. We illustrate its programming efforts in a case study on an open-source Java control system framework and on several other server applications. Furthermore, we present performance measurements of dynamically updating these applications. The results demonstrate the potential of our dynamic updating approach in enabling low-disruptive and timely updating of highly available and widespread components at low and only one-time programming efforts.


  1. 1.
    Ajmani, S., Liskov, B., Shrira, L.: Modular software upgrades for distributed systems. In: Thomas, D. (ed.) ECOOP 2006. LNCS, vol. 4067, pp. 452–476. Springer, Heidelberg (2006). doi: 10.1007/11785477_26 CrossRefGoogle Scholar
  2. 2.
    Brewer, E.A.: Lessons from giant-scale services. IEEE Internet Comput. 5(4), 46–55 (2001)CrossRefGoogle Scholar
  3. 3.
    Brose, G.: JacORB: Implementation and Design of a Java ORB, pp. 143–154. Chapman & Hall, Cottbus (1997)Google Scholar
  4. 4.
    Dumitraş, T., Narasimhan, P.: Why do upgrades fail and what can we do about it? In: Bacon, J.M., Cooper, B.F. (eds.) Middleware 2009. LNCS, vol. 5896, pp. 349–372. Springer, Heidelberg (2009). doi: 10.1007/978-3-642-10445-9_18 CrossRefGoogle Scholar
  5. 5.
    Durumeric, Z., Kasten, J., Adrian, D., Halderman, J.A., Bailey, M., Li, F., Weaver, N., Amann, J., Beekman, J., Payer, M., Paxson, V.: The matter of heartbleed. In: Proceedings of the 2014 Conference on Internet Measurement Conference (IMC 2014), pp. 475–488. ACM, New York (2014)Google Scholar
  6. 6.
    Efftinge, S., Eysholdt, M., Köhnlein, J., Zarnekow, S., von Massow, R., Hasselbring, W., Hanus, M.: Xbase: implementing domain-specific languages for Java. In: Proceedings of the 11th International Conference on Generative Programming and Component Engineering (GPCE 2012). ACM, New York (2012)Google Scholar
  7. 7.
    Götz, A., Taurel, E., et al.: TANGO V8-Another turbo charged major release. In: Proceedings of ICALEPCS, San Francisco (2013)Google Scholar
  8. 8.
    Gu, T., Cao, C., Xu, C., Ma, X., Zhang, L., Lu, J.: Javelus: a low disruptive approach to dynamic software updates. In: Proceedings of the 2012 19th Asia-Pacific Software Engineering Conference (APSEC 2012), vol. 01, pp. 527–536. IEEE Computer Society, Washington, DC (2012)Google Scholar
  9. 9.
    Hayden, C.M., Smith, E.K., Hardisty, E.A., Hicks, M., Foster, J.S.: Evaluating dynamic software update safety using systematic testing. IEEE Trans. Softw. Eng. 38(6), 1340–1354 (2012)CrossRefGoogle Scholar
  10. 10.
    Hicks, M., Nettles, S.: Dynamic software updating. ACM Trans. Program. Lang. Syst. 27(6), 1049–1096 (2005)CrossRefGoogle Scholar
  11. 11.
    Neamtiu, I., Hicks, M., Stoyle, G., Oriol, M.: Practical dynamic software updating for C. In: Proceedings of the 27th ACM SIGPLAN Conference on Programming Language Design and Implementation (PLDI 2006), pp. 72–83. ACM, New York (2006)Google Scholar
  12. 12.
    Nishtala, R., Fugal, H., Grimm, S., Kwiatkowski, M., Lee, H., Li, H.C., McElroy, R., Paleczny, M., Peek, D., Saab, P., Stafford, D., Tung, T., Venkataramani, V.: Scaling memcache at Facebook. In: Proceedings of the 10th USENIX Conference on Networked Systems Design and Implementation (NSDI 2013), pp. 385–398. USENIX Association, Berkeley (2013)Google Scholar
  13. 13.
    Pina, L., Veiga, L., Hicks, M.: Rubah: DSU for Java on a stock JVM. In: Proceedings of the 2014 ACM Conference on Object Oriented Programming Systems Languages & Applications (OOPSLA 2014). ACM, New York (2014)Google Scholar
  14. 14.
    Pukall, M., Kästner, C., Cazzola, W., Götz, S., Grebhahn, A., Schröter, R., Saake, G.: JavAdaptor-flexible runtime updates of Java applications. Softw. Pract. Exp. 43(2), 153–185 (2013)CrossRefGoogle Scholar
  15. 15.
    Russell, K., Bak, L.: The hotspotTM serviceability agent: an out-of-process high level debugger for a JavaTM virtual machine. In: Proceedings of the 2001 Symposium on JavaTM Virtual Machine Research and Technology Symposium (JVM 2001), vol. 1, p. 16. USENIX Association, Berkeley (2001)Google Scholar
  16. 16.
    Stoyle, G., Hicks, M., Bierman, G., Sewell, P., Neamtiu, I.: Mutatis mutandis: safe and predictable dynamic software updating. ACM Trans. Program. Lang. Syst. 29(4), 22 (2007)CrossRefzbMATHGoogle Scholar
  17. 17.
    Subramanian, S., Hicks, M., McKinley, K.S.: Dynamic software updates: a VM-centric approach. In: Proceedings of the 30th ACM SIGPLAN Conference on Programming Language Design and Implementation (PLDI 2009), pp. 1–12. ACM, New York (2009)Google Scholar
  18. 18.
    Würthinger, T., Wimmer, C., Stadler, L.: Unrestricted and safe dynamic code evolution for Java. Sci. Comput. Program. 78(5), 481–498 (2013)CrossRefGoogle Scholar

Copyright information

© ICST Institute for Computer Sciences, Social Informatics and Telecommunications Engineering 2017

Authors and Affiliations

  • Martin Alexander Neumann
    • 1
    Email author
  • Christoph Tobias Bach
    • 1
  • Yong Ding
    • 1
  • Till Riedel
    • 1
  • Michael Beigl
    • 1
  1. 1.Karlsruhe Institute of TechnologyKarlsruheGermany

Personalised recommendations