Sunday, June 27, 2010

2010-06-27 Sunday - REST Resource Links

I've spent some time doing a bit of research this weekend on RESTful architecture patterns, and wanted to share the links that I found interesting...not all of the articles are accurate reflections of valid REST approaches - but I found value in considering their dissenting opinions, and so might you.

If you are looking for a short and succinct article to get clarity on REST - you can do no better than reading Roy Fielding's commentary on the subject here:

http://roy.gbiv.com/untangled/2008/rest-apis-must-be-hypertext-driven


Or, if you have the time and inclination...reading his original PhD disseration...

Roy Fielding's Architectural Styles and,the Design of Network-based Software Architectures
http://www.ics.uci.edu/~fielding/pubs/dissertation/top.htm

Rohit Khare's dissertation is also worth reading:
Extending the REpresentational State Transfer (REST) Architectural Style for Decentralized Systems
http://www.ics.uci.edu/~rohit/Khare-Thesis-FINAL.pdf


Proceedings of the First,International Workshop on,RESTful Design, WS‐REST 2010
http://ws-rest.org/files/WSREST2010-Preliminary-Proceedings.pdf


JSR 311: JAX-RS: The JavaTM API for RESTful Web Services
http://www.jcp.org/en/jsr/detail?id=311


InfoQ: A Brief Introduction to REST
http://www.infoq.com/articles/rest-introduction


RESTful Web services: The basics
http://www.ibm.com/developerworks/webservices/library/ws-restful/


Should We Compare? SOAP VS REST
http://blogs.globallogic.com/should-we-compare-soap-vs-rest


Why understanding REST is hard and what we should do about it – systematization, models and terminology for REST
http://izuzak.wordpress.com/2010/04/03/why-understanding-rest-is-hard-and-what-we-should-do-about-it-systematization-models-and-terminology-for-rest/



InfoQ: REST and transactions?
http://www.infoq.com/news/2009/06/rest-ts


http://kesun.wordpress.com/2010/06/05/exploring-restful-web-service-part-1-roy-fieldings-rest-archite/


http://blog.whatfettle.com/2008/10/21/what-i-believe-roy-said/


REST for Java developers, Part 1
http://www.javaworld.com/javaworld/jw-10-2008/jw-10-rest-series-1.html


How [someone] explained REST to a SOAP pro
http://www.infosysblogs.com/microsoft/2009/08/how_i_explained_rest_to_a_soap.html


When to Use RESTful HTTP
http://www.innoq.com/blog/st/2008/01/when_to_use_restful_http.html


Designing SOA in a RESTful way
http://blogs.globallogic.com/designing-soa-in-a-restful-way

"nine-part dialogue with an imaginary eBay Architect,...an accessible discussion of the REST vs. SOA issue"
http://duncan-cragg.org/blog/post/getting-data-rest-dialogues/
http://duncan-cragg.org/blog/post/business-functions-rest-dialogues/


REST Resource Links...
http://gis.net/~amesar/links/rest.html



RETRO: A Consistent and Recoverable RESTful Transaction Model
http://ieeexplore.ieee.org/Xplore/login.jsp?url=http%3A%2F%2Fieeexplore.ieee.org%2Fiel5%2F5175785%2F5175786%2F05175822.pdf%3Farnumber%3D5175822&authDecision=-203


Abstract

With REST becoming a popular paradigm for Web services, more and more use cases are applied to it, including some that require transactional guarantees. We propose a RESTful transaction model that satisfies both the constraints of transactions as well as those of the REST architectural style. We provide formal proof of consistency and recoverability in the proposed framework and show the robustness of its properties in the presence of concurrent transactions.


http://java.sun.com/developer/technicalArticles/jersey-part1/index.html 


RESTful Web services with Apache Wink, Part 1: Build an Apache Wink REST service
http://www.ibm.com/developerworks/web/library/wa-apachewink1/index.html?ca=drs-


RESTful Web services with Apache Wink, Part 2: Advanced topics in Apache Wink REST development
http://www.ibm.com/developerworks/web/library/wa-apachewink2/index.html?ca=drs-


SOAP and REST: Choosing formal and informal Web services for,CICS integration
http://www.hostbridge.com/images/uploads/WP_HostBridge_SOAP_and_REST_090303.pdf


How to Secure REST and JSON
http://kscottmorrison.com/2010/01/08/how-to-secure-rest-and-json/


http://jcalcote.wordpress.com/2009/08/06/restful-transactions/


Credit Cards, Transactions, and REST
http://bill.burkecentral.com/2009/09/21/credit-cards-transactions-and-rest/



Fomenting unREST : Is RESTfulness a semantics game ? Why does REST require statelessness ?
http://blog.dhananjaynene.com/2008/11/rest-fomenting-unrest-is-restfulness-a-semantics-game-why-does-rest-require-statelessness/

REST Design Pattern
http://horicky.blogspot.com/2008/04/rest-design-pattern.html


PROPOSAL: Handling Asynchronous Operation Requests
http://kenai.com/projects/suncloudapis/forums/forum/topics/911-PROPOSAL-Handling-Asynchronous-Operation-Requests?

RESTful Transactions
http://www.jboss.org/reststar
http://www.jboss.org/reststar/specifications/transactions.html
(note: this is something that Fielding strongly disagrees with)
http://tech.groups.yahoo.com/group/rest-discuss/message/13266

Yahoo Groups >  REST Discussion Mailing List
http://tech.groups.yahoo.com/group/rest-discuss/messages


ERP/2.50/Developers Guide/Concepts/XML REST Web Services
http://wiki.openbravo.com/wiki/ERP/2.50/Developers_Guide/Concepts/REST_Web_Services


Dan Diephouse (of Mule Source) presentation on REST
http://netzooid.com/presentations/Scalable,%20Reliable,%20and%20Secure%20RESTful%20services.pdf

RESTful Casuistry
http://www.tbray.org/ongoing/When/200x/2009/03/20/Rest-Casuistry


WS-Angst
http://www.tbray.org/ongoing/When/200x/2006/02/22/WS-Flurry

Don Box (on the pragmatic considerations of REST vs. SOAP
http://www.pluralsight-training.net/community/blogs/dbox/archive/2006/02/17/18869.aspx



InfoQ: xTim Bray on Rails, REST, XML, Java, and More (October 11, 2006)
http://www.infoq.com/interviews/tim_bray_rails_and_more

How do you see REST replacing a lot of the functionality that the WS* specs are providing like security transactions, choreography?
"Well, that's a good question. I think that the vast majority of operations on the web right now are GETs, you know, information fetch and a vanishingly small, but important proportion of updates. And to the extent that you can model your system in what I call a web style, where you have a lot of nouns, a small number of verbs, and you clearly distinguish between idempotent, safe operations and things that change the state, you can really go a long way with that pure web style, REST approach. If you really need deeply reliable complex transactions with multi-phase commit and all that stuff, I'm not sure the Internet is a very good channel for doing that. I think you'd really like to do that kind of thing behind the firewall in an enterprise environment. If you're actually going to operate across a heterogeneous large scale network, it would really be much better if you could possibly do things in the web style, which is: "I'm going to send you a package of information with everything that's needed to accomplish this transaction and you're going to come back to me and say if that worked or didn't, which is reliable." Where things start to get weird is where you have to have intermediaries, multiple machines involved in executing some transaction. The WS* stack does have a bunch of proposed, unstable, in-motion drafts for doing reliable transactions and so on across the network that are very highly unproved in practice. At the moment, if I'm actually writing a high volume of transaction processing system, I would probably prefer to do it the old-fashioned way, by talking to Oracle or you know, however you do it. Let's not kid ourselves that the WS* guys are actually offering real solutions in the space of transaction processing, right now, today, it's all theory."



Apache Wink
http://incubator.apache.org/wink/index.html
Apache Wink is a simple yet solid framework for building RESTful Web services. It is comprised of a Server module and a Client module for developing and consuming RESTful Web services.
The Wink Server module is a complete implementation of the JAX-RS v1.0 specification. On top of this implementation, the Wink Server module provides a set of additional features that were designed to facilitate the development of RESTful Web services.
The Wink Client module is a Java based framework that provides functionality for communicating with RESTful Web services. The framework is built on top of the JDK HttpURLConnection and adds essential features that facilitate the development of such client applications.


Microsoft WCF Interoperability
http://msdn.microsoft.com/en-us/netframework/webservicesinterop.aspx


JavaWorld REST articles...
http://www.javaworld.com/search/index.html?cx=014839440456418836424%3Aiiuuq2fuymm&cof=FORID%3A9&ie=UTF-8&q=REST&x=0&y=0&siteurl=www.javaworld.com%2Fjavaworld%2Fjw-10-2008%2Fjw-10-rest-series-1.html#778


WSTF.org
http://www.wstf.org/
The Web Services Test Forum in an open and free community where developers and customers can perform interoperability testing and discuss issues surrounding the application of Web Service-based technologies. Web Services are machine-to-machine communications using HTTP, REST, SOAP or any other internet focused technology.

No comments: