Category Archives: Web services

Second Edition of TP Book out Today

It’s hard to believe, but the second edition of Principles of Transaction Processing is finally available. The simple table of contents is here, and the entire front section, including the dedication, contents, introduction and details of what’s changed, is here. The first chapter is available here as a free sample.

Photo of an early press run copy

Photo of an early press run copy

It definitely turned out to be a lot more work than we expected when we created the proposal for the second edition almost four years ago.  And of course we originally expected to finish the project much sooner, about two years sooner.

But the benefit of the delay is that we were able to include more new products and technologies, such as EJB3, JPA, Spring,  the .NET Framework’s WCF and system.transactions API, Spring, SOA, AJAX, REST/HTTP, and ADO.NET even though it meant a lot more writing and rewriting.

The first edition was basically organized around the three-tier TP application architecture widely adopted at the time, using TP monitor products for examples of the implementations of the principles and concepts covered in the book. Then as now, we make sure what we describe is based on practical, real-world techniques, although we do mention a few topics more of academic interest.

The value of this book is that it explains how the world’s largest TP applications work – how they use techniques such as caching, remote communications (synchronous as well as asynchronous), replication, partitioning, persistence, queuing, database recovery, ACID transactions, long running transactions, performance and scalability techniques, locking, threading, queuing, business process management, and state management to process up to tens of thousands of transactions per second with high levels of reliability and availability. We explain the techniques in detail and show how they are programmed.

These techniques are used in airline reservation systems, stock trading systems, large Web sites, and in operational computing supporting virtually every sector of the economy. We primarily use Java EE-compliant application servers and Microsoft’s .NET Framework for product and code examples, but we also cover popular persistence abstraction mechanisms, Web services and REST/HTTP based SOA, Spring,  integration with legacy TP monitors (the ones still in use), and popular TP standards.

We also took the opportunity to look forward and include a few words about the potential impact on TP applications of current trends toward cloud computing, solid state memory, streams and event processing, and the changing design assumptions in the software systems used to power large Web sites.

Personally this has been a great project to work on, despite its challenges, complexities, and pressures. It could not have been done without the really exceptional assistance from 35 reviewers who so generously contributed their expertise on a wide variety of topics. And it has been really great to work with Phil again.

Finally, the book is dedicated to Jim Gray, who was so helpful to us in the first edition, reviewed the second edition proposal, and still generally serves as an inspiration to all of us who work in the field of transaction processing.

Reminder: Web of Services Workshop

Just a reminder on the upcoming W3C Workshop
Web of Services for Enterprise Computing
27-28 February 2007
Bedford, MA, USA
Hosted by MITRE
Important dates and deadlines:
* 10 January 2007: Deadline for position papers
* 25 January 2007: Workshop program published
* 30 January 2007: Registration closed
Background is basically like that Mark Twain quote, does anything really need to be done?
Are Web services complete?
Should REST be used instead?
Or maybe a hybrid?
W3C is best known as the home of the standards that drive the Web, but is there anything in particular W3C can or should do concerning the Web of services? Let’s find out.
This Workshop is open to W3C members and non-members alike. I hope to see you there.

Web services are not cool anymore

Well, it was bound to happen. No technology can be the cool new new thing forever. After nearly seven years, I guess it’s finally Web services’ turn.
Adoption rates for Web services continue to grow steadily, and a recent survey (which unfortunately sort of seems to mix Web services and SOA) indicates that SOA adoption is growing, and productivity gains are real.
This evidence seems to fly in the face of some of the recent criticism about SOAP.
So what does this all mean? It means that the inevitable criticism is starting to happen that happens when a formerly cool technology goes mainstream. It’s like that indie band everyone liked until they sold a million CDs.
This fits right into the Gartner group’s “hype cycle” – Web services are now past the peak of inflated expectations, through the trough of disillusionment, on the way toward mainstream adoption.
[Note: I could not find a link for the 2006 report that didn’t require Gartner membership, but I can tell you that SOA is right in the trough this year, and advanced Web services are falling toward it very quickly.]
So all this noise we continue to hear about how terrible WS-* is just means that it is going mainstream. 😉
But seriously, once a technology passes the hype cycle and becomes adopted, all its warts and bumps become more obvious as we find out what it is really good for, and what it is not. In that way the criticism is an acknowledgment of fit for purpose (even if it’s expressed in terms of what it isn’t fit for).
Mark Little recently posted an interesting opinion piece asking whether all this sort of backlash against Web services would threaten the acceptance of SOA. He clarified this in a comment, which says that equating Web services to SOA restricts options for using other technologies that may be a better fit for some SOA requirements.
Excellent point – we should no more propose Web services as the right solution for everything than we should propose REST as the right solution for everything.
In fact this kind of argues that Web services are going too mainstream – being used for things maybe they’re not good for. And so the criticism, the backlash, etc. is actually good, if it helps prevent that kind of thing.
We can (and will) fix many of the problems with Web services that are coming to light. Sure, SOAP may be more complex than it needs to be. This whole optional header thing is a bit weird – and how the headers work in combination isn’t clear. And some of the WS-* proposals will end up not getting used at all, or not getting used much.
Certainly many Web services tools take a somewhat limited view of XML and tend to tie it too closely to object oriented technologies.
But we can improve that, we can improve the way XML is used, include dynamic languages more into SOA environments (interesting to note the same survey referenced earlier also mentions the increasing adoption of Ajax), and fit REST-style interactions in where they make sense.
We can continue to separate services from objects, and create new tools that better support the service concept.
What we can’t do is get broad industry agreement on another set of specifications. I can easily remember when it wasn’t at all certain that SOAP would succeed in gaining sufficient adoption.
This is the world we have. It may not be pretty, but it works, and it is definitely better than what we had before.
And now it’s just as uncool, too.