IP Library Granted Patent US 9,082,409
Granted Patent B2
US 9,082,409 · App. 12/200,384 · Granted Jul 14, 2015

Binary-caching for XML documents with embedded executable code

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,082,409
App. No.
12/200,384
Granted
Jul 14, 2015
Kind
B2
Abstract

A method, system and voice browser execute voice applications to perform a voice-based function. A document is retrieved and parsed to create a parse tree. Script code is created from the parse tree, thereby consuming part of the parse tree to create a reduced parse tree. The reduced parse tree is stored in a cache for subsequent execution to perform the voice-based function.

Claims (68)

1. A method for executing voice applications to perform a voice-based function, the method comprising:

receiving a first request for a document;

retrieving the document in response to the first request;

parsing the document to create a parse tree, the parse tree including an XML node;

creating script code from the parse tree;

translating the script code to bytecode segments;

replacing the XML node with script code, thereby consuming part of the parse tree to create a reduced parse tree;

storing the reduced parse tree in a cache for subsequent retrieval in response to a second request for the document, the reduced parse tree configured for use to perform the voice-based function;

storing the bytecode segments in a cache for subsequent execution to perform the voice-based function

receiving the second request to retrieve the document:

in response to the second request, determining whether bytecode corresponding to the document is stored in a cache; and

responsive to determining that bytecode corresponding to the document is already stored in the cache:

bypassing the retrieving, parsing, creating, replacing, translating and storing steps associated with the second request; and

executing the cached bytecode.

2. The method of claim 1 , further comprising:

determining that bytecode corresponding to the document is not stored in a cache.

3. The method of claim 1 , wherein the cached bytecode is executed by a plurality of communication channels, each communication channel independently accessing the cached bytecode.

4. The method of claim 1 , further comprising:

in response to the second request, determining whether a reduced parse tree corresponding to the document is already stored in a cache; and

responsive to determining that a reduced parse tree corresponding to the document is already stored in a cache:

translating the script code to bytecode segments; and

executing the cached bytecode segments.

5. The method of claim 1 , wherein document is written in at least One of eXtensible Markup Language (“XML”), VoiceXML, Call Control XML, and State Chart XML.

6. The method of claim 1 , wherein the document includes embedded executable commands.

7. The method of claim 6 , wherein the executable commands are JavaScript commands.

8. The method of claim 1 , further comprising storing bytecode segments in the cache as encountered during translation.

9. A voice browser for executing voice applications to perform a voice-based function, the voice browser comprising:

a communication interface configured to:

receive a first request for a document;

retrieve the document in response to the first request;

a processor communicatively coupled to the communication interface, the processor configured to:

parse document to create a parse tree, the parse tree including an XML node;

create script code from the parse tree;

replace the node with script code, thereby consuming part of the parse tree to

create a reduced parse tree; and

translate the script code to bytecode segments;

a memory communicatively coupled to the processor, the memory configured to store the reduced parse tree and the bytecode segments in a cache for subsequent execution in response to a second request for the document, the reduced parse tree and bytecode segments configured for execution to perform the voice-based function; and

the processor further configured to, in response to the second request:

determine whether bytecode corresponding to the document is stored in a cache;

responsive to determining that bytecode corresponding to the document is already stored in the cache:

bypass the retrieving, parsing, creating, replacing, translating and storing steps associated with the second request; and

execute the cached bytecode.

10. The voice browser of claim 9 , wherein the

communication interface is configured to communicate with a plurality of communication

channels, each communication channel independently executing the cached bytecode.

11. The voice browser of claim 9 , wherein the document is written in at least one of eXtensible Markup Language (“XML”), VoiceXML, Call Control XML, and State Chart XML.

12. The voice browser of claim 9 , wherein the document includes embedded JavaScript commands.

13. The voice browser of claim 9 , the communication interface is further configured to receive the second request to retrieve the document; and

the processor is further configured to:

determine whether a reduced parse tree corresponding to tile documents is already stored in a cache;

responsive to determining that the reduced parse tree corresponding to the document is already stored in the cache, translate the script code to bytecode segments and execute the cached bytecode segments.

14. A system for executing XML-based voice applications to

perform a voice-based function, the system comprising:

at least one communication device; and

a voice browser communicatively coupled to the at least one communication device, the voice browser configured to:

receive a first request for an eXtensible Markup Language (“XML”) based document;

retrieve the XML based document in response to the first request;

parse the XML-based document to create a parse tree, the parse tree including an XML node;

create script code from the parse tree;

replacing the XML node with script code, thereby consuming part of the parse tree to create a reduced parse tree;

translate the script code to bytecode segments;

store the reduced parse tree and the bytecode segments in a cache for subsequent execution in response to a second request for the XML based document, the reduced parse tree configured for execution to perform the voice-based function; and

in response to the second request:

determine whether bytecode corresponding to the document is stored in a cache; and

responsive to determining that bytecode corresponding to the document is already stored in the cache:

bypass the retrieving, parsing, creating, replacing, translating and storing steps associated with the second request; and

execute the cached bytecode.

15. The system of claim 14 , further comprising a web server communicatively coupled to the voice browser, the web server configured to transmit the XML-based document.

Assignments (25)
(SECURITY INTEREST) GRANTOR'S NAME CHANGE Recorded Sep 21, 2023
From: AVAYA INC.
To: AVAYA LLC
Reel/Frame 065019/0231 →
RELEASE OF SECURITY INTEREST IN PATENTS (REEL/FRAME 53955/0436) Recorded May 18, 2023
From: WILMINGTON TRUST, NATIONAL ASSOCIATION, AS NOTES COLLATERAL AGENT
To: AVAYA MANAGEMENT L.P.; AVAYA INC.; INTELLISIST, INC.; AVAYA INTEGRATED CABINET SOLUTIONS LLC
Reel/Frame 063705/0023 →
RELEASE OF SECURITY INTEREST IN PATENTS (REEL/FRAME 045034/0001) Recorded May 18, 2023
From: GOLDMAN SACHS BANK USA., AS COLLATERAL AGENT
To: ZANG, INC. (FORMER NAME OF AVAYA CLOUD INC.); AVAYA INC.; INTELLISIST, INC.; AVAYA INTEGRATED CABINET SOLUTIONS LLC; OCTEL COMMUNICATIONS LLC; VPNET TECHNOLOGIES, INC.; HYPERQUALITY, INC.; HYPERQUALITY II, LLC; CAAS TECHNOLOGIES, LLC; AVAYA MANAGEMENT L.P.
Reel/Frame 063779/0622 →
RELEASE OF SECURITY INTEREST IN PATENTS (REEL/FRAME 61087/0386) Recorded May 18, 2023
From: WILMINGTON TRUST, NATIONAL ASSOCIATION, AS NOTES COLLATERAL AGENT
To: AVAYA MANAGEMENT L.P.; AVAYA INC.; INTELLISIST, INC.; AVAYA INTEGRATED CABINET SOLUTIONS LLC
Reel/Frame 063690/0359 →
INTELLECTUAL PROPERTY SECURITY AGREEMENT Recorded May 4, 2023
From: AVAYA INC.; AVAYA MANAGEMENT L.P.; INTELLISIST, INC.
To: CITIBANK, N.A., AS COLLATERAL AGENT
Reel/Frame 063542/0662 →
INTELLECTUAL PROPERTY SECURITY AGREEMENT Recorded May 3, 2023
From: AVAYA MANAGEMENT L.P.; AVAYA INC.; INTELLISIST, INC.; KNOAHSOFT INC.
To: WILMINGTON SAVINGS FUND SOCIETY, FSB [COLLATERAL AGENT]
Reel/Frame 063742/0001 →
RELEASE OF SECURITY INTEREST IN PATENTS AT REEL 45124/FRAME 0026 Recorded Apr 26, 2023
From: CITIBANK, N.A., AS COLLATERAL AGENT
To: AVAYA HOLDINGS CORP.; AVAYA INC.; AVAYA MANAGEMENT L.P.; AVAYA INTEGRATED CABINET SOLUTIONS LLC
Reel/Frame 063457/0001 →
INTELLECTUAL PROPERTY SECURITY AGREEMENT Recorded Aug 5, 2022
From: AVAYA INC.; INTELLISIST, INC.; AVAYA MANAGEMENT L.P.; AVAYA CABINET SOLUTIONS LLC
To: WILMINGTON TRUST, NATIONAL ASSOCIATION, AS COLLATERAL AGENT
Reel/Frame 061087/0386 →
SECURITY INTEREST Recorded Sep 25, 2020
From: AVAYA INC.; AVAYA MANAGEMENT L.P.; INTELLISIST, INC.; AVAYA INTEGRATED CABINET SOLUTIONS LLC
To: WILMINGTON TRUST, NATIONAL ASSOCIATION
Reel/Frame 053955/0436 →
SECURITY INTEREST Recorded Jan 23, 2018
From: AVAYA INC.; AVAYA INTEGRATED CABINET SOLUTIONS LLC; OCTEL COMMUNICATIONS LLC; VPNET TECHNOLOGIES, INC.; ZANG, INC.
To: CITIBANK, N.A., AS COLLATERAL AGENT
Reel/Frame 045124/0026 →
RELEASE OF SECURITY INTEREST Recorded Jan 11, 2018
From: CITICORP USA, INC.
To: AVAYA, INC.; SIERRA HOLDINGS CORP.
Reel/Frame 045045/0564 →
SECURITY INTEREST Recorded Jan 10, 2018
From: AVAYA INC.; AVAYA INTEGRATED CABINET SOLUTIONS LLC; OCTEL COMMUNICATIONS LLC; VPNET TECHNOLOGIES, INC.; ZANG, INC.
To: GOLDMAN SACHS BANK USA, AS COLLATERAL AGENT
Reel/Frame 045034/0001 →
BANKRUPTCY COURT ORDER RELEASING ALL LIENS INCLUDING THE SECURITY INTEREST RECORDED AT REEL/FRAME 041576/0001 Recorded Dec 15, 2017
From: CITIBANK, N.A.
To: AVAYA INC.; AVAYA INTEGRATED CABINET SOLUTIONS INC.; OCTEL COMMUNICATIONS LLC (FORMERLY KNOWN AS OCTEL COMMUNICATIONS CORPORATION); VPNET TECHNOLOGIES, INC.
Reel/Frame 044893/0531 →
BANKRUPTCY COURT ORDER RELEASING ALL LIENS INCLUDING THE SECURITY INTEREST RECORDED AT REEL/FRAME 023892/0500 Recorded Dec 15, 2017
From: CITIBANK, N.A.
To: AVAYA INC.
Reel/Frame 044891/0564 →
BANKRUPTCY COURT ORDER RELEASING ALL LIENS INCLUDING THE SECURITY INTEREST RECORDED AT REEL/FRAME 029608/0256 Recorded Dec 15, 2017
From: THE BANK OF NEW YORK MELLON TRUST COMPANY, N.A.
To: AVAYA INC.
Reel/Frame 044891/0801 →
BANKRUPTCY COURT ORDER RELEASING ALL LIENS INCLUDING THE SECURITY INTEREST RECORDED AT REEL/FRAME 025863/0535 Recorded Dec 15, 2017
From: THE BANK OF NEW YORK MELLON TRUST, NA
To: AVAYA INC.
Reel/Frame 044892/0001 →
BANKRUPTCY COURT ORDER RELEASING ALL LIENS INCLUDING THE SECURITY INTEREST RECORDED AT REEL/FRAME 030083/0639 Recorded Dec 15, 2017
From: THE BANK OF NEW YORK MELLON TRUST COMPANY, N.A.
To: AVAYA INC.
Reel/Frame 045012/0666 →
SECURITY INTEREST Recorded Jan 27, 2017
From: AVAYA INC.; AVAYA INTEGRATED CABINET SOLUTIONS INC.; OCTEL COMMUNICATIONS CORPORATION; VPNET TECHNOLOGIES, INC.
To: CITIBANK, N.A., AS ADMINISTRATIVE AGENT
Reel/Frame 041576/0001 →
SECURITY AGREEMENT Recorded Mar 13, 2013
From: AVAYA, INC.
To: BANK OF NEW YORK MELLON TRUST COMPANY, N.A., THE
Reel/Frame 030083/0639 →
SECURITY AGREEMENT Recorded Jan 10, 2013
From: AVAYA, INC.
To: THE BANK OF NEW YORK MELLON TRUST COMPANY, N.A.
Reel/Frame 029608/0256 →
SECURITY AGREEMENT Recorded Feb 22, 2011
From: AVAYA INC., A DELAWARE CORPORATION
To: BANK OF NEW YORK MELLON TRUST, NA, AS NOTES COLLATERAL AGENT, THE
Reel/Frame 025863/0535 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Feb 26, 2010
From: NORTEL NETWORKS LIMITED
To: AVAYA INC.
Reel/Frame 023998/0878 →
SECURITY AGREEMENT Recorded Feb 5, 2010
From: AVAYA INC.
To: CITICORP USA, INC., AS ADMINISTRATIVE AGENT
Reel/Frame 023905/0001 →
SECURITY AGREEMENT Recorded Feb 4, 2010
From: AVAYA INC.
To: CITIBANK, N.A., AS ADMINISTRATIVE AGENT
Reel/Frame 023892/0500 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Aug 28, 2008
From: LIN, LIN; LIN, PING
To: NORTEL NETWORKS LIMITED
Reel/Frame 021457/0722 →