Fog Computing pp 153-181 | Cite as

Specifying Software Services for Fog Computing Architectures Using Recursive Model Transformations

  • Nuno SantosEmail author
  • Helena Rodrigues
  • Jaime Pereira
  • Francisco Morais
  • Raquel Martins
  • Nuno Ferreira
  • Ricardo Abreu
  • Ricardo J. Machado


Due to massive amounts of data transfer between smart devices, the adoption of mobile Internet and Internet of Things (IoT) within Cloud Computing applications has resulted in numerous issues including data decentralizing challenges. As a resolution, a new service-oriented approach called Fog Computing has appeared to resolve at least some of these. However, the design of Fog Computing architectures also lacks a systematized approach for using models aiming to abstract the fog environments’ services specification. In this context, this chapter proposes the use of a set of software engineering approaches for Fog-based architecture design, centered in UML artifacts and executing the four-step-rule-set (4SRS) method. Here, the Fog Computing microservices are modeled in SoaML’s Service Participant, Capabilities, Service Interface, and Service Architecture diagrams. The approach is demonstrated within a research project that aims to develop a set of services for Cloud, Fog, and IoT paradigms in a distributed industrial environment.


Logical architectures Fog Computing IoT Service-oriented architecture SOA Requirements elicitation Architecture design Recursive refinement UML SoaML Microservices IoT 



This work was developed within the project UH4SP: Unified Hub for Smart Plants (Project ID 017871), under Portuguese National Grants Program for R&D projects (P2020—SI IDT), COMPETE: POCI-01-0145-FEDER-007043 and FCT—Fundação para a Ciência e Tecnologia within the Project Scope: UID/CEC/00319/2013.


  1. 1.
    Vaquero LM, Rodero-Merino L, Gradiant Vigo L (2014) Finding your way in the fog: towards a comprehensive definition of fog computing. ACM SIGCOMM Comput Commun Rev 44:27–32CrossRefGoogle Scholar
  2. 2.
    Machado RJ, Fernandes, JM, Monteiro P, Rodrigues H (2005) Transformation of UML models for service-oriented software architecturesGoogle Scholar
  3. 3.
    Santos N, Ferreira N, Machado RJ (2017) Transition from information systems to service-oriented logical architectures: formalizing steps and rules with QVT. In: Ramachandran M, Mahmood Z (eds) Requirements engineering for service and cloud computing. Springer, Cham, pp 247–270CrossRefGoogle Scholar
  4. 4.
    Salgado CE, Teixeira J, Santos N, Machado RJ, Maciel RSP (2015) A SoaML approach for derivation of a process-oriented logical architecture from use cases. Explor Serv Sci 201:80–94Google Scholar
  5. 5.
    OMG (2012) Service oriented architecture Modeling Language (SoaML) SpecificationGoogle Scholar
  6. 6.
    Lewis J, Fowler M (2014) Microservices: a definition of this new architectural term.
  7. 7.
    de Brito MS, Hoque S, Magedanz T, Steinke R, Willner A, Nehls D, Keils O, Schreiner F (2017) A service orchestration architecture for Fog-enabled infrastructures. In: 2017 second international IEEE conference on fog and mobile edge computing (FMEC), pp 127–132Google Scholar
  8. 8.
    Ai Y, Peng M, Zhang K (2017) Edge computing technologies for internet of things: a primer. Digit Commun NetwGoogle Scholar
  9. 9.
    OpenFog Consortium Architecture Working Group (2017) OpenFog reference architecture for fog computingGoogle Scholar
  10. 10.
    Bonomi F, Milito R, Zhu J, Addepalli S (2012) Fog computing and its role in the internet of things. In: Proceedings of the first edition of the MCC workshop on Mobile Cloud computing—MCC ’12. p 13. ACM Press, New York, NY, USAGoogle Scholar
  11. 11.
  12. 12.
    Satyanarayanan M, Bahl P, Caceres R, Davies N (2009) The case for VM-based cloudlets in mobile computing. IEEE Pervasive Comput 8:14–23CrossRefGoogle Scholar
  13. 13.
    Patel M, Hu Y, Hédé IBM P, Joubert J, Thornton C, Naughton B, Roldan Ramos J, Chan C, Young V, Jin Tan S, Lynch D, Docomo N, Abeta S, Chen L, Shimizu Vodafone K, Neal A, Cosimini P, Pollard A, Klas G (2014) Mobile-edge computing—Introductory Technical White Paper.
  14. 14.
    Byers CC (2017) Architectural imperatives for fog computing: use cases, requirements, and architectural techniques for fog-enabled IoT networks. IEEE Commun Mag 55:14–20CrossRefGoogle Scholar
  15. 15.
    Datta SK, Bonnet C, Haerri J (2015) Fog computing architecture to enable consumer centric Internet of Things services. In: 2015 international symposium on consumer electronics (ISCE), IEEE, pp 1–2Google Scholar
  16. 16.
    Pahl C, Lee B (2015) Containers and clusters for edge cloud architectures—a technology review. In: 2015 3rd international conference on future internet of things and cloud, IEEE, pp 379–386Google Scholar
  17. 17.
    Oasis (2013) Topology and orchestration specification for cloud applications (TOSCA)Google Scholar
  18. 18.
    Bergmayr A, Troya J, Neubauer P, Wimmer M (2014) UML-based cloud application modeling with libraries, profiles, and templates. In: CloudMDE@ MoDELS, pp 56–65Google Scholar
  19. 19.
    Guillén J, Miranda J, Murillo JM, Canal C (2013) A UML profile for modeling MultiCloud applications. In: European conference on service-oriented and cloud computing, Springer, Berlin, Heidelberg, pp 180–187CrossRefGoogle Scholar
  20. 20.
    Brandtzæg E, Mosser S, Mohagheghi P (2012) Towards CloudML, a model-based approach to provision resources in the Clouds. In: 8th European conference on modelling foundations and applications (ECMFA), pp 18–27Google Scholar
  21. 21.
    Pereira A, Machado RJ, Fernandes JE, Teixeira J, Santos N, Lima A (2014) Using the NIST reference model for refining logical architectures. In: International conference on computational science and its applications, Springer, Berlin, Heidelberg, pp 185–199Google Scholar
  22. 22.
    Teixeira J, Salgado C, Machado RJ (2016) Modeling an IaaS broker based on two cloud computing reference models. In: IEEE international conference on cloud engineering workshop (IC2EW), IEEE, pp 166–171Google Scholar
  23. 23.
    Evans E (2004) Domain-driven design : tackling complexity in the heart of software. Addison-Wesley, BostonGoogle Scholar
  24. 24.
    OMG (2003) MDA guide version 1.0.1Google Scholar
  25. 25.
    Kruchten P (1995) The 4+1 view model of architecture. IEEE Softw 12:42–50CrossRefGoogle Scholar
  26. 26.
    Mell P, Grance T (2009) The NIST definition of cloud computingGoogle Scholar
  27. 27.
    Machado RJ, Fernandes J, Monteiro P, Rodrigues H (2006) Refinement of software architectures by recursive model transformations. Scholar
  28. 28.
    Ferreira N, Santos N, Machado RJ (2014) Modularization of logical software architectures for implementation with multiple teams. In: 2014 14th international conference on computational science and its applications, IEEE, pp. 1–11Google Scholar
  29. 29.
    Ferreira N, Santos N, Machado RJ, Fernandes JE, Gasevic D (2014) A V-model approach for business process requirements elicitation in cloud design. Adv Web Serv, 551–578Google Scholar

Copyright information

© Springer International Publishing AG, part of Springer Nature 2018

Authors and Affiliations

  • Nuno Santos
    • 1
    • 2
    Email author
  • Helena Rodrigues
    • 1
    • 2
  • Jaime Pereira
    • 1
    • 2
  • Francisco Morais
    • 1
    • 2
  • Raquel Martins
    • 1
    • 2
  • Nuno Ferreira
    • 2
    • 3
  • Ricardo Abreu
    • 4
  • Ricardo J. Machado
    • 1
    • 2
  1. 1.CCG/ZGDV InstituteGuimarãesPortugal
  2. 2.ALGORITMI Centre, School of EngineeringUniversity of MinhoGuimarãesPortugal
  3. 3.i2S—Insurance Knowledge, S.A.PortoPortugal
  4. 4.Cachapuz Bilanciai GroupBragaPortugal

Personalised recommendations