Abstract: “Network objects are a simple and natural abstraction for distributed object-oriented programming. Languages that support network objects, however, often leave synchronization to the user, along with its associated pitfalls, such as data races and the possibility of failure. In this paper, we present D-SCOOP , a distributed programming model that allows for interference-free and transaction-like reasoning on (potentially multiple) network objects, with synchronization handled automatically, and network failures managed by a compensation mechanism. We achieve this by leveraging the runtime semantics of a multi-threaded object-oriented concurrency model, directly generalizing it with a message-based protocol for efficiently coordinating remote objects. We present our pathway to fusing these contrasting but complementary ideas, and evaluate the performance overhead of the automatic synchronization in D-SCOOP , finding that it comes close to—or outperforms—explicit locking-based synchronization in Java RMI.”
More like this (3)
When I first introduced Self, I mentioned that Self is a programming language which employs prototype-based...When I first introduced Self, I mentioned that Self is a programming language which employs prototype-based inheritance; it does not depend on a class-instance distinction to facilitate object-oriented programming, but rather, it uses a prototype object from which copies are created. The methods associated with a pr...
Object-oriented programming is out of fashion now, and it has been for a while. Rarely are...Object-oriented programming is out of fashion now, and it has been for a while. Rarely are new programming languages intentionally object-oriented. And there are good reasons for this: OO often requires a lot of boilerplate, it forces code into unnatural object hierarchies, and it encourages hidden mutable state. Bu...
Testing Objects with a Functional Mindset — Some functional programming ideas could help improve the unit...Testing Objects with a Functional Mindset — Some functional programming ideas could help improve the unit tests for your object-oriented code.