Why Read this Book?
Transaction processing has been an important software technology for 40 years. Large enterprises in transportation, finance, retail, telecommunications, manufacturing, government, and the military are utterly dependent on transaction processing applications for electronic reservations, banking, stock exchanges, order processing, music and video services, shipment tracking, government services, telephone switching, inventory control, and command and control. Many large hardware and software vendors receive much of their revenue from components of transaction processing systems, such as IBM, HP, Oracle, Microsoft, Dell, Red Hat, and EMC. The market for transaction processing products and services is many tens of billions of dollars per year. As consumers, we all use this technology every day to withdraw cash, buy gas, rent movies, and make purchases on the Internet.
How exactly do these transaction processing systems work? This question was once of interest only to computer professionals in the commercial data processing field. Now, given the widespread use of transaction processing in todays economy, it is of interest to a much broader engineering audience. Despite this interest, there is little written for a system professional to get a readable, technically solid introduction to this complex technology. This book fills the gap.
The software environment of most large-scale transaction processing systems is based on transactional middleware, which helps knit together many software components. These components include front-end applications to drive web browsers and other devices, middle-tier applications to route requests to the server that can run them, and server applications that execute business logic. Examples of transactional middleware include IBMs CICS; Microsofts .NET Enterprise Services; and Java Enterprise Edition products, such as IBM WebSphere Application Server, Oracles WebLogic Server, and Red Hats JBoss Application Server. The first half of this book focuses on transactional middleware technology.
For many software engineers, transactional middleware is obscure technologystrange software glue that seems to be needed beyond operating systems, database systems, communication systems, and application programming languages. This book demystifies transactional middleware by explaining how it contributes to the performance, security, scalability, availability, manageability, and ease-of-use of transaction processing systems. The first half of the book explains transactional middleware outside and inthe features it offers to application programmers and how it is constructed to offer these features.
The transaction abstraction itself is largely implemented by database systems. They ensure that each transaction executes in its entirety, is isolated from interference by other transactions, and generates results that will survive hardware and software failures. This behavior is implemented by locking, logging, communication protocols, and replication. These technologies are the subject of the second half of this book.
This book is an introduction to transaction processing, intended to meet the needs of a broad audience, including:
Application programmers with an interest in building transaction processing applications
Database administrators who manage database systems used for transaction processing
Application analysts who design applications for deployment on transaction processing systems
Product developers in related areas, such as database systems, operating systems, and communications
Marketing and technical support engineers for both systems and application products
Computer science undergraduates and graduate students looking for an introduction to this topic
Our focus is on the principles of transaction processing, not on a prescription for how to build a transaction processing applicationhow come? not how to. We include examples from many products, to illustrate how the principles have been applied and where ideas originated. But we do not dwell heavily on any one product. We present technology that is practical and used in products and pay only modest attention to good ideas that are not commonly used in practice.
We do not assume any special prerequisites, other than system sophistication. We expect most readers will have some familiarity with SQL and database systems, but this background isnt necessary.
After finishing the book, you will understand how transactional middleware works and when to use it, and how transactional middleware and database systems work together to support reliable distributed transaction processing applications. You will be able to learn quickly how to use any transactional middleware product or database system to support the development and management of transaction processing applications.
Whats New in this Second Edition?
The short answer is a lot. There are several new chapters and rewritten chapters, and many new and revised sections of the rest.