IP Library Granted Patent US 9,160,624
Granted Patent B2
US 9,160,624 · App. 13/935,415 · Granted Oct 13, 2015

Linked list scripting engine

Inventors: Erik R. Swenson (San Jose, CA); Jaime Heilpern (San Francisco, CA)
Assignee: Opera Software Ireland Limited
H04L41/0813G06F9/45512G06F9/45508
View Patent ↗
Loading inventors, assignments & file history…
Monitor This Case
Get email alerts when status or documents change.
Order Certified Copies
Most orders are placed with the USPTO same day — all within 24 business hours.
Order via The Patent Place →
Pre-filled with this patent's details
Quick Facts
Patent No.
US 9,160,624
App. No.
13/935,415
Granted
Oct 13, 2015
Kind
B2
Abstract

A system and a method are creating a linked list scripts for a networking device. The system receives a set of nodes defining script functionality and generates a script by coupling the nodes in a nodal structure based on desired order of execution, wherein a leaf node is an standalone node with no child node, and wherein a nugget node includes one or more child nodes, each child node being a nugget or leaf node. The system then determines an execution path through a subset of nodes in the nodal tree structure based on one or more input values. The system also compiles the subset of nodes into a linked list of operations, which follows the execution path, and executes the path of operations within the compiled linked list of operations.

Claims (36)

1. A method for creating a linked list for executing a plurality of scripts on a networking device, the method comprising:

receiving a set of nodes, each comprising a script defining functionality of the networking device, the set of nodes including at least one of a leaf node that is an standalone node with no child node and a nugget node that includes one or more child nodes, each child node being a nugget or leaf node;

generating a script by coupling the nodes in a nodal structure based on desired order of execution;

determining an execution path through a subset of nodes in the nodal structure at least in part based on one or more input values of defined input properties;

compiling, by a processor, the subset of nodes into a linked list of operations, the linked list following the execution path; and

executing the path of operations within the compiled linked list of operations.

2. The method of claim 1 , wherein a script defining functionality of the networking device sets at least one of: a pre-defined system keyword, a configuration variable, a status variable, and a session variable.

3. The method of claim 1 , wherein the input value of the input property is at least one of: a number, a string, a Boolean value, and a null.

4. The method of claim 1 , wherein a node in the nodal tree structure comprises an operation to get or set a value of an output property.

5. The method of claim 1 , wherein the nugget node in the nodal structure comprises a comparison operation of a variable to a particular value or a regular expression, the nugget node being executed in response to the comparison.

6. The method of claim 1 , wherein a child node in the nodal structure represents a next operation following a parent object of the child object, wherein the next operation is conditioned on a determined value of the parent object when executed in the linked list.

7. The method of claim 1 , wherein a predetermined depth limit is defined for levels of hierarchy in the nodal structure.

8. The method of claim 1 , wherein the script includes a main entry point and one or more sub entry points for executing.

9. The method of claim 1 , wherein one or more external scripts or files are called in a node.

10. The method of claim 1 , further comprising:

receiving a new node defining additional script functionality;

coupling the new node to one or more other nodes in the nodal structure based on desired order of execution of the new node; and

updating the linked list of operations following the execution path.

11. A non-transitory computer-readable storage medium storing executable computer program instructions for creating a linked list for executing a plurality of scripts on a networking device, the computer program instructions comprising instructions for:

receiving a set of nodes, each comprising a script defining functionality of the networking device, the set of nodes comprising at least one of a leaf node that is an standalone node with no child node and a nugget node that includes one or more child nodes, each child node being a nugget or leaf node;

generating a script by coupling the nodes in a nodal structure based on desired order of execution;

determining an execution path through a subset of nodes in the nodal structure at least in part based on one or more input values of defined input properties;

compiling, by a processor, the subset of nodes into a linked list of operations, the linked list following the execution path; and

executing the path of operations within the compiled linked list of operations.

12. The non-transitory computer-readable storage medium of claim 11 , wherein a script defining functionality of the networking device sets at least one of: a pre-defined system keyword, a configuration variable, a status variable, and a session variable.

13. The non-transitory computer-readable storage medium of claim 11 , wherein the input value of the input property is at least one of: a number, a string, a Boolean value, and a null.

14. The non-transitory computer-readable storage medium of claim 11 , wherein a node in the nodal tree structure comprises an operation to get or set a value of an output property.

15. The non-transitory computer-readable storage medium of claim 11 , wherein the nugget node in the nodal structure comprises a comparison operation of a variable to a particular value or a regular expression, the nugget node being executed in response to the comparison.

16. The non-transitory computer-readable storage medium of claim 11 , wherein a child node in the nodal structure represents a next operation following a parent object of the child object, wherein the next operation is conditioned on a determined value of the parent object when executed in the linked list.

17. The non-transitory computer-readable storage medium of claim 11 , wherein a predetermined depth limit is defined for levels of hierarchy in the nodal structure.

18. The non-transitory computer-readable storage medium of claim 11 , wherein the script includes a main entry point and one or more sub entry points for executing.

19. The non-transitory computer-readable storage medium of claim 11 , wherein one or more external scripts or files are called in a node.

20. The non-transitory computer-readable storage medium of claim 11 , further comprising:

receiving a new node defining additional script functionality;

coupling the new node to one or more other nodes in the nodal structure based on desired order of execution of the new node; and

updating the linked list of operations following the execution path.

Assignments (5)
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded May 4, 2025
From: OTELLO CORPORATION ASA
To: TIR TECHNOLOGIES LIMITED
Reel/Frame 071165/0584 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Mar 29, 2023
From: PERFORMANCE AND PRIVACY IRELAND LIMITED
To: OTELLO CORPORATION ASA
Reel/Frame 063188/0195 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Mar 23, 2017
From: OPERA SOFTWARE IRELAND LTD.
To: PERFORMANCE AND PRIVACY IRELAND LTD.
Reel/Frame 042076/0473 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded May 6, 2014
From: SKYFIRE LABS, INC.
To: OPERA SOFTWARE IRELAND LIMITED
Reel/Frame 032827/0175 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Jul 24, 2013
From: SWENSON, ERIK R.; HEILPERN, JAIME
To: SKYFIRE LABS, INC.
Reel/Frame 030870/0293 →
Continuity (2)
Provisional Application 61667879 · Jul 3, 2012
Related Publication 20140012963A1 · Jan 9, 2014