A full stack, reactive architecture for general purpose programming. Algebraic and monadically composable primitives for concurrency, parallelism, event handling, transactions, multithreading, Web, and distributed computing with complete de-inversion of control (No callbacks, no blocking, pure state)
We have designed, implemented, and evaluated AtomCaml, an extension to Objective Caml that provides a synchronization primitive for atomic (transactional) execution of code. A first-class primitive function of type (unit->'a)->'a evaluates its argument (which may call other functions, even external C functions) as though no other thread has interleaved execution. Our design ensures fair scheduling and obstruction-freedom. Our implementation extends the Objective Caml bytecode compiler and run-time system to support atomicity. A logging-and-rollback approach lets us undo uncompleted atomic blocks upon thread pre-emption, and retry them when the thread is rescheduled. The mostly functional nature of the Caml language and the Objective Caml implementation's commitment to a uniprocessor execution model (i.e., threads are interleaved, not executed simultaneously) allow particularly efficient logging.
The XAware project provides real time data integration with a service-oriented flavor. XAware makes other tools and frameworks much more productive by hiding data complexity behind "XML views". XML views span any number of data sources, and can read data, write data, or transfer data between sets of sources, all within a distributed transaction.
The Java® Transaction API (JTA) allows applications to perform distributed transactions, that is, transactions that access and update data on two or more networked computer resources. The JTA specifies standard Java interfaces between a transaction manag
H. Lu, S. Sen, and W. Lloyd. 14th USENIX Symposium on Operating Systems Design and Implementation (OSDI 20), page 333--349. USENIX Association, (November 2020)
H. Moniz, J. Leitão, R. Dias, J. Gehrke, N. Preguiça, and R. Rodrigues. Proceedings of the 26th International Conference on World Wide Web, page 263--272. Republic and Canton of Geneva, Switzerland, International World Wide Web Conferences Steering Committee, (2017)
A. Spiegelman, G. Golan-Gueta, and I. Keidar. Proceedings of the 37th ACM SIGPLAN Conference on Programming Language Design and Implementation, page 682--696. ACM, (2016)
J. Swalens, J. De Koster, and W. De Meuter. 30th European Conference on Object-Oriented Programming (ECOOP 2016), volume 56 of Leibniz International Proceedings in Informatics (LIPIcs), page 23:1--23:28. Dagstuhl, Germany, Schloss Dagstuhl--Leibniz-Zentrum fuer Informatik, (2016)
Y. Hayduk, A. Sobe, and P. Felber. Distributed Applications and Interoperable Systems, volume 9038 of Lecture Notes in Computer Science, Springer, (2015)
M. Zhang, J. Huang, M. Cao, and M. Bond. Proceedings of the 20th ACM SIGPLAN Symposium on Principles and Practice of Parallel Programming, page 97--108. ACM, (2015)
T. Usui, R. Behrends, J. Evans, and Y. Smaragdakis. Parallel Architectures and Compilation Techniques, 2009. PACT '09. 18th International Conference on, page 3--14. (September 2009)
J. Swalens, S. Marr, J. De Koster, and T. Van Cutsem. Proceedings of the Workshop on Programming Language Approaches to Concurrency and communication-cEntric Software (PLACES), volume 155 of PLACES '14, page 54--60. (April 2014)
D. Bonetta, W. Binder, and C. Pautasso. Proceedings of the 18th ACM SIGPLAN symposium on Principles and practice of parallel programming, page 251--260. New York, NY, USA, ACM, (2013)
R. Stroud, and Z. Wu. Proceedings of the 9th European Conference on Object-Oriented Programming, ECOOP '95, volume 952 of LNCS, page 168--189. Springer-Verlag, (1995)