In order to realize this new paradigm of communication and interaction, tightly coupled, bidirectional programmatic interfaces are needed. These interfaces also need to be readily and rapidly implemented in software so as to encourage their use and ubiquitous deployment. These interfaces have been commonly referred to as application friendly