Programming model for modular development
First Claim
1. A method for providing a programming model for modular development comprising the steps of:
- providing a definition feature that allows a definition to be specified for a particular method that is part of an application, wherein the definition specifies a signature of a functionality implementation of the particular method;
providing a production feature that allows a the functionality implementation to be specified for the particular method separately from the definition, wherein the production feature prohibits the functionality implementation from being declared as a public method to ensure that no method calls can be made directly to the functionality implementation;
providing a consuming method that indirectly calls the functionality implementation of the particular method by referencing the definition of the particular method, the consuming method having no awareness of the functionality implementation for the particular method;
performing an analysis process prior to runtime to generate a graph of direct associations from indirect references, including a direct association between the consuming method and the functionality implementation of the particular method without having to actually load the components, wherein the analysis process ensures that all required service dependencies for indirect associations are satisfied so that binding can be achieved properly before allowing the application to be run by a loader; and
using a computing device, at runtime, executing the loader to use the graph of direct associations to properly transfer the method call from the consuming method to the functionality implementation of the particular method.
2 Assignments
0 Petitions
Accused Products
Abstract
Various technologies and techniques are disclosed for providing a programming model for modular development. A definition feature is provided that allows a definition to be specified for a particular method that is part of an application. A production feature allows a functionality implementation to be specified for the particular method separately from the definition. A consumption feature allows a method call to be made indirectly to the functionality implementation of the particular method by referencing the definition of the particular method from a consuming method. The consuming method has no awareness of the functionality implementation for the particular method. An analysis process inspects components containing indirect associations between these consumers and producers of application functionality to generate a graph of direct associations between the consumers and producers without having to actually load the components. A loader process uses the graph of direct associations to run the application.
39 Citations
16 Claims
-
1. A method for providing a programming model for modular development comprising the steps of:
-
providing a definition feature that allows a definition to be specified for a particular method that is part of an application, wherein the definition specifies a signature of a functionality implementation of the particular method; providing a production feature that allows a the functionality implementation to be specified for the particular method separately from the definition, wherein the production feature prohibits the functionality implementation from being declared as a public method to ensure that no method calls can be made directly to the functionality implementation; providing a consuming method that indirectly calls the functionality implementation of the particular method by referencing the definition of the particular method, the consuming method having no awareness of the functionality implementation for the particular method; performing an analysis process prior to runtime to generate a graph of direct associations from indirect references, including a direct association between the consuming method and the functionality implementation of the particular method without having to actually load the components, wherein the analysis process ensures that all required service dependencies for indirect associations are satisfied so that binding can be achieved properly before allowing the application to be run by a loader; and using a computing device, at runtime, executing the loader to use the graph of direct associations to properly transfer the method call from the consuming method to the functionality implementation of the particular method. - View Dependent Claims (2, 3, 4, 5, 6, 7, 8)
-
-
9. A computer storage memory having computer-executable instructions for causing a computer to perform steps comprising:
-
provide a definition feature that allows a definition to be specified for a producer that is part of an application, wherein the definition specifies a signature of a functionality implementation of the particular method; provide a production feature that allows the functionality implementation to be specified for the producer separately from the definition, wherein the production feature prohibits the functionality implementation from being declared as a public method to ensure that no method calls can be made directly to the functionality implementation; providing a consumer that indirectly calls the functionality implementation of the producer by referencing the definition of the producer, the consuming method having no awareness of the original functionality implementation for the producer; prior to runtime, provide an analysis process that is operable to inspect components containing a plurality of indirect associations between consumers and producers of application functionality for an application to generate a graph of direct associations between the consumers and producers without having to actually load the components, the plurality of indirect associations comprising definitions, each definition comprising metadata used by consumers to differentiate between intended uses of producers, wherein the analysis process ensures that all required service dependencies for indirect associations are satisfied so that binding can be achieved properly before allowing the application to be run by a loader; and provide, at runtime, a loader process that is operable to use the graph of direct associations to transfer a method call from the consumer to the functionality implementation of the producer. - View Dependent Claims (10, 11, 12, 13, 14)
-
-
15. A method for replacing an original functionality implementation of a method with a different functionality implementation comprising the steps of:
-
providing a definition for a particular method that is part of an application wherein the definition specifies a signature of a functionality implementation of the particular method, the definition comprising metadata used by a consuming method to differentiate between intended uses of the particular method; providing an original functionality implementation for the particular method separately from the definition; providing the consuming method that indirectly calls the original functionality implementation of the particular method by referencing the definition of the particular method, the consuming method having no awareness of the original functionality implementation for the particular method; providing a different functionality implementation of the particular method to be used in a current configuration of the application instead of the original functionality implementation; and using a computing device, recompiling an intermediate language version of a graph of direct associations from indirect references, including a direct association between the consuming method and the different functionality implementation of the particular method without having to actually load the components, wherein the analysis process ensures that all required service dependencies for indirect associations are satisfied so that binding can be achieved properly before allowing the application to be run by a loader; and using a computing device, at runtime, executing the loader to use the graph of direct associations to properly transfer the method call from the consuming method to the different implementation of the particular method. - View Dependent Claims (16)
-
Specification