EMF-IncQuery gets Sirius - EclipseCon France2018 · oIncremental model query engine oOwn query...

21
Eclipsecon 2015 Budapest University of Technology and Economics Department of Measurement and Information Systems IncQuery Labs Ltd. EMF-IncQuery gets Sirius: faster and better diagrams Ákos Horváth, Ábel Hegedüs, Zoltán Ujhelyi IncQuery Labs Ltd. Ádám Lengyel, István Ráth, Dániel Varró Budapest University of Technology and Economics

Transcript of EMF-IncQuery gets Sirius - EclipseCon France2018 · oIncremental model query engine oOwn query...

Page 1: EMF-IncQuery gets Sirius - EclipseCon France2018 · oIncremental model query engine oOwn query language = IQPL •declarative •graph pattern based 6 Query Model Updated results

Eclipsecon 2015 Budapest University of Technology and EconomicsDepartment of Measurement and Information Systems

IncQuery Labs Ltd.

EMF-IncQuery gets Sirius:faster and better diagrams

Ákos Horváth, Ábel Hegedüs, Zoltán UjhelyiIncQuery Labs Ltd.

Ádám Lengyel, István Ráth, Dániel VarróBudapest University of Technology and Economics

Page 2: EMF-IncQuery gets Sirius - EclipseCon France2018 · oIncremental model query engine oOwn query language = IQPL •declarative •graph pattern based 6 Query Model Updated results

Eclipsecon 2015

Outline of the talk

2

Motivation and background

Sirius and queries

Interpreter based integration

• Overview

• Demo and evaluation

Query-based viewpoint definition

• Overview

• Demo and evaluation

Conclusion

• Current status

• Future work

Main Contributors

o Ádám Lengyel

o Ábel Hegedüs

o Zoltán Ujhelyi

o István Ráth

o Ákos Horváth

Page 3: EMF-IncQuery gets Sirius - EclipseCon France2018 · oIncremental model query engine oOwn query language = IQPL •declarative •graph pattern based 6 Query Model Updated results

Eclipsecon 2015

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

Page 4: EMF-IncQuery gets Sirius - EclipseCon France2018 · oIncremental model query engine oOwn query language = IQPL •declarative •graph pattern based 6 Query Model Updated results

Eclipsecon 2015

Motivating scenario: CONCERTO EU-ECSEL project (started in 2013)

o General MDD toolchain for safety-critical systems• Analysis and code generation for component based systems• UML based modeling• 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

SimulinkConcerto 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

Page 5: EMF-IncQuery gets Sirius - EclipseCon France2018 · oIncremental model query engine oOwn query language = IQPL •declarative •graph pattern based 6 Query Model Updated results

Eclipsecon 2015

Background: Sirius

Sirius

o Custom concrete syntax for visualization

• Tree, table, graph, etc.

o Provides viewpoint definition over EMF models

o Abstraction can be defined using interpreted expressions

• MTL – Acceleo Model-to-Text language

• OCL- Object Constraint language

• AQL (recommended as of 3.1) – Acceleo Query Language

o Supports several viewpoints over the same abstract syntax

5

More details on Sirius: https://eclipse.org/sirius/

Page 6: EMF-IncQuery gets Sirius - EclipseCon France2018 · oIncremental model query engine oOwn query language = IQPL •declarative •graph pattern based 6 Query Model Updated results

Eclipsecon 2015

Background: EMF-IncQuery

EMF-IncQuery

o Incremental model query engine

o Own query language = IQPL

• declarative

• 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 yourmodel in terms of queries

More details on EMF-IncQuery integration: http://www.eclipse.org/incquery/

Page 7: EMF-IncQuery gets Sirius - EclipseCon France2018 · oIncremental model query engine oOwn query language = IQPL •declarative •graph pattern based 6 Query Model Updated results

Eclipsecon 2015

IncQuery as a query language in Sirius

Page 8: EMF-IncQuery gets Sirius - EclipseCon France2018 · oIncremental model query engine oOwn query language = IQPL •declarative •graph pattern based 6 Query Model Updated results

Eclipsecon 2015

VSM Render

Overview: IQPL as query language for Sirius

Sirius provides API to provide custom expression interpretero org.eclipse.sirius.common.expressionInterpreter

o org.eclipse.sirius.common.proposalProvider

8

4. UI updates

EMF Model

B. ChangeNotificationsA. Model

Modification

Live Queries

Live Queries

2. Get queries

3. Query results

1. UI refresh

Page 9: EMF-IncQuery gets Sirius - EclipseCon France2018 · oIncremental model query engine oOwn query language = IQPL •declarative •graph pattern based 6 Query Model Updated results

Eclipsecon 2015

DEMO

Same model query written in

oMTL

o AQL

o 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

Page 10: EMF-IncQuery gets Sirius - EclipseCon France2018 · oIncremental model query engine oOwn query language = IQPL •declarative •graph pattern based 6 Query Model Updated results

Eclipsecon 2015

Evaluation: Interpreted expression

10

0

5000

10000

15000

20000

25000

30000

35000

MTL AQL EIQ MTL AQL EIQ MTL AQL EIQ

Small Medium Large

EXEC

UTI

ON

TIM

E [M

S]

MODEL SIZE

First Execution

Recalculation

Models EObjects EReferences EAttributes Diagram nodes Diagram 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 o provides good

performance

o Low memory profile

IncQueryo Recalculations

< 50 ms

o Requires up to 2x memory• Large ~1.2 Gb

Page 11: EMF-IncQuery gets Sirius - EclipseCon France2018 · oIncremental model query engine oOwn query language = IQPL •declarative •graph pattern based 6 Query Model Updated results

Eclipsecon 2015

Query-based resource

Viewpoints as separate EMF resources

Page 12: EMF-IncQuery gets Sirius - EclipseCon France2018 · oIncremental model query engine oOwn query language = IQPL •declarative •graph pattern based 6 Query Model Updated results

Eclipsecon 2015

EVM

VIEW MODELS AND SIRIUS

DerivedModel

EMF Model

A. Model Modification

B. ChangeNotifications

Live QueriesLive

Transformation

Live QueriesLive

TransformationDerivedModel

C. Deltaupdates

C. Deltaupdates

D. UI refresh

D. UI refreshB. ChangeNotifications

More details on EVM: http://wiki.eclipse.org/EMFIncQuery/DeveloperDocumentation/EventDrivenVM

VSM + Render

Page 13: EMF-IncQuery gets Sirius - EclipseCon France2018 · oIncremental model query engine oOwn query language = IQPL •declarative •graph pattern based 6 Query Model Updated results

Eclipsecon 2015

More matches can appear at the same timeo Ordered execution schema (priority for rules)

Internal traceability for created objectso Explicit definition

Configuration model hides underlying EVM rule definitionso 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

Page 14: EMF-IncQuery gets Sirius - EclipseCon France2018 · oIncremental model query engine oOwn query language = IQPL •declarative •graph pattern based 6 Query Model Updated results

Eclipsecon 2015

Updating derived models Initial setup of derivation rules

o EClassifiers, EStructuralFeatures

Query result deltaso 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 ConfigurationModel manipulation

1

23

4

Sirius

UI update5

Page 15: EMF-IncQuery gets Sirius - EclipseCon France2018 · oIncremental model query engine oOwn query language = IQPL •declarative •graph pattern based 6 Query Model Updated results

Eclipsecon 2015

DEMO

Standard Sirius domain

o Family representation

o Incremental synchronization

• On-the-fly

Concerto EMF-UML2

o Viewpoint for simplified representation

Using IncQuery in Sirius

15

Page 16: EMF-IncQuery gets Sirius - EclipseCon France2018 · oIncremental model query engine oOwn query language = IQPL •declarative •graph pattern based 6 Query Model Updated results

Eclipsecon 2015

Evaluation - Concerto

First timeexecution

16

0

5000

10000

15000

20000

25000

30000

35000

9+16 81+160 201+400 401+800 601+1200 801+1600 1201+2400

RU

NTI

ME

[MS]

SIZE OF TARGET (VIEW) MODEL (ELEMENTS + REFERENCES)

Transformation Transformation + Sirius

Models EObjects EReferences Diagram nodes Diagram edges

9+16 38 89 9 1681+160 371 890 81 160201+400 926 2225 201 400401+800 1851 4450 401 800601+1200 2776 6675 601 1200801+1600 3701 8900 801 16001201+2400 5551 13350 1201 2400

10+ derivation rules

Transformation ~33% of overall runtime

Memory consumption ~3.5x of original model

Page 17: EMF-IncQuery gets Sirius - EclipseCon France2018 · oIncremental model query engine oOwn query language = IQPL •declarative •graph pattern based 6 Query Model Updated results

Eclipsecon 2015

Evaluation - Concerto

Incrementalrecalculation

17

0

200

400

600

800

1000

1200

9+16 81+160 201+400 401+800 601+1200 801+1600 1201+2400

RU

NTI

ME

[MS]

SIZE OF TARGET (VIEW) MODEL (ELEMENTS + REFERENCES)

Deletion Deletion + Sirius

Models EObjects EReferences Diagram nodes Diagram edges

9+16 38 89 9 1681+160 371 890 81 160201+400 926 2225 201 400401+800 1851 4450 401 800601+1200 2776 6675 601 1200801+1600 3701 8900 801 16001201+2400 5551 13350 1201 2400

Transformation re-execution < 50 ms

Refreshing < 1 s

Refreshing is also faster

Page 18: EMF-IncQuery gets Sirius - EclipseCon France2018 · oIncremental model query engine oOwn query language = IQPL •declarative •graph pattern based 6 Query Model Updated results

Eclipsecon 2015

Conclusions

What we have done and where to move forward

Page 19: EMF-IncQuery gets Sirius - EclipseCon France2018 · oIncremental model query engine oOwn query language = IQPL •declarative •graph pattern based 6 Query Model Updated results

Eclipsecon 2015

Conclusions

Proof-of-concept version is availableo IncQuery does well as expected in incremental recalculations

o Incremental refreshing is not available• Would be nice to have explicit API

o Usage requires deep knowledge of both Sirius and IncQuery

o Common base with new EMF-IncQuery Viewers

Experienceo Concerto EU-ECSEL project

• Works with Papyrus and EMF-UML2!

o Aimed application scenario• Viewpoint definition directly for EMF models (one-to-one mapping)

• Online synchronization

19

Page 20: EMF-IncQuery gets Sirius - EclipseCon France2018 · oIncremental model query engine oOwn query language = IQPL •declarative •graph pattern based 6 Query Model Updated results

Eclipsecon 2015

Final points

The examples and more details are available form

o https://github.com/FTSRG/iq-sirius-integration

o Contributors:

• Main: BME-FTSRG, IncQuery Labs Ltd.

• Supporting projects: Concerto (EU-Artemis)

• (Hopefully) future partner: Obeo

Your contributions (feedback, forum posts, ideas, patches) are very welcome!

o To what direction should we enhance this approach?

20

Page 21: EMF-IncQuery gets Sirius - EclipseCon France2018 · oIncremental model query engine oOwn query language = IQPL •declarative •graph pattern based 6 Query Model Updated results

Eclipsecon 2015