What's New in Teams Calling, Meetings and Devices March 2024
How XQuery and AtomPub Will Change Data Access
1. How XQuery and AtomPub Are About To Change Your World
2.
3.
4. The Web is not built around process. Rather, the Web should be seen as a database predicated not on the notion of absolute data but instead upon the idea that behind every address is a multifaceted thing, one that, like the shadows upon Plato’s cave, never reveals itself in toto but instead only give hints about its true shape to those who are patient. That is what the RESTFUL web is all about.
5.
6.
7. Representations A representation is a description of a resource that is used for some computational purpose. Representations can be thought of as models of the resource in question, and as is the case with any modeling, a given resource may have any number of distinct representations.
8. A Presentation of Representations Rendered Graphics Bitmap Images Jane Doe, Engineer (resource) Jane Doe is an employee who works at ACME Widget Works as a Senior Design Engineer. He’s been here nce 1995 .... Text Description Video Audio <employee> <firstname> Jane </firstname> <lastname> Doe </lastname> <title> Engineer </title> XML Print Formatted (PDF)
9.
10.
11.
12.
13.
14. REST and Databases In essence, a RESTful approach uses a similar metaphor to the CRUD (Create, Read, Update, Delete) methods that a database uses, in the form (Post, Get, Put, Delete). Because of this, one way of summarizing RESTful services is that it is a way to treat the Web as a database.
15. If the web is becoming a database, then XQuery will very likely end up becoming its global query language. Developed as part of the W3C core services, XQuery uses XML as an abstraction layer for working with data repositories, though neither the source nor the output of such a query needs in fact to be XML itself. As such, XQuery would be the next stage of data abstraction.
16. Data Abstraction 1990 In the late 1980s and early 1990s, the database market coalesced around a new standard called the Structured Query Language, better known as SQL. SQL used set theory and tables with relational keys in order to construct complex queries. SQL focused on querying and data system updates, rather than serialization.
22. let $employees := collection("/db/assets/employees") let $mat_employees := for $employee in $employees where $employee/division = "Materials" order by $employee/lastname ascending return $employee return <html> <head> <title>Materials Employees</title> <style type= "text/css“>@import url("style.css");</style> </head> <body> <h1>Materials Employees</h1> <table border="1"> <tr> <th>Name</th> <th>Title</th> <th>Location</th> </tr> {for $emp in $mat_employees return <tr class="{ if (index-of($mat_employees,$emp) mod 2 = 0) then 'even' else 'odd' }"> <td>{concat($emp/firstname," ",$emp/lastname)}</td> <td>{string($emp/title)}</td> <td>Building {string($emp/building)}, Room {string($emp/room)}</td> </tr> } </table> </body> </html>
23.
24.
25. (: Module emp.xq :) module namespace emp = "http://www.myco.com/xmlns/emp"; declare function emp:division-employees($employees as element()*,$div-name as xs:string){ for $employee in $employees where $employee/division = $div-name order by $employee/lastname ascending return $employee }; declare function emp:employee-table($employees as element()*,$div-name as xs:string){ <h:html xmlns:h="http://www.w3.org/1999/xhtml"> <h:head> <h:title>{$div-name} Employees</h:title> <h:style type="text/css"><![CDATA[ ... Style inf .... ]]></h:style> </h:head> <h:body> <h:h1>{$div-name} Employees</h:h1> <h:table> <h:tr> <h:th>Employee Name</h:th> <h:th>Employee Title</h:th> <h:th>Location</h:th> </h:tr> {for $emp in $employees return … as previous … } </h:table> </h:body> </h:html> };
26. (: Module emp.xq :) import module namespace emp="http://www.myco.com/xmlns/emp" at "emp.xq"; let $employees := collection(“/db/assets/employees“) let $division := "Materials" let $div_employees := emp:division-employees($employees,$division) let $output := emp:employee-table($div_employees,$division) return $output
27.
28.
29. If you can abstract your data on the back end, shift towards a RESTful representation of that data through the server, then provide a compelling mechanism for displaying and editing that data, you will collapse most contemporary multi-tiered application architectures. That is the promise of XRX . The Prescription of XRX
36. REST (or Resource) Oriented Architectures represent a significant shift in the web services model, though one that is not necessarily adversarial to the more familiar SOA model (indeed, it complements the model in places where SOA is weakest). This suggests that the return on investment on an ROA application should be relatively high, especially as the back-end Xquery engine market matures.
37.
38.
39.
40.
41.
42. The market for XQuery Engines and XML Databases has exploded in the last couple of years, but there are a few that are becoming dominant in the marketplace