A method comprising: (c) based in part on a first value and a second value, determining whether an application program to be launched should be executed on a mobile communication device or should not be executed on the mobile communication device, wherein the first value is indicative of a first amount of a resource, wherein the first amount of the resource is an amount of the resource that is being used on the mobile communication device, and the second value is indicative of a second amount of the resource, wherein the second amount of the resource is an amount of the resource that a local instance of the application program would use if the local instance were executed on the mobile communication device, wherein the application program is a program to be launched, wherein determining further comprises determining if a sum of the first value and the second value exceeds a predetermined threshold value, wherein if the sum is determined to exceed the predetermined threshold value then it is determined that the application program should not be executed on the mobile communication device, and wherein the resource is taken from the group consisting of: battery capacity, memory capacity, battery usage and memory usage; (d) if the determination in (c) is that the application program should be executed on the mobile communication device, then causing the local instance of the application program to be launched on the mobile communication device; and (e) if the determination in (c) is that the application program should not be executed on the mobile communication device, then 1) causing a remote instance of the application program to be launched on a remote computer, and 2) executing a web browser on the mobile communication device, wherein the web browser is usable by a user of the mobile communication device to interact with the remote instance across a wide area network and to view data output by the remote instance. (c) based in part on a first value and a second value, determining whether an application program to be launched should be executed on a mobile communication device or should not be executed on the mobile communication device, wherein the first value is indicative of a first amount of a resource, wherein the first amount of the resource is an amount of the resource that is being used on the mobile communication device, and the second value is indicative of a second amount of the resource, wherein the second amount of the resource is an amount of the resource that a local instance of the application program would use if the local instance were executed on the mobile communication device, wherein the application program is a program to be launched, wherein determining further comprises determining if a sum of the first value and the second value exceeds a predetermined threshold value, wherein if the sum is determined to exceed the predetermined threshold value then it is determined that the application program should not be executed on the mobile communication device, and wherein the resource is taken from the group consisting of: battery capacity, memory capacity, battery usage and memory usage; battery capacity, memory capacity, battery usage and memory usage; (d) if the determination in (c) is that the application program should be executed on the mobile communication device, then causing the local instance of the application program to be launched on the mobile communication device; and (e) if the determination in (c) is that the application program should not be executed on the mobile communication device, then 1) causing a remote instance of the application program to be launched on a remote computer, and 2) executing a web browser on the mobile communication device, wherein the web browser is usable by a user of the mobile communication device to interact with the remote instance across a wide area network and to view data output by the remote instance.