1. A 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 by comparing the client-based computing resources indicated by the at least one indicator against at least one previously determined resource threshold associated with the application task, and, when the client-based computing resources favorably compare to the previously determined resource threshold, allocating the at least one application task to the client, otherwise allocating the at least one application task to the server component; wherein the at least one application server task comprises a speech recognition task, and wherein the determining step is based at least in part upon a size of grammar used in the speech recognition task; wherein the at least one application server task comprises a text-to-speech conversion task, and wherein the determining step is based at least in part upon a complexity of the text-to-speech conversion task.