Abstract
The implementation of a state machine for a system or a subsystem in the form of an event-driven architecture (EDA) in a microservice environment requires model transformations. This paper presents a model-to-model transformation for this case based on UML state machines, UML class diagrams for the microservice architecture, a mathematical specification of the transformations and the implementation of the transformation with QVTo. A run-time state or workflow engine as a single-point-of-failure can be avoided with the choreographic and event-driven approach persevering the ability to generate a state machine as an additional system component that provides the advantages of a state or workflow engine features like monitoring, and visualization.
This is a preview of subscription content, log in via an institution.
Buying options
Tax calculation will be finalised at checkout
Purchases are for personal use only
Learn about institutional subscriptionsReferences
IBM: Rational Statemate. https://www-03.ibm.com/software/products/en/ratistatt
Visial Paradigm: How to generate code from state machine diagram. https://www.visual-paradigm.com/tutorials/how-to-generate-code-from-state-machine-diagram.jsp
Krause, L.: Microservices: Patterns and Applications: Designing Fine-Grained Services by Applying Patterns (2015)
Richardson, C.: Refactoring a Monolith into Microservices. https://www.nginx.com/blog/refactoring-a-monolith-into-microservices/
Alagarasan, V.: Seven Microservices Anti-patterns. https://www.infoq.com/articles/seven-uservices-antipatterns
Gill, A.: Finite State Machines. Introduction to the Theory of Finite-State Machines. McGraw-Hill, New York (1962)
Harel, D.: A visual formalism for complex systems. Sci. Comput. Program. 231–274 (1987)
Object Management Group (OMG): OMG Unified Modeling Language (OMG UML), version 2.5, document formal/2015-03-01 (2015)
Liu, S., et al.: A formal semantics for complete UML state machines with communications. In: Johnsen, E.B., Petre, L. (eds.) Integrated Formal Methods, IFM 2013. Lecture Notes in Computer Science, vol. 7940. Springer, Heidelberg (2013)
Microsoft Developer Network: State Machine Workflows. https://msdn.microsoft.com/en-us/library/ms735945(v=vs.90).aspx
Rozenburg, G., Engelfriet, J.: Elementary net systems. In: Reisig, W., Rozenberg, G. (eds.) Lectures on Petri Nets I: Basic Models – Advances in Petri Nets. Lecture Notes in Computer Science, vol. 1491, pp. 12–121. Springer (1998)
Newman, S.: Building Microservices: Designing Fine-Grained Systems, 1st edn. O’Reilly Media, Sebastopol (2015)
Richardson, C.: http://microservices.io
Amundsen, M., McLarty, M., Mitra, R., Nadareishvili, I.: Microservice Architecture - Aligning Principles, Practices, and Culture. O’Reilly Media, Sebastopol (2016)
Lewis, J., Fowler, M.: Microservices - a definition of this new architectural term. https://martinfowler.com/articles/microservices.html
Morris, B.: How big is a microservice? http://www.ben-morris.com/how-big-is-a-microservice
Wolf, O.: Introduction into Microservices. https://specify.io/concepts/microservices#choreography
Bruns, R., Dunkel, J.: Event-Driven Architecture - Softwarearchitektur für ereignisgesteuerte Geschäftsprozesse. Xpert.press, Sringer (2010)
Fowler, M.: Event logs, State Flows, Microservices…. How do these relate? https://garysmicroservices.wordpress.com/2016/01/06/event-logs-state-flows-microservices-how-do-these-relate
Hohpe, G., Woolf, B.: Enterprise Integration Patterns: Designing, Building, and Deploying Messaging Solutions, 1st edn. Addison-Wesley, Boston (2003)
Tikhonova, T., Willemse, T.: Documenting and designing QVTo model transformations through mathematics. In: Lorenz, P., Cardoso, J., Maciaszek, L., van Sinderen, M. (eds.) Software Technologies ICSOFT 2015, pp. 344–359. Springer (2015)
OMG (Object Management Group): MOF Query/View/Transformation (QVT). Vers. 1.3, doc. formal/16-06-03 (2016)
OMG (Object Management Group): MOF Model to Text Transformation Language (MOFM2T). Vers. 1.0, doc. formal/2008-01-16 (2008)
Fowler, M.: CQRS. https://martinfowler.com/bliki/CQRS.html
Netflix Conductor: A microservices orchestrator. https://medium.com/netflix-techblog/netflix-conductor-a-microservices-orchestrator-2e8d4771bf40
Rücker, B.: Why service collaboration needs choreography AND orchestration. https://blog.bernd-ruecker.com/why-service-collaboration-needs-choreography-and-orchestration-239c4f9700fa
Webster, C.: From APIs to Microservices: Workflow Orchestration and Choreography Across Healthcare Organizations (2016)
Author information
Authors and Affiliations
Corresponding author
Editor information
Editors and Affiliations
Rights and permissions
Copyright information
© 2019 Springer International Publishing AG, part of Springer Nature
About this paper
Cite this paper
Petrasch, R. (2019). Transformation of State Machines for a Microservice-Based Event-Driven Architecture: A Proof-of-Concept. In: Unger, H., Sodsee, S., Meesad, P. (eds) Recent Advances in Information and Communication Technology 2018. IC2IT 2018. Advances in Intelligent Systems and Computing, vol 769. Springer, Cham. https://doi.org/10.1007/978-3-319-93692-5_32
Download citation
DOI: https://doi.org/10.1007/978-3-319-93692-5_32
Published:
Publisher Name: Springer, Cham
Print ISBN: 978-3-319-93691-8
Online ISBN: 978-3-319-93692-5
eBook Packages: Intelligent Technologies and RoboticsIntelligent Technologies and Robotics (R0)