Automated S/W Reengineering for Fault-Tolerant and Energy-Efficient Distributed Execution - Young-Woo Kwon (Proceedings - Conference on Software Maintenance (1987), 2013)
Reengineering extant software systems into distinct, distributed components communicating across a network has become indispensable in modern software maintenance practices. Such reengineering practices can be applied to migrate portions of an application's functionality to the cloud, both to take advantage of superior cloud computing resources and to reduce the energy consumption of mobile applications. Executing such reengineering tasks naively results in distributed applications that suffer from two main problems: a lack of reliability and poor energy efficiency. Specifically, transformed applications are subject to partial failure, in which its different components (client, server, or network) may fail independently from each other. Effective handling of partial failure requires that the reengineering process systematically introduces special failure handling functionality. Furthermore, mainstream middleware architectures, the calls to which the reengineering process inserts, lack sufficient expressiveness and adaptivity to use the limited energy resources of mobile devices optimally. This research addresses these two fundamental reengineering problems through innovation in program transformations and distributed programming abstractions. In this paper, we discuss the general vision and contributions of this research, as well as the related state of the art, and preliminary results.