SlideShare a Scribd company logo
1 of 35
Download to read offline
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]

More Related Content

Similar to Migration process from monolithic to micro frontend architecture in mobile applications

Is software engineering research addressing software engineering problems?
Is software engineering research addressing software engineering problems?Is software engineering research addressing software engineering problems?
Is software engineering research addressing software engineering problems?Gail Murphy
 
Scaling frontend applications with micro-frontends Presentation.pdf
Scaling frontend applications with micro-frontends Presentation.pdfScaling frontend applications with micro-frontends Presentation.pdf
Scaling frontend applications with micro-frontends Presentation.pdfKatamaRajuBandigari1
 
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...
Building application in a "Microfrontends" way - Prasanna N Venkatesen *XConf...Thoughtworks
 
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...
Railway Safety Protection with Android Mobile Application for 5G New Radio Ne...AIRCC Publishing Corporation
 
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...
RAILWAY SAFETY PROTECTION WITH ANDROID MOBILE APPLICATION FOR 5G NEW RADIO NE...ijcsit
 
Identifying Success Factors for the Mozilla Project
Identifying Success Factors for the Mozilla ProjectIdentifying Success Factors for the Mozilla Project
Identifying Success Factors for the Mozilla ProjectRobert Viseur
 
Real Time Head Generation for Video Conferencing
Real Time Head Generation for Video ConferencingReal Time Head Generation for Video Conferencing
Real Time Head Generation for Video ConferencingIRJET Journal
 
Developing Free Software within a Major ICT Company
Developing Free Software within a Major ICT CompanyDeveloping Free Software within a Major ICT Company
Developing Free Software within a Major ICT CompanyRobert Viseur
 
Sample projectdocumentation
Sample projectdocumentationSample projectdocumentation
Sample projectdocumentationhlksd
 
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- Determination of the Efficacy of Civil soft Quick Series in the Desi...IRJET Journal
 
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...
Flexible and Scalable Modelling in the MONDO Project: 3 Industrial Case Studi...Alessandra Bagnato
 
Wie Monolithen für die Zukuft trimmen
Wie Monolithen für die Zukuft trimmenWie Monolithen für die Zukuft trimmen
Wie Monolithen für die Zukuft trimmenAnatole Tresch
 
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-Testing Uncertainty of Cyber-Physical Systems in IoT Cloud Infrastructu...IRJET Journal
 
Cobot fleet management system using cloud and edge computing bukhary
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 bukharyConference Papers
 
"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...
"KillTech project: through innovation to a winning capability", Yelyzaveta B...Fwdays
 
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...
Business Drivers and Challenges of Cloud Computing and Social Networking Appl...M Biro
 
Sushant_Project_Report
Sushant_Project_ReportSushant_Project_Report
Sushant_Project_ReportSushant Mittal
 

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

Is software engineering research addressing software engineering problems?
Is software engineering research addressing software engineering problems?Is software engineering research addressing software engineering problems?
Is software engineering research addressing software engineering problems?
 
Scaling frontend applications with micro-frontends Presentation.pdf
Scaling frontend applications with micro-frontends Presentation.pdfScaling frontend applications with micro-frontends Presentation.pdf
Scaling frontend applications with micro-frontends Presentation.pdf
 
REPORTOF MEMS2
REPORTOF MEMS2REPORTOF MEMS2
REPORTOF MEMS2
 
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...
Building application in a "Microfrontends" way - Prasanna N Venkatesen *XConf...
 
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...
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...RAILWAY SAFETY PROTECTION WITH ANDROID MOBILE APPLICATION FOR 5G NEW RADIO NE...
RAILWAY SAFETY PROTECTION WITH ANDROID MOBILE APPLICATION FOR 5G NEW RADIO NE...
 
Identifying Success Factors for the Mozilla Project
Identifying Success Factors for the Mozilla ProjectIdentifying Success Factors for the Mozilla Project
Identifying Success Factors for the Mozilla Project
 
Real Time Head Generation for Video Conferencing
Real Time Head Generation for Video ConferencingReal Time Head Generation for Video Conferencing
Real Time Head Generation for Video Conferencing
 
Developing Free Software within a Major ICT Company
Developing Free Software within a Major ICT CompanyDeveloping Free Software within a Major ICT Company
Developing Free Software within a Major ICT Company
 
Sample projectdocumentation
Sample projectdocumentationSample projectdocumentation
Sample projectdocumentation
 
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- Determination of the Efficacy of Civil soft Quick Series in the Desi...
 
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...
Flexible and Scalable Modelling in the MONDO Project: 3 Industrial Case Studi...
 
Wie Monolithen für die Zukuft trimmen
Wie Monolithen für die Zukuft trimmenWie Monolithen für die Zukuft trimmen
Wie Monolithen für die Zukuft trimmen
 
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-Testing Uncertainty of Cyber-Physical Systems in IoT Cloud Infrastructu...
 
Rajshree1.pdf
Rajshree1.pdfRajshree1.pdf
Rajshree1.pdf
 
Cobot fleet management system using cloud and edge computing bukhary
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...
"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...
 
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...
Business Drivers and Challenges of Cloud Computing and Social Networking Appl...
 
unit 1 &2.pdf
unit 1 &2.pdfunit 1 &2.pdf
unit 1 &2.pdf
 
Sushant_Project_Report
Sushant_Project_ReportSushant_Project_Report
Sushant_Project_Report
 

More from ESUG

Workshop: Identifying concept inventories in agile programming
Workshop: Identifying concept inventories in agile programmingWorkshop: Identifying concept inventories in agile programming
Workshop: Identifying concept inventories in agile programmingESUG
 
Technical documentation support in Pharo
Technical documentation support in PharoTechnical documentation support in Pharo
Technical documentation support in PharoESUG
 
The Pharo Debugger and Debugging tools: Advances and Roadmap
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
 
Sequence: Pipeline modelling in Pharo
Sequence: Pipeline modelling in PharoSequence: Pipeline modelling in Pharo
Sequence: Pipeline modelling in PharoESUG
 
Analyzing Dart Language with Pharo: Report and early results
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
 
Transpiling Pharo Classes to JS ECMAScript 5 versus ECMAScript 6
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
 
A Unit Test Metamodel for Test Generation
A Unit Test Metamodel for Test GenerationA Unit Test Metamodel for Test Generation
A Unit Test Metamodel for Test GenerationESUG
 
Creating Unit Tests Using Genetic Programming
Creating Unit Tests Using Genetic ProgrammingCreating Unit Tests Using Genetic Programming
Creating Unit Tests Using Genetic ProgrammingESUG
 
Threaded-Execution and CPS Provide Smooth Switching Between Execution Modes
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 ModesESUG
 
Exploring GitHub Actions through EGAD: An Experience Report
Exploring GitHub Actions through EGAD: An Experience ReportExploring GitHub Actions through EGAD: An Experience Report
Exploring GitHub Actions through EGAD: An Experience ReportESUG
 
Pharo: a reflective language A first systematic analysis of reflective APIs
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 APIsESUG
 
Garbage Collector Tuning
Garbage Collector TuningGarbage Collector Tuning
Garbage Collector TuningESUG
 
Improving Performance Through Object Lifetime Profiling: the DataFrame Case
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 CaseESUG
 
Pharo DataFrame: Past, Present, and Future
Pharo DataFrame: Past, Present, and FuturePharo DataFrame: Past, Present, and Future
Pharo DataFrame: Past, Present, and FutureESUG
 
thisContext in the Debugger
thisContext in the DebuggerthisContext in the Debugger
thisContext in the DebuggerESUG
 
Websockets for Fencing Score
Websockets for Fencing ScoreWebsockets for Fencing Score
Websockets for Fencing ScoreESUG
 
ShowUs: PharoJS.org Develop in Pharo, Run on JavaScript
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 JavaScriptESUG
 
Advanced Object- Oriented Design Mooc
Advanced Object- Oriented Design MoocAdvanced Object- Oriented Design Mooc
Advanced Object- Oriented Design MoocESUG
 
A New Architecture Reconciling Refactorings and Transformations
A New Architecture Reconciling Refactorings and TransformationsA New Architecture Reconciling Refactorings and Transformations
A New Architecture Reconciling Refactorings and TransformationsESUG
 
BioSmalltalk
BioSmalltalkBioSmalltalk
BioSmalltalkESUG
 

More from ESUG (20)

Workshop: Identifying concept inventories in agile programming
Workshop: Identifying concept inventories in agile programmingWorkshop: Identifying concept inventories in agile programming
Workshop: Identifying concept inventories in agile programming
 
Technical documentation support in Pharo
Technical documentation support in PharoTechnical documentation support in Pharo
Technical documentation support in Pharo
 
The Pharo Debugger and Debugging tools: Advances and Roadmap
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
 
Sequence: Pipeline modelling in Pharo
Sequence: Pipeline modelling in PharoSequence: Pipeline modelling in Pharo
Sequence: Pipeline modelling in Pharo
 
Analyzing Dart Language with Pharo: Report and early results
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
 
Transpiling Pharo Classes to JS ECMAScript 5 versus ECMAScript 6
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
 
A Unit Test Metamodel for Test Generation
A Unit Test Metamodel for Test GenerationA Unit Test Metamodel for Test Generation
A Unit Test Metamodel for Test Generation
 
Creating Unit Tests Using Genetic Programming
Creating Unit Tests Using Genetic ProgrammingCreating Unit Tests Using Genetic Programming
Creating Unit Tests Using Genetic Programming
 
Threaded-Execution and CPS Provide Smooth Switching Between Execution Modes
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
 
Exploring GitHub Actions through EGAD: An Experience Report
Exploring GitHub Actions through EGAD: An Experience ReportExploring GitHub Actions through EGAD: An Experience Report
Exploring GitHub Actions through EGAD: An Experience Report
 
Pharo: a reflective language A first systematic analysis of reflective APIs
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
 
Garbage Collector Tuning
Garbage Collector TuningGarbage Collector Tuning
Garbage Collector Tuning
 
Improving Performance Through Object Lifetime Profiling: the DataFrame Case
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
 
Pharo DataFrame: Past, Present, and Future
Pharo DataFrame: Past, Present, and FuturePharo DataFrame: Past, Present, and Future
Pharo DataFrame: Past, Present, and Future
 
thisContext in the Debugger
thisContext in the DebuggerthisContext in the Debugger
thisContext in the Debugger
 
Websockets for Fencing Score
Websockets for Fencing ScoreWebsockets for Fencing Score
Websockets for Fencing Score
 
ShowUs: PharoJS.org Develop in Pharo, Run on JavaScript
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
 
Advanced Object- Oriented Design Mooc
Advanced Object- Oriented Design MoocAdvanced Object- Oriented Design Mooc
Advanced Object- Oriented Design Mooc
 
A New Architecture Reconciling Refactorings and Transformations
A New Architecture Reconciling Refactorings and TransformationsA New Architecture Reconciling Refactorings and Transformations
A New Architecture Reconciling Refactorings and Transformations
 
BioSmalltalk
BioSmalltalkBioSmalltalk
BioSmalltalk
 

Recently uploaded

React Server Component in Next.js by Hanief Utama
React Server Component in Next.js by Hanief UtamaReact Server Component in Next.js by Hanief Utama
React Server Component in Next.js by Hanief UtamaHanief Utama
 
Open Source Summit NA 2024: Open Source Cloud Costs - OpenCost's Impact on En...
Open Source Summit NA 2024: Open Source Cloud Costs - OpenCost's Impact on En...Open Source Summit NA 2024: Open Source Cloud Costs - OpenCost's Impact on En...
Open Source Summit NA 2024: Open Source Cloud Costs - OpenCost's Impact on En...Matt Ray
 
Unveiling Design Patterns: A Visual Guide with UML Diagrams
Unveiling Design Patterns: A Visual Guide with UML DiagramsUnveiling Design Patterns: A Visual Guide with UML Diagrams
Unveiling Design Patterns: A Visual Guide with UML DiagramsAhmed Mohamed
 
BATTLEFIELD ORM: TIPS, TACTICS AND STRATEGIES FOR CONQUERING YOUR DATABASE
BATTLEFIELD ORM: TIPS, TACTICS AND STRATEGIES FOR CONQUERING YOUR DATABASEBATTLEFIELD ORM: TIPS, TACTICS AND STRATEGIES FOR CONQUERING YOUR DATABASE
BATTLEFIELD ORM: TIPS, TACTICS AND STRATEGIES FOR CONQUERING YOUR DATABASEOrtus Solutions, Corp
 
Intelligent Home Wi-Fi Solutions | ThinkPalm
Intelligent Home Wi-Fi Solutions | ThinkPalmIntelligent Home Wi-Fi Solutions | ThinkPalm
Intelligent Home Wi-Fi Solutions | ThinkPalmSujith Sukumaran
 
Russian Call Girls in Karol Bagh Aasnvi ➡️ 8264348440 💋📞 Independent Escort S...
Russian Call Girls in Karol Bagh Aasnvi ➡️ 8264348440 💋📞 Independent Escort S...Russian Call Girls in Karol Bagh Aasnvi ➡️ 8264348440 💋📞 Independent Escort S...
Russian Call Girls in Karol Bagh Aasnvi ➡️ 8264348440 💋📞 Independent Escort S...soniya singh
 
Call Us🔝>༒+91-9711147426⇛Call In girls karol bagh (Delhi)
Call Us🔝>༒+91-9711147426⇛Call In girls karol bagh (Delhi)Call Us🔝>༒+91-9711147426⇛Call In girls karol bagh (Delhi)
Call Us🔝>༒+91-9711147426⇛Call In girls karol bagh (Delhi)jennyeacort
 
英国UN学位证,北安普顿大学毕业证书1:1制作
英国UN学位证,北安普顿大学毕业证书1:1制作英国UN学位证,北安普顿大学毕业证书1:1制作
英国UN学位证,北安普顿大学毕业证书1:1制作qr0udbr0
 
What is Fashion PLM and Why Do You Need It
What is Fashion PLM and Why Do You Need ItWhat is Fashion PLM and Why Do You Need It
What is Fashion PLM and Why Do You Need ItWave PLM
 
Recruitment Management Software Benefits (Infographic)
Recruitment Management Software Benefits (Infographic)Recruitment Management Software Benefits (Infographic)
Recruitment Management Software Benefits (Infographic)Hr365.us smith
 
Dealing with Cultural Dispersion — Stefano Lambiase — ICSE-SEIS 2024
Dealing with Cultural Dispersion — Stefano Lambiase — ICSE-SEIS 2024Dealing with Cultural Dispersion — Stefano Lambiase — ICSE-SEIS 2024
Dealing with Cultural Dispersion — Stefano Lambiase — ICSE-SEIS 2024StefanoLambiase
 
Cloud Data Center Network Construction - IEEE
Cloud Data Center Network Construction - IEEECloud Data Center Network Construction - IEEE
Cloud Data Center Network Construction - IEEEVICTOR MAESTRE RAMIREZ
 
Unveiling the Future: Sylius 2.0 New Features
Unveiling the Future: Sylius 2.0 New FeaturesUnveiling the Future: Sylius 2.0 New Features
Unveiling the Future: Sylius 2.0 New FeaturesŁukasz Chruściel
 
How to Track Employee Performance A Comprehensive Guide.pdf
How to Track Employee Performance A Comprehensive Guide.pdfHow to Track Employee Performance A Comprehensive Guide.pdf
How to Track Employee Performance A Comprehensive Guide.pdfLivetecs LLC
 
MYjobs Presentation Django-based project
MYjobs Presentation Django-based projectMYjobs Presentation Django-based project
MYjobs Presentation Django-based projectAnoyGreter
 
What are the key points to focus on before starting to learn ETL Development....
What are the key points to focus on before starting to learn ETL Development....What are the key points to focus on before starting to learn ETL Development....
What are the key points to focus on before starting to learn ETL Development....kzayra69
 
Folding Cheat Sheet #4 - fourth in a series
Folding Cheat Sheet #4 - fourth in a seriesFolding Cheat Sheet #4 - fourth in a series
Folding Cheat Sheet #4 - fourth in a seriesPhilip Schwarz
 
办理学位证(UQ文凭证书)昆士兰大学毕业证成绩单原版一模一样
办理学位证(UQ文凭证书)昆士兰大学毕业证成绩单原版一模一样办理学位证(UQ文凭证书)昆士兰大学毕业证成绩单原版一模一样
办理学位证(UQ文凭证书)昆士兰大学毕业证成绩单原版一模一样umasea
 

Recently uploaded (20)

React Server Component in Next.js by Hanief Utama
React Server Component in Next.js by Hanief UtamaReact Server Component in Next.js by Hanief Utama
React Server Component in Next.js by Hanief Utama
 
Hot Sexy call girls in Patel Nagar🔝 9953056974 🔝 escort Service
Hot Sexy call girls in Patel Nagar🔝 9953056974 🔝 escort ServiceHot Sexy call girls in Patel Nagar🔝 9953056974 🔝 escort Service
Hot Sexy call girls in Patel Nagar🔝 9953056974 🔝 escort Service
 
Open Source Summit NA 2024: Open Source Cloud Costs - OpenCost's Impact on En...
Open Source Summit NA 2024: Open Source Cloud Costs - OpenCost's Impact on En...Open Source Summit NA 2024: Open Source Cloud Costs - OpenCost's Impact on En...
Open Source Summit NA 2024: Open Source Cloud Costs - OpenCost's Impact on En...
 
Unveiling Design Patterns: A Visual Guide with UML Diagrams
Unveiling Design Patterns: A Visual Guide with UML DiagramsUnveiling Design Patterns: A Visual Guide with UML Diagrams
Unveiling Design Patterns: A Visual Guide with UML Diagrams
 
BATTLEFIELD ORM: TIPS, TACTICS AND STRATEGIES FOR CONQUERING YOUR DATABASE
BATTLEFIELD ORM: TIPS, TACTICS AND STRATEGIES FOR CONQUERING YOUR DATABASEBATTLEFIELD ORM: TIPS, TACTICS AND STRATEGIES FOR CONQUERING YOUR DATABASE
BATTLEFIELD ORM: TIPS, TACTICS AND STRATEGIES FOR CONQUERING YOUR DATABASE
 
Intelligent Home Wi-Fi Solutions | ThinkPalm
Intelligent Home Wi-Fi Solutions | ThinkPalmIntelligent Home Wi-Fi Solutions | ThinkPalm
Intelligent Home Wi-Fi Solutions | ThinkPalm
 
Russian Call Girls in Karol Bagh Aasnvi ➡️ 8264348440 💋📞 Independent Escort S...
Russian Call Girls in Karol Bagh Aasnvi ➡️ 8264348440 💋📞 Independent Escort S...Russian Call Girls in Karol Bagh Aasnvi ➡️ 8264348440 💋📞 Independent Escort S...
Russian Call Girls in Karol Bagh Aasnvi ➡️ 8264348440 💋📞 Independent Escort S...
 
Call Us🔝>༒+91-9711147426⇛Call In girls karol bagh (Delhi)
Call Us🔝>༒+91-9711147426⇛Call In girls karol bagh (Delhi)Call Us🔝>༒+91-9711147426⇛Call In girls karol bagh (Delhi)
Call Us🔝>༒+91-9711147426⇛Call In girls karol bagh (Delhi)
 
英国UN学位证,北安普顿大学毕业证书1:1制作
英国UN学位证,北安普顿大学毕业证书1:1制作英国UN学位证,北安普顿大学毕业证书1:1制作
英国UN学位证,北安普顿大学毕业证书1:1制作
 
What is Fashion PLM and Why Do You Need It
What is Fashion PLM and Why Do You Need ItWhat is Fashion PLM and Why Do You Need It
What is Fashion PLM and Why Do You Need It
 
Recruitment Management Software Benefits (Infographic)
Recruitment Management Software Benefits (Infographic)Recruitment Management Software Benefits (Infographic)
Recruitment Management Software Benefits (Infographic)
 
Dealing with Cultural Dispersion — Stefano Lambiase — ICSE-SEIS 2024
Dealing with Cultural Dispersion — Stefano Lambiase — ICSE-SEIS 2024Dealing with Cultural Dispersion — Stefano Lambiase — ICSE-SEIS 2024
Dealing with Cultural Dispersion — Stefano Lambiase — ICSE-SEIS 2024
 
Cloud Data Center Network Construction - IEEE
Cloud Data Center Network Construction - IEEECloud Data Center Network Construction - IEEE
Cloud Data Center Network Construction - IEEE
 
Unveiling the Future: Sylius 2.0 New Features
Unveiling the Future: Sylius 2.0 New FeaturesUnveiling the Future: Sylius 2.0 New Features
Unveiling the Future: Sylius 2.0 New Features
 
How to Track Employee Performance A Comprehensive Guide.pdf
How to Track Employee Performance A Comprehensive Guide.pdfHow to Track Employee Performance A Comprehensive Guide.pdf
How to Track Employee Performance A Comprehensive Guide.pdf
 
MYjobs Presentation Django-based project
MYjobs Presentation Django-based projectMYjobs Presentation Django-based project
MYjobs Presentation Django-based project
 
2.pdf Ejercicios de programación competitiva
2.pdf Ejercicios de programación competitiva2.pdf Ejercicios de programación competitiva
2.pdf Ejercicios de programación competitiva
 
What are the key points to focus on before starting to learn ETL Development....
What are the key points to focus on before starting to learn ETL Development....What are the key points to focus on before starting to learn ETL Development....
What are the key points to focus on before starting to learn ETL Development....
 
Folding Cheat Sheet #4 - fourth in a series
Folding Cheat Sheet #4 - fourth in a seriesFolding Cheat Sheet #4 - fourth in a series
Folding Cheat Sheet #4 - fourth in a series
 
办理学位证(UQ文凭证书)昆士兰大学毕业证成绩单原版一模一样
办理学位证(UQ文凭证书)昆士兰大学毕业证成绩单原版一模一样办理学位证(UQ文凭证书)昆士兰大学毕业证成绩单原版一模一样
办理学位证(UQ文凭证书)昆士兰大学毕业证成绩单原版一模一样
 

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]