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.

2. Context and Motivation<br />

2.5. Building Applications: The Right Tool for the Job<br />

<br />

Researchers often make the case that the implementation of parallel and concurrent<br />

systems is a complex un<strong>de</strong>rtaking that requires the right tools for the<br />

job, perhaps more so than for other problems software engineering encountered<br />

so far [Cantrill and Bonwick, 2008; Lee, 2006; Sutter, 2005]. Instead of<br />

searching for a non-existing silver bullet approach, this dissertation argues,<br />

like other research [Catanzaro et al., 2010; Chafi et al., 2010], that language<br />

<strong>de</strong>signers need to be supported in building domain-specific concurrency abstractions.<br />

<br />

Typical <strong>de</strong>sktop applications such as the e-mail application sketched in<br />

Fig. 2.1 combine several components that interact and have different potential<br />

to utilize computational resources. The user interface component is traditionally<br />

implemented with an event-loop to react to user input. In a concurrent<br />

setting, it is also <strong>de</strong>sirable to enforce encapsulation as in an actor mo<strong>de</strong>l, since<br />

encapsulation simplifies reasoning about the interaction with other components.<br />

Thus, a programming mo<strong>de</strong>l based on event-loop concurrency might<br />

be the first choice.<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

Figure 2.1.: Mockup of an E-Mail Application<br />

Another part of the application is data storage for emails and address book<br />

information. This part traditionally interacts with a database. The natural way<br />

to implement this component is to use an STM system that extends the transaction<br />

semantics of the database into the application. This allows for unified<br />

36

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

Saved successfully!

Ooh no, something went wrong!