Data moves between multiple, disparate data sources and the
object-oriented computer programs that process the data. A data access
server is interposed between the object-oriented programs and the data
sources, and acts as an intermediary. The intermediary server receives
requests for data access from object-oriented computer programs,
correlates each request to one or more interactions with one or more data
sources, performs each required interaction, consolidates the results of
the interactions, and presents a singular response to the requesting
computer program. The consolidated response from the intermediary server
contains data items requested by the computer program, information
regarding the hierarchical topology that relates the data items, and an
indication of the possible object types that might embody the data items.
The application program receives the consolidated response and builds an
object hierarchy to embody the data items and to interface them to the
rest of the application program. The class of an object used to embody
data items is selected at execution time from a list of possible
candidates.