Successfully reported this slideshow.
We use your LinkedIn profile and activity data to personalize ads and to show you more relevant ads. You can change your ad preferences anytime.

The Behavioral Coordination Operator Language (BCOoL)

383 views

Published on

Final workshop of the ANR project GEMOC. March 17th, 2016. Talk given by Julien DeAntoni

Published in: Software
  • To get professional research papers you must go for experts like ⇒ www.WritePaper.info ⇐
       Reply 
    Are you sure you want to  Yes  No
    Your message goes here

The Behavioral Coordination Operator Language (BCOoL)

  1. 1. The Behavioral Coordination Operator Language Gemoc Final Workshop, March 17th , 2016 Julien Deantoni University of Nice, I3S CNRS, INRIA AOSTE Julien.deantoni@polytech.unice.fr
  2. 2. 2 Conforms To xDSML 1xDSML 1 Discrete Time Behavior ADAPTIVE CRUISE CONTROL SYSTEM
  3. 3. 3 Conforms To xDSML 1xDSML 1 Conforms To xDSML 2xDSML 2 Conforms To xDSML 3xDSML 3 Heterogeneous models and languages Emerging System Behavior difficult to apprehend Discrete Time Behavior BATTERY CONTROL ADAPTIVE CRUISE CONTROL SYSTEM GPS TRACKING
  4. 4. 4 Conforms To xDSML 1xDSML 1 Heterogeneous models and languages Emerging System Behavior difficult to apprehend Discrete Time Behavior BATTERY CONTROL ADAPTIVE CRUISE CONTROL SYSTEM GPS TRACKING Coordination of Behavioral Models Know-how System Designer Conforms To xDSML 2xDSML 2 Conforms To xDSML 3xDSML 3
  5. 5. 5 Outline ● State of the Art: – Coordination Languages and ADLs – Coordination Frameworks ● Our proposal: – The Behavioral Coordination Operator Language ● Conclusion
  6. 6. 6 Running Example: the Coffee Machine Timed Finite State Machine (TFSM) Conforms To when coin / !selectCoffee; when releaseCoffee / doLock Conforms To Activity State-based language Action-based language
  7. 7. 7 Running Example: the Coffee Machine Timed Finite State Machine (TFSM) Conforms To when coin / !selectCoffee; when releaseCoffee / doLock Conforms To Activity ? State-based language Action-based language
  8. 8. 8 Running Example: the Coffee Machine Timed Finite State Machine (TFSM) Conforms To when coin / !selectCoffee; when releaseCoffee / doLock Conforms To Activity ? State-based language Action-based language e.g.,When the event selectCoffee occurs, the Action selectCoffee is started
  9. 9. 9 Coordination Languages & ADLs defines Know-how System Designer Model of Coordination TFSM when coin / !selectCoffee; when releaseCoffee / doLock Conforms To Conforms To Activity Coordination Languages proposed to model the coordination by using a dedicated Language, e.g., Linda or Esper. ADLs proposed component based languages to coordinate, possibly heterogeneous behaviors, e.g., Wright, Rapide or MetaH.
  10. 10. 10 Coordination Languages & ADLs defines Know-how System Designer Model of Coordination TFSM when coin / !selectCoffee; when releaseCoffee / doLock Model Behavioral Interface Model Behavioral Interface Model Behavioral Interface Model Behavioral Interface Conforms To Conforms To Activity Coordination Languages proposed to model the coordination by using a dedicated Language, e.g., Linda or Esper. ADLs proposed component based languages to coordinate, possibly heterogeneous behaviors, e.g., Wright, Rapide or MetaH.
  11. 11. 11 Coordination Languages & ADLs Know-how System Designer Model of Coordination TFSM when coin / !selectCoffee; when releaseCoffee / doLock Model Behavioral Interface Model Behavioral Interface Model Behavioral Interface Model Behavioral Interface Glue Conforms To Conforms To Activity Coordination Languages proposed to model the coordination by using a dedicated Language, e.g., Linda or Esper. ADLs proposed component based languages to coordinate, possibly heterogeneous behaviors, e.g., Wright, Rapide or MetaH. SelectCoffee: Event Rapide:CoffeeCoin.selectCoffee => CoffeeAlgorithm.selectCoffee SelectCoffee: Action defines
  12. 12. 12 Coordination Languages & ADLs Know-how System Designer Model of Coordination TFSM when coin / !selectCoffee; when releaseCoffee / doLock Model Behavioral Interface Model Behavioral Interface Model Behavioral Interface Model Behavioral Interface Glue Conforms To Conforms To Activity Coordination Languages proposed to model the coordination by using a dedicated Language, e.g., Linda or Esper. ADLs proposed component based languages to coordinate, possibly heterogeneous behaviors, e.g., Wright or MetaH. SelectCoffee: Event Rapide:CoffeeCoin.selectCoffee => CoffeeAlgorithm.selectCoffee SelectCoffee: Action defines The coordination is modeled explicitly The coordination is defined rule by rule
  13. 13. 13 Coordination Patterns defines Know-how System Designer Model of Coordination TFSM when coin / !selectCoffee; when releaseCoffee / doLock Model Behavioral Interface Model Behavioral Interface Model Behavioral Interface Model Behavioral Interface What?, When?,How? Conforms To Conforms To Activity
  14. 14. 14 Coordination Frameworks Know-how System Designer Model of Coordination Coordination frameworks identified a systematic way to coordinate models, i.e., a coordination pattern. Coordination Frameworks e.g. Ptolemy encodes TFSM when coin / !selectCoffee; when releaseCoffee / doLock Conforms To Conforms To Activity Model Behavioral Interface Model Behavioral Interface Model Behavioral Interface Model Behavioral Interface
  15. 15. 15 Coordination Frameworks Know-how System Designer Model of Coordination Coordination frameworks identified a systematic way to coordinate models, i.e., a coordination pattern. Coordination Frameworks e.g. Ptolemy encodes TFSM when coin / !selectCoffee; when releaseCoffee / doLock Conforms To Conforms To Activity
  16. 16. 16 Coordination Frameworks Know-how System Designer Model of Coordination Coordination frameworks identified a systematic way to coordinate models, i.e., a coordination pattern. Coordination Frameworks e.g. Ptolemy encodes TFSM when coin / !selectCoffee; when releaseCoffee / doLock Conforms To Conforms To Activity
  17. 17. 17 Coordination Frameworks Know-how System Designer Model of Coordination Coordination frameworks identified a systematic way to coordinate models, i.e., a coordination pattern. Coordination Frameworks e.g. Ptolemy encodes TFSM when coin / !selectCoffee; when releaseCoffee / doLock Conforms To Conforms To Activity
  18. 18. 18 Coordination Frameworks Know-how System Designer Model of Coordination Coordination frameworks identified a systematic way to coordinate models, i.e., a coordination pattern. Coordination Frameworks e.g. Ptolemy encodes TFSM when coin / !selectCoffee; when releaseCoffee / doLock Conforms To Conforms To Activity
  19. 19. 19 Conforms ToConforms To encodes Coordination Frameworks Know-how System Designer Coordination Frameworks e.g. Ptolemy TFSM when coin / !selectCoffee; when releaseCoffee / doLock Syntax Behavioral Semantics Director: TFSM Syntax Behavioral Semantics Director: Activity Language Behavioral Interface Language Behavioral Interface Language Behavioral Interface Language Behavioral Interface Activity Model of Coordination Model Behavioral Interface Model Behavioral Interface Model Behavioral Interface Model Behavioral Interface generates
  20. 20. 20 Conforms ToConforms To encodes Coordination Frameworks Know-how System Designer Coordination Frameworks e.g. Ptolemy TFSM when coin / !selectCoffee; when releaseCoffee / doLock Syntax Behavioral Semantics Director: TFSM Syntax Behavioral Semantics Director: Activity Language Behavioral Interface Language Behavioral Interface Language Behavioral Interface Language Behavioral Interface Activity Model of Coordination Model Behavioral Interface Model Behavioral Interface Model Behavioral Interface Model Behavioral Interface generates Coordination frameworks identified a systematic way to coordinate models, i.e., a coordination pattern. What?, When? and How? the methods from the semantics Interfaces are invoked (Java)
  21. 21. 21 Conforms ToConforms To encodes Coordination Frameworks Know-how System Designer Coordination Frameworks e.g. Ptolemy TFSM when coin / !selectCoffee; when releaseCoffee / doLock Syntax Behavioral Semantics Director: TFSM Syntax Behavioral Semantics Director: Activity Language Behavioral Interface Language Behavioral Interface Language Behavioral Interface Language Behavioral Interface Activity Model of Coordination Model Behavioral Interface Model Behavioral Interface Model Behavioral Interface Model Behavioral Interface generates Coordination frameworks identified a systematic way to coordinate models, i.e., a coordination pattern. The coordination is generated automatically The coordination pattern is hidden/encoded in the tool in a GPL
  22. 22. 22 Take-Away Lessons ● Coordination Languages & ADLs: ● Coordination Frameworks: The coordination is modeled explicitly The coordination is defined rule by rule The coordination is generated automatically based on a coordination pattern The coordination pattern is hidden/encoded in the tool in a GPL
  23. 23. 23 Outline ● State of the Art – Coordination Languages – Coordination Frameworks ● Our proposal: – The Behavioral Coordination Operator Language ● Conclusion
  24. 24. 24 Model of Coordination Model Behavioral Interface Model Behavioral Interface Model Behavioral Interface Model Behavioral Interface Know-how System Designer BCOoLBCOoL BCOoL Specification BCOoL Specification <<Conforms To>> TFSM Syntax Behavioral Semantics Language Behavioral Interface Language Behavioral Interface Syntax Behavioral Semantics Language Behavioral Interface Language Behavioral Interface Activity defines System Designer when coin / !selectCoffee; when releaseCoffee / doLock generates
  25. 25. 25 Model of Coordination Model Behavioral Interface Model Behavioral Interface Know-how System Designer BCOoLBCOoL BCOoL Specification BCOoL Specification <<Conforms To>> defines System Designer when coin / !selectCoffee; when releaseCoffee / doLock generates Model Behavioral Interface Model Behavioral Interface
  26. 26. 26 Model Behavioral Interface Model Behavioral Interface Model of Coordination BCOoLBCOoL BCOoL Specification BCOoL Specification <<Conforms To>> generates Model Behavioral Interface Model Behavioral Interface when coin / !selectCoffee; when releaseCoffee / doLock
  27. 27. 27 Model Behavioral Interface Model Behavioral Interface Model of Coordination BCOoLBCOoL BCOoL Specification BCOoL Specification <<Conforms To>> generates Model Behavioral Interface Model Behavioral Interface when coin / !selectCoffee; when releaseCoffee / doLock State::entering State::leaving FSMEvent::occurs
  28. 28. 28 Model Behavioral Interface Model Behavioral Interface Model of Coordination BCOoLBCOoL BCOoL Specification BCOoL Specification <<Conforms To>> generates Model Behavioral Interface Model Behavioral Interface when coin / !selectCoffee; when releaseCoffee / doLock State::entering State::leaving FSMEvent::occurs Alternates
  29. 29. 29 Model Behavioral Interface Model Behavioral Interface Model of Coordination BCOoLBCOoL BCOoL Specification BCOoL Specification <<Conforms To>> generates Model Behavioral Interface Model Behavioral Interface when coin / !selectCoffee; when releaseCoffee / doLock State::entering State::leaving FSMEvent::occurs Alternates releaseCoffee:occurs Locked:entering Locked:leaving selectCoffee:occurs Locked:entering Locked:leaving
  30. 30. 30 Model Behavioral Interface Model Behavioral Interface Model of Coordination BCOoLBCOoL BCOoL Specification BCOoL Specification <<Conforms To>> generates Model Behavioral Interface Model Behavioral Interface when coin / !selectCoffee; when releaseCoffee / doLock State::entering State::leaving FSMEvent::occurs Alternates a1:Alternates a2:Alternates releaseCoffee:occurs Locked:entering Locked:leaving selectCoffee:occurs Locked:entering Locked:leaving
  31. 31. 31 Model Behavioral Interface Model Behavioral Interface Model of Coordination BCOoLBCOoL BCOoL Specification BCOoL Specification <<Conforms To>> generates Model Behavioral Interface Model Behavioral Interface Action::startAction Action::finishAction when coin / !selectCoffee; when releaseCoffee / doLock State::entering State::leaving FSMEvent::occurs Alternates a1:Alternates a2:Alternates releaseCoffee:occurs Locked:entering Locked:leaving selectCoffee:occurs Locked:entering Locked:leaving
  32. 32. 32 Model of Coordination Know-how System Designer BCOoLBCOoL BCOoL Specification BCOoL Specification <<Conforms To>> defines System Designer when coin / !selectCoffee; when releaseCoffee / doLock generates
  33. 33. 33 Model of Coordination Know-how System Designer BCOoLBCOoL BCOoL Specification BCOoL Specification <<Conforms To>> defines System Designer when coin / !selectCoffee; when releaseCoffee / doLock generates
  34. 34. 34 BCOoLBCOoL BCOoL Specification BCOoL Specification TFSM Syntax Behavioral Semantics Action::startActionFSMEvent::occurs BCOoL Metamodel SyncFSMEventsAndActions.bcool <<Conforms To>>
  35. 35. 35 BCOoL Metamodel SyncFSMEventsAndActions.bcool ImportInterface tfsm; ImportInterface Activity; BCOoLBCOoL BCOoL Specification BCOoL Specification TFSM Syntax Behavioral Semantics Action::startActionFSMEvent::occurs <<Conforms To>>
  36. 36. 36 BCOoL Metamodel SyncFSMEventsAndActions.bcool ImportInterface tfsm; ImportInterface Activity; Operator RendezVousWhenSameName  (FSMEvent::occurs,Action::startAction) End Operator; BCOoLBCOoL BCOoL Specification BCOoL Specification TFSM Syntax Behavioral Semantics Action::startActionFSMEvent::occurs <<Conforms To>>
  37. 37. 37 BCOoL Metamodel SyncFSMEventsAndActions.bcool ImportInterface tfsm; ImportInterface Activity; Operator RendezVousWhenSameName  (FSMEvent::occurs,Action::startAction)        When(occurs.name = startAction.name); End Operator; OCL Boolean Expression between model elements BCOoLBCOoL BCOoL Specification BCOoL Specification TFSM Syntax Behavioral Semantics Action::startActionFSMEvent::occurs <<Conforms To>>
  38. 38. 38 BCOoL Metamodel SyncFSMEventsAndActions.bcool ImportInterface tfsm; ImportInterface Activity; Operator RendezVousWhenSameName  (FSMEvent::occurs,Action::startAction)       When(occurs.name = startAction.name);   CoordinationRule:  RendezVous (occurs, startAction) End Operator; Causal and Temporal relations between Events e.g., Rendezvous, Precedes, etc. EventType EventTypes BCOoLBCOoL BCOoL Specification BCOoL Specification TFSM Syntax Behavioral Semantics Action::startActionFSMEvent::occurs <<Conforms To>>
  39. 39. 39 BCOoL Metamodel SyncFSMEventsAndActions.bcool EventType EventTypes ImportInterface tfsm; ImportInterface Activity; Operator RendezVousWhenSameName  (FSMEvent::occurs,Action::startAction)       When(occurs.name = startAction.name);   CoordinationRule:  RendezVous (occurs, startAction) End Operator; Defined in MoCCML (Model of Concurrency and Communication Modeling Language) BCOoLBCOoL BCOoL Specification BCOoL Specification TFSM Syntax Behavioral Semantics Action::startActionFSMEvent::occurs <<Conforms To>>
  40. 40. 40 BCOoL Specification BCOoL Specification BCOoL Specification BCOoL SpecificationImportInterface tfsm; ImportInterface Activity; Operator FSMEventsandActions  (FSMEvent::occurs, Action::startAction)   When(occurs.name = startAction.name); CoordinationRule:  Rendezvous (occurs, startAction) End Operator; SyncFSMEventsAndActions.bcool when coin / !selectCoffee; when releaseCoffee / doLock selectCoffee:startAction makeCoffee:startAction releaseCoffee:startAction releaseCoffee:finishAction makeCoffee:finishAction Conforms ToConforms To releaseCoffee:occurs Locked:entering Locked:leaving selectCoffee:occurs Locked:entering Locked:leaving BCOoLBCOoL TFSM Syntax Behavioral Semantics Action::startActionFSMEvent::occurs <<Conforms To>>
  41. 41. 41 when coin / !selectCoffee; when releaseCoffee / doLock selectCoffee:occurs releaseCoffee:occurs selectCoffee:startAction makeCoffee:startAction releaseCoffee:startAction Conforms ToConforms To BCOoL Specification BCOoL Specification BCOoL Specification BCOoL Specification SyncFSMEventsAndActions.bcool BCOoLBCOoL TFSM Syntax Behavioral Semantics Action::startActionFSMEvent::occurs <<Conforms To>> ImportInterface tfsm; ImportInterface Activity; Operator FSMEventsandActions  (FSMEvent::occurs, Action::startAction)   When(occurs.name = startAction.name); CoordinationRule:  Rendezvous (occurs, startAction) End Operator;
  42. 42. 42 when coin / !selectCoffee; when releaseCoffee / doLock selectCoffee:occurs releaseCoffee:occurs selectCoffee:startAction makeCoffee:startAction releaseCoffee:startAction Conforms ToConforms To Conforms To BCOoL Specification BCOoL Specification BCOoL Specification BCOoL Specification SyncFSMEventsAndActions.bcool BCOoLBCOoL TFSM Syntax Behavioral Semantics Action::startActionFSMEvent::occurs <<Conforms To>> ImportInterface tfsm; ImportInterface Activity; Operator FSMEventsandActions  (FSMEvent::occurs, Action::startAction)   When(occurs.name = startAction.name); CoordinationRule:  Rendezvous (occurs, startAction) End Operator;
  43. 43. 43 when coin / !selectCoffee; when releaseCoffee / doLock selectCoffee:occurs releaseCoffee:occurs selectCoffee:startAction releaseCoffee:startAction Conforms To Conforms To BCOoL Specification BCOoL Specification BCOoL Specification BCOoL Specification SyncFSMEventsAndActions.bcool BCOoLBCOoL TFSM Syntax Behavioral Semantics Action::startActionFSMEvent::occurs <<Conforms To>> ImportInterface tfsm; ImportInterface Activity; Operator FSMEventsandActions  (FSMEvent::occurs, Action::startAction)   When(occurs.name = startAction.name); CoordinationRule:  Rendezvous (occurs, startAction) End Operator;
  44. 44. 44 when coin / !selectCoffee; when releaseCoffee / doLock selectCoffee:occurs releaseCoffee:occurs selectCoffee:startAction releaseCoffee:startAction Conforms To Rendezvous Rendezvous Conforms To BCOoL Specification BCOoL Specification BCOoL Specification BCOoL Specification SyncFSMEventsAndActions.bcool BCOoLBCOoL TFSM Syntax Behavioral Semantics Action::startActionFSMEvent::occurs <<Conforms To>> ImportInterface tfsm; ImportInterface Activity; Operator FSMEventsandActions  (FSMEvent::occurs, Action::startAction)   When(occurs.name = startAction.name); CoordinationRule:  Rendezvous (occurs, startAction) End Operator;
  45. 45. 45 when coin / !selectCoffee; when releaseCoffee / doLock selectCoffee:occurs releaseCoffee:occurs selectCoffee:startAction releaseCoffee:startAction Conforms To Rendezvous Rendezvous Conforms To BCOoL Specification BCOoL Specification BCOoL Specification BCOoL Specification SyncFSMEventsAndActions.bcool BCOoLBCOoL TFSM Syntax Behavioral Semantics Action::startActionFSMEvent::occurs <<Conforms To>> ImportInterface tfsm; ImportInterface Activity; Operator FSMEventsandActions  (FSMEvent::occurs, Action::startAction)   When(occurs.name = startAction.name); CoordinationRule:  Rendezvous (occurs, startAction) End Operator; Heterogeneous Execution In the GEMOC Studio
  46. 46. Implemented into the GEMOC studio Editing facilities by using Xtext Editing facilities by using Xtext
  47. 47. Implemented into the GEMOC studio Coordinated Heterogeneous Execution Coordinated Heterogeneous Execution Schedule space explorationSchedule space exploration
  48. 48. Conclusion ● BCOoL is a dedicated metalanguage to capture coordination patterns. ● It automates the coordination of models by relying on a formal language. ● It is associated to the GEMOC language/modeling workbench to execute and analyze the coordinated system. ➔ Future work: – Using the explicit coordination to generate master on co-simulation bus – Understanding the interconnection with physical model (continuous time) 1 http://timesquare.inria.fr/BCOoL
  49. 49. Thanks http://timesquare.inria.fr/BCOoL http://gemoc.org/ins

×