Cloud refactoring: Automated transitioning to cloud-based services

Young Woo Kwon, Eli Tilevich

Research output: Contribution to journalArticlepeer-review

32 Scopus citations

Abstract

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.

Original languageEnglish
Pages (from-to)345-372
Number of pages28
JournalAutomated Software Engineering
Volume21
Issue number3
DOIs
StatePublished - Sep 2014

Keywords

  • Cloud computing
  • Fault-tolerance
  • Program transformation
  • Refactoring
  • Service extraction
  • Services

Fingerprint

Dive into the research topics of 'Cloud refactoring: Automated transitioning to cloud-based services'. Together they form a unique fingerprint.

Cite this