SlideShare a Scribd company logo
1 of 38
Download to read offline
EMF-­‐INCQUERY:
                                                      Efficient	
  Model	
  Queries	
  for	
  
                                                              EMF	
  Tools	
  

                                                         Tamás	
  Szabó,	
  István	
  Ráth	
  




Budapest	
  University	
  of	
  Technology	
  and	
  Economics   IncQuery	
  Labs	
  Ltd.
Fault	
  Tolerant	
  Systems	
  Research	
  Group
Overview
§   IntroducAon
§   EMF-­‐INCQUERY	
  overview
§   Performance	
  benchmarking
§   Roadmap	
  and	
  ideas	
  for	
  the	
  future
A	
  key	
  problem	
  of	
  MDE
§ Scalability	
  vs.	
  modeling	
  tools
    o Issues	
  encountered	
  by	
  several	
  industrial	
  partners	
  using	
  
      tools	
  based	
  on	
  the	
  Eclipse	
  Modeling	
  Framework	
  (EMF)
    o Modeling	
  scenarios	
  can	
  get	
  really	
  complex	
  really	
  quickly
        • Instance	
  models	
  of	
  size	
  1-­‐2M	
  and	
  beyond
        • Performance	
  issues	
  with	
  model	
  transformaLons	
  and	
  code	
  
          generators	
  have	
  an	
  adverse	
  effect	
  on	
  everyday	
  development	
  tasks
§ Scalability?                      Recognized	
  e.g.	
  by	
  AUTOSAR	
  tool	
  vendors
                                      hOp://wiki.eclipse.org/Auto_IWG_WP2
    o Complex
      (meta)models
    o Large	
  instance	
  models
    o Complex	
  query	
  and	
  manipulaLon	
  scenarios
Focus:	
  model	
  queries
§ Model	
  queries:	
  
   “a	
  piece	
  of	
  code	
  that	
  retrieves	
  a	
  given	
  set	
  of	
  the	
  model”
§ Queries	
  are	
  at	
  the	
  heart	
  of	
  MDE
    o Every	
  model	
  access/read	
  is	
  a	
  (simple)	
  query
    o More	
  complex:	
  Views,	
  content	
  providers
    o Most	
  complex:	
  Model	
  transformaAons,	
  code	
  generators,	
  …
§ Query	
  performance	
  (=	
  the	
  speed	
  of	
  content	
  retrieval)	
  is	
  crucial
    o First	
  vs.	
  consecuAve	
  vs.	
  throughput
    o Query	
  result	
  vs.	
  query	
  contents
§ Core	
  problems
    1. Slow	
  query	
  engines	
  
    2. Considerable	
  programming	
  effort	
  necessary	
  to	
  get	
  complex	
  
           queries	
  right
EMF-­‐INCQUERY
EMF-­‐INCQUERY	
  Overview
§ A	
  model	
  query	
  engine	
  for	
  batch	
  and	
  live	
  queries

Language                               ExecuAon                                  Tools
•     Expressive	
                     •      Incremental                        •    On-­‐the-­‐fly	
  well-­‐
graph	
  paOern-­‐based	
              evaluaAon	
  based	
  on	
  the	
         formedness	
  validaAon
query	
  language                      Rete	
  algorithm                         •    Incremental	
  model	
  
•     Focus	
  on	
                    •      Instantaneous	
                    processing	
  
reusability:	
  query	
                response	
  for	
  complex	
              (synchronizaAon,	
  ...)
libraries,	
  recursive	
              queries	
  over	
  large	
                •    View	
  maintenance
paOern	
  calls                        models                                    •    ...



§ Origins
      o 10+	
  years	
  of	
  R&D	
  experience	
  in	
  model	
  queries	
  &	
  transformaAons	
  
Benefits	
  of	
  EMF-­‐INCQUERY
§ Makes	
  on-­‐the-­‐fly	
  well-­‐formedness	
  validaAon,	
  view	
  
   maintenance,	
  …	
  feasible	
  over	
  really	
  large	
  instance	
  
   models
§ Simplifies	
  wriAng	
  really	
  complex	
  queries
   o Graph	
  paOern	
  language
   o Highly	
  reusable	
  à query	
  libraries
§ Easy-­‐to-­‐integrate	
  into	
  exisAng	
  apps
   o Works	
  with	
  any	
  EMF	
  domain	
  metamodel
   o Integrates	
  through	
  Eclipse	
  standards	
  à works	
  with	
  
     many	
  EMF-­‐based	
  apps	
  out-­‐of-­‐the-­‐box
Architecture
                              Input	
  =	
  Model	
  contents	
  
EMF	
  instance	
             +	
  EMF	
  noAficaAons

                                                  Rete	
  network
 EMF-­‐INCQUERY	
  Base	
                             Input	
  

                                                Intermedia


                                                    Output Change	
  


                                                   PaOern	
  matcher	
  
                                                   Query	
  engine
                               Output	
  =	
  Query	
  results	
  +	
  Query	
  result	
  deltas
                               (con<nuously	
  updated	
  as	
  the	
  model	
  changes)
Architecture
                                          Input	
  =	
  Model	
  contents	
  
           EMF	
  instance	
              +	
  EMF	
  noAficaAons
Model	
  ModificaAon
                                                              Rete	
  network
             EMF-­‐INCQUERY	
  Base	
                             Input	
  

                                                            Intermedia


                                                                Output Change	
  


                                                               PaOern	
  matcher	
  
                                                               Query	
  engine
                                           Output	
  =	
  Query	
  results	
  +	
  Query	
  result	
  deltas
                                           (con<nuously	
  updated	
  as	
  the	
  model	
  changes)
IncQuery	
  Base	
  Indexers
§ Stand-­‐alone	
  core	
  library	
  with	
  minimal	
  dependencies
§ Provides	
  high	
  performance	
  indexers
    o   Typeàall	
  instances
    o   EdgeàSource,Target
    o   NodeàIncoming/Outgoing	
  edges
    o   AUribute	
  valueàhost
§ Supports	
  Incremental	
  TransiLve	
  Closure
    o Efficiently	
  compute	
  &	
  maintain	
  reachability	
  regions	
  along	
  EReference	
  
      navigaLon	
  paths
§ Indexer	
  iniLalizaLon
    o According	
  to	
  visitor	
  strategy
    o Can	
  be
         • Generic	
  (all	
  known	
  Ecore	
  types	
  are	
  indexed)	
  [“wildcard	
  mode”]	
  
         • Or	
  filtered	
  according	
  to	
  a	
  set	
  of	
  types	
  [memory	
  opLmizaLon	
  for	
  generated	
  
           query	
  code]
DEMO INCQUERY	
  PaOern	
  Language
§ School	
  metamodel	
  in	
  EMF
INCQUERY	
  PaOern	
  Language
INCQUERY	
  PaOern	
  Language




       Expressive	
  declaraAve	
  query	
  language	
  
       by	
  graph	
  paOerns
          Capture	
  local	
  +	
  global	
  queries
          ComposiAonality	
  +	
  Reusabilility	
  
          Recursion,	
  NegaAon
Feature	
  highlights
§ State-­‐of-­‐the-­‐art	
  development	
  tools	
  based	
  on	
  Xtext2
     o Content	
  assist	
  (code	
  compleAon),	
  validaAon,	
  outline,	
  …
     o Advanced	
  (syntacAc	
  and	
  semanAc)	
  validaAon
§ Unique	
  query	
  language	
  features
     o Recursive	
  queries	
  and	
  transiAve	
  closure
     o Inference-­‐supported	
  type	
  system	
  and	
  expressions	
  based	
  on	
  Xbase	
  and	
  Ecore
     o PaOern	
  composiAon	
  and	
  reuse
§ RunLme
     o Build	
  and	
  execute	
  queries	
  on-­‐the-­‐fly
     o Strong	
  generaAve	
  bindings	
  to	
  Java
§ Extension	
  APIs
     o Query-­‐based	
  derived	
  features	
  with	
  noAficaAons
     o ValidaAon	
  Engine	
  for	
  efficient	
  on-­‐the-­‐fly	
  validaAon
     o Event-­‐driven	
  Virtual	
  Machine	
  for	
  transformaAons
INCQUERY	
  Development	
  Tools
INCQUERY	
  Development	
  Tools




    PaOern	
  Editor




                              Query	
  Explorer
INCQUERY	
  Development	
  Tools




    PaOern	
  Editor




                              Query	
  Explorer
INCQUERY	
  Development	
  Tools
                                          • Works	
  with	
  most	
  EMF-­‐
                                            based	
  editors	
  out-­‐of-­‐
                                            the-­‐box
                                          • Reveals	
  matches	
  as	
  
                                            selecAon


                       PaOern	
  Editor



Queries	
  are	
  applied	
  
&	
  updates	
  on-­‐the-­‐fly

                                                              Query	
  Explorer
IntegraAon	
  opAons
§ IncQuery	
  Java	
  API
   o Generic	
  (on-­‐the-­‐fly	
  queries)
   o Generated	
  code	
  (opLmized	
  for	
  performance)
§ Query-­‐based	
  derived	
  features
   o Edges	
  and	
  aUribute	
  values	
  computed	
  and	
  maintained	
  by	
  
     IncQuery
   o Transparent	
  integraLon	
  through	
  genmodeled	
  EMF
   o Unique	
  feature:	
  Efficient	
  and	
  automated	
  noLficaLon	
  
     support
§ Add-­‐on	
  APIs
   o IncQuery	
  ValidaLon	
  (Demo)
   o IncQuery	
  Databinding
IncQuery	
  Databinding

1.	
  Model	
  
                           3.a	
  Result
ModificaAon                                                4.a	
  Add/Remove	
  items
                           Update
                                            Query         (list,	
  table,	
  tree…)
                                           Match	
  Set
                                                                              UI	
  
Model                   Query                                              Component
         2.	
  Change
         NoAficaAon
                                             Match
                           3.b	
  Match                   4.b	
  Update	
  Items
                           (Property)                     (list,	
  table,	
  tree	
  item,
                           Update                         	
  label,	
  …)
                                                     JFace	
  Databinding
Work	
  in	
  progress:	
  IncQuery	
  Viewers
Work	
  in	
  progress:	
  IncQuery	
  Viewers




             1.	
  Define	
  “edges”	
  
             and	
  “nodes”	
  of	
  an	
  
              overlay	
  graph	
  as	
  
                     queries
Work	
  in	
  progress:	
  IncQuery	
  Viewers




                                                   2.	
  Create	
  
                                                 automaAcally	
  
                                                updaAng	
  JFace	
  
                                              viewers	
  (List,	
  Tree,	
  
             1.	
  Define	
  “edges”	
  
                                              Table,	
  Zest	
  Graph)	
  
             and	
  “nodes”	
  of	
  an	
  
                                                without	
  manual	
  
              overlay	
  graph	
  as	
  
                                                    coding
                     queries
PERFORMANCE	
  BENCHMARK

     Instantaneous	
  result	
  retrieval?
Benchmarking	
  scenario
§ In-­‐memory	
  models
   o Embedded	
  railways	
  control	
  sodware	
  system	
  design	
  domain	
  
     (complex	
  queries)
   o Instance	
  models	
  up	
  to	
  2.7M	
  EObjects	
  and	
  11.1M	
  
     EReferences
§ Scenario:	
  model	
  transformaLon	
  combined	
  with	
  well-­‐
   formedness	
  validaLon
   o Batch:	
  loading	
  models	
  +	
  execuLng	
  queries
   o On-­‐the-­‐fly:	
  transforming	
  models	
  +	
  re-­‐execuLng	
  queries	
  
     instantaneously
§ Tools
   o Eclipse	
  tools	
  (OCL,	
  OCL	
  Impact	
  Analyzer,	
  INCQUERY,	
  EMF-­‐Java	
  
     manually	
  opLmized)
   o Neo4j	
  in-­‐memory	
  graph	
  database	
  (for	
  comparison)
Batch	
  operaAons
Batch	
  operaAons
Neo4j	
  scales	
  somewhat	
  
 beOer	
  than	
  top	
  EMF	
  
            tools




                                          …	
  unless	
  you	
  augment	
  
                                           EMF	
  with	
  INCQUERY
Batch	
  operaAons
Neo4j	
  scales	
  somewhat	
  
 beOer	
  than	
  top	
  EMF	
  
            tools
                                           Note	
  the	
  logarithmic	
  
                                            scales:	
  7x	
  faster!




                                          …	
  unless	
  you	
  augment	
  
                                           EMF	
  with	
  INCQUERY
Real	
  strength:	
  on-­‐the-­‐fly	
  model	
  processing
Real	
  strength:	
  on-­‐the-­‐fly	
  model	
  processing
                                   • IncQuery	
  provides	
  near	
  
                                     zero	
  response	
  Ames	
  for	
  
                                     up	
  to	
  14M	
  elements
Real	
  strength:	
  on-­‐the-­‐fly	
  model	
  processing
                                       • IncQuery	
  provides	
  near	
  
                                         zero	
  response	
  Ames	
  for	
  
                                         up	
  to	
  14M	
  elements



                         CharacterisAc	
  
                          difference
Memory	
  usage
§ Depends	
  on	
  “query	
  complexity”	
  and	
  model	
  size/
   contents
§ For	
  typical	
  query/model	
  combinaAons,	
  memory	
  
   overhead	
  is	
  linear
   o (1.1-­‐2)	
  x	
  (heap	
  required	
  for	
  the	
  model	
  itself)
   o IncQuery’s	
  built-­‐in	
  semanAc	
  validators	
  and	
  the	
  Rete	
  
     Visualizer	
  aid	
  you	
  in	
  resolving	
  problemaAc	
  query/
     model	
  combinaAons
APPLICATIONS	
  AND	
  ROADMAP
Known	
  applicaAons
§ Well-­‐formedness	
  validaAon	
  of	
  very	
  large,	
  industrial	
  
   AUTOSAR	
  models	
  (AutomoAve	
  OEM)
§ Incremental	
  dependency	
  analysis	
  over	
  sotware	
  
   infrastructure	
  graphs	
  (tool	
  used	
  in	
  CERN)
§ Queries,	
  views	
  and	
  transformaAons	
  for	
  model-­‐
   driven	
  tool	
  development	
  in	
  the	
  avionics	
  domain	
  
   (aircrat	
  manufacturer)
§ Model-­‐driven	
  refactoring	
  of	
  large	
  source	
  code	
  
   models	
  (CollaboraAve	
  naAonal	
  project	
  in	
  Hungary)
Development	
  agenda
§ Our	
  current	
  plan
   o IncQuery	
  Viewers
   o Dynamic	
  EMF	
  support
   o Xcore	
  integraAon	
  (query-­‐based	
  derived	
  features)
   o Query	
  performance	
  opAmizaAon
   o Improve	
  support	
  for	
  stereotyped	
  UML	
  models
§ ARTop/Sphinx	
  integraAon
   o Incremental	
  validaAon	
  using	
  “hybrid	
  queries”
       • Support	
  parAally	
  materialized	
  models
Other	
  ideas	
  on	
  the	
  table
§ ParLal	
  support	
  for	
  OCL
§ Dedicated	
  support	
  for	
  Complex	
  Event	
  Processing	
  over	
  
   live	
  EMF	
  models
    o hUp://incquery.net/incquery/demos/jnect
    o Think	
  incremental	
  queries	
  over	
  the	
  E4	
  Modeled	
  UI…
§ Develop	
  a	
  high	
  performance	
  and	
  pragmaLc	
  model	
  
   transformaLon	
  engine
    o Build	
  the	
  language	
  on	
  Xbase	
  and	
  IQPL
    o …and	
  the	
  runLme	
  on	
  IncQuery
§ Design	
  space	
  exploraLon
    o OpLmize	
  instance	
  models	
  towards	
  a	
  complex	
  design	
  goal
Final	
  points
§ EMF-­‐INCQUERY	
  has	
  been	
  successfully	
  migrated	
  to	
  
   Eclipse.org	
  hUp://eclipse.org/incquery
§ EMF-­‐INCQUERY	
  0.7	
  milestone	
  builds	
  are	
  available	
  
   immediately	
  from	
  the	
  Marketplace
   o Blog	
  and	
  other	
  resources:	
  hOp://incquery.net	
  
   o Lots	
  of	
  documentaAon:	
  examples,	
  demos,	
  tutorials
§ Release	
  0.7	
  is	
  tentaAvely	
  scheduled	
  shortly	
  ater	
  
   the	
  Eclipse	
  Kepler	
  Launch	
  (beginning	
  of	
  July)
§ Your	
  contribu<ons	
  (feedback,	
  forum	
  posts,	
  ideas,	
  
   bugzillas,	
  patches)	
  are	
  very	
  welcome!
Acknowledgements
§ IncQuery	
  Development	
  Team
    o Gábor	
  Bergmann,	
  Ábel	
  Hegedüs,	
  Ákos	
  Horváth,	
  András	
  Ökrös,	
  
      Zoltán	
  Ujhelyi,	
  István	
  Ráth
§ AddiLonal	
  contributors
    o Márk	
  CzoUer,	
  Tamás	
  Szabó
§ Performance	
  benchmarking
    o Benedek	
  Izsó,	
  Zoltán	
  Szatmári
§ TesLng,	
  examples
    o Asla	
  Csicsely,	
  Tamás	
  Csurgó,	
  Dániel	
  Kávássy,	
  Gábor	
  Szárnyas,	
  
      Tamás	
  Tóth,	
  Ádám	
  Dudás,	
  Oszkár	
  Semeráth,	
  Zoltán	
  Balogh
§ IncQuery	
  Project	
  Lead:	
  István	
  Ráth
§ Senior	
  advisor:	
  Dániel	
  Varró

More Related Content

What's hot

From UML Profiles to EMF Profiles and Beyond (TOOLS'11)
From UML Profiles to EMF Profiles and Beyond (TOOLS'11)From UML Profiles to EMF Profiles and Beyond (TOOLS'11)
From UML Profiles to EMF Profiles and Beyond (TOOLS'11)Philip Langer
 
Subconsultas
SubconsultasSubconsultas
SubconsultasMaria
 
Recovering Interaction Design Patterns in Web Applications
Recovering Interaction Design Patterns in Web Applications Recovering Interaction Design Patterns in Web Applications
Recovering Interaction Design Patterns in Web Applications Porfirio Tramontana
 
Abap course chapter 1 introduction and first program
Abap course   chapter 1 introduction and first programAbap course   chapter 1 introduction and first program
Abap course chapter 1 introduction and first programMilind Patil
 
01.egovFrame Training Book II
01.egovFrame Training Book II01.egovFrame Training Book II
01.egovFrame Training Book IIChuong Nguyen
 
JD Edwards & Peoplesoft 1 _ Peter Bruce _ Include Work Centre error messages ...
JD Edwards & Peoplesoft 1 _ Peter Bruce _ Include Work Centre error messages ...JD Edwards & Peoplesoft 1 _ Peter Bruce _ Include Work Centre error messages ...
JD Edwards & Peoplesoft 1 _ Peter Bruce _ Include Work Centre error messages ...InSync2011
 

What's hot (7)

From UML Profiles to EMF Profiles and Beyond (TOOLS'11)
From UML Profiles to EMF Profiles and Beyond (TOOLS'11)From UML Profiles to EMF Profiles and Beyond (TOOLS'11)
From UML Profiles to EMF Profiles and Beyond (TOOLS'11)
 
Subconsultas
SubconsultasSubconsultas
Subconsultas
 
Recovering Interaction Design Patterns in Web Applications
Recovering Interaction Design Patterns in Web Applications Recovering Interaction Design Patterns in Web Applications
Recovering Interaction Design Patterns in Web Applications
 
Abap course chapter 1 introduction and first program
Abap course   chapter 1 introduction and first programAbap course   chapter 1 introduction and first program
Abap course chapter 1 introduction and first program
 
Zend server for IBM i update 5.6
Zend server for IBM i update 5.6Zend server for IBM i update 5.6
Zend server for IBM i update 5.6
 
01.egovFrame Training Book II
01.egovFrame Training Book II01.egovFrame Training Book II
01.egovFrame Training Book II
 
JD Edwards & Peoplesoft 1 _ Peter Bruce _ Include Work Centre error messages ...
JD Edwards & Peoplesoft 1 _ Peter Bruce _ Include Work Centre error messages ...JD Edwards & Peoplesoft 1 _ Peter Bruce _ Include Work Centre error messages ...
JD Edwards & Peoplesoft 1 _ Peter Bruce _ Include Work Centre error messages ...
 

Viewers also liked

Event-driven Model Transformations in Domain-specific Modeling Languages
Event-driven Model Transformations in Domain-specific Modeling LanguagesEvent-driven Model Transformations in Domain-specific Modeling Languages
Event-driven Model Transformations in Domain-specific Modeling LanguagesIstvan Rath
 
mbeddr meets IncQuer - Combining the Best Features of Two Modeling Worlds
mbeddr meets IncQuer - Combining the Best Features of Two Modeling Worldsmbeddr meets IncQuer - Combining the Best Features of Two Modeling Worlds
mbeddr meets IncQuer - Combining the Best Features of Two Modeling WorldsIstvan Rath
 
Okosabb Internet of Things rendszerek komplex eseményfeldolgozás alkalmazásával
Okosabb Internet of Things rendszerek komplex eseményfeldolgozás alkalmazásával Okosabb Internet of Things rendszerek komplex eseményfeldolgozás alkalmazásával
Okosabb Internet of Things rendszerek komplex eseményfeldolgozás alkalmazásával Istvan Rath
 
Xcore meets IncQuery: How the New Generation of DSLs are Made
Xcore meets IncQuery: How the New Generation of DSLs are MadeXcore meets IncQuery: How the New Generation of DSLs are Made
Xcore meets IncQuery: How the New Generation of DSLs are MadeIstvan Rath
 
Exploring the Future of Eclipse Modeling: Web and Semantic Collaboration
Exploring the Future of Eclipse Modeling: Web and Semantic CollaborationExploring the Future of Eclipse Modeling: Web and Semantic Collaboration
Exploring the Future of Eclipse Modeling: Web and Semantic CollaborationIstvan Rath
 
IoT Supercharged: Complex event processing for MQTT with Eclipse technologies
IoT Supercharged: Complex event processing for MQTT with Eclipse technologiesIoT Supercharged: Complex event processing for MQTT with Eclipse technologies
IoT Supercharged: Complex event processing for MQTT with Eclipse technologiesIstvan Rath
 
Eclipse DemoCamp Budapest 2016 November: Best of EclipseCon Europe 2016
Eclipse DemoCamp Budapest 2016 November: Best of EclipseCon Europe 2016Eclipse DemoCamp Budapest 2016 November: Best of EclipseCon Europe 2016
Eclipse DemoCamp Budapest 2016 November: Best of EclipseCon Europe 2016Istvan Rath
 
Domain-Specific Languages
Domain-Specific LanguagesDomain-Specific Languages
Domain-Specific LanguagesJavier Canovas
 

Viewers also liked (8)

Event-driven Model Transformations in Domain-specific Modeling Languages
Event-driven Model Transformations in Domain-specific Modeling LanguagesEvent-driven Model Transformations in Domain-specific Modeling Languages
Event-driven Model Transformations in Domain-specific Modeling Languages
 
mbeddr meets IncQuer - Combining the Best Features of Two Modeling Worlds
mbeddr meets IncQuer - Combining the Best Features of Two Modeling Worldsmbeddr meets IncQuer - Combining the Best Features of Two Modeling Worlds
mbeddr meets IncQuer - Combining the Best Features of Two Modeling Worlds
 
Okosabb Internet of Things rendszerek komplex eseményfeldolgozás alkalmazásával
Okosabb Internet of Things rendszerek komplex eseményfeldolgozás alkalmazásával Okosabb Internet of Things rendszerek komplex eseményfeldolgozás alkalmazásával
Okosabb Internet of Things rendszerek komplex eseményfeldolgozás alkalmazásával
 
Xcore meets IncQuery: How the New Generation of DSLs are Made
Xcore meets IncQuery: How the New Generation of DSLs are MadeXcore meets IncQuery: How the New Generation of DSLs are Made
Xcore meets IncQuery: How the New Generation of DSLs are Made
 
Exploring the Future of Eclipse Modeling: Web and Semantic Collaboration
Exploring the Future of Eclipse Modeling: Web and Semantic CollaborationExploring the Future of Eclipse Modeling: Web and Semantic Collaboration
Exploring the Future of Eclipse Modeling: Web and Semantic Collaboration
 
IoT Supercharged: Complex event processing for MQTT with Eclipse technologies
IoT Supercharged: Complex event processing for MQTT with Eclipse technologiesIoT Supercharged: Complex event processing for MQTT with Eclipse technologies
IoT Supercharged: Complex event processing for MQTT with Eclipse technologies
 
Eclipse DemoCamp Budapest 2016 November: Best of EclipseCon Europe 2016
Eclipse DemoCamp Budapest 2016 November: Best of EclipseCon Europe 2016Eclipse DemoCamp Budapest 2016 November: Best of EclipseCon Europe 2016
Eclipse DemoCamp Budapest 2016 November: Best of EclipseCon Europe 2016
 
Domain-Specific Languages
Domain-Specific LanguagesDomain-Specific Languages
Domain-Specific Languages
 

Similar to EMF-IncQuery 0.7 Presentation for Itemis

Build Java Web Application Using Apache Struts
Build Java Web Application Using Apache Struts Build Java Web Application Using Apache Struts
Build Java Web Application Using Apache Struts weili_at_slideshare
 
Static analysis of java enterprise applications
Static analysis of java enterprise applicationsStatic analysis of java enterprise applications
Static analysis of java enterprise applicationsAnastasiοs Antoniadis
 
Building Concurrent WebObjects applications with Scala
Building Concurrent WebObjects applications with ScalaBuilding Concurrent WebObjects applications with Scala
Building Concurrent WebObjects applications with ScalaWO Community
 
Enterprise Java Web Application Frameworks Sample Stack Implementation
Enterprise Java Web Application Frameworks   Sample Stack ImplementationEnterprise Java Web Application Frameworks   Sample Stack Implementation
Enterprise Java Web Application Frameworks Sample Stack ImplementationMert Çalışkan
 
Overview Of .Net 4.0 Sanjay Vyas
Overview Of .Net 4.0   Sanjay VyasOverview Of .Net 4.0   Sanjay Vyas
Overview Of .Net 4.0 Sanjay Vyasrsnarayanan
 
Java 8 selected updates
Java 8 selected updatesJava 8 selected updates
Java 8 selected updatesVinay H G
 
Keras Tutorial For Beginners | Creating Deep Learning Models Using Keras In P...
Keras Tutorial For Beginners | Creating Deep Learning Models Using Keras In P...Keras Tutorial For Beginners | Creating Deep Learning Models Using Keras In P...
Keras Tutorial For Beginners | Creating Deep Learning Models Using Keras In P...Edureka!
 
Real-world Entity Framework
Real-world Entity FrameworkReal-world Entity Framework
Real-world Entity FrameworkLynn Langit
 
Spark Kernel Talk - Apache Spark Meetup San Francisco (July 2015)
Spark Kernel Talk - Apache Spark Meetup San Francisco (July 2015)Spark Kernel Talk - Apache Spark Meetup San Francisco (July 2015)
Spark Kernel Talk - Apache Spark Meetup San Francisco (July 2015)Robert "Chip" Senkbeil
 
Creating an end-to-end Recommender System with Apache Spark and Elasticsearch...
Creating an end-to-end Recommender System with Apache Spark and Elasticsearch...Creating an end-to-end Recommender System with Apache Spark and Elasticsearch...
Creating an end-to-end Recommender System with Apache Spark and Elasticsearch...sparktc
 
Entity Framework Today (May 2012)
Entity Framework Today (May 2012)Entity Framework Today (May 2012)
Entity Framework Today (May 2012)Julie Lerman
 
A tutorial on EMF-IncQuery
A tutorial on EMF-IncQueryA tutorial on EMF-IncQuery
A tutorial on EMF-IncQueryIstvan Rath
 
Model visualization made easy: Incremental query-driven views in modeling tools
Model visualization made easy: Incremental query-driven views in modeling toolsModel visualization made easy: Incremental query-driven views in modeling tools
Model visualization made easy: Incremental query-driven views in modeling toolsÁkos Horváth
 
Spring 3 - Der dritte Frühling
Spring 3 - Der dritte FrühlingSpring 3 - Der dritte Frühling
Spring 3 - Der dritte FrühlingThorsten Kamann
 
Eclipse Modeling Framework (EMF) and Graphical Modeling Framework (GMF)
Eclipse Modeling Framework (EMF) and Graphical Modeling Framework (GMF)Eclipse Modeling Framework (EMF) and Graphical Modeling Framework (GMF)
Eclipse Modeling Framework (EMF) and Graphical Modeling Framework (GMF)Dimitris Kolovos
 
WORKS 11 Presentation
WORKS 11 PresentationWORKS 11 Presentation
WORKS 11 Presentationdgarijo
 
Clojure - An Introduction for Java Programmers
Clojure - An Introduction for Java ProgrammersClojure - An Introduction for Java Programmers
Clojure - An Introduction for Java Programmerselliando dias
 

Similar to EMF-IncQuery 0.7 Presentation for Itemis (20)

Eclipse e4
Eclipse e4Eclipse e4
Eclipse e4
 
Build Java Web Application Using Apache Struts
Build Java Web Application Using Apache Struts Build Java Web Application Using Apache Struts
Build Java Web Application Using Apache Struts
 
Building data centric applications for web, desktop and mobile with Entity Fr...
Building data centric applications for web, desktop and mobile with Entity Fr...Building data centric applications for web, desktop and mobile with Entity Fr...
Building data centric applications for web, desktop and mobile with Entity Fr...
 
Static analysis of java enterprise applications
Static analysis of java enterprise applicationsStatic analysis of java enterprise applications
Static analysis of java enterprise applications
 
Building Concurrent WebObjects applications with Scala
Building Concurrent WebObjects applications with ScalaBuilding Concurrent WebObjects applications with Scala
Building Concurrent WebObjects applications with Scala
 
Enterprise Java Web Application Frameworks Sample Stack Implementation
Enterprise Java Web Application Frameworks   Sample Stack ImplementationEnterprise Java Web Application Frameworks   Sample Stack Implementation
Enterprise Java Web Application Frameworks Sample Stack Implementation
 
Overview Of .Net 4.0 Sanjay Vyas
Overview Of .Net 4.0   Sanjay VyasOverview Of .Net 4.0   Sanjay Vyas
Overview Of .Net 4.0 Sanjay Vyas
 
Java 8 selected updates
Java 8 selected updatesJava 8 selected updates
Java 8 selected updates
 
Keras Tutorial For Beginners | Creating Deep Learning Models Using Keras In P...
Keras Tutorial For Beginners | Creating Deep Learning Models Using Keras In P...Keras Tutorial For Beginners | Creating Deep Learning Models Using Keras In P...
Keras Tutorial For Beginners | Creating Deep Learning Models Using Keras In P...
 
Real-world Entity Framework
Real-world Entity FrameworkReal-world Entity Framework
Real-world Entity Framework
 
Spark Kernel Talk - Apache Spark Meetup San Francisco (July 2015)
Spark Kernel Talk - Apache Spark Meetup San Francisco (July 2015)Spark Kernel Talk - Apache Spark Meetup San Francisco (July 2015)
Spark Kernel Talk - Apache Spark Meetup San Francisco (July 2015)
 
Lo nuevo en Spring 3.0
Lo nuevo  en Spring 3.0Lo nuevo  en Spring 3.0
Lo nuevo en Spring 3.0
 
Creating an end-to-end Recommender System with Apache Spark and Elasticsearch...
Creating an end-to-end Recommender System with Apache Spark and Elasticsearch...Creating an end-to-end Recommender System with Apache Spark and Elasticsearch...
Creating an end-to-end Recommender System with Apache Spark and Elasticsearch...
 
Entity Framework Today (May 2012)
Entity Framework Today (May 2012)Entity Framework Today (May 2012)
Entity Framework Today (May 2012)
 
A tutorial on EMF-IncQuery
A tutorial on EMF-IncQueryA tutorial on EMF-IncQuery
A tutorial on EMF-IncQuery
 
Model visualization made easy: Incremental query-driven views in modeling tools
Model visualization made easy: Incremental query-driven views in modeling toolsModel visualization made easy: Incremental query-driven views in modeling tools
Model visualization made easy: Incremental query-driven views in modeling tools
 
Spring 3 - Der dritte Frühling
Spring 3 - Der dritte FrühlingSpring 3 - Der dritte Frühling
Spring 3 - Der dritte Frühling
 
Eclipse Modeling Framework (EMF) and Graphical Modeling Framework (GMF)
Eclipse Modeling Framework (EMF) and Graphical Modeling Framework (GMF)Eclipse Modeling Framework (EMF) and Graphical Modeling Framework (GMF)
Eclipse Modeling Framework (EMF) and Graphical Modeling Framework (GMF)
 
WORKS 11 Presentation
WORKS 11 PresentationWORKS 11 Presentation
WORKS 11 Presentation
 
Clojure - An Introduction for Java Programmers
Clojure - An Introduction for Java ProgrammersClojure - An Introduction for Java Programmers
Clojure - An Introduction for Java Programmers
 

More from Istvan Rath

Cloud-based Modelling Solutions Empowering Tool Integration
Cloud-based Modelling Solutions Empowering Tool IntegrationCloud-based Modelling Solutions Empowering Tool Integration
Cloud-based Modelling Solutions Empowering Tool IntegrationIstvan Rath
 
Cloud-based Modelling Solutions Empowering Tool Integration
Cloud-based Modelling Solutions Empowering Tool IntegrationCloud-based Modelling Solutions Empowering Tool Integration
Cloud-based Modelling Solutions Empowering Tool IntegrationIstvan Rath
 
MBSE meets Industrial IoT: Introducing the New MagicDraw Plug-in for RTI Co...
MBSE meets Industrial IoT: Introducing the New MagicDraw Plug-in for RTI Co...MBSE meets Industrial IoT: Introducing the New MagicDraw Plug-in for RTI Co...
MBSE meets Industrial IoT: Introducing the New MagicDraw Plug-in for RTI Co...Istvan Rath
 
IncQuery Server for Teamwork Cloud - Talk at IW2019
IncQuery Server for Teamwork Cloud - Talk at IW2019IncQuery Server for Teamwork Cloud - Talk at IW2019
IncQuery Server for Teamwork Cloud - Talk at IW2019Istvan Rath
 
VIATRA 2.0 Webinar
VIATRA 2.0 WebinarVIATRA 2.0 Webinar
VIATRA 2.0 WebinarIstvan Rath
 
Easier smart home development with simulators and rule engines
Easier smart home development with simulators and rule enginesEasier smart home development with simulators and rule engines
Easier smart home development with simulators and rule enginesIstvan Rath
 
Eclipse VIATRA Overview 2017
Eclipse VIATRA Overview 2017Eclipse VIATRA Overview 2017
Eclipse VIATRA Overview 2017Istvan Rath
 
Smarter internet of things with stream and event processing virtual io_t_meet...
Smarter internet of things with stream and event processing virtual io_t_meet...Smarter internet of things with stream and event processing virtual io_t_meet...
Smarter internet of things with stream and event processing virtual io_t_meet...Istvan Rath
 
Modes3: Model-based Demonstrator for Smart and Safe Systems
Modes3: Model-based Demonstrator for Smart and Safe SystemsModes3: Model-based Demonstrator for Smart and Safe Systems
Modes3: Model-based Demonstrator for Smart and Safe SystemsIstvan Rath
 
The SENSORIA Development Environment
The SENSORIA Development EnvironmentThe SENSORIA Development Environment
The SENSORIA Development EnvironmentIstvan Rath
 
Challenges for advanced domain-specific frameworks
Challenges for advanced domain-specific frameworksChallenges for advanced domain-specific frameworks
Challenges for advanced domain-specific frameworksIstvan Rath
 
Transzformációk integrált alkalmazása a modellvezérelt szoftverfejlesztésben
Transzformációk integrált alkalmazása a modellvezérelt szoftverfejlesztésbenTranszformációk integrált alkalmazása a modellvezérelt szoftverfejlesztésben
Transzformációk integrált alkalmazása a modellvezérelt szoftverfejlesztésbenIstvan Rath
 
Change-driven model transformations
Change-driven model transformationsChange-driven model transformations
Change-driven model transformationsIstvan Rath
 
Domain-specifikus nyelvek a fejlesztésben
Domain-specifikus nyelvek a fejlesztésbenDomain-specifikus nyelvek a fejlesztésben
Domain-specifikus nyelvek a fejlesztésbenIstvan Rath
 
Incremental pattern matching in the VIATRA2 model transformation framework
Incremental pattern matching in the VIATRA2 model transformation frameworkIncremental pattern matching in the VIATRA2 model transformation framework
Incremental pattern matching in the VIATRA2 model transformation frameworkIstvan Rath
 
Model transformations in the VIATRA2 framework
Model transformations in the VIATRA2 frameworkModel transformations in the VIATRA2 framework
Model transformations in the VIATRA2 frameworkIstvan Rath
 
Applications of incremental pattern matching in model transformations
Applications of incremental pattern matching in model transformationsApplications of incremental pattern matching in model transformations
Applications of incremental pattern matching in model transformationsIstvan Rath
 
Live model transformations driven by incremental pattern matching
Live model transformations driven by incremental pattern matchingLive model transformations driven by incremental pattern matching
Live model transformations driven by incremental pattern matchingIstvan Rath
 
Efficient model transformations by combining pattern matching strategies
Efficient model transformations by combining pattern matching strategiesEfficient model transformations by combining pattern matching strategies
Efficient model transformations by combining pattern matching strategiesIstvan Rath
 
A benchmark evaluation for incremental pattern matching in graph transformation
A benchmark evaluation for incremental pattern matching in graph transformationA benchmark evaluation for incremental pattern matching in graph transformation
A benchmark evaluation for incremental pattern matching in graph transformationIstvan Rath
 

More from Istvan Rath (20)

Cloud-based Modelling Solutions Empowering Tool Integration
Cloud-based Modelling Solutions Empowering Tool IntegrationCloud-based Modelling Solutions Empowering Tool Integration
Cloud-based Modelling Solutions Empowering Tool Integration
 
Cloud-based Modelling Solutions Empowering Tool Integration
Cloud-based Modelling Solutions Empowering Tool IntegrationCloud-based Modelling Solutions Empowering Tool Integration
Cloud-based Modelling Solutions Empowering Tool Integration
 
MBSE meets Industrial IoT: Introducing the New MagicDraw Plug-in for RTI Co...
MBSE meets Industrial IoT: Introducing the New MagicDraw Plug-in for RTI Co...MBSE meets Industrial IoT: Introducing the New MagicDraw Plug-in for RTI Co...
MBSE meets Industrial IoT: Introducing the New MagicDraw Plug-in for RTI Co...
 
IncQuery Server for Teamwork Cloud - Talk at IW2019
IncQuery Server for Teamwork Cloud - Talk at IW2019IncQuery Server for Teamwork Cloud - Talk at IW2019
IncQuery Server for Teamwork Cloud - Talk at IW2019
 
VIATRA 2.0 Webinar
VIATRA 2.0 WebinarVIATRA 2.0 Webinar
VIATRA 2.0 Webinar
 
Easier smart home development with simulators and rule engines
Easier smart home development with simulators and rule enginesEasier smart home development with simulators and rule engines
Easier smart home development with simulators and rule engines
 
Eclipse VIATRA Overview 2017
Eclipse VIATRA Overview 2017Eclipse VIATRA Overview 2017
Eclipse VIATRA Overview 2017
 
Smarter internet of things with stream and event processing virtual io_t_meet...
Smarter internet of things with stream and event processing virtual io_t_meet...Smarter internet of things with stream and event processing virtual io_t_meet...
Smarter internet of things with stream and event processing virtual io_t_meet...
 
Modes3: Model-based Demonstrator for Smart and Safe Systems
Modes3: Model-based Demonstrator for Smart and Safe SystemsModes3: Model-based Demonstrator for Smart and Safe Systems
Modes3: Model-based Demonstrator for Smart and Safe Systems
 
The SENSORIA Development Environment
The SENSORIA Development EnvironmentThe SENSORIA Development Environment
The SENSORIA Development Environment
 
Challenges for advanced domain-specific frameworks
Challenges for advanced domain-specific frameworksChallenges for advanced domain-specific frameworks
Challenges for advanced domain-specific frameworks
 
Transzformációk integrált alkalmazása a modellvezérelt szoftverfejlesztésben
Transzformációk integrált alkalmazása a modellvezérelt szoftverfejlesztésbenTranszformációk integrált alkalmazása a modellvezérelt szoftverfejlesztésben
Transzformációk integrált alkalmazása a modellvezérelt szoftverfejlesztésben
 
Change-driven model transformations
Change-driven model transformationsChange-driven model transformations
Change-driven model transformations
 
Domain-specifikus nyelvek a fejlesztésben
Domain-specifikus nyelvek a fejlesztésbenDomain-specifikus nyelvek a fejlesztésben
Domain-specifikus nyelvek a fejlesztésben
 
Incremental pattern matching in the VIATRA2 model transformation framework
Incremental pattern matching in the VIATRA2 model transformation frameworkIncremental pattern matching in the VIATRA2 model transformation framework
Incremental pattern matching in the VIATRA2 model transformation framework
 
Model transformations in the VIATRA2 framework
Model transformations in the VIATRA2 frameworkModel transformations in the VIATRA2 framework
Model transformations in the VIATRA2 framework
 
Applications of incremental pattern matching in model transformations
Applications of incremental pattern matching in model transformationsApplications of incremental pattern matching in model transformations
Applications of incremental pattern matching in model transformations
 
Live model transformations driven by incremental pattern matching
Live model transformations driven by incremental pattern matchingLive model transformations driven by incremental pattern matching
Live model transformations driven by incremental pattern matching
 
Efficient model transformations by combining pattern matching strategies
Efficient model transformations by combining pattern matching strategiesEfficient model transformations by combining pattern matching strategies
Efficient model transformations by combining pattern matching strategies
 
A benchmark evaluation for incremental pattern matching in graph transformation
A benchmark evaluation for incremental pattern matching in graph transformationA benchmark evaluation for incremental pattern matching in graph transformation
A benchmark evaluation for incremental pattern matching in graph transformation
 

Recently uploaded

SIEMENS: RAPUNZEL – A Tale About Knowledge Graph
SIEMENS: RAPUNZEL – A Tale About Knowledge GraphSIEMENS: RAPUNZEL – A Tale About Knowledge Graph
SIEMENS: RAPUNZEL – A Tale About Knowledge GraphNeo4j
 
Pigging Solutions Piggable Sweeping Elbows
Pigging Solutions Piggable Sweeping ElbowsPigging Solutions Piggable Sweeping Elbows
Pigging Solutions Piggable Sweeping ElbowsPigging Solutions
 
Swan(sea) Song – personal research during my six years at Swansea ... and bey...
Swan(sea) Song – personal research during my six years at Swansea ... and bey...Swan(sea) Song – personal research during my six years at Swansea ... and bey...
Swan(sea) Song – personal research during my six years at Swansea ... and bey...Alan Dix
 
Azure Monitor & Application Insight to monitor Infrastructure & Application
Azure Monitor & Application Insight to monitor Infrastructure & ApplicationAzure Monitor & Application Insight to monitor Infrastructure & Application
Azure Monitor & Application Insight to monitor Infrastructure & ApplicationAndikSusilo4
 
IAC 2024 - IA Fast Track to Search Focused AI Solutions
IAC 2024 - IA Fast Track to Search Focused AI SolutionsIAC 2024 - IA Fast Track to Search Focused AI Solutions
IAC 2024 - IA Fast Track to Search Focused AI SolutionsEnterprise Knowledge
 
#StandardsGoals for 2024: What’s new for BISAC - Tech Forum 2024
#StandardsGoals for 2024: What’s new for BISAC - Tech Forum 2024#StandardsGoals for 2024: What’s new for BISAC - Tech Forum 2024
#StandardsGoals for 2024: What’s new for BISAC - Tech Forum 2024BookNet Canada
 
Presentation on how to chat with PDF using ChatGPT code interpreter
Presentation on how to chat with PDF using ChatGPT code interpreterPresentation on how to chat with PDF using ChatGPT code interpreter
Presentation on how to chat with PDF using ChatGPT code interpreternaman860154
 
Breaking the Kubernetes Kill Chain: Host Path Mount
Breaking the Kubernetes Kill Chain: Host Path MountBreaking the Kubernetes Kill Chain: Host Path Mount
Breaking the Kubernetes Kill Chain: Host Path MountPuma Security, LLC
 
Next-generation AAM aircraft unveiled by Supernal, S-A2
Next-generation AAM aircraft unveiled by Supernal, S-A2Next-generation AAM aircraft unveiled by Supernal, S-A2
Next-generation AAM aircraft unveiled by Supernal, S-A2Hyundai Motor Group
 
Install Stable Diffusion in windows machine
Install Stable Diffusion in windows machineInstall Stable Diffusion in windows machine
Install Stable Diffusion in windows machinePadma Pradeep
 
Beyond Boundaries: Leveraging No-Code Solutions for Industry Innovation
Beyond Boundaries: Leveraging No-Code Solutions for Industry InnovationBeyond Boundaries: Leveraging No-Code Solutions for Industry Innovation
Beyond Boundaries: Leveraging No-Code Solutions for Industry InnovationSafe Software
 
Injustice - Developers Among Us (SciFiDevCon 2024)
Injustice - Developers Among Us (SciFiDevCon 2024)Injustice - Developers Among Us (SciFiDevCon 2024)
Injustice - Developers Among Us (SciFiDevCon 2024)Allon Mureinik
 
Advanced Test Driven-Development @ php[tek] 2024
Advanced Test Driven-Development @ php[tek] 2024Advanced Test Driven-Development @ php[tek] 2024
Advanced Test Driven-Development @ php[tek] 2024Scott Keck-Warren
 
Unblocking The Main Thread Solving ANRs and Frozen Frames
Unblocking The Main Thread Solving ANRs and Frozen FramesUnblocking The Main Thread Solving ANRs and Frozen Frames
Unblocking The Main Thread Solving ANRs and Frozen FramesSinan KOZAK
 
My Hashitalk Indonesia April 2024 Presentation
My Hashitalk Indonesia April 2024 PresentationMy Hashitalk Indonesia April 2024 Presentation
My Hashitalk Indonesia April 2024 PresentationRidwan Fadjar
 
08448380779 Call Girls In Diplomatic Enclave Women Seeking Men
08448380779 Call Girls In Diplomatic Enclave Women Seeking Men08448380779 Call Girls In Diplomatic Enclave Women Seeking Men
08448380779 Call Girls In Diplomatic Enclave Women Seeking MenDelhi Call girls
 
WhatsApp 9892124323 ✓Call Girls In Kalyan ( Mumbai ) secure service
WhatsApp 9892124323 ✓Call Girls In Kalyan ( Mumbai ) secure serviceWhatsApp 9892124323 ✓Call Girls In Kalyan ( Mumbai ) secure service
WhatsApp 9892124323 ✓Call Girls In Kalyan ( Mumbai ) secure servicePooja Nehwal
 
Benefits Of Flutter Compared To Other Frameworks
Benefits Of Flutter Compared To Other FrameworksBenefits Of Flutter Compared To Other Frameworks
Benefits Of Flutter Compared To Other FrameworksSoftradix Technologies
 
08448380779 Call Girls In Friends Colony Women Seeking Men
08448380779 Call Girls In Friends Colony Women Seeking Men08448380779 Call Girls In Friends Colony Women Seeking Men
08448380779 Call Girls In Friends Colony Women Seeking MenDelhi Call girls
 
Transforming Data Streams with Kafka Connect: An Introduction to Single Messa...
Transforming Data Streams with Kafka Connect: An Introduction to Single Messa...Transforming Data Streams with Kafka Connect: An Introduction to Single Messa...
Transforming Data Streams with Kafka Connect: An Introduction to Single Messa...HostedbyConfluent
 

Recently uploaded (20)

SIEMENS: RAPUNZEL – A Tale About Knowledge Graph
SIEMENS: RAPUNZEL – A Tale About Knowledge GraphSIEMENS: RAPUNZEL – A Tale About Knowledge Graph
SIEMENS: RAPUNZEL – A Tale About Knowledge Graph
 
Pigging Solutions Piggable Sweeping Elbows
Pigging Solutions Piggable Sweeping ElbowsPigging Solutions Piggable Sweeping Elbows
Pigging Solutions Piggable Sweeping Elbows
 
Swan(sea) Song – personal research during my six years at Swansea ... and bey...
Swan(sea) Song – personal research during my six years at Swansea ... and bey...Swan(sea) Song – personal research during my six years at Swansea ... and bey...
Swan(sea) Song – personal research during my six years at Swansea ... and bey...
 
Azure Monitor & Application Insight to monitor Infrastructure & Application
Azure Monitor & Application Insight to monitor Infrastructure & ApplicationAzure Monitor & Application Insight to monitor Infrastructure & Application
Azure Monitor & Application Insight to monitor Infrastructure & Application
 
IAC 2024 - IA Fast Track to Search Focused AI Solutions
IAC 2024 - IA Fast Track to Search Focused AI SolutionsIAC 2024 - IA Fast Track to Search Focused AI Solutions
IAC 2024 - IA Fast Track to Search Focused AI Solutions
 
#StandardsGoals for 2024: What’s new for BISAC - Tech Forum 2024
#StandardsGoals for 2024: What’s new for BISAC - Tech Forum 2024#StandardsGoals for 2024: What’s new for BISAC - Tech Forum 2024
#StandardsGoals for 2024: What’s new for BISAC - Tech Forum 2024
 
Presentation on how to chat with PDF using ChatGPT code interpreter
Presentation on how to chat with PDF using ChatGPT code interpreterPresentation on how to chat with PDF using ChatGPT code interpreter
Presentation on how to chat with PDF using ChatGPT code interpreter
 
Breaking the Kubernetes Kill Chain: Host Path Mount
Breaking the Kubernetes Kill Chain: Host Path MountBreaking the Kubernetes Kill Chain: Host Path Mount
Breaking the Kubernetes Kill Chain: Host Path Mount
 
Next-generation AAM aircraft unveiled by Supernal, S-A2
Next-generation AAM aircraft unveiled by Supernal, S-A2Next-generation AAM aircraft unveiled by Supernal, S-A2
Next-generation AAM aircraft unveiled by Supernal, S-A2
 
Install Stable Diffusion in windows machine
Install Stable Diffusion in windows machineInstall Stable Diffusion in windows machine
Install Stable Diffusion in windows machine
 
Beyond Boundaries: Leveraging No-Code Solutions for Industry Innovation
Beyond Boundaries: Leveraging No-Code Solutions for Industry InnovationBeyond Boundaries: Leveraging No-Code Solutions for Industry Innovation
Beyond Boundaries: Leveraging No-Code Solutions for Industry Innovation
 
Injustice - Developers Among Us (SciFiDevCon 2024)
Injustice - Developers Among Us (SciFiDevCon 2024)Injustice - Developers Among Us (SciFiDevCon 2024)
Injustice - Developers Among Us (SciFiDevCon 2024)
 
Advanced Test Driven-Development @ php[tek] 2024
Advanced Test Driven-Development @ php[tek] 2024Advanced Test Driven-Development @ php[tek] 2024
Advanced Test Driven-Development @ php[tek] 2024
 
Unblocking The Main Thread Solving ANRs and Frozen Frames
Unblocking The Main Thread Solving ANRs and Frozen FramesUnblocking The Main Thread Solving ANRs and Frozen Frames
Unblocking The Main Thread Solving ANRs and Frozen Frames
 
My Hashitalk Indonesia April 2024 Presentation
My Hashitalk Indonesia April 2024 PresentationMy Hashitalk Indonesia April 2024 Presentation
My Hashitalk Indonesia April 2024 Presentation
 
08448380779 Call Girls In Diplomatic Enclave Women Seeking Men
08448380779 Call Girls In Diplomatic Enclave Women Seeking Men08448380779 Call Girls In Diplomatic Enclave Women Seeking Men
08448380779 Call Girls In Diplomatic Enclave Women Seeking Men
 
WhatsApp 9892124323 ✓Call Girls In Kalyan ( Mumbai ) secure service
WhatsApp 9892124323 ✓Call Girls In Kalyan ( Mumbai ) secure serviceWhatsApp 9892124323 ✓Call Girls In Kalyan ( Mumbai ) secure service
WhatsApp 9892124323 ✓Call Girls In Kalyan ( Mumbai ) secure service
 
Benefits Of Flutter Compared To Other Frameworks
Benefits Of Flutter Compared To Other FrameworksBenefits Of Flutter Compared To Other Frameworks
Benefits Of Flutter Compared To Other Frameworks
 
08448380779 Call Girls In Friends Colony Women Seeking Men
08448380779 Call Girls In Friends Colony Women Seeking Men08448380779 Call Girls In Friends Colony Women Seeking Men
08448380779 Call Girls In Friends Colony Women Seeking Men
 
Transforming Data Streams with Kafka Connect: An Introduction to Single Messa...
Transforming Data Streams with Kafka Connect: An Introduction to Single Messa...Transforming Data Streams with Kafka Connect: An Introduction to Single Messa...
Transforming Data Streams with Kafka Connect: An Introduction to Single Messa...
 

EMF-IncQuery 0.7 Presentation for Itemis

  • 1. EMF-­‐INCQUERY: Efficient  Model  Queries  for   EMF  Tools   Tamás  Szabó,  István  Ráth   Budapest  University  of  Technology  and  Economics IncQuery  Labs  Ltd. Fault  Tolerant  Systems  Research  Group
  • 2. Overview § IntroducAon § EMF-­‐INCQUERY  overview § Performance  benchmarking § Roadmap  and  ideas  for  the  future
  • 3. A  key  problem  of  MDE § Scalability  vs.  modeling  tools o Issues  encountered  by  several  industrial  partners  using   tools  based  on  the  Eclipse  Modeling  Framework  (EMF) o Modeling  scenarios  can  get  really  complex  really  quickly • Instance  models  of  size  1-­‐2M  and  beyond • Performance  issues  with  model  transformaLons  and  code   generators  have  an  adverse  effect  on  everyday  development  tasks § Scalability? Recognized  e.g.  by  AUTOSAR  tool  vendors hOp://wiki.eclipse.org/Auto_IWG_WP2 o Complex (meta)models o Large  instance  models o Complex  query  and  manipulaLon  scenarios
  • 4. Focus:  model  queries § Model  queries:   “a  piece  of  code  that  retrieves  a  given  set  of  the  model” § Queries  are  at  the  heart  of  MDE o Every  model  access/read  is  a  (simple)  query o More  complex:  Views,  content  providers o Most  complex:  Model  transformaAons,  code  generators,  … § Query  performance  (=  the  speed  of  content  retrieval)  is  crucial o First  vs.  consecuAve  vs.  throughput o Query  result  vs.  query  contents § Core  problems 1. Slow  query  engines   2. Considerable  programming  effort  necessary  to  get  complex   queries  right
  • 6. EMF-­‐INCQUERY  Overview § A  model  query  engine  for  batch  and  live  queries Language ExecuAon Tools • Expressive   • Incremental • On-­‐the-­‐fly  well-­‐ graph  paOern-­‐based   evaluaAon  based  on  the   formedness  validaAon query  language Rete  algorithm • Incremental  model   • Focus  on   • Instantaneous   processing   reusability:  query   response  for  complex   (synchronizaAon,  ...) libraries,  recursive   queries  over  large   • View  maintenance paOern  calls models • ... § Origins o 10+  years  of  R&D  experience  in  model  queries  &  transformaAons  
  • 7. Benefits  of  EMF-­‐INCQUERY § Makes  on-­‐the-­‐fly  well-­‐formedness  validaAon,  view   maintenance,  …  feasible  over  really  large  instance   models § Simplifies  wriAng  really  complex  queries o Graph  paOern  language o Highly  reusable  à query  libraries § Easy-­‐to-­‐integrate  into  exisAng  apps o Works  with  any  EMF  domain  metamodel o Integrates  through  Eclipse  standards  à works  with   many  EMF-­‐based  apps  out-­‐of-­‐the-­‐box
  • 8. Architecture Input  =  Model  contents   EMF  instance   +  EMF  noAficaAons Rete  network EMF-­‐INCQUERY  Base   Input   Intermedia Output Change   PaOern  matcher   Query  engine Output  =  Query  results  +  Query  result  deltas (con<nuously  updated  as  the  model  changes)
  • 9. Architecture Input  =  Model  contents   EMF  instance   +  EMF  noAficaAons Model  ModificaAon Rete  network EMF-­‐INCQUERY  Base   Input   Intermedia Output Change   PaOern  matcher   Query  engine Output  =  Query  results  +  Query  result  deltas (con<nuously  updated  as  the  model  changes)
  • 10. IncQuery  Base  Indexers § Stand-­‐alone  core  library  with  minimal  dependencies § Provides  high  performance  indexers o Typeàall  instances o EdgeàSource,Target o NodeàIncoming/Outgoing  edges o AUribute  valueàhost § Supports  Incremental  TransiLve  Closure o Efficiently  compute  &  maintain  reachability  regions  along  EReference   navigaLon  paths § Indexer  iniLalizaLon o According  to  visitor  strategy o Can  be • Generic  (all  known  Ecore  types  are  indexed)  [“wildcard  mode”]   • Or  filtered  according  to  a  set  of  types  [memory  opLmizaLon  for  generated   query  code]
  • 11. DEMO INCQUERY  PaOern  Language § School  metamodel  in  EMF
  • 13. INCQUERY  PaOern  Language Expressive  declaraAve  query  language   by  graph  paOerns Capture  local  +  global  queries ComposiAonality  +  Reusabilility   Recursion,  NegaAon
  • 14. Feature  highlights § State-­‐of-­‐the-­‐art  development  tools  based  on  Xtext2 o Content  assist  (code  compleAon),  validaAon,  outline,  … o Advanced  (syntacAc  and  semanAc)  validaAon § Unique  query  language  features o Recursive  queries  and  transiAve  closure o Inference-­‐supported  type  system  and  expressions  based  on  Xbase  and  Ecore o PaOern  composiAon  and  reuse § RunLme o Build  and  execute  queries  on-­‐the-­‐fly o Strong  generaAve  bindings  to  Java § Extension  APIs o Query-­‐based  derived  features  with  noAficaAons o ValidaAon  Engine  for  efficient  on-­‐the-­‐fly  validaAon o Event-­‐driven  Virtual  Machine  for  transformaAons
  • 16. INCQUERY  Development  Tools PaOern  Editor Query  Explorer
  • 17. INCQUERY  Development  Tools PaOern  Editor Query  Explorer
  • 18. INCQUERY  Development  Tools • Works  with  most  EMF-­‐ based  editors  out-­‐of-­‐ the-­‐box • Reveals  matches  as   selecAon PaOern  Editor Queries  are  applied   &  updates  on-­‐the-­‐fly Query  Explorer
  • 19. IntegraAon  opAons § IncQuery  Java  API o Generic  (on-­‐the-­‐fly  queries) o Generated  code  (opLmized  for  performance) § Query-­‐based  derived  features o Edges  and  aUribute  values  computed  and  maintained  by   IncQuery o Transparent  integraLon  through  genmodeled  EMF o Unique  feature:  Efficient  and  automated  noLficaLon   support § Add-­‐on  APIs o IncQuery  ValidaLon  (Demo) o IncQuery  Databinding
  • 20. IncQuery  Databinding 1.  Model   3.a  Result ModificaAon 4.a  Add/Remove  items Update Query (list,  table,  tree…) Match  Set UI   Model Query Component 2.  Change NoAficaAon Match 3.b  Match 4.b  Update  Items (Property) (list,  table,  tree  item, Update  label,  …) JFace  Databinding
  • 21. Work  in  progress:  IncQuery  Viewers
  • 22. Work  in  progress:  IncQuery  Viewers 1.  Define  “edges”   and  “nodes”  of  an   overlay  graph  as   queries
  • 23. Work  in  progress:  IncQuery  Viewers 2.  Create   automaAcally   updaAng  JFace   viewers  (List,  Tree,   1.  Define  “edges”   Table,  Zest  Graph)   and  “nodes”  of  an   without  manual   overlay  graph  as   coding queries
  • 24. PERFORMANCE  BENCHMARK Instantaneous  result  retrieval?
  • 25. Benchmarking  scenario § In-­‐memory  models o Embedded  railways  control  sodware  system  design  domain   (complex  queries) o Instance  models  up  to  2.7M  EObjects  and  11.1M   EReferences § Scenario:  model  transformaLon  combined  with  well-­‐ formedness  validaLon o Batch:  loading  models  +  execuLng  queries o On-­‐the-­‐fly:  transforming  models  +  re-­‐execuLng  queries   instantaneously § Tools o Eclipse  tools  (OCL,  OCL  Impact  Analyzer,  INCQUERY,  EMF-­‐Java   manually  opLmized) o Neo4j  in-­‐memory  graph  database  (for  comparison)
  • 27. Batch  operaAons Neo4j  scales  somewhat   beOer  than  top  EMF   tools …  unless  you  augment   EMF  with  INCQUERY
  • 28. Batch  operaAons Neo4j  scales  somewhat   beOer  than  top  EMF   tools Note  the  logarithmic   scales:  7x  faster! …  unless  you  augment   EMF  with  INCQUERY
  • 30. Real  strength:  on-­‐the-­‐fly  model  processing • IncQuery  provides  near   zero  response  Ames  for   up  to  14M  elements
  • 31. Real  strength:  on-­‐the-­‐fly  model  processing • IncQuery  provides  near   zero  response  Ames  for   up  to  14M  elements CharacterisAc   difference
  • 32. Memory  usage § Depends  on  “query  complexity”  and  model  size/ contents § For  typical  query/model  combinaAons,  memory   overhead  is  linear o (1.1-­‐2)  x  (heap  required  for  the  model  itself) o IncQuery’s  built-­‐in  semanAc  validators  and  the  Rete   Visualizer  aid  you  in  resolving  problemaAc  query/ model  combinaAons
  • 34. Known  applicaAons § Well-­‐formedness  validaAon  of  very  large,  industrial   AUTOSAR  models  (AutomoAve  OEM) § Incremental  dependency  analysis  over  sotware   infrastructure  graphs  (tool  used  in  CERN) § Queries,  views  and  transformaAons  for  model-­‐ driven  tool  development  in  the  avionics  domain   (aircrat  manufacturer) § Model-­‐driven  refactoring  of  large  source  code   models  (CollaboraAve  naAonal  project  in  Hungary)
  • 35. Development  agenda § Our  current  plan o IncQuery  Viewers o Dynamic  EMF  support o Xcore  integraAon  (query-­‐based  derived  features) o Query  performance  opAmizaAon o Improve  support  for  stereotyped  UML  models § ARTop/Sphinx  integraAon o Incremental  validaAon  using  “hybrid  queries” • Support  parAally  materialized  models
  • 36. Other  ideas  on  the  table § ParLal  support  for  OCL § Dedicated  support  for  Complex  Event  Processing  over   live  EMF  models o hUp://incquery.net/incquery/demos/jnect o Think  incremental  queries  over  the  E4  Modeled  UI… § Develop  a  high  performance  and  pragmaLc  model   transformaLon  engine o Build  the  language  on  Xbase  and  IQPL o …and  the  runLme  on  IncQuery § Design  space  exploraLon o OpLmize  instance  models  towards  a  complex  design  goal
  • 37. Final  points § EMF-­‐INCQUERY  has  been  successfully  migrated  to   Eclipse.org  hUp://eclipse.org/incquery § EMF-­‐INCQUERY  0.7  milestone  builds  are  available   immediately  from  the  Marketplace o Blog  and  other  resources:  hOp://incquery.net   o Lots  of  documentaAon:  examples,  demos,  tutorials § Release  0.7  is  tentaAvely  scheduled  shortly  ater   the  Eclipse  Kepler  Launch  (beginning  of  July) § Your  contribu<ons  (feedback,  forum  posts,  ideas,   bugzillas,  patches)  are  very  welcome!
  • 38. Acknowledgements § IncQuery  Development  Team o Gábor  Bergmann,  Ábel  Hegedüs,  Ákos  Horváth,  András  Ökrös,   Zoltán  Ujhelyi,  István  Ráth § AddiLonal  contributors o Márk  CzoUer,  Tamás  Szabó § Performance  benchmarking o Benedek  Izsó,  Zoltán  Szatmári § TesLng,  examples o Asla  Csicsely,  Tamás  Csurgó,  Dániel  Kávássy,  Gábor  Szárnyas,   Tamás  Tóth,  Ádám  Dudás,  Oszkár  Semeráth,  Zoltán  Balogh § IncQuery  Project  Lead:  István  Ráth § Senior  advisor:  Dániel  Varró