Outer Rim Archives
Archives · 2018 · 10110412

Granted patent

Dynamically allocated computing method and system for distributed node-based interactive workflows

Number
10110412
Published
2018-10-23
Filed
2013-03-15
Assignee
DISNEY ENTERPRISES, INC.
Inventors
Geibel; Jonathan et al.
CPC
G06F9/5033; H04L67/10; G06F9/5072; G06F9/5061
Verdict
Set aside distributed cloud compute/render-farm infra
Source
Google Patents · FreePatentsOnline

Abstract

A system and method for leveraging grid computing for node based interactive workflows is disclosed. A server system spawns a server process that receives node graph data and input attributes from a computing device, processes the data, caches the processed data, and transmits the processed data over a network to a computing device. The computing device runs a node graph application instance comprising proxy nodes configured to initiate a request to process node graph data at the server system. The server processed node graph data is displayed on the computing device. A plurality of computing devices may collaborate on a complex node graph where the node graph data processing is distributed over a plurality of servers.

Background

TECHNICAL FIELD(1) The present disclosure relates generally to distributed computing, and more particularly, some embodiments relate to systems and methods for leveraging the processing power of distributed computing technologies for real-time node-based interactive workloads.DESCRIPTION OF THE RELATED ART(2) Currently, resource-intensive computing tasks, both in the enterprise and consumer market, are relegated to high-performance desktop computers running on operating systems such as Windows®, MacOS®, or Linux®. This is particularly true of node-based graphical software applications that process complex node graphs. Laptops, tablets, and other mobile devices generally lack the hardware requirements sufficient to run these applications efficiently. Moreover, even high-performance desktop systems can take considerable time to process node graphs that render complex animation scenes developed on software applications such as Nuke®, Maya®, and Houdini®.BRIEF SUMMARY OF THE DISCLOSURE(3) According to various embodiments of the disclosed method and system, distributed computing technologies are leveraged to improve the efficiency of a node-based graphical software application. In one embodiment, a server system spawns a server process that receives node graph data and input attributes from a computing device, processes the data, and transmits the processed data over a network to a computing device. In another embodiment, the server process caches processed data. In yet another em

Claims

1. A method, comprising: spawning within a server system a server process that communicates over a network; receiving node graph data and input attributes at the server system from a node graph application instance executed by a computing device, wherein the received node graph data comprises a copy of one or more nodes preceding a proxy node in a node graph of the node graph application instance, and wherein the received input attributes comprise a copy of user inputs associated with the one or more nodes preceding the proxy node; receiving, over the network, a request from the proxy node to evaluate the node graph data; evaluating the node graph data at the server process based on the input attributes, wherein evaluating the node graph data comprises evaluating the copy of one or more nodes using at least the copy of user inputs; and transmitting the evaluated node graph data over the network from the server system to the proxy node for rendering on a viewport. 8. A method, comprising: initiating a node graph application instance at a computing device; initiating evaluation of node graph data at the application based on input attributes received at the computing device, the node graph data comprising a node graph comprising a proxy node and one or more nodes preceding the proxy node in the node graph; transmitting to a server system a copy of the one or more nodes preceding the proxy node and a copy of user inputs associated with the one or more nodes preceding the proxy node; receiving the evaluating node graph data at the proxy node; initiating a request at the proxy node to evaluate the one or more nodes preceding the proxy node on the server system; and receiving over a network from the server system, server evaluated node graph data comprising an evaluation of the one or more nodes. 15. A non-transitory computer-readable medium having executable instructions stored thereon that, when executed by a processor, perform the operations of: spawning a server process that runs inside of a grid computing instance that communicates over a network; receiving node graph data and input attributes from a node graph application instance executed by a computing device, wherein the received node graph data comprises a copy of one or more nodes preceding a proxy node in a node graph of the node graph application instance, and wherein the received input attributes comprise a copy of user inputs associated with the one or more nodes preceding the proxy node; receiving, over the network, a request from the proxy node to evaluate the node graph data; evaluating the node graph data based on the input attributes, wherein evaluating the node graph data comprises evaluating the copy of one or more nodes using at least the copy of user inputs; and transmitting the evaluated node graph data over the network from a server to the proxy node. 21. A system comprising: a computing device configured to: initiate a node graph application instance; initiate evaluation of node graph data at the application based on input attributes received at the computing device, the node graph data comprising a node graph comprising a proxy node and one or more nodes preceding the proxy node in the node graph; transmit to a server a copy of the one or more nodes preceding the proxy node and a copy of user inputs associated with the one or more nodes preceding the proxy node; receive evaluating node graph data at the proxy node; initiate a request at the proxy node to evaluate the one or more nodes preceding the proxy node on the server; receive over a network from the server, server evaluated node graph data comprising an evaluation of the one or more nodes.