+612 9045 4394
Open Multithreaded Transactions : A Transaction Model for Concurrent Object-Oriented Programming - Jorg Kienzle

Open Multithreaded Transactions

A Transaction Model for Concurrent Object-Oriented Programming

Hardcover Published: 1st November 2003
ISBN: 9781402017278
Number Of Pages: 279

Share This Book:


RRP $486.99
or 4 easy payments of $84.19 with Learn more
Ships in 7 to 10 business days

Modem computer systems possess two main characteristics: their ever­ growing complexity and the increasing number and range of abnormal situa­ tions they have to cope with successfully in order to deliver the service. Developing such systems is ademanding task requiring discipline and cIear thinking, which are best ensured by the right design mechanisms aiming at both appropriate system structuring and a disciplined provision of fault toler­ ance. The groundlaying research of the 60s and 70s created a solid basis in this area by developing a number of fundamental mechanisms, such as ACID (atomicity, consistency, isolation and durability) transactions, atomic actions (Brain Randell's conversations) and exception handling. Later on, a number of advanced techniques were proposed to overcome some of the limitations and rigidity of these mechanisms and to allow system developers to effec­ tively deal with specific characteristics of a particular application, an applica­ tion domain, design paradigm and execution environment. These incIude a variety of advanced transactional schemes and a number of novel exception handling techniques. In the last years, there has been a surge of interest in developing more advanced mechanisms combining properties of several fundamental mecha­ nisms to make it easier for system developers to cope, in a more flexible and efficient fashion, with complexity, distribution and heterogeneity of emerging applications as weil as with an increasing variety of possible faults.

Forewordp. xvii
Prefacep. xix
Transaction Models
Fundamental Conceptsp. 3
Object-Orientationp. 3
Base Principlesp. 3
Conceptsp. 4
Object-Oriented Programmingp. 5
Evolution of Object-Oriented Programmingp. 6
Objectsp. 7
Classesp. 7
Inheritancep. 7
Polymorphismp. 8
Interactionsp. 8
Preconditions, Postconditions and Invariantsp. 9
Aspect-Orientationp. 9
Concurrencyp. 11
Nature of Concurrent Systemsp. 11
Concurrency and Object-Oriented Programmingp. 12
Direct Communicationp. 13
Communication via Shared Passive Objectsp. 14
Deadlocks and Starvationp. 15
Fault Tolerancep. 16
Terminologyp. 16
Fault Classificationp. 17
Failure Semanticsp. 18
Redundancyp. 19
Error Processingp. 19
System Structuring for Fault Tolerancep. 20
Exceptionsp. 21
Exception Handling in Concurrent Systemsp. 23
Persistencep. 24
Persistence and Programming Languagesp. 25
Transaction Modelsp. 27
Atomic Units of System Structuringp. 28
Atomic Units and Exception Handlingp. 28
Competitive and Cooperative Structuring Unitsp. 29
Competitive World: Transactions and Derivativesp. 29
Flat Transactionsp. 31
Flat Transactions with Savepointsp. 32
Chained Transactionsp. 34
Nested Transactionsp. 34
Recoverable Communicating Actionsp. 39
Sagasp. 39
OASIS Business Transactionsp. 40
Collaborative World: Conversations and Derivativesp. 41
Conversationsp. 41
Atomic Actionsp. 42
Combining Cooperative and Competitive Concurrencyp. 44
Multithreading inside Transactionsp. 44
Multithreaded Transactionsp. 45
Coordinated Atomic Actionsp. 47
Open Multithreaded Transactionsp. 51
Motivationsp. 51
Requirementsp. 52
Integration Requirementsp. 52
Guaranteeing the ACID Propertiesp. 53
Analysis of Existing Modelsp. 54
Open Multithreaded Transactionsp. 55
Starting an Open Multithreaded Transactionp. 56
Joining an Open Multithreaded Transactionp. 56
Concurrency Control in Open Multithreaded Transactionsp. 57
Ending an Open Multithreaded Transactionp. 57
Exception Handing in Open Multithreaded Transactionsp. 59
Classification of Exceptionsp. 59
Internal Exceptionsp. 59
External Exceptionsp. 60
Additional Considerationsp. 61
Closing an Open Multithreaded Transactionp. 61
Naming an Open Multithreaded Transactionp. 62
Desertersp. 63
Transactional Objectsp. 63
Exception Resolutionp. 64
Open Multithreaded Transactions as Firewalls for Errorsp. 65
Comparisonp. 66
The Optima Framework
Overall Designp. 71
General Considerationsp. 71
Design Patternsp. 72
The Abstract Factory Design Patternp. 72
The Strategy Design Patternp. 74
The Serializer Design Patternp. 75
Optima Framework Design Overviewp. 77
Transaction Supportp. 78
Concurrency Controlp. 78
Recoveryp. 79
Transaction Supportp. 81
States of an Open Multithreaded Transactionp. 81
Synchronizing Participant Exitp. 82
Monitoring Accesses to Transactional Objectsp. 82
Handling Nestingp. 83
The Transaction Hierarchyp. 83
Handling Named Transactionsp. 84
Concurrency Controlp. 85
Handling Cooperative Concurrencyp. 86
Handling Competitive Concurrencyp. 86
Pessimistic Concurrency Controlp. 86
Optimistic Concurrency Controlp. 88
Encapsulating Different Concurrency Control Strategiesp. 89
Concurrency Control Information for Operationsp. 90
Strict Concurrency Controlp. 91
Semantic-Based Concurrency Controlp. 91
Commutativityp. 92
Encapsulating Operation Concurrency Control Informationp. 94
Recoveryp. 97
Global Designp. 98
Persistence Supportp. 98
Classification of Storage Devicesp. 99
Object Serializationp. 103
Identification of Transactional Objectsp. 104
Storage Managementp. 105
Caching Supportp. 106
Cache Fetch Algorithmp. 107
Cache Replacement Algorithmp. 107
Extensible Cache Designp. 108
Consequences of Cachingp. 109
Loggingp. 109
Encapsulating Logging Techniquesp. 111
Encapsulating Log Informationp. 111
Recovery Supportp. 112
Recovery Strategiesp. 112
Encapsulating Recovery Strategiesp. 113
Undo/NoRedo Recovery Algorithmsp. 115
NoUndo/Redo Recovery Algorithmsp. 116
Undo/Redo Recovery Algorithmsp. 117
Interfacing with Programming Languagesp. 119
Associating Participants with a Transactionp. 120
Encapsulating Objectsp. 121
The Transactional Objectp. 121
Handling Durabilityp. 123
Encapsulating Operation Invocations on Data Objectsp. 123
Tying Things Togetherp. 125
In-place Update and Deferred Updatep. 126
Trace of an Operation Invocationp. 128
Initializing and Shutting Down the Transaction Supportp. 129
Providing Transactions at the Programming Language Levelp. 130
Procedural Interfacep. 130
Object-Based Interfacep. 133
Object-Oriented Interfacep. 135
Aspect-Oriented Interfacep. 136
Comments on a Potential Reflective Interfacep. 139
Optima Implementation
Ada 95p. 143
Ada 83 vs. Ada 95p. 143
Object-Oriented Programming in Adap. 144
Controlled Typesp. 146
Concurrency in Adap. 147
Tasksp. 147
Task Identificationp. 147
Task Attributesp. 148
The Rendezvousp. 148
Protected Typesp. 149
Asynchronous Transfer of Controlp. 152
Integration of Concurrency and Object-Orientation in Adap. 153
Extensible Protected Typesp. 153
Distributed Systems in Adap. 156
Remote Procedure Callsp. 157
Distributed Objectsp. 159
Fault Tolerance in Distributed Adap. 159
Exceptions in Adap. 159
The Package Ada. Exceptionsp. 161
Persistence in Adap. 162
Implementation for Ada 95p. 165
Implementing the Frameworkp. 165
Objectsp. 165
Concurrency Controlp. 167
Persistencep. 170
Initializing and Shutting Down the Transaction Supportp. 173
Transaction Framework Interfaces for Ada 95p. 174
Transaction Identifier Managementp. 174
Encapsulating Data Objectsp. 175
Procedural Interfacep. 176
Object-Based Interfacep. 179
Object-Oriented Interfacep. 182
Aspect-Oriented Interfacep. 184
Related Workp. 195
Argusp. 195
Camelot and Avalonp. 198
Arjunap. 201
Venari / MLp. 203
Transactional Dragop. 204
PJamap. 205
Isisp. 206
CORBA Object Transaction Servicep. 207
Enterprise Java Beansp. 209
Case Study
Online Auction Systemp. 217
Requirementsp. 217
Application Designp. 221
Implementationp. 227
Bibliographyp. 241
Author and Citation Indexp. 263
Indexp. 273
Table of Contents provided by Ingram. All Rights Reserved.

ISBN: 9781402017278
ISBN-10: 1402017278
Audience: Professional
Format: Hardcover
Language: English
Number Of Pages: 279
Published: 1st November 2003
Publisher: Springer-Verlag New York Inc.
Country of Publication: US
Dimensions (cm): 24.0 x 16.0  x 1.91
Weight (kg): 0.63