TY - JOUR
T1 - Cloud refactoring
T2 - Automated transitioning to cloud-based services
AU - Kwon, Young Woo
AU - Tilevich, Eli
PY - 2014/9
Y1 - 2014/9
N2 - Using cloud-based services can improve the performance, reliability, and scalability of a software application. However, transitioning an application to use cloud-based services is difficult, costly, and error-prone. The required re-engineering effort includes migrating to the cloud the functionality to be accessed as remote cloud-based services and re-targeting the client code accordingly. In addition, the client must be able to detect and handle the faults raised in the process of invoking the services. As a means of streamlining this transitioning, we developed a set of refactoring techniques - automated, IDE-assisted program transformations that eliminate the need to change programs by hand. In particular, we show how a programmer can extract services, add fault tolerance functionality, and adapt client code to invoke cloud services via refactorings integrated with a modern IDE. As a validation, we have applied our approach to automatically transform two third-party Java applications to use cloud-based services. We have also applied our approach to re-engineer a suite of services operated by General Electric to use cloud-based resources to better satisfy the GE business requirements.
AB - Using cloud-based services can improve the performance, reliability, and scalability of a software application. However, transitioning an application to use cloud-based services is difficult, costly, and error-prone. The required re-engineering effort includes migrating to the cloud the functionality to be accessed as remote cloud-based services and re-targeting the client code accordingly. In addition, the client must be able to detect and handle the faults raised in the process of invoking the services. As a means of streamlining this transitioning, we developed a set of refactoring techniques - automated, IDE-assisted program transformations that eliminate the need to change programs by hand. In particular, we show how a programmer can extract services, add fault tolerance functionality, and adapt client code to invoke cloud services via refactorings integrated with a modern IDE. As a validation, we have applied our approach to automatically transform two third-party Java applications to use cloud-based services. We have also applied our approach to re-engineer a suite of services operated by General Electric to use cloud-based resources to better satisfy the GE business requirements.
KW - Cloud computing
KW - Fault-tolerance
KW - Program transformation
KW - Refactoring
KW - Service extraction
KW - Services
UR - http://www.scopus.com/inward/record.url?scp=84902289227&partnerID=8YFLogxK
U2 - 10.1007/s10515-013-0136-9
DO - 10.1007/s10515-013-0136-9
M3 - Article
AN - SCOPUS:84902289227
SN - 0928-8910
VL - 21
SP - 345
EP - 372
JO - Automated Software Engineering
JF - Automated Software Engineering
IS - 3
ER -