1 / 61

Modelling Dynamic Web Data

Sergio Maffeis Joint work with Philippa Gardner. Modelling Dynamic Web Data. APPSEM'04 Tallinn, 15 April 2004. Motivation. What is d ynamic W eb d ata?. We model large scale , peer-to-peer systems for sharing dynamic data over the Web. Distribution is on large scale

mariol
Download Presentation

Modelling Dynamic Web Data

An Image/Link below is provided (as is) to download presentation Download Policy: Content on the Website is provided to you AS IS for your information and personal use and may not be sold / licensed / shared on other websites without getting consent from its author. Content is provided to you AS IS for your information and personal use only. Download presentation by click this link. While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server. During download, if you can't get a presentation, the file might be deleted by the publisher.

E N D

Presentation Transcript


  1. Sergio Maffeis Joint work with Philippa Gardner Modelling Dynamic Web Data APPSEM'04 Tallinn, 15 April 2004

  2. Motivation

  3. What is dynamic Web data? We model large scale, peer-to-peer systems for sharing dynamic data over the Web. • Distribution is on large scale • Each site provides and consumes data using a (standardised) set of functionalities • Data is dynamic and intensional: can contain calls to Web services, forms, scripted code, etc... • Data is interlinked

  4. Modelling dynamic Web data Existing models: • query languages for semistructured data (XML) • Describe data manipulation • Do not include a distribution layer • process calculi for the distributed infrastructure • Are good at orchestrating data exchanges between peers • Tend to abstract from the actual data Modelling dynamic Web data requires merging these approaches.

  5. A unified framework Reasoning about data and the distributed infrastructure in the same framework provides means to • understand the system behaviour • give schema/types to documents containing scripts • control access to resources • propose new optimisations

  6. The Xd project • Dynamic Web data in Xd • syntax, sematics, examples • Observational equivalences • spectrum of network and process equivalences • Proof techniques • domain bisimilarity • Types and security • access control, data validation • Implementation • declarative platform for intensional data and WS-coordination

  7. Dynamic Web data in Xd

  8. L2 L1 L3 Xd Processes Trees L4 • A flat space of locations • Locations contain (XML) trees and coordination processes

  9. Representing data in Xd a a a a c c b Processes c b Processes T3 @L1:a/c P T’ T2 T1 L2 L1 • Unordered, edge-labelled trees • Scripted processes (no reflection) • Pointers (links)

  10. T’ P’ L1 Data manipulation: cut = cuta/e(X).pastea/c<X> a a c P b c b e Q T L2 • select some subtrees with a path expression

  11. T’ P’ L1 Data manipulation: cut X= = cuta/e(X).pastea/c<X> T a a c P b c b e Q T L2 • select some subtrees with a path expression • match the subtrees against a binding pattern

  12. T’ P’ L1 Data manipulation: cut X= = cuta/e(X).pastea/c<> T T a a c P b c b e Q T L2 • select some subtrees with a path expression • match the subtrees against a binding pattern • cut away the subtrees

  13. T’ P’ L1 Data manipulation: paste = cuta/e(X).pastea/c<> T a a c P b c b e T Q L2 • select some paths for pasting

  14. T’ P’ L1 Data manipulation: paste = cuta/e(X).pastea/c< > T a a c P b c b e Q T L2 • select some paths for pasting • paste the subtrees in place

  15. T’ P’ L1 Data manipulation = cuta/e(X).pastea/c< > T a a c P b c b e Q T L2 • Encode cut, copy, paste by general update command • Simple path expressions as query language (multiple selection) • Other choices possible

  16. a a c b c b e T Process selection = runc a a c P R b c b e Q L1 L2 runactivates scripts: click on a hyperlink, system event, ...

  17. a a c b c b e T Process selection = runc a a c P R b c b e Q L1 L2 runactivates scripts: click on a hyperlink, system event, ...

  18. a a c b c b e T • = intuitive specification of a hyperlink Process migration = go L2.copya/c(X).go L1.pastea/e<X> a a c P R b c b e Q L1 L2

  19. a a c b c b e T • = intuitive specification of a hyperlink Process migration = go L2.copya/c(X).go L1.pastea/e<X> a a c P R b c b e Q L1 L2

  20. = intuitive specification of a hyperlink Process migration = go L2.copya/c(X).go L1.pastea/e< > T a a a a c c P R b b c b c b e T e Q T L1 L2

  21. = intuitive specification of a hyperlink Process migration = go L2.copya/c(X).go L1.pastea/e< > T a a a a c c P R b b c b c b e T e Q T L1 L2

  22. = intuitive specification of a hyperlink • over-simplified Process migration = go L2.copya/c(X).go L1.pastea/e<X> a a a a c c P R b b c b c b e e Q T T L1 L2

  23. Communication = web service call = web service = result handling code = service instance a a a a c c P R b b c b c b e e Q T L1 L2

  24. Communication = go L2.get<a/c,L1> = !get(x,y).copyx(z).go y.put<z> = put(x).pastea/e<x> a a a a c c P R b b c b c b e e Q T L1 L2

  25. Communication = go L2.get<a/c,L1> = !get(x,y).copyx(z).go y.put<z> = put(x).pastea/e<x> a a a a c c P R b b c b c b e e Q T L1 L2

  26. Communication = go L2.get<a/c,L1> = !get(x,y).copyx(z).go y.put<z> = put(x).pastea/e<x> = copya/c(z).go L1.put<z> a a a a c c P R b b c b c b e e Q T L1 L2

  27. Communication = go L2.get<a/c,L1> = !get(x,y).copyx(z).go y.put<z> = put(x).pastea/e<x> T = copya/c(z).go L1.put< > a a a a c c P R b b c b c b e e T Q T L1 L2

  28. Communication = go L2.get<a/c,L1> = !get(x,y).copyx(z).go y.put<z> = put(x).pastea/e<x> T = copya/c(z).go L1.put< > a a a a c c P R b b c b c b e T e Q T L1 L2

  29. Communication = go L2.get<a/c,L1> = !get(x,y).copyx(z).go y.put<z> = put(x).pastea/e< > T = copya/c(z).go L1.put< > T a a a a c c P R b b c b c b e T e Q T L1 L2

  30. Communication = go L2.get<a/c,L1> = !get(x,y).copyx(z).go y.put<z> = put(x).pastea/e< > T = copya/c(z).go L1.put< > T a a a a c c P R b b c b c b e e Q T T L1 L2 Potential problem: who can return a result to put?

  31. Restriction = go L2.get<a/c,L1> = !get(x,y).copyx(z).go y.put<z> = put(x).pastea/e<x> a a a a c c P R b b c b c b e e Q T L1 L2

  32. Restriction = go L2.get<a/c,L1,put> = !get(x,y,w).copyx(z).go y.w<z> = put(x).pastea/e<x> a a a a c c P R b b c b c b e e Q T L1 L2 • Add the return channel put as a parameter to get

  33. Restriction = go L2.get<a/c,L1,put> = !get(x,y,w).copyx(z).go y.w<z> = put(x).pastea/e<x> = (new put)( | ) a a a a c c P R b b c b c b e e Q T L1 L2 • Add the return channel put as a parameter to get • Make put an unforgeable secret with restriction binder (new put)(-)

  34. Restriction = go L2.get<a/c,L1,put> = !get(x,y,w).copyx(z).go y.w<z> = put(x).pastea/e<x> = (new put)( | ) a a a a c c P R b b c b c b e e Q T L1 L2

  35. Restriction = go L2.get<a/c,L1,put> = !get(x,y,w).copyx(z).go y.w<z> = put(x).pastea/e<x> = (new put)( | ) a a a a c c P R b b c b c b e e Q T L1 L2

  36. Restriction = go L2.get<a/c,L1,put> = !get(x,y,w).copyx(z).go y.w<z> = put(x).pastea/e<x> = (new put)( | ) a a a a c c P R b b c b c b e e Q T L1 L2

  37. Restriction = go L2.get<a/c,L1,put> = !get(x,y,w).copyx(z).go y.w<z> = put(x).pastea/e<x> = (new put)( | ) a a a a c c P R b b c b c b e e T Q T L1 L2

  38. Restriction = go L2.get<a/c,L1,put> = !get(x,y,w).copyx(z).go y.w<z> = put(x).pastea/e<x> = (new put)( | ) a a a a c c P R b b c b c b e e T Q T L1 L2

  39. Restriction = go L2.get<a/c,L1,put> = !get(x,y,w).copyx(z).go y.w<z> = put(x).pastea/e<x> = (new put)( | ) a a a a c c P R b b c b c b e T e Q T L1 L2

  40. Restriction = go L2.get<a/c,L1,put> = !get(x,y,w).copyx(z).go y.w<z> = put(x).pastea/e<x> = (new put)( | ) a a a a c c P R b b c b c b e e Q T T L1 L2 • Nothing can interefere with put now • Interference with get at L2: same technique, types, …

  41. Function repository Data Repository Data warehouse Example: rendez-vous Client L2 L1 L3 L4

  42. Function repository Data Repository Data warehouse Example: rendez-vous Client L2 L1 L3 L4

  43. Function repository Data Repository Data warehouse Example: rendez-vous Client L2 L1 L3 L4

  44. Function repository Data Repository Data warehouse Example: rendez-vous Client L2 L1 L3 L4

  45. Function repository Data Repository Data warehouse Example: rendez-vous Client L2 L1 L3 L4

  46. Function repository Data Repository Data warehouse Example: rendez-vous Client L2 L1 L3 L4

  47. Function repository Data Repository Data warehouse Example: rendez-vous Client L2 L1 L3 L4

  48. Function repository Data Repository Data warehouse Example: rendez-vous Client L2 L1 L3 L4

  49. Function repository Data Repository Data warehouse Example: rendez-vous Client L2 L1 L3 L4

  50. Function repository Data Repository Data warehouse Example: rendez-vous Client L2 L1 L3 L4 • Reduce network traffic • Comply to access control policies • Forward streams of results

More Related