1. A method comprising: receiving, by a middleware aggregation engine executed by a processor, a data request from an application, wherein the middleware aggregation engine is in communication with a plurality of data sources; identifying, by the middleware aggregation engine, which ones of the data sources contain data that corresponds to the data request; extracting, by the middleware aggregation engine, the data corresponding to the data request from the identified ones of the data sources, wherein the data has different types respective to the identified ones of the data sources; identifying, by the middleware aggregation engine in the extracted data, a first structure within a first of the identified ones of the data sources and a second structure within a second of the identified ones of the data sources that are in common, wherein first data within the first structure has a different type than second data within the second structure; generating, by the middleware aggregation engine, an aggregation table with entries that map information in the extracted data from the identified ones of the data sources to a combined data object, wherein each of the entries in the aggregation table comprises an identifier of one of the identified ones of the data sources, an identifier of a field within the one of the identified ones of the data sources, and an index of a location within the combined data object that corresponds to the field within the one of the identified ones of the data sources; generating, by the middleware aggregation engine from the extracted data and the aggregation table, the combined data object by placing the first data and the second data together within a structure of the combined data object but in separate locations within the structure and without altering the first data or the second data; and providing, by the middleware aggregation engine, access to the combined data object to the application to perform a set of statistical measures on the combined data object.