Yesod Web Framework
Michael Snoyman presents Yesod, a web framework written in Haskell and containing a web server, templating, ORM, libraries (templating, gravatar, etc.).
The content has been bookmarked!
There was an error bookmarking this content! Please retry.
Posted by Han Xu on Aug 16, 2008
The SOAP stack is generally regarded as an embarrassing failure these days ... REST does what [the SOAP stack] was trying to do in a much more viable, elegant, cheap, affordable way except that we've got no tooling around it yet.
Wal-Mart replaced its supply chain's VAN EDI infrastructure several years ago with EDIINT AS2 and is still happily using it to this day. AS2 is basically POX, with its own approach to idempotence for reliable message delivery.
I've been predicting SOAP would never see widespread use outside the firewall.
What I am really seeking are large enterprises that are truly leveraging the power of SOAP in ways that provide convincing evidence that SOAP "works for the job" in ways that other approaches would struggle. IME very few enterprises really need SOAP for what they are doing -- it was put either put in by consultants as a checklist item, or the tool used SOAP by default. The majority of SOAP use appears to be simply driven by inertia, not any belief in its superiority in doing the job.
You have given us an example of a customer using REST for B2B - as an EDI replacement. EDI is document-oriented, as is REST, so this is not a big surprise.
We know of many examples of large enterprises using REST that designed and created their data centers based on the Web, since they are basically Web oriented businesses. But I do not know of any examples where an enterprise whose data center predates the Web has adopted REST.
...
Me - I am a "right tool for the job" person, and I cannot believe that everyone will be better off using REST any more than I can believe everyone will be better off using Web services
I never get the complexity thing, REST isn't simple its got some very "nice" bits in it that are far from simple and its got some tough challenges (security for example) that aren't addressed. SOAP isn't complex, the complaint people make about it is that it is too easy and hides the network. So not doing SOAP might have many reasons but it can't be both complex and too easy.Obviously this will be another endless debate over the REST vs. WS-*/SOAP issue, although David Chappell claimed "the REST vs. WS-* war is over". People have been expecting a real end to the long debate, but it will not be a "crushing victory for one side". As John Evdemon says,
One size doesn't fit all - use what best meets your customer's needs and be done with it.Gervas Douglas proposes a stack comparison between REST and SOAP to remove the significant mismatch of comprehension between the two camps. But there are different opinions regarding the selection of the reference model. While Steve suggests taking the SOA RM as the basis for a SOA stack and then mapping REST/SOAP onto a single model, Mark recommends using OSI. Anyway, Gervas has created a wiki entry for this stack comparison purpose, let us wait and see what will be happening there.
But sometimes you can't control what your kids do, but in some sense you are responsible ;)
XML made sense at the time, HTML was such an amazing success for authoring sites and apps (to some extend) to making the tags generic and extensible must have seemed like a great idea.
Yet I would have thought people may have known better: HTML was explicitly used by humans for authoring, yet XML was always proposed as something that could be used for many purposes, yet only one of them (human editing by very very basic text editors) was just one. And the "self describing" thing is bogus as well: lots of non verbose markup can support that without the tag names repeated.
I guess the question is would WS-* standards have evolved if it wasn't XML but was something else, or is SOAP just adding more heavyness over something that was already heavy?
I think it's fair to say that XML is a sound success – there's a rich ecosystem of tools and technologies around it, such as XSLT, XPath, XQuery; lots of libraries and standard APIs; lots of formats built on it …
I agree that XML isn't a good choice for everything, but I don't see anything that's better in the general case (even though XML has its warts, such as the f*d up namespaces and the useless difference between attributes and elements).
I guess the question is would WS-* standards have evolved if it wasn't XML but was something else, or is SOAP just adding more heavyness over something that was already heavy?
The already had....CORBA.
People keep messing up "easy" and "simple". REST is simple, and results in comprehensible, analyzable systems. SOAP tends to be easy, but the resulting systems are highly complex (in particular with all the WS-* stuff), and thus expensive to use, maintain, and debug.
Speaking of SOAP and embarrassing failures, I've been banging my head against the wall that is Axis 2 and I've given up. Why are they trying to reinvent the wheel by building an app server inside the app server? Why are there a million dependencies? Why... no wonder people are moving to POX - it's simply to preserve their sanity.
I really like Spring Web Services for proper contract-first development but I also need to support wsdl2java-style code generation in order to rebuild some old RPC services. Any suggestions for alternative toolkits?
Did anybody try using JSON with REST?
Wal-Mart adopted AS2 because WS* was not ready for B2B at that time. There is nothing simple about AS2 either. Wal-Mart achieved interoperability by naming a commercial vendor for AS2 stack certification and required all partners to use compliant AS2 stacks. Wal-Mart is big enough to make that happen.
This is all well and good and kudos to Wal-Mart for making it work for them but...
With WS-I Reliable Secure Profile (RSP), SOAP is just about ready to tackle B2B. It is only natural that companies would want to use a similar model for B2B communication as they already do for internal communicaton, i.e. WS*.
I am quite sure that if we did not have SOAP, someone would have invented a SOAP-like thing anyway - i.e. some structure over POX (e.g. RosettaNet, OAGIS). There is a need that SOAP fills. SOAP is not a failure by a long shot within the enterprise.
So say we build the REST tooling that Tim Bray speaks of. Perhaps then we define some metadata to drive the tooling. But wait... is that not what we did with WS*?
Michael Snoyman presents Yesod, a web framework written in Haskell and containing a web server, templating, ORM, libraries (templating, gravatar, etc.).
Richard Kreuter and Kyle Banker on how to avoid classical RDBMS transactional systems by using compensation mechanisms, transactional messaging or transactional procedures.
Attila Szegedi talks about performance tuning Java and Scala programs at Twitter: how to approach GC problems, the importance of asynchronous I/O, when to use MySQL/Cassandra/Redis, and much more.
One category of risk that project teams need to ensure they address is business value failure – delivering a product that fails to provide value for the business investor.
InfoQ spoke to the authors of Software Systems Architecture on a couple of new topics, the System Context viewpoint and Agile, which have been added to the second edition.
Alex Papadimoulis discusses ugly code, where it comes from, how to avoid it, and how to get rid of it.
John Davies examines Visa’s architecture and shows how enterprises have architected complex integrations incorporating Hadoop, memcached, Ruby on Rails, and others to deliver innovative solutions.
Sean Comerford unveils ESPN.com’s architecture, what components are used and why, and the current changes the website goes through.
7 comments
Watch Thread Reply