SlideShare a Scribd company logo
1 of 27
Download to read offline
Model Driven Extraction of the Navigational Concern
           of Legacy Web Applications
                Roberto Rodríguez Echeverría, José María
                Conejero, Pedro J. Clemente, Víctor M. Pavón, Fernando Sánchez-
                Figueroa




                             http://quercusseg.unex.es
                             @quercusseg
•   Context
•   Motivation
•   Modernization process framework
•   Domain
•   MD Reverse Engineering of a LWA
    – Extraction
    – Representation
•   Case study
•   Evaluation
•   Conclusions
•   Future work

                        http://quercusseg.unex.es
                        @quercusseg
                                                    2
MIGRARIA

a step inside a larger project




                       http://quercusseg.unex.es
                       @quercusseg
                                                       3
MIGRARIA: 10000 feet view



             LWA Conceptual                              RIA Conceptual
                 Model                                       Model
                                    M2M
model
code
             T2M                                                     M2T

       LWA                                                                     RIA
             Modernization process framework
             - Model-driven approach
                  - Metamodels (DSL)
                  - Transformations
             - Architecture Driven Modernization

                                     http://quercusseg.unex.es
                                     @quercusseg
                                                                              4
MIGRARIA

• Enterprise systems behind Web 1.0 layers
• Alternative interfaces are trendy
    – Web 2.0 - RIA (web or desktop)
    – Mobile (web or native)




LiveNation Interactive   eBay Desktop
                                                         eBay app for iPad
      Seat Map            Adobe AIR

                             http://quercusseg.unex.es
                             @quercusseg
                                                                       5
MIGRARIA

• current main forces




                    http://quercusseg.unex.es
                    @quercusseg
                                                    6
MIGRARIA




http://quercusseg.unex.es
@quercusseg
                                7
MIGRARIA

• Legacy Web Applications (LWAs)
  – Web layers of enterprise applications
  – Web Application Framework
    • MVC pattern
    • Technology heterogenity (deprecated versions)
  – Lack of
    • Up-to-date documentation
    • Proper maintenance strategy
    • No original developers


                         http://quercusseg.unex.es
                         @quercusseg
                                                         8
MIGRARIA: 10000 feet view



             LWA Conceptual                              RIA Conceptual
                 Model                                       Model
                                    M2M
model
code
             T2M                                                     M2T

       LWA                                                                      RIA
             Modernization process framework
             - Model-driven approach
                  - Metamodels (DSL)
                  - Transformations
             - Architecture Driven Modernization

                                     http://quercusseg.unex.es
                                     @quercusseg
                                                                            9
MIGRARIA: 5000 feet view




http://quercusseg.unex.es
@quercusseg
                                          10
Server-side & Static Analysis

• Main steps
  – Text2model
  – Information extraction & Representation




                       http://quercusseg.unex.es
                       @quercusseg
                                                                  11
Text2Model




                                                                           M2M
         JSP
         Struts         JSP                               Struts-JSP
                                                             JSP
         taglib


XML
Struts
Conf
                     XML
                  StrutsConfig                               XML
                                                          Struts-Config

         Java
         Struts         Java                               Struts-Java
         Action


                              http://quercusseg.unex.es
                              @quercusseg
                                                                          12
MoDisco Extension: Struts JSP
• Struts tag libs
  metamodel
   – Taglibs: html, logic and
     bean
   – JSP metamodel
     extension
   – JSTL custom
     extension




                                http://quercusseg.unex.es
                                @quercusseg
                                                                     13
MoDisco Extension: Struts JSP

• M2M transformation
  JSP                  Struts-JSP




                   http://quercusseg.unex.es
                   @quercusseg
                                                          14
MoDisco Extension: Struts config

• New MoDisco Discoverer
  – Struts Configuration
  – Metamodel
    • XML metamodel extension
    • Automatic generation via EMF Generator Model
  – Derived from WebApp Discoverer
  – Struts 1.X config support
    • 1.0, 1.1, 1.2 and 1.3



                              http://quercusseg.unex.es
                              @quercusseg
                                                                    15
MoDisco Extension: Struts config

• New MoDisco Discoverer




                   http://quercusseg.unex.es
                   @quercusseg
                                                         16
Information Extraction



                M2M

Struts-JSP



                                             Struts
Struts-Config



Struts-Java


                http://quercusseg.unex.es
                @quercusseg
                                                             17
Struts Metamodel




http://quercusseg.unex.es
@quercusseg
                                       18
Agenda System




http://quercusseg.unex.es
@quercusseg
                                    19
Scattered information




http://quercusseg.unex.es
@quercusseg
                                            20
Navigation flows




http://quercusseg.unex.es
@quercusseg
                                       21
Struts model
p01-p03 Nav Flow           p03-p01-U Nav Flow




                   http://quercusseg.unex.es
                   @quercusseg
                                                       22
Manual vs Generated

• Size of the case study
      Concept                           Amount
      JSP files (including error)       78
      JSP LOCs                          6727
      Java files                        140
      Java LOCs                         10282
      Config LOCs                       496




                                    http://quercusseg.unex.es
                                    @quercusseg
                                                                              23
Manual vs Generated




• Limitations
  – Link request with n parameters
  – Only html:link tags, no HTML <a>
  – Duplicated forwards



                       http://quercusseg.unex.es
                       @quercusseg
                                                                 24
Main contributions

• MIGRARIA project
  – MD LWA2RIA modernization framework
• Work herein: MD Rev. Eng.
  – Extraction of a conceptual navigational model
    from a LWA
  – Metamodels: intermediate and target
  – Transformations
  – Evaluation


                       http://quercusseg.unex.es
                       @quercusseg
                                                                25
MD Reverse Engineering

• Eliminating current limitations
  – Refine and complete queries
  – Refine and complete Struts Metamodel
• Define specific metrics for evaluation
• We need
  – More case studies
  – More MVC frameworks



                       http://quercusseg.unex.es
                       @quercusseg
                                                                    26
Questions?

                                   Thanks for your attention
                                          rre@unex.es
                                           @rrecheve



Roberto Rodríguez Echeverría, José María Conejero, Pedro J. Clemente, Víctor M.
Pavón, Fernando Sánchez Figueroa


                                             http://quercusseg.unex.es
                                             @quercusseg

More Related Content

Similar to MigraRIA project overview (2012 mdwe )

An introduction to Microservices
An introduction to MicroservicesAn introduction to Microservices
An introduction to MicroservicesCisco DevNet
 
MySQL Ecosystem in 2020
MySQL Ecosystem in 2020MySQL Ecosystem in 2020
MySQL Ecosystem in 2020Alkin Tezuysal
 
Mongodb Introduction
Mongodb IntroductionMongodb Introduction
Mongodb IntroductionJeremy Taylor
 
A Brief Introduction: MongoDB
A Brief Introduction: MongoDBA Brief Introduction: MongoDB
A Brief Introduction: MongoDBDATAVERSITY
 
Stay productive while slicing up the monolith
Stay productive while slicing up the monolithStay productive while slicing up the monolith
Stay productive while slicing up the monolithMarkus Eisele
 
Managing your camels in the cloud with CI/CD
Managing your camels in the cloud with CI/CDManaging your camels in the cloud with CI/CD
Managing your camels in the cloud with CI/CDChristian Posta
 
WSO2 Workshop Sydney 2016 - Microservices
WSO2 Workshop Sydney 2016 - MicroservicesWSO2 Workshop Sydney 2016 - Microservices
WSO2 Workshop Sydney 2016 - MicroservicesDassana Wijesekara
 
Microservices with Apache Camel, DDD, and Kubernetes
Microservices with Apache Camel, DDD, and KubernetesMicroservices with Apache Camel, DDD, and Kubernetes
Microservices with Apache Camel, DDD, and KubernetesChristian Posta
 
Eclipse VIATRA Overview 2017
Eclipse VIATRA Overview 2017Eclipse VIATRA Overview 2017
Eclipse VIATRA Overview 2017Istvan Rath
 
Stay productive while slicing up the monolith
Stay productive while slicing up the monolithStay productive while slicing up the monolith
Stay productive while slicing up the monolithMarkus Eisele
 
NOSQL Meets Relational - The MySQL Ecosystem Gains More Flexibility
NOSQL Meets Relational - The MySQL Ecosystem Gains More FlexibilityNOSQL Meets Relational - The MySQL Ecosystem Gains More Flexibility
NOSQL Meets Relational - The MySQL Ecosystem Gains More FlexibilityIvan Zoratti
 
Java Edge.2008.Web.Frameworks.Catagorized
Java Edge.2008.Web.Frameworks.CatagorizedJava Edge.2008.Web.Frameworks.Catagorized
Java Edge.2008.Web.Frameworks.Catagorizedroialdaag
 
Makersbay Overview
Makersbay OverviewMakersbay Overview
Makersbay Overviewslodha
 
Webinar: Adobe Experience Manager Clustering Made Easy on MongoDB
Webinar: Adobe Experience Manager Clustering Made Easy on MongoDB Webinar: Adobe Experience Manager Clustering Made Easy on MongoDB
Webinar: Adobe Experience Manager Clustering Made Easy on MongoDB MongoDB
 
Building Services with WSO2 Microservices framework for Java and WSO2 AS
Building Services with WSO2 Microservices framework for Java and WSO2 ASBuilding Services with WSO2 Microservices framework for Java and WSO2 AS
Building Services with WSO2 Microservices framework for Java and WSO2 ASKasun Gajasinghe
 
Rami Sayar - Node microservices with Docker
Rami Sayar - Node microservices with DockerRami Sayar - Node microservices with Docker
Rami Sayar - Node microservices with DockerWeb à Québec
 
VIATRA 2.0 Webinar
VIATRA 2.0 WebinarVIATRA 2.0 Webinar
VIATRA 2.0 WebinarIstvan Rath
 
Advanced use cases and approaches with stratos paa s
Advanced use cases and approaches with stratos paa sAdvanced use cases and approaches with stratos paa s
Advanced use cases and approaches with stratos paa sWSO2
 
Summer 2017 undergraduate research powerpoint
Summer 2017 undergraduate research powerpointSummer 2017 undergraduate research powerpoint
Summer 2017 undergraduate research powerpointChristopher Dubois
 

Similar to MigraRIA project overview (2012 mdwe ) (20)

An introduction to Microservices
An introduction to MicroservicesAn introduction to Microservices
An introduction to Microservices
 
MySQL Ecosystem in 2020
MySQL Ecosystem in 2020MySQL Ecosystem in 2020
MySQL Ecosystem in 2020
 
Mongodb Introduction
Mongodb IntroductionMongodb Introduction
Mongodb Introduction
 
A Brief Introduction: MongoDB
A Brief Introduction: MongoDBA Brief Introduction: MongoDB
A Brief Introduction: MongoDB
 
Stay productive while slicing up the monolith
Stay productive while slicing up the monolithStay productive while slicing up the monolith
Stay productive while slicing up the monolith
 
Managing your camels in the cloud with CI/CD
Managing your camels in the cloud with CI/CDManaging your camels in the cloud with CI/CD
Managing your camels in the cloud with CI/CD
 
WSO2 Workshop Sydney 2016 - Microservices
WSO2 Workshop Sydney 2016 - MicroservicesWSO2 Workshop Sydney 2016 - Microservices
WSO2 Workshop Sydney 2016 - Microservices
 
Microservices with Apache Camel, DDD, and Kubernetes
Microservices with Apache Camel, DDD, and KubernetesMicroservices with Apache Camel, DDD, and Kubernetes
Microservices with Apache Camel, DDD, and Kubernetes
 
Eclipse VIATRA Overview 2017
Eclipse VIATRA Overview 2017Eclipse VIATRA Overview 2017
Eclipse VIATRA Overview 2017
 
Stay productive while slicing up the monolith
Stay productive while slicing up the monolithStay productive while slicing up the monolith
Stay productive while slicing up the monolith
 
NOSQL Meets Relational - The MySQL Ecosystem Gains More Flexibility
NOSQL Meets Relational - The MySQL Ecosystem Gains More FlexibilityNOSQL Meets Relational - The MySQL Ecosystem Gains More Flexibility
NOSQL Meets Relational - The MySQL Ecosystem Gains More Flexibility
 
Java Edge.2008.Web.Frameworks.Catagorized
Java Edge.2008.Web.Frameworks.CatagorizedJava Edge.2008.Web.Frameworks.Catagorized
Java Edge.2008.Web.Frameworks.Catagorized
 
Makersbay Overview
Makersbay OverviewMakersbay Overview
Makersbay Overview
 
Micro services Architecture
Micro services ArchitectureMicro services Architecture
Micro services Architecture
 
Webinar: Adobe Experience Manager Clustering Made Easy on MongoDB
Webinar: Adobe Experience Manager Clustering Made Easy on MongoDB Webinar: Adobe Experience Manager Clustering Made Easy on MongoDB
Webinar: Adobe Experience Manager Clustering Made Easy on MongoDB
 
Building Services with WSO2 Microservices framework for Java and WSO2 AS
Building Services with WSO2 Microservices framework for Java and WSO2 ASBuilding Services with WSO2 Microservices framework for Java and WSO2 AS
Building Services with WSO2 Microservices framework for Java and WSO2 AS
 
Rami Sayar - Node microservices with Docker
Rami Sayar - Node microservices with DockerRami Sayar - Node microservices with Docker
Rami Sayar - Node microservices with Docker
 
VIATRA 2.0 Webinar
VIATRA 2.0 WebinarVIATRA 2.0 Webinar
VIATRA 2.0 Webinar
 
Advanced use cases and approaches with stratos paa s
Advanced use cases and approaches with stratos paa sAdvanced use cases and approaches with stratos paa s
Advanced use cases and approaches with stratos paa s
 
Summer 2017 undergraduate research powerpoint
Summer 2017 undergraduate research powerpointSummer 2017 undergraduate research powerpoint
Summer 2017 undergraduate research powerpoint
 

MigraRIA project overview (2012 mdwe )

  • 1. Model Driven Extraction of the Navigational Concern of Legacy Web Applications Roberto Rodríguez Echeverría, José María Conejero, Pedro J. Clemente, Víctor M. Pavón, Fernando Sánchez- Figueroa http://quercusseg.unex.es @quercusseg
  • 2. Context • Motivation • Modernization process framework • Domain • MD Reverse Engineering of a LWA – Extraction – Representation • Case study • Evaluation • Conclusions • Future work http://quercusseg.unex.es @quercusseg 2
  • 3. MIGRARIA a step inside a larger project http://quercusseg.unex.es @quercusseg 3
  • 4. MIGRARIA: 10000 feet view LWA Conceptual RIA Conceptual Model Model M2M model code T2M M2T LWA RIA Modernization process framework - Model-driven approach - Metamodels (DSL) - Transformations - Architecture Driven Modernization http://quercusseg.unex.es @quercusseg 4
  • 5. MIGRARIA • Enterprise systems behind Web 1.0 layers • Alternative interfaces are trendy – Web 2.0 - RIA (web or desktop) – Mobile (web or native) LiveNation Interactive eBay Desktop eBay app for iPad Seat Map Adobe AIR http://quercusseg.unex.es @quercusseg 5
  • 6. MIGRARIA • current main forces http://quercusseg.unex.es @quercusseg 6
  • 8. MIGRARIA • Legacy Web Applications (LWAs) – Web layers of enterprise applications – Web Application Framework • MVC pattern • Technology heterogenity (deprecated versions) – Lack of • Up-to-date documentation • Proper maintenance strategy • No original developers http://quercusseg.unex.es @quercusseg 8
  • 9. MIGRARIA: 10000 feet view LWA Conceptual RIA Conceptual Model Model M2M model code T2M M2T LWA RIA Modernization process framework - Model-driven approach - Metamodels (DSL) - Transformations - Architecture Driven Modernization http://quercusseg.unex.es @quercusseg 9
  • 10. MIGRARIA: 5000 feet view http://quercusseg.unex.es @quercusseg 10
  • 11. Server-side & Static Analysis • Main steps – Text2model – Information extraction & Representation http://quercusseg.unex.es @quercusseg 11
  • 12. Text2Model M2M JSP Struts JSP Struts-JSP JSP taglib XML Struts Conf XML StrutsConfig XML Struts-Config Java Struts Java Struts-Java Action http://quercusseg.unex.es @quercusseg 12
  • 13. MoDisco Extension: Struts JSP • Struts tag libs metamodel – Taglibs: html, logic and bean – JSP metamodel extension – JSTL custom extension http://quercusseg.unex.es @quercusseg 13
  • 14. MoDisco Extension: Struts JSP • M2M transformation JSP Struts-JSP http://quercusseg.unex.es @quercusseg 14
  • 15. MoDisco Extension: Struts config • New MoDisco Discoverer – Struts Configuration – Metamodel • XML metamodel extension • Automatic generation via EMF Generator Model – Derived from WebApp Discoverer – Struts 1.X config support • 1.0, 1.1, 1.2 and 1.3 http://quercusseg.unex.es @quercusseg 15
  • 16. MoDisco Extension: Struts config • New MoDisco Discoverer http://quercusseg.unex.es @quercusseg 16
  • 17. Information Extraction M2M Struts-JSP Struts Struts-Config Struts-Java http://quercusseg.unex.es @quercusseg 17
  • 22. Struts model p01-p03 Nav Flow p03-p01-U Nav Flow http://quercusseg.unex.es @quercusseg 22
  • 23. Manual vs Generated • Size of the case study Concept Amount JSP files (including error) 78 JSP LOCs 6727 Java files 140 Java LOCs 10282 Config LOCs 496 http://quercusseg.unex.es @quercusseg 23
  • 24. Manual vs Generated • Limitations – Link request with n parameters – Only html:link tags, no HTML <a> – Duplicated forwards http://quercusseg.unex.es @quercusseg 24
  • 25. Main contributions • MIGRARIA project – MD LWA2RIA modernization framework • Work herein: MD Rev. Eng. – Extraction of a conceptual navigational model from a LWA – Metamodels: intermediate and target – Transformations – Evaluation http://quercusseg.unex.es @quercusseg 25
  • 26. MD Reverse Engineering • Eliminating current limitations – Refine and complete queries – Refine and complete Struts Metamodel • Define specific metrics for evaluation • We need – More case studies – More MVC frameworks http://quercusseg.unex.es @quercusseg 26
  • 27. Questions? Thanks for your attention rre@unex.es @rrecheve Roberto Rodríguez Echeverría, José María Conejero, Pedro J. Clemente, Víctor M. Pavón, Fernando Sánchez Figueroa http://quercusseg.unex.es @quercusseg