Migration process from monolithic to micro frontend architecture in mobile applications

E
ESUGESUG
1
1
1
Migration process from monolithic
to micro frontend architecture
in mobile applications
International Workshop on Smalltalk Technologies 2023
Lyon 31/08/2023
Quentin Capdepon, Nicolas Hlad, Abdelhak-djamel Seriai and Moustapha Derras
2
2
2
Introduction
▪ This presentation consists of three main sections:
▪ Contextual Background and Problem Statement
→ This section provides the context surrounding our work and the issues we are addressing.
▪ Previous Experiments at Berger-Levrault
→ In this section, we explain the implementations and experiments conducted at Berger-Levrault, along with their
corresponding results
▪ Proposed Problem Solution
→ In this section, we present our proposed migration process to resolve the identified problem.
3
3
3
Contextual Background
and Problem Statement
01
4
4
4
CARL Touch
Introduction
Cross-Platform Computerized Maintenance Management System (CMMS) Application for iOS and Android
5
5
5
Industrial issues encountered
Introduction
▪ A maintenance and issue
Maintenance
QR Scan
Report incident
Technician
Security
6
6
6
Industrial issues encountered
Introduction
▪ A customisation of the app issue
APK APK V.2
Update
… …
7
7
7
What architecture to solve the prior issues ?
Introduction
▪ Our current architecture
One same monolith for everyone
8
8
8
What architecture to solve the prior issues ?
Introduction
▪ Our current architecture
One same monolith for everyone
▪ Our target architecture
A modulable architecture to obtain tailored apps
9
9
9
What is a micro frontend architecture ?
State of the art
▪ The MFE architecture
Figure 1 : Organisation in Verticals [1]
10
10
10
What is a micro frontend architecture ?
State of the art
▪ The MFE architecture
Figure 1 : Organisation in Verticals [1]
Benefits :
- Incremental upgrades,
- Simple and decoupled codebases,
- Independent deployement,
- Autonomous teams,
11
11
11
What is a micro frontend architecture ?
State of the art
▪ The MFE architecture Benefits :
- Incremental upgrades,
- Simple and decoupled codebases,
- Independent deployement,
- Autonomous teams,
Downsides :
- Payload size,
- Environment differences,
- Operational and governance complexity.
Figure 1 : Organisation in Verticals [1]
12
12
12
How does the MFE architecture work?
State of the art
Figure 2 : The three fundamental concepts of Micro Frontend [1]
13
13
13
How does the MFE architecture work?
State of the art
Figure 2 : The three fundamental concepts of Micro Frontend [1]
14
14
14
How does the MFE architecture work?
State of the art
Figure 2 : The three fundamental concepts of Micro Frontend [1]
15
15
15
Engineering & Research questions
Research question
▪ Topic 1 : Engineering questions
▪ How to achieve MFE principle on mobile ?
▪ Topic 2 : Research questions
▪ How to migrate monolith architecture to micro frontend for mobile applications ?
16
16
16
Micro frontend on mobile
02
17
17
17
BL MicroFrontendShell
Our mobile micro frontend shell
18
18
18
BL MicroFrontendShell
Our mobile micro frontend shell
19
19
19
BL MicroFrontendShell
Our mobile micro frontend shell
20
20
20
BL MicroFrontendShell
Our mobile micro frontend shell
21
21
21
BL MicroFrontendShell
Our mobile micro frontend shell
22
22
22
Observation: Developers encounter difficulties in identifying 'Optimal' MFEs and struggle implementing them from the monolith.
Goal : Developping a semi-automated migration process from monolith to MFE
Experimentations
Empirical experimentation with Carl Touch
▪ Two teams are responsible for migrating the Carl Touch monolith to MFE using our Shell (in Flutter).
▪ We obtain 2 different architectures
23
23
23
Migration process
03
24
24
24
Our migration process
monolithic MFEs
25
25
25
Our migration process
1. Analysis
1. Dart Parser Development
2. Creation of a Famix Dart Importer
3. Creation and generation of a Dart Metamodel
monolithic
1.Analysis
MFEs
26
26
26
Our migration process
1. Analysis
1. Dart Parser Development
2. Creation of a Famix Dart Importer
3. Creation and generation of a Dart Metamodel
2. Identification [9] [10] [11] [12] [13]
1. Creation of Roassal visualization for the model
2. Proposed Clustering Approach for the Model
3. Interactive Roassal Visualization to help Expert Decision Making
monolithic
1.Analysis 2.Identification
MFEs
27
27
27
Our migration process
1. Analysis
1. Dart Parser Development
2. Creation of a Famix Dart Importer
3. Creation and generation of a Dart Metamodel
2. Identification [9] [10] [11] [12] [13]
1. Creation of Roassal visualization for the model
2. Proposed Clustering Approach for the Model
3. Interactive Roassal Visualization to help Expert Decision Making
3. Transformation
1. Violation resolver to solve generic violation
2. Transformation Rules for MFE Dart code generation
monolithic
1.Analysis 2.Identification 3.Transformation
MFEs
28
28
28
Our migration process
1. Analysis
1. Dart Parser Development
2. Creation of a Famix Dart Importer
3. Creation and generation of a Dart Metamodel
2. Identification [9] [10] [11] [12] [13]
1. Creation of Roassal visualization for the model
2. Proposed Clustering Approach for the Model
3. Interactive Roassal Visualization to help Expert Decision Making
3. Transformation
1. Violation resolver to solve generic violation
2. Transformation Rules for MFE Dart code generation
monolithic
1.Analysis 2.Identification 3.Transformation
MFEs
29
29
29
Visualization : Navigation graph
Benefits :
- Visual help on the application Navigation flow,
- User-Centric information for a transformation,
- Lateral navigation identify good MFE candidat,
- Forward navigation highlight inusable candidat.
30
30
30
Visualization : Navigation graph
Benefits :
- Visual help on the application Navigation flow,
- User-Centric information for a transformation,
- Lateral navigation identify good MFE candidat,
- Forward navigation highlight inusable candidat.
Downsides :
- Not a clustering
- Require a dynamic and a static code analysis,
- Missing information on the communication.
31
31
31
Visualization : Git Contribution Analysis
Benefits :
- Proposition of a team clustering,
- Provide insight on the best MFE suited team,
- Allocation of Dedicated Teams for Each MFE,
- Improved assessment of team profiles.
32
32
32
Visualization : Git Contribution Analysis
Benefits :
- Proposition of a team clustering,
- Provide insight on the best MFE suited team,
- Allocation of Dedicated Teams for Each MFE,
- Improved assessment of team profiles.
Downsides :
- Not a codebase clustering,
- Requirement for Prior MFE Clustering.
33
33
33
Conclusion
34
34
34
Bibliography
M. Geers, Micro Frontends in Action, manning publications ed., 2020. URL: https://livebook.manning.com/book/micro-
frontends-in-action/.
[1]
https://micro-frontends.org/ by M. Geers
S. Peltonen, La. Mezzalira, D. Taibi, Motivations, benefits, and issues for adopting microfrontends: A multivocal
literature review, Information and Software Technology 136 (2021) 106571. doi:10.1016/j.infsof.2021.106571.
https://martinfowler.com/articles/micro-frontends.html - Cam Jackson in 19 June 2019
E. Braz, Flutter micro app - a package to speed up the creation of micro frontend(or independent features) structure
in flutter applications, 2022. URL:
https://web.archive.org/web/20220804142023/https://flutterrepos.com/lib/emanuel-braz-flutter_micro_app
Ionic, Micro frontend architecture for mobile web apps - ionic portals, 2022. URL: https://ionic.io/portals.
D. Taibi, L. Mezzalira, Micro-frontends: Principles, implementations, and pitfalls, ACM SIGSOFT Software Engineering
Notes 47 (2022) 25–29. doi:10.1145/3561846.3561853.
L. Mezzalira, Microfrontends anti-patterns: Seven years in the trenches, 2022. URL:
https://www.infoq.com/presentations/microfrontend-antipattern/.
[2]
[3]
[4]
[5]
[6]
[7]
[8]
35
35
35
Bibliography
M. Brito, J. Cunha, J. a. Saraiva, Identification of microservices from monolithic applications through topic
modelling, in: Proceedings of the 36th Annual ACM Symposiumon Applied Computing, SAC ’21, Association for
Computing Machinery, New York, NY, USA, 2021, p. 1409–1418. URL: https://doi.org/10.1145/3412841.3442016.
doi:10.1145/3412841.3442016.
F. Auer, V. Lenarduzzi, M. Felderer, D. Taibi, From monolithic systems to microservices: An assessment framework,
Information and Software Technology 137 (2021) 106600. doi:10.1016/j.infsof.2021.106600.
A. Bucchiarone, N. Dragoni, S. Dustdar, S. T. Larsen, M. Mazzara, From monolithic to microservices: An experience
report from the banking domain, IEEE Softw. 35 (2018) 50–55. doi:10.1109/MS.2018.2141026.
R. Capuano, H. Muccini, A systematic literature review on migration to microservices: a quality attributes
perspective, in: IEEE 19th International Conference on Software Architecture Companion, ICSA Companion 2022,
Honolulu, HI, USA, March 12-15, 2022, IEEE, 2022, p. 120–123. URL: https://doi.org/10.1109/ICSA-
C54293.2022.00030. doi:10.1109/ICSA-C54293.2022.00030.
F. Freitas, A. Ferreira, J. Cunha, Refactoring java monoliths into executable microservicebased applications, in: C. D.
Vasconcellos, K. G. Roggia, P. Bousfield, V. Collereii, J. P.Fernandes, M. Pereira (Eds.), SBLP’21: 25th Brazilian
Symposium on Programming Languages, Joinville, Brazil, 27 September 2021 - 1 October 2021, ACM, 2021, p. 100–
107. URL:https://doi.org/10.1145/3475061.3475086. doi:10.1145/3475061.3475086.
[9]
[10]
[11]
[12]
[13]
1 sur 35

Recommandé

Micro Front-End & Microservices - Plansoft par
Micro Front-End & Microservices - PlansoftMicro Front-End & Microservices - Plansoft
Micro Front-End & Microservices - PlansoftMiki Lombardi
1.3K vues51 diapositives
How to migrate large project from Angular to React par
How to migrate large project from Angular to ReactHow to migrate large project from Angular to React
How to migrate large project from Angular to ReactTomasz Bak
3.5K vues23 diapositives
Application development for mobile phones par
Application development for mobile phonesApplication development for mobile phones
Application development for mobile phonesSanjeev Kumar Jaiswal
2.8K vues34 diapositives
MoneySafe-FinalReport par
MoneySafe-FinalReportMoneySafe-FinalReport
MoneySafe-FinalReportShaun Michael Stone
216 vues33 diapositives
Building application in a "Microfrontends" way - Matthias Lauf *XConf Manchester par
Building application in a "Microfrontends" way - Matthias Lauf *XConf ManchesterBuilding application in a "Microfrontends" way - Matthias Lauf *XConf Manchester
Building application in a "Microfrontends" way - Matthias Lauf *XConf ManchesterThoughtworks
435 vues42 diapositives
Isn't the Monolith Just Enough? par
Isn't the Monolith Just Enough?Isn't the Monolith Just Enough?
Isn't the Monolith Just Enough?pflueras
38 vues26 diapositives

Contenu connexe

Similaire à Migration process from monolithic to micro frontend architecture in mobile applications

Scaling frontend applications with micro-frontends Presentation.pdf par
Scaling frontend applications with micro-frontends Presentation.pdfScaling frontend applications with micro-frontends Presentation.pdf
Scaling frontend applications with micro-frontends Presentation.pdfKatamaRajuBandigari1
11 vues37 diapositives
REPORTOF MEMS2 par
REPORTOF MEMS2REPORTOF MEMS2
REPORTOF MEMS2roshan achar
309 vues30 diapositives
Building application in a "Microfrontends" way - Prasanna N Venkatesen *XConf... par
Building application in a "Microfrontends" way - Prasanna N Venkatesen *XConf...Building application in a "Microfrontends" way - Prasanna N Venkatesen *XConf...
Building application in a "Microfrontends" way - Prasanna N Venkatesen *XConf...Thoughtworks
923 vues41 diapositives
RAILWAY SAFETY PROTECTION WITH ANDROID MOBILE APPLICATION FOR 5G NEW RADIO NE... par
RAILWAY SAFETY PROTECTION WITH ANDROID MOBILE APPLICATION FOR 5G NEW RADIO NE...RAILWAY SAFETY PROTECTION WITH ANDROID MOBILE APPLICATION FOR 5G NEW RADIO NE...
RAILWAY SAFETY PROTECTION WITH ANDROID MOBILE APPLICATION FOR 5G NEW RADIO NE...ijcsit
54 vues16 diapositives
Railway Safety Protection with Android Mobile Application for 5G New Radio Ne... par
Railway Safety Protection with Android Mobile Application for 5G New Radio Ne...Railway Safety Protection with Android Mobile Application for 5G New Radio Ne...
Railway Safety Protection with Android Mobile Application for 5G New Radio Ne...AIRCC Publishing Corporation
52 vues16 diapositives
Dee724 Advantages And Disadvantages par
Dee724 Advantages And DisadvantagesDee724 Advantages And Disadvantages
Dee724 Advantages And DisadvantagesJennifer Landsmann
2 vues40 diapositives

Similaire à Migration process from monolithic to micro frontend architecture in mobile applications(20)

Scaling frontend applications with micro-frontends Presentation.pdf par KatamaRajuBandigari1
Scaling frontend applications with micro-frontends Presentation.pdfScaling frontend applications with micro-frontends Presentation.pdf
Scaling frontend applications with micro-frontends Presentation.pdf
Building application in a "Microfrontends" way - Prasanna N Venkatesen *XConf... par Thoughtworks
Building application in a "Microfrontends" way - Prasanna N Venkatesen *XConf...Building application in a "Microfrontends" way - Prasanna N Venkatesen *XConf...
Building application in a "Microfrontends" way - Prasanna N Venkatesen *XConf...
Thoughtworks923 vues
RAILWAY SAFETY PROTECTION WITH ANDROID MOBILE APPLICATION FOR 5G NEW RADIO NE... par ijcsit
RAILWAY SAFETY PROTECTION WITH ANDROID MOBILE APPLICATION FOR 5G NEW RADIO NE...RAILWAY SAFETY PROTECTION WITH ANDROID MOBILE APPLICATION FOR 5G NEW RADIO NE...
RAILWAY SAFETY PROTECTION WITH ANDROID MOBILE APPLICATION FOR 5G NEW RADIO NE...
ijcsit54 vues
Identifying Success Factors for the Mozilla Project par Robert Viseur
Identifying Success Factors for the Mozilla ProjectIdentifying Success Factors for the Mozilla Project
Identifying Success Factors for the Mozilla Project
Robert Viseur604 vues
Real Time Head Generation for Video Conferencing par IRJET Journal
Real Time Head Generation for Video ConferencingReal Time Head Generation for Video Conferencing
Real Time Head Generation for Video Conferencing
IRJET Journal3 vues
Developing Free Software within a Major ICT Company par Robert Viseur
Developing Free Software within a Major ICT CompanyDeveloping Free Software within a Major ICT Company
Developing Free Software within a Major ICT Company
Robert Viseur525 vues
Architecture Of The Security System par Dawn Jones
Architecture Of The Security SystemArchitecture Of The Security System
Architecture Of The Security System
Dawn Jones4 vues
Sample projectdocumentation par hlksd
Sample projectdocumentationSample projectdocumentation
Sample projectdocumentation
hlksd1.3K vues
IRJET- Determination of the Efficacy of Civil soft Quick Series in the Desi... par IRJET Journal
IRJET- 	 Determination of the Efficacy of Civil soft Quick Series in the Desi...IRJET- 	 Determination of the Efficacy of Civil soft Quick Series in the Desi...
IRJET- Determination of the Efficacy of Civil soft Quick Series in the Desi...
IRJET Journal60 vues
Flexible and Scalable Modelling in the MONDO Project: 3 Industrial Case Studi... par Alessandra Bagnato
Flexible and Scalable Modelling in the MONDO Project: 3 Industrial Case Studi...Flexible and Scalable Modelling in the MONDO Project: 3 Industrial Case Studi...
Flexible and Scalable Modelling in the MONDO Project: 3 Industrial Case Studi...
Alessandra Bagnato1.1K vues
Wie Monolithen für die Zukuft trimmen par Anatole Tresch
Wie Monolithen für die Zukuft trimmenWie Monolithen für die Zukuft trimmen
Wie Monolithen für die Zukuft trimmen
Anatole Tresch751 vues
IRJET-Testing Uncertainty of Cyber-Physical Systems in IoT Cloud Infrastructu... par IRJET Journal
IRJET-Testing Uncertainty of Cyber-Physical Systems in IoT Cloud Infrastructu...IRJET-Testing Uncertainty of Cyber-Physical Systems in IoT Cloud Infrastructu...
IRJET-Testing Uncertainty of Cyber-Physical Systems in IoT Cloud Infrastructu...
IRJET Journal13 vues
Cobot fleet management system using cloud and edge computing bukhary par Conference Papers
Cobot fleet management system using cloud and edge computing bukharyCobot fleet management system using cloud and edge computing bukhary
Cobot fleet management system using cloud and edge computing bukhary
"KillTech project: through innovation to a winning capability", Yelyzaveta B... par Fwdays
"KillTech project: through innovation to a winning capability",  Yelyzaveta B..."KillTech project: through innovation to a winning capability",  Yelyzaveta B...
"KillTech project: through innovation to a winning capability", Yelyzaveta B...
Fwdays234 vues
Business Drivers and Challenges of Cloud Computing and Social Networking Appl... par M Biro
Business Drivers and Challenges of Cloud Computing and Social Networking Appl...Business Drivers and Challenges of Cloud Computing and Social Networking Appl...
Business Drivers and Challenges of Cloud Computing and Social Networking Appl...
M Biro3.5K vues

Plus de ESUG

Workshop: Identifying concept inventories in agile programming par
Workshop: Identifying concept inventories in agile programmingWorkshop: Identifying concept inventories in agile programming
Workshop: Identifying concept inventories in agile programmingESUG
12 vues16 diapositives
Technical documentation support in Pharo par
Technical documentation support in PharoTechnical documentation support in Pharo
Technical documentation support in PharoESUG
49 vues39 diapositives
The Pharo Debugger and Debugging tools: Advances and Roadmap par
The Pharo Debugger and Debugging tools: Advances and RoadmapThe Pharo Debugger and Debugging tools: Advances and Roadmap
The Pharo Debugger and Debugging tools: Advances and RoadmapESUG
57 vues44 diapositives
Sequence: Pipeline modelling in Pharo par
Sequence: Pipeline modelling in PharoSequence: Pipeline modelling in Pharo
Sequence: Pipeline modelling in PharoESUG
87 vues22 diapositives
Analyzing Dart Language with Pharo: Report and early results par
Analyzing Dart Language with Pharo: Report and early resultsAnalyzing Dart Language with Pharo: Report and early results
Analyzing Dart Language with Pharo: Report and early resultsESUG
108 vues30 diapositives
Transpiling Pharo Classes to JS ECMAScript 5 versus ECMAScript 6 par
Transpiling Pharo Classes to JS ECMAScript 5 versus ECMAScript 6Transpiling Pharo Classes to JS ECMAScript 5 versus ECMAScript 6
Transpiling Pharo Classes to JS ECMAScript 5 versus ECMAScript 6ESUG
39 vues35 diapositives

Plus de ESUG(20)

Workshop: Identifying concept inventories in agile programming par ESUG
Workshop: Identifying concept inventories in agile programmingWorkshop: Identifying concept inventories in agile programming
Workshop: Identifying concept inventories in agile programming
ESUG12 vues
Technical documentation support in Pharo par ESUG
Technical documentation support in PharoTechnical documentation support in Pharo
Technical documentation support in Pharo
ESUG49 vues
The Pharo Debugger and Debugging tools: Advances and Roadmap par ESUG
The Pharo Debugger and Debugging tools: Advances and RoadmapThe Pharo Debugger and Debugging tools: Advances and Roadmap
The Pharo Debugger and Debugging tools: Advances and Roadmap
ESUG57 vues
Sequence: Pipeline modelling in Pharo par ESUG
Sequence: Pipeline modelling in PharoSequence: Pipeline modelling in Pharo
Sequence: Pipeline modelling in Pharo
ESUG87 vues
Analyzing Dart Language with Pharo: Report and early results par ESUG
Analyzing Dart Language with Pharo: Report and early resultsAnalyzing Dart Language with Pharo: Report and early results
Analyzing Dart Language with Pharo: Report and early results
ESUG108 vues
Transpiling Pharo Classes to JS ECMAScript 5 versus ECMAScript 6 par ESUG
Transpiling Pharo Classes to JS ECMAScript 5 versus ECMAScript 6Transpiling Pharo Classes to JS ECMAScript 5 versus ECMAScript 6
Transpiling Pharo Classes to JS ECMAScript 5 versus ECMAScript 6
ESUG39 vues
A Unit Test Metamodel for Test Generation par ESUG
A Unit Test Metamodel for Test GenerationA Unit Test Metamodel for Test Generation
A Unit Test Metamodel for Test Generation
ESUG54 vues
Creating Unit Tests Using Genetic Programming par ESUG
Creating Unit Tests Using Genetic ProgrammingCreating Unit Tests Using Genetic Programming
Creating Unit Tests Using Genetic Programming
ESUG49 vues
Threaded-Execution and CPS Provide Smooth Switching Between Execution Modes par ESUG
Threaded-Execution and CPS Provide Smooth Switching Between Execution ModesThreaded-Execution and CPS Provide Smooth Switching Between Execution Modes
Threaded-Execution and CPS Provide Smooth Switching Between Execution Modes
ESUG52 vues
Exploring GitHub Actions through EGAD: An Experience Report par ESUG
Exploring GitHub Actions through EGAD: An Experience ReportExploring GitHub Actions through EGAD: An Experience Report
Exploring GitHub Actions through EGAD: An Experience Report
ESUG17 vues
Pharo: a reflective language A first systematic analysis of reflective APIs par ESUG
Pharo: a reflective language A first systematic analysis of reflective APIsPharo: a reflective language A first systematic analysis of reflective APIs
Pharo: a reflective language A first systematic analysis of reflective APIs
ESUG58 vues
Garbage Collector Tuning par ESUG
Garbage Collector TuningGarbage Collector Tuning
Garbage Collector Tuning
ESUG20 vues
Improving Performance Through Object Lifetime Profiling: the DataFrame Case par ESUG
Improving Performance Through Object Lifetime Profiling: the DataFrame CaseImproving Performance Through Object Lifetime Profiling: the DataFrame Case
Improving Performance Through Object Lifetime Profiling: the DataFrame Case
ESUG43 vues
Pharo DataFrame: Past, Present, and Future par ESUG
Pharo DataFrame: Past, Present, and FuturePharo DataFrame: Past, Present, and Future
Pharo DataFrame: Past, Present, and Future
ESUG43 vues
thisContext in the Debugger par ESUG
thisContext in the DebuggerthisContext in the Debugger
thisContext in the Debugger
ESUG36 vues
Websockets for Fencing Score par ESUG
Websockets for Fencing ScoreWebsockets for Fencing Score
Websockets for Fencing Score
ESUG18 vues
ShowUs: PharoJS.org Develop in Pharo, Run on JavaScript par ESUG
ShowUs: PharoJS.org Develop in Pharo, Run on JavaScriptShowUs: PharoJS.org Develop in Pharo, Run on JavaScript
ShowUs: PharoJS.org Develop in Pharo, Run on JavaScript
ESUG46 vues
Advanced Object- Oriented Design Mooc par ESUG
Advanced Object- Oriented Design MoocAdvanced Object- Oriented Design Mooc
Advanced Object- Oriented Design Mooc
ESUG85 vues
A New Architecture Reconciling Refactorings and Transformations par ESUG
A New Architecture Reconciling Refactorings and TransformationsA New Architecture Reconciling Refactorings and Transformations
A New Architecture Reconciling Refactorings and Transformations
ESUG28 vues
BioSmalltalk par ESUG
BioSmalltalkBioSmalltalk
BioSmalltalk
ESUG415 vues

Dernier

.NET Deserialization Attacks par
.NET Deserialization Attacks.NET Deserialization Attacks
.NET Deserialization AttacksDharmalingam Ganesan
7 vues50 diapositives
Unlocking the Power of AI in Product Management - A Comprehensive Guide for P... par
Unlocking the Power of AI in Product Management - A Comprehensive Guide for P...Unlocking the Power of AI in Product Management - A Comprehensive Guide for P...
Unlocking the Power of AI in Product Management - A Comprehensive Guide for P...NimaTorabi2
17 vues17 diapositives
The Path to DevOps par
The Path to DevOpsThe Path to DevOps
The Path to DevOpsJohn Valentino
6 vues6 diapositives
Techstack Ltd at Slush 2023, Ukrainian delegation par
Techstack Ltd at Slush 2023, Ukrainian delegationTechstack Ltd at Slush 2023, Ukrainian delegation
Techstack Ltd at Slush 2023, Ukrainian delegationViktoriiaOpanasenko
7 vues4 diapositives
Supercharging your Python Development Environment with VS Code and Dev Contai... par
Supercharging your Python Development Environment with VS Code and Dev Contai...Supercharging your Python Development Environment with VS Code and Dev Contai...
Supercharging your Python Development Environment with VS Code and Dev Contai...Dawn Wages
5 vues51 diapositives
Understanding HTML terminology par
Understanding HTML terminologyUnderstanding HTML terminology
Understanding HTML terminologyartembondar5
8 vues8 diapositives

Dernier(20)

Unlocking the Power of AI in Product Management - A Comprehensive Guide for P... par NimaTorabi2
Unlocking the Power of AI in Product Management - A Comprehensive Guide for P...Unlocking the Power of AI in Product Management - A Comprehensive Guide for P...
Unlocking the Power of AI in Product Management - A Comprehensive Guide for P...
NimaTorabi217 vues
Supercharging your Python Development Environment with VS Code and Dev Contai... par Dawn Wages
Supercharging your Python Development Environment with VS Code and Dev Contai...Supercharging your Python Development Environment with VS Code and Dev Contai...
Supercharging your Python Development Environment with VS Code and Dev Contai...
Dawn Wages5 vues
predicting-m3-devopsconMunich-2023-v2.pptx par Tier1 app
predicting-m3-devopsconMunich-2023-v2.pptxpredicting-m3-devopsconMunich-2023-v2.pptx
predicting-m3-devopsconMunich-2023-v2.pptx
Tier1 app14 vues
Ports-and-Adapters Architecture for Embedded HMI par Burkhard Stubert
Ports-and-Adapters Architecture for Embedded HMIPorts-and-Adapters Architecture for Embedded HMI
Ports-and-Adapters Architecture for Embedded HMI
University of Borås-full talk-2023-12-09.pptx par Mahdi_Fahmideh
University of Borås-full talk-2023-12-09.pptxUniversity of Borås-full talk-2023-12-09.pptx
University of Borås-full talk-2023-12-09.pptx
Mahdi_Fahmideh12 vues
Automated Testing of Microsoft Power BI Reports par RTTS
Automated Testing of Microsoft Power BI ReportsAutomated Testing of Microsoft Power BI Reports
Automated Testing of Microsoft Power BI Reports
RTTS11 vues
aATP - New Correlation Confirmation Feature.pptx par EsatEsenek1
aATP - New Correlation Confirmation Feature.pptxaATP - New Correlation Confirmation Feature.pptx
aATP - New Correlation Confirmation Feature.pptx
EsatEsenek1222 vues
Google Solutions Challenge 2024 Talk pdf par MohdAbdulAleem4
Google Solutions Challenge 2024 Talk pdfGoogle Solutions Challenge 2024 Talk pdf
Google Solutions Challenge 2024 Talk pdf
MohdAbdulAleem434 vues

Migration process from monolithic to micro frontend architecture in mobile applications

  • 1. 1 1 1 Migration process from monolithic to micro frontend architecture in mobile applications International Workshop on Smalltalk Technologies 2023 Lyon 31/08/2023 Quentin Capdepon, Nicolas Hlad, Abdelhak-djamel Seriai and Moustapha Derras
  • 2. 2 2 2 Introduction ▪ This presentation consists of three main sections: ▪ Contextual Background and Problem Statement → This section provides the context surrounding our work and the issues we are addressing. ▪ Previous Experiments at Berger-Levrault → In this section, we explain the implementations and experiments conducted at Berger-Levrault, along with their corresponding results ▪ Proposed Problem Solution → In this section, we present our proposed migration process to resolve the identified problem.
  • 4. 4 4 4 CARL Touch Introduction Cross-Platform Computerized Maintenance Management System (CMMS) Application for iOS and Android
  • 5. 5 5 5 Industrial issues encountered Introduction ▪ A maintenance and issue Maintenance QR Scan Report incident Technician Security
  • 6. 6 6 6 Industrial issues encountered Introduction ▪ A customisation of the app issue APK APK V.2 Update … …
  • 7. 7 7 7 What architecture to solve the prior issues ? Introduction ▪ Our current architecture One same monolith for everyone
  • 8. 8 8 8 What architecture to solve the prior issues ? Introduction ▪ Our current architecture One same monolith for everyone ▪ Our target architecture A modulable architecture to obtain tailored apps
  • 9. 9 9 9 What is a micro frontend architecture ? State of the art ▪ The MFE architecture Figure 1 : Organisation in Verticals [1]
  • 10. 10 10 10 What is a micro frontend architecture ? State of the art ▪ The MFE architecture Figure 1 : Organisation in Verticals [1] Benefits : - Incremental upgrades, - Simple and decoupled codebases, - Independent deployement, - Autonomous teams,
  • 11. 11 11 11 What is a micro frontend architecture ? State of the art ▪ The MFE architecture Benefits : - Incremental upgrades, - Simple and decoupled codebases, - Independent deployement, - Autonomous teams, Downsides : - Payload size, - Environment differences, - Operational and governance complexity. Figure 1 : Organisation in Verticals [1]
  • 12. 12 12 12 How does the MFE architecture work? State of the art Figure 2 : The three fundamental concepts of Micro Frontend [1]
  • 13. 13 13 13 How does the MFE architecture work? State of the art Figure 2 : The three fundamental concepts of Micro Frontend [1]
  • 14. 14 14 14 How does the MFE architecture work? State of the art Figure 2 : The three fundamental concepts of Micro Frontend [1]
  • 15. 15 15 15 Engineering & Research questions Research question ▪ Topic 1 : Engineering questions ▪ How to achieve MFE principle on mobile ? ▪ Topic 2 : Research questions ▪ How to migrate monolith architecture to micro frontend for mobile applications ?
  • 22. 22 22 22 Observation: Developers encounter difficulties in identifying 'Optimal' MFEs and struggle implementing them from the monolith. Goal : Developping a semi-automated migration process from monolith to MFE Experimentations Empirical experimentation with Carl Touch ▪ Two teams are responsible for migrating the Carl Touch monolith to MFE using our Shell (in Flutter). ▪ We obtain 2 different architectures
  • 25. 25 25 25 Our migration process 1. Analysis 1. Dart Parser Development 2. Creation of a Famix Dart Importer 3. Creation and generation of a Dart Metamodel monolithic 1.Analysis MFEs
  • 26. 26 26 26 Our migration process 1. Analysis 1. Dart Parser Development 2. Creation of a Famix Dart Importer 3. Creation and generation of a Dart Metamodel 2. Identification [9] [10] [11] [12] [13] 1. Creation of Roassal visualization for the model 2. Proposed Clustering Approach for the Model 3. Interactive Roassal Visualization to help Expert Decision Making monolithic 1.Analysis 2.Identification MFEs
  • 27. 27 27 27 Our migration process 1. Analysis 1. Dart Parser Development 2. Creation of a Famix Dart Importer 3. Creation and generation of a Dart Metamodel 2. Identification [9] [10] [11] [12] [13] 1. Creation of Roassal visualization for the model 2. Proposed Clustering Approach for the Model 3. Interactive Roassal Visualization to help Expert Decision Making 3. Transformation 1. Violation resolver to solve generic violation 2. Transformation Rules for MFE Dart code generation monolithic 1.Analysis 2.Identification 3.Transformation MFEs
  • 28. 28 28 28 Our migration process 1. Analysis 1. Dart Parser Development 2. Creation of a Famix Dart Importer 3. Creation and generation of a Dart Metamodel 2. Identification [9] [10] [11] [12] [13] 1. Creation of Roassal visualization for the model 2. Proposed Clustering Approach for the Model 3. Interactive Roassal Visualization to help Expert Decision Making 3. Transformation 1. Violation resolver to solve generic violation 2. Transformation Rules for MFE Dart code generation monolithic 1.Analysis 2.Identification 3.Transformation MFEs
  • 29. 29 29 29 Visualization : Navigation graph Benefits : - Visual help on the application Navigation flow, - User-Centric information for a transformation, - Lateral navigation identify good MFE candidat, - Forward navigation highlight inusable candidat.
  • 30. 30 30 30 Visualization : Navigation graph Benefits : - Visual help on the application Navigation flow, - User-Centric information for a transformation, - Lateral navigation identify good MFE candidat, - Forward navigation highlight inusable candidat. Downsides : - Not a clustering - Require a dynamic and a static code analysis, - Missing information on the communication.
  • 31. 31 31 31 Visualization : Git Contribution Analysis Benefits : - Proposition of a team clustering, - Provide insight on the best MFE suited team, - Allocation of Dedicated Teams for Each MFE, - Improved assessment of team profiles.
  • 32. 32 32 32 Visualization : Git Contribution Analysis Benefits : - Proposition of a team clustering, - Provide insight on the best MFE suited team, - Allocation of Dedicated Teams for Each MFE, - Improved assessment of team profiles. Downsides : - Not a codebase clustering, - Requirement for Prior MFE Clustering.
  • 34. 34 34 34 Bibliography M. Geers, Micro Frontends in Action, manning publications ed., 2020. URL: https://livebook.manning.com/book/micro- frontends-in-action/. [1] https://micro-frontends.org/ by M. Geers S. Peltonen, La. Mezzalira, D. Taibi, Motivations, benefits, and issues for adopting microfrontends: A multivocal literature review, Information and Software Technology 136 (2021) 106571. doi:10.1016/j.infsof.2021.106571. https://martinfowler.com/articles/micro-frontends.html - Cam Jackson in 19 June 2019 E. Braz, Flutter micro app - a package to speed up the creation of micro frontend(or independent features) structure in flutter applications, 2022. URL: https://web.archive.org/web/20220804142023/https://flutterrepos.com/lib/emanuel-braz-flutter_micro_app Ionic, Micro frontend architecture for mobile web apps - ionic portals, 2022. URL: https://ionic.io/portals. D. Taibi, L. Mezzalira, Micro-frontends: Principles, implementations, and pitfalls, ACM SIGSOFT Software Engineering Notes 47 (2022) 25–29. doi:10.1145/3561846.3561853. L. Mezzalira, Microfrontends anti-patterns: Seven years in the trenches, 2022. URL: https://www.infoq.com/presentations/microfrontend-antipattern/. [2] [3] [4] [5] [6] [7] [8]
  • 35. 35 35 35 Bibliography M. Brito, J. Cunha, J. a. Saraiva, Identification of microservices from monolithic applications through topic modelling, in: Proceedings of the 36th Annual ACM Symposiumon Applied Computing, SAC ’21, Association for Computing Machinery, New York, NY, USA, 2021, p. 1409–1418. URL: https://doi.org/10.1145/3412841.3442016. doi:10.1145/3412841.3442016. F. Auer, V. Lenarduzzi, M. Felderer, D. Taibi, From monolithic systems to microservices: An assessment framework, Information and Software Technology 137 (2021) 106600. doi:10.1016/j.infsof.2021.106600. A. Bucchiarone, N. Dragoni, S. Dustdar, S. T. Larsen, M. Mazzara, From monolithic to microservices: An experience report from the banking domain, IEEE Softw. 35 (2018) 50–55. doi:10.1109/MS.2018.2141026. R. Capuano, H. Muccini, A systematic literature review on migration to microservices: a quality attributes perspective, in: IEEE 19th International Conference on Software Architecture Companion, ICSA Companion 2022, Honolulu, HI, USA, March 12-15, 2022, IEEE, 2022, p. 120–123. URL: https://doi.org/10.1109/ICSA- C54293.2022.00030. doi:10.1109/ICSA-C54293.2022.00030. F. Freitas, A. Ferreira, J. Cunha, Refactoring java monoliths into executable microservicebased applications, in: C. D. Vasconcellos, K. G. Roggia, P. Bousfield, V. Collereii, J. P.Fernandes, M. Pereira (Eds.), SBLP’21: 25th Brazilian Symposium on Programming Languages, Joinville, Brazil, 27 September 2021 - 1 October 2021, ACM, 2021, p. 100– 107. URL:https://doi.org/10.1145/3475061.3475086. doi:10.1145/3475061.3475086. [9] [10] [11] [12] [13]