SlideShare une entreprise Scribd logo
1  sur  50
How  XQuery and AtomPub Are About To Change Your World
Speaker: Kurt Cagle ,[object Object],[object Object],[object Object],[object Object]
Overview ,[object Object],[object Object],[object Object],[object Object]
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.
Defining Resource ,[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object]
Exploring Resources Resources: Not Resources*: ,[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object]
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.
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)‏
Representational State Transfer ,[object Object],[object Object],[object Object]
REST is .... ,[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object]
The Importance of Collections ,[object Object],[object Object],[object Object],[object Object]
Identifying  RESTful  Services ,[object Object],[object Object],[object Object],[object Object],[object Object]
Sample RESTful Services (Atom)‏ ,[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object]
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.
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.
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.
Data Abstraction 2000 ,[object Object],[object Object],[object Object],[object Object],[object Object]
Data Abstraction 2010 ,[object Object],[object Object]
Components of XQuery 1.0 ,[object Object],[object Object],[object Object],[object Object]
XQuery’s FLOWR ,[object Object],SQL XQuery SELECT a FROM b F or $a in $b SET a = b L et $a := $b ORDER BY O rder by WHERE W here {result of set} R eturn
<employee id=&quot;be129&quot;> <firstname>Jane</firstname> <lastname>Doe</lastname> <title>Engineer</title> <division>Materials</division> <building>327</building> <room>19</room> <supervisor>be131</supervisor> </employee> <employee id=&quot;be130&quot;> <firstname>William</firstname> <lastname>Defoe</lastname> <title>Accountant</title> <division>AcctsPayable</division> ... <building>326</building> <room>14a</room> </employee> <employee id=&quot;be131&quot;> <firstname>Jack</firstname> <lastname>Dee</lastname> <title>Manager</title> <division>Materials</division> <building>327</building> <room>21</room> </employee> <!-- more employees -->
let $employees := collection(&quot;/db/assets/employees&quot;)‏ let $mat_employees := for $employee in $employees  where $employee/division = &quot;Materials&quot; order by $employee/lastname ascending return $employee return <html> <head> <title>Materials Employees</title> <style type= &quot;text/css“>@import url(&quot;style.css&quot;);</style> </head> <body> <h1>Materials Employees</h1> <table border=&quot;1&quot;> <tr> <th>Name</th> <th>Title</th> <th>Location</th> </tr> {for $emp in $mat_employees return <tr class=&quot;{ if (index-of($mat_employees,$emp) mod 2 = 0)  then 'even'  else 'odd' }&quot;>  <td>{concat($emp/firstname,&quot; &quot;,$emp/lastname)}</td> <td>{string($emp/title)}</td> <td>Building {string($emp/building)}, Room {string($emp/room)}</td> </tr> } </table> </body> </html>
 
XQuery Modulization ,[object Object],[object Object],[object Object],[object Object],[object Object],[object Object]
(: Module emp.xq :)‏ module namespace emp = &quot;http://www.myco.com/xmlns/emp&quot;; 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=&quot;http://www.w3.org/1999/xhtml&quot;> <h:head> <h:title>{$div-name} Employees</h:title> <h:style type=&quot;text/css&quot;><![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>  };
(: Module emp.xq :)‏ import module namespace emp=&quot;http://www.myco.com/xmlns/emp&quot; at &quot;emp.xq&quot;; let $employees := collection(“/db/assets/employees“)‏ let $division := &quot;Materials&quot; let $div_employees := emp:division-employees($employees,$division)‏ let $output := emp:employee-table($div_employees,$division)‏ return $output
Extension Modules for eXist ,[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object]
XQuery Server Language ,[object Object],[object Object],[object Object],[object Object],[object Object],[object Object]
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
XQuery and AtomPub ,[object Object],[object Object],[object Object],[object Object]
XQuery and AtomPub (II)‏ ,[object Object],[object Object],[object Object]
Typical AtomPub Pipeline Source Feed Sort Filter Query Filter Paging Filter Transform Filter Output URL Parameters
XRX ,[object Object],[object Object],[object Object],[object Object],[object Object]
XRX and AtomPub Projects ,[object Object],[object Object],[object Object],[object Object]
XForms Engines ,[object Object],[object Object],[object Object],[object Object],[object Object],[object Object]
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.
REST vs. SOA REST SOA ,[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object]
ROA As SOA Complement ,[object Object],[object Object],[object Object]
Upcoming Xquery Standards ,[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object]
Conclusion ,[object Object],[object Object],[object Object],[object Object]
 
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
eXist XML Database ,[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object]
MarkLogic XML Server ,[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object]
IBM DB2 9 pureXML Database ,[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object]
DataDirect XQuery ,[object Object],[object Object],[object Object],[object Object],[object Object]
Oracle XML DB ,[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object]
Microsoft SQL Server ,[object Object],[object Object],[object Object]
TigerLogic Dynamic Data Hub ,[object Object],[object Object],[object Object],[object Object],[object Object],[object Object]
 

Contenu connexe

Tendances

Object models and object representation
Object models and object representationObject models and object representation
Object models and object representationJulie Allinson
 
Repositories thru the looking glass
Repositories thru the looking glassRepositories thru the looking glass
Repositories thru the looking glassEduserv Foundation
 
The Standardization of Semantic Web Ontology
The Standardization of Semantic Web OntologyThe Standardization of Semantic Web Ontology
The Standardization of Semantic Web OntologyMyungjin Lee
 
Building a Digital Library
Building a Digital LibraryBuilding a Digital Library
Building a Digital Librarytomasz
 
Knowledge graphs on the Web
Knowledge graphs on the WebKnowledge graphs on the Web
Knowledge graphs on the WebArmin Haller
 
Semantic Annotation: The Mainstay of Semantic Web
Semantic Annotation: The Mainstay of Semantic WebSemantic Annotation: The Mainstay of Semantic Web
Semantic Annotation: The Mainstay of Semantic WebEditor IJCATR
 
SWAP : A Dublin Core Application Profile for desribing scholarly works
SWAP : A Dublin Core Application Profile for desribing scholarly worksSWAP : A Dublin Core Application Profile for desribing scholarly works
SWAP : A Dublin Core Application Profile for desribing scholarly worksJulie Allinson
 
Data modelingpresentation
Data modelingpresentationData modelingpresentation
Data modelingpresentationfikirabc
 
Semantic Web: introduction & overview
Semantic Web: introduction & overviewSemantic Web: introduction & overview
Semantic Web: introduction & overviewAmit Sheth
 
THGenius, rdf and open linked data for thesaurus management
THGenius, rdf and open linked data for thesaurus managementTHGenius, rdf and open linked data for thesaurus management
THGenius, rdf and open linked data for thesaurus management@CULT Srl
 
Semantic Web in Action: Ontology-driven information search, integration and a...
Semantic Web in Action: Ontology-driven information search, integration and a...Semantic Web in Action: Ontology-driven information search, integration and a...
Semantic Web in Action: Ontology-driven information search, integration and a...Amit Sheth
 
Semantic Web: Technolgies and Applications for Real-World
Semantic Web: Technolgies and Applications for Real-WorldSemantic Web: Technolgies and Applications for Real-World
Semantic Web: Technolgies and Applications for Real-WorldAmit Sheth
 
Open Conceptual Data Models
Open Conceptual Data ModelsOpen Conceptual Data Models
Open Conceptual Data Modelsrumito
 

Tendances (18)

NIF as a Multi-Model Semantic Information System
NIF as a Multi-Model Semantic Information SystemNIF as a Multi-Model Semantic Information System
NIF as a Multi-Model Semantic Information System
 
Object models and object representation
Object models and object representationObject models and object representation
Object models and object representation
 
Repositories thru the looking glass
Repositories thru the looking glassRepositories thru the looking glass
Repositories thru the looking glass
 
The Standardization of Semantic Web Ontology
The Standardization of Semantic Web OntologyThe Standardization of Semantic Web Ontology
The Standardization of Semantic Web Ontology
 
Building a Digital Library
Building a Digital LibraryBuilding a Digital Library
Building a Digital Library
 
Knowledge graphs on the Web
Knowledge graphs on the WebKnowledge graphs on the Web
Knowledge graphs on the Web
 
Semantic Annotation: The Mainstay of Semantic Web
Semantic Annotation: The Mainstay of Semantic WebSemantic Annotation: The Mainstay of Semantic Web
Semantic Annotation: The Mainstay of Semantic Web
 
SWAP : A Dublin Core Application Profile for desribing scholarly works
SWAP : A Dublin Core Application Profile for desribing scholarly worksSWAP : A Dublin Core Application Profile for desribing scholarly works
SWAP : A Dublin Core Application Profile for desribing scholarly works
 
Jpl presentation
Jpl presentationJpl presentation
Jpl presentation
 
Data modelingpresentation
Data modelingpresentationData modelingpresentation
Data modelingpresentation
 
Semantic Web: introduction & overview
Semantic Web: introduction & overviewSemantic Web: introduction & overview
Semantic Web: introduction & overview
 
THGenius, rdf and open linked data for thesaurus management
THGenius, rdf and open linked data for thesaurus managementTHGenius, rdf and open linked data for thesaurus management
THGenius, rdf and open linked data for thesaurus management
 
Semantic Web in Action: Ontology-driven information search, integration and a...
Semantic Web in Action: Ontology-driven information search, integration and a...Semantic Web in Action: Ontology-driven information search, integration and a...
Semantic Web in Action: Ontology-driven information search, integration and a...
 
Semantic Web: Technolgies and Applications for Real-World
Semantic Web: Technolgies and Applications for Real-WorldSemantic Web: Technolgies and Applications for Real-World
Semantic Web: Technolgies and Applications for Real-World
 
RDBMS with MySQL
RDBMS with MySQLRDBMS with MySQL
RDBMS with MySQL
 
Open Conceptual Data Models
Open Conceptual Data ModelsOpen Conceptual Data Models
Open Conceptual Data Models
 
Bt0066 dbms
Bt0066 dbmsBt0066 dbms
Bt0066 dbms
 
Ijert semi 1
Ijert semi 1Ijert semi 1
Ijert semi 1
 

Similaire à How XQuery and AtomPub Will Change Data Access

Xml Java
Xml JavaXml Java
Xml Javacbee48
 
IBM Solutions '99 XML and Java: Lessons Learned
IBM Solutions '99 XML and Java: Lessons LearnedIBM Solutions '99 XML and Java: Lessons Learned
IBM Solutions '99 XML and Java: Lessons LearnedTed Leung
 
Real World Experience With Oracle Xml Database 11g An Oracle Ace’s Perspectiv...
Real World Experience With Oracle Xml Database 11g An Oracle Ace’s Perspectiv...Real World Experience With Oracle Xml Database 11g An Oracle Ace’s Perspectiv...
Real World Experience With Oracle Xml Database 11g An Oracle Ace’s Perspectiv...Marco Gralike
 
Semantic RDF based integration framework for heterogeneous XML data sources
Semantic RDF based integration framework for heterogeneous XML data sourcesSemantic RDF based integration framework for heterogeneous XML data sources
Semantic RDF based integration framework for heterogeneous XML data sourcesDeniz Kılınç
 
OPP2010 (Brussels) - Programming with XML in PL/SQL - Part 1
OPP2010 (Brussels) - Programming with XML in PL/SQL - Part 1OPP2010 (Brussels) - Programming with XML in PL/SQL - Part 1
OPP2010 (Brussels) - Programming with XML in PL/SQL - Part 1Marco Gralike
 
Facet: Building Web Pages with SPARQL
Facet: Building Web Pages with SPARQLFacet: Building Web Pages with SPARQL
Facet: Building Web Pages with SPARQLLeigh Dodds
 
Sql Summit Clr, Service Broker And Xml
Sql Summit   Clr, Service Broker And XmlSql Summit   Clr, Service Broker And Xml
Sql Summit Clr, Service Broker And XmlDavid Truxall
 
Choose'10: Ralf Laemmel - Dealing Confortably with the Confusion of Tongues
Choose'10: Ralf Laemmel - Dealing Confortably with the Confusion of TonguesChoose'10: Ralf Laemmel - Dealing Confortably with the Confusion of Tongues
Choose'10: Ralf Laemmel - Dealing Confortably with the Confusion of TonguesCHOOSE
 
[DSBW Spring 2010] Unit 10: XML and Web And beyond
[DSBW Spring 2010] Unit 10: XML and Web And beyond[DSBW Spring 2010] Unit 10: XML and Web And beyond
[DSBW Spring 2010] Unit 10: XML and Web And beyondCarles Farré
 
RESTful web service with JBoss Fuse
RESTful web service with JBoss FuseRESTful web service with JBoss Fuse
RESTful web service with JBoss Fuseejlp12
 
XML, XML Databases and MPEG-7
XML, XML Databases and MPEG-7XML, XML Databases and MPEG-7
XML, XML Databases and MPEG-7Deniz Kılınç
 
Ellerslie User Group - ReST Presentation
Ellerslie User Group - ReST PresentationEllerslie User Group - ReST Presentation
Ellerslie User Group - ReST PresentationAlex Henderson
 
Import web resources using R Studio
Import web resources using R StudioImport web resources using R Studio
Import web resources using R StudioRupak Roy
 
SemanticWeb Nuts 'n Bolts
SemanticWeb Nuts 'n BoltsSemanticWeb Nuts 'n Bolts
SemanticWeb Nuts 'n BoltsRinke Hoekstra
 

Similaire à How XQuery and AtomPub Will Change Data Access (20)

Xml Java
Xml JavaXml Java
Xml Java
 
IBM Solutions '99 XML and Java: Lessons Learned
IBM Solutions '99 XML and Java: Lessons LearnedIBM Solutions '99 XML and Java: Lessons Learned
IBM Solutions '99 XML and Java: Lessons Learned
 
Real World Experience With Oracle Xml Database 11g An Oracle Ace’s Perspectiv...
Real World Experience With Oracle Xml Database 11g An Oracle Ace’s Perspectiv...Real World Experience With Oracle Xml Database 11g An Oracle Ace’s Perspectiv...
Real World Experience With Oracle Xml Database 11g An Oracle Ace’s Perspectiv...
 
Semantic RDF based integration framework for heterogeneous XML data sources
Semantic RDF based integration framework for heterogeneous XML data sourcesSemantic RDF based integration framework for heterogeneous XML data sources
Semantic RDF based integration framework for heterogeneous XML data sources
 
OPP2010 (Brussels) - Programming with XML in PL/SQL - Part 1
OPP2010 (Brussels) - Programming with XML in PL/SQL - Part 1OPP2010 (Brussels) - Programming with XML in PL/SQL - Part 1
OPP2010 (Brussels) - Programming with XML in PL/SQL - Part 1
 
Basics of XML
Basics of XMLBasics of XML
Basics of XML
 
SCDJWS 6. REST JAX-P
SCDJWS 6. REST  JAX-PSCDJWS 6. REST  JAX-P
SCDJWS 6. REST JAX-P
 
Facet: Building Web Pages with SPARQL
Facet: Building Web Pages with SPARQLFacet: Building Web Pages with SPARQL
Facet: Building Web Pages with SPARQL
 
Sql Summit Clr, Service Broker And Xml
Sql Summit   Clr, Service Broker And XmlSql Summit   Clr, Service Broker And Xml
Sql Summit Clr, Service Broker And Xml
 
Introduction to odbms
Introduction to odbmsIntroduction to odbms
Introduction to odbms
 
Choose'10: Ralf Laemmel - Dealing Confortably with the Confusion of Tongues
Choose'10: Ralf Laemmel - Dealing Confortably with the Confusion of TonguesChoose'10: Ralf Laemmel - Dealing Confortably with the Confusion of Tongues
Choose'10: Ralf Laemmel - Dealing Confortably with the Confusion of Tongues
 
[DSBW Spring 2010] Unit 10: XML and Web And beyond
[DSBW Spring 2010] Unit 10: XML and Web And beyond[DSBW Spring 2010] Unit 10: XML and Web And beyond
[DSBW Spring 2010] Unit 10: XML and Web And beyond
 
RESTful web service with JBoss Fuse
RESTful web service with JBoss FuseRESTful web service with JBoss Fuse
RESTful web service with JBoss Fuse
 
XML, XML Databases and MPEG-7
XML, XML Databases and MPEG-7XML, XML Databases and MPEG-7
XML, XML Databases and MPEG-7
 
Ellerslie User Group - ReST Presentation
Ellerslie User Group - ReST PresentationEllerslie User Group - ReST Presentation
Ellerslie User Group - ReST Presentation
 
Import web resources using R Studio
Import web resources using R StudioImport web resources using R Studio
Import web resources using R Studio
 
Unit 10: XML and Beyond (Sematic Web, Web Services, ...)
Unit 10: XML and Beyond (Sematic Web, Web Services, ...)Unit 10: XML and Beyond (Sematic Web, Web Services, ...)
Unit 10: XML and Beyond (Sematic Web, Web Services, ...)
 
Processing XML with Java
Processing XML with JavaProcessing XML with Java
Processing XML with Java
 
Xml
XmlXml
Xml
 
SemanticWeb Nuts 'n Bolts
SemanticWeb Nuts 'n BoltsSemanticWeb Nuts 'n Bolts
SemanticWeb Nuts 'n Bolts
 

Dernier

How AI, OpenAI, and ChatGPT impact business and software.
How AI, OpenAI, and ChatGPT impact business and software.How AI, OpenAI, and ChatGPT impact business and software.
How AI, OpenAI, and ChatGPT impact business and software.Curtis Poe
 
Transcript: New from BookNet Canada for 2024: BNC CataList - Tech Forum 2024
Transcript: New from BookNet Canada for 2024: BNC CataList - Tech Forum 2024Transcript: New from BookNet Canada for 2024: BNC CataList - Tech Forum 2024
Transcript: New from BookNet Canada for 2024: BNC CataList - Tech Forum 2024BookNet Canada
 
Digital Identity is Under Attack: FIDO Paris Seminar.pptx
Digital Identity is Under Attack: FIDO Paris Seminar.pptxDigital Identity is Under Attack: FIDO Paris Seminar.pptx
Digital Identity is Under Attack: FIDO Paris Seminar.pptxLoriGlavin3
 
Gen AI in Business - Global Trends Report 2024.pdf
Gen AI in Business - Global Trends Report 2024.pdfGen AI in Business - Global Trends Report 2024.pdf
Gen AI in Business - Global Trends Report 2024.pdfAddepto
 
Nell’iperspazio con Rocket: il Framework Web di Rust!
Nell’iperspazio con Rocket: il Framework Web di Rust!Nell’iperspazio con Rocket: il Framework Web di Rust!
Nell’iperspazio con Rocket: il Framework Web di Rust!Commit University
 
Tampa BSides - Chef's Tour of Microsoft Security Adoption Framework (SAF)
Tampa BSides - Chef's Tour of Microsoft Security Adoption Framework (SAF)Tampa BSides - Chef's Tour of Microsoft Security Adoption Framework (SAF)
Tampa BSides - Chef's Tour of Microsoft Security Adoption Framework (SAF)Mark Simos
 
"Subclassing and Composition – A Pythonic Tour of Trade-Offs", Hynek Schlawack
"Subclassing and Composition – A Pythonic Tour of Trade-Offs", Hynek Schlawack"Subclassing and Composition – A Pythonic Tour of Trade-Offs", Hynek Schlawack
"Subclassing and Composition – A Pythonic Tour of Trade-Offs", Hynek SchlawackFwdays
 
Scanning the Internet for External Cloud Exposures via SSL Certs
Scanning the Internet for External Cloud Exposures via SSL CertsScanning the Internet for External Cloud Exposures via SSL Certs
Scanning the Internet for External Cloud Exposures via SSL CertsRizwan Syed
 
DevEX - reference for building teams, processes, and platforms
DevEX - reference for building teams, processes, and platformsDevEX - reference for building teams, processes, and platforms
DevEX - reference for building teams, processes, and platformsSergiu Bodiu
 
Take control of your SAP testing with UiPath Test Suite
Take control of your SAP testing with UiPath Test SuiteTake control of your SAP testing with UiPath Test Suite
Take control of your SAP testing with UiPath Test SuiteDianaGray10
 
WordPress Websites for Engineers: Elevate Your Brand
WordPress Websites for Engineers: Elevate Your BrandWordPress Websites for Engineers: Elevate Your Brand
WordPress Websites for Engineers: Elevate Your Brandgvaughan
 
How to write a Business Continuity Plan
How to write a Business Continuity PlanHow to write a Business Continuity Plan
How to write a Business Continuity PlanDatabarracks
 
New from BookNet Canada for 2024: BNC CataList - Tech Forum 2024
New from BookNet Canada for 2024: BNC CataList - Tech Forum 2024New from BookNet Canada for 2024: BNC CataList - Tech Forum 2024
New from BookNet Canada for 2024: BNC CataList - Tech Forum 2024BookNet Canada
 
The Role of FIDO in a Cyber Secure Netherlands: FIDO Paris Seminar.pptx
The Role of FIDO in a Cyber Secure Netherlands: FIDO Paris Seminar.pptxThe Role of FIDO in a Cyber Secure Netherlands: FIDO Paris Seminar.pptx
The Role of FIDO in a Cyber Secure Netherlands: FIDO Paris Seminar.pptxLoriGlavin3
 
unit 4 immunoblotting technique complete.pptx
unit 4 immunoblotting technique complete.pptxunit 4 immunoblotting technique complete.pptx
unit 4 immunoblotting technique complete.pptxBkGupta21
 
TrustArc Webinar - How to Build Consumer Trust Through Data Privacy
TrustArc Webinar - How to Build Consumer Trust Through Data PrivacyTrustArc Webinar - How to Build Consumer Trust Through Data Privacy
TrustArc Webinar - How to Build Consumer Trust Through Data PrivacyTrustArc
 
Streamlining Python Development: A Guide to a Modern Project Setup
Streamlining Python Development: A Guide to a Modern Project SetupStreamlining Python Development: A Guide to a Modern Project Setup
Streamlining Python Development: A Guide to a Modern Project SetupFlorian Wilhelm
 
Developer Data Modeling Mistakes: From Postgres to NoSQL
Developer Data Modeling Mistakes: From Postgres to NoSQLDeveloper Data Modeling Mistakes: From Postgres to NoSQL
Developer Data Modeling Mistakes: From Postgres to NoSQLScyllaDB
 
Connect Wave/ connectwave Pitch Deck Presentation
Connect Wave/ connectwave Pitch Deck PresentationConnect Wave/ connectwave Pitch Deck Presentation
Connect Wave/ connectwave Pitch Deck PresentationSlibray Presentation
 
DevoxxFR 2024 Reproducible Builds with Apache Maven
DevoxxFR 2024 Reproducible Builds with Apache MavenDevoxxFR 2024 Reproducible Builds with Apache Maven
DevoxxFR 2024 Reproducible Builds with Apache MavenHervé Boutemy
 

Dernier (20)

How AI, OpenAI, and ChatGPT impact business and software.
How AI, OpenAI, and ChatGPT impact business and software.How AI, OpenAI, and ChatGPT impact business and software.
How AI, OpenAI, and ChatGPT impact business and software.
 
Transcript: New from BookNet Canada for 2024: BNC CataList - Tech Forum 2024
Transcript: New from BookNet Canada for 2024: BNC CataList - Tech Forum 2024Transcript: New from BookNet Canada for 2024: BNC CataList - Tech Forum 2024
Transcript: New from BookNet Canada for 2024: BNC CataList - Tech Forum 2024
 
Digital Identity is Under Attack: FIDO Paris Seminar.pptx
Digital Identity is Under Attack: FIDO Paris Seminar.pptxDigital Identity is Under Attack: FIDO Paris Seminar.pptx
Digital Identity is Under Attack: FIDO Paris Seminar.pptx
 
Gen AI in Business - Global Trends Report 2024.pdf
Gen AI in Business - Global Trends Report 2024.pdfGen AI in Business - Global Trends Report 2024.pdf
Gen AI in Business - Global Trends Report 2024.pdf
 
Nell’iperspazio con Rocket: il Framework Web di Rust!
Nell’iperspazio con Rocket: il Framework Web di Rust!Nell’iperspazio con Rocket: il Framework Web di Rust!
Nell’iperspazio con Rocket: il Framework Web di Rust!
 
Tampa BSides - Chef's Tour of Microsoft Security Adoption Framework (SAF)
Tampa BSides - Chef's Tour of Microsoft Security Adoption Framework (SAF)Tampa BSides - Chef's Tour of Microsoft Security Adoption Framework (SAF)
Tampa BSides - Chef's Tour of Microsoft Security Adoption Framework (SAF)
 
"Subclassing and Composition – A Pythonic Tour of Trade-Offs", Hynek Schlawack
"Subclassing and Composition – A Pythonic Tour of Trade-Offs", Hynek Schlawack"Subclassing and Composition – A Pythonic Tour of Trade-Offs", Hynek Schlawack
"Subclassing and Composition – A Pythonic Tour of Trade-Offs", Hynek Schlawack
 
Scanning the Internet for External Cloud Exposures via SSL Certs
Scanning the Internet for External Cloud Exposures via SSL CertsScanning the Internet for External Cloud Exposures via SSL Certs
Scanning the Internet for External Cloud Exposures via SSL Certs
 
DevEX - reference for building teams, processes, and platforms
DevEX - reference for building teams, processes, and platformsDevEX - reference for building teams, processes, and platforms
DevEX - reference for building teams, processes, and platforms
 
Take control of your SAP testing with UiPath Test Suite
Take control of your SAP testing with UiPath Test SuiteTake control of your SAP testing with UiPath Test Suite
Take control of your SAP testing with UiPath Test Suite
 
WordPress Websites for Engineers: Elevate Your Brand
WordPress Websites for Engineers: Elevate Your BrandWordPress Websites for Engineers: Elevate Your Brand
WordPress Websites for Engineers: Elevate Your Brand
 
How to write a Business Continuity Plan
How to write a Business Continuity PlanHow to write a Business Continuity Plan
How to write a Business Continuity Plan
 
New from BookNet Canada for 2024: BNC CataList - Tech Forum 2024
New from BookNet Canada for 2024: BNC CataList - Tech Forum 2024New from BookNet Canada for 2024: BNC CataList - Tech Forum 2024
New from BookNet Canada for 2024: BNC CataList - Tech Forum 2024
 
The Role of FIDO in a Cyber Secure Netherlands: FIDO Paris Seminar.pptx
The Role of FIDO in a Cyber Secure Netherlands: FIDO Paris Seminar.pptxThe Role of FIDO in a Cyber Secure Netherlands: FIDO Paris Seminar.pptx
The Role of FIDO in a Cyber Secure Netherlands: FIDO Paris Seminar.pptx
 
unit 4 immunoblotting technique complete.pptx
unit 4 immunoblotting technique complete.pptxunit 4 immunoblotting technique complete.pptx
unit 4 immunoblotting technique complete.pptx
 
TrustArc Webinar - How to Build Consumer Trust Through Data Privacy
TrustArc Webinar - How to Build Consumer Trust Through Data PrivacyTrustArc Webinar - How to Build Consumer Trust Through Data Privacy
TrustArc Webinar - How to Build Consumer Trust Through Data Privacy
 
Streamlining Python Development: A Guide to a Modern Project Setup
Streamlining Python Development: A Guide to a Modern Project SetupStreamlining Python Development: A Guide to a Modern Project Setup
Streamlining Python Development: A Guide to a Modern Project Setup
 
Developer Data Modeling Mistakes: From Postgres to NoSQL
Developer Data Modeling Mistakes: From Postgres to NoSQLDeveloper Data Modeling Mistakes: From Postgres to NoSQL
Developer Data Modeling Mistakes: From Postgres to NoSQL
 
Connect Wave/ connectwave Pitch Deck Presentation
Connect Wave/ connectwave Pitch Deck PresentationConnect Wave/ connectwave Pitch Deck Presentation
Connect Wave/ connectwave Pitch Deck Presentation
 
DevoxxFR 2024 Reproducible Builds with Apache Maven
DevoxxFR 2024 Reproducible Builds with Apache MavenDevoxxFR 2024 Reproducible Builds with Apache Maven
DevoxxFR 2024 Reproducible Builds with Apache Maven
 

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.
  • 17.
  • 18.
  • 19.
  • 20.
  • 21. <employee id=&quot;be129&quot;> <firstname>Jane</firstname> <lastname>Doe</lastname> <title>Engineer</title> <division>Materials</division> <building>327</building> <room>19</room> <supervisor>be131</supervisor> </employee> <employee id=&quot;be130&quot;> <firstname>William</firstname> <lastname>Defoe</lastname> <title>Accountant</title> <division>AcctsPayable</division> ... <building>326</building> <room>14a</room> </employee> <employee id=&quot;be131&quot;> <firstname>Jack</firstname> <lastname>Dee</lastname> <title>Manager</title> <division>Materials</division> <building>327</building> <room>21</room> </employee> <!-- more employees -->
  • 22. let $employees := collection(&quot;/db/assets/employees&quot;)‏ let $mat_employees := for $employee in $employees where $employee/division = &quot;Materials&quot; order by $employee/lastname ascending return $employee return <html> <head> <title>Materials Employees</title> <style type= &quot;text/css“>@import url(&quot;style.css&quot;);</style> </head> <body> <h1>Materials Employees</h1> <table border=&quot;1&quot;> <tr> <th>Name</th> <th>Title</th> <th>Location</th> </tr> {for $emp in $mat_employees return <tr class=&quot;{ if (index-of($mat_employees,$emp) mod 2 = 0) then 'even' else 'odd' }&quot;> <td>{concat($emp/firstname,&quot; &quot;,$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 = &quot;http://www.myco.com/xmlns/emp&quot;; 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=&quot;http://www.w3.org/1999/xhtml&quot;> <h:head> <h:title>{$div-name} Employees</h:title> <h:style type=&quot;text/css&quot;><![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=&quot;http://www.myco.com/xmlns/emp&quot; at &quot;emp.xq&quot;; let $employees := collection(“/db/assets/employees“)‏ let $division := &quot;Materials&quot; 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
  • 30.
  • 31.
  • 32. Typical AtomPub Pipeline Source Feed Sort Filter Query Filter Paging Filter Transform Filter Output URL Parameters
  • 33.
  • 34.
  • 35.
  • 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
  • 43.
  • 44.
  • 45.
  • 46.
  • 47.
  • 48.
  • 49.
  • 50.