A remote data collection system, comprising: one or more servers coupled to one or more data stores; a plurality of remote clients communicatively coupled to the one or more servers, each of the plurality of remote clients comprising a remote client agent communicatively coupled to one or more client data sources; and a message transport mechanism including metadata messages and configured to provide communication, coordination and control between the one or more servers and the plurality of remote clients, wherein the message transport mechanism is used to replicate data from the plurality of remote client data sources to the data stores, by using the remote client agents and according to definitions sent to each of the remote client agents; the control comprising the one or more servers being configured to remotely control the replication of data from one of the one or more client data sources through one or more of the plurality of remote client agents by updating said definitions used by the remote client agents; the communication comprising replicating data from the client data sources to the data stores, using the remote client agents on the plurality of remote clients, using the message transport mechanism;; and wherein the remote client agents on the plurality of remote clients and the one or more servers are configured to operate in a database independent manner relative to the plurality of data sources using abstraction layers to hide implementation details for various database types; further characterized by an update server communicatively coupled to each of the plurality of remote clients, wherein the update server is configured to provide modifications to the remote client agent code through client agent update packages in response to a remote client agent update number received from the remote client agent using the metadata message transport mechanism. one or more servers coupled to one or more data stores; a plurality of remote clients communicatively coupled to the one or more servers, each of the plurality of remote clients comprising a remote client agent communicatively coupled to one or more client data sources; and a message transport mechanism including metadata messages and configured to provide communication, coordination and control between the one or more servers and the plurality of remote clients, wherein the message transport mechanism is used to replicate data from the plurality of remote client data sources to the data stores, by using the remote client agents and according to definitions sent to each of the remote client agents; the control comprising the one or more servers being configured to remotely control the replication of data from one of the one or more client data sources through one or more of the plurality of remote client agents by updating said definitions used by the remote client agents; the communication comprising replicating data from the client data sources to the data stores, using the remote client agents on the plurality of remote clients, using the message transport mechanism;; and wherein the remote client agents on the plurality of remote clients and the one or more servers are configured to operate in a database independent manner relative to the plurality of data sources using abstraction layers to hide implementation details for various database types; further characterized by an update server communicatively coupled to each of the plurality of remote clients, wherein the update server is configured to provide modifications to the remote client agent code through client agent update packages in response to a remote client agent update number received from the remote client agent using the metadata message transport mechanism.