SlideShare uma empresa Scribd logo
1 de 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]
 

Mais conteúdo relacionado

Mais procurados

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
 

Mais procurados (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
 

Semelhante a RESTful Services

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
 

Semelhante a RESTful Services (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
 

Último

Partners Life - Insurer Innovation Award 2024
Partners Life - Insurer Innovation Award 2024Partners Life - Insurer Innovation Award 2024
Partners Life - Insurer Innovation Award 2024The Digital Insurer
 
Apidays Singapore 2024 - Building Digital Trust in a Digital Economy by Veron...
Apidays Singapore 2024 - Building Digital Trust in a Digital Economy by Veron...Apidays Singapore 2024 - Building Digital Trust in a Digital Economy by Veron...
Apidays Singapore 2024 - Building Digital Trust in a Digital Economy by Veron...apidays
 
Top 5 Benefits OF Using Muvi Live Paywall For Live Streams
Top 5 Benefits OF Using Muvi Live Paywall For Live StreamsTop 5 Benefits OF Using Muvi Live Paywall For Live Streams
Top 5 Benefits OF Using Muvi Live Paywall For Live StreamsRoshan Dwivedi
 
Bajaj Allianz Life Insurance Company - Insurer Innovation Award 2024
Bajaj Allianz Life Insurance Company - Insurer Innovation Award 2024Bajaj Allianz Life Insurance Company - Insurer Innovation Award 2024
Bajaj Allianz Life Insurance Company - Insurer Innovation Award 2024The Digital Insurer
 
Why Teams call analytics are critical to your entire business
Why Teams call analytics are critical to your entire businessWhy Teams call analytics are critical to your entire business
Why Teams call analytics are critical to your entire businesspanagenda
 
Mastering MySQL Database Architecture: Deep Dive into MySQL Shell and MySQL R...
Mastering MySQL Database Architecture: Deep Dive into MySQL Shell and MySQL R...Mastering MySQL Database Architecture: Deep Dive into MySQL Shell and MySQL R...
Mastering MySQL Database Architecture: Deep Dive into MySQL Shell and MySQL R...Miguel Araújo
 
Apidays New York 2024 - The value of a flexible API Management solution for O...
Apidays New York 2024 - The value of a flexible API Management solution for O...Apidays New York 2024 - The value of a flexible API Management solution for O...
Apidays New York 2024 - The value of a flexible API Management solution for O...apidays
 
The 7 Things I Know About Cyber Security After 25 Years | April 2024
The 7 Things I Know About Cyber Security After 25 Years | April 2024The 7 Things I Know About Cyber Security After 25 Years | April 2024
The 7 Things I Know About Cyber Security After 25 Years | April 2024Rafal Los
 
Real Time Object Detection Using Open CV
Real Time Object Detection Using Open CVReal Time Object Detection Using Open CV
Real Time Object Detection Using Open CVKhem
 
Connector Corner: Accelerate revenue generation using UiPath API-centric busi...
Connector Corner: Accelerate revenue generation using UiPath API-centric busi...Connector Corner: Accelerate revenue generation using UiPath API-centric busi...
Connector Corner: Accelerate revenue generation using UiPath API-centric busi...DianaGray10
 
Top 10 Most Downloaded Games on Play Store in 2024
Top 10 Most Downloaded Games on Play Store in 2024Top 10 Most Downloaded Games on Play Store in 2024
Top 10 Most Downloaded Games on Play Store in 2024SynarionITSolutions
 
How to Troubleshoot Apps for the Modern Connected Worker
How to Troubleshoot Apps for the Modern Connected WorkerHow to Troubleshoot Apps for the Modern Connected Worker
How to Troubleshoot Apps for the Modern Connected WorkerThousandEyes
 
Data Cloud, More than a CDP by Matt Robison
Data Cloud, More than a CDP by Matt RobisonData Cloud, More than a CDP by Matt Robison
Data Cloud, More than a CDP by Matt RobisonAnna Loughnan Colquhoun
 
GenAI Risks & Security Meetup 01052024.pdf
GenAI Risks & Security Meetup 01052024.pdfGenAI Risks & Security Meetup 01052024.pdf
GenAI Risks & Security Meetup 01052024.pdflior mazor
 
TrustArc Webinar - Unlock the Power of AI-Driven Data Discovery
TrustArc Webinar - Unlock the Power of AI-Driven Data DiscoveryTrustArc Webinar - Unlock the Power of AI-Driven Data Discovery
TrustArc Webinar - Unlock the Power of AI-Driven Data DiscoveryTrustArc
 
Strategies for Unlocking Knowledge Management in Microsoft 365 in the Copilot...
Strategies for Unlocking Knowledge Management in Microsoft 365 in the Copilot...Strategies for Unlocking Knowledge Management in Microsoft 365 in the Copilot...
Strategies for Unlocking Knowledge Management in Microsoft 365 in the Copilot...Drew Madelung
 
2024: Domino Containers - The Next Step. News from the Domino Container commu...
2024: Domino Containers - The Next Step. News from the Domino Container commu...2024: Domino Containers - The Next Step. News from the Domino Container commu...
2024: Domino Containers - The Next Step. News from the Domino Container commu...Martijn de Jong
 
Strategize a Smooth Tenant-to-tenant Migration and Copilot Takeoff
Strategize a Smooth Tenant-to-tenant Migration and Copilot TakeoffStrategize a Smooth Tenant-to-tenant Migration and Copilot Takeoff
Strategize a Smooth Tenant-to-tenant Migration and Copilot Takeoffsammart93
 
Scaling API-first – The story of a global engineering organization
Scaling API-first – The story of a global engineering organizationScaling API-first – The story of a global engineering organization
Scaling API-first – The story of a global engineering organizationRadu Cotescu
 
Polkadot JAM Slides - Token2049 - By Dr. Gavin Wood
Polkadot JAM Slides - Token2049 - By Dr. Gavin WoodPolkadot JAM Slides - Token2049 - By Dr. Gavin Wood
Polkadot JAM Slides - Token2049 - By Dr. Gavin WoodJuan lago vázquez
 

Último (20)

Partners Life - Insurer Innovation Award 2024
Partners Life - Insurer Innovation Award 2024Partners Life - Insurer Innovation Award 2024
Partners Life - Insurer Innovation Award 2024
 
Apidays Singapore 2024 - Building Digital Trust in a Digital Economy by Veron...
Apidays Singapore 2024 - Building Digital Trust in a Digital Economy by Veron...Apidays Singapore 2024 - Building Digital Trust in a Digital Economy by Veron...
Apidays Singapore 2024 - Building Digital Trust in a Digital Economy by Veron...
 
Top 5 Benefits OF Using Muvi Live Paywall For Live Streams
Top 5 Benefits OF Using Muvi Live Paywall For Live StreamsTop 5 Benefits OF Using Muvi Live Paywall For Live Streams
Top 5 Benefits OF Using Muvi Live Paywall For Live Streams
 
Bajaj Allianz Life Insurance Company - Insurer Innovation Award 2024
Bajaj Allianz Life Insurance Company - Insurer Innovation Award 2024Bajaj Allianz Life Insurance Company - Insurer Innovation Award 2024
Bajaj Allianz Life Insurance Company - Insurer Innovation Award 2024
 
Why Teams call analytics are critical to your entire business
Why Teams call analytics are critical to your entire businessWhy Teams call analytics are critical to your entire business
Why Teams call analytics are critical to your entire business
 
Mastering MySQL Database Architecture: Deep Dive into MySQL Shell and MySQL R...
Mastering MySQL Database Architecture: Deep Dive into MySQL Shell and MySQL R...Mastering MySQL Database Architecture: Deep Dive into MySQL Shell and MySQL R...
Mastering MySQL Database Architecture: Deep Dive into MySQL Shell and MySQL R...
 
Apidays New York 2024 - The value of a flexible API Management solution for O...
Apidays New York 2024 - The value of a flexible API Management solution for O...Apidays New York 2024 - The value of a flexible API Management solution for O...
Apidays New York 2024 - The value of a flexible API Management solution for O...
 
The 7 Things I Know About Cyber Security After 25 Years | April 2024
The 7 Things I Know About Cyber Security After 25 Years | April 2024The 7 Things I Know About Cyber Security After 25 Years | April 2024
The 7 Things I Know About Cyber Security After 25 Years | April 2024
 
Real Time Object Detection Using Open CV
Real Time Object Detection Using Open CVReal Time Object Detection Using Open CV
Real Time Object Detection Using Open CV
 
Connector Corner: Accelerate revenue generation using UiPath API-centric busi...
Connector Corner: Accelerate revenue generation using UiPath API-centric busi...Connector Corner: Accelerate revenue generation using UiPath API-centric busi...
Connector Corner: Accelerate revenue generation using UiPath API-centric busi...
 
Top 10 Most Downloaded Games on Play Store in 2024
Top 10 Most Downloaded Games on Play Store in 2024Top 10 Most Downloaded Games on Play Store in 2024
Top 10 Most Downloaded Games on Play Store in 2024
 
How to Troubleshoot Apps for the Modern Connected Worker
How to Troubleshoot Apps for the Modern Connected WorkerHow to Troubleshoot Apps for the Modern Connected Worker
How to Troubleshoot Apps for the Modern Connected Worker
 
Data Cloud, More than a CDP by Matt Robison
Data Cloud, More than a CDP by Matt RobisonData Cloud, More than a CDP by Matt Robison
Data Cloud, More than a CDP by Matt Robison
 
GenAI Risks & Security Meetup 01052024.pdf
GenAI Risks & Security Meetup 01052024.pdfGenAI Risks & Security Meetup 01052024.pdf
GenAI Risks & Security Meetup 01052024.pdf
 
TrustArc Webinar - Unlock the Power of AI-Driven Data Discovery
TrustArc Webinar - Unlock the Power of AI-Driven Data DiscoveryTrustArc Webinar - Unlock the Power of AI-Driven Data Discovery
TrustArc Webinar - Unlock the Power of AI-Driven Data Discovery
 
Strategies for Unlocking Knowledge Management in Microsoft 365 in the Copilot...
Strategies for Unlocking Knowledge Management in Microsoft 365 in the Copilot...Strategies for Unlocking Knowledge Management in Microsoft 365 in the Copilot...
Strategies for Unlocking Knowledge Management in Microsoft 365 in the Copilot...
 
2024: Domino Containers - The Next Step. News from the Domino Container commu...
2024: Domino Containers - The Next Step. News from the Domino Container commu...2024: Domino Containers - The Next Step. News from the Domino Container commu...
2024: Domino Containers - The Next Step. News from the Domino Container commu...
 
Strategize a Smooth Tenant-to-tenant Migration and Copilot Takeoff
Strategize a Smooth Tenant-to-tenant Migration and Copilot TakeoffStrategize a Smooth Tenant-to-tenant Migration and Copilot Takeoff
Strategize a Smooth Tenant-to-tenant Migration and Copilot Takeoff
 
Scaling API-first – The story of a global engineering organization
Scaling API-first – The story of a global engineering organizationScaling API-first – The story of a global engineering organization
Scaling API-first – The story of a global engineering organization
 
Polkadot JAM Slides - Token2049 - By Dr. Gavin Wood
Polkadot JAM Slides - Token2049 - By Dr. Gavin WoodPolkadot JAM Slides - Token2049 - By Dr. Gavin Wood
Polkadot JAM Slides - Token2049 - By Dr. Gavin Wood
 

RESTful Services

  • 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.