Partial Loading of XMI Models
-
Upload
dimitris-kolovos -
Category
Science
-
view
203 -
download
0
Transcript of Partial Loading of XMI Models
1
Par$alLoadingofXMIModels
RanWei,DimitrisKolovos,AntonioGarcia-Dominguez,Konstan9nosBarmpis,RichardPaige
UniversityofYork
2
3Outline
• Context:EMFandXMI• EMF'sXMIParser• Par9alXMILoading• Evalua9on&Limita9ons• Conclusions&FutureWork
4Context
• EclipseModelingFramework(EMF)– De-factostandardforbuildingMDEtools
• OCL,Xtext,ATL,Epsilon,EMF-IncQuery,Acceleo,Xpand
• XMLMetadataInterchange(XMI)– Enablesmodelinteroperability– Supportedna9velybyEMFandasanimport/exportformatbymodelingtools• e.g.EnterpriseArchitect,Modelio,MagicDraw,MicrosoWVisio,VisualParadigm
5TheProblem
• Modelmanagementopera9ons(valida9on,transforma9on,etc.)typicallyuseonlyasubsetoftheelementsofamodel
• EMF’sXMIparserneedstoloadtheen9remodelanyway– Wasteful(memory+9me)
6varlecturers=Lecturer.allOfKind();for(linlecturers){
l.first_name.println();l.last_name.println();l.webPage.url.println();l.modules.size().println();
}
7Alterna$vestoXMI
• Binarymodelserialisa9on– Supportedna9velybyEMF– Smallerfilesandfaster– S9llrequiresfullloading
• Database-backedmodelpersistence– NeoEMF,CDO,Morsa,MongoEMF– Supportdynamicmodelelementloading/unloading– Notwidelysupportedbymodellingtools(yet)
8Contribu$ons
• Apar9alXMIloadingalgorithm– Skipirrelevantmodelelements– Expectedmemoryandperformancebenefits
• Animplementa9onofthealgorithmasanextensiontoEMF'sXMIparser– Toavoidreinven9ngthewheel– Tofacilitateexploita9onbyEMF-basedmodelmanagementlanguagesandtools
9EMF'sXMIParser
• Event-based(SAX)parser– startDocument,startElement,endElementetc.
• Keepstrackofitsposi9oninthemodelusingastackofmodelelements(EObjects)– Onstartelement:thetopoftheobjectstackisusedtodeterminewhatEObjecttocreate
– Onendelement:thetopoftheobjectstackisremoved
10TheUniversityMetamodel
11EMF'sXMIParser
ObjectStack
Resource
12EMF'sXMIParser
ObjectStack :University
Resource:University
13EMF'sXMIParser
:University
ObjectStack :University
Resource
:Department:Department
14EMF'sXMIParser
:University
ObjectStack :University
Resource
:Department:Department:Lecturer
:Lecturer
15EMF'sXMIParser
:University
ObjectStack :University
Resource
:Department:Department:Lecturer
:Lecturer
:WebPage
:WebPage
16EMF'sXMIParser
:University
ObjectStack :University
Resource
:Department:Department:Lecturer
:Lecturer
:WebPage
17EMF'sXMIParser
:University
ObjectStack :University
Resource
:Department:Department:Lecturer
:Lecturer
:WebPage
18EMF'sXMIParser
:University
ObjectStack :University
Resource
:Department:Department
:Lecturer
:WebPage
19EMF'sXMIParser
:University
ObjectStack :University
Resource
:Department:Department:Student
:Lecturer
:WebPage :Student
20EMF'sXMIParser
:University
ObjectStack :University
Resource
:Department:Department
:Lecturer
:WebPage :Student
21EMF'sXMIParser
:University
ObjectStack :University
Resource
:Department:Department:Module
:Lecturer
:WebPage :Student
:Module
22EMF'sXMIParser
:University
ObjectStack :University
Resource
:Department:Department:Module
:Lecturer
:WebPage :Student
:Module
:WebPage:WebPage
23EMF'sXMIParser
:University
ObjectStack :University
Resource
:Department:Department:Module
:Lecturer
:WebPage :Student
:Module
:WebPage
24EMF'sXMIParser
:University
ObjectStack :University
Resource
:Department:Department
:Lecturer
:WebPage :Student
:Module
:WebPage
25EMF'sXMIParser
:University
ObjectStack :University
Resource
:Department
:Lecturer
:WebPage :Student
:Module
:WebPage
26EMF'sXMIParser
ObjectStack :University
Resource
:Department
:Lecturer
:WebPage :Student
:Module
:WebPage
27EMF'sXMIParser
ObjectStack :University
Resource
:Department
:Lecturer
:WebPage :Student
:Module
:WebPage
28EMF'sXMIParser
• EveryXMIelementisprocessed• AllEObjectsneedtobecreated• Allaeribute/referenceslotsarepopulated
29Par$alXMILoading
• Effec9veMetamodel(akafootprint)– Extractedfrommodelmanagementprograms– …sothatweknowwhattoloadfromamodel
• Par9alLoadingAlgorithm– ExtensionofEMF’sXMIparsingalgorithm– Usestheeffec9vemetamodelto
• SkipXMIelements• Avoidcrea9onofelementsthatarenotneeded• Avoidpopula9onofslotsthatarenotneeded
30Effec$veM2Extrac$on
• Iden9fiestypes/featuresthatarelikelytobeaccessedduringtheexecu9onofamodelmanagementprogram– Extractsan"effec9vemetamodel"
• PrototypeforEpsilonbutapplicabletoanysta9callyanalysablelanguage
31Effec$veM2Extrac$on
Effec9veMetamodel
Lecturer
varlecturers=Lecturer.allOfKind();for(linlecturers){
l.first_name.println();l.last_name.println();l.webPage.url.println();l.modules.size().println();
}
32Effec$veM2Extrac$on
Effec9veMetamodel
Lecturer
varlecturers=Lecturer.allOfKind();for(linlecturers){
l.first_name.println();l.last_name.println();l.webPage.url.println();l.modules.size().println();
}
33Effec$veM2Extrac$on
Effec9veMetamodel
Lecturer
varlecturers=Lecturer.allOfKind();for(linlecturers){
l.first_name.println();l.last_name.println();l.webPage.url.println();l.modules.size().println();
}
34Effec$veM2Extrac$on
Effec9veMetamodel
Lecturer
varlecturers=Lecturer.allOfKind();for(linlecturers){
l.first_name.println();l.last_name.println();l.webPage.url.println();l.modules.size().println();
}
35Effec$veM2Extrac$on
Effec9veMetamodel
Lecturer
varlecturers=Lecturer.allOfKind();for(linlecturers){
l.first_name.println();l.last_name.println();l.webPage.url.println();l.modules.size().println();
}
36Effec$veM2Extrac$on
Effec9veMetamodel
Lecturer
varlecturers=Lecturer.allOfKind();for(linlecturers){
l.first_name.println();l.last_name.println();l.webPage.url.println();l.modules.size().println();
}
37Effec$veM2Extrac$on
Effec9veMetamodel
Lecturerfirst_name
varlecturers=Lecturer.allOfKind();for(linlecturers){
l.first_name.println();l.last_name.println();l.webPage.url.println();l.modules.size().println();
}
38Effec$veM2Extrac$on
Effec9veMetamodel
Lecturerfirst_name
varlecturers=Lecturer.allOfKind();for(linlecturers){
l.first_name.println();l.last_name.println();l.webPage.url.println();l.modules.size().println();
}
39Effec$veM2Extrac$on
Effec9veMetamodel
Lecturerfirst_name
varlecturers=Lecturer.allOfKind();for(linlecturers){
l.first_name.println();l.last_name.println();l.webPage.url.println();l.modules.size().println();
}
40Effec$veM2Extrac$on
Effec9veMetamodel
Lecturerfirst_namelast_name
varlecturers=Lecturer.allOfKind();for(linlecturers){
l.first_name.println();l.last_name.println();l.webPage.url.println();l.modules.size().println();
}
41Effec$veM2Extrac$on
Effec9veMetamodel
Lecturerfirst_namelast_name
varlecturers=Lecturer.allOfKind();for(linlecturers){
l.first_name.println();l.last_name.println();l.webPage.url.println();l.modules.size().println();
}
42Effec$veM2Extrac$on
Effec9veMetamodel
Lecturerfirst_namelast_name
varlecturers=Lecturer.allOfKind();for(linlecturers){
l.first_name.println();l.last_name.println();l.webPage.url.println();l.modules.size().println();
}
43Effec$veM2Extrac$on
Effec9veMetamodel
Lecturerfirst_namelast_namewebPage
varlecturers=Lecturer.allOfKind();for(linlecturers){
l.first_name.println();l.last_name.println();l.webPage.url.println();l.modules.size().println();
}
44Effec$veM2Extrac$on
Effec9veMetamodel
Lecturerfirst_namelast_namewebPage
WebPage
varlecturers=Lecturer.allOfKind();for(linlecturers){
l.first_name.println();l.last_name.println();l.webPage.url.println();l.modules.size().println();
}
45Effec$veM2Extrac$on
Effec9veMetamodel
Lecturerfirst_namelast_namewebPage
WebPageurl
varlecturers=Lecturer.allOfKind();for(linlecturers){
l.first_name.println();l.last_name.println();l.webPage.url.println();l.modules.size().println();
}
46Effec$veM2Extrac$on
Effec9veMetamodel
Lecturerfirst_namelast_namewebPage
WebPageurl
varlecturers=Lecturer.allOfKind();for(linlecturers){
l.first_name.println();l.last_name.println();l.webPage.url.println();l.modules.size().println();
}
47Effec$veM2Extrac$on
Effec9veMetamodel
Lecturerfirst_namelast_namewebPage
WebPageurl
varlecturers=Lecturer.allOfKind();for(linlecturers){
l.first_name.println();l.last_name.println();l.webPage.url.println();l.modules.size().println();
}
48Effec$veM2Extrac$on
Effec9veMetamodel
Lecturerfirst_namelast_namewebPagemodules
WebPageurl
varlecturers=Lecturer.allOfKind();for(linlecturers){
l.first_name.println();l.last_name.println();l.webPage.url.println();l.modules.size().println();
}
49Effec$veM2Extrac$on
Effec9veMetamodel
Lecturerfirst_namelast_namewebPagemodules
WebPageurl
Module
varlecturers=Lecturer.allOfKind();for(linlecturers){
l.first_name.println();l.last_name.println();l.webPage.url.println();l.modules.size().println();
}
50Effec$veM2Extrac$on
Effec9veMetamodel
Lecturerfirst_namelast_namewebPagemodules
WebPageurl
Module
varlecturers=Lecturer.allOfKind();for(linlecturers){
l.first_name.println();l.last_name.println();l.webPage.url.println();l.modules.size().println();
}
51Effec$veM2Extrac$on
Effec9veMetamodel
Lecturerfirst_namelast_namewebPagemodules
WebPageurl
Module
varlecturers=Lecturer.allOfKind();for(linlecturers){
l.first_name.println();l.last_name.println();l.webPage.url.println();l.modules.size().println();
}
52Effec$veM2Extrac$on
53Effec$veM2Reconcilia$on
• Effec9vemetamodelsextractedfrommodelmanagementprogramsmaybeincomplete– Theyrequirereconcilia9on
54Effec$veM2Reconcilia$on
55Par$alLoadingAlgorithm
• Theen9redocumentiss9llreadbutonlyXMIelementsofelementsareprocessed
• Novelty:PlaceholderObjects– Theobjectstackisessen9altoEMF'sXMIloadingalgorithms
– Wecreateoneplaceholderobjectforeachirrelevanttypeanduseinintheplaceofignoredmodelelements
56ReconciledEffec$veM2
57Par$alXMILoading
ObjectStack
Resource
Placeholders
:University
:Department
:Student
58Par$alXMILoading
:University
ObjectStack
Resource
Placeholders
:University
:Department
:Student
59Par$alXMILoading
:University
ObjectStack
Resource
Placeholders
:University
:Department
:Student
:Department
60Par$alXMILoading
:University
ObjectStack
Resource
Placeholders
:University
:Department
:Student
:Department
:Lecturer
61Par$alXMILoading
:University
ObjectStack
Resource
Placeholders
:University
:Department
:Student
:Department
:Lecturer :Lecturer
62Par$alXMILoading
:University
ObjectStack
Resource
Placeholders
:University
:Department
:Student
:Department
:Lecturer :Lecturer
:WebPage :WebPage
63Par$alXMILoading
:University
ObjectStack
Resource
Placeholders
:University
:Department
:Student
:Department
:Lecturer :Lecturer
:WebPage :WebPage
64Par$alXMILoading
:University
ObjectStack
Resource
Placeholders
:University
:Department
:Student
:Department
:Lecturer :Lecturer
:WebPage
65Par$alXMILoading
:University
ObjectStack
Resource
Placeholders
:University
:Department
:Student
:Department
:Lecturer
:WebPage
66Par$alXMILoading
:University
ObjectStack
Resource
Placeholders
:University
:Department
:Student
:Department
:Lecturer
:WebPage
:Student
67Par$alXMILoading
:University
ObjectStack
Resource
Placeholders
:University
:Department
:Student
:Department
:Lecturer
:WebPage
:Student
68Par$alXMILoading
:University
ObjectStack
Resource
Placeholders
:University
:Department
:Student
:Department
:Lecturer
:WebPage
69Par$alXMILoading
:University
ObjectStack
Resource
Placeholders
:University
:Department
:Student
:Department
:Lecturer
:WebPage
:Module
:Module
70Par$alXMILoading
:University
ObjectStack
Resource
Placeholders
:University
:Department
:Student
:Department
:Lecturer
:WebPage
:Module
:Module
:WebPage
71Par$alXMILoading
:University
ObjectStack
Resource
Placeholders
:University
:Department
:Student
:Department
:Lecturer
:WebPage
:Module
:Module
72Par$alXMILoading
:University
ObjectStack
Resource
Placeholders
:University
:Department
:Student
:Department
:Lecturer
:WebPage
:Module
73Par$alXMILoading
:University
ObjectStack
Resource
Placeholders
:University
:Department
:Student :Lecturer
:WebPage
:Module
74Par$alXMILoading
ObjectStack
Resource
Placeholders
:University
:Department
:Student :Lecturer
:WebPage
:Module
75Par$alXMILoading
ObjectStack
Resource
Placeholders
:University
:Department
:Student :Lecturer
:WebPage
:Module
76Par$allyLoadedModel
77Integra$onwithEMF
78
Evalua$on_
79Benchmarks
• ModelsfromGraBaTs2009• 5datasets– set0–set4,obtainedbyreverse-engineeringJavaprojects
– Sizes:9.2MB,27.9MB,283.2MB,626.7MBand676.9MB
• Benchmarkquerysets– EOLqueriesautoma9callygeneratedtoaccess20%,40%,60%,80%and100%ofalldatasets
80BenchmarkResults:Set0
81BenchmarkResults:Set1
82BenchmarkResults:Set2
83BenchmarkResults:Set3
84BenchmarkResults:Set4
85Observa$ons
• Linearbehaviourwithregardtothenumberofmodelelementsandslotsofinterest– Loading9me– Memoryfootprint
• Whenloading100%ofthemodel,thepar9alloadingalgorithmismarginallyslower
86Limita$ons
• XMImodelsshoulduseuniqueIDsratherthanfragmentpathIDs– Suchas//@departments.0/@modules.0
• Par9allyloadedmodelsareread-only– Changescannotbesavedbacktotheoriginalmodel
87Conclusions
• Firstaeempttopar9allyloadXMImodels• tosave9meandmemory
• AlgorithmimplementedasanextensiontoEMF'sXMIparser
• Scaleslinearlywithrespecttothenumberofmodelelementsandslotsofinterest
88FutureWork
• Run9memodel-levelpruning– AvoidingXMLtagsanditschildrenifcompletelynotneeded
• Propaga9ngchangesbacktotheoriginalmodel
• Suppor9ngfragmentpathIDs• Par9alloadingofmodelsserialisedinEMF'sbinaryformat