Both sides previous revision
Previous revision
Next revision
|
Previous revision
|
weca [2011/02/04 21:00] aspectscript |
weca [2012/02/29 17:50] (current) aspectscript |
[[http://en.wikipedia.org/wiki/Ajax_%28programming%29|Ajax]] have allowed JavaScript programmers to create interactive, collaborative, and user-centered Web applications, known as [[http://en.wikipedia.org/wiki/Web_2.0|Web 2.0 Applications]] (W2As). W2As behave as distributed systems because processors are user machines that are used to send and retrieve messages between them. Unsurprisingly, these applications need to address the same causality issues present in distributed systems like nondeterministic behaviors for the same input and reasoning about distributed computations. JavaScript programmers overcome these issues using rudimentary and alternative methods that ignore fully the distributed computing theory. In addition, these methods need to modify intrusively W2As in order to work. | ====== WeCa: Modular and Flexible Causality Control on the Web ====== |
| |
**WeCa** is a non-intrusive mechanism to //eliminate nondeterministic behaviors// and to //reason about distributed computations//. WeCa is inspired by [[http://en.wikipedia.org/wiki/Distributed_computing|distributed computing]] and [[http://en.wikipedia.org/wiki/Aspect-oriented_programming|aspect-oriented programming]] ideas like [[http://en.wikipedia.org/wiki/Vector_clock|vector clocks]] and [[http://citeseerx.ist.psu.edu/viewdoc/summary?doi=10.1.1.102.7917|stateful aspects]]. Currently, the WeCa implementation | ** NOTE: There is an update of this Web page [[http://pleiad.cl/otm/wiki/weca|here]], please visit it. This Web page will be removed soon.** |
supports [[http://www.mozilla.com/|Mozilla Firefox]] and uses [[http://pleiad.cl/otm|OTM]], an Open Trace-based Mechanism to define stateful aspects, that observes and reacts to JavaScript application executions. FIXME | |
| |
| [[http://en.wikipedia.org/wiki/Ajax_%28programming%29|Ajax]] has allowed JavaScript programmers to create interactive, collaborative, and user-centered Web applications, known |
| as Web 2.0 Applications. These Web applications behave as distributed systems because processors are user machines that are used to send and receive messages between one another. Unsurprisingly, these applications have to address the same causality issues present in distributed systems like the need a) to control the causality between messages sent and responses received and b) to react to distributed causal relations. JavaScript programmers overcome these issues using rudimentary and alternative techniques that largely ignore the distributed computing theory. In addition, these techniques are not very flexible and need to intrusively modify these Web applications. We study how causality issues affect these applications and present WeCa, a practical library that allows for modular and flexible control over these causality issues in Web applications. In contrast to current proposals, WeCa is based on [[http://en.wikipedia.org/wiki/Aspect-oriented_programming|aspects]] and [[http://citeseerx.ist.psu.edu/viewdoc/summary?doi=10.1.1.102.7917|stateful aspects]], [[http://ieeexplore.ieee.org/xpl/freeabs_all.jsp?arnumber=603392|message ordering strategies]], and [[http://en.wikipedia.org/wiki/Vector_clock|vector clocks]]. We illustrate WeCa in action with several practical examples from the realm of Web applications. For instance, we analyze the flow of information in Web applications like Twitter using WeCa. |
| |
* [[otm/ordering_of_messages|Eliminating Nondeterministic Behaviors]]. | {{ :wov2.png?432x301 |}} |
| |
* [[otm/the_matching_of_causal_sequences|Reasoning About Distributed Computations]]. | The figure shows the needs of causality of Web applications and how WeCa proposes to satisfy these needs. In this Web site, you can find examples of these needs: |
| |
| * [[otm/ordering_of_messages| Controlling Message Causality]] |
| |
| * [[otm/the_matching_of_causal_sequences|Reacting to Distributed Causal Relations]] |
| |
| |
| |
| |