1. A software method for allocating application tasks between a client and a server comprising the steps of: detecting client-based computing resources capable of executing at least one application task; conveying at least one indicator of the detected client-based computing resources to a remotely located application server; and the application server determining whether to allocate at least one application task to a client or to a server component based upon the at least one indicator.