IP Library Granted Patent US 7,703,006
Granted Patent B2
US 7,703,006 · App. 11/145,262 · Granted Apr 20, 2010

System and method of accelerating document processing

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 7,703,006
App. No.
11/145,262
Granted
Apr 20, 2010
Kind
B2
Abstract

Embodiments include methods and systems for processing XML documents. One embodiment is a system that includes a tokenizer configured to identify tokens in an XML document. A plurality of speculative processing modules are configured to receive the tokens and to at least partially process the XML document and to provide data indicative of the XML document. A first module is configured to perform further processing of the XML document using the data indicative of the XML document and configured to output the processed XML document. Each of the plurality of speculative processing modules is configured to asynchronously provide the data indicative of the XML document to the first module. Other embodiments include method and systems for performing the speculative processing.

Claims (42)

1. A system for processing XML documents, the system comprising:

a tokenizer configured to identify tokens in an XML document;

a plurality of speculative processing modules configured to receive said tokens and to at least partially process said XML document and to generate data indicative of said XML document, wherein the plurality of processing modules comprises a plurality of circuits, each of the speculative processing modules corresponding to a respective one of the circuits; and

a first module configured to receive said data indicative of said XML document and configured to perform further processing of said XML document using said data indicative of said XML document and configured to output said processed XML document, wherein the first module comprises a circuit configured to receive data from each of the plurality of speculative processing modules,

wherein each of the plurality of speculative processing modules is configured to asynchronously provide the data indicative of said XML document to said first module, and

wherein each speculative processing module is adapted to process each XML document defined by a first portion related to a data structure and a second portion related to data excluded from the data structure, the data indicative of a corresponding XML document associated with a hash key derived from the data structure.

2. The system of claim 1 , wherein at least one of the plurality of speculative processing modules comprises a digest caching module.

3. The system of claim 1 , wherein at least one of the plurality of speculative processing modules comprising a conformance engine module.

4. The system of claim 1 , wherein at least one of the plurality of speculative processing modules comprises a canonicalization module.

5. A method of processing documents having structured data, said method comprising:

receiving a first document, wherein a first portion of the first document defines a structure of the first document and wherein a second portion of the first document comprises first document data defined at least partly by said first document structure;

generating a first data structure comprising said first document structure defined by said first portion of the first document, wherein said first data structure excludes said second portion of the first document;

determining a first hash key based on said first data structure that identifies said first document structure;

determining at least one property of said first document;

storing said first hash key with said at least one property of said first document;

receiving a second document, wherein a first portion of the second document defines a structure of the second document and a second portion of the second document comprises second data defined at least partly by said second document structure, wherein a hierarchical structure of the second document defined by the second document structure is substantially the same as a hierarchical structure of said first document defined by the first document structure and wherein said first document data is at least partially different from said second document data;

generating a second data structure comprising said second document structure defined by said first portion of the second document, wherein said second data structure excludes said second portion of the second document;

determining a second hash key based on said second data structure that identifies said second document structure;

matching said second hash key to said first hash key; and

retrieving said at least one property stored with said first hash key for use in processing the second document.

6. The method of claim 5 , wherein said second document comprises an XML document.

7. The method of claim 5 , wherein said first document comprises an XML document.

8. The method of claim 5 , wherein generating said hash key comprises generating a cryptographic hash.

9. The method of claim 8 , wherein said cryptographic hash comprises a SHA-1algorithm.

10. The method of claim 5 , wherein storing said first hash key comprises maintaining a cache.

11. A content processor containing software defining a process which when executed causes the content processor to perform the steps of:

receiving a first document, wherein a first portion of the first document defines a structure of the first document and wherein a second portion of the first document comprises first document data defined at least partly by said first document structure;

generating a first data structure comprising said first document structure defined by said first portion of the first document, wherein said first data structure excludes said second portion of the first document;

determining a first hash key based on said first data structure that identifies said first document structure;

determining at least one property of said first document;

storing said first hash key with said at least one property of said first document;

receiving a second document, wherein a first portion of the second document defines a structure of the second document and a second portion of the second document comprises second data defined at least partly by said second document structure, wherein a hierarchical structure of the second document defined by the second document structure is substantially the same as a hierarchical structure of said first document defined by the first document structure and wherein said first document data is at least partially different from said second document data;

generating a second data structure comprising said second document structure defined by said first portion of the second document, wherein said second data structure excludes said second portion of the second document;

determining a second hash key based on said second data structure that identifies said second document structure;

matching said second hash key to said first hash key; and

retrieving said at least one property stored with said first hash key for use in processing the second document.

12. The content processor of claim 11 , wherein storing said first hash key comprises maintaining a cache.

13. The content processor of claim 12 , comprising a computer readable storage medium configured to store said software and a processor configured to execute said software.

14. The content processor claim 11 , further comprising a programmable gate array configured to execute the software.

15. The content processor of claim 11 , wherein determining said first and second hash keys is performed by generating a cryptographic hash.

16. The content processor of claim 11 , wherein the first and second documents comprise XML documents.

17. The content processor of claim 11 , wherein the content processor comprises one or more of an application specific integrated circuit and a network interface card.

Assignments (7)
TERMINATION AND RELEASE OF SECURITY INTEREST IN PATENTS Recorded Feb 3, 2017
From: BANK OF AMERICA, N.A., AS COLLATERAL AGENT
To: AVAGO TECHNOLOGIES GENERAL IP (SINGAPORE) PTE. LTD.
Reel/Frame 041710/0001 →
PATENT SECURITY AGREEMENT Recorded Feb 11, 2016
From: AVAGO TECHNOLOGIES GENERAL IP (SINGAPORE) PTE. LTD.
To: BANK OF AMERICA, N.A., AS COLLATERAL AGENT
Reel/Frame 037808/0001 →
TERMINATION AND RELEASE OF SECURITY INTEREST IN PATENT RIGHTS (RELEASES RF 032856-0031) Recorded Feb 2, 2016
From: DEUTSCHE BANK AG NEW YORK BRANCH, AS COLLATERAL AGENT
To: LSI CORPORATION; AGERE SYSTEMS LLC
Reel/Frame 037684/0039 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Apr 3, 2015
From: LSI CORPORATION
To: AVAGO TECHNOLOGIES GENERAL IP (SINGAPORE) PTE. LTD.
Reel/Frame 035390/0388 →
PATENT SECURITY AGREEMENT Recorded May 8, 2014
From: LSI CORPORATION; AGERE SYSTEMS LLC
To: DEUTSCHE BANK AG NEW YORK BRANCH, AS COLLATERAL AGENT
Reel/Frame 032856/0031 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Apr 1, 2009
From: TARARI, INC.
To: LSI CORPORATION
Reel/Frame 022482/0907 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Jun 2, 2005
From: LEMOINE, ERIC T.
To: TARARI, INC.
Reel/Frame 016664/0267 →