Zusammenfassung
Die 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.
Abstract
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.










Notes
Eine Operation begin bzw. beginTransaction gibt es nicht im SQL-Standard. Nach Aufruf der Operation commit beginnt bei Nutzung von SQL automatisch eine neue Transaktion.
UTM steht für „Universaler Transaktionsmonitor“. UTM wurde von Siemens entwickelt und gehört heute Fujitsu (UTM 2019).
Der Transaktionsmonitor „Customer Information Control System“ (CICS) von IBM ist heute in IBM TXSeries integriert (CICS 2019).
IMS TM steht für „Information Management System Transaction Manager“ (IMS TM 2019).
Microsofts Transaktionsmanager wird als MS DTC (Distributed Transaction Coordinator) bezeichnet (MS DTC 2019).
Tuxedo ist ein älterer Transaktionsmonitor, der mittlerweile Oracle gehört, TopEnd ist auch ein älterer Transaktionsmonitor der Firma NCR.
Die Zusammenhänge können in (Mandl 2009) nachgelesen werden.
Heute ist das die Open Group.
Seit Oktober 2019 wird JEE nicht mehr von Oracle, sondern von der Eclipse Foundation weiterentwickelt und als Jakarta EE bezeichnet. Siehe https://jakarta.ee/. Zugegriffen: 25.10.2019.
OASIS entwickelt offene Standards, siehe https://www.oasis-open.org. Zugegriffen: 18.05.2019.
Siehe hierzu die entsprechenden Webseiten der Hersteller.
https://aws.amazon.com/de/dynamodb/, http://cassandra.apache.org und https://riak.com/products/#riak. Zugegriffen am 27.10.2019.
https://www.mongodb.com/de. Zugegriffen am 25.10.2019.
Beispiele für offene APIs siehe https://any-api.com. Zugegriffen: 13.05.2019.
https://www.alibabacloud.com/. Zugegriffen: 28.10.2019.
https://github.com/alibaba/fescar. Zugegriffen: 28.10.2019.
Literatur
Abadi DJ (2012) Consistency tradeoffs in modern distributed database system design: CAP is only part of the story. Computer 45(2):37–42. https://doi.org/10.1109/MC.2012.33
Bernstein PA, Newcomer E (1997) Principles of transaction processing. Morgan Kaufman Publishers, Burlington
Bernstein PA, Hadzilacos V, Goodman N (1987) Concurrency control and recovery. Addison-Wesley, Longman
Brewer E (2012) CAP twelve years later: how the “rules” have changed. Computer 45(2):23–29
Chappell DA (2009) Enterprise service bus. O’Reilly Media, Sebastopol
CICS (2019) https://www.ibm.com/us-en/marketplace/txseries-for-multiplatforms. Zugegriffen: 7. Mai 2019
Coulouris G, Dollimore J, Kindberg T, Blair G (2017) Distributed systems: concepts and design, 5. Aufl. Prentice-Hall, Essex
Coward D (2015) Java EE 7: the big picture. McGraw-Hill Education, USA
Database Trends and Applications (2018) Limitations in MongoDB transactions. http://www.dbta.com/Columns/MongoDB-Matters/Limitations-in-MongoDB-Transactions-127057.aspx. Zugegriffen: 23. Okt. 2019
Elmagarmid AK (1992) Database transaction models for advanced applications. Morgan Kaufmann, Burlington
Fielding RT (2000) Architectural styles and the design of network-based software architectures, dissertation, university of California, Irvine. https://www.ics.uci.edu/~fielding/pubs/dissertation/top.htm. Zugegriffen: 7. Mai 2019
Fowler M, Levis J (2014) Microservices—a definition of this new architectural term. https://martinfowler.com/articles/microservices.html. Zugegriffen: 4. Mai 2019
Garcia-Molina H, Salem K (1987) SAGAS. Proceedings of the 1987 ACM SIGMOD international conference on Management of data, S 249–259
Google Inc., Corbett JC, Dean J, Epstein M et al (2012) Spanner: Google’s globally-distributed database. 10th USENIX Symposium on Operating Systems Design and Implementation (OSDI ’12, S 251–264
Gray J (1981) The transaction concept: virtues and limitations. In: Proceeedings of the 7th International Conference on Very Large Database Systems. ACM, New York, S 144–154
Gray J, Lamport L (2005) Consensus on transaction commit, microsoft research, techreport-number MSR-TR-2003-96, 2005. http://research.microsoft.com/apps/pubs/default.aspx?id=64636. Zugegriffen: 3. Mai 2019
Gray J, Reuter A (1993) Transaction processing. Concepts and techniques. Morgan Kaufmann Series in Data Management Systems
Gray J, Lorie R, Putzolu F, Traiger I (1976) Granularity of locks and degrees of consistency in a large shared data base. In: Modeling in data bases management systems. Elsevier North-Holland, New York, S 365–394
Gray J, McJones PR, Blasgen MW, Lorie RA, Price TG, Putzolu GR, Traiger IL (1981) The recovery manager of system R database manager. Acm Comput Surv 13(2):223–242
Hackernoon.com (2019) Fescar: a distributed transaction solution open sourced by Alibaba. https://hackernoon.com/fescar-a-distributed-transaction-solution-open-sourced-by-alibaba-f70c9b4c72a1. Zugegriffen: 29. Okt. 2019
Härder T, Rahm E (1999) Datenbanksysteme: Konzepte und Techniken der Implementierung. Springer, Berlin Heidelberg
Härder T, Reuter A (1983) Principles of transaction-oriented database recovery. ACM Comput Surv 15(4):287–317
IMS TM (2019) https://www.ibm.com/support/knowledgecenter/zosbasics/com.ibm.imsintro.doc.intro/intro.htm. Zugegriffen: 7. Mai 2019
ISO/IEC (1984) ISO/IEC 7498 Open Systems Interconnection—Basic Reference Model
ISO/IEC (1990) ISO/IEC 9804 Information Technology—Open Systems Interconnection—Service Definition for the Commitment, Concurrency and Recovery Service Element
ISO/IEC (1992a) ISO/IEC 10026‑1 Information Technology—Open Systems Interconnection—Distributed Transaction Processing—Part 2: OSI TP Model
ISO/IEC (1992b) ISO/IEC 10026‑2 Information Technology—Open Systems Interconnection—Distributed Transaction Processing—Part 2: OSI TP Service
ISO/IEC (2016) ISO/IEC 9075 standard: “Information technology—Database languages—SQL”
Kleppmann M (2017) Designing data-intensive applications. O’Reilly Media, Sebastopol
Kudoa T, Ishinob M, Saotomec K, Kataoka N (2016) A proposal of transaction processing method for MongoDB. 20th International Conference on Knowledge Based and Intelligent Information and Engineering Systems. Procedia Comput Sci 96:801–810
Linhoff-Popien C (1998) CORBA Kommunikation und Management. Springer, Berlin
Lotfy A, Saleh AI, Ali HA, El-Ghareeb HA (2016) A middle layer solution to support ACID properties for NoSQL databases. J King Saud Univ Inf Sci Arch 28(1):133–145
Mandl P (2009) Masterkurs Verteilte betriebliche Informationssysteme. Prinzipien, Architekturen und Technologien. Vieweg+Teubner, Wiesbaden
Mandl P (2012) Ist SOA obsolet? – Eine kritische Betrachtung. PIK Prax Informationsverarb Kommun 35(2):119–123. https://doi.org/10.1515/pik-2012-0020
Mandl P, Bauer N (2002) Web-Transaktionen: Entwurfsmuster und Realisierungsansätze. HMD Prax Wirtschaftsinform 228:104–114
Meyer-Wegener K (1988) Transaktionssysteme: Funktionsumfang, Realisierungsmöglichkeiten, Leistungsverhalten. B. G. Teubner, Stuttgart
Microsystems S (1999) Java Transaction Service (JTS) Version 1.0. https://download.oracle.com/otn-pub/jcp/7309-jts-1.0-spec-oth-JSpec/jts1_0-spec.pdf?AuthParam=1558177020_fb7a77e8f3bd1b278ca0a720bbaa8fda. Zugegriffen: 18. Mai 2019
Mongo D (2018) MongoDB Announces Multi-Document ACID Transactions in Release 4.0. https://www.mongodb.com/press/mongodb-announces-multi-document-acid-transactions-in-release-40. Zugegriffen: 23. Okt. 2019
Moss E (1985) Information systems: nested transactions: an approach to reliable distributed computing. MIT Press, Cambridge
MS DTC (2019) https://docs.microsoft.com/en-us/previous-versions/windows/desktop/ms684146(v=vs.85). Zugegriffen: 7. Mai 2019
OASIS (2007a) Web services atomic transaction (WS-atomictransaction) version 1.1. http://docs.oasis-open.org/ws-tx/wstx-wsat-1.1-spec-errata-os.pdf. Zugegriffen: 4. Mai 2019
OASIS (2007b) Web services business activity (WS-business activity) version 1.1. http://docs.oasis-open.org/ws-tx/wstx-wsba-1.1-spec-os.pdf. Zugegriffen: 7. Mai 2019
OASIS (2009) Web services coordination framework specification (WS-CF), version 1.2. http://docs.oasis-open.org/ws-tx/wstx-wscoor-1.2-spec-os.pdfOpen. Zugegriffen: 4. Mai 2019
OMG (2003) Transaction service specification; V1.4. https://www.omg.org/spec/TRANS/1.4/PDF. Zugegriffen: 7. Mai 2019
Open Group (1991) Distributed transaction processing: the XA specification, CAE specification, X/open company Ltd., U.K
Open Group (1992) Distributed transaction processing: the TX (transaction Demarcaton) specification, preliminary specification, X/open company Ltd., U.K
Open Group (1993) Distributed transaction processing: reference model version 2, X/open company Ltd., U.K
Oracle (2013) Java transaction API (JTA), version 1.2. https://download.oracle.com/otn-pub/jcp/jta-1_2-mrel2-spec/JTA1.2Specification.pdf?AuthParam=1557070267_0278f380c245e6ed732a0c4cac606ba6. Zugegriffen: 4. Mai 2019
Ramamritham K, Chrysanthis PK (1997) Advances in concurrency control and transaction processing. IEEE Computer Society Press, Los Alamitos, CA, USA
Richardsen C (2019) Microservices patterns. Manning Publications, Shelter Island
Rudrabhatla CK (2018) Comparison of event choreography and orchestration techniques in microservice architecture. Int J Adv Comput Sci Appl 9(8):18–22. https://doi.org/10.14569/IJACSA.2018.090804
Schlimm N (2010) Serviceorientierte Architektur – eine Standortanalyse. Informatik Spektrum 3(33):282–287
Shute J, Vingralek R, Samwel B, Handy B et al (2013) F1: a distributed SQL database that scales. Proc VLDB Endow 6(11):1068–1079
Siegel J (2001) CORBA 3. John Wiley & Sons Inc, New York
Soley RM, Stone CM (1995) Object management architecture guide. http://csce.uark.edu/~cwt/DOCS/PAPERS/1987-1995/1995-06--Reference%20Model--in%20OMG%20Object%20Management%20Architecture%20Guide,%20rev%203----OMG-97-05-05--chap%205.pdf. Zugegriffen: 8. Mai 2019
Steyer M, Schwichtenberg H, Fischer M, Krause J (2013) Verteilte Systeme und Services mit .NET 4.5: Konzepte und Lösungen für WCF 4. Hanser, München
Tai S, Eberhardt J, Klems M (2017) Not ACID, not BASE, but SALT. Proceedings of the 7th International Conference on Cloud Computing and Services Science, S 755–764
Turner B (2007) The paxos family of consensus protocols. http://www.fractalscape.org/files/paxos-family.pdf. Zugegriffen: 15. Apr. 2019
UTM (2019) https://www.fujitsu.com/de/products/software/middleware/openseas-oracle/openutm/. Zugegriffen: 7. Mai 2019
Vogels W (2009) Eventually consistent. Commun ACM 52(1):40–44. https://doi.org/10.1145/1435417.1435432
Vossen G, Groß-Hardt M (1993) Grundlagen der Transaktionsverarbeitung. Addison-Wesley, Boston
Wang T, Vonk J, Kratz B, Grefen P (2008) A survey on the history of transaction management: from flat to grid transactions. Distrib Parallel Databases 23(3):235–270
Weikum G (1989) Geschachtelte Transaktionen, in Informatik-Spektrum 12. pp. 102–106 W3C (2019). https://www.w3.org/standards/. Zugegriffen: 4. Mai 2019
Danksagung
Bedanken möchte ich mich ganz herzlich bei den Gutachtern für die wertvollen Verbesserungsvorschläge und Anregungen.
Author information
Authors and Affiliations
Corresponding author
Rights and permissions
About this article
Cite this article
Mandl, P. Einsatz von ACID-Transaktionen im Wandel der Zeit. HMD 57, 324–347 (2020). https://doi.org/10.1365/s40702-019-00575-w
Received:
Revised:
Accepted:
Published:
Issue Date:
DOI: https://doi.org/10.1365/s40702-019-00575-w
Schlüsselwörter
- Transaktion
- ACID
- Flache Transaktion
- Saga
- Verteilte Transaktion
- CORBA OTS
- DTP-Modell
- XA
- JTA
- Webservices
- Microservice
- REST