change-driven model transformations
DESCRIPTION
Presented at MODELS2009. Received the Springer Best Paper Award and the ACM Distinguished Paper Award.TRANSCRIPT
BudapestUniversityofTechnologyandEconomicsModelDrivenEngineeringLanguagesandSystems2009,Denver,Colorado,USA
Change‐DrivenModelTransforma5ons
Deriva'onandProcessingofChangeHistories
IstvánRáth,GergelyVarró,DánielVarró[email protected]
Outlineofthetalk
Introduc5on Mo5va5on
Overviewoftheconcept Change‐driventransforma5onsindetail
Summary
Futurework
Mo5va5ngscenario:forwardmodelsynchroniza5on
MA MB
MA’
change
MB’
TargetSource
Incrementalmodelsynchroniza5onand'me
On‐demand:batchtransforma5onso The“tradi5onal”way
Incrementalmodelsynchroniza5on
MA MB
MA’
change
MB’
• Re‐transform• Targetincrementality
TargetSource
Modelsynchroniza5onand'me On‐demand:batchtransforma5ons
o The“tradi5onal”way Instantly:livetransforma5ons
o Reactinstantlytocontext(model)changes• “event‐driven”transforma5ons
o Hearnden‐Lawley‐Raymond.IncrementalModelTransforma'onfortheEvolu'onofModel‐drivenSystems.MODELS2006.
o Ráth‐Ökrös‐Bergmann‐Varró.Livemodeltransforma'onsdrivenbyincrementalpaCernmatching.ICMT2008.• Transac5on‐orientedapproach• Reac5onspossibletoarbitrarilycomplexchanges
Livemodelsynchroniza5on
MA MB
MA’
change
MB’
1.Watchforchanges
2.Reacttochanges
3.Merge
TargetSource
Modelsynchroniza5onand'me
On‐demand:batchtransforma5onso The“tradi5onal”way
Instantly:livetransforma5onso Reactinstantlytocontext(model)changes• “event‐driven”transforma5ons
o Hearnden‐Lawley‐Raymond.IncrementalModelTransforma'onfortheEvolu'onofModel‐drivenSystems.MODELS2006.
o Ráth‐Ökrös‐Bergmann‐Varró.Livemodeltransforma'onsdrivenbyincrementalpaCernmatching.ICMT2008.• Transac5on‐orientedapproach
Commonassump5ons:1. Allmodelsareavailablein
memory2. Changesarepropagated
“synchronously”
Commonassump5ons:1. Allmodelsareavailablein
memory2. Changesarepropagated
“synchronously”
Asynchronoussynchroniza5on
Whatif…o Somemodelscannot(shouldnot)bematerializedinmemory?• Modelsaretoolarge
• Modelshavetobemanipulated“inside”theirna5veenvironment(tool)
o Changesaretobeapplied/reproduced“later”?• Changeshavetorecordedfore.g.traceability
Asynchronous(off‐line)synchroniza5on
TargetSource
Mo5va5ngscenario
MA MB
MA’
change
MB’
IF?Tracerecord
Highlevel(domain‐specific)process
model
Deployedprocesstemplate(jPDL)
Casestudyandchallenges
Toolintegra5oninaheterogeneousenvironmento DevelopedfortheSENSORIAandMOGENTESEUresearchprojects
Highlevelprocessmodelsdescribe(complex)developmentprocesssegmentso E.g.automatedtestgenera5on,deploymentconfigura5ongenera5on
Processesareexecutedino Adistributedenvironment(worksta5ons,toolservers)o OrchestratedbythejBPMprocessexecu5onengine.
Challenges
Challenge#1:highlevelmodelsareeditedchangeshavetobepropagatedtothedeployedprocesstemplate
Challenge#2:changesaremappedasynchronouslyin5meo Not(necessarily)bytheprocessengineer
Target
Conceptualoverview
MA MB
MA’
change CHMA
MB’
CHMB
IF
1.Recordchangesintotraceabilitymodels(=CHMs)
2.Mapsourcechangestotargetchanges(=CHMstoCHMs)insteadofsourcemodelstotargetmodels
3.Applychangestoexternalmodels
throughaninterface(IF)
Source
Changehistorymodels
Traceabilitymodelso Opera5onaldifferencemodels
o Recordhistoricalopera5onsequences• WHEN(5mestampsinalinkedliststructure)
• WHAT(CUDM)• Context(referencedmodelelements)
o “weak”references• IDsorFQNs• Allowstoreferenceexternal(non‐orpar5allymaterialized)models
CHMA CHMB
Changehistorymetamodel
Opera5oncategories
Weakreferences
Historicalrecord
Genera5onofCHMs Livetransforma5ons
o Editor‐independent! Generatetracemodelsnippetsastheuserisedi5ngthemodelo Timestampso Contextualreferences
MA
MA’
CHMAchange
Source
Genera5onofCHMs:GenericexampleSampleexecu5onsequence:
E:Type
ParentCE:CreateEn5ty
:parentFQN
:targetFQN
Type:typeFQN
Timestamp:<sysTime()>Name:<name(E)>
{new}
{pre}
Trg
SrcCR:CreateRela5on
:newSrcFQN
:newTrgFQN
Type :typeFQN
Timestamp:<sysTime()>Name:<name(R)>
{new}
{pre}
R:Type
En5tyandRela5onarebasicVIATRAconceptsforgraphnodeandedge
En5tyandRela5onarebasicVIATRAconceptsforgraphnodeandedge
Genera5ngdomain‐specificCHMs
I:Invoca5on
W:Workflow
DI:DataInput
{pre}
DO:DataOutput
:returns:parameters
CJN:CreateJPDLNode
:parentID
:targetID
Timestamp:<sysTime()>
{new}
CJA:CreateJPDLAtribute
:next
targetID:CJN.targetID+”.parameters”parentID:CJN.targetIDtargetTextValue:value(DI)
CJA:CreateJPDLAtribute
:next
targetID:CJN.targetID+”.returns”parentID:CJN.targetIDtargetTextValue:value(DO)
1.Useacompoundpaternas
precondi5on,correspondingtoa(complex)model
structure
2a.CreateacompoundCHMsequenceaspostcondi5on
2b.Usea“compressed”CHM
elementcorrespondingtoacomplexdomain‐specificopera5on
Change‐driventransforma5ons Input:
o Changesofthesourcemodel
Outputo Correspondingchangesofthetargetmodel
Maybeformulatedas:o Livetransforma5on
o Batchtransforma5on
Granularity?o “one‐to‐one”o “n‐to‐m”
MA’
CHMA CHMB
TargetSource
MappingCHMsSampleexecu5oncon5nued:
E:Invoca5on
ParentCE:CreateEn5ty
:parentFQN
:targetFQN
Invoca5on:typeFQN
CJN:CreateJPDLNode{new}
CJA:CreateJPDLAtribute
:next
{pre}
targetID:name(Parent)+”.”+name(E)parentID:name(Parent)
targetID:CJN.targetID+”.fun5on”parentID:CJN.targetIDtargetTextValue:E.func5onName
typeFQN=meta.Invoca5on
func5onName:<>
ForeachnewlycreatedInvoca5on,createa
correspondingJPDLnodetogetherwithis“func5on”atribute(=domain‐specific
mappinglogic)
ApplyingCHMstoexternalmodels ApplyingCHMs=model“interpreta5on”
Externalmodelsaremanipulatedthrougha(service)interfaceo VIATRA:“na5vefunc5ons”
MB
MB’
CHMB
IF
Target
Manipula5ngnon‐materializedmodelswithVIATRA
VIATRAna5vefunc5onsallowforDOM‐stylemanipula5onofthe
deployedjPDLprocesstemplate.
Summary
Change‐driventransforma5ons=o Aninnova5vesynthesisofknowntechniques:• Tracemodels• Livetransforma5ons
• Non‐materializedmodelmanipula5on
o Asolu5onforanengineeringproblem
o Lotsofopenques5onsandnewideas…
Futurework
Abeginning,ratherthananend… Lotsofopenques5ons
o HowtowriteCDTs?o HowtogenerateCDTsfrom“tradi5onal”transforma5ons?
Aretheyuseful?o Efficient,intui5vemodelsynchroniza5ono Changerepresenta5on,processing((re)verifica5on,changeimpactanalysis)
o Modelmerging(~opera5onalmerging)
Thankyouforyouraten5on.