05.08.2014 Views

here - Stefan-Marr.de

here - Stefan-Marr.de

here - Stefan-Marr.de

SHOW MORE
SHOW LESS

Create successful ePaper yourself

Turn your PDF publications into a flip-book with our unique Google optimized e-Paper software.

6. Evaluation: The OMOP as a Unifying Substrate<br />

tions can be enforced by the OMOP. Reflective operations can be completely<br />

forbid<strong>de</strong>n by customizing intercession handlers for method and primitive invocation.<br />

Mutation can be forbid<strong>de</strong>n by customizing the handing of writes to<br />

object fields, globals, and the semantics of primitives. Sec. 6.2.1 <strong>de</strong>monstrated<br />

this by <strong>de</strong>fining a ImmutableDomain.<br />

Transactions As <strong>de</strong>monstrated with the implementation of a domain for<br />

STM in Sec. 6.2.2, the semantics of transactions can easily be supported by<br />

customizing the intercession handlers for reading and writing of object fields<br />

and globals. Support for customizing the semantics of primitives completes<br />

this support and enables full tracking of all state access and mutation operations.<br />

6.3.2. Partially Supported Concepts<br />

The bottom part of Tab. 6.3 covers another set of nine concepts. Their implementation<br />

is partially facilitated by the OMOP. While they require additional<br />

mechanisms, their implementation is simplified when they can rely on the<br />

OMOP as a foundation.<br />

Immutability The concepts of data streams, map/reduce, persistent data structures,<br />

and tuple spaces all come with the implicit assumption of being used<br />

with immutable entities. For instance, Google’s MapReduce [Lämmel, 2008]<br />

is <strong>de</strong>signed for si<strong>de</strong>-effect free operators in a distributed setting. Thus, it assumes<br />

that the data entities it operates on are immutable. The OMOP can<br />

provi<strong>de</strong> such a guarantee based on an appropriate domain <strong>de</strong>finition. However,<br />

the OMOP itself does not facilitate the execution, data handling, and<br />

scheduling that needs to be performed by a MapReduce implementation. The<br />

other three concepts benefit from the ability to enforce immutability in a similar<br />

way, but a significant part of these concepts is orthogonal to the OMOP.<br />

Thus, the OMOP provi<strong>de</strong>s partial support for the concept by facilitating the<br />

implementation of a key aspect.<br />

Ownership When it comes to the implementation of message sends, the related<br />

concept of channels, and the general notion of by-value semantics, the<br />

OMOP can be used to realize part of the <strong>de</strong>sired guarantees. The notion of<br />

ownership enables the distinction between sen<strong>de</strong>r and receiver, and for instance<br />

enables a domain to restrict mutability, or perhaps even realize a copyon-write<br />

notion for entities that are shared by-value. However, since message<br />

160

Hooray! Your file is uploaded and ready to be published.

Saved successfully!

Ooh no, something went wrong!