Abstract: A three-tier data processing system of the present invention includes a client application, operating on a client machine (i.e., first tier), which obtains data from a back-end data source (e.g., database server) by submitting a request (e.g., SQL query) to a middle tier. The middle tier, in turn, comprises a provider and a resolver. Data is actually returned to the client by means of a "data packet" of the present invention, which is a platform-independent self-describing data format used to exchange data between different subsystems of the architecture. A data packet normally represents a result set, which is received by a client from a remote server, containing both data and metadata. Upon receiving the data packet from the provider, the client unpacks the data and then proceeds to process and manipulate the data as if it were local data (e.g., for insert, deletes, updates, and the like).