29.11.2012 Views

2nd USENIX Conference on Web Application Development ...

2nd USENIX Conference on Web Application Development ...

2nd USENIX Conference on Web Application Development ...

SHOW MORE
SHOW LESS

You also want an ePaper? Increase the reach of your titles

YUMPU automatically turns print PDFs into web optimized ePapers that Google loves.

it automatically). A user or service can notify any such derived<br />

preservers and update them, but this is not automatic<br />

since synchr<strong>on</strong>ous data updates are typically not required<br />

across multiple web services.<br />

4.2 Preserver Invocati<strong>on</strong> Policy<br />

An invocati<strong>on</strong> policy allows the user to specify c<strong>on</strong>straints<br />

<strong>on</strong> the invocati<strong>on</strong> parameters to the preserver interface.<br />

Our policy language supports two kinds of c<strong>on</strong>straints:<br />

stateless and stateful.<br />

Stateless c<strong>on</strong>straints specify c<strong>on</strong>diti<strong>on</strong>s that must<br />

be satisfied by arguments to a single invocati<strong>on</strong> of a<br />

preserver, e.g., “never charge more than 100 dollars in<br />

a single invocati<strong>on</strong>”. We support predicates based <strong>on</strong><br />

comparis<strong>on</strong> operati<strong>on</strong>s, al<strong>on</strong>g with any c<strong>on</strong>juncti<strong>on</strong> or<br />

disjuncti<strong>on</strong> operati<strong>on</strong>s. Stateful c<strong>on</strong>straints apply across<br />

several invocati<strong>on</strong>s; for example, “no more than 100<br />

dollars during the lifetime of the preserver”; such c<strong>on</strong>straints<br />

are useful for specifying cumulative c<strong>on</strong>straints.<br />

For instance, users can specify a CCN budget over a time<br />

window. We present an excerpt below.<br />

(1) alice SAYS CanInvoke(amaz<strong>on</strong>, A) IF LessThan(A,50)<br />

(2) alice SAYS CanInvoke(doubleclick, A)<br />

IF LessThan(A,Limit), Between(Time, “01/01/10”,”01/31/10”)<br />

STATE (Limit = 50, Update(Limit, A))<br />

(3) alice SAYS amaz<strong>on</strong> CANSAY CanInvoke(S,A)<br />

IF LessThan(A,Limit)<br />

STATE (Limit = 50, Update(Limit, A))<br />

The first rule gives the capability “can invoke up to<br />

amount A” to Amaz<strong>on</strong> as l<strong>on</strong>g as A

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

Saved successfully!

Ooh no, something went wrong!