1. One or more computer-readable media having computer-readable instructions thereon which, when executed, provide a software architecture configured to: provide an interface configured to provide a generic data model; provide asynchronous client dispatch which allows a client or client application to begin a data request which immediately returns control to a client thread; and provide asynchronous server dispatch in which a server can service requests from the client asynchronously.