SlideShare a Scribd company logo
HTTP: the other ESBRyan RileyCatapult Systems, Inc.Houston TechFest 2009
AgendaSetting the StageAlternativesHTTP: the application protocolCommon ConcernsQuestionsResources
Setting the Stage
First things firstDemand – Specialized ToolsDifferent tools needed among front and back office, as well as field workersOnce people get used to a tool, they don’t want to change … except to get the features they wantSupply – One-size-fits-allCreate reusable frameworks or components and force them to fit the needSave time and money (80/20 rule)
The result?Old Computer Equipment 1 from Dolor IpsumSome rights reserved
The Integration ProblemStart with Application SilosThen need to Share and Aggregate DataNote:Different systems with different needsDifferent interpretations of data semanticsMUST communicateSystems rarely die, but we keep adding more
The ContendersFile sharingDatabasesDirect sharing or ETL / Data StoresHow do you negotiate schema changes?Message-Oriented Middleware (MOM)Fire and forgetVendors rule the world: Message Broker, ESB, etc.Service-Oriented Architecture (SOA)Back to silosWhich platform: Java, .NET, ESB framework, etc.
Complexity becomes usStarts simpleEnds …Spaghetti? Yum! from DanoSome rights reserved
ESB to the rescue!
… or perhaps not“Enterprise Spaghetti Bus” – Jim Webber
Meanwhile …New patterns and practicesAgile and LeanTDD, BDD, DDD, CI, CQS/DDDD, etc.Frameworks and tools to the rescue!The web as an application platformWS-* emerges as an SOA solutionRails & co make web programming easier
Alternatives
WS-*Messaging: SOAPDiscoverability: WSDLSecurity: WS-SecurityReliability: WS-MessageReliabilityAnd a host of others:WS-BusinessActivityBPELEtc.
WS-* (cont.)ScalabilityReliance on HTTP POSTComplex to achieveTransactionsComplicated protocolsBased on classic RPC paradigmsBrought to you by HTTP POST
Other alternativesESB 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 comprehensiveHTTP verbsGETPUTPOSTDELETEHEADOPTIONSAnd more through extensibility!
MessagingRequestResponseIt’s about communication!GET  /index.html  HTTP/1.1Accept: application/xhtml+xmlAccept-Language: enHTTP/1.1  200  OKContent-type: application/xhtml+xmlContent-length: 16Hello TechFest!
Status Codes100 – 101 Informational200 – 206 Success300 – 307 Redirection400 – 417 Client Error500 – 505 Server Error
GETIdempotent = massively scalable via cachingControl caching through HTTP headers:Client => Last-Modified + If-Modified-Since		or If-None-Match + ETagServer => Cache-Control and Expires
PUTUseful for updating and creatingIdempotent = safe to repeat
POSTCreate a new resourceNot necessarily safe
DELETEDisable a resource (though not necessarily destroy)Safe to repeat, but the response is generally different when the resource doesn’t exist.
HEADRetrieves only the headersConditional GET
OPTIONSRetrieves the HTTP verbs a resource URI will accept.The protocol tells the client how it may proceed.
Hypermedia TypesXHTML (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 extensionNot well understood nor clearly definedIn the end, you would still need custom processing, so use application/vnd.custom+xml instead of application/xml
Atom / AtomPubWell-understood hypermedia formatCollection <atom:feed> and single <atom:entry> formatsCan use <atom:link> within custom media types for well understood link semanticsWorks well as a queue (if you must)Simple and extensibleDebate over message formats in REST
Add SemanticsMicroformatsRDF / RDFa(FOAF)Prefermicroformats(rel tag)
The Role of HypermediaREpresentational State Transfer (REST)Accept header(contentnegotiation)State transitions / Workflows (HATEOAS)Single entry pointNext steps provided through linksCan swap out providers (links)GET  /index.html  HTTP/1.1Accept: application/xhtml+xml, application/jsonAccept-Language: en
HATEOAShttp://www.infoq.com/articles/subbu-allamaraju-rest
HATEOAS, cont.No HATEOASWith HATEOAShttp://www.infoq.com/articles/subbu-allamaraju-rest
ReliabilityIdempotencyResponse Error CodesHTTP is synchronous by natureOther ESB platforms are generally asynchronousFire and forgetNeed additional fault tolerance mechanisms
SecurityHTTP Basic and Digest authenticationHTTPs, the tried and true (but not cahceable)OpenID, OpenAuth, SAML
ScalabilityStateless, so massively scalableClient and Proxy caches
TransactionsHypermedia (HATEOAS)Different paradigm with richer semanticsWorkflows and state transitions
How to GET a Cup of Coffeehttp://www.infoq.com/articles/webber-rest-workflow
Common Concerns
Security ConcernsIsn’t the web inherently insecure?HTTPs is used everyday to transact millionsOther protocols emergingOpenId + OpenAuthSAML
ComplexityFew frameworks exist for pure HTTP useRESTClient and Sinatra (Ruby)Limonade (PHP)OpenRasta (.NET)Fairly simple to create from scratchMash-ups (just see how easy this is)On the webCall services from within Excel
OpenRasta (C#)
Limonade (PHP)
Sinatra (Ruby)
Tight-couplingThis is a fear from having used WSDLHATEOAS reduces coupling even more!Don’t use URI templates (except internally)URIs can be swapped at any timeRequires a layer in between your domain and the external APIUpgrade client and server independently (Accepts header)
Summary
There is no spoon (or bus)Paradigm shiftDumb network vs. Smart networkMeaningful semantics over classic, distributed spaghetti architectureTake 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?
ReferencesDr. Roy Fielding’s DissertationHTTP/1.1 (rfc2616)The Atom Syndication FormatThe Atom Publishing Protocol
BooksGet /Connected (coming 2009/2010)(Parastatidas, Robinson, Webber)RESTful Web Services(Richardson & Ruby)RESTful Web Services Cookbook(Allamaraju & Amundsen)
PresentationsGet /ConnectedGuerilla SOAA Couple of Ways to Skin an Internet Scale CatDoes My Bus Look Big in This?RESTful Approaches to Financial Systems Integration

More Related Content

PDF
Writing RESTful Web Services
PPTX
Unerstanding and Using RESTful APIs
PPTX
Understanding and Using Rest APIs (SocialDevCamp Chicago 2009)
PPTX
ASP.NET Web API and HTTP Fundamentals
PPTX
REST & RESTful Web Services
ODP
RESTful Web Services
PPT
Excellent rest using asp.net web api
PPTX
Apache error
Writing RESTful Web Services
Unerstanding and Using RESTful APIs
Understanding and Using Rest APIs (SocialDevCamp Chicago 2009)
ASP.NET Web API and HTTP Fundamentals
REST & RESTful Web Services
RESTful Web Services
Excellent rest using asp.net web api
Apache error

What's hot (13)

DOCX
Asynchronous reading and writing http r equest
PDF
PPT
Restful API's with ColdFusion
PDF
REST - Representational state transfer
PPTX
PPT
Web servers
PPTX
Overview of Rest Service and ASP.NET WEB API
PDF
Web Services Tutorial
PPT
Building an web 2.0 blog RAPIDLY in Alpha Five v10 with Codeless AJAX
PPT
Web Server Technologies I: HTTP & Getting Started
PPT
Introduction to the Web API
PDF
ITB2016 - Building ColdFusion RESTFul Services
PPTX
Advanced WCF Workshop
Asynchronous reading and writing http r equest
Restful API's with ColdFusion
REST - Representational state transfer
Web servers
Overview of Rest Service and ASP.NET WEB API
Web Services Tutorial
Building an web 2.0 blog RAPIDLY in Alpha Five v10 with Codeless AJAX
Web Server Technologies I: HTTP & Getting Started
Introduction to the Web API
ITB2016 - Building ColdFusion RESTFul Services
Advanced WCF Workshop
Ad

Similar to HTTP: the Other ESB (20)

PDF
ReST Vs SOA(P) ... Yawn
PPTX
RESTful Web Services
PPTX
RESTful Web Services.pptxbnbjmgbjbvvhvhj
ODP
Microservices
PDF
PPTX
Rest assured
KEY
What's up with HTTP?
PDF
HATEOAS: The Confusing Bit from REST
PDF
Rest Vs Soap Yawn2289
PDF
Facebook & Twitter API
PDF
Restful风格ž„web服务架构
PDF
Web Services
PDF
Thinking restfully
PDF
RESTful web
PDF
Designing RESTful APIs
PPTX
RESTful Services
PPTX
Restful webservice
PPTX
RESTful APIs
ODP
Web Server-Side Programming Techniques
PDF
HTTP In-depth
ReST Vs SOA(P) ... Yawn
RESTful Web Services
RESTful Web Services.pptxbnbjmgbjbvvhvhj
Microservices
Rest assured
What's up with HTTP?
HATEOAS: The Confusing Bit from REST
Rest Vs Soap Yawn2289
Facebook & Twitter API
Restful风格ž„web服务架构
Web Services
Thinking restfully
RESTful web
Designing RESTful APIs
RESTful Services
Restful webservice
RESTful APIs
Web Server-Side Programming Techniques
HTTP In-depth
Ad

More from Ryan Riley (9)

PPTX
A Brief History of OWIN
PPTX
F# on the Web
PPTX
Test first
PPTX
Introduction to F#x
PPTX
The Functional Web
PPTX
Rx workshop
PPTX
Functional Programming
PPTX
Practical F#
PPTX
Domain Driven Design
A Brief History of OWIN
F# on the Web
Test first
Introduction to F#x
The Functional Web
Rx workshop
Functional Programming
Practical F#
Domain Driven Design

Recently uploaded (20)

PDF
Dropbox Q2 2025 Financial Results & Investor Presentation
PDF
Electronic commerce courselecture one. Pdf
PDF
Per capita expenditure prediction using model stacking based on satellite ima...
PDF
Blue Purple Modern Animated Computer Science Presentation.pdf.pdf
PDF
Chapter 3 Spatial Domain Image Processing.pdf
PDF
Build a system with the filesystem maintained by OSTree @ COSCUP 2025
PPTX
Effective Security Operations Center (SOC) A Modern, Strategic, and Threat-In...
PPT
“AI and Expert System Decision Support & Business Intelligence Systems”
PPTX
A Presentation on Artificial Intelligence
PPTX
PA Analog/Digital System: The Backbone of Modern Surveillance and Communication
PPTX
Understanding_Digital_Forensics_Presentation.pptx
PDF
NewMind AI Weekly Chronicles - August'25 Week I
PPTX
Cloud computing and distributed systems.
PDF
Network Security Unit 5.pdf for BCA BBA.
PPTX
Detection-First SIEM: Rule Types, Dashboards, and Threat-Informed Strategy
PPTX
VMware vSphere Foundation How to Sell Presentation-Ver1.4-2-14-2024.pptx
PDF
KodekX | Application Modernization Development
PDF
How UI/UX Design Impacts User Retention in Mobile Apps.pdf
PPTX
20250228 LYD VKU AI Blended-Learning.pptx
PDF
Advanced methodologies resolving dimensionality complications for autism neur...
Dropbox Q2 2025 Financial Results & Investor Presentation
Electronic commerce courselecture one. Pdf
Per capita expenditure prediction using model stacking based on satellite ima...
Blue Purple Modern Animated Computer Science Presentation.pdf.pdf
Chapter 3 Spatial Domain Image Processing.pdf
Build a system with the filesystem maintained by OSTree @ COSCUP 2025
Effective Security Operations Center (SOC) A Modern, Strategic, and Threat-In...
“AI and Expert System Decision Support & Business Intelligence Systems”
A Presentation on Artificial Intelligence
PA Analog/Digital System: The Backbone of Modern Surveillance and Communication
Understanding_Digital_Forensics_Presentation.pptx
NewMind AI Weekly Chronicles - August'25 Week I
Cloud computing and distributed systems.
Network Security Unit 5.pdf for BCA BBA.
Detection-First SIEM: Rule Types, Dashboards, and Threat-Informed Strategy
VMware vSphere Foundation How to Sell Presentation-Ver1.4-2-14-2024.pptx
KodekX | Application Modernization Development
How UI/UX Design Impacts User Retention in Mobile Apps.pdf
20250228 LYD VKU AI Blended-Learning.pptx
Advanced methodologies resolving dimensionality complications for autism neur...

HTTP: the Other ESB

Editor's Notes

  • #7: The audit problem
  • #8: 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.
  • #9: 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.
  • #10: Originall, ESB was seen as the hero. Look at that beautifully clean network diagram!
  • #11: 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.
  • #28: 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.