SlideShare una empresa de Scribd logo
1 de 53
HTTP: the other ESB Ryan Riley Catapult Systems, Inc. Houston TechFest 2009
Agenda Setting the Stage Alternatives HTTP: the application protocol Common Concerns Questions Resources
Setting the Stage
First things first Demand – Specialized Tools Different tools needed among front and back office, as well as field workers Once people get used to a tool, they don’t want to change … except to get the features they want Supply – One-size-fits-all Create reusable frameworks or components and force them to fit the need Save time and money (80/20 rule)
The result? Old Computer Equipment 1 from Dolor IpsumSome rights reserved
The Integration Problem Start with Application Silos Then need to Share and Aggregate Data Note: Different systems with different needs Different interpretations of data semantics MUST communicate Systems rarely die, but we keep adding more
The Contenders File sharing Databases Direct sharing or ETL / Data Stores How do you negotiate schema changes? Message-Oriented Middleware (MOM) Fire and forget Vendors rule the world: Message Broker, ESB, etc. Service-Oriented Architecture (SOA) Back to silos Which platform: Java, .NET, ESB framework, etc.
Complexity becomes us Starts simple Ends … Spaghetti? Yum! from DanoSome rights reserved
ESB to the rescue!
… or perhaps not “Enterprise Spaghetti Bus” – Jim Webber
Meanwhile … New patterns and practices Agile and Lean TDD, BDD, DDD, CI, CQS/DDDD, etc. Frameworks and tools to the rescue! The web as an application platform WS-* emerges as an SOA solution Rails & co make web programming easier
Alternatives
WS-* Messaging: SOAP Discoverability: WSDL Security: WS-Security Reliability: WS-MessageReliability And a host of others: WS-BusinessActivity BPEL Etc.
WS-* (cont.) Scalability Reliance on HTTP POST Complex to achieve Transactions Complicated protocols Based on classic RPC paradigms Brought to you by HTTP POST
Other alternatives ESB frameworks: NServiceBus, MassTransit, Rhino.ServiceBus, etc. Back to file/database sharing? Most of these are fire and forget models.
HTTP: the application protocol (and you thought the second T was for transport?)
HTTP is comprehensive HTTP verbs GET PUT POST DELETE HEAD OPTIONS And more through extensibility!
Messaging Request Response It’s about communication! GET  /index.html  HTTP/1.1 Accept: application/xhtml+xml Accept-Language: en HTTP/1.1  200  OK Content-type: application/xhtml+xml Content-length: 16 Hello TechFest!
Status Codes 100 – 101 Informational 200 – 206 Success 300 – 307 Redirection 400 – 417 Client Error 500 – 505 Server Error
GET Idempotent = massively scalable via caching Control caching through HTTP headers: Client => Last-Modified + If-Modified-Since		or If-None-Match + ETag Server => Cache-Control and Expires
PUT Useful for updating and creating Idempotent = safe to repeat
POST Create a new resource Not necessarily safe
DELETE Disable a resource (though not necessarily destroy) Safe to repeat, but the response is generally different when the resource doesn’t exist.
HEAD Retrieves only the headers Conditional GET
OPTIONS Retrieves the HTTP verbs a resource URI will accept. The protocol tells the client how it may proceed.
Hypermedia Types XHTML (application/xhtml+xml) RSS (application/rss-2.0) Atom/AtomPub (application/atom+xml) Custom (application/vnd.my-format)
XHTML?
XHTML for Messaging
 Why not XLink? Open XML link extension Not well understood nor clearly defined In the end, you would still need custom processing, so use application/vnd.custom+xml instead of application/xml
Atom / AtomPub Well-understood hypermedia format Collection <atom:feed> and single <atom:entry> formats Can use <atom:link> within custom media types for well understood link semantics Works well as a queue (if you must) Simple and extensible Debate over message formats in REST
Add Semantics Microformats RDF / RDFa(FOAF) Prefermicroformats(rel tag)
The Role of Hypermedia REpresentational State Transfer (REST) Accept header(contentnegotiation) State transitions / Workflows (HATEOAS) Single entry point Next steps provided through links Can swap out providers (links) GET  /index.html  HTTP/1.1 Accept: application/xhtml+xml, application/json Accept-Language: en
HATEOAS http://www.infoq.com/articles/subbu-allamaraju-rest
HATEOAS, cont. No HATEOAS With HATEOAS http://www.infoq.com/articles/subbu-allamaraju-rest
Reliability Idempotency Response Error Codes HTTP is synchronous by nature Other ESB platforms are generally asynchronous Fire and forget Need additional fault tolerance mechanisms
Security HTTP Basic and Digest authentication HTTPs, the tried and true (but not cahceable) OpenID, OpenAuth, SAML
Scalability Stateless, so massively scalable Client and Proxy caches
Transactions Hypermedia (HATEOAS) Different paradigm with richer semantics Workflows and state transitions
How to GET a Cup of Coffee http://www.infoq.com/articles/webber-rest-workflow
Common Concerns
Security Concerns Isn’t the web inherently insecure? HTTPs is used everyday to transact millions Other protocols emerging OpenId + OpenAuth SAML
Complexity Few frameworks exist for pure HTTP use RESTClient and Sinatra (Ruby) Limonade (PHP) OpenRasta (.NET) Fairly simple to create from scratch Mash-ups (just see how easy this is) On the web Call services from within Excel
OpenRasta (C#)
Limonade (PHP)
Sinatra (Ruby)
Tight-coupling This is a fear from having used WSDL HATEOAS reduces coupling even more! Don’t use URI templates (except internally) URIs can be swapped at any time Requires a layer in between your domain and the external API Upgrade client and server independently (Accepts header)
Summary
There is no spoon (or bus) Paradigm shift Dumb network vs. Smart network Meaningful semantics over classic, distributed spaghetti architecture Take advantage of theexisting, richinfrastructure
Distributed computing for years now has seemed like an endless repackaging of the same old ideas, patterns, and technology. Through REST, I finally feel like distributing computing is evolving and moving forward again. While REST won't solve world hunger, it will certainly give us a new perspective to practice software engineering.~ Bill Burke, JBoss
Questions?
References Dr. Roy Fielding’s Dissertation HTTP/1.1 (rfc2616) The Atom Syndication Format The Atom Publishing Protocol
Books Get /Connected (coming 2009/2010)(Parastatidas, Robinson, Webber) RESTful Web Services(Richardson & Ruby) RESTful Web Services Cookbook(Allamaraju & Amundsen)
Presentations Get /Connected Guerilla SOA A Couple of Ways to Skin an Internet Scale Cat Does My Bus Look Big in This? RESTful Approaches to Financial Systems Integration

Más contenido relacionado

La actualidad más candente

Asynchronous reading and writing http r equest
Asynchronous reading and writing http r equestAsynchronous reading and writing http r equest
Asynchronous reading and writing http r equestPragyanshis Patnaik
 
REST - Representational state transfer
REST - Representational state transferREST - Representational state transfer
REST - Representational state transferTricode (part of Dept)
 
Overview of Rest Service and ASP.NET WEB API
Overview of Rest Service and ASP.NET WEB APIOverview of Rest Service and ASP.NET WEB API
Overview of Rest Service and ASP.NET WEB APIPankaj Bajaj
 
Building an web 2.0 blog RAPIDLY in Alpha Five v10 with Codeless AJAX
Building an web 2.0 blog RAPIDLY in Alpha Five v10 with Codeless AJAXBuilding an web 2.0 blog RAPIDLY in Alpha Five v10 with Codeless AJAX
Building an web 2.0 blog RAPIDLY in Alpha Five v10 with Codeless AJAXRichard Rabins
 
Web Server Technologies I: HTTP & Getting Started
Web Server Technologies I: HTTP & Getting StartedWeb Server Technologies I: HTTP & Getting Started
Web Server Technologies I: HTTP & Getting StartedPort80 Software
 
Introduction to the Web API
Introduction to the Web APIIntroduction to the Web API
Introduction to the Web APIBrad Genereaux
 
ITB2016 - Building ColdFusion RESTFul Services
ITB2016 - Building ColdFusion RESTFul ServicesITB2016 - Building ColdFusion RESTFul Services
ITB2016 - Building ColdFusion RESTFul ServicesOrtus Solutions, Corp
 
Advanced WCF Workshop
Advanced WCF WorkshopAdvanced WCF Workshop
Advanced WCF WorkshopIdo Flatow
 

La actualidad más candente (13)

Asynchronous reading and writing http r equest
Asynchronous reading and writing http r equestAsynchronous reading and writing http r equest
Asynchronous reading and writing http r equest
 
Web Fundamental
Web FundamentalWeb Fundamental
Web Fundamental
 
Restful API's with ColdFusion
Restful API's with ColdFusionRestful API's with ColdFusion
Restful API's with ColdFusion
 
REST - Representational state transfer
REST - Representational state transferREST - Representational state transfer
REST - Representational state transfer
 
Restful web services ppt
Restful web services pptRestful web services ppt
Restful web services ppt
 
Web servers
Web serversWeb servers
Web servers
 
Overview of Rest Service and ASP.NET WEB API
Overview of Rest Service and ASP.NET WEB APIOverview of Rest Service and ASP.NET WEB API
Overview of Rest Service and ASP.NET WEB API
 
Web Services Tutorial
Web Services TutorialWeb Services Tutorial
Web Services Tutorial
 
Building an web 2.0 blog RAPIDLY in Alpha Five v10 with Codeless AJAX
Building an web 2.0 blog RAPIDLY in Alpha Five v10 with Codeless AJAXBuilding an web 2.0 blog RAPIDLY in Alpha Five v10 with Codeless AJAX
Building an web 2.0 blog RAPIDLY in Alpha Five v10 with Codeless AJAX
 
Web Server Technologies I: HTTP & Getting Started
Web Server Technologies I: HTTP & Getting StartedWeb Server Technologies I: HTTP & Getting Started
Web Server Technologies I: HTTP & Getting Started
 
Introduction to the Web API
Introduction to the Web APIIntroduction to the Web API
Introduction to the Web API
 
ITB2016 - Building ColdFusion RESTFul Services
ITB2016 - Building ColdFusion RESTFul ServicesITB2016 - Building ColdFusion RESTFul Services
ITB2016 - Building ColdFusion RESTFul Services
 
Advanced WCF Workshop
Advanced WCF WorkshopAdvanced WCF Workshop
Advanced WCF Workshop
 

Similar a HTTP: the Other ESB

Scalable Apache for Beginners
Scalable Apache for BeginnersScalable Apache for Beginners
Scalable Apache for Beginnerswebhostingguy
 
1 web technologies
1 web technologies1 web technologies
1 web technologiesJalpesh Vasa
 
Web technology-guide
Web technology-guideWeb technology-guide
Web technology-guideSrihari
 
Rest and the hypermedia constraint
Rest and the hypermedia constraintRest and the hypermedia constraint
Rest and the hypermedia constraintInviqa
 
Computer network (10)
Computer network (10)Computer network (10)
Computer network (10)NYversity
 
PHP Training: Module 1
PHP Training: Module 1PHP Training: Module 1
PHP Training: Module 1hussulinux
 
200211 Fielding Apachecon
200211 Fielding Apachecon200211 Fielding Apachecon
200211 Fielding ApacheconDaniel Parker
 
Innovate2011 Keys to Building OSLC Integrations
Innovate2011 Keys to Building OSLC IntegrationsInnovate2011 Keys to Building OSLC Integrations
Innovate2011 Keys to Building OSLC IntegrationsSteve Speicher
 
Server Monitoring (Scaling while bootstrapped)
Server Monitoring  (Scaling while bootstrapped)Server Monitoring  (Scaling while bootstrapped)
Server Monitoring (Scaling while bootstrapped)Ajibola Aiyedogbon
 
Three SOA Case Studies
Three SOA Case StudiesThree SOA Case Studies
Three SOA Case StudiesPaul Fremantle
 
RestMS Introduction
RestMS IntroductionRestMS Introduction
RestMS Introductionpieterh
 
REST in ( a mobile ) peace @ WHYMCA 05-21-2011
REST in ( a mobile ) peace @ WHYMCA 05-21-2011REST in ( a mobile ) peace @ WHYMCA 05-21-2011
REST in ( a mobile ) peace @ WHYMCA 05-21-2011Alessandro Nadalin
 
ODTUG KSCOPE 2018 - REST APIs for FDMEE and Cloud Data Management
ODTUG KSCOPE 2018 - REST APIs for FDMEE and Cloud Data ManagementODTUG KSCOPE 2018 - REST APIs for FDMEE and Cloud Data Management
ODTUG KSCOPE 2018 - REST APIs for FDMEE and Cloud Data ManagementFrancisco Amores
 
Software performance testing_overview
Software performance testing_overviewSoftware performance testing_overview
Software performance testing_overviewRohan Bhattarai
 

Similar a HTTP: the Other ESB (20)

Scalable Apache for Beginners
Scalable Apache for BeginnersScalable Apache for Beginners
Scalable Apache for Beginners
 
1 web technologies
1 web technologies1 web technologies
1 web technologies
 
Web technology-guide
Web technology-guideWeb technology-guide
Web technology-guide
 
HTTP1.1/2 overview
HTTP1.1/2 overviewHTTP1.1/2 overview
HTTP1.1/2 overview
 
Web
WebWeb
Web
 
Api 101
Api 101Api 101
Api 101
 
Rest and the hypermedia constraint
Rest and the hypermedia constraintRest and the hypermedia constraint
Rest and the hypermedia constraint
 
Computer network (10)
Computer network (10)Computer network (10)
Computer network (10)
 
Google App Engine
Google App EngineGoogle App Engine
Google App Engine
 
Webtechnologies
Webtechnologies Webtechnologies
Webtechnologies
 
PHP Training: Module 1
PHP Training: Module 1PHP Training: Module 1
PHP Training: Module 1
 
Spider Course Day 1
Spider Course Day 1Spider Course Day 1
Spider Course Day 1
 
200211 Fielding Apachecon
200211 Fielding Apachecon200211 Fielding Apachecon
200211 Fielding Apachecon
 
Innovate2011 Keys to Building OSLC Integrations
Innovate2011 Keys to Building OSLC IntegrationsInnovate2011 Keys to Building OSLC Integrations
Innovate2011 Keys to Building OSLC Integrations
 
Server Monitoring (Scaling while bootstrapped)
Server Monitoring  (Scaling while bootstrapped)Server Monitoring  (Scaling while bootstrapped)
Server Monitoring (Scaling while bootstrapped)
 
Three SOA Case Studies
Three SOA Case StudiesThree SOA Case Studies
Three SOA Case Studies
 
RestMS Introduction
RestMS IntroductionRestMS Introduction
RestMS Introduction
 
REST in ( a mobile ) peace @ WHYMCA 05-21-2011
REST in ( a mobile ) peace @ WHYMCA 05-21-2011REST in ( a mobile ) peace @ WHYMCA 05-21-2011
REST in ( a mobile ) peace @ WHYMCA 05-21-2011
 
ODTUG KSCOPE 2018 - REST APIs for FDMEE and Cloud Data Management
ODTUG KSCOPE 2018 - REST APIs for FDMEE and Cloud Data ManagementODTUG KSCOPE 2018 - REST APIs for FDMEE and Cloud Data Management
ODTUG KSCOPE 2018 - REST APIs for FDMEE and Cloud Data Management
 
Software performance testing_overview
Software performance testing_overviewSoftware performance testing_overview
Software performance testing_overview
 

Más de Ryan Riley

A Brief History of OWIN
A Brief History of OWINA Brief History of OWIN
A Brief History of OWINRyan Riley
 
Introduction to F#x
Introduction to F#xIntroduction to F#x
Introduction to F#xRyan Riley
 
The Functional Web
The Functional WebThe Functional Web
The Functional WebRyan Riley
 
Functional Programming
Functional ProgrammingFunctional Programming
Functional ProgrammingRyan Riley
 
Domain Driven Design
Domain Driven DesignDomain Driven Design
Domain Driven DesignRyan Riley
 

Más de Ryan Riley (9)

A Brief History of OWIN
A Brief History of OWINA Brief History of OWIN
A Brief History of OWIN
 
F# on the Web
F# on the WebF# on the Web
F# on the Web
 
Test first
Test firstTest first
Test first
 
Introduction to F#x
Introduction to F#xIntroduction to F#x
Introduction to F#x
 
The Functional Web
The Functional WebThe Functional Web
The Functional Web
 
Rx workshop
Rx workshopRx workshop
Rx workshop
 
Functional Programming
Functional ProgrammingFunctional Programming
Functional Programming
 
Practical F#
Practical F#Practical F#
Practical F#
 
Domain Driven Design
Domain Driven DesignDomain Driven Design
Domain Driven Design
 

Último

Raspberry Pi 5: Challenges and Solutions in Bringing up an OpenGL/Vulkan Driv...
Raspberry Pi 5: Challenges and Solutions in Bringing up an OpenGL/Vulkan Driv...Raspberry Pi 5: Challenges and Solutions in Bringing up an OpenGL/Vulkan Driv...
Raspberry Pi 5: Challenges and Solutions in Bringing up an OpenGL/Vulkan Driv...Igalia
 
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
 
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
 
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
 
Artificial Intelligence: Facts and Myths
Artificial Intelligence: Facts and MythsArtificial Intelligence: Facts and Myths
Artificial Intelligence: Facts and MythsJoaquim Jorge
 
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
 
CNv6 Instructor Chapter 6 Quality of Service
CNv6 Instructor Chapter 6 Quality of ServiceCNv6 Instructor Chapter 6 Quality of Service
CNv6 Instructor Chapter 6 Quality of Servicegiselly40
 
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
 
🐬 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
 
[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
 
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
 
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
 
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
 
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
 
GenCyber Cyber Security Day Presentation
GenCyber Cyber Security Day PresentationGenCyber Cyber Security Day Presentation
GenCyber Cyber Security Day PresentationMichael W. Hawkins
 
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
 
Workshop - Best of Both Worlds_ Combine KG and Vector search for enhanced R...
Workshop - Best of Both Worlds_ Combine  KG and Vector search for  enhanced R...Workshop - Best of Both Worlds_ Combine  KG and Vector search for  enhanced R...
Workshop - Best of Both Worlds_ Combine KG and Vector search for enhanced R...Neo4j
 
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
 
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
 
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
 

Último (20)

Raspberry Pi 5: Challenges and Solutions in Bringing up an OpenGL/Vulkan Driv...
Raspberry Pi 5: Challenges and Solutions in Bringing up an OpenGL/Vulkan Driv...Raspberry Pi 5: Challenges and Solutions in Bringing up an OpenGL/Vulkan Driv...
Raspberry Pi 5: Challenges and Solutions in Bringing up an OpenGL/Vulkan Driv...
 
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
 
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
 
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
 
Artificial Intelligence: Facts and Myths
Artificial Intelligence: Facts and MythsArtificial Intelligence: Facts and Myths
Artificial Intelligence: Facts and Myths
 
Partners Life - Insurer Innovation Award 2024
Partners Life - Insurer Innovation Award 2024Partners Life - Insurer Innovation Award 2024
Partners Life - Insurer Innovation Award 2024
 
CNv6 Instructor Chapter 6 Quality of Service
CNv6 Instructor Chapter 6 Quality of ServiceCNv6 Instructor Chapter 6 Quality of Service
CNv6 Instructor Chapter 6 Quality of Service
 
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
 
🐬 The future of MySQL is Postgres 🐘
🐬  The future of MySQL is Postgres   🐘🐬  The future of MySQL is Postgres   🐘
🐬 The future of MySQL is Postgres 🐘
 
[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
 
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
 
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
 
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...
 
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...
 
GenCyber Cyber Security Day Presentation
GenCyber Cyber Security Day PresentationGenCyber Cyber Security Day Presentation
GenCyber Cyber Security Day Presentation
 
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...
 
Workshop - Best of Both Worlds_ Combine KG and Vector search for enhanced R...
Workshop - Best of Both Worlds_ Combine  KG and Vector search for  enhanced R...Workshop - Best of Both Worlds_ Combine  KG and Vector search for  enhanced R...
Workshop - Best of Both Worlds_ Combine KG and Vector search for enhanced R...
 
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
 
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
 
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)
 

HTTP: the Other ESB

  • 1. HTTP: the other ESB Ryan Riley Catapult Systems, Inc. Houston TechFest 2009
  • 2. Agenda Setting the Stage Alternatives HTTP: the application protocol Common Concerns Questions Resources
  • 4. First things first Demand – Specialized Tools Different tools needed among front and back office, as well as field workers Once people get used to a tool, they don’t want to change … except to get the features they want Supply – One-size-fits-all Create reusable frameworks or components and force them to fit the need Save time and money (80/20 rule)
  • 5. The result? Old Computer Equipment 1 from Dolor IpsumSome rights reserved
  • 6. The Integration Problem Start with Application Silos Then need to Share and Aggregate Data Note: Different systems with different needs Different interpretations of data semantics MUST communicate Systems rarely die, but we keep adding more
  • 7. The Contenders File sharing Databases Direct sharing or ETL / Data Stores How do you negotiate schema changes? Message-Oriented Middleware (MOM) Fire and forget Vendors rule the world: Message Broker, ESB, etc. Service-Oriented Architecture (SOA) Back to silos Which platform: Java, .NET, ESB framework, etc.
  • 8. Complexity becomes us Starts simple Ends … Spaghetti? Yum! from DanoSome rights reserved
  • 9. ESB to the rescue!
  • 10. … or perhaps not “Enterprise Spaghetti Bus” – Jim Webber
  • 11. Meanwhile … New patterns and practices Agile and Lean TDD, BDD, DDD, CI, CQS/DDDD, etc. Frameworks and tools to the rescue! The web as an application platform WS-* emerges as an SOA solution Rails & co make web programming easier
  • 13. WS-* Messaging: SOAP Discoverability: WSDL Security: WS-Security Reliability: WS-MessageReliability And a host of others: WS-BusinessActivity BPEL Etc.
  • 14. WS-* (cont.) Scalability Reliance on HTTP POST Complex to achieve Transactions Complicated protocols Based on classic RPC paradigms Brought to you by HTTP POST
  • 15. Other alternatives ESB frameworks: NServiceBus, MassTransit, Rhino.ServiceBus, etc. Back to file/database sharing? Most of these are fire and forget models.
  • 16. HTTP: the application protocol (and you thought the second T was for transport?)
  • 17. HTTP is comprehensive HTTP verbs GET PUT POST DELETE HEAD OPTIONS And more through extensibility!
  • 18. Messaging Request Response It’s about communication! GET /index.html HTTP/1.1 Accept: application/xhtml+xml Accept-Language: en HTTP/1.1 200 OK Content-type: application/xhtml+xml Content-length: 16 Hello TechFest!
  • 19. Status Codes 100 – 101 Informational 200 – 206 Success 300 – 307 Redirection 400 – 417 Client Error 500 – 505 Server Error
  • 20. GET Idempotent = massively scalable via caching Control caching through HTTP headers: Client => Last-Modified + If-Modified-Since or If-None-Match + ETag Server => Cache-Control and Expires
  • 21. PUT Useful for updating and creating Idempotent = safe to repeat
  • 22. POST Create a new resource Not necessarily safe
  • 23. DELETE Disable a resource (though not necessarily destroy) Safe to repeat, but the response is generally different when the resource doesn’t exist.
  • 24. HEAD Retrieves only the headers Conditional GET
  • 25. OPTIONS Retrieves the HTTP verbs a resource URI will accept. The protocol tells the client how it may proceed.
  • 26. Hypermedia Types XHTML (application/xhtml+xml) RSS (application/rss-2.0) Atom/AtomPub (application/atom+xml) Custom (application/vnd.my-format)
  • 29. Why not XLink? Open XML link extension Not well understood nor clearly defined In the end, you would still need custom processing, so use application/vnd.custom+xml instead of application/xml
  • 30. Atom / AtomPub Well-understood hypermedia format Collection <atom:feed> and single <atom:entry> formats Can use <atom:link> within custom media types for well understood link semantics Works well as a queue (if you must) Simple and extensible Debate over message formats in REST
  • 31. Add Semantics Microformats RDF / RDFa(FOAF) Prefermicroformats(rel tag)
  • 32. The Role of Hypermedia REpresentational State Transfer (REST) Accept header(contentnegotiation) State transitions / Workflows (HATEOAS) Single entry point Next steps provided through links Can swap out providers (links) GET /index.html HTTP/1.1 Accept: application/xhtml+xml, application/json Accept-Language: en
  • 34. HATEOAS, cont. No HATEOAS With HATEOAS http://www.infoq.com/articles/subbu-allamaraju-rest
  • 35. Reliability Idempotency Response Error Codes HTTP is synchronous by nature Other ESB platforms are generally asynchronous Fire and forget Need additional fault tolerance mechanisms
  • 36. Security HTTP Basic and Digest authentication HTTPs, the tried and true (but not cahceable) OpenID, OpenAuth, SAML
  • 37. Scalability Stateless, so massively scalable Client and Proxy caches
  • 38. Transactions Hypermedia (HATEOAS) Different paradigm with richer semantics Workflows and state transitions
  • 39. How to GET a Cup of Coffee http://www.infoq.com/articles/webber-rest-workflow
  • 41. Security Concerns Isn’t the web inherently insecure? HTTPs is used everyday to transact millions Other protocols emerging OpenId + OpenAuth SAML
  • 42. Complexity Few frameworks exist for pure HTTP use RESTClient and Sinatra (Ruby) Limonade (PHP) OpenRasta (.NET) Fairly simple to create from scratch Mash-ups (just see how easy this is) On the web Call services from within Excel
  • 46. Tight-coupling This is a fear from having used WSDL HATEOAS reduces coupling even more! Don’t use URI templates (except internally) URIs can be swapped at any time Requires a layer in between your domain and the external API Upgrade client and server independently (Accepts header)
  • 48. There is no spoon (or bus) Paradigm shift Dumb network vs. Smart network Meaningful semantics over classic, distributed spaghetti architecture Take advantage of theexisting, richinfrastructure
  • 49. Distributed computing for years now has seemed like an endless repackaging of the same old ideas, patterns, and technology. Through REST, I finally feel like distributing computing is evolving and moving forward again. While REST won't solve world hunger, it will certainly give us a new perspective to practice software engineering.~ Bill Burke, JBoss
  • 51. References Dr. Roy Fielding’s Dissertation HTTP/1.1 (rfc2616) The Atom Syndication Format The Atom Publishing Protocol
  • 52. Books Get /Connected (coming 2009/2010)(Parastatidas, Robinson, Webber) RESTful Web Services(Richardson & Ruby) RESTful Web Services Cookbook(Allamaraju & Amundsen)
  • 53. Presentations Get /Connected Guerilla SOA A Couple of Ways to Skin an Internet Scale Cat Does My Bus Look Big in This? RESTful Approaches to Financial Systems Integration

Notas del editor

  1. The audit problem
  2. Files – each party manages their own world, but changes break downstream clientsDatabases – both parties now have to agree on schema changes. What about data validation (business logic) across systems?MOM – How do you determine rate of processing? Front-office may want real-time; back-office often are okay with high latency.SOA – Some standards, but not all vendors use the same standards; publisher determines format and may take your needs into consideration. So you have “kind of” communication.
  3. Planning systems upgradesDifferent platforms and dev toolsMost people just want their ExcelDifferent architectures, expectations, security, etc.Because you are forced to talk to different platforms, you wind up with spaghetti.
  4. Originall, ESB was seen as the hero. Look at that beautifully clean network diagram!
  5. But the ESB just hides the spaghetti.Auditing BizTalk was never easy because you still have to understand which systems talk to which, how they do so, etc.
  6. What exactly is XHTML (or HTML)?Currently, it’s the new spaghetti code.Cool new features coming in HTML5, but most of that is making this worse.It’s a document serialization format.