1. A method of actively sharing an application configured to be executed on both an originating and destination computing device, the method comprising: binding the application executing on the originating computing device with one or more documents maintained in a data model, the one or more documents representing a state of the executing application; initiating a collaboration session between the originating and destination computing devices, in which the state of the application executing on the originating computing device is exported to the destination computing device, comprising: serializing the state of the application on the originating computing device; propagating a serialized representation of the application state generated on the originating computing device to a server computing device that is configured to manage data exchange between the originating and destination computing devices; and providing the destination computing device with rights to access resources associated with the application and the serialized representation of the application state generated by the originating computing device; in response to the occurrence of a state change to the application executing on the originating computing device: updating the one or more documents bound to the application executing on the originating computing to represent the state change; generating a transaction on the originating computing that provides a description of the state change; and transmitting the transaction that provides the description of the state change to the server computing device.