Upload
cedric-brun
View
226
Download
3
Embed Size (px)
Citation preview
MODELING AVENGERS
OSS TECHNOLOGY MIX FOR SAVINGTHE WORLD
, OBEO ( )
, INRIA and Univ. Rennes 1 ( )
Cédric Brun @bruncedric
Benoit Combemale @bcombemale
Slides available at http://cedric.brun.io/talks/ModelingAvengers/
GEMOCThe GEMOC ANR project ( ):
A Language Workbench for concurrent execution andsimulation of heterogeneous models
The GEMOC Initiative ( ):
GEMOC is an open international initiative that aims tocoordinate and disseminate the research results regardingthe support of the coordinated use of various modelinglanguages that will lead to the concept of globalization ofmodeling languages, that is, the use of multiple modelinglanguages to support coordinated development of diverseaspects of a system.
http://gemoc.org/ins
http://gemoc.org/
French National Institute for Agricultural Research
WATER RESOURCE MANAGEMENT INAGRICULTURE
Cultivator has to book for water one year in advanceAdministration has to make sure there is twice thequantity which has been booked for the whole region.Domain expert (INRA) wants to defines and assess newcultures activitiesMULTIPLE STAKEHOLDERS, MULTIPLE CONCERNS AND
SCALES
DECISIONS
Which field to use for growing what ?How would the crops grows?When would I have to add water ?Machines ? Peoples ?
COMPLEX SYSTEM, OPTIMIZATION WITH MULTIPLEFACTORS (WEATHER, COSTS, RESOURCES)
WHAT WE* DObuild domain specific tools for supporting design and
analysis of complex so�ware or embedded systems frommultiple viewpoints.
*: modeling community
HOW OUR TECHNOLOGIES ANDTECHNIQUES WOULD FARE IN SUCH
CONTEXT?
Disclaimer: this experiment is not about the science itselfbut about how to use the OSS modeling technologies.
This is a toy, but a toy complex enough that we can learnfrom it.
PROCESS1. State your resources (Machines, peoples, fields)2. Pick some climate model3. Assign surfaces to cultures4. Deduce a possible planning5. See how the biomass would grow6. See how much irrigation we would need7. do it again !
LanguageEngineers Domain Viewpoint
(Graph Editor)Grammar(Textual Editor)
Constraintsand Goals (Score function)
BehavioralSemantic (animator)
LanguageUsers Data Views and
staticchecking
Text Optimization Execution,simulation
DEMO TIME
EMF
SEVERAL ECORE MODELS
ὄ� API p u b l i c s t a t i c v o i d m a i n ( S t r i n g [ ] a r g s ) { / / . . . E x p l o i t a t i o n e x p l o i t a t i o n = l o a d F r o m F i l e ( a r g s [ 1 ] ) ; f o r ( W o r k G r o u p g r o u p : e x p l o i t a t i o n . g e t G r o u p s ( ) ) { S y s t e m . o u t . p r i n t l n ( g r o u p . g e t N a m e ( ) ) ;
f o r ( C u l t u r e c u l t u r e A s s i g n e d T o T h i s G r o u p : g r o u p . g e t C u l t u r e s ( ) ) { f o r ( E x p l o i t a t i o n A c t i v i t y a c t i v i t y : c u l t u r e A s s i g n e d T o T h i s G r o u p . g e t A c t i v i t i e s ( ) ) { S y s t e m . o u t . p r i n t l n ( a c t i v i t y . g e t N a m e ( ) ) ; S y s t e m . o u t . p r i n t l n ( a c t i v i t y . g e t F r e q u e n c y ( ) ) ; S y s t e m . o u t . p r i n t l n ( a c t i v i t y . g e t S t a r t D a t e ( ) ) ; S y s t e m . o u t . p r i n t l n ( a c t i v i t y . g e t E n d D a t e ( ) ) ; } / / . . .
ὄ� SEAMLESS DATA REUSE p u b l i c c l a s s C l i m a t e D a t a R e s o u r c e I m p l e x t e n d s R e s o u r c e I m p l {
p u b l i c C l i m a t e D a t a R e s o u r c e I m p l ( U R I u r i ) { s u p e r ( u r i ) ; }
@ O v e r r i d e p r o t e c t e d v o i d d o L o a d ( I n p u t S t r e a m i n p u t S t r e a m , M a p < ! - - ? , ? - - > o p t i o n s ) t h r o w s I O E x c e p t i o n { g e t C o n t e n t s ( ) . c l e a r ( ) ; C l i m a t e D a t a c l i m a t e = S i m u l a t i o n F a c t o r y . e I N S T A N C E . c r e a t e C l i m a t e D a t a ( ) ; S t r i n g c o n t e n t = C h a r S t r e a m s . t o S t r i n g ( n e w I n p u t S t r e a m R e a d e r ( i n p u t S t r e a m , C h a r s e t s . U S _ A S C I I ) ) ;
L i s t < s t r i n g > l i n e s = L i s t s . n e w A r r a y L i s t ( S p l i t t e r . o n ( ' \ n ' ) . o m i t E m p t y S t r i n g s ( ) . s p l i t ( c o n t e n t ) ) ;
TEXTUAL SYNTAX : XTEXT
ὄ� PREDICATES, EXPRESSIONS,CONDITIONS
GRAPHICAL SYNTAX: SIRIUS
ὄ� DYNAMIC EDITING
ὄ� TABLE EDITORS
ὄ� ANIMATION
ὄ� ANIMATION*
* with Sirius animator
BARELY SCRATCHED THE SURFACEEclipse ICE and Science WGGenerating reports using Acceleo
Comparing alternatives using EMF Compare...
ANALYSIS
PLANNING PROBLEMSIf you need to optimize goals under constraints while having
limited resources.
When will I seed the crop based on the culture constraints, theclimate and the peoples, machine, fields I have ?
NP class of problems, huge number of solutions, many beinguseless
ὄ� EASY TO MIX WITH EMF @ P l a n n i n g E n t i t y ( d i f f i c u l t y C o m p a r a t o r C l a s s = A c t i v i t y W o r k D i f f i c u l t y C o m p a r a t o r . c l a s s ) p u b l i c i n t e r f a c e A c t i v i t y W o r k e x t e n d s E O b j e c t { / / . . . @ P l a n n i n g V a r i a b l e ( v a l u e R a n g e P r o v i d e r R e f s = { " d a y s " } ) D a y g e t S c h e d u l e d O n ( ) ; / / . . . }
@ P l a n n i n g E n t i t y ( d i f f i c u l t y C o m p a r a t o r C l a s s = R e s o u r c e A l l o c a t i o n D i f f i c u l t y C o m p a r a t o r . c l a s s ) p u b l i c i n t e r f a c e R e s o u r c e A l l o c a t i o n e x t e n d s E O b j e c t { / / . . . @ P l a n n i n g V a r i a b l e ( v a l u e R a n g e P r o v i d e r R e f s = { " r e s o u r c e s " } ) R e s o u r c e g e t R e s o u r c e ( ) ; / / . . . }
ὄ� EASY TO MIX WITH EMF @ P l a n n i n g E n t i t y ( d i f f i c u l t y C o m p a r a t o r C l a s s = A c t i v i t y W o r k D i f f i c u l t y C o m p a r a t o r . c l a s s ) p u b l i c i n t e r f a c e A c t i v i t y W o r k e x t e n d s E O b j e c t { / / . . . @ P l a n n i n g V a r i a b l e ( v a l u e R a n g e P r o v i d e r R e f s = { " d a y s " } ) D a y g e t S c h e d u l e d O n ( ) ; / / . . . }
@ P l a n n i n g E n t i t y ( d i f f i c u l t y C o m p a r a t o r C l a s s = R e s o u r c e A l l o c a t i o n D i f f i c u l t y C o m p a r a t o r . c l a s s ) p u b l i c i n t e r f a c e R e s o u r c e A l l o c a t i o n e x t e n d s E O b j e c t { / / . . . @ P l a n n i n g V a r i a b l e ( v a l u e R a n g e P r o v i d e r R e f s = { " r e s o u r c e s " } ) R e s o u r c e g e t R e s o u r c e ( ) ; / / . . . }
ὄ� EASY TO MIX WITH EMF @ P l a n n i n g E n t i t y ( d i f f i c u l t y C o m p a r a t o r C l a s s = A c t i v i t y W o r k D i f f i c u l t y C o m p a r a t o r . c l a s s ) p u b l i c i n t e r f a c e A c t i v i t y W o r k e x t e n d s E O b j e c t { / / . . . @ P l a n n i n g V a r i a b l e ( v a l u e R a n g e P r o v i d e r R e f s = { " d a y s " } ) D a y g e t S c h e d u l e d O n ( ) ; / / . . . }
@ P l a n n i n g E n t i t y ( d i f f i c u l t y C o m p a r a t o r C l a s s = R e s o u r c e A l l o c a t i o n D i f f i c u l t y C o m p a r a t o r . c l a s s ) p u b l i c i n t e r f a c e R e s o u r c e A l l o c a t i o n e x t e n d s E O b j e c t { / / . . . @ P l a n n i n g V a r i a b l e ( v a l u e R a n g e P r o v i d e r R e f s = { " r e s o u r c e s " } ) R e s o u r c e g e t R e s o u r c e ( ) ; / / . . . }
SCORE FUNCTION p u b l i c S c o r e c a l c u l a t e S c o r e ( S i m u l a t i o n S o l u t i o n s o l u t i o n ) { i n t h a r d S c o r e = 0 ; i n t s o f t S c o r e = 0 ; / / . . . / * * C o n s t r a i n t : a l l t h e r e s o u r c e s w h i c h a r e r e q u i r e d s h o u l d b e a l l o c a t e d . * / f o r ( R e s o u r c e A l l o c a t i o n a l l o c : s o l u t i o n . g e t S i m u l a t i o n ( ) . g e t A l l o c a t i o n s ( ) ) { i f ( a l l o c . g e t R e s o u r c e ( ) = = n u l l ) { h a r d S c o r e + = m e d i u m P e n a l t y ( 1 ) ; a d d F e e d b a c k ( a l l o c . g e t W o r k ( ) , ( c r e a t e F e e d b a c k ( F e e d b a c k L e v e l . E R R O R , " A r e q u i r e d r e s o u r c e o f k i n d " + a l l o c . g e t K i n d ( ) . g e t N a m e ( ) + " i s m i s s i n g . " ) ) ) ; } }
WHAT HAVE WE LEARNED SO FAR?
“Do not compromise on your domain model.”
EFFORT TO BUILD THIS TOOLING ?3 hours meeting + mail exchanges with INRA experts10 days of Eclipse Modeling expertsProof of concept code is on github
TECHNOLOGIES MEANT TO DO THIS
ARE RELEVANT TO SAVE THIS
TEAMING UP TECHNOLOGIESINSTEAD OF STACKING IT
Eclipse: platform and User interface integration
EMF: data, resources, deeplinkink, reflective manipulation
OPPORTUNITIESTime modeling and managementProbabilistic models
Graph/Charts representation in SiriusAlternatives comparisons...
...
FURTHER MATERIALS[slides] (Benoit Combemale and Jean-Michel Bruel), CPS Seminar, 2016[slides] (Benoit Combemale), INRA Seminar, 2015[paper] (Jean-Michel Bruel, Benoit Combemale, IleanaOber, Hélène Raynal), In International Conference on Computational Science (ICCS), 2015.[video, french]
(Benoit Combemale, DEVLOG-IDM2014, Oct. 2014)[video, french] (Benoit Combemale, DEVLOG-IDM2013, Oct. 2013)
Modeling for Smart CPSModeling for SustainabilityMDE in Practice for Computational Science
L'IDM par la pratique dans le contexte des modèles agronomiques autour d'uneétude de cas
Composition and concurrent execution of heterogeneous domain-specific models