1. A method for providing the result of a task list query to a human task database, the method comprising: caching data from the database in a plurality of materialized views, each materialized view including data resulting from a query based on a request for a list of tasks from the database; receiving a new request for a list of tasks from the database, and creating a new query after determining that the new request applies to the data in a particular one of the materialized views, wherein the particular materialized view includes a foreground table and a background table, each storing data resulting from the query, the data stored in the foreground table being updated more recently than the data stored in the background table wherein in response to only the background table requiring updating, the executing of the new query against the data in the foreground table is begun immediately after determining that only the background table requires updating; and wherein the updating of the particular materialized view is a non-blocking update to the data in the background table, such that the non-blocking update does not delay the executing of the new query, and after the non-blocking update is complete, further comprising switching the tables such that the background table becomes the foreground table and the foreground table becomes the background table, wherein in response to both the foreground table and the background table requiring updating, the updating of the particular materialized view is a blocking update to the data in the background table, such that the executing of the query is delayed, wherein after the blocking update is complete, further comprising switching the tables such that the background table becomes the foreground table and the foreground table becomes the background table, wherein the executing of the new query on the data in the particular materialized view is begun after the updating and switching are complete; after receiving the new request and before executing the new query, determining whether the particular materialized view includes data that requires updating from more recent data in the database wherein determining whether the particular materialized view includes data that requires updating includes: determining whether data in the foreground table requires updating and whether data in the background table requires updating, and checking a characteristic of the data in the particular materialized view and comparing the characteristic to a predetermined parameter; in response to determining that updating is required, updating the particular materialized view with more recent data from the database; and executing the new query against the data in the foreground table of the particular materialized view instead of executing the new query against the data stored in tables in the database.
1. A method for providing the result of a task list query to a human task database, the method comprising: caching data from the database in a plurality of materialized views, each materialized view including data resulting from a query based on a request for a list of tasks from the database; receiving a new request for a list of tasks from the database, and creating a new query after determining that the new request applies to the data in a particular one of the materialized views, wherein the particular materialized view includes a foreground table and a background table, each storing data resulting from the query, the data stored in the foreground table being updated more recently than the data stored in the background table wherein in response to only the background table requiring updating, the executing of the new query against the data in the foreground table is begun immediately after determining that only the background table requires updating; and wherein the updating of the particular materialized view is a non-blocking update to the data in the background table, such that the non-blocking update does not delay the executing of the new query, and after the non-blocking update is complete, further comprising switching the tables such that the background table becomes the foreground table and the foreground table becomes the background table, wherein in response to both the foreground table and the background table requiring updating, the updating of the particular materialized view is a blocking update to the data in the background table, such that the executing of the query is delayed, wherein after the blocking update is complete, further comprising switching the tables such that the background table becomes the foreground table and the foreground table becomes the background table, wherein the executing of the new query on the data in the particular materialized view is begun after the updating and switching are complete; after receiving the new request and before executing the new query, determining whether the particular materialized view includes data that requires updating from more recent data in the database wherein determining whether the particular materialized view includes data that requires updating includes: determining whether data in the foreground table requires updating and whether data in the background table requires updating, and checking a characteristic of the data in the particular materialized view and comparing the characteristic to a predetermined parameter; in response to determining that updating is required, updating the particular materialized view with more recent data from the database; and executing the new query against the data in the foreground table of the particular materialized view instead of executing the new query against the data stored in tables in the database. 3. The method of claim 1 wherein the checked characteristic of the data in the particular materialized view is an age of the data and the predetermined parameter is a predetermined maximum age parameter, and wherein determining whether the particular materialized view needs updating includes comparing the age of the data in the particular materialized view with the maximum age parameter, wherein the data is determined to need updating when the age of the data is determined to need updating when the age of the data is greater than the maximum age parameter.