Microservices: A Language-Based Approach

Microservices is an emerging development paradigm where software is obtained by composing autonomous entities, called (micro)services. However, microservice systems are currently developed using general-purpose programming languages that do not provide dedicated abstractions for service composition. Instead, current practice is focused on the deployment aspects of microservices, in particular by using containerization. In this chapter, we make the case for a language-based approach to the engineering of microservice architectures, which we believe is complementary to current practice. We discuss the approach in general, and then we instantiate it in terms of the Jolie programming language.

[1]  Fabrizio Montesi,et al.  Programming Services with Correlation Sets , 2011, ICSOC.

[2]  Fabrizio Montesi,et al.  Process-aware web programming with Jolie , 2013, SAC '13.

[3]  Schahram Dustdar,et al.  Microservices: Migration of a Mission Critical System , 2017, IEEE Transactions on Services Computing.

[4]  Gianluigi Zavattaro,et al.  Service-Oriented Programming with Jolie , 2014, Web Services Foundations.

[5]  Ivan Lanese,et al.  Microservices: How To Make Your Application Scale , 2017, Ershov Informatics Conference.

[6]  Fabrizio Montesi,et al.  Microservices: Yesterday, Today, and Tomorrow , 2017, Present and Ulterior Software Engineering.

[7]  Gianluigi Zavattaro,et al.  Composing Services with JOLIE , 2007, Fifth European Conference on Web Services (ECOWS'07).

[8]  Francisco Curbera,et al.  Web Services Business Process Execution Language Version 2.0 , 2007 .

[9]  Mazin S. Yousif,et al.  Microservices , 2016, IEEE Cloud Comput..

[10]  Dirk Merkel,et al.  Docker: lightweight Linux containers for consistent development and deployment , 2014 .

[11]  David S. Rosenblum,et al.  QoS-Aware Service Composition in Dino , 2007, ECOWS 2007.

[12]  Ivan Lanese,et al.  Foundations of Session Types and Behavioural Contracts , 2016, ACM Comput. Surv..

[13]  Fabrizio Montesi,et al.  Data-Driven Workflows for Microservices: Genericity in Jolie , 2015, 2016 IEEE 30th International Conference on Advanced Information Networking and Applications (AINA).

[14]  Roberto Gorrieri,et al.  SOCK : A calculus for service oriented computing , 2006 .

[15]  Albert Y. Zomaya,et al.  A Survey of Mobile Device Virtualization , 2016, ACM Comput. Surv..

[16]  P. Cochat,et al.  Et al , 2008, Archives de pediatrie : organe officiel de la Societe francaise de pediatrie.

[17]  Francis G. McCabe,et al.  Reference Model for Service Oriented Architecture 1.0 , 2006 .

[18]  Robin Milner,et al.  A Calculus of Communicating Systems , 1980, Lecture Notes in Computer Science.

[19]  Zhixian Yan,et al.  Business Process Modeling: Classifications and Perspectives , 2007, BPSC.

[20]  Sam Newman,et al.  Building Microservices , 2015 .

[21]  Robert C. Martin Agile Software Development, Principles, Patterns, and Practices , 2002 .