POLYMORPHIC SOFTWARE ARCHITECTURE
First Claim
1. A method for implementing a polymorphic software architecture in a runtime environment, the method comprising the steps of:
- partitioning software among a plurality of architectural elements each of the architectural elements including at least one of functionality, communication between architectural elements, or data;
splitting architectural elements from a portion of the polymorphic software architecture along at least one split point to generate a polymorphic architecture shape;
fusing architectural elements to the portion of the polymorphic software architecture along at least one fusing point to generate the polymorphic shape; and
creating a profile of the runtime environment, the profile being usable to determine the splitting point and the fusing point.
2 Assignments
0 Petitions
Accused Products
Abstract
A polymorphic software architecture is provided by which the shape of the architecture is enabled to be dynamically changed by splitting and fusing various architectural components (which may also be called “elements”) responsively to the environment in which the software executes, without changing the application'"'"'s code. The splitting and fusing points determine, for example, the partitioning of functionality and data across architecture components, communication among the components, and the allocation of resources to the components. A profile of an end-user, or a profile of the runtime environment that supports the end-user, may be used to drive the shape of the software architecture so that overall design goals are met upon initial software deployment, and maintained as the profiles change.
39 Citations
20 Claims
-
1. A method for implementing a polymorphic software architecture in a runtime environment, the method comprising the steps of:
-
partitioning software among a plurality of architectural elements each of the architectural elements including at least one of functionality, communication between architectural elements, or data; splitting architectural elements from a portion of the polymorphic software architecture along at least one split point to generate a polymorphic architecture shape; fusing architectural elements to the portion of the polymorphic software architecture along at least one fusing point to generate the polymorphic shape; and creating a profile of the runtime environment, the profile being usable to determine the splitting point and the fusing point. - View Dependent Claims (2, 3, 4, 5, 6, 7)
-
-
8. A method for generating a shape for software architecture, the method comprising the steps of:
-
determining one or more characteristics of a runtime environment in which the software architecture is operating; splitting architectural elements from a portion of the software architecture along predetermined splitting points to address some non-functional requirements of the software architecture responsively to the one or more characteristics; fusing architectural elements to a portion of the software architecture along predetermined fusing points to address some non-functional requirements of the software architecture responsively to the one or more characteristics; and executing software in architectural elements after the software architecture is shaped by the splitting and fusing. - View Dependent Claims (9, 10, 11, 12, 13, 14, 15)
-
-
16. A method of developing an architecture for software operable in a runtime environment, the method comprising the steps of:
-
partitioning software among a plurality of architectural elements, each of the elements including at least one of functionality, communication between architectural elements, or data; setting a plurality of predetermined splitting and fusing points among the architecture elements, the splitting and fusing points being usable to define a shape of the architecture that is cast during execution of the software in a runtime environment; and enabling the architecture with polymorphic behavior so that the architecture may be dynamically reshaped along the predetermined splitting and fusing points in response to conditions in the runtime environment. - View Dependent Claims (17, 18, 19, 20)
-
Specification