SlideShare une entreprise Scribd logo
1  sur  18
Télécharger pour lire hors ligne
EMF large-scale modeling
                                    outside of Eclipse
                                          by Renat Zubairov




Donnerstag, 3. November 11
About me



    Product Owner at Talend (ex. SOPERA)

    Open source contributions to:
      - Apache Tapestry
      - Emf4Swing
      - Eclipse BPMN Designer
      - Eclipse Swordfish + Swordfish Tooling
      - Smooks
      - Talend AI Tooling

                             @zubairov

                             github.com/zubairov

   © Talend 2011               follow me on @zubairov   2

Donnerstag, 3. November 11
What I’m going to talk about?




   © Talend 2011             follow me on @zubairov   3

Donnerstag, 3. November 11
Smooks Project


    ‣ Smooks is a data integration framework for ‘building
            applications for processing XML and non XML data
            using Java’
    ‣       Main features
        ‣     Java Binding
        ‣     Transformation
        ‣     Large message processing
        ‣     Message enrichment
        ‣     Validation
        ‣     EDI & UN/EDIFACT support




   © Talend 2011                         follow me on @zubairov   4

Donnerstag, 3. November 11
EDI & UN/EDIFACT


    ‣ Major EDI standards
       ‣     UN/EDIFACT (ouside US)
       ‣     US ANSI X12                              UNA:+.? '
       ‣     TRADACOMS                                UNB+IATB:1+6XPPC+LHPPC+940101:0950+1'
                                                      UNH+1+PAORES:93:1:IA'
       ‣     ODETTE                                   MSG+1:45'
       ‣     IATA standards                           IFT+3+XYZCOMPANY AVAILABILITY'

    ‣ UN/EDIFACT
                                                      ERC+A7V:1:AMD'
                                                      IFT+3+NO MORE FLIGHTS'
       ‣ 26 Directories, ~160 Message types           ODI'
             each.                                    TVL+240493:1000::1220+FRA+JFK+DL+400+C'
                                                      PDI++C:3+Y::3+F::1'
                                                      APD+74C:0:::6++++++6X'
                                                      TVL+240493:1740::2030+JFK+MIA+DL+081+C'
                                                      PDI++C:4'
                                                      APD+EM2:0:1630::6+++++++DA'
                                                      UNT+13+1'
                                                      UNZ+1+1'




   © Talend 2011                      follow me on @zubairov                                    5

Donnerstag, 3. November 11
Old UN/EDIFACT processing approach with Smooks




                                       Proprietary
  Dictionary                  ECT      EDI file Model            EJC     Java Sources




                              EDI                              Mapper      Java
    EDI File                          SAX Events                        Instances
                             Parser



                                                                        Smooks code


   © Talend 2011                      follow me on @zubairov                            6

Donnerstag, 3. November 11
New processing approach with Smooks and EMF




                                                                  Gen
  Dictionary                  ECT        ECore Model
                                                                 model
                                                                          Java Sources




                              EDI                                EMF        Java
    EDI File                          SAX Events               Runtime   Instances
                             Parser



                                                                         Smooks code
                                                                         EMF code
   © Talend 2011                      follow me on @zubairov                             7

Donnerstag, 3. November 11
By-product: Eclipse EDI Editor




   © Talend 2011             follow me on @zubairov   8

Donnerstag, 3. November 11
Challenges




Donnerstag, 3. November 11
Culture and positioning




                             Apache Planet




   © Talend 2011                         follow me on @zubairov   10

Donnerstag, 3. November 11
Build challenges


    ‣ Maven is a de-facto standard.
    ‣ Latest available EMF JAR file from http://mvnrepository.com is 2.6.0 build in
           June 2010
    ‣   Missing sources
    ‣   Broken dependency tree




   © Talend 2011                   follow me on @zubairov                             11

Donnerstag, 3. November 11
© Talend 2011             follow me on @zubairov   12

Donnerstag, 3. November 11
Coupling

    For example to parse the XML Schema with EMF I would need:

    ‣    org.eclipse.core.runtime
    ‣    org.eclipse.core.jobs
    ‣    org.eclipse.osgi
    ‣    org.eclipse.equinox.app
    ‣    org.osgi.foundation
    ‣    servlet-api




     Do we need all of it?




   © Talend 2011                    follow me on @zubairov       13

Donnerstag, 3. November 11
Re-using resulting artifact


       ‣ Artifacts should be usable in four runtime environments
          ‣        Java standalone
          ‣        Eclipse (as parts of XML Catalog)
          ‣        OSGi runtime (together with Apache Camel)
          ‣        WAR file deployed on Google App Engine

       ‣ Different configuration discovery mechanisms
          ‣ extension points from plugin.xml / fragment.xml in Eclipse environment
          ‣ Manual classpath discovery in Java Standalone + WAR
          ‣ OSGi configuration admin and blueprint in OSGi
       ‣ As a result we use duplicate information in all three of them.


   © Talend 2011                            follow me on @zubairov                   14

Donnerstag, 3. November 11
Deploying to Google App-Engine

    ‣ A prototype of App-Engine deployed
         service for converting UN/EDIFACT
         into XML.

         http://edi-to-xml.appspot.com

    ‣ XML produced by that service
         references schemas generated
         based on Ecore model.
    ‣    WARNING: AppEngine does not
         support signed JAR files, and all
         EMF jar files are signed. Issue
         #3754 on Google App Engine issues.




   © Talend 2011                         follow me on @zubairov   15

Donnerstag, 3. November 11
EMF scalability issues (for our use-cases)


    ‣ We have 26 Directories with ~160 message types, so, all together it’s
           ~80k classifiers
    ‣   Serializing ECore model with 336 classifiers and 1155 structural features as
           annotated XML Schema takes 5 minutes on the Intel Core i7.
        ‣ And that’s only for one message type out of ~4160.
    ‣ Quickly got answer on the EMF Forum:
        ‣ Answer from Ed: ‘I don't imagine folks change their models so often that a few
              minutes for a large schema is a big concern...’ see http://www.eclipse.org/forums/
              index.php/m/663952/




   © Talend 2011                          follow me on @zubairov                                   16

Donnerstag, 3. November 11
Why would you care?




   © Talend 2011             follow me on @zubairov   17

Donnerstag, 3. November 11
Questions?

                             mail them to Renat.Zubairov at gmail.com
                                               or tweet to: @zubairov




Donnerstag, 3. November 11

Contenu connexe

Dernier

Harnessing Passkeys in the Battle Against AI-Powered Cyber Threats.pptx
Harnessing Passkeys in the Battle Against AI-Powered Cyber Threats.pptxHarnessing Passkeys in the Battle Against AI-Powered Cyber Threats.pptx
Harnessing Passkeys in the Battle Against AI-Powered Cyber Threats.pptx
FIDO Alliance
 
Hyatt driving innovation and exceptional customer experiences with FIDO passw...
Hyatt driving innovation and exceptional customer experiences with FIDO passw...Hyatt driving innovation and exceptional customer experiences with FIDO passw...
Hyatt driving innovation and exceptional customer experiences with FIDO passw...
FIDO Alliance
 

Dernier (20)

Event-Driven Architecture Masterclass: Integrating Distributed Data Stores Ac...
Event-Driven Architecture Masterclass: Integrating Distributed Data Stores Ac...Event-Driven Architecture Masterclass: Integrating Distributed Data Stores Ac...
Event-Driven Architecture Masterclass: Integrating Distributed Data Stores Ac...
 
Simplified FDO Manufacturing Flow with TPMs _ Liam at Infineon.pdf
Simplified FDO Manufacturing Flow with TPMs _ Liam at Infineon.pdfSimplified FDO Manufacturing Flow with TPMs _ Liam at Infineon.pdf
Simplified FDO Manufacturing Flow with TPMs _ Liam at Infineon.pdf
 
Harnessing Passkeys in the Battle Against AI-Powered Cyber Threats.pptx
Harnessing Passkeys in the Battle Against AI-Powered Cyber Threats.pptxHarnessing Passkeys in the Battle Against AI-Powered Cyber Threats.pptx
Harnessing Passkeys in the Battle Against AI-Powered Cyber Threats.pptx
 
Hyatt driving innovation and exceptional customer experiences with FIDO passw...
Hyatt driving innovation and exceptional customer experiences with FIDO passw...Hyatt driving innovation and exceptional customer experiences with FIDO passw...
Hyatt driving innovation and exceptional customer experiences with FIDO passw...
 
Using IESVE for Room Loads Analysis - UK & Ireland
Using IESVE for Room Loads Analysis - UK & IrelandUsing IESVE for Room Loads Analysis - UK & Ireland
Using IESVE for Room Loads Analysis - UK & Ireland
 
Top 10 CodeIgniter Development Companies
Top 10 CodeIgniter Development CompaniesTop 10 CodeIgniter Development Companies
Top 10 CodeIgniter Development Companies
 
AI mind or machine power point presentation
AI mind or machine power point presentationAI mind or machine power point presentation
AI mind or machine power point presentation
 
Extensible Python: Robustness through Addition - PyCon 2024
Extensible Python: Robustness through Addition - PyCon 2024Extensible Python: Robustness through Addition - PyCon 2024
Extensible Python: Robustness through Addition - PyCon 2024
 
Vector Search @ sw2con for slideshare.pptx
Vector Search @ sw2con for slideshare.pptxVector Search @ sw2con for slideshare.pptx
Vector Search @ sw2con for slideshare.pptx
 
Intro to Passkeys and the State of Passwordless.pptx
Intro to Passkeys and the State of Passwordless.pptxIntro to Passkeys and the State of Passwordless.pptx
Intro to Passkeys and the State of Passwordless.pptx
 
Continuing Bonds Through AI: A Hermeneutic Reflection on Thanabots
Continuing Bonds Through AI: A Hermeneutic Reflection on ThanabotsContinuing Bonds Through AI: A Hermeneutic Reflection on Thanabots
Continuing Bonds Through AI: A Hermeneutic Reflection on Thanabots
 
ADP Passwordless Journey Case Study.pptx
ADP Passwordless Journey Case Study.pptxADP Passwordless Journey Case Study.pptx
ADP Passwordless Journey Case Study.pptx
 
WebAssembly is Key to Better LLM Performance
WebAssembly is Key to Better LLM PerformanceWebAssembly is Key to Better LLM Performance
WebAssembly is Key to Better LLM Performance
 
Generative AI Use Cases and Applications.pdf
Generative AI Use Cases and Applications.pdfGenerative AI Use Cases and Applications.pdf
Generative AI Use Cases and Applications.pdf
 
Design Guidelines for Passkeys 2024.pptx
Design Guidelines for Passkeys 2024.pptxDesign Guidelines for Passkeys 2024.pptx
Design Guidelines for Passkeys 2024.pptx
 
Linux Foundation Edge _ Overview of FDO Software Components _ Randy at Intel.pdf
Linux Foundation Edge _ Overview of FDO Software Components _ Randy at Intel.pdfLinux Foundation Edge _ Overview of FDO Software Components _ Randy at Intel.pdf
Linux Foundation Edge _ Overview of FDO Software Components _ Randy at Intel.pdf
 
JavaScript Usage Statistics 2024 - The Ultimate Guide
JavaScript Usage Statistics 2024 - The Ultimate GuideJavaScript Usage Statistics 2024 - The Ultimate Guide
JavaScript Usage Statistics 2024 - The Ultimate Guide
 
Design and Development of a Provenance Capture Platform for Data Science
Design and Development of a Provenance Capture Platform for Data ScienceDesign and Development of a Provenance Capture Platform for Data Science
Design and Development of a Provenance Capture Platform for Data Science
 
Intro in Product Management - Коротко про професію продакт менеджера
Intro in Product Management - Коротко про професію продакт менеджераIntro in Product Management - Коротко про професію продакт менеджера
Intro in Product Management - Коротко про професію продакт менеджера
 
Event-Driven Architecture Masterclass: Challenges in Stream Processing
Event-Driven Architecture Masterclass: Challenges in Stream ProcessingEvent-Driven Architecture Masterclass: Challenges in Stream Processing
Event-Driven Architecture Masterclass: Challenges in Stream Processing
 

En vedette

Social Media Marketing Trends 2024 // The Global Indie Insights
Social Media Marketing Trends 2024 // The Global Indie InsightsSocial Media Marketing Trends 2024 // The Global Indie Insights
Social Media Marketing Trends 2024 // The Global Indie Insights
Kurio // The Social Media Age(ncy)
 

En vedette (20)

PEPSICO Presentation to CAGNY Conference Feb 2024
PEPSICO Presentation to CAGNY Conference Feb 2024PEPSICO Presentation to CAGNY Conference Feb 2024
PEPSICO Presentation to CAGNY Conference Feb 2024
 
Content Methodology: A Best Practices Report (Webinar)
Content Methodology: A Best Practices Report (Webinar)Content Methodology: A Best Practices Report (Webinar)
Content Methodology: A Best Practices Report (Webinar)
 
How to Prepare For a Successful Job Search for 2024
How to Prepare For a Successful Job Search for 2024How to Prepare For a Successful Job Search for 2024
How to Prepare For a Successful Job Search for 2024
 
Social Media Marketing Trends 2024 // The Global Indie Insights
Social Media Marketing Trends 2024 // The Global Indie InsightsSocial Media Marketing Trends 2024 // The Global Indie Insights
Social Media Marketing Trends 2024 // The Global Indie Insights
 
Trends In Paid Search: Navigating The Digital Landscape In 2024
Trends In Paid Search: Navigating The Digital Landscape In 2024Trends In Paid Search: Navigating The Digital Landscape In 2024
Trends In Paid Search: Navigating The Digital Landscape In 2024
 
5 Public speaking tips from TED - Visualized summary
5 Public speaking tips from TED - Visualized summary5 Public speaking tips from TED - Visualized summary
5 Public speaking tips from TED - Visualized summary
 
ChatGPT and the Future of Work - Clark Boyd
ChatGPT and the Future of Work - Clark Boyd ChatGPT and the Future of Work - Clark Boyd
ChatGPT and the Future of Work - Clark Boyd
 
Getting into the tech field. what next
Getting into the tech field. what next Getting into the tech field. what next
Getting into the tech field. what next
 
Google's Just Not That Into You: Understanding Core Updates & Search Intent
Google's Just Not That Into You: Understanding Core Updates & Search IntentGoogle's Just Not That Into You: Understanding Core Updates & Search Intent
Google's Just Not That Into You: Understanding Core Updates & Search Intent
 
How to have difficult conversations
How to have difficult conversations How to have difficult conversations
How to have difficult conversations
 
Introduction to Data Science
Introduction to Data ScienceIntroduction to Data Science
Introduction to Data Science
 
Time Management & Productivity - Best Practices
Time Management & Productivity -  Best PracticesTime Management & Productivity -  Best Practices
Time Management & Productivity - Best Practices
 
The six step guide to practical project management
The six step guide to practical project managementThe six step guide to practical project management
The six step guide to practical project management
 
Beginners Guide to TikTok for Search - Rachel Pearson - We are Tilt __ Bright...
Beginners Guide to TikTok for Search - Rachel Pearson - We are Tilt __ Bright...Beginners Guide to TikTok for Search - Rachel Pearson - We are Tilt __ Bright...
Beginners Guide to TikTok for Search - Rachel Pearson - We are Tilt __ Bright...
 
Unlocking the Power of ChatGPT and AI in Testing - A Real-World Look, present...
Unlocking the Power of ChatGPT and AI in Testing - A Real-World Look, present...Unlocking the Power of ChatGPT and AI in Testing - A Real-World Look, present...
Unlocking the Power of ChatGPT and AI in Testing - A Real-World Look, present...
 
12 Ways to Increase Your Influence at Work
12 Ways to Increase Your Influence at Work12 Ways to Increase Your Influence at Work
12 Ways to Increase Your Influence at Work
 
ChatGPT webinar slides
ChatGPT webinar slidesChatGPT webinar slides
ChatGPT webinar slides
 
More than Just Lines on a Map: Best Practices for U.S Bike Routes
More than Just Lines on a Map: Best Practices for U.S Bike RoutesMore than Just Lines on a Map: Best Practices for U.S Bike Routes
More than Just Lines on a Map: Best Practices for U.S Bike Routes
 
Ride the Storm: Navigating Through Unstable Periods / Katerina Rudko (Belka G...
Ride the Storm: Navigating Through Unstable Periods / Katerina Rudko (Belka G...Ride the Storm: Navigating Through Unstable Periods / Katerina Rudko (Belka G...
Ride the Storm: Navigating Through Unstable Periods / Katerina Rudko (Belka G...
 
Barbie - Brand Strategy Presentation
Barbie - Brand Strategy PresentationBarbie - Brand Strategy Presentation
Barbie - Brand Strategy Presentation
 

EMF large-scale modeling outside Eclipse. EclipseCon Europe 2011

  • 1. EMF large-scale modeling outside of Eclipse by Renat Zubairov Donnerstag, 3. November 11
  • 2. About me Product Owner at Talend (ex. SOPERA) Open source contributions to: - Apache Tapestry - Emf4Swing - Eclipse BPMN Designer - Eclipse Swordfish + Swordfish Tooling - Smooks - Talend AI Tooling @zubairov github.com/zubairov © Talend 2011 follow me on @zubairov 2 Donnerstag, 3. November 11
  • 3. What I’m going to talk about? © Talend 2011 follow me on @zubairov 3 Donnerstag, 3. November 11
  • 4. Smooks Project ‣ Smooks is a data integration framework for ‘building applications for processing XML and non XML data using Java’ ‣ Main features ‣ Java Binding ‣ Transformation ‣ Large message processing ‣ Message enrichment ‣ Validation ‣ EDI & UN/EDIFACT support © Talend 2011 follow me on @zubairov 4 Donnerstag, 3. November 11
  • 5. EDI & UN/EDIFACT ‣ Major EDI standards ‣ UN/EDIFACT (ouside US) ‣ US ANSI X12 UNA:+.? ' ‣ TRADACOMS UNB+IATB:1+6XPPC+LHPPC+940101:0950+1' UNH+1+PAORES:93:1:IA' ‣ ODETTE MSG+1:45' ‣ IATA standards IFT+3+XYZCOMPANY AVAILABILITY' ‣ UN/EDIFACT ERC+A7V:1:AMD' IFT+3+NO MORE FLIGHTS' ‣ 26 Directories, ~160 Message types ODI' each. TVL+240493:1000::1220+FRA+JFK+DL+400+C' PDI++C:3+Y::3+F::1' APD+74C:0:::6++++++6X' TVL+240493:1740::2030+JFK+MIA+DL+081+C' PDI++C:4' APD+EM2:0:1630::6+++++++DA' UNT+13+1' UNZ+1+1' © Talend 2011 follow me on @zubairov 5 Donnerstag, 3. November 11
  • 6. Old UN/EDIFACT processing approach with Smooks Proprietary Dictionary ECT EDI file Model EJC Java Sources EDI Mapper Java EDI File SAX Events Instances Parser Smooks code © Talend 2011 follow me on @zubairov 6 Donnerstag, 3. November 11
  • 7. New processing approach with Smooks and EMF Gen Dictionary ECT ECore Model model Java Sources EDI EMF Java EDI File SAX Events Runtime Instances Parser Smooks code EMF code © Talend 2011 follow me on @zubairov 7 Donnerstag, 3. November 11
  • 8. By-product: Eclipse EDI Editor © Talend 2011 follow me on @zubairov 8 Donnerstag, 3. November 11
  • 10. Culture and positioning Apache Planet © Talend 2011 follow me on @zubairov 10 Donnerstag, 3. November 11
  • 11. Build challenges ‣ Maven is a de-facto standard. ‣ Latest available EMF JAR file from http://mvnrepository.com is 2.6.0 build in June 2010 ‣ Missing sources ‣ Broken dependency tree © Talend 2011 follow me on @zubairov 11 Donnerstag, 3. November 11
  • 12. © Talend 2011 follow me on @zubairov 12 Donnerstag, 3. November 11
  • 13. Coupling For example to parse the XML Schema with EMF I would need: ‣ org.eclipse.core.runtime ‣ org.eclipse.core.jobs ‣ org.eclipse.osgi ‣ org.eclipse.equinox.app ‣ org.osgi.foundation ‣ servlet-api Do we need all of it? © Talend 2011 follow me on @zubairov 13 Donnerstag, 3. November 11
  • 14. Re-using resulting artifact ‣ Artifacts should be usable in four runtime environments ‣ Java standalone ‣ Eclipse (as parts of XML Catalog) ‣ OSGi runtime (together with Apache Camel) ‣ WAR file deployed on Google App Engine ‣ Different configuration discovery mechanisms ‣ extension points from plugin.xml / fragment.xml in Eclipse environment ‣ Manual classpath discovery in Java Standalone + WAR ‣ OSGi configuration admin and blueprint in OSGi ‣ As a result we use duplicate information in all three of them. © Talend 2011 follow me on @zubairov 14 Donnerstag, 3. November 11
  • 15. Deploying to Google App-Engine ‣ A prototype of App-Engine deployed service for converting UN/EDIFACT into XML. http://edi-to-xml.appspot.com ‣ XML produced by that service references schemas generated based on Ecore model. ‣ WARNING: AppEngine does not support signed JAR files, and all EMF jar files are signed. Issue #3754 on Google App Engine issues. © Talend 2011 follow me on @zubairov 15 Donnerstag, 3. November 11
  • 16. EMF scalability issues (for our use-cases) ‣ We have 26 Directories with ~160 message types, so, all together it’s ~80k classifiers ‣ Serializing ECore model with 336 classifiers and 1155 structural features as annotated XML Schema takes 5 minutes on the Intel Core i7. ‣ And that’s only for one message type out of ~4160. ‣ Quickly got answer on the EMF Forum: ‣ Answer from Ed: ‘I don't imagine folks change their models so often that a few minutes for a large schema is a big concern...’ see http://www.eclipse.org/forums/ index.php/m/663952/ © Talend 2011 follow me on @zubairov 16 Donnerstag, 3. November 11
  • 17. Why would you care? © Talend 2011 follow me on @zubairov 17 Donnerstag, 3. November 11
  • 18. Questions? mail them to Renat.Zubairov at gmail.com or tweet to: @zubairov Donnerstag, 3. November 11