SlideShare une entreprise Scribd logo
1  sur  16
Building Systems with REST Glenn Block – Microsoft (the less and less evil empire)
HTTP is not RPC "People often mistakenly refer to HTTP as a remote procedure call (RPC) [23] mechanism simply because it involves requests and responses. What distinguishes RPC from other forms of network-based application communication is the notion of invoking a procedure on the remote machine, wherein the protocol identifies the procedure and passes it a fixed set of parameters, and then waits for the answer to be supplied within a return message using the same interface. Remote method invocation (RMI) is similar, except that the procedure is identified as an {object, method} tuple rather than a service procedure. Brokered RMI adds name service indirection and a few other tricks, but the interface is basically the same.   What distinguishes HTTP from RPC isn't the syntax. It isn't even the different characteristics gained from using a stream as a parameter, though that helps to explain why existing RPC mechanisms were not usable for the Web. What makes HTTP significantly different from RPC is that the requests are directed to resources using a generic interface with standard semantics that can be interpreted by intermediaries almost as well as by the machines that originate services. The result is an application that allows for layers of transformation and indirection that are independent of the information origin, which is very useful for an Internet-scale, multi-organization, anarchically scalable information system. RPC mechanisms, in contrast, are defined in terms of language APIs, not network-based applications." Intermediaries
HTTP is not a transport protocol HTTP is not designed to be a transport protocol. It is a transfer protocol in which the messages reflect the semantics of the Web architecture by performing actions on resources through the transfer and manipulation of representations of those resources. It is possible to achieve a wide range of functionality using this very simple interface, but following the interface is required in order for HTTP semantics to remain visible to intermediaries.   That is why HTTP goes through firewalls. Most of the recently proposed extensions to HTTP, aside from WebDAV [60], have merely used HTTP as a way to move other application protocols through a firewall, which is a fundamentally misguided idea. Not only does it defeat the purpose of having a firewall, but it won't work for the long term because firewall vendors will simply have to perform additional protocol filtering. It therefore makes no sense to do those extensions on top of HTTP, since the only thing HTTP accomplishes in that situation is to add overhead from a legacy syntax. A true application of HTTP maps the protocol user's actions to something that can be expressed using HTTP semantics, thus creating a network-based API to services which can be understood by agents and intermediaries without any knowledge of the application. Intermediaries Decoupling
REST,  HTTP done right
WCF Web Apis HTTP IS First Class
Browser Devices WCF Silverlight Desktop Reach any client
Code is easier to maintain Service Separation of concerns Testability "Raw" HTTP HTTP Concerns Simplified Configuration
Separating out HTTP and other concerns Application concerns / CLR Objects Http  Channel Http  Channel Http Channel Http Channel HTTP Message Low Level HTTP specific concerns / HTTP Only Http Processor Http Processor Http Processor Http Processor Service Operation HTTP Message
Resources
Representations
Conneg
Connectors Connectors
Intermediaries
Hypermedia
Where to find out more WCF WCF.Codeplex.com email:gblock@microsoft.com Twitter:gblock (at your own risk)
Where to find out more about REST http://tinyurl.com/therealrest Read: Rest in Practice

Contenu connexe

Tendances

Async API and Solace: Enabling the Event-Driven Future
Async API and Solace: Enabling the Event-Driven FutureAsync API and Solace: Enabling the Event-Driven Future
Async API and Solace: Enabling the Event-Driven FutureSolace
 
Guidelines for implementation of open API Policy
Guidelines for implementation of open API PolicyGuidelines for implementation of open API Policy
Guidelines for implementation of open API PolicyData Portal India
 
What is API Integration?
What is API Integration?What is API Integration?
What is API Integration?John Doe
 
TeraGrid's GRAM Auditing & Accounting, & its Integration with the LEAD Scienc...
TeraGrid's GRAM Auditing & Accounting, & its Integration with the LEAD Scienc...TeraGrid's GRAM Auditing & Accounting, & its Integration with the LEAD Scienc...
TeraGrid's GRAM Auditing & Accounting, & its Integration with the LEAD Scienc...marcuschristie
 
Programming coldfusion with APIs
Programming coldfusion with APIsProgramming coldfusion with APIs
Programming coldfusion with APIsNick Tong
 
PURSe and the PURSe Portlets
PURSe and the PURSe PortletsPURSe and the PURSe Portlets
PURSe and the PURSe Portletsmarcuschristie
 
Event-based API Patterns and Practices - AsyncAPI Online Conference
Event-based API Patterns and Practices - AsyncAPI Online ConferenceEvent-based API Patterns and Practices - AsyncAPI Online Conference
Event-based API Patterns and Practices - AsyncAPI Online ConferenceLaunchAny
 
[Kong summit 2019] Egress Gateway Pattern - Zhuojie Zhou
[Kong summit 2019] Egress Gateway Pattern - Zhuojie Zhou[Kong summit 2019] Egress Gateway Pattern - Zhuojie Zhou
[Kong summit 2019] Egress Gateway Pattern - Zhuojie Zhou00zzj
 
Build robust streaming data pipelines with MongoDB and Kafka
Build robust streaming data pipelines with MongoDB and KafkaBuild robust streaming data pipelines with MongoDB and Kafka
Build robust streaming data pipelines with MongoDB and KafkaAshnikbiz
 
AWS Atlanta meetup cognit Back to Basics
AWS Atlanta meetup cognit Back to BasicsAWS Atlanta meetup cognit Back to Basics
AWS Atlanta meetup cognit Back to BasicsAdam Book
 
Best practices for API Integration - Bearer.sh
Best practices for API Integration - Bearer.shBest practices for API Integration - Bearer.sh
Best practices for API Integration - Bearer.shGuillaume Montard
 
APIdays Zurich 2019 - Digital Ecosystems, fueled by APIs Matthias Biehl, API ...
APIdays Zurich 2019 - Digital Ecosystems, fueled by APIs Matthias Biehl, API ...APIdays Zurich 2019 - Digital Ecosystems, fueled by APIs Matthias Biehl, API ...
APIdays Zurich 2019 - Digital Ecosystems, fueled by APIs Matthias Biehl, API ...apidays
 
APIdays Singapore 2019 - Airbnb's Great Migration: Service APIs at scale, Jes...
APIdays Singapore 2019 - Airbnb's Great Migration: Service APIs at scale, Jes...APIdays Singapore 2019 - Airbnb's Great Migration: Service APIs at scale, Jes...
APIdays Singapore 2019 - Airbnb's Great Migration: Service APIs at scale, Jes...apidays
 
apidays LIVE New York 2021 - Event driven design and serverless by Omid Eidiv...
apidays LIVE New York 2021 - Event driven design and serverless by Omid Eidiv...apidays LIVE New York 2021 - Event driven design and serverless by Omid Eidiv...
apidays LIVE New York 2021 - Event driven design and serverless by Omid Eidiv...apidays
 
Enterprise solution Workrocks
Enterprise solution WorkrocksEnterprise solution Workrocks
Enterprise solution WorkrocksWorkrocks
 

Tendances (20)

Gravitee.io
Gravitee.ioGravitee.io
Gravitee.io
 
Async API and Solace: Enabling the Event-Driven Future
Async API and Solace: Enabling the Event-Driven FutureAsync API and Solace: Enabling the Event-Driven Future
Async API and Solace: Enabling the Event-Driven Future
 
Guidelines for implementation of open API Policy
Guidelines for implementation of open API PolicyGuidelines for implementation of open API Policy
Guidelines for implementation of open API Policy
 
API Integration
API IntegrationAPI Integration
API Integration
 
What is API Integration?
What is API Integration?What is API Integration?
What is API Integration?
 
TeraGrid's GRAM Auditing & Accounting, & its Integration with the LEAD Scienc...
TeraGrid's GRAM Auditing & Accounting, & its Integration with the LEAD Scienc...TeraGrid's GRAM Auditing & Accounting, & its Integration with the LEAD Scienc...
TeraGrid's GRAM Auditing & Accounting, & its Integration with the LEAD Scienc...
 
Api Layer
Api LayerApi Layer
Api Layer
 
Programming coldfusion with APIs
Programming coldfusion with APIsProgramming coldfusion with APIs
Programming coldfusion with APIs
 
PURSe and the PURSe Portlets
PURSe and the PURSe PortletsPURSe and the PURSe Portlets
PURSe and the PURSe Portlets
 
Event-based API Patterns and Practices - AsyncAPI Online Conference
Event-based API Patterns and Practices - AsyncAPI Online ConferenceEvent-based API Patterns and Practices - AsyncAPI Online Conference
Event-based API Patterns and Practices - AsyncAPI Online Conference
 
How Secure Are Your APIs?
How Secure Are Your APIs?How Secure Are Your APIs?
How Secure Are Your APIs?
 
[Kong summit 2019] Egress Gateway Pattern - Zhuojie Zhou
[Kong summit 2019] Egress Gateway Pattern - Zhuojie Zhou[Kong summit 2019] Egress Gateway Pattern - Zhuojie Zhou
[Kong summit 2019] Egress Gateway Pattern - Zhuojie Zhou
 
Build robust streaming data pipelines with MongoDB and Kafka
Build robust streaming data pipelines with MongoDB and KafkaBuild robust streaming data pipelines with MongoDB and Kafka
Build robust streaming data pipelines with MongoDB and Kafka
 
AWS Atlanta meetup cognit Back to Basics
AWS Atlanta meetup cognit Back to BasicsAWS Atlanta meetup cognit Back to Basics
AWS Atlanta meetup cognit Back to Basics
 
Best practices for API Integration - Bearer.sh
Best practices for API Integration - Bearer.shBest practices for API Integration - Bearer.sh
Best practices for API Integration - Bearer.sh
 
APIdays Zurich 2019 - Digital Ecosystems, fueled by APIs Matthias Biehl, API ...
APIdays Zurich 2019 - Digital Ecosystems, fueled by APIs Matthias Biehl, API ...APIdays Zurich 2019 - Digital Ecosystems, fueled by APIs Matthias Biehl, API ...
APIdays Zurich 2019 - Digital Ecosystems, fueled by APIs Matthias Biehl, API ...
 
APIdays Singapore 2019 - Airbnb's Great Migration: Service APIs at scale, Jes...
APIdays Singapore 2019 - Airbnb's Great Migration: Service APIs at scale, Jes...APIdays Singapore 2019 - Airbnb's Great Migration: Service APIs at scale, Jes...
APIdays Singapore 2019 - Airbnb's Great Migration: Service APIs at scale, Jes...
 
apidays LIVE New York 2021 - Event driven design and serverless by Omid Eidiv...
apidays LIVE New York 2021 - Event driven design and serverless by Omid Eidiv...apidays LIVE New York 2021 - Event driven design and serverless by Omid Eidiv...
apidays LIVE New York 2021 - Event driven design and serverless by Omid Eidiv...
 
Mule esb stripe
Mule esb stripeMule esb stripe
Mule esb stripe
 
Enterprise solution Workrocks
Enterprise solution WorkrocksEnterprise solution Workrocks
Enterprise solution Workrocks
 

En vedette

Skb web2.0
Skb web2.0Skb web2.0
Skb web2.0animove
 
Surviving the Zombie Apocalypse of Connected devices - Jfokus 2013
Surviving the Zombie Apocalypse of Connected devices - Jfokus 2013Surviving the Zombie Apocalypse of Connected devices - Jfokus 2013
Surviving the Zombie Apocalypse of Connected devices - Jfokus 2013Gustaf Nilsson Kotte
 
Realtime Conf - Lightning node.js dev
Realtime Conf - Lightning node.js devRealtime Conf - Lightning node.js dev
Realtime Conf - Lightning node.js devGlenn Block
 
speech @ ntu 20111020
speech @ ntu 20111020speech @ ntu 20111020
speech @ ntu 20111020Light Lin
 
蘋果樹 非常感動
蘋果樹 非常感動蘋果樹 非常感動
蘋果樹 非常感動Light Lin
 
歐洲國家氣質榜
歐洲國家氣質榜歐洲國家氣質榜
歐洲國家氣質榜Light Lin
 
Node js - Enterprise Class
Node js - Enterprise ClassNode js - Enterprise Class
Node js - Enterprise ClassGlenn Block
 
地球上20大最極端之地
地球上20大最極端之地地球上20大最極端之地
地球上20大最極端之地Light Lin
 
Splunk, a smorgasboard for developing big data solutions
Splunk, a smorgasboard for developing big data solutions Splunk, a smorgasboard for developing big data solutions
Splunk, a smorgasboard for developing big data solutions Glenn Block
 

En vedette (11)

Edge
EdgeEdge
Edge
 
Skb web2.0
Skb web2.0Skb web2.0
Skb web2.0
 
Surviving the Zombie Apocalypse of Connected devices - Jfokus 2013
Surviving the Zombie Apocalypse of Connected devices - Jfokus 2013Surviving the Zombie Apocalypse of Connected devices - Jfokus 2013
Surviving the Zombie Apocalypse of Connected devices - Jfokus 2013
 
Realtime Conf - Lightning node.js dev
Realtime Conf - Lightning node.js devRealtime Conf - Lightning node.js dev
Realtime Conf - Lightning node.js dev
 
speech @ ntu 20111020
speech @ ntu 20111020speech @ ntu 20111020
speech @ ntu 20111020
 
蘋果樹 非常感動
蘋果樹 非常感動蘋果樹 非常感動
蘋果樹 非常感動
 
歐洲國家氣質榜
歐洲國家氣質榜歐洲國家氣質榜
歐洲國家氣質榜
 
Node js - Enterprise Class
Node js - Enterprise ClassNode js - Enterprise Class
Node js - Enterprise Class
 
地球上20大最極端之地
地球上20大最極端之地地球上20大最極端之地
地球上20大最極端之地
 
Hypermedia
HypermediaHypermedia
Hypermedia
 
Splunk, a smorgasboard for developing big data solutions
Splunk, a smorgasboard for developing big data solutions Splunk, a smorgasboard for developing big data solutions
Splunk, a smorgasboard for developing big data solutions
 

Similaire à Building systems with rest

WebService-Java
WebService-JavaWebService-Java
WebService-Javahalwal
 
An API (Application Programming Interface) is the means by which thi.pdf
An API (Application Programming Interface) is the means by which thi.pdfAn API (Application Programming Interface) is the means by which thi.pdf
An API (Application Programming Interface) is the means by which thi.pdfarakalamkah11
 
Web Services 2009
Web Services 2009Web Services 2009
Web Services 2009Cathie101
 
Web Services 2009
Web Services 2009Web Services 2009
Web Services 2009Cathie101
 
Introduction to webservices
Introduction to webservicesIntroduction to webservices
Introduction to webservicesGagandeep Singh
 
Hypertext Transfer Protocol
Hypertext Transfer ProtocolHypertext Transfer Protocol
Hypertext Transfer ProtocolRajan Pandey
 
Secc tutorials development and deployment of rest web services in java_v2.0
Secc tutorials development and deployment of rest web services in java_v2.0Secc tutorials development and deployment of rest web services in java_v2.0
Secc tutorials development and deployment of rest web services in java_v2.0Aravindharamanan S
 

Similaire à Building systems with rest (20)

Restful web services
Restful web servicesRestful web services
Restful web services
 
Webbasics
WebbasicsWebbasics
Webbasics
 
Lab7 paper
Lab7 paperLab7 paper
Lab7 paper
 
WebService-Java
WebService-JavaWebService-Java
WebService-Java
 
Web services
Web servicesWeb services
Web services
 
An API (Application Programming Interface) is the means by which thi.pdf
An API (Application Programming Interface) is the means by which thi.pdfAn API (Application Programming Interface) is the means by which thi.pdf
An API (Application Programming Interface) is the means by which thi.pdf
 
CN UNIT V.pptx
CN UNIT V.pptxCN UNIT V.pptx
CN UNIT V.pptx
 
Overview of web services
Overview of web servicesOverview of web services
Overview of web services
 
REST & RESTful Web Services
REST & RESTful Web ServicesREST & RESTful Web Services
REST & RESTful Web Services
 
Api 101
Api 101Api 101
Api 101
 
Rest
RestRest
Rest
 
Web Services 2009
Web Services 2009Web Services 2009
Web Services 2009
 
Web Services 2009
Web Services 2009Web Services 2009
Web Services 2009
 
Java web services
Java web servicesJava web services
Java web services
 
Unit_2_Midddleware_2.ppt
Unit_2_Midddleware_2.pptUnit_2_Midddleware_2.ppt
Unit_2_Midddleware_2.ppt
 
Download
DownloadDownload
Download
 
Introduction to webservices
Introduction to webservicesIntroduction to webservices
Introduction to webservices
 
Web services
Web servicesWeb services
Web services
 
Hypertext Transfer Protocol
Hypertext Transfer ProtocolHypertext Transfer Protocol
Hypertext Transfer Protocol
 
Secc tutorials development and deployment of rest web services in java_v2.0
Secc tutorials development and deployment of rest web services in java_v2.0Secc tutorials development and deployment of rest web services in java_v2.0
Secc tutorials development and deployment of rest web services in java_v2.0
 

Plus de Glenn Block

Api Strat Portland 2017 Serverless Extensibility talk
Api Strat Portland 2017 Serverless Extensibility talkApi Strat Portland 2017 Serverless Extensibility talk
Api Strat Portland 2017 Serverless Extensibility talkGlenn Block
 
Serverless Extensibility
Serverless ExtensibilityServerless Extensibility
Serverless ExtensibilityGlenn Block
 
HTTP Event Collector, Simplified Developer Logging
HTTP Event Collector, Simplified Developer LoggingHTTP Event Collector, Simplified Developer Logging
HTTP Event Collector, Simplified Developer LoggingGlenn Block
 
Liberate your Application Logging
Liberate your Application LoggingLiberate your Application Logging
Liberate your Application LoggingGlenn Block
 
A Lap Around Developer Awesomeness in Splunk 6.3
A Lap Around Developer Awesomeness in Splunk 6.3A Lap Around Developer Awesomeness in Splunk 6.3
A Lap Around Developer Awesomeness in Splunk 6.3Glenn Block
 
Islands of Node in a sea of big data
Islands of Node in a sea of big dataIslands of Node in a sea of big data
Islands of Node in a sea of big dataGlenn Block
 
Splunk's api how we built it
Splunk's api   how we built itSplunk's api   how we built it
Splunk's api how we built itGlenn Block
 
Splunk for net developers
Splunk for net developersSplunk for net developers
Splunk for net developersGlenn Block
 
Getting your head around big data
Getting your head around big dataGetting your head around big data
Getting your head around big dataGlenn Block
 
Node js on Windows Azure
Node js on Windows AzureNode js on Windows Azure
Node js on Windows AzureGlenn Block
 
Building Extensible RIAs with MEF
Building Extensible RIAs with MEFBuilding Extensible RIAs with MEF
Building Extensible RIAs with MEFGlenn Block
 

Plus de Glenn Block (12)

Api Strat Portland 2017 Serverless Extensibility talk
Api Strat Portland 2017 Serverless Extensibility talkApi Strat Portland 2017 Serverless Extensibility talk
Api Strat Portland 2017 Serverless Extensibility talk
 
Serverless Extensibility
Serverless ExtensibilityServerless Extensibility
Serverless Extensibility
 
HTTP Event Collector, Simplified Developer Logging
HTTP Event Collector, Simplified Developer LoggingHTTP Event Collector, Simplified Developer Logging
HTTP Event Collector, Simplified Developer Logging
 
Liberate your Application Logging
Liberate your Application LoggingLiberate your Application Logging
Liberate your Application Logging
 
A Lap Around Developer Awesomeness in Splunk 6.3
A Lap Around Developer Awesomeness in Splunk 6.3A Lap Around Developer Awesomeness in Splunk 6.3
A Lap Around Developer Awesomeness in Splunk 6.3
 
Islands of Node in a sea of big data
Islands of Node in a sea of big dataIslands of Node in a sea of big data
Islands of Node in a sea of big data
 
Splunk and node
Splunk and nodeSplunk and node
Splunk and node
 
Splunk's api how we built it
Splunk's api   how we built itSplunk's api   how we built it
Splunk's api how we built it
 
Splunk for net developers
Splunk for net developersSplunk for net developers
Splunk for net developers
 
Getting your head around big data
Getting your head around big dataGetting your head around big data
Getting your head around big data
 
Node js on Windows Azure
Node js on Windows AzureNode js on Windows Azure
Node js on Windows Azure
 
Building Extensible RIAs with MEF
Building Extensible RIAs with MEFBuilding Extensible RIAs with MEF
Building Extensible RIAs with MEF
 

Dernier

[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
 
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
 
Handwritten Text Recognition for manuscripts and early printed texts
Handwritten Text Recognition for manuscripts and early printed textsHandwritten Text Recognition for manuscripts and early printed texts
Handwritten Text Recognition for manuscripts and early printed textsMaria Levchenko
 
Factors to Consider When Choosing Accounts Payable Services Providers.pptx
Factors to Consider When Choosing Accounts Payable Services Providers.pptxFactors to Consider When Choosing Accounts Payable Services Providers.pptx
Factors to Consider When Choosing Accounts Payable Services Providers.pptxKatpro Technologies
 
Exploring the Future Potential of AI-Enabled Smartphone Processors
Exploring the Future Potential of AI-Enabled Smartphone ProcessorsExploring the Future Potential of AI-Enabled Smartphone Processors
Exploring the Future Potential of AI-Enabled Smartphone Processorsdebabhi2
 
Powerful Google developer tools for immediate impact! (2023-24 C)
Powerful Google developer tools for immediate impact! (2023-24 C)Powerful Google developer tools for immediate impact! (2023-24 C)
Powerful Google developer tools for immediate impact! (2023-24 C)wesley chun
 
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
 
EIS-Webinar-Prompt-Knowledge-Eng-2024-04-08.pptx
EIS-Webinar-Prompt-Knowledge-Eng-2024-04-08.pptxEIS-Webinar-Prompt-Knowledge-Eng-2024-04-08.pptx
EIS-Webinar-Prompt-Knowledge-Eng-2024-04-08.pptxEarley Information Science
 
Axa Assurance Maroc - Insurer Innovation Award 2024
Axa Assurance Maroc - Insurer Innovation Award 2024Axa Assurance Maroc - Insurer Innovation Award 2024
Axa Assurance Maroc - Insurer Innovation Award 2024The Digital Insurer
 
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
 
GenCyber Cyber Security Day Presentation
GenCyber Cyber Security Day PresentationGenCyber Cyber Security Day Presentation
GenCyber Cyber Security Day PresentationMichael W. Hawkins
 
08448380779 Call Girls In Friends Colony Women Seeking Men
08448380779 Call Girls In Friends Colony Women Seeking Men08448380779 Call Girls In Friends Colony Women Seeking Men
08448380779 Call Girls In Friends Colony Women Seeking MenDelhi Call girls
 
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
 
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
 
TrustArc Webinar - Stay Ahead of US State Data Privacy Law Developments
TrustArc Webinar - Stay Ahead of US State Data Privacy Law DevelopmentsTrustArc Webinar - Stay Ahead of US State Data Privacy Law Developments
TrustArc Webinar - Stay Ahead of US State Data Privacy Law DevelopmentsTrustArc
 
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
 
IAC 2024 - IA Fast Track to Search Focused AI Solutions
IAC 2024 - IA Fast Track to Search Focused AI SolutionsIAC 2024 - IA Fast Track to Search Focused AI Solutions
IAC 2024 - IA Fast Track to Search Focused AI SolutionsEnterprise Knowledge
 
Slack Application Development 101 Slides
Slack Application Development 101 SlidesSlack Application Development 101 Slides
Slack Application Development 101 Slidespraypatel2
 
Tata AIG General Insurance Company - Insurer Innovation Award 2024
Tata AIG General Insurance Company - Insurer Innovation Award 2024Tata AIG General Insurance Company - Insurer Innovation Award 2024
Tata AIG General Insurance Company - Insurer Innovation Award 2024The Digital Insurer
 

Dernier (20)

[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
 
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...
 
Handwritten Text Recognition for manuscripts and early printed texts
Handwritten Text Recognition for manuscripts and early printed textsHandwritten Text Recognition for manuscripts and early printed texts
Handwritten Text Recognition for manuscripts and early printed texts
 
Factors to Consider When Choosing Accounts Payable Services Providers.pptx
Factors to Consider When Choosing Accounts Payable Services Providers.pptxFactors to Consider When Choosing Accounts Payable Services Providers.pptx
Factors to Consider When Choosing Accounts Payable Services Providers.pptx
 
Exploring the Future Potential of AI-Enabled Smartphone Processors
Exploring the Future Potential of AI-Enabled Smartphone ProcessorsExploring the Future Potential of AI-Enabled Smartphone Processors
Exploring the Future Potential of AI-Enabled Smartphone Processors
 
Powerful Google developer tools for immediate impact! (2023-24 C)
Powerful Google developer tools for immediate impact! (2023-24 C)Powerful Google developer tools for immediate impact! (2023-24 C)
Powerful Google developer tools for immediate impact! (2023-24 C)
 
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
 
EIS-Webinar-Prompt-Knowledge-Eng-2024-04-08.pptx
EIS-Webinar-Prompt-Knowledge-Eng-2024-04-08.pptxEIS-Webinar-Prompt-Knowledge-Eng-2024-04-08.pptx
EIS-Webinar-Prompt-Knowledge-Eng-2024-04-08.pptx
 
Axa Assurance Maroc - Insurer Innovation Award 2024
Axa Assurance Maroc - Insurer Innovation Award 2024Axa Assurance Maroc - Insurer Innovation Award 2024
Axa Assurance Maroc - Insurer Innovation Award 2024
 
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
 
GenCyber Cyber Security Day Presentation
GenCyber Cyber Security Day PresentationGenCyber Cyber Security Day Presentation
GenCyber Cyber Security Day Presentation
 
08448380779 Call Girls In Friends Colony Women Seeking Men
08448380779 Call Girls In Friends Colony Women Seeking Men08448380779 Call Girls In Friends Colony Women Seeking Men
08448380779 Call Girls In Friends Colony Women Seeking Men
 
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
 
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
 
TrustArc Webinar - Stay Ahead of US State Data Privacy Law Developments
TrustArc Webinar - Stay Ahead of US State Data Privacy Law DevelopmentsTrustArc Webinar - Stay Ahead of US State Data Privacy Law Developments
TrustArc Webinar - Stay Ahead of US State Data Privacy Law Developments
 
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
 
IAC 2024 - IA Fast Track to Search Focused AI Solutions
IAC 2024 - IA Fast Track to Search Focused AI SolutionsIAC 2024 - IA Fast Track to Search Focused AI Solutions
IAC 2024 - IA Fast Track to Search Focused AI Solutions
 
Slack Application Development 101 Slides
Slack Application Development 101 SlidesSlack Application Development 101 Slides
Slack Application Development 101 Slides
 
Tata AIG General Insurance Company - Insurer Innovation Award 2024
Tata AIG General Insurance Company - Insurer Innovation Award 2024Tata AIG General Insurance Company - Insurer Innovation Award 2024
Tata AIG General Insurance Company - Insurer Innovation Award 2024
 

Building systems with rest

  • 1. Building Systems with REST Glenn Block – Microsoft (the less and less evil empire)
  • 2. HTTP is not RPC "People often mistakenly refer to HTTP as a remote procedure call (RPC) [23] mechanism simply because it involves requests and responses. What distinguishes RPC from other forms of network-based application communication is the notion of invoking a procedure on the remote machine, wherein the protocol identifies the procedure and passes it a fixed set of parameters, and then waits for the answer to be supplied within a return message using the same interface. Remote method invocation (RMI) is similar, except that the procedure is identified as an {object, method} tuple rather than a service procedure. Brokered RMI adds name service indirection and a few other tricks, but the interface is basically the same.   What distinguishes HTTP from RPC isn't the syntax. It isn't even the different characteristics gained from using a stream as a parameter, though that helps to explain why existing RPC mechanisms were not usable for the Web. What makes HTTP significantly different from RPC is that the requests are directed to resources using a generic interface with standard semantics that can be interpreted by intermediaries almost as well as by the machines that originate services. The result is an application that allows for layers of transformation and indirection that are independent of the information origin, which is very useful for an Internet-scale, multi-organization, anarchically scalable information system. RPC mechanisms, in contrast, are defined in terms of language APIs, not network-based applications." Intermediaries
  • 3. HTTP is not a transport protocol HTTP is not designed to be a transport protocol. It is a transfer protocol in which the messages reflect the semantics of the Web architecture by performing actions on resources through the transfer and manipulation of representations of those resources. It is possible to achieve a wide range of functionality using this very simple interface, but following the interface is required in order for HTTP semantics to remain visible to intermediaries.   That is why HTTP goes through firewalls. Most of the recently proposed extensions to HTTP, aside from WebDAV [60], have merely used HTTP as a way to move other application protocols through a firewall, which is a fundamentally misguided idea. Not only does it defeat the purpose of having a firewall, but it won't work for the long term because firewall vendors will simply have to perform additional protocol filtering. It therefore makes no sense to do those extensions on top of HTTP, since the only thing HTTP accomplishes in that situation is to add overhead from a legacy syntax. A true application of HTTP maps the protocol user's actions to something that can be expressed using HTTP semantics, thus creating a network-based API to services which can be understood by agents and intermediaries without any knowledge of the application. Intermediaries Decoupling
  • 4. REST, HTTP done right
  • 5. WCF Web Apis HTTP IS First Class
  • 6. Browser Devices WCF Silverlight Desktop Reach any client
  • 7. Code is easier to maintain Service Separation of concerns Testability "Raw" HTTP HTTP Concerns Simplified Configuration
  • 8. Separating out HTTP and other concerns Application concerns / CLR Objects Http Channel Http Channel Http Channel Http Channel HTTP Message Low Level HTTP specific concerns / HTTP Only Http Processor Http Processor Http Processor Http Processor Service Operation HTTP Message
  • 15. Where to find out more WCF WCF.Codeplex.com email:gblock@microsoft.com Twitter:gblock (at your own risk)
  • 16. Where to find out more about REST http://tinyurl.com/therealrest Read: Rest in Practice

Notes de l'éditeur

  1. WCF already supports exposing services over HTTP. We have heard for you that is a good start but you want us to go further
  2. WCF already supports exposing services over HTTP. We have heard for you that is a good start but you want us to go further
  3. http://www.flickr.com/photos/annarella1979/2739832348/sizes/l/in/photostream/
  4. http://www.flickr.com/photos/wongjunhao/2761709029/sizes/l/in/photostream/
  5. http://www.flickr.com/photos/mattwright/1787856/sizes/l/in/photostream/