Evaluating application compatibility
First Claim
Patent Images
1. A non-transitory computer-readable medium embodying a program executable in a computing device, comprising:
- code that obtains a set of mobile applications from a developer;
code that determines whether individual applications of the set of mobile applications are compatible with a mobile device according to respective evaluation results, configured to;
obtain a set of capabilities associated with the mobile device;
obtain a corresponding compatibility expression for the individual applications of the set of mobile applications, the compatibility expression comprising at least one term in a postfix expression; and
send a single batch containing a plurality of evaluation requests to a compatibility evaluation service over a network, wherein each individual evaluation request of the single batch of evaluation requests specifies a corresponding identifier for a respective one of the set of mobile applications and an identifier for the set of capabilities, the compatibility evaluation service being configured to;
access a plurality of attribute-value pairs belonging to the set of capabilities;
substitute a respective value from an individual attribute-value pair of the plurality of attribute-value pairs for an individual variable of a plurality of operands in the corresponding compatibility expression, wherein the corresponding compatibility expression further comprises an operand associated with either the respective value or the individual variable; and
perform an evaluation of the corresponding compatibility expression, based, at least in part, on the set of capabilities to produce a respective evaluation result, the evaluation comprising;
determining whether the at least one term is an operator or an operand;
pushing the operand onto a stack in response to determining that the at least one term is an operand;
popping a number of operands from the stack in response to determining that the at least one term is an operator; and
pushing a result onto the stack;
code that caches the result and utilizes the cached result, in lieu of a future batch of new evaluation requests;
code that filters the set of mobile applications to exclude mobile applications that are incompatible with the mobile device; and
code that generates a user interface that facilitates an acquisition of the mobile application by a user for installation on the mobile device.
1 Assignment
0 Petitions
Accused Products
Abstract
Disclosed are various embodiments for evaluating application compatibility with computing devices. A set of applications is determined and then filtered to exclude those applications which are incompatible with a particular client. The filtering is performed by determining a capability set for the client and performing an evaluation of a compatibility expression for each application using the capability set to determine whether each application is compatible with the client. The filtered set of applications is returned and may be used in user interfaces associated with an application marketplace system.
-
Citations
26 Claims
-
1. A non-transitory computer-readable medium embodying a program executable in a computing device, comprising:
-
code that obtains a set of mobile applications from a developer; code that determines whether individual applications of the set of mobile applications are compatible with a mobile device according to respective evaluation results, configured to; obtain a set of capabilities associated with the mobile device; obtain a corresponding compatibility expression for the individual applications of the set of mobile applications, the compatibility expression comprising at least one term in a postfix expression; and send a single batch containing a plurality of evaluation requests to a compatibility evaluation service over a network, wherein each individual evaluation request of the single batch of evaluation requests specifies a corresponding identifier for a respective one of the set of mobile applications and an identifier for the set of capabilities, the compatibility evaluation service being configured to; access a plurality of attribute-value pairs belonging to the set of capabilities; substitute a respective value from an individual attribute-value pair of the plurality of attribute-value pairs for an individual variable of a plurality of operands in the corresponding compatibility expression, wherein the corresponding compatibility expression further comprises an operand associated with either the respective value or the individual variable; and perform an evaluation of the corresponding compatibility expression, based, at least in part, on the set of capabilities to produce a respective evaluation result, the evaluation comprising; determining whether the at least one term is an operator or an operand; pushing the operand onto a stack in response to determining that the at least one term is an operand; popping a number of operands from the stack in response to determining that the at least one term is an operator; and pushing a result onto the stack; code that caches the result and utilizes the cached result, in lieu of a future batch of new evaluation requests; code that filters the set of mobile applications to exclude mobile applications that are incompatible with the mobile device; and code that generates a user interface that facilitates an acquisition of the mobile application by a user for installation on the mobile device. - View Dependent Claims (2, 3, 4, 5, 6, 7)
-
-
8. A system, comprising:
-
at least one computing device; and at least one application executable in the at least one computing device, the at least one application comprising; logic that determines whether individual applications of a set of applications are compatible with a particular client according to respective evaluation results, configured to; determine a capability set for the particular client; obtain a corresponding compatibility expression for the individual applications of the set of applications, the corresponding compatibility expression comprising a plurality of terms in a postfix expression; and send a single batch containing a plurality of evaluation requests to a compatibility evaluation service over a network, wherein each individual evaluation request of the single batch of evaluation requests specifies a corresponding identifier for a respective one of the set of applications and an identifier for the capability set, the compatibility evaluation service being configured to; access a plurality of attribute-value pairs belonging to the capability set; substitute a respective value from an individual attribute-value pair of the plurality of attribute-value pairs for an individual variable of a plurality of operands in the corresponding compatibility expression, wherein the corresponding compatibility expression further comprises an operand associated with either the respective value or the individual variable; and perform an evaluation of the corresponding compatibility expression, based, at least in part, on the capability set to produce a respective evaluation result, the evaluation comprising;
determining whether a term of the plurality of terms is an operand or an operator;
pushing the operand onto a stack in response to determining that the term is an operand;
popping a number of operands from the stack in response to determining that the term is an operator; and
pushing a result onto the stack;logic that caches the result and utilizes the cached result, in lieu of a future batch of new evaluation requests; logic that filters the set of applications to exclude applications that are incompatible with the particular client; and logic that returns the set of applications that has been filtered. - View Dependent Claims (9, 10, 11, 12, 13, 14, 15, 16, 17, 18)
-
-
19. A method, comprising:
-
obtaining, in a client computing device, a set of capabilities associated with the client computing device; obtaining, in the client computing device, a list of applications from an application marketplace system; determining, in the client computing device, whether individual applications of the list of applications are compatible with the client computing device according to respective evaluation results, the determining comprising; obtaining, in the client computing device, a corresponding compatibility expression for the individual applications of the list of applications, the corresponding compatibility expression comprising a plurality of terms in a postfix expression; sending, in the client computing device, a single batch containing a plurality of evaluation requests to a compatibility evaluation service over a network, wherein each individual evaluation request of the single batch of evaluation requests specifies a corresponding identifier for a respective one of the list of applications and an identifier for the set of capabilities, the compatibility evaluation service being configured to; access a plurality of attribute-value pairs belonging to the set of capabilities; substitute a respective value from an individual attribute-value pair of the plurality of attribute-value pairs for an individual variable of a plurality of operands in the corresponding compatibility expression, wherein the corresponding compatibility expression further comprises an operand associated with either the respective value or the individual variable; and perform an evaluation of the corresponding capability expression, based, at least in part, on the set of capabilities to produce a respective evaluation result, the evaluation comprising; determining whether a term in the plurality of terms is an operand or an operator; pushing the operand onto a stack in response to determining that the term is an operand; popping a number of operands from the stack in response to determining that the term is an operator; and pushing a result onto the stack; caching, in the client computing device, the result and utilizing the cached result, in lieu of a future batch of new evaluation requests; filtering, in the client computing device, the list of applications to exclude applications that are incompatible with the client computing device; and rendering, in the client computing device, a user interface configured to present the list of applications that has been filtered. - View Dependent Claims (20, 21, 22, 23, 24, 25, 26)
-
Specification