From the beginning of software, the two main characteristics of an application that are often opposed to each other are richness (i.e., application function and experience) and reach (i.e., application distribution and access). A model in which both of these characteristics are maximized has always been seen as the Holy Grail of software development.