Batching and forking resource requests in a portable computing device
First Claim
1. A method for managing resource requests in a portable computing device having a plurality of resources, the method comprising:
- receiving, at a framework manager, a first batched transaction from a client, wherein the first batched transaction comprises a plurality of resource requests that are each issued to a software-based proxy representation of a resource of the plurality of resources;
receiving, at the framework manager, a message indicating that the first batched transaction is forkable;
based on receipt of the message, the framework manager forking the first batched transaction such that additional transactions or requests may be received by at least one of the resources of the plurality of resources that is represented by a software-based proxy representation;
issuing, by the framework manager, the plurality of resource requests in the first batched transaction to the plurality of resources for completion;
receiving before the forked transaction is complete, at the framework manager, a second batched transaction of resource requests from the client to at least one of the software-based proxy representations of the resources that is completing at least one of the plurality of resource requests of the first batched transaction;
in response to receiving a second batched transaction, determining at the framework manager, an aggregation type for the plurality of resources;
if the aggregation type is local for a selected resource, aggregating the first batch transaction in accordance with a predetermined aggregation method specified for the selected resource, wherein the predetermined aggregation method includes one of adding an argument of each of a plurality of concurrent resource requests, by either determining a maximum argument from among the plurality of concurrent resource requests, or by determining a minimum argument from among the plurality of concurrent resource requests; and
if the aggregation type is remote for the selected resource, sending each individual resource request to the selected resource represented by the software-based proxy representation of the selected resource wherein the selected resource aggregates the individual resource requests to be processed.
1 Assignment
0 Petitions
Accused Products
Abstract
In a portable computing device having a node-based resource architecture, resource requests are batched or otherwise transactionized to help minimize inter-processing entity messaging or other messaging or provide other benefits. In a resource graph defining the architecture, each node or resource of the graph represents an encapsulation of functionality of one or more resources controlled by a processor or other processing entity, each edge represents a client request, and adjacent nodes of the graph represent resource dependencies. A single transaction of resource requests may be provided against two or more of the resources. Additionally, this single transaction may become forked so that parallel processing among a client issuing the single transaction and the resources handling the requests of the single transaction may occur.
79 Citations
40 Claims
-
1. A method for managing resource requests in a portable computing device having a plurality of resources, the method comprising:
-
receiving, at a framework manager, a first batched transaction from a client, wherein the first batched transaction comprises a plurality of resource requests that are each issued to a software-based proxy representation of a resource of the plurality of resources; receiving, at the framework manager, a message indicating that the first batched transaction is forkable; based on receipt of the message, the framework manager forking the first batched transaction such that additional transactions or requests may be received by at least one of the resources of the plurality of resources that is represented by a software-based proxy representation; issuing, by the framework manager, the plurality of resource requests in the first batched transaction to the plurality of resources for completion; receiving before the forked transaction is complete, at the framework manager, a second batched transaction of resource requests from the client to at least one of the software-based proxy representations of the resources that is completing at least one of the plurality of resource requests of the first batched transaction; in response to receiving a second batched transaction, determining at the framework manager, an aggregation type for the plurality of resources; if the aggregation type is local for a selected resource, aggregating the first batch transaction in accordance with a predetermined aggregation method specified for the selected resource, wherein the predetermined aggregation method includes one of adding an argument of each of a plurality of concurrent resource requests, by either determining a maximum argument from among the plurality of concurrent resource requests, or by determining a minimum argument from among the plurality of concurrent resource requests; and if the aggregation type is remote for the selected resource, sending each individual resource request to the selected resource represented by the software-based proxy representation of the selected resource wherein the selected resource aggregates the individual resource requests to be processed. - View Dependent Claims (2, 3, 4, 5, 6, 7, 8, 9, 10)
-
-
11. A computer system for managing resource requests in a portable computing device having a plurality of resources, the system comprising:
-
a processor operable for; receiving a first batched transaction from a client, wherein the first batched transaction comprises a plurality of resource requests that are each issued to a software-based proxy representation of a resource of the plurality of resources; receiving a message indicating that the batched transaction is forkable; based on receipt of the message, forking the first batched transaction such that additional transactions or requests may be received by at least one of the resources that is represented by a software-based proxy representation; issuing, by the framework manager, the plurality of resource requests in the first batched transaction to the plurality of resources for completion; and receiving before the forked transaction is complete, a second batched transaction of resource requests from the client to at least one of the proxy representations of the resources that is completing at least one of the requests of the first batched transaction; in response to receiving a second batched transaction, determining at the framework manager, an aggregation type for the plurality of resources; if the aggregation type is local for a selected resource, aggregating the first batch transaction in accordance with a predetermined aggregation method specified for the selected resource, wherein the predetermined aggregation method includes one of adding an argument of each of the multiple concurrent resource requests, by either determining a maximum argument from among the plurality of concurrent resource requests, or by determining a minimum argument from among the plurality of concurrent resource requests; and if the aggregation type is remote for a selected resource, sending each individual request to the selected resource represented by the at least one of the proxy representation of the resource wherein the selected resource aggregates the individual requests to be processed. - View Dependent Claims (12, 13, 14, 15, 16, 17, 18, 19, 20)
-
-
21. A computer system for managing resource requests in a portable computing device having a plurality of resources, the system comprising:
-
means for receiving a first batched transaction from a client, wherein the first batched transaction comprises a plurality of resource requests that are each issued to a software-based proxy representation of a resource of the plurality of resources; means for receiving a message indicating that the batched transaction is forkable; based on receipt of the message, means for forking the first batched transaction such that additional transactions or requests may be received by at least one of the resources that is represented by a software-based proxy representation; means for issuing, by the framework manager, the plurality of resource requests in the first batched transaction to the plurality of resources for completion; and means for receiving before the forked transaction is complete, a second batched transaction of resource requests from the client to at least one of the proxy representations of the resources that is completing at least one of the requests of the first batched transaction; in response to receiving a second batched transaction, means for determining at the framework manager, an aggregation type for the plurality of resources; if the aggregation type is local for a selected resource, means for aggregating the first batch transaction in accordance with a predetermined aggregation method specified for the selected resource, wherein the predetermined aggregation method includes one of adding an argument of each of the multiple concurrent resource requests, by either determining a maximum argument from among the plurality of concurrent resource requests, or by determining a minimum argument from among the plurality of concurrent resource requests; and if the aggregation type is remote for a selected resource, means for sending each individual request to the selected resource represented by the at least one of the proxy representation of the resource wherein the selected resource aggregates the individual requests to be processed. - View Dependent Claims (22, 23, 24, 25, 26, 27, 28, 29, 30)
-
-
31. A computer program product comprising a non-transitory computer usable medium having a computer readable program code embodied therein, said computer readable program code adapted to be executed to implement a method for managing resource requests in a portable computing device having a plurality of resources, the method comprising:
-
receiving a first batched transaction from a client, wherein the first batched transaction comprises a plurality of resource requests that are each issued to a software-based proxy representation of a resource of the plurality of resources; receiving a message indicating that the first batched transaction is forkable; based on receipt of the message, forking the first batched transaction such that additional transactions or requests may be received by at least one of the resources of the plurality of resources that is represented by a software-based proxy representation; issuing the plurality of resource requests in the first batched transaction to the plurality of resources for completion; receiving before the forked transaction is complete a second batched transaction of resource requests from the client to at least one of the software-based proxy representations of the resources that is completing at least one of the plurality of resource requests of the first batched transaction; in response to receiving a second batched transaction, determining an aggregation type for the plurality of resources; if the aggregation type is local for a selected resource, aggregating the first batch transaction in accordance with a predetermined aggregation method specified for the selected resource, wherein the predetermined aggregation method includes one of adding an argument of each of a plurality of concurrent resource requests, by either determining a maximum argument from among the plurality of concurrent resource requests, or by determining a minimum argument from among the plurality of concurrent resource requests; and if the aggregation type is remote for the selected resource, sending each individual resource request to the selected resource represented by the software-based proxy representation of the selected resource wherein the selected resource aggregates the individual resource requests to be processed. - View Dependent Claims (32, 33, 34, 35, 36, 37, 38, 39, 40)
-
Specification