Patent ID: 8887154

Claim:
A system for dynamic partitioning of computing applications comprising one or more processors, and a memory coupled to the one or more processor and configured to store instructions executable by the one or more processors to configure: a deployment subsystem for deploying computing applications at runtime, wherein the computing applications are realized by blueprints, wherein each blueprint may be used to instantiate a graph at application runtime, wherein a graph identifies components, connections between the components, and properties for the components, wherein each component defines a computing processing mechanism for processing data containers of computing data at application runtime; one or more repositories configured to store graphs and components for loading at application runtime; one or more partitioning agents configured to: identify a plurality of available platforms, wherein each available platform has corresponding available processing capabilities; identify processing requirements for a graph, wherein the graph has a lifecycle and a dataflow; partition the graph into two or more subgraphs based on the processing requirements of the graph and the available processing capabilities of the plurality of available platforms, wherein each subgraph comprises one or more components; identify processing requirements for each subgraph; allocate each subgraph to one of the plurality of available platforms based on the processing requirements of the subgraph and the available processing capabilities of the allocated platform; distribute each subgraph to the allocated platform; handle interprocess communications across the allocated platforms and between the two or more subgraphs to reconcile the lifecycle of the graph; and synchronize the subgraphs to reconcile the data flow of the graph; and for each subgraph, a runtime engine, wherein the runtime engine provides a running environment for the subgraph on the allocated platform.