TY - GEN
T1 - PyReload
T2 - 25th Asia-Pacific Software Engineering Conference, APSEC 2018
AU - Tang, Wei
AU - Zhang, Min
N1 - Publisher Copyright:
© 2018 IEEE.
PY - 2018/7/2
Y1 - 2018/7/2
N2 - Dynamic Software Updating (DSU) is a promising technique for updating running software systems without incurring downtime. It is particularly useful to those systems which need to provide 24x7 services. Many efforts have been made to dynamic updating of the programs developed in mainstreaming languages such as C and Java. With the popularity of Python, many software servers are developed using Python and therefore they are desired to be dynamically updatable. However, there are few studies on dynamic updating of Python. To our knowledge, there exists only one updating approach for Python programs. The approach requires a dedicated Python interpreter in order to manipulate threads for updating, and consequently, it cannot be directly applied to mainstreaming Python interpreters. In this paper, we propose a novel dynamic updating approach to Python based on the built-in reloading mechanism that is supported by most of Python interpreters. Our approach is generic in that it is applicable to ordinary Python interpreters without any change to them. We implement a prototype called PyReload based on the proposed approach. PyReload is compatible with several mainstreaming Python interpreters such as CPython, Pypy and Jython. A case study is conducted to show the usage of PyReload. For performance, experimental results show that PyReload needs a shorter time for updating than the existing approach does.
AB - Dynamic Software Updating (DSU) is a promising technique for updating running software systems without incurring downtime. It is particularly useful to those systems which need to provide 24x7 services. Many efforts have been made to dynamic updating of the programs developed in mainstreaming languages such as C and Java. With the popularity of Python, many software servers are developed using Python and therefore they are desired to be dynamically updatable. However, there are few studies on dynamic updating of Python. To our knowledge, there exists only one updating approach for Python programs. The approach requires a dedicated Python interpreter in order to manipulate threads for updating, and consequently, it cannot be directly applied to mainstreaming Python interpreters. In this paper, we propose a novel dynamic updating approach to Python based on the built-in reloading mechanism that is supported by most of Python interpreters. Our approach is generic in that it is applicable to ordinary Python interpreters without any change to them. We implement a prototype called PyReload based on the proposed approach. PyReload is compatible with several mainstreaming Python interpreters such as CPython, Pypy and Jython. A case study is conducted to show the usage of PyReload. For performance, experimental results show that PyReload needs a shorter time for updating than the existing approach does.
KW - Dynamic software updating
KW - Python
KW - reloading mechanism
UR - https://www.scopus.com/pages/publications/85066803581
U2 - 10.1109/APSEC.2018.00037
DO - 10.1109/APSEC.2018.00037
M3 - 会议稿件
AN - SCOPUS:85066803581
T3 - Proceedings - Asia-Pacific Software Engineering Conference, APSEC
SP - 229
EP - 238
BT - Proceedings - 25th Asia-Pacific Software Engineering Conference, APSEC 2018
PB - IEEE Computer Society
Y2 - 4 December 2018 through 7 December 2018
ER -