

This is an excerpt from Principles of Transaction Processing by Philip Bernstein and Eric Newcomer. It explains the underlying principles of automating business transactions, both for traditional businesses and over the Internet explores the complexities of fundamental technologies, such as logging and locking and surveys today's commercial transactional middleware products that provide features necessary for building TP applications. In summary, transaction processing systems have to handle high volumes efficiently, avoid errors due to concurrent operation, avoid producing partial results, grow incrementally, avoid downtime, never lose results, offer geographical distribution, be customizable, scale up gracefully, and be easy to manage. Complex system management also increases the chance of errors and hence downtime, which in turn causes human costs such as increased stress and unscheduled nighttime work. Otherwise, the system management staff required to operate a large-scale system can become too large and hence too costly. There is no way to control how many users log in at the same time or which transactions they may choose to access.

Each transaction should either return an acknowledgment that it executed or return a negative acknowledgment that it did not execute.This would make the customer or the business very unhappy. When failures occur, as they inevitably do, it's important to avoid partially completed work, such as accepting payment and not shipping the item, or vice versa. In a retail sale, the item should either be exchanged for money or not sold at all. If a transaction runs, it must run in its entirety.For example, spent considerable effort to ensure that when its first thousand Xboxes went on sale, each of the 50,000 customers who were vying for an Xbox had a fair chance to get one. At a rock concert, when dozens of operations are competing to reserve the same remaining seats, it's important that only one customer is assigned to each seat. Uncontrolled concurrent transactions can generate wrong answers. To scale up a system for high performance, transactions must execute concurrently.Yet companies want to serve their customers quickly and with the least cost.
#TRANSACTION PROCESSING SYSTEM COMPANIES DOWNLOAD#
We've all had the experience of being delayed because a sales person is waiting for a cash register terminal to respond or because it takes too long to download a web page. Transaction volume and database size adds complexity and undermines efficiency.However, when scalability, reliability, and cost enter the picture, things can quickly get very complicated. It is easy to imagine a simple program that would do this work. One operation records the payment and another operation records the commitment to ship the item to the customer. For example, consider the purchase of an item from an on-line catalog. A business transaction requires the execution of multiple operations.
