IP Library Granted Patent US 9,098,624
Granted Patent B1
US 9,098,624 · App. 13/713,424 · Granted Aug 4, 2015

Deep type parsing

Inventors: Steven Eric Feuerstein (Chicago, IL); Leonid Khukhlovich (Skokie, IL)
Assignee: Dell Software Inc.
G06F11/362
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,098,624
App. No.
13/713,424
Filed
Dec 13, 2012
Granted
Aug 4, 2015
Kind
B1
Art Unit
2193
USPC
717/125
Abstract

A method for accessing variables in an application is described. The method includes accessing application source code and parsing the application source code to identify a set of variables. For each variable from the set of variables, the method can include determining a variable type of the variable. In response to determining that the variable type is a complex variable, the method can include parsing the complex variable, which can include repeating the method for each variable of the complex variable. In response to determining that the variable is associated with a database, the method can include resolving a variable name and determining whether the variable exists in a data dictionary associated with the database. The method can further include determining metadata associated with the variable based, at least in part, on the variable type. The variable type and metadata of the variable can then be presented to a user.

Claims (56)

1. A method for accessing variables in an application performed by a computing system comprising one or more processors, the method comprising:

accessing application source code associated with an application;

parsing the application source code to identify a set of variables, the parsing comprising distinguishing variables from other programming constructs;

for each variable from the set of variables:

determining a variable type of the variable;

in response to determining that the variable type is a complex variable, parsing the complex variable;

in response to determining that the variable is associated with a database, resolving a variable name and determining whether the variable exists in a data dictionary associated with the database;

determining metadata associated with the variable based, at least in part, on the variable type;

providing an identity of the variable and the metadata for the variable to a user interface thereby enabling a user to access the variable;

accessing test code for the application source code;

identifying, for each variable from the set of variables, an expected variable type for the variable based on the test code;

determining whether the variable type of each variable matches the expected variable type for the variable;

in response to determining that the variable type of each variable matches the expected variable type for the variable, executing the test code for the application source code; and

in response to determining that the variable type of each variable does not match the expected variable type for the variable:

identifying modifications to the test code;

regenerating test code with the identified modifications; and

executing the regenerated test code.

2. The method of claim 1 , further comprising:

receiving a value for at least one of the variables from the set of variables;

setting the at least one variable to the received value; and

executing the application.

3. The method of claim 1 , wherein enabling the user to access the variable further comprises enabling the user to view metadata associated with the variable and to set value for the variable.

4. The method of claim 1 , wherein parsing the complex variable comprises:

identifying a second set of variables included in the complex variable; and

for each variable from the second set of variables, determining a variable type of the variable.

5. The method of claim 1 , wherein the identity of the variable and the metadata for the variable are presented to the user in an extensible Markup Language (XML) format.

6. The method of claim 1 , wherein at least a portion of the application is configured to communicate with the database and wherein the data dictionary specifies each variable accessible by the portion of the application at the database.

7. The method of claim 1 , wherein the data dictionary specifies each variable defined at the database.

8. The method of claim 1 , wherein the application source code comprises a subset of the source code of the application.

9. Non-transitory physical computer storage comprising computer-executable instructions that, when executed by one or more processors, direct a computing system to perform a method for accessing variables in an application, the method comprising:

accessing application source code associated with an application;

parsing the application source code to identify a set of variables, the parsing comprising distinguishing variables from other programming constructs;

for each variable from the set of variables:

determining a variable type of the variable;

in response to determining that the variable type is a complex variable, parsing the complex variable;

in response to determining that the variable is associated with a database, resolving a variable name and determining whether the variable exists in a data dictionary associated with the database;

determining metadata associated with the variable based, at least in part, on the variable type;

providing an identity of the variable and the metadata for the variable to a user interface thereby enabling a user to access the variable;

accessing test code for the application source code;

identifying, for each variable from the set of variables, an expected variable type for the variable based on the test code;

determining whether the variable type of each variable matches the expected variable type for the variable;

in response to determining that the variable type of each variable matches the expected variable type for the variable, executing the test code for the application source code; and

in response to determining that the variable type of each variable does not match the expected variable type for the variable;

identifying modifications to the test code;

regenerating test code with the identified modifications; and

executing the regenerated test code.

10. The non-transitory physical computer storage of claim 9 , wherein the method further comprises:

receiving a value for at least one of the variables from the set of variables;

setting the at least one variable to the received value; and

executing the application.

11. The non-transitory physical computer storage of claim 9 , wherein parsing the complex variable comprises:

identifying a second set of variables included in the complex variable; and

for each variable from the second set of variables, determining a variable type of the variable.

12. The non-transitory physical computer storage of claim 9 , wherein at least a portion of the application is configured to communicate with the database.

13. The non-transitory physical computer storage of claim 12 , wherein the data dictionary specifies each variable accessible by the portion of the application at the database.

14. The non-transitory physical computer storage of claim 9 , wherein the data dictionary specifies each variable defined at the database.

Assignments (27)
RELEASE OF SECURITY INTEREST Recorded Nov 19, 2025
From: MORGAN STANLEY SENIOR FUNDING, INC.
To: QUEST SOFTWARE INC.; ANALYTIX DATA SERVICES INC.; BINARYTREE.COM LLC; ERWIN, INC.
Reel/Frame 073606/0001 →
RELEASE OF SECURITY INTEREST Recorded Nov 18, 2025
From: GOLDMAN SACHS BANK USA, AS COLLATERAL AGENT
To: QUEST SOFTWARE INC.; ANALYTIX DATA SERVICES INC.; BINARYTREE.COM LLC; ERWIN, INC.
Reel/Frame 073613/0326 →
SECURITY INTEREST Recorded Jun 8, 2025
From: QUEST SOFTWARE INC.; ANALYTIX DATA SERVICES INC.; ERWIN, INC.
To: ALTER DOMUS (US) LLC
Reel/Frame 071527/0649 →
SECURITY INTEREST Recorded Jun 8, 2025
From: QUEST SOFTWARE INC.; ANALYTIX DATA SERVICES INC.; ERWIN, INC.
To: ALTER DOMUS (US) LLC
Reel/Frame 071527/0001 →
FIRST LIEN INTELLECTUAL PROPERTY SECURITY AGREEMENT Recorded Feb 2, 2022
From: QUEST SOFTWARE INC.; ANALYTIX DATA SERVICES INC.; BINARYTREE.COM LLC; ERWIN, INC.; ONE IDENTITY LLC; ONELOGIN, INC.; ONE IDENTITY SOFTWARE INTERNATIONAL DESIGNATED ACTIVITY COMPANY
To: GOLDMAN SACHS BANK USA
Reel/Frame 058945/0778 →
SECOND LIEN INTELLECTUAL PROPERTY SECURITY AGREEMENT Recorded Feb 2, 2022
From: QUEST SOFTWARE INC.; ANALYTIX DATA SERVICES INC.; BINARYTREE.COM LLC; ERWIN, INC.; ONE IDENTITY LLC; ONELOGIN, INC.; ONE IDENTITY SOFTWARE INTERNATIONAL DESIGNATED ACTIVITY COMPANY
To: MORGAN STANLEY SENIOR FUNDING, INC.
Reel/Frame 058952/0279 →
RELEASE OF SECOND LIEN SECURITY INTEREST IN PATENTS Recorded Feb 2, 2022
From: CREDIT SUISSE AG, CAYMAN ISLANDS BRANCH, AS COLLATERAL AGENT
To: QUEST SOFTWARE INC.
Reel/Frame 059096/0683 →
RELEASE OF FIRST LIEN SECURITY INTEREST IN PATENTS Recorded Feb 2, 2022
From: CREDIT SUISSE AG, CAYMAN ISLANDS BRANCH, AS COLLATERAL AGENT
To: QUEST SOFTWARE INC.
Reel/Frame 059105/0479 →
FIRST LIEN PATENT SECURITY AGREEMENT Recorded Jun 7, 2018
From: QUEST SOFTWARE INC.
To: CREDIT SUISSE AG, CAYMAN ISLANDS BRANCH, AS COLLATERAL AGENT
Reel/Frame 046327/0347 →
SECOND LIEN PATENT SECURITY AGREEMENT Recorded Jun 7, 2018
From: QUEST SOFTWARE INC.
To: CREDIT SUISSE AG, CAYMAN ISLANDS BRANCH, AS COLLATERAL AGENT
Reel/Frame 046327/0486 →
RELEASE OF FIRST LIEN SECURITY INTEREST IN PATENTS RECORDED AT R/F 040581/0850 Recorded May 22, 2018
From: CREDIT SUISSE AG, CAYMAN ISLANDS BRANCH, AS COLLATERAL AGENT
To: QUEST SOFTWARE INC. (F/K/A DELL SOFTWARE INC.); AVENTAIL LLC
Reel/Frame 046211/0735 →
CHANGE OF NAME Recorded Dec 6, 2017
From: DELL SOFTWARE INC.
To: QUEST SOFTWARE INC.
Reel/Frame 044800/0848 →
CORRECTIVE ASSIGNMENT TO CORRECT THE ASSIGNEE PREVIOUSLY RECORDED AT REEL: 040587 FRAME: 0624. ASSIGNOR(S) HEREBY CONFIRMS THE ASSIGNMENT. Recorded Nov 28, 2017
From: CREDIT SUISSE AG, CAYMAN ISLANDS BRANCH
To: QUEST SOFTWARE INC. (F/K/A DELL SOFTWARE INC.); AVENTAIL LLC
Reel/Frame 044811/0598 →
SECOND LIEN PATENT SECURITY AGREEMENT Recorded Nov 10, 2016
From: DELL SOFTWARE INC.
To: CREDIT SUISSE AG, CAYMAN ISLANDS BRANCH, AS COLLATERAL AGENT
Reel/Frame 040587/0624 →
FIRST LIEN PATENT SECURITY AGREEMENT Recorded Nov 9, 2016
From: DELL SOFTWARE INC.
To: CREDIT SUISSE AG, CAYMAN ISLANDS BRANCH, AS COLLATERAL AGENT
Reel/Frame 040581/0850 →
RELEASE OF SECURITY INTEREST IN CERTAIN PATENTS PREVIOUSLY RECORDED AT REEL/FRAME (040039/0642) Recorded Oct 31, 2016
From: THE BANK OF NEW YORK MELLON TRUST COMPANY, N.A.
To: AVENTAIL LLC; DELL PRODUCTS L.P.; DELL SOFTWARE INC.
Reel/Frame 040521/0016 →
RELEASE OF SECURITY INTEREST Recorded Oct 31, 2016
From: CREDIT SUISSE AG, CAYMAN ISLANDS BRANCH
To: AVENTAIL LLC; DELL PRODUCTS, L.P.; DELL SOFTWARE INC.
Reel/Frame 040521/0467 →
RELEASE OF SECURITY INTEREST Recorded Sep 14, 2016
From: BANK OF NEW YORK MELLON TRUST COMPANY, N.A., AS COLLATERAL AGENT
To: DELL MARKETING L.P.; ASAP SOFTWARE EXPRESS, INC.; APPASSURE SOFTWARE, INC.; COMPELLENT TECHNOLOGIES, INC.; CREDANT TECHNOLOGIES, INC.; DELL INC.; DELL PRODUCTS L.P.; DELL USA L.P.; DELL SOFTWARE INC.; FORCE10 NETWORKS, INC.; PEROT SYSTEMS CORPORATION; SECUREWORKS, INC.; WYSE TECHNOLOGY L.L.C.
Reel/Frame 040065/0618 →
SECURITY AGREEMENT Recorded Sep 14, 2016
From: AVENTAIL LLC; DELL PRODUCTS, L.P.; DELL SOFTWARE INC.
To: CREDIT SUISSE AG, CAYMAN ISLANDS BRANCH, AS COLLATERAL AGENT
Reel/Frame 040030/0187 →
SECURITY AGREEMENT Recorded Sep 14, 2016
From: AVENTAIL LLC; DELL PRODUCTS L.P.; DELL SOFTWARE INC.
To: THE BANK OF NEW YORK MELLON TRUST COMPANY, N.A., AS NOTES COLLATERAL AGENT
Reel/Frame 040039/0642 →
RELEASE OF SECURITY INTEREST Recorded Sep 14, 2016
From: BANK OF AMERICA, N.A., AS COLLATERAL AGENT
To: DELL MARKETING L.P.; ASAP SOFTWARE EXPRESS, INC.; APPASSURE SOFTWARE, INC.; COMPELLENT TECHNOLOGIES, INC.; CREDANT TECHNOLOGIES, INC.; DELL INC.; DELL PRODUCTS L.P.; DELL USA L.P.; DELL SOFTWARE INC.; FORCE10 NETWORKS, INC.; PEROT SYSTEMS CORPORATION; SECUREWORKS, INC.; WYSE TECHNOLOGY L.L.C.
Reel/Frame 040040/0001 →
RELEASE OF SECURITY INTEREST Recorded Sep 13, 2016
From: BANK OF AMERICA, N.A., AS ADMINISTRATIVE AGENT
To: DELL MARKETING L.P.; ASAP SOFTWARE EXPRESS, INC.; APPASSURE SOFTWARE, INC.; COMPELLANT TECHNOLOGIES, INC.; CREDANT TECHNOLOGIES, INC.; DELL INC.; DELL PRODUCTS L.P.; DELL USA L.P.; DELL SOFTWARE INC.; FORCE10 NETWORKS, INC.; PEROT SYSTEMS CORPORATION; SECUREWORKS, INC.; WYSE TECHNOLOGY L.L.C.
Reel/Frame 040065/0216 →
PATENT SECURITY AGREEMENT (NOTES) Recorded Jan 2, 2014
From: APPASSURE SOFTWARE, INC.; ASAP SOFTWARE EXPRESS, INC.; BOOMI, INC.; COMPELLENT TECHNOLOGIES, INC.; CREDANT TECHNOLOGIES, INC.; DELL INC.; DELL MARKETING L.P.; DELL PRODUCTS L.P.; DELL SOFTWARE INC.; DELL USA L.P.; FORCE10 NETWORKS, INC.; GALE TECHNOLOGIES, INC.; PEROT SYSTEMS CORPORATION; SECUREWORKS, INC.; WYSE TECHNOLOGY L.L.C.
To: BANK OF NEW YORK MELLON TRUST COMPANY, N.A., AS FIRST LIEN COLLATERAL AGENT
Reel/Frame 031897/0348 →
PATENT SECURITY AGREEMENT (ABL) Recorded Jan 2, 2014
From: DELL INC.; APPASSURE SOFTWARE, INC.; ASAP SOFTWARE EXPRESS, INC.; BOOMI, INC.; COMPELLENT TECHNOLOGIES, INC.; CREDANT TECHNOLOGIES, INC.; DELL MARKETING L.P.; DELL PRODUCTS L.P.; DELL SOFTWARE INC.; DELL USA L.P.; FORCE10 NETWORKS, INC.; GALE TECHNOLOGIES, INC.; PEROT SYSTEMS CORPORATION; SECUREWORKS, INC.; WYSE TECHNOLOGY L.L.C.
To: BANK OF AMERICA, N.A., AS ADMINISTRATIVE AGENT
Reel/Frame 031898/0001 →
PATENT SECURITY AGREEMENT (TERM LOAN) Recorded Jan 2, 2014
From: DELL INC.; APPASSURE SOFTWARE, INC.; ASAP SOFTWARE EXPRESS, INC.; BOOMI, INC.; COMPELLENT TECHNOLOGIES, INC.; CREDANT TECHNOLOGIES, INC.; DELL MARKETING L.P.; DELL PRODUCTS L.P.; DELL SOFTWARE INC.; DELL USA L.P.; FORCE10 NETWORKS, INC.; GALE TECHNOLOGIES, INC.; PEROT SYSTEMS CORPORATION; SECUREWORKS, INC.; WYSE TECHNOLOGY L.L.C.
To: BANK OF AMERICA, N.A., AS COLLATERAL AGENT
Reel/Frame 031899/0261 →
CHANGE OF NAME Recorded Aug 19, 2013
From: QUEST SOFTWARE, INC.
To: DELL SOFTWARE INC.
Reel/Frame 031035/0914 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Dec 13, 2012
From: FEUERSTEIN, STEVEN ERIC; KHUKHLOVICH, LEONID
To: QUEST SOFTWARE, INC.
Reel/Frame 029465/0902 →
Continuity (1)
Provisional Application 61579514 · Dec 22, 2011