Ranking service implementations for a service interface
Abstract
Techniques for ranking service implementations for a service interface are disclosed. Each module that includes a service implementation may be referred to as a “service provider module.” The ranking of the service implementations, for the particular service interface, may be based on modular information. Modular information includes information associated with module dependencies and/or service dependencies corresponding to one or more of a candidate set of service provider modules. Additionally or alternatively, the ranking of the service implementations, for the particular service interface, may be based on statically-available information and/or dynamically-available information associated with one or more of a candidate set of service implementations.
Claims
exact text as granted — not AI-modifiedWhat is claimed is:
1 . A non-transitory computer readable medium comprising instructions which, when executed by one or more hardware processors, cause performance of operations comprising:
identifying a plurality of classes that implement a service interface; identifying a set of one or more attributes associated with each of the plurality of classes,
wherein the set of attributes associated with a particular class, of the plurality of classes, is based on at least one of: (a) information generated by analyzing contents of the particular class, (b) information associated with classes depend upon by the particular class, and (c) information generated by emulating or executing the particular class in a virtual environment;
wherein the set of attributes are not explicitly included in the plurality of classes; and based on at least one of the set of attributes associated with each of the plurality of classes:
selecting a first class of the plurality of classes for implementing the service interface.
2 . The medium of claim 1 , wherein the operations further comprise: generating a ranking of the plurality of classes for implementing the service interface, wherein the first class is selected responsive to determining that the first class is ranked highest in the ranking of the plurality of classes for implementing the service interface.
3 . The medium of claim 2 , wherein a particular caller specifies, as an input to a lookup procedure that obtains instances of the plurality of classes that implement the service interface, at least one of the set of attributes to be prioritized in generating the ranking of at least the subset of the plurality of classes.
4 . The medium of claim 2 , wherein the ranking of a particular class, of the plurality of classes, is based at least on a source code of the particular class.
5 . The medium of claim 1 , wherein the attributes associated with the particular class, of the plurality of classes, indicate a security level associated with the class.
6 . The medium of claim 1 , wherein the attributes associated with the particular class, of the plurality of classes, provide an indication of whether or not the class is lightweight.
7 . The medium of claim 1 , wherein the information generated by analyzing the contents of the particular class or the information associated with classes depend upon by the particular class comprises at least one of:
(a) a code footprint of the particular class; (b) a code footprint of the particular class and code that is directly or indirectly depended upon by the particular class; (c) computational constructs in the particular class; (d) computational constructs in the particular class and code that is directly or indirectly depended upon by the particular class; and (e) a number of classes directly or indirectly depended upon by the particular class.
8 . The medium of claim 1 , wherein the information generated by emulating or executing the particular class in a virtual environment comprises at least one of:
(a) emulated or estimated memory footprint for executing the particular class; and (b) emulated or estimated processor cycles for executing the particular class.
9 . The medium of claim 1 , wherein the set of attributes is determined based on one or more system configurations.
10 . The medium of claim 1 , wherein each class, of the plurality of classes, is a service implementation to implement a particular service.
11 . A method, comprising:
identifying a plurality of classes that implement a service interface; identifying a set of one or more attributes associated with each of the plurality of classes,
wherein the set of attributes associated with a particular class, of the plurality of classes, is based on at least one of: (a) information generated by analyzing contents of the particular class, (b) information associated with classes depend upon by the particular class, and (c) information generated by emulating or executing the particular class in a virtual environment;
wherein the set of attributes are not explicitly included in the plurality of classes; and based on at least one of the set of attributes associated with each of the plurality of classes:
selecting a first class of the plurality of classes for implementing the service interface,
wherein the method is performed by at least one device including a hardware processor.
12 . The method of claim 11 , wherein the operations further comprise: generating a ranking of the plurality of classes for implementing the service interface, wherein the first class is selected responsive to determining that the first class is ranked highest in the ranking of the plurality of classes for implementing the service interface.
13 . The method of claim 12 , wherein a particular caller specifies, as an input to a lookup procedure that obtains instances of the plurality of classes that implement the service interface, at least one of the set of attributes to be prioritized in generating the ranking of at least the subset of the plurality of classes.
14 . The method of claim 12 , wherein the ranking of a particular class, of the plurality of classes, is based at least on a source code of the particular class.
15 . The method of claim 11 , wherein the attributes associated with the particular class, of the plurality of classes, indicate a security level associated with the class.
16 . The method of claim 11 , wherein the attributes associated with the particular class, of the plurality of classes, provide an indication of whether or not the class is lightweight.
17 . A system comprising:
at least one device including a hardware processor; the system being configured to perform operations comprising: identifying a plurality of classes that implement a service interface; identifying a set of one or more attributes associated with each of the plurality of classes,
wherein the set of attributes associated with a particular class, of the plurality of classes, is based on at least one of: (a) information generated by analyzing contents of the particular class, (b) information associated with classes depend upon by the particular class, and (c) information generated by emulating or executing the particular class in a virtual environment;
wherein the set of attributes are not explicitly included in the plurality of classes; and based on at least one of the set of attributes associated with each of the plurality of classes:
selecting a first class of the plurality of classes for implementing the service interface.
18 . The system of claim 17 , wherein the operations further comprise: generating a ranking of the plurality of classes for implementing the service interface, wherein the first class is selected responsive to determining that the first class is ranked highest in the ranking of the plurality of classes for implementing the service interface.
19 . The system of claim 18 , wherein the ranking of a particular class, of the plurality of classes, is based at least on a source code of the particular class.
20 . The system of claim 17 , wherein the attributes associated with the particular class, of the plurality of classes, indicate a security level associated with the class.Cited by (0)
No later patents cite this yet.
References (0)
No backward citations on record.