SlideShare une entreprise Scribd logo
1  sur  22
Don Box and Steve Maine
URI Jockeys
Microsoft Corporation
Goals
 How do my programs use the web?
 How do my programs become part of the web?
 How do I do this efficiently and pragmatically?
Bits
 Stuff that's already shipped (lots)
 Stuff that will ship in Orcas (lots more)
 Stuff that will ship in TBD (a couple of things)
GET is More
It’s the URI, Stupid   Important Than   Formats Matter
                         You Think
The web pivots on URIs
 Easy to write down, share, and compare
 Hierarchy matches many information models
 Can be treated as opaque identifier (a la a GUID)
 Can be treated as a structured expression (a la S-Expr)
URI-space for a given service often infinite
 May also be state/data dependent
 Commonplace to use template syntax to specify quot;holesquot; in
 URI space (a la A9 and Joe Gregorio)
System.UriTemplate (quot;Orcasquot;) provides runtime support
for URI template syntax
UriTemplate.Bind fills in template holes with actual values
UriTemplate.Match extracts actuals from concrete URI
UriTemplateTable provides matching over multiple
candidate templates
 Most specific match wins
Uri baseAddress = new Uri( “http://localhost:81” );
string artist = quot;Led Zeppelinquot;;
string album = quot;Fourquot;;

UriTemplate template =
 new UriTemplate(“music/{artist}/{album}?format={format}quot; );

Uri boundUri = template.BindByPosition( baseAddress, artist, album, quot;rssquot; );

//boundUri:
// http://localhost:81/music/Led%20Zeppelin/Four?format=rss

UriTemplateMatch match = template.Match( baseAddress, boundUri );

Debug.Assert( match.BoundVariables[“artist”] == artist );
Debug.Assert( match.BoundVariables[“album”] == album );
Debug.Assert( match.BoundVariables[“format”] == “rss” );
Watch Steve Code…
GET   CHAOS
GET            CHAOS




POST         PUT   DELETE     OTHER
Degree of Resultant Apocalypse
                                                       Dogs/cats sleeping
                                                       together; mass hysteria

                                                       The Simpsons Movie

                                                       Lindsay Lohan

                                                       Rectal Itching


                                                       The Oprah Channel

                                                        Smooth Jazz
Turn off   Turn off PUT   Turn off POST Turn off GET
DELETE
[WebGet] (quot;orcasquot;) adds GET support to WCF service
operations
 Allows target URI space to be specified as URI template
 Templates parameters mapped to method parameters
 WebOperationContext provides easy access to web specifics
 (e.g., headers, status codes)
[WebInvoke] provides same for other HTTP methods
 POST is default method
[WebGet]/[WebInvoke] work great for quot;transparentquot; URI
with well-understood structure
 Ideal for server, OK (at best) for client
WebHttpClient (quot;experimentalquot;) is a more flexible client-
side programming model
 Supports both transparent and opaque URI
 Easier to use and more scalable than current WebClient API
Watch Steve Code…
Uniform operations are half the web quot;reachquot; proposition
Uniform formats for HTTP entity bodies are the other half
HTML was the ubiquitous format for projecting UX
Alas, multiple format(s) for exchanging data
 Original vision for quot;web dataquot; based on plain old XML (POX)
 JSON offers simpler format/data model
 RSS/ATOM constrain POX by adding list structure
 SOAP constraints POX by adding header processing model
WebGet/WebInvoke supports XML, JSON, or opaque
binary formats for request/response data
 SOAP and POX were in the box in V1 
SyndicationFeed/SyndicationItem provide rich
programming model for dealing with RSS/ATOM data
 Usable standalone or as WCF message content
 Integrates with serialization stacks for feed/item extensibility
Watch Steve Code…
Ships in “Orcas”
Already Shipped                      Speculative Bits

  System.Uri        UriTemplate       WebHttpClient
  WebClient          [WebGet]
    WPF           SyndicationFeed
    WCF            LINQ for XML
                  JSON Formatter
It’s the URI, Stupid              GET is More     Formats Matter
                                 Important Than
                                   You Think
                                                    SyndicationFeed


                                                     LINQ for XML


                   UriTemplate                      JSON Formatter


                                     [WebGet]
© 2007 Microsoft Corporation. All rights reserved. Microsoft, Windows, Windows Vista and other product names are or may be registered trademarks and/or trademarks in the U.S. and/or other countries.
The information herein is for informational purposes only and represents the current view of Microsoft Corporation as of the date of this presentation. Because Microsoft must respond to changing market conditions,
                it should not be interpreted to be a commitment on the part of Microsoft, and Microsoft cannot guarantee the accuracy of any information provided after the date of this presentation.
                                       MICROSOFT MAKES NO WARRANTIES, EXPRESS, IMPLIED OR STATUTORY, AS TO THE INFORMATION IN THIS PRESENTATION.

Contenu connexe

En vedette

Microsoft Silverlight Media End-to-End
Microsoft Silverlight Media End-to-EndMicrosoft Silverlight Media End-to-End
Microsoft Silverlight Media End-to-Endgoodfriday
 
High-Speed RIA Development with the Microsoft Silverlight Toolkit
High-Speed RIA Development with the Microsoft Silverlight ToolkitHigh-Speed RIA Development with the Microsoft Silverlight Toolkit
High-Speed RIA Development with the Microsoft Silverlight Toolkitgoodfriday
 
Using Dynamic Languages to Develop Microsoft Silverlight Applications
Using Dynamic Languages to Develop Microsoft Silverlight ApplicationsUsing Dynamic Languages to Develop Microsoft Silverlight Applications
Using Dynamic Languages to Develop Microsoft Silverlight Applicationsgoodfriday
 
Cloud Computing: What's in It for Me?
Cloud Computing: What's in It for Me?Cloud Computing: What's in It for Me?
Cloud Computing: What's in It for Me?goodfriday
 
Caching REST with Windows Communication Foundation
Caching REST with Windows Communication FoundationCaching REST with Windows Communication Foundation
Caching REST with Windows Communication Foundationgoodfriday
 
Designing Next Generation User Interface Experiences with Microsoft Expressio...
Designing Next Generation User Interface Experiences with Microsoft Expressio...Designing Next Generation User Interface Experiences with Microsoft Expressio...
Designing Next Generation User Interface Experiences with Microsoft Expressio...goodfriday
 
Interactive Advertising on the Windows Media Center Platform
Interactive Advertising on the Windows Media Center PlatformInteractive Advertising on the Windows Media Center Platform
Interactive Advertising on the Windows Media Center Platformgoodfriday
 
Holt Park Easter 09 Swim
Holt Park Easter 09 SwimHolt Park Easter 09 Swim
Holt Park Easter 09 Swimgoodfriday
 
Windows Mobile 6.5 Overview
Windows Mobile 6.5 OverviewWindows Mobile 6.5 Overview
Windows Mobile 6.5 Overviewgoodfriday
 
A Lap around Microsoft .NET Services
A Lap around Microsoft .NET ServicesA Lap around Microsoft .NET Services
A Lap around Microsoft .NET Servicesgoodfriday
 
Designing with Microsoft Expression Web: Today and Tomorrow
Designing with Microsoft Expression Web: Today and TomorrowDesigning with Microsoft Expression Web: Today and Tomorrow
Designing with Microsoft Expression Web: Today and Tomorrowgoodfriday
 
Presentación ordenador
Presentación ordenadorPresentación ordenador
Presentación ordenadorninfa11
 
Extrait de mvett exil de mekui mengômô ondo illustré ce2 b 2015 2016
Extrait de mvett exil de mekui mengômô ondo illustré ce2 b 2015 2016Extrait de mvett exil de mekui mengômô ondo illustré ce2 b 2015 2016
Extrait de mvett exil de mekui mengômô ondo illustré ce2 b 2015 2016Roland Garros
 
Plume d'y voir n° 3 année 2015 2016
Plume d'y voir n° 3 année 2015 2016Plume d'y voir n° 3 année 2015 2016
Plume d'y voir n° 3 année 2015 2016Roland Garros
 

En vedette (19)

Microsoft Silverlight Media End-to-End
Microsoft Silverlight Media End-to-EndMicrosoft Silverlight Media End-to-End
Microsoft Silverlight Media End-to-End
 
High-Speed RIA Development with the Microsoft Silverlight Toolkit
High-Speed RIA Development with the Microsoft Silverlight ToolkitHigh-Speed RIA Development with the Microsoft Silverlight Toolkit
High-Speed RIA Development with the Microsoft Silverlight Toolkit
 
Using Dynamic Languages to Develop Microsoft Silverlight Applications
Using Dynamic Languages to Develop Microsoft Silverlight ApplicationsUsing Dynamic Languages to Develop Microsoft Silverlight Applications
Using Dynamic Languages to Develop Microsoft Silverlight Applications
 
Cloud Computing: What's in It for Me?
Cloud Computing: What's in It for Me?Cloud Computing: What's in It for Me?
Cloud Computing: What's in It for Me?
 
Caching REST with Windows Communication Foundation
Caching REST with Windows Communication FoundationCaching REST with Windows Communication Foundation
Caching REST with Windows Communication Foundation
 
Designing Next Generation User Interface Experiences with Microsoft Expressio...
Designing Next Generation User Interface Experiences with Microsoft Expressio...Designing Next Generation User Interface Experiences with Microsoft Expressio...
Designing Next Generation User Interface Experiences with Microsoft Expressio...
 
Interactive Advertising on the Windows Media Center Platform
Interactive Advertising on the Windows Media Center PlatformInteractive Advertising on the Windows Media Center Platform
Interactive Advertising on the Windows Media Center Platform
 
Holt Park Easter 09 Swim
Holt Park Easter 09 SwimHolt Park Easter 09 Swim
Holt Park Easter 09 Swim
 
Windows Mobile 6.5 Overview
Windows Mobile 6.5 OverviewWindows Mobile 6.5 Overview
Windows Mobile 6.5 Overview
 
A Lap around Microsoft .NET Services
A Lap around Microsoft .NET ServicesA Lap around Microsoft .NET Services
A Lap around Microsoft .NET Services
 
Designing with Microsoft Expression Web: Today and Tomorrow
Designing with Microsoft Expression Web: Today and TomorrowDesigning with Microsoft Expression Web: Today and Tomorrow
Designing with Microsoft Expression Web: Today and Tomorrow
 
Presentación ordenador
Presentación ordenadorPresentación ordenador
Presentación ordenador
 
Extrait de mvett exil de mekui mengômô ondo illustré ce2 b 2015 2016
Extrait de mvett exil de mekui mengômô ondo illustré ce2 b 2015 2016Extrait de mvett exil de mekui mengômô ondo illustré ce2 b 2015 2016
Extrait de mvett exil de mekui mengômô ondo illustré ce2 b 2015 2016
 
Massimiliano Fronti_CV Minsize
Massimiliano Fronti_CV  MinsizeMassimiliano Fronti_CV  Minsize
Massimiliano Fronti_CV Minsize
 
Plume d'y voir n° 3 année 2015 2016
Plume d'y voir n° 3 année 2015 2016Plume d'y voir n° 3 année 2015 2016
Plume d'y voir n° 3 année 2015 2016
 
Cv large print 3
Cv large print 3Cv large print 3
Cv large print 3
 
Zen Quotes
Zen QuotesZen Quotes
Zen Quotes
 
Lei nº 11.795, de 8 de outubro de 2008 sistema de consórcios
Lei nº 11.795, de  8 de outubro de 2008   sistema de consórciosLei nº 11.795, de  8 de outubro de 2008   sistema de consórcios
Lei nº 11.795, de 8 de outubro de 2008 sistema de consórcios
 
Кислякова Елизавета
Кислякова ЕлизаветаКислякова Елизавета
Кислякова Елизавета
 

Similaire à Navigating the Programmable Web

REST, JSON and RSS with WCF 3.5
REST, JSON and RSS with WCF 3.5REST, JSON and RSS with WCF 3.5
REST, JSON and RSS with WCF 3.5Rob Windsor
 
Easing ASP.NET Web and SQL Server Database Deployment with VS 2010 and MsDeploy
Easing ASP.NET Web and  SQL Server Database Deployment withVS 2010 and MsDeployEasing ASP.NET Web and  SQL Server Database Deployment withVS 2010 and MsDeploy
Easing ASP.NET Web and SQL Server Database Deployment with VS 2010 and MsDeployEduardo Castro
 
Building+restful+webservice
Building+restful+webserviceBuilding+restful+webservice
Building+restful+webservicelonegunman
 
RESTful Data Services with the ADO.NET Data Services Framework
RESTful Data Services with the ADO.NET Data Services FrameworkRESTful Data Services with the ADO.NET Data Services Framework
RESTful Data Services with the ADO.NET Data Services Frameworkgoodfriday
 
Java EE 7 (Lyon JUG & Alpes JUG - March 2014)
Java EE 7 (Lyon JUG & Alpes JUG  - March 2014)Java EE 7 (Lyon JUG & Alpes JUG  - March 2014)
Java EE 7 (Lyon JUG & Alpes JUG - March 2014)David Delabassee
 
Webservices in SalesForce (part 1)
Webservices in SalesForce (part 1)Webservices in SalesForce (part 1)
Webservices in SalesForce (part 1)Mindfire Solutions
 
WSF PHP 2 Webinar Sep 2008
WSF PHP 2 Webinar Sep 2008WSF PHP 2 Webinar Sep 2008
WSF PHP 2 Webinar Sep 2008WSO2
 
Paul Fremantle Restful SOA Registry
Paul Fremantle Restful SOA RegistryPaul Fremantle Restful SOA Registry
Paul Fremantle Restful SOA Registrydeimos
 
Developing RESTful WebServices using Jersey
Developing RESTful WebServices using JerseyDeveloping RESTful WebServices using Jersey
Developing RESTful WebServices using Jerseyb_kathir
 
Building RESTful Services with WCF 4.0
Building RESTful Services with WCF 4.0Building RESTful Services with WCF 4.0
Building RESTful Services with WCF 4.0Saltmarch Media
 
Building RESTful Applications with OData
Building RESTful Applications with ODataBuilding RESTful Applications with OData
Building RESTful Applications with ODataTodd Anglin
 
Scalalable Language for a Scalable Web
Scalalable Language for a Scalable WebScalalable Language for a Scalable Web
Scalalable Language for a Scalable WebTimothy Perrett
 
Mike Taulty OData (NxtGen User Group UK)
Mike Taulty OData (NxtGen User Group UK)Mike Taulty OData (NxtGen User Group UK)
Mike Taulty OData (NxtGen User Group UK)ukdpe
 
Open Device Programmability: Hands-on Intro to RESTCONF (and a bit of NETCONF)
Open Device Programmability: Hands-on Intro to RESTCONF (and a bit of NETCONF)Open Device Programmability: Hands-on Intro to RESTCONF (and a bit of NETCONF)
Open Device Programmability: Hands-on Intro to RESTCONF (and a bit of NETCONF)Cisco DevNet
 
.Net3.5 Overview
.Net3.5 Overview.Net3.5 Overview
.Net3.5 Overviewllangit
 
WSO2Con Asia 2014 - WSO2 AppDev Platform for the Connected Business
WSO2Con Asia 2014 - WSO2 AppDev Platform for the Connected BusinessWSO2Con Asia 2014 - WSO2 AppDev Platform for the Connected Business
WSO2Con Asia 2014 - WSO2 AppDev Platform for the Connected BusinessWSO2
 

Similaire à Navigating the Programmable Web (20)

REST, JSON and RSS with WCF 3.5
REST, JSON and RSS with WCF 3.5REST, JSON and RSS with WCF 3.5
REST, JSON and RSS with WCF 3.5
 
Easing ASP.NET Web and SQL Server Database Deployment with VS 2010 and MsDeploy
Easing ASP.NET Web and  SQL Server Database Deployment withVS 2010 and MsDeployEasing ASP.NET Web and  SQL Server Database Deployment withVS 2010 and MsDeploy
Easing ASP.NET Web and SQL Server Database Deployment with VS 2010 and MsDeploy
 
Building+restful+webservice
Building+restful+webserviceBuilding+restful+webservice
Building+restful+webservice
 
RESTful Data Services with the ADO.NET Data Services Framework
RESTful Data Services with the ADO.NET Data Services FrameworkRESTful Data Services with the ADO.NET Data Services Framework
RESTful Data Services with the ADO.NET Data Services Framework
 
Java EE 7 (Lyon JUG & Alpes JUG - March 2014)
Java EE 7 (Lyon JUG & Alpes JUG  - March 2014)Java EE 7 (Lyon JUG & Alpes JUG  - March 2014)
Java EE 7 (Lyon JUG & Alpes JUG - March 2014)
 
Webservices in SalesForce (part 1)
Webservices in SalesForce (part 1)Webservices in SalesForce (part 1)
Webservices in SalesForce (part 1)
 
WSF PHP 2 Webinar Sep 2008
WSF PHP 2 Webinar Sep 2008WSF PHP 2 Webinar Sep 2008
WSF PHP 2 Webinar Sep 2008
 
Paul Fremantle Restful SOA Registry
Paul Fremantle Restful SOA RegistryPaul Fremantle Restful SOA Registry
Paul Fremantle Restful SOA Registry
 
Developing RESTful WebServices using Jersey
Developing RESTful WebServices using JerseyDeveloping RESTful WebServices using Jersey
Developing RESTful WebServices using Jersey
 
Building RESTful Services with WCF 4.0
Building RESTful Services with WCF 4.0Building RESTful Services with WCF 4.0
Building RESTful Services with WCF 4.0
 
Building RESTful Applications with OData
Building RESTful Applications with ODataBuilding RESTful Applications with OData
Building RESTful Applications with OData
 
Scalalable Language for a Scalable Web
Scalalable Language for a Scalable WebScalalable Language for a Scalable Web
Scalalable Language for a Scalable Web
 
Mike Taulty OData (NxtGen User Group UK)
Mike Taulty OData (NxtGen User Group UK)Mike Taulty OData (NxtGen User Group UK)
Mike Taulty OData (NxtGen User Group UK)
 
Avatar 2.0
Avatar 2.0Avatar 2.0
Avatar 2.0
 
Open Device Programmability: Hands-on Intro to RESTCONF (and a bit of NETCONF)
Open Device Programmability: Hands-on Intro to RESTCONF (and a bit of NETCONF)Open Device Programmability: Hands-on Intro to RESTCONF (and a bit of NETCONF)
Open Device Programmability: Hands-on Intro to RESTCONF (and a bit of NETCONF)
 
Producing an OData feed in 10 minutes
Producing an OData feed in 10 minutesProducing an OData feed in 10 minutes
Producing an OData feed in 10 minutes
 
.Net3.5 Overview
.Net3.5 Overview.Net3.5 Overview
.Net3.5 Overview
 
WSO2Con Asia 2014 - WSO2 AppDev Platform for the Connected Business
WSO2Con Asia 2014 - WSO2 AppDev Platform for the Connected BusinessWSO2Con Asia 2014 - WSO2 AppDev Platform for the Connected Business
WSO2Con Asia 2014 - WSO2 AppDev Platform for the Connected Business
 
WSO2 AppDev platform
WSO2 AppDev platformWSO2 AppDev platform
WSO2 AppDev platform
 
JAX-RS.next
JAX-RS.nextJAX-RS.next
JAX-RS.next
 

Plus de goodfriday

Narine Presentations 20051021 134052
Narine Presentations 20051021 134052Narine Presentations 20051021 134052
Narine Presentations 20051021 134052goodfriday
 
09 03 22 easter
09 03 22 easter09 03 22 easter
09 03 22 eastergoodfriday
 
Holy Week Easter 2009
Holy Week Easter 2009Holy Week Easter 2009
Holy Week Easter 2009goodfriday
 
Swarthmore Lentbrochure20092
Swarthmore Lentbrochure20092Swarthmore Lentbrochure20092
Swarthmore Lentbrochure20092goodfriday
 
Eastercard2009
Eastercard2009Eastercard2009
Eastercard2009goodfriday
 
Easterservices2009
Easterservices2009Easterservices2009
Easterservices2009goodfriday
 
Bulletin Current
Bulletin CurrentBulletin Current
Bulletin Currentgoodfriday
 
March 2009 Newsletter
March 2009 NewsletterMarch 2009 Newsletter
March 2009 Newslettergoodfriday
 
Lent Easter 2009
Lent Easter 2009Lent Easter 2009
Lent Easter 2009goodfriday
 
Easterpowersports09
Easterpowersports09Easterpowersports09
Easterpowersports09goodfriday
 
Easter Trading 09
Easter Trading 09Easter Trading 09
Easter Trading 09goodfriday
 
Easter Brochure 2009
Easter Brochure 2009Easter Brochure 2009
Easter Brochure 2009goodfriday
 
March April 2009 Calendar
March April 2009 CalendarMarch April 2009 Calendar
March April 2009 Calendargoodfriday
 
Easter 2009 Advertising
Easter 2009 AdvertisingEaster 2009 Advertising
Easter 2009 Advertisinggoodfriday
 

Plus de goodfriday (20)

Narine Presentations 20051021 134052
Narine Presentations 20051021 134052Narine Presentations 20051021 134052
Narine Presentations 20051021 134052
 
Triunemar05
Triunemar05Triunemar05
Triunemar05
 
09 03 22 easter
09 03 22 easter09 03 22 easter
09 03 22 easter
 
Holy Week Easter 2009
Holy Week Easter 2009Holy Week Easter 2009
Holy Week Easter 2009
 
Easter Letter
Easter LetterEaster Letter
Easter Letter
 
April2009
April2009April2009
April2009
 
Swarthmore Lentbrochure20092
Swarthmore Lentbrochure20092Swarthmore Lentbrochure20092
Swarthmore Lentbrochure20092
 
Eastercard2009
Eastercard2009Eastercard2009
Eastercard2009
 
Easterservices2009
Easterservices2009Easterservices2009
Easterservices2009
 
Bulletin Current
Bulletin CurrentBulletin Current
Bulletin Current
 
Easter2009
Easter2009Easter2009
Easter2009
 
Bulletin
BulletinBulletin
Bulletin
 
March 2009 Newsletter
March 2009 NewsletterMarch 2009 Newsletter
March 2009 Newsletter
 
Mar 29 2009
Mar 29 2009Mar 29 2009
Mar 29 2009
 
Lent Easter 2009
Lent Easter 2009Lent Easter 2009
Lent Easter 2009
 
Easterpowersports09
Easterpowersports09Easterpowersports09
Easterpowersports09
 
Easter Trading 09
Easter Trading 09Easter Trading 09
Easter Trading 09
 
Easter Brochure 2009
Easter Brochure 2009Easter Brochure 2009
Easter Brochure 2009
 
March April 2009 Calendar
March April 2009 CalendarMarch April 2009 Calendar
March April 2009 Calendar
 
Easter 2009 Advertising
Easter 2009 AdvertisingEaster 2009 Advertising
Easter 2009 Advertising
 

Dernier

Histor y of HAM Radio presentation slide
Histor y of HAM Radio presentation slideHistor y of HAM Radio presentation slide
Histor y of HAM Radio presentation slidevu2urc
 
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
 
Salesforce Community Group Quito, Salesforce 101
Salesforce Community Group Quito, Salesforce 101Salesforce Community Group Quito, Salesforce 101
Salesforce Community Group Quito, Salesforce 101Paola De la Torre
 
🐬 The future of MySQL is Postgres 🐘
🐬  The future of MySQL is Postgres   🐘🐬  The future of MySQL is Postgres   🐘
🐬 The future of MySQL is Postgres 🐘RTylerCroy
 
The Evolution of Money: Digital Transformation and CBDCs in Central Banking
The Evolution of Money: Digital Transformation and CBDCs in Central BankingThe Evolution of Money: Digital Transformation and CBDCs in Central Banking
The Evolution of Money: Digital Transformation and CBDCs in Central BankingSelcen Ozturkcan
 
Neo4j - How KGs are shaping the future of Generative AI at AWS Summit London ...
Neo4j - How KGs are shaping the future of Generative AI at AWS Summit London ...Neo4j - How KGs are shaping the future of Generative AI at AWS Summit London ...
Neo4j - How KGs are shaping the future of Generative AI at AWS Summit London ...Neo4j
 
Transcript: #StandardsGoals for 2024: What’s new for BISAC - Tech Forum 2024
Transcript: #StandardsGoals for 2024: What’s new for BISAC - Tech Forum 2024Transcript: #StandardsGoals for 2024: What’s new for BISAC - Tech Forum 2024
Transcript: #StandardsGoals for 2024: What’s new for BISAC - Tech Forum 2024BookNet Canada
 
The Role of Taxonomy and Ontology in Semantic Layers - Heather Hedden.pdf
The Role of Taxonomy and Ontology in Semantic Layers - Heather Hedden.pdfThe Role of Taxonomy and Ontology in Semantic Layers - Heather Hedden.pdf
The Role of Taxonomy and Ontology in Semantic Layers - Heather Hedden.pdfEnterprise Knowledge
 
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
 
How to convert PDF to text with Nanonets
How to convert PDF to text with NanonetsHow to convert PDF to text with Nanonets
How to convert PDF to text with Nanonetsnaman860154
 
Swan(sea) Song – personal research during my six years at Swansea ... and bey...
Swan(sea) Song – personal research during my six years at Swansea ... and bey...Swan(sea) Song – personal research during my six years at Swansea ... and bey...
Swan(sea) Song – personal research during my six years at Swansea ... and bey...Alan Dix
 
08448380779 Call Girls In Greater Kailash - I Women Seeking Men
08448380779 Call Girls In Greater Kailash - I Women Seeking Men08448380779 Call Girls In Greater Kailash - I Women Seeking Men
08448380779 Call Girls In Greater Kailash - I Women Seeking MenDelhi Call girls
 
Understanding the Laravel MVC Architecture
Understanding the Laravel MVC ArchitectureUnderstanding the Laravel MVC Architecture
Understanding the Laravel MVC ArchitecturePixlogix Infotech
 
FULL ENJOY 🔝 8264348440 🔝 Call Girls in Diplomatic Enclave | Delhi
FULL ENJOY 🔝 8264348440 🔝 Call Girls in Diplomatic Enclave | DelhiFULL ENJOY 🔝 8264348440 🔝 Call Girls in Diplomatic Enclave | Delhi
FULL ENJOY 🔝 8264348440 🔝 Call Girls in Diplomatic Enclave | Delhisoniya singh
 
[2024]Digital Global Overview Report 2024 Meltwater.pdf
[2024]Digital Global Overview Report 2024 Meltwater.pdf[2024]Digital Global Overview Report 2024 Meltwater.pdf
[2024]Digital Global Overview Report 2024 Meltwater.pdfhans926745
 
Finology Group – Insurtech Innovation Award 2024
Finology Group – Insurtech Innovation Award 2024Finology Group – Insurtech Innovation Award 2024
Finology Group – Insurtech Innovation Award 2024The Digital Insurer
 
Injustice - Developers Among Us (SciFiDevCon 2024)
Injustice - Developers Among Us (SciFiDevCon 2024)Injustice - Developers Among Us (SciFiDevCon 2024)
Injustice - Developers Among Us (SciFiDevCon 2024)Allon Mureinik
 
08448380779 Call Girls In Civil Lines Women Seeking Men
08448380779 Call Girls In Civil Lines Women Seeking Men08448380779 Call Girls In Civil Lines Women Seeking Men
08448380779 Call Girls In Civil Lines Women Seeking MenDelhi Call girls
 
Automating Business Process via MuleSoft Composer | Bangalore MuleSoft Meetup...
Automating Business Process via MuleSoft Composer | Bangalore MuleSoft Meetup...Automating Business Process via MuleSoft Composer | Bangalore MuleSoft Meetup...
Automating Business Process via MuleSoft Composer | Bangalore MuleSoft Meetup...shyamraj55
 
From Event to Action: Accelerate Your Decision Making with Real-Time Automation
From Event to Action: Accelerate Your Decision Making with Real-Time AutomationFrom Event to Action: Accelerate Your Decision Making with Real-Time Automation
From Event to Action: Accelerate Your Decision Making with Real-Time AutomationSafe Software
 

Dernier (20)

Histor y of HAM Radio presentation slide
Histor y of HAM Radio presentation slideHistor y of HAM Radio presentation slide
Histor y of HAM Radio presentation slide
 
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
 
Salesforce Community Group Quito, Salesforce 101
Salesforce Community Group Quito, Salesforce 101Salesforce Community Group Quito, Salesforce 101
Salesforce Community Group Quito, Salesforce 101
 
🐬 The future of MySQL is Postgres 🐘
🐬  The future of MySQL is Postgres   🐘🐬  The future of MySQL is Postgres   🐘
🐬 The future of MySQL is Postgres 🐘
 
The Evolution of Money: Digital Transformation and CBDCs in Central Banking
The Evolution of Money: Digital Transformation and CBDCs in Central BankingThe Evolution of Money: Digital Transformation and CBDCs in Central Banking
The Evolution of Money: Digital Transformation and CBDCs in Central Banking
 
Neo4j - How KGs are shaping the future of Generative AI at AWS Summit London ...
Neo4j - How KGs are shaping the future of Generative AI at AWS Summit London ...Neo4j - How KGs are shaping the future of Generative AI at AWS Summit London ...
Neo4j - How KGs are shaping the future of Generative AI at AWS Summit London ...
 
Transcript: #StandardsGoals for 2024: What’s new for BISAC - Tech Forum 2024
Transcript: #StandardsGoals for 2024: What’s new for BISAC - Tech Forum 2024Transcript: #StandardsGoals for 2024: What’s new for BISAC - Tech Forum 2024
Transcript: #StandardsGoals for 2024: What’s new for BISAC - Tech Forum 2024
 
The Role of Taxonomy and Ontology in Semantic Layers - Heather Hedden.pdf
The Role of Taxonomy and Ontology in Semantic Layers - Heather Hedden.pdfThe Role of Taxonomy and Ontology in Semantic Layers - Heather Hedden.pdf
The Role of Taxonomy and Ontology in Semantic Layers - Heather Hedden.pdf
 
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...
 
How to convert PDF to text with Nanonets
How to convert PDF to text with NanonetsHow to convert PDF to text with Nanonets
How to convert PDF to text with Nanonets
 
Swan(sea) Song – personal research during my six years at Swansea ... and bey...
Swan(sea) Song – personal research during my six years at Swansea ... and bey...Swan(sea) Song – personal research during my six years at Swansea ... and bey...
Swan(sea) Song – personal research during my six years at Swansea ... and bey...
 
08448380779 Call Girls In Greater Kailash - I Women Seeking Men
08448380779 Call Girls In Greater Kailash - I Women Seeking Men08448380779 Call Girls In Greater Kailash - I Women Seeking Men
08448380779 Call Girls In Greater Kailash - I Women Seeking Men
 
Understanding the Laravel MVC Architecture
Understanding the Laravel MVC ArchitectureUnderstanding the Laravel MVC Architecture
Understanding the Laravel MVC Architecture
 
FULL ENJOY 🔝 8264348440 🔝 Call Girls in Diplomatic Enclave | Delhi
FULL ENJOY 🔝 8264348440 🔝 Call Girls in Diplomatic Enclave | DelhiFULL ENJOY 🔝 8264348440 🔝 Call Girls in Diplomatic Enclave | Delhi
FULL ENJOY 🔝 8264348440 🔝 Call Girls in Diplomatic Enclave | Delhi
 
[2024]Digital Global Overview Report 2024 Meltwater.pdf
[2024]Digital Global Overview Report 2024 Meltwater.pdf[2024]Digital Global Overview Report 2024 Meltwater.pdf
[2024]Digital Global Overview Report 2024 Meltwater.pdf
 
Finology Group – Insurtech Innovation Award 2024
Finology Group – Insurtech Innovation Award 2024Finology Group – Insurtech Innovation Award 2024
Finology Group – Insurtech Innovation Award 2024
 
Injustice - Developers Among Us (SciFiDevCon 2024)
Injustice - Developers Among Us (SciFiDevCon 2024)Injustice - Developers Among Us (SciFiDevCon 2024)
Injustice - Developers Among Us (SciFiDevCon 2024)
 
08448380779 Call Girls In Civil Lines Women Seeking Men
08448380779 Call Girls In Civil Lines Women Seeking Men08448380779 Call Girls In Civil Lines Women Seeking Men
08448380779 Call Girls In Civil Lines Women Seeking Men
 
Automating Business Process via MuleSoft Composer | Bangalore MuleSoft Meetup...
Automating Business Process via MuleSoft Composer | Bangalore MuleSoft Meetup...Automating Business Process via MuleSoft Composer | Bangalore MuleSoft Meetup...
Automating Business Process via MuleSoft Composer | Bangalore MuleSoft Meetup...
 
From Event to Action: Accelerate Your Decision Making with Real-Time Automation
From Event to Action: Accelerate Your Decision Making with Real-Time AutomationFrom Event to Action: Accelerate Your Decision Making with Real-Time Automation
From Event to Action: Accelerate Your Decision Making with Real-Time Automation
 

Navigating the Programmable Web

  • 1.
  • 2. Don Box and Steve Maine URI Jockeys Microsoft Corporation
  • 3. Goals How do my programs use the web? How do my programs become part of the web? How do I do this efficiently and pragmatically? Bits Stuff that's already shipped (lots) Stuff that will ship in Orcas (lots more) Stuff that will ship in TBD (a couple of things)
  • 4. GET is More It’s the URI, Stupid Important Than Formats Matter You Think
  • 5. The web pivots on URIs Easy to write down, share, and compare Hierarchy matches many information models Can be treated as opaque identifier (a la a GUID) Can be treated as a structured expression (a la S-Expr) URI-space for a given service often infinite May also be state/data dependent Commonplace to use template syntax to specify quot;holesquot; in URI space (a la A9 and Joe Gregorio)
  • 6. System.UriTemplate (quot;Orcasquot;) provides runtime support for URI template syntax UriTemplate.Bind fills in template holes with actual values UriTemplate.Match extracts actuals from concrete URI UriTemplateTable provides matching over multiple candidate templates Most specific match wins
  • 7. Uri baseAddress = new Uri( “http://localhost:81” ); string artist = quot;Led Zeppelinquot;; string album = quot;Fourquot;; UriTemplate template = new UriTemplate(“music/{artist}/{album}?format={format}quot; ); Uri boundUri = template.BindByPosition( baseAddress, artist, album, quot;rssquot; ); //boundUri: // http://localhost:81/music/Led%20Zeppelin/Four?format=rss UriTemplateMatch match = template.Match( baseAddress, boundUri ); Debug.Assert( match.BoundVariables[“artist”] == artist ); Debug.Assert( match.BoundVariables[“album”] == album ); Debug.Assert( match.BoundVariables[“format”] == “rss” );
  • 9. GET CHAOS
  • 10. GET CHAOS POST PUT DELETE OTHER
  • 11. Degree of Resultant Apocalypse Dogs/cats sleeping together; mass hysteria The Simpsons Movie Lindsay Lohan Rectal Itching The Oprah Channel Smooth Jazz Turn off Turn off PUT Turn off POST Turn off GET DELETE
  • 12. [WebGet] (quot;orcasquot;) adds GET support to WCF service operations Allows target URI space to be specified as URI template Templates parameters mapped to method parameters WebOperationContext provides easy access to web specifics (e.g., headers, status codes) [WebInvoke] provides same for other HTTP methods POST is default method
  • 13. [WebGet]/[WebInvoke] work great for quot;transparentquot; URI with well-understood structure Ideal for server, OK (at best) for client WebHttpClient (quot;experimentalquot;) is a more flexible client- side programming model Supports both transparent and opaque URI Easier to use and more scalable than current WebClient API
  • 15. Uniform operations are half the web quot;reachquot; proposition Uniform formats for HTTP entity bodies are the other half HTML was the ubiquitous format for projecting UX Alas, multiple format(s) for exchanging data Original vision for quot;web dataquot; based on plain old XML (POX) JSON offers simpler format/data model RSS/ATOM constrain POX by adding list structure SOAP constraints POX by adding header processing model
  • 16. WebGet/WebInvoke supports XML, JSON, or opaque binary formats for request/response data SOAP and POX were in the box in V1  SyndicationFeed/SyndicationItem provide rich programming model for dealing with RSS/ATOM data Usable standalone or as WCF message content Integrates with serialization stacks for feed/item extensibility
  • 18. Ships in “Orcas” Already Shipped Speculative Bits System.Uri UriTemplate WebHttpClient WebClient [WebGet] WPF SyndicationFeed WCF LINQ for XML JSON Formatter
  • 19. It’s the URI, Stupid GET is More Formats Matter Important Than You Think SyndicationFeed LINQ for XML UriTemplate JSON Formatter [WebGet]
  • 20.
  • 21.
  • 22. © 2007 Microsoft Corporation. All rights reserved. Microsoft, Windows, Windows Vista and other product names are or may be registered trademarks and/or trademarks in the U.S. and/or other countries. The information herein is for informational purposes only and represents the current view of Microsoft Corporation as of the date of this presentation. Because Microsoft must respond to changing market conditions, it should not be interpreted to be a commitment on the part of Microsoft, and Microsoft cannot guarantee the accuracy of any information provided after the date of this presentation. MICROSOFT MAKES NO WARRANTIES, EXPRESS, IMPLIED OR STATUTORY, AS TO THE INFORMATION IN THIS PRESENTATION.