a model driven approach for incorpora4ng reac4ve rules in
play

A Model-Driven Approach for Incorpora4ng Reac4ve Rules in - PowerPoint PPT Presentation

A Model-Driven Approach for Incorpora4ng Reac4ve Rules in Declara4ve Interac4ve TV Applica4ons Patrcia Dockhorn Costa, Joo Paulo A. Almeida, Igor Magri


  1. A ¡Model-­‑Driven ¡Approach ¡for ¡ Incorpora4ng ¡Reac4ve ¡Rules ¡ ¡ in ¡Declara4ve ¡Interac4ve ¡TV ¡ Applica4ons ¡ Patrícia ¡Dockhorn ¡Costa, ¡João ¡Paulo ¡A. ¡Almeida, ¡Igor ¡Magri ¡ Vale, ¡Izon ¡Thomaz ¡Mielke ¡ CS ¡Department, ¡Federal ¡University ¡of ¡Espírito ¡Santo, ¡Brazil ¡ ¡ ¡ pdcosta@inf.ufes.br, ¡jpalmeida@ieee.org, ¡ igormagrivale@gmail.com, ¡izontm@gmail.com ¡

  2. Context-­‑Aware ¡Applica1on ¡ Context ¡ Applica1on ¡ Context-­‑aware ¡applica1on ¡is ¡a ¡ distributed ¡applica1on ¡ whose ¡behaviour ¡is ¡ affected ¡by ¡ its ¡users’ ¡ context . ¡

  3. Some ¡Applica1on ¡Areas ¡ § Health ¡Care; ¡ § Smart ¡Home; ¡ § Business ¡Processes; ¡ § Social ¡Network; ¡ § Network ¡Security; ¡ § Interac4ve ¡Digital ¡TV. ¡

  4. Basic ¡Requirements ¡ Capture ¡ Process ¡ React ¡

  5. Capture ¡Context ¡and ¡Model ¡ Behaviour ¡

  6. Various ¡Sensors ¡in ¡a ¡ Distributed ¡environment ¡

  7. Suppor1ng ¡Context-­‑Aware ¡ Applica1on ¡Development ¡

  8. Suppor1ng ¡Context-­‑Aware ¡ Applica1on ¡Development ¡ (cont.) ¡ § Quite ¡some ¡work ¡on ¡that: ¡ ¡ § context-­‑aware ¡paMerns; ¡ § services ¡plaNorm ¡(context ¡sources, ¡managers, ¡ controllers, ¡ac1on ¡resolvers, ¡etc.); ¡ § context ¡and ¡situa1on ¡models; ¡ § situa1on ¡reasoning ¡and ¡(distributed) ¡detec1on; ¡ § ECA ¡language ¡for ¡modelling ¡reac1ve ¡behaviours, ¡ etc. ¡

  9. The ¡SBTVD ¡ § BeMer ¡quality ¡of ¡images/videos; ¡ § Provides ¡interac1vity; ¡ § Includes ¡standards ¡for ¡data ¡modula1on, ¡ transmission, ¡data ¡encoding, ¡and ¡a ¡ middleware ¡(coined ¡Ginga) . ¡

  10. Middleware ¡Ginga ¡ (SOARES e CASTRO, 2008) ¡

  11. Nested ¡Context ¡Language ¡ § Hypermedia ¡authoring ¡language ¡used ¡to ¡ describe ¡mul1media ¡applica1ons ¡with ¡space-­‑ 1me ¡synchroniza1on ¡between ¡media ¡objects ¡ (e.g., ¡video, ¡audio, ¡images, ¡etc.); ¡ ¡ § As ¡such, ¡it ¡does ¡not ¡have ¡built-­‑in ¡concepts ¡for ¡ context-­‑handling ¡and ¡reac1vity; ¡ § NCLua ¡ § Scrip1ng ¡language; ¡ § Allows ¡execu1on ¡of ¡impera1ve ¡code ¡in ¡the ¡ declara1ve ¡environment. ¡

  12. ECA-­‑DL ¡TVD ¡ § Domain-­‑specific ¡language; ¡ § Rule-­‑based; ¡ § Describes ¡the ¡reac1ve ¡behaviour ¡of ¡context-­‑ aware ¡applica1ons ¡in ¡the ¡Interac1ve ¡TV ¡ Domain; ¡ ¡ § In ¡line ¡with ¡the ¡ event-­‑condi4on-­‑ac4on ¡paMern; ¡ § Rules ¡are ¡defined ¡based ¡on ¡both ¡context ¡and ¡ situa1on ¡models ¡(vocabulary ¡for ¡rule ¡ defini1on). ¡

  13. MDA ¡Approach: ¡Overview ¡ Context-­‑Aware ¡Applica1on ¡Models ¡ Context-­‑Aware ¡Applica1on ¡ (implementa1on) ¡ Context ¡ Context ¡and ¡ T1 ¡ Controller ¡ Sources ¡ Situa4on ¡ ¡ ECA-­‑DL ¡TVD ¡ (NCL ¡ Models ¡(UML ¡ Rules ¡ Document) ¡ developer ¡ Ac4on ¡ Profile ¡ Resolvers ¡ Context ¡Manager ¡ Ginga ¡PlaNorm ¡ PlaNorm ¡

  14. Transforma1on ¡Overview ¡ transforma1on ¡ language ¡(java) ¡ instance ¡of ¡ ECA-­‑DL ¡TVD ¡ transforma1on ¡ NCL ¡ defined ¡in ¡ ¡ defined ¡in ¡ ¡ metamodel ¡ terms ¡of ¡ specifica1on ¡ terms ¡of ¡ metamodel ¡ instance ¡of ¡ instance ¡of ¡ context ¡and ¡ transforma1on ¡ NCL ¡document ¡ generated ¡by ¡ situa1on ¡models ¡ ac1vi1es ¡ (XML-­‑like) ¡and ¡ NCL ¡model ¡ and ¡ECA-­‑DL ¡rules ¡ (eclipse ¡tools) ¡ NCLua ¡scripts ¡

  15. Case ¡ Study ¡ Context-aware bank application that hides private information autonomously John uses a web- based bank application through his TV

  16. Context-­‑Aware ¡Applica1on ¡ in ¡NCL ¡

  17. Case ¡Study: ¡Context ¡Model ¡

  18. Case ¡Study: ¡Situa1on ¡Model ¡ § Situa1on ¡“One ¡person ¡in ¡the ¡room”: ¡

  19. Case ¡Study: ¡Situa1on ¡Model ¡ § Situa1on ¡“Accessing”: ¡

  20. ECA-­‑DL ¡TVD ¡rules ¡ Upon ¡EnterTrue ¡Situa1onAccessing ¡(person1) ¡ When ¡Situa1onOnePersonInRoom ¡(room1) ¡ Do ¡startWithBalance(account1) ¡ ¡ ¡ Upon ¡EnterTrue ¡Situa1onAccessing ¡(person1) ¡ When ¡Situa1onMoreThanOnePersonInRoom ¡(room1) ¡ Do ¡startWithoutBalance(account1) ¡ ¡ ¡ Upon ¡EnterTrue ¡Situa1onOnePersonInRoom ¡(room1) ¡ Do ¡showBalance(account1) ¡ ¡ ¡ Upon ¡EnterTrue ¡Situa1onMoreThanOnePersonInRoom ¡(room1) ¡ Do ¡hideBalance(account1) ¡ ¡ ¡ Upon ¡EnterTrue ¡Situa1onNoPersonInRoom ¡(room1) ¡ Do ¡logout(account1)

  21. Ecore ¡Model ¡

  22. En11es, ¡Context ¡and ¡ situa1ons ¡in ¡NCL ¡ § En11es: ¡mapped ¡to ¡Media ¡elements; ¡ § Intrinsic ¡context ¡types: ¡mapped ¡to ¡Property ¡ Anchor ¡elements; ¡ § Rela1onal ¡Context ¡types ¡and ¡Situa1on ¡types: ¡ mapped ¡to ¡Media ¡elements, ¡whose ¡proper1es ¡ are ¡the ¡en11es ¡and ¡contexts ¡involved ¡in ¡that ¡ situa1on. ¡

  23. Generated ¡NCL ¡Document ¡ § En11es ¡and ¡Intrinsic ¡Context ¡types: ¡ … <media id="person1" src="scripts/person1.lua" descriptor="person1Desc"> <property name="name" value=" " /> </media> … § Rela1onal ¡Context ¡types: ¡ … <media id="Presence_person1_room1" src="scripts/Presence_person1_room1.lua" descriptor="Presence_person1_room1_Desc"> <property name="person" value="person1" /> <property name="place" value="room1" /> <property name="value" value=" " /> <property name="exists" value="false" /> </media> …

  24. Rules ¡in ¡NCL: ¡connectors ¡ and ¡links ¡ § Used ¡to ¡implement ¡synchronism ¡between ¡NCL ¡ elements ¡ ¡ § E.g.: ¡at ¡the ¡end ¡of ¡a ¡video, ¡starts ¡another ¡video ¡ § Allows ¡(with ¡some ¡adapta1on) ¡ implementa1on ¡of ¡context-­‑aware ¡reac1on ¡ rules ¡(ECA-­‑DL ¡TVD ¡rules) ¡

  25. Generated ¡Context ¡ Situa1ons ¡ Upon onEndAttribution (room1.has.value) When room1.has.value <> 1 Do EnterFalse SituationOnePersonInRoom (room1) … <causalConnector id="SituationMoreThanOnePersonInRoom_room1_EnterFalse"> <compoundCondition operator="and"> <simpleCondition role="upon10" transition="stops" eventType="attribution" /> <assessmentStatement comparator="lte"> <attributeAssessment role="when8" attributeType="nodeProperty" eventType="attribution" /> <valueAssessment value="1"/> </assessmentStatement> </compoundCondition> <simpleAction role="action11" actionType="set" eventType="attribution" value="true" / > </causalConnector> … <link xconnector="SituationMoreThanOnePersonInRoom_room1_EnterFalse"> <bind component="Presence_person1_room1" interface="value" role="upon10" /> <bind component="Presence_person1_room1" interface="value" role="when8" /> <bind component="SituationMoreThanOnePersonInRoom_room1" interface="end" role="action11" /> </link> …

  26. Generated ¡ECA-­‑DL ¡TVD ¡ Upon EnterTrue SituationOnePersonInRoom (room1) Do showBalance(account1) … <causalConnector id="eca_dl_tvd_rule3"> <compoundCondition operator="and"> <simpleCondition role="upon11" /> <assessmentStatement comparator="eq"> <attributeAssessment role="upon12" attributeType="nodeProperty" eventType="attribution" /> <valueAssessment value="true"/> </assessmentStatement> </compoundCondition> <simpleAction role="action14" actionType="set" eventType="attribution" value="true" /> </causalConnector> … <link xconnector="eca_dl_tvd_rule3"> <bind component="SituationOnePersonInRoom_room1" interface="start" role="upon11" /> <bind component="SituationOnePersonInRoom_room1" interface="start" role="upon12" /> <bind component="account1" interface="showBalance" role="action14"/> </link> …

Recommend


More recommend