1. A method for maintaining a consistent, local instance of a remote database management system (DBMS), said method comprising: a. creating a local cache database of at least one table caching dynamically changing subsets of data of said at least one table in a remote backend database; b. executing against said local cache database, a query issued against said remote backend database; c. asynchronously populating said at least one table of said local cache database based on outcome of said execution step; and d. asynchronously updating content of said at least one table in said local cache database with respect to changes to said at least one table in said remote backend database.