Differences

This shows you the differences between two versions of the page.

Link to this comparison view

Both sides previous revision Previous revision
Next revision
Previous revision
Last revision Both sides next revision
arcs.js:framework_presentation [2017/05/26 03:24]
didier [Component model]
arcs.js:framework_presentation [2017/05/26 04:26]
didier
Line 1: Line 1:
 ====== ARCS.js, a Web framwork for Augmented Reality ====== ====== ARCS.js, a Web framwork for Augmented Reality ======
-===== In brief =====+
 **ARCS.js** is a component oriented programming framework dedicated to augmented reality applications. It is written using the javascript language. **ARCS.js** is a component oriented programming framework dedicated to augmented reality applications. It is written using the javascript language.
 The targeted platforms are: The targeted platforms are:
Line 15: Line 15:
   * using slot calls (see invocations below).   * using slot calls (see invocations below).
  
 +==== Application model ====
 +In ARCS.js, an application is considered to have a lifecycle going through several different states (initialisation,​ normal mode, recovery mode, etc). Each state is characterized by a set of omponents and a set of signal/slot connections. Such configuration is called a **sheet**.
 +The application is then controlled by a finite statemachine,​ each state of it corresponding to one sheet. When a transition is triggered in the statemachine,​ it activates a change of sheet.
 +
 +The sheet is composite structure. It contains components as well as other data:
 +  * a list of pre-connection invocations for component initialization;​
 +  * a list of connections to establish datapath between components;
 +  * a list of post-connection invocations that enables dataflow;
 +  * a list of cleanup invocations in order to set some components in a stable state.
 +
 +The behavior of the application controller is the following, assuming that it received a token triggering a transition (having a starting state and an ending state):
 +  - If a sheet is active (corresponding to the starting state), disconnect all components;
 +  - Perform cleanup invocations on sheet;
 +  - Enable the next sheet (corresponding to the ending state):
 +    - Perform pre-connection invocations;​
 +    - Connect components of the sheet;
 +    - Perform post-connection invocations.
 +