IP Library › Granted Patent US 7,580,948
Granted Patent B2
US 7,580,948 · App. 10/949,003 · Granted Aug 25, 2009

Spooling strategies using structured job information

Assignee: Microsoft Corporation
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,580,948
App. No.
10/949,003
Granted
Aug 25, 2009
Kind
B2
Abstract

Spooling strategies are described for producing job information that conforms to a hierarchical structure, and then storing the job information in a spool storage. The job information is then retrieved from the spool storage and consumed. The structured job information includes a multi-level hierarchy of nodes, including a job level that represents the entire job, a document level that represents a document to be processed within the job; a rendition level that represents a rendition of the document to be processed; and a page level that represents a page associated with the rendition. The hierarchical structure can also include resource nodes and metadata nodes associated with any level of the hierarchy, respectively representing resources and metadata. The hierarchy can optionally be composed using one or more selection and sequence parts. Program logic implements the production and consumption of the job information by providing a collection of logic modules for selectively adding and retrieving elements to the hierarchically structure. The program logic also provides logic for enumerating the contents of the job information and for signaling the occurrence of various events associated with the processing of the job information.

Claims (39)

1. A system for generating job information to be processed by a spooling module, the system comprising:

one or more processing units;

logic executable by the one or more processing units to produce a data structure that specifies the job information, wherein the data structure defines a plurality of nodes organized into a hierarchical arrangement representing different aspects of the job information, the plurality of nodes including a plurality of documents, a number of renditions of at least one of the plurality of documents, metadata, at least one resource, at least one font, and at least one image, wherein the metadata, the at least one resource, the at least one font, the at least one image, or a combination thereof, are shared by two or more of the plurality of nodes, and wherein logic for producing the data structure comprises mechanisms for building higher-order structures from parts, the mechanisms comprising:

logic executable by the one or more processing units to implement at least one sequence node of a package to produce the job information, wherein the at least one sequence node facilitates combining at least two aspects of the job information, wherein the at least two aspects combined comprise sub-parts of the job information, and wherein the sub-parts originate from a first application, a second application, or any combination thereof, and combining facilitates processing of all of the sub-parts as an ordered sequence; and

logic executable by the one or more processing units to implement at least one selector node of the package to produce the job information, wherein the at least one selector node facilitates selecting from at least two aspects of the job information, and wherein the at least two aspects selected comprise different versions; and

logic executable by the one or more processing units to store the data structure in a spool storage for later retrieval and processing by the spooling module.

2. The system of claim 1 , further comprising logic executable by the one or more processing units to produce at least one job node representing an entire job to be processed by the spooling module.

3. The system of claim 1 , further comprising logic executable by the one or more processing units to produce at least one page node representing a page to be processed by the spooling module.

4. The system of claim 3 , wherein the logic for producing at least one page node produces a fixed page node that defines a page, wherein defining a fixed page comprises defining the contents of a page via markup elements describing rendering of a single page of content.

5. The system of claim 1 , further comprising logic executable by the one or more processing units to determine at least one characteristic of the job information.

6. The system of claim 1 , further comprising logic executable by the one or more processing units to provide a notification upon the occurrence of an event associated with the processing of the job information.

7. The system of claim 1 , further comprising logic that comprises a plurality of objects respectively configured to add different nodes to the data structure.

8. The system of claim 1 , wherein the at least one selector node comprises at least one from a plurality of selector nodes, the plurality of selector nodes comprising a language selector node, a color selector node, and a page size selector node, and wherein the language selector node is configured to pick between a representation of a document in a first language and a representation of the document in a second language based on a specified default language.

9. The system of claim 8 , wherein the plurality of selector nodes further comprises a content type selector node.

10. The system of claim 1 , further comprising logic executable by the one or more processing units to produce at least one fixed panel node that functions to bind together at least two pages of the job information.

11. A method for producing job information to be processed by a computing device including a spooling module, comprising:

producing, at the computing device including the spooling module, a data structure that specifies the job information, wherein the data structure defines a plurality of nodes organized into a hierarchical arrangement representing different aspects of the job information, the plurality of nodes including a plurality of documents, a number of renditions of at least one of the plurality of documents, metadata, at least one resource, at least one font, and at least one image, wherein the metadata, the at least one resource, the at least one font, the at least one image, or a combination thereof, are shared by two or more of the plurality of nodes, and wherein producing comprises producing mechanisms for building higher-order structures from parts, the mechanisms comprising:

at least one sequence node of the data structure, wherein the at least one sequence node facilitates combining at least two aspects of the job information, wherein the at least two aspects combined comprise sub-parts of the job information, wherein the sub-parts originate from at least a first application, a second application, or any combination thereof, and combining facilitates processing of all of the sub-parts as an ordered sequence; and

at least one selector node of the data structure, wherein the at least one selector node facilitates selecting from at least two aspects of the job information, wherein the at least two aspects selected comprise different versions; and

storing the data structure in a spool storage of the computing device for later retrieval and processing by the spooling module;

wherein the at least one sequence node and the at least one selector node are processed according to a particular hierarchical structure in order to produce the hierarchical arrangement of the data structure that specifies the job information.

12. The method of claim 11 , further comprising consuming the data structure at the computing device from the spool storage by selectively retrieving the nodes of the data structure.

13. The method of claim 11 , wherein the producing at the computing device comprises:

producing at least one job node representing an entire job to be processed by the spooling module; and

producing at least one page node representing a page associated with the rendition to be processed by the spooling module.

14. The method of claim 13 , further comprising consuming the job information from the spool storage at the computing device, the consuming comprising:

consuming said at least one job node;

consuming said at least one of said plurality of document nodes;

consuming said at least one of said plurality of rendition nodes; and

consuming said at least one page node.

15. The method of claim 14 , wherein the producing at the computing device further comprises:

producing at least one fixed panel node that functions to bind together at least two pages of the job information; and

producing at least one fixed page node that defines a page, wherein defining a fixed page comprises defining the contents of a page via markup elements describing rendering of a single page of content.

16. The method of claim 15 , further comprising consuming the job information from the spool storage at the computing device, the consuming comprising:

consuming said at least selector node;

consuming said at least one sequence node;

consuming said at least one fixed panel node; and

consuming said at least one fixed page node.

17. A computer readable storage medium including machine-readable instructions for implementing the producing of claim 11 .

Assignments (2)
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Dec 9, 2014
From: MICROSOFT CORPORATION
To: MICROSOFT TECHNOLOGY LICENSING, LLC
Reel/Frame 034541/0477 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Jan 25, 2005
From: SEDKY, KHALED S.; SINGH, HARVINDER P.I; YUE, FENG; TRUFINESCU, ADINA M.; FOEHR, OLIVER H.
To: MICROSOFT CORPORATION
Reel/Frame 015620/0483 →
Continuity (7)
Provisional Application 6056807100 · May 3, 2004
Provisional Application 6056767900 · May 3, 2004
Provisional Application 6056766300 · May 3, 2004
Provisional Application 6056789000 · May 3, 2004
Provisional Application 6056783000 · May 3, 2004
Provisional Application 6056792000 · May 3, 2004
Related Publication 20050262134A1 · Nov 24, 2005