This document proposes a model-driven approach for automatically migrating monolithic applications to microservices. It involves defining domain-specific languages for describing microservices and their deployment. A Microservices Miner would analyze a monolithic application to identify potential microservices. A generator would then transform microservice models into executable code and Dockerfiles. This approach aims to reduce the manual effort of migration by raising the level of abstraction and introducing automation through model-driven techniques. Open challenges include developing more abstract microservices modeling, automated microservice extraction from code, modeling microservice composition, and supporting multiple microservice technologies from the same models.
Enacting Emergent Configurations in the IoT through Domain Objectsantbucc
In this paper, we: (i) present the IoT-FED architectural
approach to enable the automated formation and enactment of ECs. IoT-FED exploits heterogeneous and independently developed things, IoT services, and applications which are modeled as Domain Objects (DOs), a service-based
formalism. Additionally, we (ii) discuss the prototype we developed and the experiments run in our IoT lab, for validation purposes
A Model-Driven Solution to support Smart Mobility Planningantbucc
Multimodal journey planners have been introduced with the goal
to provide travellers with itineraries involving two or more means
of transportation to go from one location to another within a city.
Most of them take into account user preferences, their habits and
are able to notify travellers with real time traffic information, delays,schedules update, etc.. To make urban mobility more sustainable, the journey planners of the future must include: (1) techniques to generate journey alternatives that take into account not only user preferences and needs but also specific city challenges and local mobility operators resources; (2) agile development approaches to make the update of the models and information used by the journey planners a self-adaptive task; (3) techniques for the continuous journeys monitoring able to understand when a current journey is no longer valid and to propose alternatives. In this paper
we present the experiences matured during the development of a
complete solution for mobility planning based on model-driven engineering techniques. Mobility challenges, resources and remarks are modelled by corresponding languages, which in turn support the automated derivation of a smart journey planner. By means of the introduced automation, it has been possible to reduce the complexity of encoding journey planning policies and to make journey planners more flexible and responsive with respect to adaptation needs.
In this presentation we will talk about the Microservices approach and how it can be implemented in IoT ecosystem.
The microservice architectural style is an approach to developing a single application as a suite of small services, each running in its own process and communicating with lightweight mechanisms, often an HTTP resource API.
A possible solution to easily control the IoT systems is to create an intelligent platform using a microservices architecture.
Enable rapid service provisioning with cics, microservices and the z/OS Provi...Matthew Webster
Learn how to take advantage of microservices as an architectural pattern from an industry-wide point of view through to CICS. Understand how microservices can help your development team become leaner and more agile, and how they can you help adopt DevOps processes. You'll learn how they're different from other architectural patterns like Service Oriented Architectures (SOA), and why z Systems and CICS are a good fit for them. We'll cover container technologies and see demos of various scenarios using the IBM z/OS Provisioning Toolkit.
A microservices architecture is a type of application architecture where the application is developed as a collection of services. It provides the framework to develop, deploy, and maintain microservices architecture diagrams and services independently.
Microservices are the blocks of your application and perform different services, while REST APIs work as the glue or the bridge that integrates these separate microservices. APIs can be made up, wholly or partially, out of microservices. Developers can use Microservices for a lot more, though
Enacting Emergent Configurations in the IoT through Domain Objectsantbucc
In this paper, we: (i) present the IoT-FED architectural
approach to enable the automated formation and enactment of ECs. IoT-FED exploits heterogeneous and independently developed things, IoT services, and applications which are modeled as Domain Objects (DOs), a service-based
formalism. Additionally, we (ii) discuss the prototype we developed and the experiments run in our IoT lab, for validation purposes
A Model-Driven Solution to support Smart Mobility Planningantbucc
Multimodal journey planners have been introduced with the goal
to provide travellers with itineraries involving two or more means
of transportation to go from one location to another within a city.
Most of them take into account user preferences, their habits and
are able to notify travellers with real time traffic information, delays,schedules update, etc.. To make urban mobility more sustainable, the journey planners of the future must include: (1) techniques to generate journey alternatives that take into account not only user preferences and needs but also specific city challenges and local mobility operators resources; (2) agile development approaches to make the update of the models and information used by the journey planners a self-adaptive task; (3) techniques for the continuous journeys monitoring able to understand when a current journey is no longer valid and to propose alternatives. In this paper
we present the experiences matured during the development of a
complete solution for mobility planning based on model-driven engineering techniques. Mobility challenges, resources and remarks are modelled by corresponding languages, which in turn support the automated derivation of a smart journey planner. By means of the introduced automation, it has been possible to reduce the complexity of encoding journey planning policies and to make journey planners more flexible and responsive with respect to adaptation needs.
In this presentation we will talk about the Microservices approach and how it can be implemented in IoT ecosystem.
The microservice architectural style is an approach to developing a single application as a suite of small services, each running in its own process and communicating with lightweight mechanisms, often an HTTP resource API.
A possible solution to easily control the IoT systems is to create an intelligent platform using a microservices architecture.
Enable rapid service provisioning with cics, microservices and the z/OS Provi...Matthew Webster
Learn how to take advantage of microservices as an architectural pattern from an industry-wide point of view through to CICS. Understand how microservices can help your development team become leaner and more agile, and how they can you help adopt DevOps processes. You'll learn how they're different from other architectural patterns like Service Oriented Architectures (SOA), and why z Systems and CICS are a good fit for them. We'll cover container technologies and see demos of various scenarios using the IBM z/OS Provisioning Toolkit.
A microservices architecture is a type of application architecture where the application is developed as a collection of services. It provides the framework to develop, deploy, and maintain microservices architecture diagrams and services independently.
Microservices are the blocks of your application and perform different services, while REST APIs work as the glue or the bridge that integrates these separate microservices. APIs can be made up, wholly or partially, out of microservices. Developers can use Microservices for a lot more, though
Approach to Unified Mobile Application Implementation for Multisystem Integra...RapidValue
Enterprise mobility is now evolving with a new trend of providing one stop customized mobile solution integrating different legacy systems i.e. a single mobile app can talk
to different ERP, CRM, and Microsoft (MS) Office systems and provide customized mashed up information.
This paper examines some of the approaches to extend different legacy systems on to a unified (single) mobile platform and provides a scope for future integration. The
paper further describes the different cloud-based or on-premise architectural solution options.
Full lifecycle of a microservice: how to
realize a fault-tolerant and reliable
architecture and deliver it as a Docker
container or in a Cloud environment
Microservice architecture By Touraj Ebrahimi.
comparison between monolithic, SOA and microservices architecture.
microservices implementation base on spring cloud and netflix oss.
why we should migrate from a monolithic application to a microservice architecture.
Senior Java Developer and Java Architect.
github: toraj58
bitbucket: toraj58
twitter: @toraj58
youtube channel: https://www.youtube.com/channel/UCcLcw6sTk_8G6EgfBr0E5uA
Basics of Java Microservices: Frameworks, Examples & Use CasesGrapesTech Solutions
Microservices are a design approach that divides huge architectures into small. Learn the basics, frameworks, examples, and use cases of Java Microservices.
Microservices design principles establish some standard practices for planning, developing, and implementing a distributed architecture for your application. Read about some of the most common characteristics of design principles, its examples, and implementations carried out by various companies worldwide.
It's easy to say... Microservices! Reality is we need to learn and apply concepts coming from many disciplines like SOA, EDA and DDD just to name a few! Mix them with some ALM and technical processes around Packaging and Deploying... and maybe then you get a true Microservices solution.
This is the video capture of the meetup described at https://www.meetup.com/lifemichael/events/287981390/ This video includes the two talks the meetup included. The first one is an introductory talk for the topic. The second one covers the SAGA design pattern.
Best Spring Boot & MicroServices Classroom & Online Training Naresh-ITmanoharjgpsolutions
✍️Enroll Now: https://bit.ly/3U9xjlx
👉Attend Free Demo On 𝗦𝗽𝗿𝗶𝗻𝗴 𝗕𝗼𝗼𝘁 & 𝗠𝗶𝗰𝗿𝗼𝗦𝗲𝗿𝘃𝗶𝗰𝗲𝘀 𝗯𝘆 𝗠𝗿. 𝗡𝗮𝘁𝗮𝗿𝗮𝗷.
📅Demo on: 15th April @ 9:00 AM (IST).
For More Details:
🌐Visit: https://nareshit.com/new-batches
Call: +91-9000994007, 9000994008,
9121104164 | support@nareshit.com
📩Join us on Telegram: https://t.me/javalatestupdates
📩Join us on WhatsApp: https://bit.ly/3K4bU7M
Introducing MartianBank - a microservice demo application for cloud-native pr...Cisco Tech Blog
MartianBank is an open-source microservices demo application that is designed to showcase cloud-native products. It allows customers to access and manage their bank accounts, perform financial transactions, locate ATMs, and apply for loans.
Report about Software Architecture for Robotics, for class of Introduction to Robotics of Prof. Sukhan Lee, of department of computer engineering of Sungkyunkwan University.
Student: Lorran Pegoretti.
Suwon, South Korea, December 2013
Climate Science Flows: Enabling Petabyte-Scale Climate Analysis with the Eart...Globus
The Earth System Grid Federation (ESGF) is a global network of data servers that archives and distributes the planet’s largest collection of Earth system model output for thousands of climate and environmental scientists worldwide. Many of these petabyte-scale data archives are located in proximity to large high-performance computing (HPC) or cloud computing resources, but the primary workflow for data users consists of transferring data, and applying computations on a different system. As a part of the ESGF 2.0 US project (funded by the United States Department of Energy Office of Science), we developed pre-defined data workflows, which can be run on-demand, capable of applying many data reduction and data analysis to the large ESGF data archives, transferring only the resultant analysis (ex. visualizations, smaller data files). In this talk, we will showcase a few of these workflows, highlighting how Globus Flows can be used for petabyte-scale climate analysis.
Software Engineering, Software Consulting, Tech Lead.
Spring Boot, Spring Cloud, Spring Core, Spring JDBC, Spring Security,
Spring Transaction, Spring MVC,
Log4j, REST/SOAP WEB-SERVICES.
More Related Content
Similar to Towards Automatic Migration to Microservices
Approach to Unified Mobile Application Implementation for Multisystem Integra...RapidValue
Enterprise mobility is now evolving with a new trend of providing one stop customized mobile solution integrating different legacy systems i.e. a single mobile app can talk
to different ERP, CRM, and Microsoft (MS) Office systems and provide customized mashed up information.
This paper examines some of the approaches to extend different legacy systems on to a unified (single) mobile platform and provides a scope for future integration. The
paper further describes the different cloud-based or on-premise architectural solution options.
Full lifecycle of a microservice: how to
realize a fault-tolerant and reliable
architecture and deliver it as a Docker
container or in a Cloud environment
Microservice architecture By Touraj Ebrahimi.
comparison between monolithic, SOA and microservices architecture.
microservices implementation base on spring cloud and netflix oss.
why we should migrate from a monolithic application to a microservice architecture.
Senior Java Developer and Java Architect.
github: toraj58
bitbucket: toraj58
twitter: @toraj58
youtube channel: https://www.youtube.com/channel/UCcLcw6sTk_8G6EgfBr0E5uA
Basics of Java Microservices: Frameworks, Examples & Use CasesGrapesTech Solutions
Microservices are a design approach that divides huge architectures into small. Learn the basics, frameworks, examples, and use cases of Java Microservices.
Microservices design principles establish some standard practices for planning, developing, and implementing a distributed architecture for your application. Read about some of the most common characteristics of design principles, its examples, and implementations carried out by various companies worldwide.
It's easy to say... Microservices! Reality is we need to learn and apply concepts coming from many disciplines like SOA, EDA and DDD just to name a few! Mix them with some ALM and technical processes around Packaging and Deploying... and maybe then you get a true Microservices solution.
This is the video capture of the meetup described at https://www.meetup.com/lifemichael/events/287981390/ This video includes the two talks the meetup included. The first one is an introductory talk for the topic. The second one covers the SAGA design pattern.
Best Spring Boot & MicroServices Classroom & Online Training Naresh-ITmanoharjgpsolutions
✍️Enroll Now: https://bit.ly/3U9xjlx
👉Attend Free Demo On 𝗦𝗽𝗿𝗶𝗻𝗴 𝗕𝗼𝗼𝘁 & 𝗠𝗶𝗰𝗿𝗼𝗦𝗲𝗿𝘃𝗶𝗰𝗲𝘀 𝗯𝘆 𝗠𝗿. 𝗡𝗮𝘁𝗮𝗿𝗮𝗷.
📅Demo on: 15th April @ 9:00 AM (IST).
For More Details:
🌐Visit: https://nareshit.com/new-batches
Call: +91-9000994007, 9000994008,
9121104164 | support@nareshit.com
📩Join us on Telegram: https://t.me/javalatestupdates
📩Join us on WhatsApp: https://bit.ly/3K4bU7M
Introducing MartianBank - a microservice demo application for cloud-native pr...Cisco Tech Blog
MartianBank is an open-source microservices demo application that is designed to showcase cloud-native products. It allows customers to access and manage their bank accounts, perform financial transactions, locate ATMs, and apply for loans.
Report about Software Architecture for Robotics, for class of Introduction to Robotics of Prof. Sukhan Lee, of department of computer engineering of Sungkyunkwan University.
Student: Lorran Pegoretti.
Suwon, South Korea, December 2013
Similar to Towards Automatic Migration to Microservices (20)
Climate Science Flows: Enabling Petabyte-Scale Climate Analysis with the Eart...Globus
The Earth System Grid Federation (ESGF) is a global network of data servers that archives and distributes the planet’s largest collection of Earth system model output for thousands of climate and environmental scientists worldwide. Many of these petabyte-scale data archives are located in proximity to large high-performance computing (HPC) or cloud computing resources, but the primary workflow for data users consists of transferring data, and applying computations on a different system. As a part of the ESGF 2.0 US project (funded by the United States Department of Energy Office of Science), we developed pre-defined data workflows, which can be run on-demand, capable of applying many data reduction and data analysis to the large ESGF data archives, transferring only the resultant analysis (ex. visualizations, smaller data files). In this talk, we will showcase a few of these workflows, highlighting how Globus Flows can be used for petabyte-scale climate analysis.
Software Engineering, Software Consulting, Tech Lead.
Spring Boot, Spring Cloud, Spring Core, Spring JDBC, Spring Security,
Spring Transaction, Spring MVC,
Log4j, REST/SOAP WEB-SERVICES.
Unleash Unlimited Potential with One-Time Purchase
BoxLang is more than just a language; it's a community. By choosing a Visionary License, you're not just investing in your success, you're actively contributing to the ongoing development and support of BoxLang.
Accelerate Enterprise Software Engineering with PlatformlessWSO2
Key takeaways:
Challenges of building platforms and the benefits of platformless.
Key principles of platformless, including API-first, cloud-native middleware, platform engineering, and developer experience.
How Choreo enables the platformless experience.
How key concepts like application architecture, domain-driven design, zero trust, and cell-based architecture are inherently a part of Choreo.
Demo of an end-to-end app built and deployed on Choreo.
TROUBLESHOOTING 9 TYPES OF OUTOFMEMORYERRORTier1 app
Even though at surface level ‘java.lang.OutOfMemoryError’ appears as one single error; underlyingly there are 9 types of OutOfMemoryError. Each type of OutOfMemoryError has different causes, diagnosis approaches and solutions. This session equips you with the knowledge, tools, and techniques needed to troubleshoot and conquer OutOfMemoryError in all its forms, ensuring smoother, more efficient Java applications.
Why React Native as a Strategic Advantage for Startup Innovation.pdfayushiqss
Do you know that React Native is being increasingly adopted by startups as well as big companies in the mobile app development industry? Big names like Facebook, Instagram, and Pinterest have already integrated this robust open-source framework.
In fact, according to a report by Statista, the number of React Native developers has been steadily increasing over the years, reaching an estimated 1.9 million by the end of 2024. This means that the demand for this framework in the job market has been growing making it a valuable skill.
But what makes React Native so popular for mobile application development? It offers excellent cross-platform capabilities among other benefits. This way, with React Native, developers can write code once and run it on both iOS and Android devices thus saving time and resources leading to shorter development cycles hence faster time-to-market for your app.
Let’s take the example of a startup, which wanted to release their app on both iOS and Android at once. Through the use of React Native they managed to create an app and bring it into the market within a very short period. This helped them gain an advantage over their competitors because they had access to a large user base who were able to generate revenue quickly for them.
We describe the deployment and use of Globus Compute for remote computation. This content is aimed at researchers who wish to compute on remote resources using a unified programming interface, as well as system administrators who will deploy and operate Globus Compute services on their research computing infrastructure.
Large Language Models and the End of ProgrammingMatt Welsh
Talk by Matt Welsh at Craft Conference 2024 on the impact that Large Language Models will have on the future of software development. In this talk, I discuss the ways in which LLMs will impact the software industry, from replacing human software developers with AI, to replacing conventional software with models that perform reasoning, computation, and problem-solving.
Modern design is crucial in today's digital environment, and this is especially true for SharePoint intranets. The design of these digital hubs is critical to user engagement and productivity enhancement. They are the cornerstone of internal collaboration and interaction within enterprises.
Globus Compute wth IRI Workflows - GlobusWorld 2024Globus
As part of the DOE Integrated Research Infrastructure (IRI) program, NERSC at Lawrence Berkeley National Lab and ALCF at Argonne National Lab are working closely with General Atomics on accelerating the computing requirements of the DIII-D experiment. As part of the work the team is investigating ways to speedup the time to solution for many different parts of the DIII-D workflow including how they run jobs on HPC systems. One of these routes is looking at Globus Compute as a way to replace the current method for managing tasks and we describe a brief proof of concept showing how Globus Compute could help to schedule jobs and be a tool to connect compute at different facilities.
A Comprehensive Look at Generative AI in Retail App Testing.pdfkalichargn70th171
Traditional software testing methods are being challenged in retail, where customer expectations and technological advancements continually shape the landscape. Enter generative AI—a transformative subset of artificial intelligence technologies poised to revolutionize software testing.
Exploring Innovations in Data Repository Solutions - Insights from the U.S. G...Globus
The U.S. Geological Survey (USGS) has made substantial investments in meeting evolving scientific, technical, and policy driven demands on storing, managing, and delivering data. As these demands continue to grow in complexity and scale, the USGS must continue to explore innovative solutions to improve its management, curation, sharing, delivering, and preservation approaches for large-scale research data. Supporting these needs, the USGS has partnered with the University of Chicago-Globus to research and develop advanced repository components and workflows leveraging its current investment in Globus. The primary outcome of this partnership includes the development of a prototype enterprise repository, driven by USGS Data Release requirements, through exploration and implementation of the entire suite of the Globus platform offerings, including Globus Flow, Globus Auth, Globus Transfer, and Globus Search. This presentation will provide insights into this research partnership, introduce the unique requirements and challenges being addressed and provide relevant project progress.
Designing for Privacy in Amazon Web ServicesKrzysztofKkol1
Data privacy is one of the most critical issues that businesses face. This presentation shares insights on the principles and best practices for ensuring the resilience and security of your workload.
Drawing on a real-life project from the HR industry, the various challenges will be demonstrated: data protection, self-healing, business continuity, security, and transparency of data processing. This systematized approach allowed to create a secure AWS cloud infrastructure that not only met strict compliance rules but also exceeded the client's expectations.
Providing Globus Services to Users of JASMIN for Environmental Data AnalysisGlobus
JASMIN is the UK’s high-performance data analysis platform for environmental science, operated by STFC on behalf of the UK Natural Environment Research Council (NERC). In addition to its role in hosting the CEDA Archive (NERC’s long-term repository for climate, atmospheric science & Earth observation data in the UK), JASMIN provides a collaborative platform to a community of around 2,000 scientists in the UK and beyond, providing nearly 400 environmental science projects with working space, compute resources and tools to facilitate their work. High-performance data transfer into and out of JASMIN has always been a key feature, with many scientists bringing model outputs from supercomputers elsewhere in the UK, to analyse against observational or other model data in the CEDA Archive. A growing number of JASMIN users are now realising the benefits of using the Globus service to provide reliable and efficient data movement and other tasks in this and other contexts. Further use cases involve long-distance (intercontinental) transfers to and from JASMIN, and collecting results from a mobile atmospheric radar system, pushing data to JASMIN via a lightweight Globus deployment. We provide details of how Globus fits into our current infrastructure, our experience of the recent migration to GCSv5.4, and of our interest in developing use of the wider ecosystem of Globus services for the benefit of our user community.
How to Position Your Globus Data Portal for Success Ten Good PracticesGlobus
Science gateways allow science and engineering communities to access shared data, software, computing services, and instruments. Science gateways have gained a lot of traction in the last twenty years, as evidenced by projects such as the Science Gateways Community Institute (SGCI) and the Center of Excellence on Science Gateways (SGX3) in the US, The Australian Research Data Commons (ARDC) and its platforms in Australia, and the projects around Virtual Research Environments in Europe. A few mature frameworks have evolved with their different strengths and foci and have been taken up by a larger community such as the Globus Data Portal, Hubzero, Tapis, and Galaxy. However, even when gateways are built on successful frameworks, they continue to face the challenges of ongoing maintenance costs and how to meet the ever-expanding needs of the community they serve with enhanced features. It is not uncommon that gateways with compelling use cases are nonetheless unable to get past the prototype phase and become a full production service, or if they do, they don't survive more than a couple of years. While there is no guaranteed pathway to success, it seems likely that for any gateway there is a need for a strong community and/or solid funding streams to create and sustain its success. With over twenty years of examples to draw from, this presentation goes into detail for ten factors common to successful and enduring gateways that effectively serve as best practices for any new or developing gateway.
Listen to the keynote address and hear about the latest developments from Rachana Ananthakrishnan and Ian Foster who review the updates to the Globus Platform and Service, and the relevance of Globus to the scientific community as an automation platform to accelerate scientific discovery.
Strategies for Successful Data Migration Tools.pptxvarshanayak241
Data migration is a complex but essential task for organizations aiming to modernize their IT infrastructure and leverage new technologies. By understanding common challenges and implementing these strategies, businesses can achieve a successful migration with minimal disruption. Data Migration Tool like Ask On Data play a pivotal role in this journey, offering features that streamline the process, ensure data integrity, and maintain security. With the right approach and tools, organizations can turn the challenge of data migration into an opportunity for growth and innovation.
Code reviews are vital for ensuring good code quality. They serve as one of our last lines of defense against bugs and subpar code reaching production.
Yet, they often turn into annoying tasks riddled with frustration, hostility, unclear feedback and lack of standards. How can we improve this crucial process?
In this session we will cover:
- The Art of Effective Code Reviews
- Streamlining the Review Process
- Elevating Reviews with Automated Tools
By the end of this presentation, you'll have the knowledge on how to organize and improve your code review proces
Understanding Globus Data Transfers with NetSageGlobus
NetSage is an open privacy-aware network measurement, analysis, and visualization service designed to help end-users visualize and reason about large data transfers. NetSage traditionally has used a combination of passive measurements, including SNMP and flow data, as well as active measurements, mainly perfSONAR, to provide longitudinal network performance data visualization. It has been deployed by dozens of networks world wide, and is supported domestically by the Engagement and Performance Operations Center (EPOC), NSF #2328479. We have recently expanded the NetSage data sources to include logs for Globus data transfers, following the same privacy-preserving approach as for Flow data. Using the logs for the Texas Advanced Computing Center (TACC) as an example, this talk will walk through several different example use cases that NetSage can answer, including: Who is using Globus to share data with my institution, and what kind of performance are they able to achieve? How many transfers has Globus supported for us? Which sites are we sharing the most data with, and how is that changing over time? How is my site using Globus to move data internally, and what kind of performance do we see for those transfers? What percentage of data transfers at my institution used Globus, and how did the overall data transfer performance compare to the Globus users?
1. Distributed Adaptive Systems (DAS) Unit
A Model-Driven Approach Towards
Automatic Migration to Microservices
Antonio Bucchiarone, Kemal Soysal, Claudio Guidi
bucchiarone@fbk.eu, kemal.Soysal@ls-it-solutions.de, cguidi@italianasoftware.com
LS IT-Solutions GmbH
2. Microservices 2020 Towards Automatic Migration to Microservices 2
Introduction
Scalability and Availability of modern software systems.
Microservices is an architectural style originating from SOA.
Microservices to realize complex systems.
A set of small services that operate independently.
Services that are easy to maintain and evolve.
Each service represents a single business capability.
Each service can be developed and managed by a single team.
Migration from monolithic applications to microservices-based
applications.
Is a challenging task that very often is done manually and without a
supporting tool.
3. Microservices 2020 Towards Automatic Migration to Microservices 3
The microservice paradigm still misses a conceptual
model able to support engineers starting from early
phases of development.
Research Challenge
conceptual model
A Model-Driven approach for
the automatic migration to microservices.
4. Microservices 2020 Towards Automatic Migration to Microservices 4
Model-Driven Engineering
Software Engineering Methodology that proposes to shift the
focus of the development from coding to modelling.
The goal is to reduce the complexity of software development by
raising the level of abstraction:
Analyzing application properties earlier.
Introducing automation in the development process.
Models are expected to allow domain experts to reason about a
certain solution by means of concerns closer to their area of
expertise than to implementation details.
Model transformation techniques manipulate models to evaluate
the attributes of the application and generate implementation code.
5. Microservices 2020 Towards Automatic Migration to Microservices 5
Domain Specific Languages (DSLs)
Languages introduced for expressing problems by using terms
closer to a particular domain of application.
The definition of DSLs can be challenging due:
The nature of the specific domain.
How the concepts should be interconnected to ease the modelling
activity.
What kind of concrete syntaxes the users desire to exploits.
Etc…
To support the development of DSLs, it is common practice to use a
language workbench.
A toolkit supporting the definition of various aspects of the DSL under
development
Syntax, semantics, validation constraints, generators
Code competition, syntax coloring, find usages, refactoring, etc..
6. Microservices 2020 Towards Automatic Migration to Microservices 6
JetBrains MPS - I
Text-based meta-programming system that enables language-
oriented programming.
Open Source and used to implement languages with different
notations.
Based on MPS BaseLanguage is possible to define new custom
languages through extension and composition of concepts.
A new language is composed by different aspects making its
specification modular and therefore easy to maintain.
Structure Definition: Abstract Syntax Tree (AST) of a language as a
collection of concepts.
https://www.jetbrains.com/mps/
7. Microservices 2020 Towards Automatic Migration to Microservices 7
JetBrains MPS - II
Structure Definition aspect: Abstract Syntax Tree (AST) of a language as
a collection of concepts.
Editor Definition aspect deals with the definition of the concrete
syntax for a DSL:
It specifies the notation (i.e., tabular, diagram, tree, etc..) and the
interaction behavior of the editor.
Generators Definition aspect is used to define the denotational
semantics for the language concepts.
AST to text (model-to-text)
AST to AST (model-to-model)
Type System Definition and Constraints Definition aspects.
https://www.jetbrains.com/mps/
8. Microservices 2020 Towards Automatic Migration to Microservices 8
Jolie Language for Microservices
A programming language which offers a native linguistic tool for
defining microservices following a structured service-oriented
paradigm.
It provides an integrated syntax for defining API interfaces and types;
It provides specific communication primitives for dealing with
communication (synch, asynch).
It allows for defining the service behaviour in a workflow manner:
easy definition of orchestrators and coordinators of services.
https://www.jolie-lang.org/
9. Microservices 2020 Towards Automatic Migration to Microservices 9
Jolie Language for Microservices
Each operation comes with a request message and a response
message (synchronous operations).
https://www.jolie-lang.org/
10. Microservices 2020 Towards Automatic Migration to Microservices 10
Jolie Language for Microservices
Declarative Part where all the
interfaces and ports are
defined.
Behavioral Part where the
implementation of the
operations is provided.
The primitive execution defines
the execution modality of the
service (concurrent, sequential,
single).
https://www.jolie-lang.org/
11. Microservices 2020 Towards Automatic Migration to Microservices 11
Deploying a Jolie Service
The available image jolielang/jolie provides a core layer where both
Java and Jolie are installed.
Docker file allows for the creation of a docker image of the service
“calculator”.
https://www.jolie-lang.org/
12. Microservices 2020 Towards Automatic Migration to Microservices 12
Our Vision towards an Automatic Migration
There is an extreme and increasingly emerging need to migrate applications
from monolithic to microservices.
Rare are the approaches that try to make this process automatic and tool
supported.
Most of the migration approaches proposed are guided by the developers
experience and are not supported by a specific tool or language.
Towards the realization of a
general framework
for automatic migration to microservices.
13. Microservices 2020 Towards Automatic Migration to Microservices 13
Model-Driven Migration Approach
Two components, Two DSLs, and a set of Generators
16. Microservices 2020 Towards Automatic Migration to Microservices 16
The Deployment Language
Concepts of the
Deployment
Language
Dockerfile Editor
and Model
17. Microservices 2020 Towards Automatic Migration to Microservices 17
Microservices Miner
To analyze the monolithic application written in Java and to retrieve the set of
needed microservices.
To search in the Abstract Syntax Tree (AST) of the imported Java code for patterns of
interest and suggest to the developer the set of microservices for the migration.
18. Microservices 2020 Towards Automatic Migration to Microservices 18
Microservices “Searcher”
Each searcher is realized by implementing the interface or the abstract
implementation and finds nodes in the AST that comply to the semantic
understanding of the searcher.
19. Microservices 2020 Towards Automatic Migration to Microservices 19
Microservices Generator
AST to Text (model-to-text) transformation.
To run a microservice we provide one file for the service specification (.ol)
and one file for each interface the microservices uses (.iol)
20. Microservices 2020 Towards Automatic Migration to Microservices 20
Dockerfile Generator
We generate the Dockerfile used to deploy the microservice in a Docker
container.
This generator is used to generate the corresponding Dockerfile document
needed to deploy the microservice in a Docker container.
21. Microservices 2020 Towards Automatic Migration to Microservices 21
Prototype Implementation
https://github.com/antbucc/Migration
22. Microservices 2020 Towards Automatic Migration to Microservices 22
Open Research Challenges
• Microservices Modeling
• Define a more abstract DSL that can be used to model more general
microservices.
• Microservices Mining
• AI-based approach to extract automatically microservices from
monolithic application
• Microservices Composition
• Introduce the way to realize not only microservices but a complete
Microservice-based Application (MSA)
• Abstraction / Generalization
• To target multiple microservices technologies from the same abstraction
23. Distributed Adaptive Systems (DAS) Unit
A Model-Driven Approach Towards
Automatic Migration to Microservices
Antonio Bucchiarone
bucchiarone@fbk.eu
Thank you!
Any questions?