| CPC H04L 67/1008 (2013.01) [H04L 45/42 (2013.01); H04L 67/101 (2013.01)] | 13 Claims |

|
1. A method for dynamic provisioning of processing functionality corresponding to an instance of a cloud based software application, wherein the instance of the cloud based software application is executed at a cloud services server system, and wherein output data from the instance of the cloud based software application is streamed to and rendered on a client terminal that is interfaced with the cloud services server system through a network, the method comprising the steps of:
initiating a network communication session between the client terminal and cloud services server system, for delivery of streaming data that is output from the instance of the cloud based software application, from the cloud services server system to the client terminal;
assigning a plurality of computing devices to the instance of the cloud based software application, the plurality of computing devices comprising at least a first cloud services server, and a second computing device;
assigning the first cloud computing server for execution of a first set of software application program instructions corresponding to the instance of the cloud based software application, the first set of software application program instructions comprising a plurality of software application program instructions, and having a first set of attributes;
assigning the second computing device for execution of a second set of software application program instructions corresponding to the instance of the cloud based software application, the second set of software application program instructions comprising a plurality of software application program instructions, and having a second set of attributes, wherein the second set of attributes are different from the first set of attributes;
receiving a first software application program instruction for execution, wherein said first software application program instruction is associated with functionality of the instance of the cloud based software application;
selecting one of the first cloud services server and the second computing device as an instruction implementation device, for execution of the first software application program instruction, wherein:
the first cloud services server is selected as the instruction implementation device in response to determining that the first set of software application program instructions includes the first software application program instruction; and
the second computing device is selected as the instruction implementation device in response to determining that the second set of software application program instructions includes the first software application program instruction;
routing the first software application program instruction to the selected instruction implementation device;
selecting a computing device from among the first cloud computing server and the second computing device, and detecting a set of communication network parameters associated with the selected computing device;
responsive to one or more of the detected set of communication network parameters falling outside a defined set of acceptable communication network parameters:
identifying a third computing device having a set of communication network parameters that conform to the defined set of acceptable communication network parameters, and
assigning the third computing device for execution of the set of software program instructions previously assigned for execution to the selected computing device;
receiving, prior to occurrence of a defined termination event, a second software application program instruction for execution, wherein said second software application program instruction is associated with functionality of the instance of the cloud based software application;
responding to a determination that the set of software application program instructions previously assigned to the selected computing device includes the second software application program instruction, by routing the second software application program instruction to the third computing device; and
executing the second software application program instruction at a processor within the third computing device.
|