Mandl, Peter2021-03-252021-03-2520202020http://dx.doi.org/10.1365/s40702-019-00575-whttps://dl.gi.de/handle/20.500.12116/36059Die ACID-Transaktion ist ein starkes Konzept für die Entwicklung von Anwendungen, bei denen die Konsistenz der Daten essentiell ist. Es hat seinen Ursprung in der klassischen Transaktionsverarbeitung der 70er und 80er Jahre des letzten Jahrtausends im Kontext von Datenbanken und Transaktionsmonitoren, insbesondere für stark interaktive und nebenläufige betriebliche Anwendungen. Zunächst etablierte sich das Konzept für Anwendungen, die nur eine einzige, später auch mehrere Datenbanken in lokalen Transaktionen nutzen. Ab Mitte der 80er Jahre entwickelte man das Konzept dann für verteilte Anwendungen mit mehreren Datenbanken oder Message Queuing Systemen (allgemein als Ressourcenmanager bezeichnet) weiter. Es wurde damit allerdings auch weit komplexer und fehleranfälliger. Verteilte Koordinationsprotokolle, auch als Commit-Protokolle bezeichnet, wurden in Middleware-Lösungen integriert. Die Schwächen von Commit-Protokollen wegen der Notwendigkeit der zentralen Koordination erschwerten oft die praktische Nutzung verteilter Transaktionen. Trotzdem versuchte man das Konzept auch für serviceorientierten Architekturen, insbesondere für Webservices zu adaptieren. Umfangreiche Spezifikationen wurden erstellt. In den letzten Jahren ging man im praktischen Einsatz der Transaktionsverarbeitung wieder zurück zu den Wurzeln, wie insbesondere bei Microservice-Architekturen beobachtet werden kann. Aber auch das Saga-Transaktionsmodell wird für Microservice-Architekturen in Erwägung gezogen. Auch der dedizierte Einsatz von ACID-Transaktionen bei stark replizierten Lösungsansätzen insbesondere bei NoSQL-Datenbanken ist aktuell im Kommen. The ACID transaction is a powerful concept for developing applications where data consistency is essential. It has its origins in the classical transaction processing of the 70s and 80s of the last millenium in the context of databases and transaction monitors, especially for highly interactive and concurrent business applications. Initially, the concept established itself for applications that use only a single database in local transactions, and later several databases as well. From the mid-1980s, the concept was further developed for distributed applications with multiple databases or message queuing systems (commonly referred to as resource managers). However, it also became far more complex and error-prone. Distributed coordination protocols, also known as commit protocols, were integrated into middleware solutions. The weaknesses of commit protocols due to the need for centralized coordination often hampered the practical use of distributed transactions. Nevertheless, attempts were also made to adapt the concept for service-oriented architectures, in particular for web services. Extensive specifications were developed. In recent years, the practical use of transaction processing has returned to its roots, as can be observed in microservice architectures in particular. But the Saga transaction model is also being considered for microservice architectures. The dedicated use of ACID transactions for highly replicated solutions, especially for NoSQL databases, is also currently on the rise.ACIDCORBA OTSDistributed TransactionDTP ModelDTP-ModellFlache TransaktionFlat TransactionJTAMicroserviceRESTSagaTransactionTransaktionVerteilte TransaktionWebservicesXAEinsatz von ACID-Transaktionen im Wandel der ZeitText/Journal Article10.1365/s40702-019-00575-w2198-2775