{'fraction_non_alphanumeric': 0.015486725663716814, 'fraction_numerical': 0.0, 'mean_word_length': 5.717821782178218, 'pattern_counts': {'":': 0, '<': 0, '<?xml version=': 0, '>': 0, 'https://': 0, 'lorem ipsum': 0, 'www.': 0, 'xml': 0}, 'pii_count': 0, 'substrings_counts': 0, 'word_list_counts': {'cursed_substrings.json': 0, 'profanity_word_list.json': 0, 'sexual_word_list.json': 0, 'zh_pornsignals.json': 0}}
Combining Object-oriented Systems and Open Transaction Processing

Atomic transactions are now a familiar paradigm for distributed programming and have been provided in a number of object-oriented languages. Much effort has also been expended on developing open transaction processing systems which support distributed transactions involving multi-vendor database systems. This paper addresses a number of issues that arise in combining object-oriented distributed programming with open transaction processing. We describe an approach to supporting transactions which can access objects and other resource types, such as files and records, consistently, and which is independent of the use of any particular object-oriented programming language. We discuss both the design of a generic runtime interface which provides language independent support for atomic objects and transactions and, following the X/Open model for open transaction processing, the design of an interface between the transaction manager and a resource manager which is suitable for the requirements of object-oriented systems. We illustrate our approach by describing the transaction sub-system of the Amadeus/RelaX implementation of the Comandos platform which supports a number of popular object-oriented languages and has been integrated with an existing relational database system.