1. A method of generating a decentralized model on a computer network, comprising the steps of: generating data objects and/or function objects; publishing references to the data objects and/or the function objects; subscribing to the data objects and/or the functions by creating relationships between the data objects and/or the function objects through referencing the data objects and/or the function objects within the function objects, thereby linking the data objects and/or the function objects, wherein networks of linked data objects and/or function objects emerge; sending messages to referencing data objects and/or function objects when referenced data objects and/or referenced function objects change; solving the functions when the messages are received; storing the data objects and/or the function objects in a distributed manner across multiple computing devices on a computer network; and wherein the relationships between the data objects and/or function objects are created without using a single coordinating computing device, or are created using multiple coordinating computing devices on the computer network.