Skip to main content
Log in

Cloud refactoring: automated transitioning to cloud-based services

  • Published:
Automated Software Engineering Aims and scope Submit manuscript

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.

This is a preview of subscription content, log in via an institution to check access.

Access this article

Price excludes VAT (USA)
Tax calculation will be finalised during checkout.

Instant access to the full article PDF.

Fig. 1
Fig. 2
Fig. 3
Fig. 4
Fig. 5
Fig. 6
Fig. 7
Fig. 8
Fig. 9
Fig. 10
Fig. 11
Fig. 12
Fig. 13
Fig. 14
Fig. 15
Fig. 16
Fig. 17
Fig. 18
Fig. 19

Similar content being viewed by others

Notes

  1. http://memoranda.sourceforge.net.

  2. Open-source OSGi implementations include Apache Felix (http://felix.apache.org/site/index.html) and Knopflerfish (http://www.knopflerfish.org). Among large commercial OSGi projects are the Spring Framework (http://www.springsource.org/) and the Eclipse IDE (http://www.eclipse.org/equinox/).

  3. http://lucene.apache.org/java/docs/index.html.

  4. http://jaligner.sourceforge.net.

  5. http://barbecue.sourceforge.net.

  6. http://pmd.sourceforge.net.

  7. The services are exposed through Apache CXF-DOSGi.

  8. http://www.ebi.ac.uk/soaplab/.

References

  • Andreopoulos, B., An, A., Tzerpos, V., Wang, X.: Clustering large software systems at multiple layers. Inf. Softw. Technol. 49(3), 244–254 (2007)

    Article  Google Scholar 

  • Andritsos, P., Tzerpos, V.: Information-theoretic software clustering. IEEE Trans. Softw. Eng. 31(2), 150–165 (2005)

    Article  Google Scholar 

  • Buyya, R., Yeo, C., Venugopal, S., Broberg, J., Brandic, I.: Cloud computing and emerging IT platforms: vision, hype, and reality for delivering computing as the 5th utility. Future Gener. Comput. Syst. 25(6), 599–616 (2009)

    Article  Google Scholar 

  • Candea, G., Fox, A.: Recursive restartability: turning the reboot sledgehammer into a scalpel. In: Proceedings of the Eighth Workshop on Hot Topics in Operating Systems, pp. 125–130 (2001)

    Chapter  Google Scholar 

  • Canfora, G., Fasolino, A., Frattolillo, G., Tramontana, P.: A wrapping approach for migrating legacy system interactive functionalities to service oriented architectures. J. Syst. Softw. 81(4), 463–480 (2008)

    Article  Google Scholar 

  • Dialani, V., Miles, S., Moreau, L., De Roure, D., Luck, M.: Transparent fault tolerance for web services based architectures. In: Euro-Par 2002 Parallel Processing, pp. 107–201 (2002)

    Google Scholar 

  • Dieckmann, S., Hölzle, U.: A study of the allocation behavior of the specjvm98 Java benchmark. In: ECOOP’99: Proceedings of the 13th European Conference on Object-Oriented Programming, pp. 92–115. Springer, London (1999)

    Google Scholar 

  • Edstrom, J., Tilevich, E.: Reusable and extensible fault tolerance for restful applications. In: The 11th IEEE International Conference on Trust, Security and Privacy in Computing and Communications, pp. 737–744 (2012)

    Google Scholar 

  • Fang, C., Liang, D., Lin, F., Lin, C.: Fault tolerant web services. J. Syst. Archit. 53(1), 21–38 (2007)

    Article  Google Scholar 

  • Fowler, M.: Refactoring: Improving the Design of Existing Code. Addison-Wesley, Boston (1999)

    Google Scholar 

  • JAX-WS Expert Group. JSR-224 Java API for XML-based Web services 2.0. Technical report, Java Community Process (2006)

  • Hall, M., Frank, E., Holmes, G., Pfahringer, B., Reutemann, P., Witten, I.H.: The weka data mining software: an update. ACM SIGKDD Explor. Newsl. 11(1), 10–18 (2009)

    Article  Google Scholar 

  • King, S.T., Dunlap, G.W., Chen, P.M.: Debugging operating systems with time-traveling virtual machines. In: ATEC’05: Proceedings of the Annual Conference on USENIX Annual Technical Conference (2005)

    Google Scholar 

  • Kwon, Y.-W., Tilevich, E.: A declarative approach to hardening services against QoS vulnerabilities. In: MESOCA’11: Proceedings of the 2011 IEEE International Workshop on the Maintenance and Evolution of Service-Oriented and Cloud-Based Systems (2011)

    Google Scholar 

  • Kwon, Y.-W., Tilevich, E., Apiwattanapong, T.: DR-OSGi: hardening distributed components with network volatility resiliency. In: Proceedings of the ACM/IFIP/USENIX 10th International Middleware Conference (Middleware 2009) (2009)

    Google Scholar 

  • Levenshtein, V.: Binary codes capable of correcting deletions, insertions, and reversals. In: Soviet Physics Doklady, vol. 10, pp. 707–710 (1966)

    Google Scholar 

  • Li, S., Tahvildari, L.: A service-oriented componentization framework for Java software systems. In: WCRE’06: Proceedings of the 13th Working Conference on Reverse Engineering, pp. 115–124. IEEE Comput. Soc., Washington (2006)

    Chapter  Google Scholar 

  • Liang, D., Fang, C., Chen, C.: FT-SOAP: a fault-tolerant web service. In: Tenth Asia-Pacific Software Engineering Conference, Chiang Mai, Thailand (2003)

    Google Scholar 

  • Liu, A., Li, Q., Huang, L., Xiao, M.: FACTS: a framework for fault-tolerant composition of transactional web services. IEEE Trans. Serv. Comput. 3(1), 46–59 (2010)

    Article  Google Scholar 

  • Lucca, G.A.D., Fasolino, A.R., Guerra, P., Petruzzelli, S.: Migrating legacy systems towards object-oriented platforms. In: ICSM’97: Proceedings of the International Conference on Software Maintenance, pp. 122–129 (1997)

    Google Scholar 

  • Marchetto, A., Ricca, F.: From objects to services: toward a stepwise migration approach for Java applications. Int. J. Softw. Tools Technol. Transf. 11(6), 427–440 (2009)

    Article  Google Scholar 

  • McGachey, P., Hosking, A.L., Moss, J.E.B.: Pervasive load-time transformation for transparently distributed Java. Electron. Notes Theor. Comput. Sci. 253, 47–64 (2009)

    Article  Google Scholar 

  • Mitchell, B., Mancoridis, S.: On the automatic modularization of software systems using the bunch tool. IEEE Trans. Softw. Eng. 32(3), 193–208 (2006)

    Article  Google Scholar 

  • OSGi Alliance. RFP 133 cloud computing. Technical report (2010)

  • OSGi Alliance. OSGi release 4.3 specification. Specification (2011)

  • Paremus Ldt. The Paremus service fabric—a technical overview (2008)

  • Santos, G.T., Lung, L.C., Montez, C.: FTWeb: a fault tolerant infrastructure for web services. In: IEEE International Enterprise Distributed Object Computing Conference, pp. 95–105 (2005)

    Google Scholar 

  • Sidiroglou, S., Giovanidis, G., Keromytis, A.D.: A dynamic mechanism for recovering from buffer overflow attacks. In: Proceedings of the 8th Information Security Conference (ISC), pp. 1–15. Springer, Berlin (2005)

    Google Scholar 

  • Spiegel, A.: Automatic Distribution of Object Oriented Programs. Ph.D. thesis, FU Berlin, FB Mathematik und Informatik (2002)

  • Sullivan, M., Chillarege, R.: Software defects and their impact on system availability-a study of field failures in operating systems. In: Fault-Tolerant Computing, 1991. FTCS-21. Digest of Papers., Twenty-First International Symposium, pp. 2–9 (1991)

    Google Scholar 

  • Tatsubori, M., Sasaki, T., Chiba, S., Itano, K.: A bytecode translator for distributed execution of “Legacy” Java software. In: European Conference on Object-Oriented Programming (ECOOP) (2001)

    Google Scholar 

  • Tilevich, E., J-Orchestra, Y.S.: Automatic Java application partitioning. In: Proceedings of the 16th European Conference on Object-Oriented Programming, ECOOP’02 (2002)

    Google Scholar 

  • Zheng, Z., Lyu, M.: Optimal fault tolerance strategy selection for web services. Int. J. Web Serv. Res. 7(4), 21–40 (2010)

    Article  Google Scholar 

Download references

Acknowledgement

GE Global Research has provided realistic cloud migration scenarios that motivated some of the refactoring techniques discussed in the article. This research is supported by the National Science Foundation through the Grant CCF-1116565.

Author information

Authors and Affiliations

Authors

Corresponding author

Correspondence to Young-Woo Kwon.

Rights and permissions

Reprints and permissions

About this article

Cite this article

Kwon, YW., Tilevich, E. Cloud refactoring: automated transitioning to cloud-based services. Autom Softw Eng 21, 345–372 (2014). https://doi.org/10.1007/s10515-013-0136-9

Download citation

  • Received:

  • Accepted:

  • Published:

  • Issue Date:

  • DOI: https://doi.org/10.1007/s10515-013-0136-9

Keywords

Navigation