Your SlideShare is downloading. ×
  • Like
Give It A Rest(ful) web service
Upcoming SlideShare
Loading in...5
×

Thanks for flagging this SlideShare!

Oops! An error has occurred.

×

Now you can save presentations on your phone or tablet

Available for both IPhone and Android

Text the download link to your phone

Standard text messaging rates apply

Give It A Rest(ful) web service

  • 711 views
Published

This talk takes a tongue-in-cheek look at the service integration space and frames REST as providing a set of features that will finally overcome some of the pain being continually felt in this space.

This talk takes a tongue-in-cheek look at the service integration space and frames REST as providing a set of features that will finally overcome some of the pain being continually felt in this space.

Published in Technology
  • Full Name Full Name Comment goes here.
    Are you sure you want to
    Your message goes here
    Be the first to comment
    Be the first to like this
No Downloads

Views

Total Views
711
On SlideShare
0
From Embeds
0
Number of Embeds
0

Actions

Shares
Downloads
11
Comments
0
Likes
0

Embeds 0

No embeds

Report content

Flagged as inappropriate Flag as inappropriate
Flag as inappropriate

Select your reason for flagging this presentation as inappropriate.

Cancel
    No notes for slide

Transcript

  • 1. Give it a REST(ful web service) Russ Miles www.opencredo.com Monday, 25 January 2010
  • 2. Agenda • What do we want from an integration approach? • A trip through history... • What’s REST? • Why REST? • That’s gotta be difficult to implement... • Summary © 2009 Open Credo Ltd www.opencredo.com Monday, 25 January 2010
  • 3. First a BIG PLUG! RESTful Web Services by O’Reilly Go buy this book, now! (Ok, or borrow it off of me) © 2009 Open Credo Ltd www.opencredo.com Monday, 25 January 2010
  • 4. Who the heck is Russ Miles? • OpenCredo • And in other lives... – CEO – Search – Consultant – Mobile – Defence – Open Source • Author and Technical Editor – AspectJ Cookbook – Learning UML 2.0 – Head First Software Development © 2009 Open Credo Ltd www.opencredo.com Monday, 25 January 2010
  • 5. Who the heck is Russ Miles? • OpenCredo • And in other lives... – MD –Search – Consultant – Mobile – Defence –Open Source • Author and Technical Editor – AspectJ Cookbook – Learning UML 2.0 – Head First Software Development © 2009 Open Credo Ltd www.opencredo.com Monday, 25 January 2010
  • 6. What do we want from an integration approach? © 2009 Open Credo Ltd www.opencredo.com Monday, 25 January 2010
  • 7. Some of the things we’ve been promised • Platform/language/framework agnostic • Scaleable • Evolvable • Secure • Simple (or as simple as possible) • Open Standards © 2009 Open Credo Ltd www.opencredo.com Monday, 25 January 2010
  • 8. A short (and painful) trip through integration technologies... © 2009 Open Credo Ltd www.opencredo.com Monday, 25 January 2010
  • 9. IPC “Look ma! It’s all just pipes...” © 2009 Open Credo Ltd www.opencredo.com Monday, 25 January 2010
  • 10. RPC “Look ma! It’s all just objects!” © 2009 Open Credo Ltd www.opencredo.com Monday, 25 January 2010
  • 11. IPC/RPC... sucks (between apps/systems) • Cannot easily evolve • Doesn’t scale to the ‘new’ integration challenge • Is brittle – (Stateless? Scalable? I think not...) • Is ‘interesting’ when it comes to multiple languages/frameworks... • Tries to solve the WRONG problem © 2009 Open Credo Ltd www.opencredo.com Monday, 25 January 2010
  • 12. Web Services to save the day... “It’s time to reinvent that wheel boy!” © 2009 Open Credo Ltd www.opencredo.com Monday, 25 January 2010
  • 13. RPC Web Services sucked • Framework and Language nuances • Encouraged worst practices • RPC is the essential problem here! © 2009 Open Credo Ltd www.opencredo.com Monday, 25 January 2010
  • 14. Contract First Web Services? “Still reinventing...” © 2009 Open Credo Ltd www.opencredo.com Monday, 25 January 2010
  • 15. Contract First, Document Literal, Web Services tried to help • XML is the lingua franca! • Transport agnostic • Contract first! • SOAP and WSDL • WS-Addressing • WS-Policy • WS-Security • Ummm WS-WhateverYouLike! © 2009 Open Credo Ltd www.opencredo.com Monday, 25 January 2010
  • 16. And the vendors got fat... © 2009 Open Credo Ltd www.opencredo.com Monday, 25 January 2010
  • 17. But all was not well in WS-ville... © 2009 Open Credo Ltd www.opencredo.com Monday, 25 January 2010
  • 18. And then came Roy Fielding... © 2009 Open Credo Ltd www.opencredo.com Monday, 25 January 2010
  • 19. Representational State Transfer • Think in ‘things’ • Things have addresses • Things have representations you can GET • Things can be PUT back differently • Things can be DELETEd • Things can be, umm, POSTed to create them • Does anyone see this as anything new...? © 2009 Open Credo Ltd www.opencredo.com Monday, 25 January 2010
  • 20. Haven’t we seen something like this before? WWW © 2009 Open Credo Ltd www.opencredo.com Monday, 25 January 2010
  • 21. Web apps are Web services (done right) © 2009 Open Credo Ltd www.opencredo.com Monday, 25 January 2010
  • 22. The key components of REST • Resources • URIs • Uniform interface • Stateless • Representations © 2009 Open Credo Ltd www.opencredo.com Monday, 25 January 2010
  • 23. But WHY?! • Simple to implement • Systems are naturally broken down into Resources... • Naturally HTTP, not abusing HTTP... • Scales like a western man on 40 hamburgers a day! © 2009 Open Credo Ltd www.opencredo.com Monday, 25 January 2010
  • 24. And now an apology... • Not all systems that claim RESTfulness, are actually RESTful... • XML over HTTP isn’t the same – unless you mean the same as web services... • The URL matters (dammit!) • The mime type matters • The HTTP method (really) matters! © 2009 Open Credo Ltd www.opencredo.com Monday, 25 January 2010
  • 25. You need to think about REST • Decide on resources • Decide on URIs • Decide on methods you’ll support • Decide on how resources will relate (hypermedia, WADL, both?) • Decide on representations you’re going to support © 2009 Open Credo Ltd www.opencredo.com Monday, 25 January 2010
  • 26. Finally, some code! Aren’t RESTful services hard to develop...? © 2009 Open Credo Ltd www.opencredo.com Monday, 25 January 2010
  • 27. Summary • RESTful services are ubiquitous • REST is actually very simple • Think about resources up front • Keep things stateless • The uniform interface unlocks the power of the web for your internal services • Implementation is simple © 2009 Open Credo Ltd www.opencredo.com Monday, 25 January 2010
  • 28. Some of the things we’ve been promised • Platform/language/framework agnostic • Scaleable • Evolvable • Secure • Simple (or as simple as possible) • Open Standards © 2009 Open Credo Ltd www.opencredo.com Monday, 25 January 2010
  • 29. Some of the things that REST delivers • Platform/language/framework agnostic • Scaleable • Evolvable • Secure • Simple (or as simple as possible) • Open Standards © 2009 Open Credo Ltd www.opencredo.com Monday, 25 January 2010
  • 30. Thanks and Any Questions? russell.miles@opencredo.com http://www.russmiles.com © 2009 Open Credo Ltd www.opencredo.com Monday, 25 January 2010