Abstract
Cloud Computing is a technology that provides to customers computing/storage resources as services delivered through the internet. Its main characteristics are its elastic nature and its payment model (pay-as-you-go). In order to run applications in the cloud while using its resources efficiently, and thus reducing their usage costs, one of the requirements related to this type of environment is to perform dynamic configurations of these applications. Nevertheless, to dynamically configure applications determining the utilized resources, additionally to when and where they are used is needed. Workflows allow doing this. As a matter of fact, several works aiming to reduce execution costs in the cloud are based on workflows. Unlike them, the architecture of OO applications explicitly expresses little or no behavioral (temporal) information. Therefore, running an OO application in the cloud requires deploying the whole application, and thus all its used resources need to be allocated during its entire execution time. With the goal of reducing execution costs of OO applications in the cloud, we propose a re-engineering process. The process aims to restructure these applications from OO architectural style to workflow style. However, in this paper, we concentrate only on the first step of the process, which aims to generate a workflow from OO source code.
Access this chapter
Tax calculation will be finalised at checkout
Purchases are for personal use only
Similar content being viewed by others
Notes
- 1.
A transactional flow specifies the changes occurring in the control flow because of task failure.
- 2.
The procedural knowledge is also known as how to knowledge. For example, cooking recipes are considered as procedural knowledge.
- 3.
Polymorphism need to be dealt with only when using static analysis.
References
Kaur, N., Aulakh, T.S., Cheema, R.S.: Comparison of workflow scheduling algorithms in cloud computing. Int. Adv. Comput. Sci. Appl. 2(10), 81–86 (2011)
Mell, P., Grance, T., et al.: The NIST Definition of Cloud Computing (2011)
Masdari, M., ValiKardan, S., Shahi, Z., Azar, S.I.: Towards workflow scheduling in cloud computing: a comprehensive analysis. J. Netw. Comput. Appl. 66, 64–82 (2016)
Liu, F., et al.: NIST cloud computing reference architecture. NIST Special Publication 500, pp. 1–28 (2011)
Wu, Z., Liu, X., Ni, Z., Yuan, D., Yang, Y.: A market-oriented hierarchical scheduling strategy in cloud workflow systems. J. Supercomput. 1–38 (2013). https://doi.org/10.1007/s11227-011-0578-4
Espadas, J., Molina, A., Jiménez, G., Molina, M., Ramírez, R., Concha, D.: A tenant-based resource allocation model for scaling software-as-a-service applications over cloud computing infrastructures. Future Gener. Comput. Syst. 29, 273–286 (2013)
Fakhfakh, F., Kacem, H.H., Kacem, A.H.: Workflow scheduling in cloud computing: a survey. In: 2014 IEEE 18th International Enterprise Distributed Object Computing Conference Workshops and Demonstrations (EDOCW), pp. 372–378. IEEE (2014)
Dillon, T., Wu, C., Chang, E.: Cloud computing: issues and challenges. In: 2010 24th IEEE International Conference on Advanced Information Networking and Applications (AINA), pp. 27–33. IEEE (2010)
Xu, M., Cui, L., Wang, H., Bi, Y.: A multiple QoS constrained scheduling strategy of multiple workflows for cloud computing. In: 2009 IEEE International Symposium on Parallel and Distributed Processing with Applications, pp. 629–634. IEEE (2009)
Taylor, R.N., Medvidovic, N., Dashofy, E.M.: Software Architecture: Foundations, Theory, and Practice. Wiley, Hoboken (2009)
Garlan, D., Shaw, M.: An introduction to software architecture. Adv. Softw. Eng. Knowl. Eng. 2, 1 (1993). https://www.worldscientific.com/worldscibooks/10.1142/2207#t=toc
Bass, L.: Software Architecture in Practice. Pearson Education, New Delhi (2007)
Hollingsworth, D.: Workflow Management Coalition: The Workflow Reference Model (1995)
Zhu, Z., Zhang, G., Li, M., Liu, X.: Evolutionary multi-objective workflow scheduling in cloud. IEEE Trans. Parallel Distrib. Syst. 27, 1344–1357 (2016)
Lin, C., Lu, S.: Scheduling scientific workflows elastically for cloud computing. In: 2011 IEEE International Conference on Cloud Computing (CLOUD), pp. 746–747. IEEE (2011)
Sneed, H.M.: Measuring reusability of legacy software systems. Softw. Process Improv. Pract. 4, 43–48 (1998)
Zou, Y., Lau, T.C., Kontogiannis, K., Tong, T., McKegney, R.: Model-driven business process recovery. In: 2004 Proceedings of 11th Working Conference on Reverse Engineering, pp. 224–233. IEEE (2004)
Gaaloul, W., Godart, C.: Mining workflow recovery from event based logs. In: van der Aalst, W.M.P., Benatallah, B., Casati, F., Curbera, F. (eds.) BPM 2005. LNCS, vol. 3649, pp. 169–185. Springer, Heidelberg (2005). https://doi.org/10.1007/11538394_12
Korshunova, E., Petkovic, M., Van Den Brand, M., Mousavi, M.R.: CPP2XMI: reverse engineering of UML class, sequence, and activity diagrams from C++ source code. In: 2006 13th Working Conference on Reverse Engineering, pp. 297–298. IEEE (2006)
Ihaddadene, N.: Extraction of business process models from workflow events logs. Int. J. Parallel Emergent Distrib. Syst. 23, 247–258 (2008)
Kosower, D.A., Lopez-Villarejo, J.J.: Flowgen: flowchart-based documentation for C++ codes. Comput. Phys. Commun. 196, 497–505 (2015)
Selmadji, A., Seriai, A., Bouziane, H., Dony, C., Tibermacine, C.: Refactoring object-oriented applications for a deployment in the cloud - workflow generation based on static analysis of source code. In: Proceedings of the 13th International Conference on Evaluation of Novel Approaches to Software Engineering, ENASE 2018, Funchal, Madeira, Portugal, 23–24 March 2018, pp. 111–123 (2018)
Russell, N., Ter Hofstede, A.H., Van Der Aalst, W.M., Mulyar, N.: Workflow control-flow patterns: a revised view. BPM Center Report BPM-06-22, pp. 06–22. BPMcenter (2006)
Martena, V., Orso, A., Pezze, M.: Interclass testing of object oriented software. In: Proceedings of Eighth IEEE International Conference on Engineering of Complex Computer Systems, 2002, pp. 135–144. IEEE (2002)
Chen, M.H., Kao, H.M.: Testing object-oriented programs-an integrated approach. In: 1999 Proceedings 10th International Symposium on Software Reliability Engineering, pp. 73–82. IEEE (1999)
Aho, A.V., Sethi, R., Ullman, J.D.: Compilers: Principles, Techniques, and Tools. Addison Wesley Publishing Company, Boston (1986)
Graphviz open source graph visualization software. https://www.graphviz.org/
Tonella, P., Potrich, A.: Reverse Engineering of Object Oriented Code. Monographs in Computer Science. Springer, New York (2005). https://doi.org/10.1007/b102522
Charalampidou, S., Ampatzoglou, A., Chatzigeorgiou, A., Gkortzis, A., Avgeriou, P.: Identifying extract method refactoring opportunities based on functional relevance. IEEE Trans. Softw. Eng. 4310, 954–974 (2016)
Kaya, M., Fawcett, J.W.: Identification of extract method refactoring opportunities through analysis of variable declarations and uses. Int. J. Softw. Eng. Knowl. Eng. 2701, 1–21 (2016)
Kaya, M., Fawcett, J.W.: Identifying extract method opportunities based on variable references (s). In: SEKE, pp. 153–158 (2013)
Clarke, D., Wrigstad, T., Noble, J.: Aliasing in Object-Oriented Programming: Types, Analysis and Verification, vol. 7850. Springer, New York (2013). https://doi.org/10.1007/978-3-642-36946-9
Zou, Y., Hung, M.: An approach for extracting workflows from e-commerce applications. In: 2006 14th IEEE International Conference on Program Comprehension, ICPC 2006 , pp. 127–136. IEEE (2006)
Gaaloul, W., Gaaloul, K., Bhiri, S., Haller, A., Hauswirth, M.: Log-based transactional workflow mining. Distrib. Parallel Databases 25, 193–240 (2009)
Schur, M., Roth, A., Zeller, A.: Mining workflow models from web applications. IEEE Trans. Softw. Eng. 41, 1184–1201 (2015)
Schumacher, P., Minor, M., Walter, K., Bergmann, R.: Extraction of procedural knowledge from the web: a comparison of two workflow extraction approaches. In: Proceedings of the 21st International Conference on World Wide Web, pp. 739–747. ACM (2012)
Buy, U., Orso, A., Pezze, M.: Automated testing of classes. In: ACM SIGSOFT Software Engineering Notes, vol. 25, pp. 39–48. ACM, New York (2000)
Chardigny, S., Seriai, A.: Software architecture recovery process based on object-oriented source code and documentation. In: Babar, M.A., Gorton, I. (eds.) ECSA 2010. LNCS, vol. 6285, pp. 409–416. Springer, Heidelberg (2010). https://doi.org/10.1007/978-3-642-15114-9_35
Alshara, Z., Seriai, A.D., Tibermacine, C., Bouziane, H.L., Dony, C., Shatnawi, A.: Migrating large object-oriented applications into component-based ones: instantiation and inheritance transformation. In: ACM SIGPLAN Notices, vol. 51, pp. 55–64. ACM (2015)
Author information
Authors and Affiliations
Corresponding author
Editor information
Editors and Affiliations
Rights and permissions
Copyright information
© 2019 Springer Nature Switzerland AG
About this paper
Cite this paper
Selmadji, A., Seriai, AD., Bouziane, H.L., Dony, C. (2019). From Object-Oriented to Workflow: Refactoring of OO Applications into Workflows for an Efficient Resources Management in the Cloud. In: Damiani, E., Spanoudakis, G., Maciaszek, L. (eds) Evaluation of Novel Approaches to Software Engineering. ENASE 2018. Communications in Computer and Information Science, vol 1023. Springer, Cham. https://doi.org/10.1007/978-3-030-22559-9_9
Download citation
DOI: https://doi.org/10.1007/978-3-030-22559-9_9
Published:
Publisher Name: Springer, Cham
Print ISBN: 978-3-030-22558-2
Online ISBN: 978-3-030-22559-9
eBook Packages: Computer ScienceComputer Science (R0)