AU2012307044B2

System and methods for developing component-based computing applications

Abstract

Systems and methods for dynamic development and deployment of computing applications including a development framework, a visual design subsystem, and a deployment subsystem, where at runtime the deployment subsystem is operable to dynamically deploy a computing application by sending a request at runtime for graphs and components identified in the computing application.

AU2012307044B2, drawing sheet 1
Sheet 1 of 2

Term

6 yearsleft in the term

Expires 6 September 2032.

  1. Priority
  2. Filed
  3. Granted
  4. Today
  5. Expires

21 claims: 16 independent, 5 dependent

  1. 1
    We claim; 1. A system for dynamic deployment of computing applications comprising:one or more linked repositories storing blueprints, graphs, and components;one or more processors to receive a command to deploy at least one computing application to process at least one input data stream, and in response, trigger deployment of the at least one computing application over a plurality of disparate host systems;the at least one computing application realized by a blueprint of the blueprints stored in the one or more linked repositories;at least one host system of the plurality of disparate host systems comprising a cloud agent and one or more cloud engines instantiated by the cloud agent;wherein the cloud agent is configured to receive the command to deploy the at least one computing application to process the at least one input data stream and, in response, instantiate the one or more cloud engines on the respective host system and provide a running environment for the one or more cloud engines;wherein the one or more cloud engines is configured to dynamically construct the at least one computing application on the respective host system by realizing requirements of the blueprints of the at least one computing application, the requirements identifying at least one graph from the graphs stored in the linked one or more repositories, a plurality of components from the components stored in the linked one or more repositories, and by sending a request at runtime to the one or more linked repositories to load the blueprint, the at least one graph and the plurality of components on the respective host system;wherein the one or more cloud engines deploys the dynamically constructed at least one computing application on the respective host system by: instantiating the at least one graph using the blueprint, the at least one graph representing a workflow of the plurality of components, the workflow defining an arrangement of the plurality of components;-742012307044 04 Jan 2017 detecting that the plurality of components comprise a first set of components written for a first architecture and a second set of components written for a second architecture;representing at least a portion of the at least one graph as a first subgraph and a second subgraph;using the first subgraph to define connections between the first set of components using pins and the workflow of the at least one graph, and using the second subgraph to define connections between the second set of components using additional pins and the workflow of the at least one graph, each component of the first and second sets of components having at least one input pin for receiving at least one input data container and at least one output pin for providing at least one output data container, the respective component transforming the input data container into the output data container using a computing processing mechanism, each component being a distribution plug-in unit to provide a portable and isolated dependency set for the computing processing mechanism of the respective component;connecting the second subgraph to the first subgraph using at least one additional input pin and at least one additional output pin to pass at least a portion of the data containers between the first subgraph and the second subgraph, the connected first and second subgraphs maintaining the workflow of the graph;instantiating a running process instance of the first architecture on the respective host system for the first set of components of the first subgraph;instantiating a running process instance of the second architecture on another host system of the disparate host systems for the second set of components of the second subgraph, the running process instance of the first architecture being linked to the running process instance of the second architecture by the one or more cloud engines at deployment time to link the first subgraph and the second subgraph;-752012307044 04 Jan 2017 processing the input data stream as a plurality of data containers using the plurality of components to generate an output data stream, the plurality of data containers flowing between the plurality of components using the pins;and using the at least one additional input pin and the at least one additional output pin to pass at least a portion of the data containers between the running process instance of first architecture on the respective host system and the running process instance of the second architecture of the other host system to generate the output data stream.
  2. 4
    The system of any one of claims 1 to 3, further comprising a job manager, wherein the job manager dispatches the blueprint and the graph to cloud agents based on available licenses managed by the license server.
  3. 5
    The system of any one of claims 1 to 4, further comprising a security manager, wherein the security manager provides for secure connections and communications between the disparate host system components.
  4. 6
    The system of any one of claims 1 to 5, further comprising a job manager configured to provide job and cloud engine dispatch, failover, tracking and reporting. -762012307044 04 Jan 2017
  5. 7
    The system of any one of claims 1 to 6, wherein each graph in the one or more linked repositories identifies components, connections between the components, and properties for the components, wherein components are connected by different types of pins.
  6. 8
    The system of any one of claims 1 to 7, wherein the data container defines a data type and a data object, wherein the data type is metadata describing the data container and the data object maintains raw data.
  7. 9
    The system of any one of claims 1 to 8, wherein the one or more linked repositories manage versioning of the components and the graphs to keep track of updates made thereto, wherein the one or more repositories serve the components and graphs at application runtime using appropriate versions of the graphs and the components.
  8. 10
    The system of any one of claims 1 to 9, wherein the cloud agent is provided to each of the disparate host systems to manage the local resources of the respective host system, wherein the cloud agent interacts with the one or more cloud engines to instantiate the graph using the blueprint.
  9. 11
    The system of any one of claims 1 to 10, further comprising a normalization module operable to receive input data files and convert and parse the input data files into a plurality of data containers for processing by the at least one computing application.
  10. 12
    The system of any one of claims 1 to 11, further comprising a code signing module operable to digitally sign each of the plurality of components to associate at least one of a developer and license with at least one component.
  11. 13
    The system of any one of claims 1 to 12 further comprising:-772012307044 04 Jan 2017 - a digital certificate associated with a component provider subsystem, wherein the component provider subsystem provides the plurality of components;- a digital certificate associated with a user computing subsystem, wherein the user computing subsystem transmits commands to define the at least one computing application, wherein the at least one computing application involves a component of the plurality of components provided by the component provider computing system;- a license server configured to digitally sign the component of the plurality of components by linking the component to the digital certificate associated with the user computing subsystem and the digital certificate associated with the component provider subsystem to indicate that the user computing system and the component provider subsystem accept performance of the digitally signed component;wherein at runtime prior to deploying each component the deployment subsystem queries the license server to determine whether the component is linked to the digital certificate associated with the user computing subsystem and the digital certificate associated with the component provider subsystem.
  12. 14
    The system of any one of claims 1 to 13, wherein the deployment subsystem is further configured to partition the graph into a plurality of sub-graphs and handle interprocess communications between the plurality of sub-graphs.
  13. 15
    A method for dynamic deployment of computing applications:- providing one or more linked repositories storing blueprints, graphs and components;- configuring one or more processors to receive a command to deploy at least one computing application to process at least one input data stream, and in response, trigger deployment of the at least one computing application over a plurality of disparate host systems, the at least one computing application -782012307044 04 Jan 2017 realized by a blueprint of the blueprints in the one or more linked repositories;- configuring at least one host system of the plurality of disparate host systems with a cloud agent and one or more cloud engines instantiated by the cloud agent;- receiving, at the cloud agent, the command to deploy the at least one computing application to process the at least one input data stream and, in response, instantiating, using the cloud agent, the one or more cloud engines on the respective host system and providing a running environment for the one or more cloud engines;- using the one or more cloud engines to dynamically construct the computing application on the respective host system by realizing requirements of the blueprint of the at least one computing application, the requirements identifying at least one graph from the graphs stored in the linked one or more repositories, a plurality of components from the components stored in the linked one or more repositories, and by sending a request to the one or more linked repositories to load the blueprint, the at least one graph and the plurality of components on the respective host system;- deploying, using the one or more cloud engines, the dynamically constructed at least one computing application on the respective host system by: - instantiating the at least one graph using the blueprint, the at least one graph representing a workflow of the plurality of components, the workflow defining an arrangement of the plurality of components;- detecting that the plurality of components comprise a first set of components written for a first architecture and a second set of components written for a second architecture;- representing at least a portion of the at least one graph as a first subgraph and a second subgraph;-792012307044 04 Jan 2017 - using the first subgraph to define connections between the first set of components using pins and the workflow of the at least one graph, and using the second subgraph to define connections between the second set of components using additional pins and the workflow of the graph, each component of the first and second sets of components having at least one input pin for receiving at least one input data container and at least one output pin for providing at least one output data container, the respective component transforming the input data container into the output data container using a computing processing mechanism, each component being a distribution plug-in unit to provide a portable and isolated dependency set for the computing processing mechanism of the respective component;- connecting the second subgraph to the first subgraph using at least one additional input pin and at least one additional output pin to pass at least a portion of the data containers between the first subgraph and the second subgraph, the connected first and second subgraphs maintaining the workflow of the graph;- instantiating a running process instance of the first architecture on the respective host system for the first set of components of the first subgraph;- instantiating a running process instance of the second architecture on another host system of the disparate host systems for the second set of components of the second subgraph, the running process instance of the first architecture being linked to the running process instance of the second architecture by the one or more cloud engines at deployment time to link the first subgraph and the second subgraph;- processing the input data stream as a plurality of data containers using the plurality of components to generate an output data stream, the plurality of data containers flowing between the plurality of components using the pins;and - using the at least one additional input pin and the at least one additional output pin to pass at least a portion of the data containers between the running process instance of the first architecture on the respective host -802012307044 04 Jan 2017 system and the running process instance of the second architecture of the other host system to generate the output data stream.
  14. 19
    19/21 Web Portal Fig.17 PCT/CA2012/000820 WO 2013/033824
  15. 20
    20/21 ΓΜ ΓΜ Fig.18 WO 2013/033824 PCT/CA2012/000820 Kayak-based Application
  16. 21
    21/21 Hostl 51 Agent Communication Service Server Engine(s) Designer Host ..n 53 Communication Service Server Agent Engine(s) Fig.19