Patent ID: 8700596

Claim:
One or more computer storage media embodying computer readable instructions which, when executed, implement: a query and aggregation layer that is configured to be communicatively coupled to, and independent of, a presentation layer and a storage layer, the storage layer comprising one or more different data sources configured to store different types of data, the query and aggregation layer including a data model configured to expose an access mechanism that is usable to access the different data sources in the storage layer by at least: receiving a search query from the presentation layer; ascertaining one or more data providers identified in the search query, at least some of the data providers being creatable on a thread that is a same thread as the data model; issuing the search query to one or more identified data providers in the query and aggregation layer effective to cause the one or more identified data providers to execute the search query on one or more data sources associated with the one or more identified data providers; receiving search results with the data model from the one or more identified data providers; and returning the search results to the presentation layer.