Low-Disruptive and Timely Dynamic Software Updating of Smart Grid Components
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.
- 3.Brose, G.: JacORB: Implementation and Design of a Java ORB, pp. 143–154. Chapman & Hall, Cottbus (1997)Google Scholar
- 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.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.Götz, A., Taurel, E., et al.: TANGO V8-Another turbo charged major release. In: Proceedings of ICALEPCS, San Francisco (2013)Google Scholar
- 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
- 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.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.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
- 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
- 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