Visual Dataflow Coordination2010

download Visual Dataflow Coordination2010

of 61

  • date post

    26-Jun-2015
  • Category

    Documents

  • view

    220
  • download

    2

Embed Size (px)

Transcript of Visual Dataflow Coordination2010

  • 1. A Hybrid Visual Dataow Language For Coordination in Mobile Ad Hoc Networks Andoni Lombide Carreton and Theo DHondt Department of Computer Science Vrije Universiteit Brussel12th International Conference on Coordination Models and Languages June 7-10 2010 Amsterdam, the Netherlands 1Wednesday 9 June 2010

2. Mobile Reactive Applications2Wednesday 9 June 2010 3. Mobile Reactive ApplicationsMobile devices 2Wednesday 9 June 2010 4. Mobile Reactive Applications Mobile devices2Wednesday 9 June 2010 5. Mobile Reactive ApplicationsMobile devicesIntermittent connectivity2Wednesday 9 June 2010 6. Mobile Reactive ApplicationsMobile devices Spontaneous interactions Intermittent connectivity2Wednesday 9 June 2010 7. Mobile Reactive Applications Scarce infrastructureMobile devices Spontaneous interactionsIntermittent connectivity 2Wednesday 9 June 2010 8. Mobile Reactive Applications Scarce infrastructureMobile devicesRepresentation of physical objects Spontaneous interactionsIntermittent connectivity 2Wednesday 9 June 2010 9. Mobile Reactive Applications Representation of physical objectsMobile devicesSpontaneous interactions DistributedEvent-driven Architecture Scarce infrastructureIntermittent connectivity3Wednesday 9 June 2010 10. Mobile Reactive Applications Representation of physical objectsMobile devicesSpontaneous interactionsoveryo c DiscAd H DistributedEvent-driven Architecture Scarce infrastructureIntermittent connectivity3Wednesday 9 June 2010 11. Mobile Reactive Applications Representation of physical objectsMobile devicesSpontaneous interactionsoveryo c DiscAd H DistributedEvent-driven Architecture Scarce infrastructureecent ralized DIntermittent connectivity3Wednesday 9 June 2010 12. Mobile Reactive Applications Representation of physical objectsMobile devicesSpontaneous interactionsoveryo c DiscAd H DistributedEvent-driven ArchitectureRes ilienScarce infrastructure t ecent ralized DIntermittent connectivity3Wednesday 9 June 2010 13. Mobile Reactive Applications Representation of physical objectsMobile devicesSpontaneous interactions Event streams overyo c DiscAd H DistributedEvent-driven ArchitectureRes ilienScarce infrastructure t ecent ralized DIntermittent connectivity3Wednesday 9 June 2010 14. Mobile Reactive Applications Representation of physical objectsMobile devices Event streams Spontaneous interactionsas tingadcoveryBroo c DiscAd H DistributedEvent-driven ArchitectureRes ilienScarce infrastructure t ecent ralized DIntermittent connectivity3Wednesday 9 June 2010 15. AmbientTalk DistributedEvent-drivenArchitecture whenever: Product discovered: { |product|}4 Wednesday 9 June 2010 16. AmbientTalk DistributedEvent-drivenArchitecture whenever: Product discovered: { |product|def future := productrfidTags.map: { |t| t.getProduct() }; filterOutPresentProducts(recommendToUser);1*products recommendToUser 1 1UserDatabase -> DB.getRecommendationsWithProducts(products); 7 Wednesday 9 June 2010 29. 11productsInBagrecommendations 1 ListeningStation ->Shelf ->rfidTags.map: { |t| t.getProduct() }; filterOutPresentProducts(recommendToUser);1*products recommendToUser 111UserDatabase -> DB.getRecommendationsWithProducts(products); 7 Wednesday 9 June 2010 30. 111productsInBagnearbyRecommendationsrecommendations 11 ListeningStation ->Shelf ->rfidTags.map: { |t| t.getProduct() }; filterOutPresentProducts(recommendToUser);1*products recommendToUser 111UserDatabase -> DB.getRecommendationsWithProducts(products); 7 Wednesday 9 June 2010 31. Customer -> GUI.showProductsInBag(productsInBag); GUI.showRecommendations(recommendations); GUI.showRecommendationsInShop(nearbyRecommendations);111 productsInBagnearbyRecommendations recommendations11 ListeningStation -> Shelf ->rfidTags.map: { |t| t.getProduct() };filterOutPresentProducts(recommendToUser);1 * products recommendToUser111 UserDatabase ->DB.getRecommendationsWithProducts(products);7 Wednesday 9 June 2010 32. A Visual Dataow Language For Coordination in Mobile Ad Hoc Networks 1de 1 pendy3 ene nccynd 1 pe de 1 1 Role -> filterOutPresentProducts() filterOutPresentProducts(recommendToUser);*[ record1,recommendToUser record2,>> system.println(recommendToUser) record3, [ record1, record2 ] record4 ] 10Wednesday 9 June 2010 35. Propagating and Reacting to Eventsms streaEv entResilien t[ record2, record4 ]nearbyRecommendations1Shelf -> filterOutPresentProducts() filterOutPresentProducts(recommendToUser);*[ record1,recommendToUser record2,>> system.println(recommendToUser) record3, [ record1, record2 ] record4 ][ record1, record2, record3 ] 10Wednesday 9 June 2010 36. Propagating and Reacting to Eventsms streaEv entResilien t[ record2, record4 ]nearbyRecommendations1Shelf -> filterOutPresentProducts() filterOutPresentProducts(recommendToUser);*[ record1,recommendToUser record2,>> system.println(recommendToUser) record3, [ record1, record2 ] record4 ][ record1, record2, record3 ][ ] 10Wednesday 9 June 2010 37. Propagating and Reacting to Eventsms streaEv entResilien t[ record2, record4 ]nearbyRecommendations1Shelf -> filterOutPresentProducts() filterOutPresentProducts(recommendToUser);*[ record1,recommendToUser record2,>> system.println(recommendToUser) record3, [ record1, record2 ] record4 ][ record1, record2, record3 ][ ][ record4 ] 10Wednesday 9 June 2010 38. Discovering Nodes coveryResH oc Dis ralized ilient AdD ecent Customer -> GUI.showProductsInBag(productsInBag); GUI.showRecommendations(recommendations); GUI.showRecommendationsInShop(nearbyRecommendations);1 productsInBag 1 ListeningStation ->rfidTags.map: { |t| t.getProduct() };1 products1 UserDatabase ->DB.getRecommendationsWithProducts(products);11Wednesday 9 June 2010 39. Discovering Nodes coveryResH oc Dis ralized ilient AdD ecent Customer -> GUI.showProductsInBag(productsInBag); GUI.showRecommendations(recommendations); GUI.showRecommendationsInShop(nearbyRecommendations);1 productsInBag 1 ListeningStation ->rfidTags.map: { |t| t.getProduct() };1 products1 UserDatabase ->DB.getRecommendationsWithProducts(products);11Wednesday 9 June 2010 40. Discovering Nodes coveryResH oc Dis ralized ilient AdD ecent Customer -> GUI.showProductsInBag(productsInBag); GUI.showRecommendations(recommendations); GUI.showRecommendationsInShop(nearbyRecommendations);1 productsInBag 1 ListeningStation ->rfidTags.map: { |t| t.getProduct() };1 products1 UserDatabase ->DB.getRecommendationsWithProducts(products);11Wednesday 9 June 2010 41. Discovering Nodes coveryResH oc Dis ralized ilient AdD ecent Customer -> GUI.showProductsInBag(productsInBag); GUI.showRecommendations(recommendations); GUI.showRecommendationsInShop(nearbyRecommendations);1 [ record1, record2,productsInBag... recordN ]1 ListeningStation ->rfidTags.map: { |t| t.getProduct() };1 products1 UserDatabase ->DB.getRecommendationsWithProducts(products);11Wednesday 9 June 2010 42. Discovering Nodes coveryResH oc Dis ralized ilient AdD ecent Customer -> GUI.showProductsInBag(productsInBag); GUI.showRecommendations(recommendations); GUI.showRecommendationsInShop(nearbyRecommendations);1 productsInBag 1 ListeningStation ->rfidTags.map: { |t| t.getProduct() };1 products1 UserDatabase ->DB.getRecommendationsWithProducts(products);11Wednesday 9 June 2010 43. Discovering Nodes coveryResH oc Dis ralized ilient AdD ecent Customer -> GUI.showProductsInBag(productsInBag); GUI.showRecommendations(recommendations); GUI.showRecommendationsInShop(nearbyRecommendations);1 productsInBag 1 ListeningStation ->rfidTags.map: { |t| t.getProduct() };1 products1 UserDatabase ->DB.getRecommendationsWithProducts(products);11Wednesday 9 June 2010 44. Discovering Nodes coveryResH oc Dis ralized ilient AdD ecent Customer -> GUI.showProductsInBag(productsInBag); GUI.showRecommendations(recommendations); GUI.showRecommendationsInShop(nearbyRecommendations);1 productsInBag 1 ListeningStation ->rfidTags.map: { |t| t.getProduct() };1 products1 UserDatabase ->DB.getRecommendationsWithProducts(products);11Wednesday 9 June 2010 45. Discovering Nodes coveryResH oc Dis ralized ilient AdD ecent Customer -> GUI.showProductsInBag(productsInBag); GUI.showRecommendations(recommendations); GUI.showRecommendationsInShop(nearbyRecommendations);1 productsInBag 1 ListeningStation ->rfidTags.map: { |t| t.getProduct() };1 products1 UserDatabase ->DB.getRecommendationsWithProducts(products);11Wednesday 9 June 2010 46. Discovering Nodes coveryResH oc Dis ralized ilient AdD ecent Customer -> GUI.showProductsInBag(productsInBag); GUI.showRecommendations(recommendations); GUI.showRecommendationsInShop(nearbyRecommendations);1 productsInBag 1 ListeningStation ->rfidTags.map: { |t| t.getProduct() };1 products1 UserDatabase ->DB.getRecommendationsWithProducts(products);11Wednesday 9 June 2010 47. Discovering Nodes coveryResH oc Dis ralized ilient AdD ecent Customer -> GUI.showProductsInBag(productsInBag); GUI.showRecommendations(recommendations); GUI.showRecommendationsInShop(nearbyRecommendations);1 productsInBag 1 ListeningStation ->rfidTags.map: { |t| t.getProduct() };1 products1 UserDatabase ->DB.getRecommendationsWithProducts(products);11Wednesday 9 June 2010 48. Discovering Nodes coveryResH oc Dis ralized ilient AdD ecent Customer -> GUI.showProductsInBag(productsInBag); GUI.showRecommendations(recommendations); GUI.showRecommendationsInShop(nearbyRecommendations);1 productsInBag 1 ListeningStation ->rfidTags.map: { |t| t.getProduct() };1 products1 UserDatabase ->DB.getRecommendationsWithProducts(products);11Wednesday 9 June 2010 49. Discovering Nodes coveryResH oc Dis ralized ilient AdD ecent Customer -> GUI.showProductsInBag(productsInBag); GUI.showRecommendations(recommendations); GUI.showRecommendationsInShop(nearbyRecommendations);1 productsInBag 1 ListeningStation ->r