TY - JOUR
T1 - Reactors
T2 - 9th International Conference on Coordination Models and Languages, COORDINATION 2007
AU - Field, John
AU - Marinescu, Maria Cristina
AU - Stefansen, Christian
PY - 2009/2/6
Y1 - 2009/2/6
N2 - Our aim is to define the kernel of a simple and uniform programming model-the reactor model-which can serve as a foundation for building and evolving internet-scale programs. Such programs are characterized by collections of loosely-coupled distributed components that are assembled on the fly to produce a composite application. A reactor consists of two principal components: mutable state, in the form of a fixed collection of relations, and code, in the form of a fixed collection of rules in the style of Datalog. A reactor's code is executed in response to an external stimulus, which takes the form of an attempted update to the reactor's state. As in classical process calculi, the reactor model accommodates collections of distributed, concurrently executing processes. However, unlike classical process calculi, our observable behaviors are sequences of states, rather than sequences of messages. Similarly, the interface to a reactor is simply its state, rather than a collection of message channels, ports, or methods. One novel feature of our model is the ability to compose behaviors both synchronously and asynchronously. Also, our use of Datalog-style rules allows aspect-like composition of separately-specified functional concerns in a natural way.
AB - Our aim is to define the kernel of a simple and uniform programming model-the reactor model-which can serve as a foundation for building and evolving internet-scale programs. Such programs are characterized by collections of loosely-coupled distributed components that are assembled on the fly to produce a composite application. A reactor consists of two principal components: mutable state, in the form of a fixed collection of relations, and code, in the form of a fixed collection of rules in the style of Datalog. A reactor's code is executed in response to an external stimulus, which takes the form of an attempted update to the reactor's state. As in classical process calculi, the reactor model accommodates collections of distributed, concurrently executing processes. However, unlike classical process calculi, our observable behaviors are sequences of states, rather than sequences of messages. Similarly, the interface to a reactor is simply its state, rather than a collection of message channels, ports, or methods. One novel feature of our model is the ability to compose behaviors both synchronously and asynchronously. Also, our use of Datalog-style rules allows aspect-like composition of separately-specified functional concerns in a natural way.
KW - Actors
KW - Asynchronous programming
KW - Datalog
KW - Distributed programming
KW - Reactors
KW - Synchronization
KW - Synchronous programming
UR - http://www.scopus.com/inward/record.url?scp=58149354216&partnerID=8YFLogxK
UR - https://www.webofscience.com/api/gateway?GWVersion=2&SrcApp=pure_univeritat_ramon_llull&SrcAuth=WosAPI&KeyUT=WOS:000263228000005&DestLinkType=FullRecord&DestApp=WOS_CPL
U2 - 10.1016/j.tcs.2008.09.052
DO - 10.1016/j.tcs.2008.09.052
M3 - Article
AN - SCOPUS:58149354216
SN - 0304-3975
VL - 410
SP - 168
EP - 201
JO - Theoretical Computer Science
JF - Theoretical Computer Science
IS - 2-3
Y2 - 6 June 2007 through 8 June 2007
ER -