Rating: ![5 stars](http://www.reviewfocus.com/images/stars-5-0.gif) Summary: Best book on this subject Review: This book was used by some of us, with different back grounds. All us felt the book very useful and knowledgable.
Rating: ![5 stars](http://www.reviewfocus.com/images/stars-5-0.gif) Summary: Excellent intro to transaction principles Review: This book was written in 1997 which is often considered ancient in "Internet-years" but it is still very relevant because it focuses on fundamental principles of transaction processing (TP) rather than the latest whiz-bang technologies that optimize TP.
For those of you who aren't TP experts, a transaction is a computer operation that meets the ACID test. ACID here stands for:
Atomic - the steps that comprise transaction succeed or fail as one, there is no partial success.
Consistent - the internal data structures of the system(s) remain consistent with business rules.
Isolated - the data read or manipulated by the transaction is not altered during the duration of the transaction's execution.
Durable - the results of the transaction are persisted
Why does this matter to the system user or stakeholder? The canonical example is that of the ATM machine (or the "handy bank" if you're Australian). When you withdrawl money from an ATM, it has to go out and validate you have enough funds to meet the withdrawl, reserve those funds, and dispense cash - all within the same transaction. If the ATM failed after your bank account had been debited but before you'd gotten your money, you'd be very upset; conversely if the cash was dispensed but the debit procedure failed, the bank would be very upset. Ted provides very amusing analogy for this using a wedding ceremony but you can read that in his book.
There's a whole lot more to transaction processing beyond ACID and the ATM example, including two-phase commit (TPC), high-availability, massive concurrency, and crash recovery. To find out about all of these topics, read the book. One thing to remember though is that most application developers will never have to deal with the extremely complex details of providing a working and robust transaction management implementation, but like any technology it's important to understand the technology's fundamental principles and mechanics to effectively use it.
The book itself is extremely dense. The content of the book is "only" 324 pages long but covers a large amount of ground in a good amount of detail. Definitely read in a quiet place free of interruptions with a strong cup of coffee.
One shortcoming of the book is that it was written in 1997 so it doesn't cover TP implementations in Java (e.g. JTA, EJBs, etc.) but it was nice to finally find out what the heck IBM's CICS and IMS products are.
Interestingly enough, I have never had to deal with complex transaction processing (i.e. two-phase commit) in my short IBM career. This is probably because I've worked on business-to-consumer (B2C) applications where only one data source is involved rather than a business-to-business system where multiple data sources are involved. I'll have to ask the B2B guys if they get heavy into two-phase commit or if it's not an issue.
The reason I read this book is because I've always been a bit mystified by Enterprise JavaBeans (EJBs). When I joined IBM, I knew the word, but I was not familiar with such topics as object-relational persistence, object remoting, and transaction processing, so to me EJBs were simply things that took four classes/interfaces to do what I could do in one simple POJO. Ted Neward, in a very interesting web interview on the Serverside.com mentioned that he used to think EJBs were completely worthless, but during the process of writing Effective Enterprise Java came to realize that they were not worthless but rather over-marketed. He said that they should have been called Transactional JavaBeans rather than Enterprise JavaBeans because transactions are what EJBs did very well. So, hearing this from Ted I decided to read a book on fundamentals of transaction processing, so that I could understand EJBs better. Now that I've read all about TP principles, I pick Richard Monson-Haefel's book again, and all of a sudden EJBs start to make a lot more sense.
Rating: ![5 stars](http://www.reviewfocus.com/images/stars-5-0.gif) Summary: Great contribution to the world of transactions!!! Review: This one is a fantastic creation. In many books that I have referred to, the author seems to be so keen to share his hi-tech experience that, they do grave injustice to the title of the book. Phillip does exactly the opposite. Great job Phil. This is one of the collection titles which has the entire story of Transaction Processing in good depth. Very interesting to read, it is also a page turner to techno-paths.
Rating: ![5 stars](http://www.reviewfocus.com/images/stars-5-0.gif) Summary: Clearly written, understandable intro to a complex subject Review: Transaction processing is a daunting topic, and this is one of the few books that provides the basics in a clear, understandable manner without overwhelming the reader. Most of the book is focused solely on transaction processing, but it touches on queuing as well, which makes it the ideal first book for anyone who is seeking details that extend beyond pure TP.I like the way that the authors use real products to reinforce key points made throughout the book. While some of the products are no longer mainstream (indeed, some were never mainstream), the fact that real world implementations are used makes the information realistic. If you are using CICS, MQSeries, Tuxedo or similar products this book will have even more value. I also like the way difficult topics, such as locking, high availability and database recovery are given entire chapters because these topics need to be thoroughly understood in order to completely understand transaction processing. After reading this book you will be armed with sufficient knowledge to make intelligent choices in selecting the right approach for transaction processing in a system design, or to understand the nuts and bolts of any TPM that you are supporting. I also agree with Cem Kaner's earlier comments that this book is an ideal resource for software test professionals who need to understand the entire environment that they will be testing. If you want to go deeper into TP, I recommend "Transactional Information Systems: Theory, Algorithms, and the Practice of Concurrency Control" by Gerhard Weikum and Gottfried Vossen, which drills much further down into the details of both transaction processing and queuing systems.
Rating: ![5 stars](http://www.reviewfocus.com/images/stars-5-0.gif) Summary: Clearly written, understandable intro to a complex subject Review: Transaction processing is a daunting topic, and this is one of the few books that provides the basics in a clear, understandable manner without overwhelming the reader. Most of the book is focused solely on transaction processing, but it touches on queuing as well, which makes it the ideal first book for anyone who is seeking details that extend beyond pure TP. I like the way that the authors use real products to reinforce key points made throughout the book. While some of the products are no longer mainstream (indeed, some were never mainstream), the fact that real world implementations are used makes the information realistic. If you are using CICS, MQSeries, Tuxedo or similar products this book will have even more value. I also like the way difficult topics, such as locking, high availability and database recovery are given entire chapters because these topics need to be thoroughly understood in order to completely understand transaction processing. After reading this book you will be armed with sufficient knowledge to make intelligent choices in selecting the right approach for transaction processing in a system design, or to understand the nuts and bolts of any TPM that you are supporting. I also agree with Cem Kaner's earlier comments that this book is an ideal resource for software test professionals who need to understand the entire environment that they will be testing. If you want to go deeper into TP, I recommend "Transactional Information Systems: Theory, Algorithms, and the Practice of Concurrency Control" by Gerhard Weikum and Gottfried Vossen, which drills much further down into the details of both transaction processing and queuing systems.
|