SlideShare ist ein Scribd-Unternehmen logo
1 von 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

Weitere Àhnliche Inhalte

Was ist angesagt?

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
Pragyanshis Patnaik
 
REST - Representational state transfer
REST - Representational state transferREST - Representational state transfer
REST - Representational state transfer
Tricode (part of Dept)
 

Was ist angesagt? (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
 

Ähnlich wie HTTP: the Other ESB

Scalable Apache for Beginners
Scalable Apache for BeginnersScalable Apache for Beginners
Scalable Apache for Beginners
webhostingguy
 
Web technology-guide
Web technology-guideWeb technology-guide
Web technology-guide
Srihari
 
Computer network (10)
Computer network (10)Computer network (10)
Computer network (10)
NYversity
 
Google App Engine
Google App EngineGoogle App Engine
Google App Engine
Dave Nielsen
 
Spider Course Day 1
Spider Course Day 1Spider Course Day 1
Spider Course Day 1
Harishankaran K
 
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
Francisco Amores
 
Software performance testing_overview
Software performance testing_overviewSoftware performance testing_overview
Software performance testing_overview
Rohan Bhattarai
 

Ähnlich wie 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
 

Mehr von Ryan Riley

Test first
Test firstTest first
Test first
Ryan Riley
 

Mehr von 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
 

KĂŒrzlich hochgeladen

Artificial Intelligence: Facts and Myths
Artificial Intelligence: Facts and MythsArtificial Intelligence: Facts and Myths
Artificial Intelligence: Facts and Myths
Joaquim Jorge
 
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
vu2urc
 
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
giselly40
 
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
Enterprise Knowledge
 

KĂŒrzlich hochgeladen (20)

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
 
Artificial Intelligence: Facts and Myths
Artificial Intelligence: Facts and MythsArtificial Intelligence: Facts and Myths
Artificial Intelligence: Facts and Myths
 
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
 
[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
 
Automating Google Workspace (GWS) & more with Apps Script
Automating Google Workspace (GWS) & more with Apps ScriptAutomating Google Workspace (GWS) & more with Apps Script
Automating Google Workspace (GWS) & more with Apps Script
 
GenCyber Cyber Security Day Presentation
GenCyber Cyber Security Day PresentationGenCyber Cyber Security Day Presentation
GenCyber Cyber Security Day Presentation
 
Partners Life - Insurer Innovation Award 2024
Partners Life - Insurer Innovation Award 2024Partners Life - Insurer Innovation Award 2024
Partners Life - Insurer Innovation Award 2024
 
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
 
Boost Fertility New Invention Ups Success Rates.pdf
Boost Fertility New Invention Ups Success Rates.pdfBoost Fertility New Invention Ups Success Rates.pdf
Boost Fertility New Invention Ups Success Rates.pdf
 
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...
 
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
 
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 future of MySQL is Postgres 🐘
🐬  The future of MySQL is Postgres   🐘🐬  The future of MySQL is Postgres   🐘
🐬 The future of MySQL is Postgres 🐘
 
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
 
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
 
Driving Behavioral Change for Information Management through Data-Driven Gree...
Driving Behavioral Change for Information Management through Data-Driven Gree...Driving Behavioral Change for Information Management through Data-Driven Gree...
Driving Behavioral Change for Information Management through Data-Driven Gree...
 
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...
 
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...
 
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
 
Finology Group – Insurtech Innovation Award 2024
Finology Group – Insurtech Innovation Award 2024Finology Group – Insurtech Innovation Award 2024
Finology Group – Insurtech Innovation Award 2024
 

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

Hinweis der Redaktion

  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.