User Tools

Site Tools


research:recap

Differences

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

Link to this comparison view

Next revision
Previous revision
Last revision Both sides next revision
research:recap [2010/07/31 14:54]
stijnm created
research:recap [2010/07/31 17:19]
stijnm *
Line 12: Line 12:
  
 ==== Causally Connected Applications ==== ==== Causally Connected Applications ====
 +† Quick-link: [[research:rp|Reactive programming]]
  
 +IoT applications are //causally connected// to their environment; the presence, proximity and current state of nearby devices and physical objects is used to customize the services and information offered by the application.
  
 +Reacting to changes in the environment requires registering one or more event handlers.  For instance, if an AmbientTalk application wants to respond to the appearance and disappearance of nearby devices, it has to register ''whenever:discovered'' and ''whenever:disconnected'' event handlers.  
 +
 +The use of such event handlers introduces an //inversion of control//, where the control flow of the application is scattered across a number of event handlers.  This inversion of control is particularly jarring if the application logic demands the use of
 +additional event handlers to propagate environmental changes to modules which are only indirectly affected by them.  
 +
 +Note that it is often possible to avoid the inversion of control altogether.  For instance, to abstract over (dis)appearing communication partners, one can use an [[research:ambientrefs|ambient reference]]. In the general case, the inversion of control can often be removed through the use of [[research:rp|reactive values]].
  
 ==== Window on the World ==== ==== Window on the World ====
research/recap.txt · Last modified: 2010/07/31 18:23 by stijnm