Composing RESTful Services with JOpera

Loading...

Flash Player 9 (or above) is needed to view presentations.
We have detected that you do not have it on your computer. To install it, go here.

1 comments

Comments 1 - 1 of 1 previous next Post a comment

Post a comment
Embed Video
Edit your comment Cancel

1 Favorite

Composing RESTful Services with JOpera - Presentation Transcript

  1. Composing RESTful Services with JOpera Cesare Pautasso Software Composition 2009 Zurich, Switzerland 2 July 2009 ©2009 Cesare Pautasso | www.pautasso.info 1
  2. Composing RESTful Services with JOpera Cesare Pautasso Faculty of Informatics University of Lugano (USI), Switzerland http://www.pautasso.info http://www.jopera.org 2 July 2009 ©2009 Cesare Pautasso | www.pautasso.info 2
  3. Web Service Composition Today Composition Language WS-BPEL 2.0 Component Model WSDL 1.1 The WS-BPEL process model is layered on top of the service model defined by WSDL 1.1. […] Both the process and its partners are exposed as WSDL services [BPEL 2.0 Standard, Section 3] 2 July 2009 ©2009 Cesare Pautasso | www.pautasso.info 3
  4. RESTful Web Services APIs… WSDL 1.1 …do not use WSDL 1.1 2 July 2009 ©2009 Cesare Pautasso | www.pautasso.info 4
  5. Our Goal  Compose RESTful Web Services into Mashups 2 July 2009 ©2009 Cesare Pautasso | www.pautasso.info 5
  6. Web 2.0 Mashups  Software Composition for the Web A mashup is a web application that combines data or functionality from two or more external sources to create a new service [Wikipedia] 2 July 2009 ©2009 Cesare Pautasso | www.pautasso.info 6
  7. Example Mashup with RESTful Web Services + + = 2 July 2009 ©2009 Cesare Pautasso | www.pautasso.info 7
  8. Our Goal  Compose RESTful Web Services into Mashups Our Current Solution: JOpera  Workflow-based, Visual Composition Language  Abstract and Extensible Component Model  Eclipse-based Integrated Composition Environment 2 July 2009 ©2009 Cesare Pautasso | www.pautasso.info 8
  9. Agenda  Motivation  REST Introduction (one slide)  Composing RESTful services  Demo: Doodle Map Mashup with JOpera  Challenges  Discussion 2 July 2009 ©2009 Cesare Pautasso | www.pautasso.info 9
  10. REST in one slide PUT  Web Services expose their data and functionality trough GET R resources identified by URI POST DELETE  Uniform Interface: Clients interact with the state of resources through 4 verbs: GET (read), POST (create), PUT (update), DELETE  Multiple representations for the same resource  Hyperlinks model resource relationships, valid state transitions and interaction protocols 2 July 2009 ©2009 Cesare Pautasso | www.pautasso.info 10
  11. REST design elements  Resources are published by Origin Servers  Proxy/Gateways for caching, access control, adaptation HTTP User Agent Origin Server HTTP HTTP User Agent Proxy/Gateway Origin Server 2 July 2009 ©2009 Cesare Pautasso | www.pautasso.info 11
  12. What about composition?  The basic design elements of the REST architectural style do not take composition into account HTTP User Agent Origin Server Origin Server User Agent HTTP Composite ? HTTP Origin Server RESTful service Origin Server 2 July 2009 ©2009 Cesare Pautasso | www.pautasso.info 12
  13. Composite Resources DELETE PUT GET C DELETE DELETE POST PUT PUT GET R GET S POST POST 2 July 2009 ©2009 Cesare Pautasso | www.pautasso.info 13
  14. Doodle Map Mashup  Setup a Doodle with Yahoo! Local search and visualize the results of the poll on Google Maps 2 July 2009 ©2009 Cesare Pautasso | www.pautasso.info 14
  15. Doodle Map Composite Resources Client Composite Component Web Browser Resources Resources M GET Y GET PUT POST GET P GET D POST GET G 2 July 2009 ©2009 Cesare Pautasso | www.pautasso.info 15
  16. Doodle Map Architecture Web Browser JOpera RESTful Engine Web Services GET APIs POST GET POST GET RESTful API RESTful API 2 July 2009 ©2009 Cesare Pautasso | www.pautasso.info 16
  17. Demo 2 July 2009 ©2009 Cesare Pautasso | www.pautasso.info 17
  18. Modeling the Composition in JOpera Control Data Flow Flow Service Bindings JAVA XPATH XSLT HTML HTTP … 2 July 2009 ©2009 Cesare Pautasso | www.pautasso.info 18
  19. Control Flow Control Flow Dependency 2 July 2009 ©2009 Cesare Pautasso | www.pautasso.info 19
  20. Data Flow Data Flow (Copy) 2 July 2009 ©2009 Cesare Pautasso | www.pautasso.info 20
  21. Service Bindings HTTP HTML XSLT XPATH JAVA … 2 July 2009 ©2009 Cesare Pautasso | www.pautasso.info 21
  22. Composition and REST: Some Challenges  Resource addressing through URI  How to interact with dynamic, variable set of URI?  Uniform Interface (GET, POST, PUT, DELETE)  Is this a new composition technique?  Multiple resource representations  Resource data type may only be known at run-time  How to negotiate the most appropriate representation format?  Hyperlinks  Can the state of a composition be bookmarked? 2 July 2009 ©2009 Cesare Pautasso | www.pautasso.info 22
  23. Resource Addressing through URI  How to interact with dynamic, variable set of URI? 2 July 2009 ©2009 Cesare Pautasso | www.pautasso.info 23
  24. Uniform Interface (GET, POST, PUT, DELETE)  Is this a new composition technique?  Easy to configure the HTTP method in the adapter  Hard to handle failure/idempotency semantics 2 July 2009 ©2009 Cesare Pautasso | www.pautasso.info 24
  25. Multiple Resource Representations  Resource data type may only be known at run-time  How to negotiate the most appropriate representation format? Set HTTP Headers (Accept) 2 July 2009 ©2009 Cesare Pautasso | www.pautasso.info 25
  26. Hyperlinks  Can the state of a composition be bookmarked? Follow hyperlinks Generate hyperlinks 2 July 2009 ©2009 Cesare Pautasso | www.pautasso.info 26
  27. Composition and REST: More Challenges  Missing Interface Description  How to compose services without machine readable interface descriptions?  Request correlation  How to ensure stateless communication with the right instance of a composition?  Caching/Idempotency  Verification and Testing 2 July 2009 ©2009 Cesare Pautasso | www.pautasso.info 27
  28. Conclusion  Business Process Modeling Languages have been applied with success to compose “traditional” WS-* Web Services  Business Process Modeling Languages should also be applied to compose RESTful Web Services  JOpera for Eclipse is a visual process modeling tool with an extensible engine for composing both kinds of services (and many more) into Web 2.0 mashups 2 July 2009 ©2009 Cesare Pautasso | www.pautasso.info 28
  29. Composing RESTful Services with JOpera Cesare Pautasso Faculty of Informatics University of Lugano (USI), Switzerland http://www.pautasso.info www.jopera.org 2 July 2009 ©2009 Cesare Pautasso | www.pautasso.info 29
  30. PhD positions available! Prof. Cesare Pautasso University of Lugano, Switzerland c.pautasso@ieee.org http://www.pautasso.info 2.7.2009 30 ©2008 Cesare Pautasso
  31. Mashups09 @ OOPSLA http://www.mashup-oopsla.org/ 3rd International Workshop on Web APIs and Services Mashups 2 July 2009 ©2009 Cesare Pautasso | www.pautasso.info 31

+ Cesare PautassoCesare Pautasso, 4 months ago

custom

377 views, 1 favs, 1 embeds more stats

Software Composition 2009

More info about this document

© All Rights Reserved

Go to text version

  • Total Views 377
    • 375 on SlideShare
    • 2 from embeds
  • Comments 1
  • Favorites 1
  • Downloads 0
Most viewed embeds
  • 2 views on http://www.pautasso.info

more

All embeds
  • 2 views on http://www.pautasso.info

less

Flagged as inappropriate Flag as inappropriate
Flag as inappropriate

Select your reason for flagging this presentation as inappropriate. If needed, use the feedback form to let us know more details.

Cancel
File a copyright complaint
Having problems? Go to our helpdesk?

Categories

Tags