1. A method for allowing a software application that executes on a processor to interact with a product, the product including software that defines one or more properties to control the functions of the product, the method comprising: (a) electronically defining a virtual product that spans a first and a second database, the virtual product including a plurality of electronically controllable attributes, the virtual product representing the product, the virtual product in the first and second database that spans the first and second database being the same virtual product; (b) maintaining by the software application the virtual product, wherein the portion of the virtual product in the first database includes: (i) a virtual product record which includes a unique identifier for the virtual product, and (ii) a plurality of unique virtual product attributes, each unique virtual product attribute having corresponding properties, wherein at least one of the properties is the unique attribute label, and wherein the portion of the virtual product in the second database includes: (i) a virtual product record which includes a unique identifier for the virtual product which is the same as the unique identifier for the virtual product in the first database, and (ii) a plurality of unique virtual product attributes, each unique virtual product attribute having corresponding properties wherein at least one of the properties is the unique attribute label; and (c) the software application executing on the processor electronically updating a value of a property of a virtual product's unique virtual product attribute in the second database when a change occurs in the first database to a value of a corresponding property with the same attribute label for the same virtual product, thereby allowing the software application to interact with the product by communicating the new property value and its attribute label to the product that corresponds to the virtual product, wherein the value of the property controls a function of the product, and wherein the product is a device that further comprises software allowing the device to interact with the software application.