VMware Infrastructure 3 Book Excerpt and Author Interview
VMware Infrastructure 3: Advanced Technical Design Guide and Advanced Operations Guide provides a wealth of practical insights into setting up virtualization in todays corporate environments.
Tracking change and innovation in the enterprise software development community
Posted by Steve Vinoski on Jul 15, 2008 04:20 PM
IBM software architect eKit: Grady Booch podcast, whitepapers, articles
The Agile Business Analyst: Skills and Techniques needed for Agile
WebSphere Virtual Enterprise 3 minute demo
Rainmaking - IBM's software virtualization strategy (Jerry Cuomo CTO blog)
Seems like the issue today is not so much SOAP vs. REST, but the
backlash against interface/contract based programming in general.
This
raises the issue of versioning/deprecating interfaces (or resources).
For me, I see issues with service discovery (a la WSDL) with REST, as there is no way that I can see for a consumer to learn a REST service's API without referring to human-readable documentation. With SOAP, we have the ABCs (address-binding-contract). With REST, the A and B are implicit, which leaves C.
What I'd like to see happen for REST to mature is a simple way to
describe the exchange of documents (messages), and not just serialize
objects, which is all the SOAP/WSDL/XSD mess really describes. In the
end, I guess REST is about semantics and SOAP is about syntax.
There is certainly some room for REST to "grow up" with little used HTTP 1.1 verbs such as OPTIONS, HEAD, TRACE, and CONNECT and header fields.
Thanks,
Mark
This was a very valuable presentation which I watched with great interest. You said: "Specialized interfaces inhibit scalability" and inhibit reuse as they require custom code clients. I fully agree with that remark. However does the need for specialized data not inhibit reuse and scalability just as much as specialized interfaces? Don't we spend far more lines of application code on setting up our specialized data structures than on calling the actual specialized interface of a service? Does offering a uniform interface while still having specialized data structures really increase reusability and therefore scalability? I kind of question that but would like to get others opinions as well.
Hi Mark, thanks for your comments.
As I once remarked in a blog entry, I've never seen anyone develop an IDL/SOAP/WSDL-based client without referring to human-readable documentation. Nobody writes a client that simply goes out, discovers such services, and starts using them. Among other problems, the specialized interfaces required to communicate with the newly-discovered service makes this hard to do. Keep in mind that each specialized service interface is effectively a new application protocol.
IMO you have a better chance at this with REST due to the very important HATEOAS constraint: "hypermedia as the engine of application state." The representations returned by resources direct the client through the application state by giving it hyperlinks and form metadata so it knows what to do next. The client must understand the media type of the resource representation, of course, but the fact that media types are globally standard types registered with the IANA means that clients and servers can be independently developed against them. This is quite different from the specialized data types for each specialized interface that IDL/WSDL encourage, which ends up discouraging independent development of client and server.
Hi Torsten, I hope all is well and thanks for your feedback.
This is a REST frequently-asked question, and if I recall correctly it was even asked by some of the attendees (Glen and Sanjiva IIRC) during the presentation. It's such a common question that I wrote a whole column about it earlier this year: please read "Demystifying RESTful Data Coupling" as I believe it will answer your question.
Adidas Ayakkabı, Boot, or Nike , UGG Bot, Online Shoping, Nike Shophing, Turkey Nike Online Giyim Adidas Ayakkabı Nike Ayakkabı Adicolor UGG Bot
VMware Infrastructure 3: Advanced Technical Design Guide and Advanced Operations Guide provides a wealth of practical insights into setting up virtualization in todays corporate environments.
Can a system that is so large it cannot be comprehended be "designed" in a conventional sense? The foundations of computing are about to change. In this talk, Richard P. Gabriel explores why and how.
Ruby 1.9's Fibers and non-blocking I/O are getting more attention - we talked to Mohammad A. Ali of the NeverBlock project and Tony Arcieri of the Revactor project.
Tim Mackinnon talks about the aspirations behind the Agile principles and practices, the desire to become efficient, to write quality code which does not end up being thrown away.
Brian Goetz discusses the difficulties of creating multithreaded programs correctly, incorrect synchronization, race conditions, deadlock, STM, concurrency, alternatives to threads, Erlang, Scala.
Often the hardest part of changing technologies is language syntax differences. This new article provides Java developers with a transition guide to Actionscript which forms the foundation of Flex.
Neal Ford talks about having multiple languages running on one of the two major platforms: Java and .NET. He also presents the advantages offered by Ruby compared to static languages like Java or C#.
David Anderson talks about the history of Agile, the current status of it and his vision for the future. The role of Agile consists in finding ways to implement its principles.
6 comments
Reply