Diese Präsentation wurde erfolgreich gemeldet.
Wir verwenden Ihre LinkedIn Profilangaben und Informationen zu Ihren Aktivitäten, um Anzeigen zu personalisieren und Ihnen relevantere Inhalte anzuzeigen. Sie können Ihre Anzeigeneinstellungen jederzeit ändern.
EMF-IncQuery:
Blazing-fast reaction time
even for very large diagrams
Ákos Horváth, Ábel Hegedüs, Zoltán Ujhelyi, István R...
Outline
Query-based view models
• Overview
• Evaluation
Motivation and
background
Sirius and queries
Sirius integration
• ...
Introduction
3
??
I don’t need all that
information
Can I define a
simplified model?
Can I define a
viewpoint
to visualize...
Motivating scenario: CONCERTO
EU-ECSEL project (started in 2013)
• General MDD toolchain for safety-critical systems
o Ana...
Background: Sirius
Sirius
• Custom concrete syntax for visualization
o Tree, table, graph, etc.
• Provides viewpoint defin...
Background: EMF-IncQuery
EMF-IncQuery
• Incremental model query engine
• Own query language = IQPL
o declarative
o graph p...
IncQuery as a query language in Sirius
VSM Render
Overview: IQPL as query language for Sirius
Sirius provides API to provide custom
expression interpreter
• org....
DEMO
Same model query written in
• MTL
• AQL
• IncQuery
Using IncQuery in Sirius
9
Master:AppType
SM1: State Machine
S1:
S...
Evaluation: Interpreted expression
10
0
5000
10000
15000
20000
25000
30000
35000
MTL AQL EIQ MTL AQL EIQ MTL AQL EIQ
Small...
Query-Based Resources
EVM
VIEW MODELS AND SIRIUS
Derived
Model
EMF
Model
A. Model
Modification
B. Change
Notifications
Live
QueriesLive
Transfor...
More matches can appear at the same time
• Ordered execution schema (priority for rules)
Internal traceability for created...
Updating derived models
Initial setup of derivation rules
• EClassifiers, EStructuralFeatures
Query result deltas
• Delta ...
DEMO
Standard Sirius domain
• Family representation
• Incremental synchronization
o On-the-fly
(Concerto EMF-UML2)
• Viewp...
First time
execution
16
0
5000
10000
15000
20000
25000
30000
35000
9+16 81+160 201+400 401+800 601+1200 801+1600 1201+2400...
Evaluation - Concerto
Incremental
recalculation
17
0
200
400
600
800
1000
1200RUNTIME[MS]
SIZE OF TARGET (VIEW) MODEL (ELE...
Conclusions
Conclusions
Proof-of-concept version is available
• IncQuery does well as expected in incremental recalculations
• Increme...
Final points
The examples and more details are available
form
• https://github.com/FTSRG/iq-sirius-integration
• Contribut...
Nächste SlideShare
Wird geladen in …5
×

EMF-IncQuery: Blazing-fast reaction time even for very large diagrams (Sirius integration)

772 Aufrufe

Veröffentlicht am

Invited talk @SiriusCon 2015

Veröffentlicht in: Software
  • Als Erste(r) kommentieren

EMF-IncQuery: Blazing-fast reaction time even for very large diagrams (Sirius integration)

  1. 1. EMF-IncQuery: Blazing-fast reaction time even for very large diagrams Ákos Horváth, Ábel Hegedüs, Zoltán Ujhelyi, István Ráth IncQuery Labs Ltd. Gábor Bergmann, Csaba Debreceni, Dániel Varró Budapest University of Technology and Economics
  2. 2. Outline Query-based view models • Overview • Evaluation Motivation and background Sirius and queries Sirius integration • Overview • Evaluation Conclusion • Conclusion  Main Contributors o Ádám Lengyel o Ábel Hegedüs o Zoltán Ujhelyi o István Ráth o Ákos Horváth
  3. 3. Introduction 3 ?? I don’t need all that information Can I define a simplified model? Can I define a viewpoint to visualize it? Maintanence • Incrementally • Immediately Maintenance: • Incrementally • Immediately Viewpoint: • Different view of underlying model • Abstraction  hides complexity
  4. 4. Motivating scenario: CONCERTO EU-ECSEL project (started in 2013) • General MDD toolchain for safety-critical systems o Analysis and code generation for component based systems o UML based modeling o Non-modifiable PSM Simplified Example 4 FAM_PilotControl : Function FAM_Navigation : Function FAM_FMS : Function FAM_EMS : Function nav2ems :InformationLink provider consumer subFunctions provider consumer PilotControl SubS1 Navigation FMS SubS2 EMS tag: func tag: func tag: func tag: func EMS: Engine Management System FMS: Flight Management SystemInPort/OutPort nav2fms :InformationLink Simulink Concerto Component models (UML + profiles) Id Id Other SubSystem without tag Function SubSystem with "func" tag) Port Blocks id:Function id:InformationLink View More details on Matlab Simulink and Eclipse integration: https://github.com/FTSRG/massif
  5. 5. Background: Sirius Sirius • Custom concrete syntax for visualization o Tree, table, graph, etc. • Provides viewpoint definition over EMF models • Abstraction can be defined using interpreted expressions o MTL – Acceleo Model-to-Text language o OCL- Object Constraint language o AQL (recommended as of 3.1) – Acceleo Query Language • Supports several viewpoints over the same abstract syntax 5 More details on Sirius: https://eclipse.org/sirius/
  6. 6. Background: EMF-IncQuery EMF-IncQuery • Incremental model query engine • Own query language = IQPL o declarative o graph pattern based 6 Query Model Updated results Result deltas Evaluator Model change Efficient change propagation Always up-to-date results without model re-traversal Track changes of your model in terms of queries More details on EMF-IncQuery integration: http://www.eclipse.org/incquery/
  7. 7. IncQuery as a query language in Sirius
  8. 8. VSM Render Overview: IQPL as query language for Sirius Sirius provides API to provide custom expression interpreter • org.eclipse.sirius.common.expressionInterpreter • org.eclipse.sirius.common.proposalProvider 8 4. UI updates EMF Model B. Change Notifications A. Model Modification Live Queries Live Queries 2. Get queries 3. Query results 1. UI refresh
  9. 9. DEMO Same model query written in • MTL • AQL • IncQuery Using IncQuery in Sirius 9 Master:AppType SM1: State Machine S1: State S2: State sendSignal() :HostInstance :Master Slave:AppType SM1: State Machine SA: State SB: State receiveSignal() :HostInstance :Slave communicates allocatedTo allocatedTo instanceOf instanceOf
  10. 10. Evaluation: Interpreted expression 10 0 5000 10000 15000 20000 25000 30000 35000 MTL AQL EIQ MTL AQL EIQ MTL AQL EIQ Small Medium Large EXECUTIONTIME[MS] MODEL SIZE First Execution Recalculation Models EObjects EReferences EAttributes Diagram nodesDiagram edges Small 3550 34222 9471 12 17 Medium 6994 124708 22129 17 13 Large 63580 1233581 457230 167 6154 Profiler was used to isolate query execution time AQL • provides good performance • Low memory profile IncQuery • Recalculations < 50 ms • Requires up to 2x memory o Large ~1.2 Gb
  11. 11. Query-Based Resources
  12. 12. EVM VIEW MODELS AND SIRIUS Derived Model EMF Model A. Model Modification B. Change Notifications Live QueriesLive Transformation Live QueriesLive Transformation Derived Model C. Delta updates C. Delta updates D. UI refresh D. UI refresh B. Change Notifications More details on EVM: http://wiki.eclipse.org/EMFIncQuery/DeveloperDocumentation/EventDrivenVM VSM + Render
  13. 13. More matches can appear at the same time • Ordered execution schema (priority for rules) Internal traceability for created objects • Explicit definition Configuration model hides underlying EVM rule definitions • Predefined set of manipulation rules available In summary: One way incremental synchronization  arbitrary transformation Execution of motivating example 11 FAM_PilotControl : Function FAM_Navigation : Function FAM_FMS : Function subFunctions consumer PilotControl SubS1 Navigation FMS tag: func tag: func tag: func Simulink CCM subFunctions Query results Traceability function f_1 f_2 f_3 Trace Trace Trace a 2 3appear create add Query results functionIdentifier f_1 i_1 f_2 i_2 f_3 i_3 subFunction f_1 i_1 f_2 i_2 b appear 4 set
  14. 14. Updating derived models Initial setup of derivation rules • EClassifiers, EStructuralFeatures Query result deltas • Delta = (Found, Lost, Updated) Based on EMF-IncQuery Event-Driven Virtual machine Integration architecture 14 Source model Live transformation rules Query engine IncQuery- EVM Derived model Change notifications Match set delta Application Model manipulation Configuration Model manipulation 1 2 3 4 Sirius UI update5
  15. 15. DEMO Standard Sirius domain • Family representation • Incremental synchronization o On-the-fly (Concerto EMF-UML2) • Viewpoint for simplified representation Using IncQuery in Sirius 15
  16. 16. First time execution 16 0 5000 10000 15000 20000 25000 30000 35000 9+16 81+160 201+400 401+800 601+1200 801+1600 1201+2400 RUNTIME[MS] SIZE OF TARGET (VIEW) MODEL (ELEMENTS + REFERENCES) Transformation Transformation + Sirius Models EObjects EReferences Diagram nodes Diagram edges 9+16 38 89 9 16 81+160 371 890 81 160 201+400 926 2225 201 400 401+800 1851 4450 401 800 601+1200 2776 6675 601 1200 801+1600 3701 8900 801 1600 1201+2400 5551 13350 1201 2400  10+ derivation rules  Transformation ~33% of overall runtime  Memory consumption ~3.5x of original model Evaluation - Concerto
  17. 17. Evaluation - Concerto Incremental recalculation 17 0 200 400 600 800 1000 1200RUNTIME[MS] SIZE OF TARGET (VIEW) MODEL (ELEMENTS + REFERENCES) Deletion Deletion + Sirius Models EObjects EReferences Diagram nodes Diagram edges 9+16 38 89 9 16 81+160 371 890 81 160 201+400 926 2225 201 400 401+800 1851 4450 401 800 601+1200 2776 6675 601 1200 801+1600 3701 8900 801 1600 1201+2400 5551 13350 1201 2400  Transformation re-execution < 50 ms  Refreshing < 1 s  Refreshing is also faster
  18. 18. Conclusions
  19. 19. Conclusions Proof-of-concept version is available • IncQuery does well as expected in incremental recalculations • Incremental refreshing is not (yet) available o Started working on the issues with Obeo  • Usage requires deep knowledge of both Sirius and IncQuery • Common base with new EMF-IncQuery Viewers Experience • Concerto EU-ECSEL project o Works with Papyrus and EMF-UML2! • Aimed application scenario o Viewpoint definition directly for EMF models (one-to-one mapping) o Online synchronization 19
  20. 20. Final points The examples and more details are available form • https://github.com/FTSRG/iq-sirius-integration • Contributors: o Main: BME-FTSRG, IncQuery Labs Ltd. o Supporting projects: Concerto (EU-Artemis) o (Hopefully) future partner: Obeo  • Presentation will be available on slideshare Your contributions (feedback, forum posts, ideas, patches) are very welcome! • To what direction should we enhance this approach? 20

×