US9223529B1 - Method and apparatus of processing information in an environment with multiple devices and limited resources - Google Patents

Method and apparatus of processing information in an environment with multiple devices and limited resources Download PDF

Info

Publication number
US9223529B1
US9223529B1 US12/753,171 US75317110A US9223529B1 US 9223529 B1 US9223529 B1 US 9223529B1 US 75317110 A US75317110 A US 75317110A US 9223529 B1 US9223529 B1 US 9223529B1
Authority
US
United States
Prior art keywords
user
job
printers
pool
prioritization
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Expired - Fee Related, expires
Application number
US12/753,171
Inventor
Margarita Khafizova
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Open Invention Network LLC
Original Assignee
Open Invention Network LLC
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Open Invention Network LLC filed Critical Open Invention Network LLC
Assigned to OPEN INVENTION NETWORK LLC reassignment OPEN INVENTION NETWORK LLC ASSIGNMENT OF ASSIGNORS INTEREST (SEE DOCUMENT FOR DETAILS). Assignors: KHAFIZOVA, MARGARITA
Priority to US12/753,171 priority Critical patent/US9223529B1/en
Priority to US12/770,965 priority patent/US9386256B1/en
Priority to US12/770,944 priority patent/US9235645B1/en
Priority to US12/822,297 priority patent/US9405400B1/en
Priority to US12/822,292 priority patent/US9383887B1/en
Priority to US12/822,286 priority patent/US9335894B1/en
Priority to US12/958,092 priority patent/US9619056B1/en
Priority to US13/034,860 priority patent/US9256917B1/en
Priority to US14/275,129 priority patent/US9189191B1/en
Priority to US14/333,233 priority patent/US9524042B1/en
Priority to US14/334,338 priority patent/US8964235B1/en
Priority to US14/590,823 priority patent/US9477373B1/en
Priority to US14/628,428 priority patent/US9244636B1/en
Priority to US14/940,991 priority patent/US9575694B1/en
Priority to US14/970,843 priority patent/US9639305B1/en
Publication of US9223529B1 publication Critical patent/US9223529B1/en
Application granted granted Critical
Priority to US14/993,551 priority patent/US9612874B1/en
Priority to US15/007,006 priority patent/US9436424B1/en
Priority to US15/364,570 priority patent/US9817519B1/en
Priority to US15/583,515 priority patent/US9977633B1/en
Expired - Fee Related legal-status Critical Current
Adjusted expiration legal-status Critical

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/01Input arrangements or combined input and output arrangements for interaction between user and computer
    • G06F3/03Arrangements for converting the position or the displacement of a member into a coded form
    • G06F3/041Digitisers, e.g. for touch screens or touch pads, characterised by the transducing means
    • G06F3/0416Control or interface arrangements specially adapted for digitisers
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/10File systems; File servers
    • G06F16/11File system administration, e.g. details of archiving or snapshots
    • G06F16/116Details of conversion of file system types or formats
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/90Details of database functions independent of the retrieved data types
    • G06F16/95Retrieval from the web
    • G06F16/953Querying, e.g. by the use of web search engines
    • G06F16/9535Search customisation based on user profiles and personalisation
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/01Input arrangements or combined input and output arrangements for interaction between user and computer
    • G06F3/03Arrangements for converting the position or the displacement of a member into a coded form
    • G06F3/041Digitisers, e.g. for touch screens or touch pads, characterised by the transducing means
    • G06F3/0412Digitisers structurally integrated in a display
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/01Input arrangements or combined input and output arrangements for interaction between user and computer
    • G06F3/048Interaction techniques based on graphical user interfaces [GUI]
    • G06F3/0481Interaction techniques based on graphical user interfaces [GUI] based on specific properties of the displayed interaction object or a metaphor-based environment, e.g. interaction with desktop elements like windows or icons, or assisted by a cursor's changing behaviour or appearance
    • G06F3/04817Interaction techniques based on graphical user interfaces [GUI] based on specific properties of the displayed interaction object or a metaphor-based environment, e.g. interaction with desktop elements like windows or icons, or assisted by a cursor's changing behaviour or appearance using icons
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/01Input arrangements or combined input and output arrangements for interaction between user and computer
    • G06F3/048Interaction techniques based on graphical user interfaces [GUI]
    • G06F3/0484Interaction techniques based on graphical user interfaces [GUI] for the control of specific functions or operations, e.g. selecting or manipulating an object, an image or a displayed text element, setting a parameter value or selecting a range
    • G06F3/04842Selection of displayed objects or displayed text elements
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/01Input arrangements or combined input and output arrangements for interaction between user and computer
    • G06F3/048Interaction techniques based on graphical user interfaces [GUI]
    • G06F3/0484Interaction techniques based on graphical user interfaces [GUI] for the control of specific functions or operations, e.g. selecting or manipulating an object, an image or a displayed text element, setting a parameter value or selecting a range
    • G06F3/04845Interaction techniques based on graphical user interfaces [GUI] for the control of specific functions or operations, e.g. selecting or manipulating an object, an image or a displayed text element, setting a parameter value or selecting a range for image manipulation, e.g. dragging, rotation, expansion or change of colour
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/01Input arrangements or combined input and output arrangements for interaction between user and computer
    • G06F3/048Interaction techniques based on graphical user interfaces [GUI]
    • G06F3/0487Interaction techniques based on graphical user interfaces [GUI] using specific features provided by the input device, e.g. functions controlled by the rotation of a mouse with dual sensing arrangements, or of the nature of the input device, e.g. tap gestures based on pressure sensed by a digitiser
    • G06F3/0488Interaction techniques based on graphical user interfaces [GUI] using specific features provided by the input device, e.g. functions controlled by the rotation of a mouse with dual sensing arrangements, or of the nature of the input device, e.g. tap gestures based on pressure sensed by a digitiser using a touch-screen or digitiser, e.g. input of commands through traced gestures
    • G06F3/04883Interaction techniques based on graphical user interfaces [GUI] using specific features provided by the input device, e.g. functions controlled by the rotation of a mouse with dual sensing arrangements, or of the nature of the input device, e.g. tap gestures based on pressure sensed by a digitiser using a touch-screen or digitiser, e.g. input of commands through traced gestures for inputting data by handwriting, e.g. gesture or text
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/12Digital output to print unit, e.g. line printer, chain printer
    • G06F3/1201Dedicated interfaces to print systems
    • G06F3/1202Dedicated interfaces to print systems specifically adapted to achieve a particular effect
    • G06F3/1203Improving or facilitating administration, e.g. print management
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/12Digital output to print unit, e.g. line printer, chain printer
    • G06F3/1201Dedicated interfaces to print systems
    • G06F3/1202Dedicated interfaces to print systems specifically adapted to achieve a particular effect
    • G06F3/1203Improving or facilitating administration, e.g. print management
    • G06F3/1204Improving or facilitating administration, e.g. print management resulting in reduced user or operator actions, e.g. presetting, automatic actions, using hardware token storing data
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/12Digital output to print unit, e.g. line printer, chain printer
    • G06F3/1201Dedicated interfaces to print systems
    • G06F3/1202Dedicated interfaces to print systems specifically adapted to achieve a particular effect
    • G06F3/1203Improving or facilitating administration, e.g. print management
    • G06F3/1205Improving or facilitating administration, e.g. print management resulting in increased flexibility in print job configuration, e.g. job settings, print requirements, job tickets
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/12Digital output to print unit, e.g. line printer, chain printer
    • G06F3/1201Dedicated interfaces to print systems
    • G06F3/1202Dedicated interfaces to print systems specifically adapted to achieve a particular effect
    • G06F3/1203Improving or facilitating administration, e.g. print management
    • G06F3/1206Improving or facilitating administration, e.g. print management resulting in increased flexibility in input data format or job format or job type
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/12Digital output to print unit, e.g. line printer, chain printer
    • G06F3/1201Dedicated interfaces to print systems
    • G06F3/1202Dedicated interfaces to print systems specifically adapted to achieve a particular effect
    • G06F3/121Facilitating exception or error detection and recovery, e.g. fault, media or consumables depleted
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/12Digital output to print unit, e.g. line printer, chain printer
    • G06F3/1201Dedicated interfaces to print systems
    • G06F3/1223Dedicated interfaces to print systems specifically adapted to use a particular technique
    • G06F3/1224Client or server resources management
    • G06F3/1226Discovery of devices having required properties
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/12Digital output to print unit, e.g. line printer, chain printer
    • G06F3/1201Dedicated interfaces to print systems
    • G06F3/1223Dedicated interfaces to print systems specifically adapted to use a particular technique
    • G06F3/1229Printer resources management or printer maintenance, e.g. device status, power levels
    • G06F3/1234Errors handling and recovery, e.g. reprinting
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/12Digital output to print unit, e.g. line printer, chain printer
    • G06F3/1201Dedicated interfaces to print systems
    • G06F3/1223Dedicated interfaces to print systems specifically adapted to use a particular technique
    • G06F3/1236Connection management
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/12Digital output to print unit, e.g. line printer, chain printer
    • G06F3/1201Dedicated interfaces to print systems
    • G06F3/1223Dedicated interfaces to print systems specifically adapted to use a particular technique
    • G06F3/1237Print job management
    • G06F3/1238Secure printing, e.g. user identification, user rights for device usage, unallowed content, blanking portions or fields of a page, releasing held jobs
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/12Digital output to print unit, e.g. line printer, chain printer
    • G06F3/1201Dedicated interfaces to print systems
    • G06F3/1223Dedicated interfaces to print systems specifically adapted to use a particular technique
    • G06F3/1237Print job management
    • G06F3/126Job scheduling, e.g. queuing, determine appropriate device
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/12Digital output to print unit, e.g. line printer, chain printer
    • G06F3/1201Dedicated interfaces to print systems
    • G06F3/1223Dedicated interfaces to print systems specifically adapted to use a particular technique
    • G06F3/1237Print job management
    • G06F3/126Job scheduling, e.g. queuing, determine appropriate device
    • G06F3/1263Job scheduling, e.g. queuing, determine appropriate device based on job priority, e.g. re-arranging the order of jobs, e.g. the printing sequence
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/12Digital output to print unit, e.g. line printer, chain printer
    • G06F3/1201Dedicated interfaces to print systems
    • G06F3/1223Dedicated interfaces to print systems specifically adapted to use a particular technique
    • G06F3/1237Print job management
    • G06F3/1268Job submission, e.g. submitting print job order or request not the print data itself
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/12Digital output to print unit, e.g. line printer, chain printer
    • G06F3/1201Dedicated interfaces to print systems
    • G06F3/1278Dedicated interfaces to print systems specifically adapted to adopt a particular infrastructure
    • G06F3/1281Multi engine printer devices, e.g. one entity having multiple output engines
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/12Digital output to print unit, e.g. line printer, chain printer
    • G06F3/1201Dedicated interfaces to print systems
    • G06F3/1278Dedicated interfaces to print systems specifically adapted to adopt a particular infrastructure
    • G06F3/1285Remote printer device, e.g. being remote from client or server
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/12Digital output to print unit, e.g. line printer, chain printer
    • G06F3/1201Dedicated interfaces to print systems
    • G06F3/1278Dedicated interfaces to print systems specifically adapted to adopt a particular infrastructure
    • G06F3/1285Remote printer device, e.g. being remote from client or server
    • G06F3/1286Remote printer device, e.g. being remote from client or server via local network
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/12Digital output to print unit, e.g. line printer, chain printer
    • G06F3/1201Dedicated interfaces to print systems
    • G06F3/1278Dedicated interfaces to print systems specifically adapted to adopt a particular infrastructure
    • G06F3/1285Remote printer device, e.g. being remote from client or server
    • G06F3/1287Remote printer device, e.g. being remote from client or server via internet
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/12Digital output to print unit, e.g. line printer, chain printer
    • G06F3/1201Dedicated interfaces to print systems
    • G06F3/1278Dedicated interfaces to print systems specifically adapted to adopt a particular infrastructure
    • G06F3/1285Remote printer device, e.g. being remote from client or server
    • G06F3/1288Remote printer device, e.g. being remote from client or server in client-server-printer device configuration
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/12Digital output to print unit, e.g. line printer, chain printer
    • G06F3/1201Dedicated interfaces to print systems
    • G06F3/1278Dedicated interfaces to print systems specifically adapted to adopt a particular infrastructure
    • G06F3/1291Pool of printer devices: self-managing printing devices in a network, e.g. without a server
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/12Digital output to print unit, e.g. line printer, chain printer
    • G06F3/1201Dedicated interfaces to print systems
    • G06F3/1278Dedicated interfaces to print systems specifically adapted to adopt a particular infrastructure
    • G06F3/1292Mobile client, e.g. wireless printing
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/12Digital output to print unit, e.g. line printer, chain printer
    • G06F3/1293Printer information exchange with computer
    • G06F3/1294Status or feedback related to information exchange
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F40/00Handling natural language data
    • G06F40/20Natural language analysis
    • G06F40/279Recognition of textual entities
    • G06F40/289Phrasal analysis, e.g. finite state techniques or chunking
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/46Multiprogramming arrangements
    • G06F9/48Program initiating; Program switching, e.g. by interrupt
    • G06F9/4806Task transfer initiation or dispatching
    • G06F9/4812Task transfer initiation or dispatching by interrupt, e.g. masked
    • G06F9/4818Priority circuits therefor
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/46Multiprogramming arrangements
    • G06F9/50Allocation of resources, e.g. of the central processing unit [CPU]
    • G06F9/5005Allocation of resources, e.g. of the central processing unit [CPU] to service a request
    • G06F9/5027Allocation of resources, e.g. of the central processing unit [CPU] to service a request the resource being a machine, e.g. CPUs, Servers, Terminals
    • G06F9/5038Allocation of resources, e.g. of the central processing unit [CPU] to service a request the resource being a machine, e.g. CPUs, Servers, Terminals considering the execution order of a plurality of tasks, e.g. taking priority or time dependency constraints into consideration
    • GPHYSICS
    • G10MUSICAL INSTRUMENTS; ACOUSTICS
    • G10LSPEECH ANALYSIS OR SYNTHESIS; SPEECH RECOGNITION; SPEECH OR VOICE PROCESSING; SPEECH OR AUDIO CODING OR DECODING
    • G10L15/00Speech recognition
    • G10L15/26Speech to text systems
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L67/00Network arrangements or protocols for supporting network services or applications
    • H04L67/01Protocols
    • H04L67/06Protocols specially adapted for file transfer, e.g. file transfer protocol [FTP]
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L67/00Network arrangements or protocols for supporting network services or applications
    • H04L67/01Protocols
    • H04L67/10Protocols in which an application is distributed across nodes in the network
    • H04L67/1001Protocols in which an application is distributed across nodes in the network for accessing one among a plurality of replicated servers
    • H04L67/1004Server selection for load balancing
    • H04L67/1021Server selection for load balancing based on client or server locations
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L67/00Network arrangements or protocols for supporting network services or applications
    • H04L67/50Network services
    • H04L67/60Scheduling or organising the servicing of application requests, e.g. requests for application data transmissions using the analysis and optimisation of the required network resources
    • H04L67/61Scheduling or organising the servicing of application requests, e.g. requests for application data transmissions using the analysis and optimisation of the required network resources taking into account QoS or priority requirements
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04WWIRELESS COMMUNICATION NETWORKS
    • H04W4/00Services specially adapted for wireless communication networks; Facilities therefor
    • H04W4/02Services making use of location information
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2203/00Indexing scheme relating to G06F3/00 - G06F3/048
    • G06F2203/048Indexing scheme relating to G06F3/048
    • G06F2203/04808Several contacts: gestures triggering a specific function, e.g. scrolling, zooming, right-click, when the user establishes several contacts with the surface simultaneously; e.g. using several fingers or a combination of fingers and pen
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04WWIRELESS COMMUNICATION NETWORKS
    • H04W4/00Services specially adapted for wireless communication networks; Facilities therefor
    • H04W4/02Services making use of location information
    • H04W4/029Location-based management or tracking services

Definitions

  • the present patent application is related to provisional patent application No. 61/317,741, filed Mar. 26, 2010, entitled System and Method for Analysing Data Records Utilizing a Touch Screen Interface, and provisional patent application No. 61/317,744, filed Mar. 26, 2010, entitled Touch Screen Commands, and provisional patent application No. 61/317,793, filed Mar. 26, 2010, entitled A Method for Touch Detection in Touch Sensitive Screens, and provisional patent application No. 61/317,800, filed Mar. 26, 2010, entitled Touch Sensitive Screens Utilizing History and a Preview, and provisional patent application No. 61/317,812, filed Mar. 26, 2010, entitled Repetitive Touch Combining Method, and provisional patent application No. 61/317,827 filed Mar.
  • This invention relates to a method and apparatus of providing information processing, such as, printing documents and/or converting audio, video, and multimedia files with computer systems.
  • Computer networking systems that include various data processing elements are essential for processing large amounts of data, and automated processes related to the exchange of information. Examples of tasks related to these data processing activities may include printing documents, converting multimedia files or data streams into a desired data format, and delivering certain data content to a user.
  • Subsets of video, audio, and multimedia files may be located on the user's computer, the Internet and other data storage locations (i.e., such as websites that specialize in content, for example, Youtube® or Hulu®).
  • the user may desire to convert these files to a different format, size and may also desire to deliver those converted files to a specific network location.
  • Recent changes made to software tools allow users to produce documents and multimedia files with very specific details tailored to each particular user. For example, individual users may want to have certain files processed (e.g., printed), and the results delivered to a location where the user will be the next day.
  • files processed e.g., printed
  • the amount of printed information is substantially large, and often it is necessary to separate documents which must be printed quickly with special requirements (i.e., in color poster format) from those that can be printed at a later time (i.e., black and white data specifications that are not likely to be read at all). Any of these tasks can be accomplished through a number of simple but time consuming operations, which can make the process ineffective.
  • Information processing resources may also be shared (e.g., printing, server applications, etc.) more effectively so that costs are kept to a minimum.
  • Information processing costs can be estimated by assessing first the cost of processing small subsets of information. For example, when attempting to draw (or print) a complicated shape, it is helpful at first to represent the form with a set of primitive shapes. Almost any form can be represented by some combination of the cube, sphere, cylinder, and cone, which are called drawing primitives.
  • drawing primitives Several types of technologies currently exist that deal with problems related to printing documents.
  • a method for analyzing the execution times of drawing primitives may be performed.
  • the method allows the host computer to determine whether the printer connected to the host computer will be able to render drawing primitives in real-time. Additionally, the cost metrics associated with printing drawing primitives are also measured and are used to determine whether such printing of a document can be accomplished in real-time.
  • processing information i.e., printing
  • processing information encounters additional challenges when being implemented in a multi-computer environment with shared printing resources.
  • a number of computer users will be sending print jobs to only a few printers available for printing.
  • Each print job generally has unique requirements, such as, time during which the print job must be completed, color quality (e.g., gray scale, black and white, or full color), print size and format, etc.
  • One example embodiment of the present invention may include a method of processing data associated with a job request.
  • the method may include determining at least one job specific resource available to fulfill the job request.
  • the method may also include performing at least one of a prioritization computation, a job specific requirement computation, and a geographical determination computation.
  • the method may further include selecting at least one appropriate device to fulfill the job request based on the at least one computation operation and the at least one available job specific resource, and processing and completing the job using the at least one appropriate device based on the at least one computation.
  • the apparatus may include a processor configured to determine at least one job specific resource available to fulfill the job request, to perform at least one of a prioritization computation, a job specific requirement computation, and a geographical determination computation, and to select at least one appropriate device to fulfill the job request based on the at least one computation operation and the at least one available job specific resource.
  • the apparatus may also include a transmitter to transmit the job to the appropriate device, and the appropriate device processes and completes the job based on the at least one computation.
  • FIG. 1 illustrates an example network configuration according to an example embodiment of the present invention.
  • FIG. 2 illustrates an example flow diagram according to an example embodiment of the present invention.
  • FIGS. 3A-3C illustrate example graphical user interfaces according to an example embodiment of the present invention.
  • FIG. 4 illustrates another example flow diagram according to an example embodiment of the present invention.
  • FIG. 5 illustrates an example flow chart according to an example embodiment of the present invention.
  • FIG. 6 illustrates another example flow chart according to an example embodiment of the present invention.
  • FIG. 7 illustrates another example flow diagram according to an example embodiment of the present invention.
  • FIG. 8 illustrates another example network configuration according to an example embodiment of the present invention.
  • FIG. 9 illustrates yet another example flow diagram according to an example embodiment of the present invention.
  • FIG. 10 illustrates an example networking device according to an example embodiment of the present invention.
  • FIG. 11 illustrates an example method according to an example embodiment of the present invention.
  • FIG. 12 illustrates an example network diagram according to another example embodiment of the present invention.
  • FIGS. 13A-13C illustrate example screenshot windows of the GUI used to perform a search according to another example embodiment of the present invention.
  • FIGS. 14A and 14B illustrate other example screenshot windows of the GUI used to perform a search for a recurring story line according to another example embodiment of the present invention.
  • FIGS. 15A and 15B illustrate a single flow diagram of an algorithm application on the user side according to another example embodiment of the present invention.
  • FIG. 16 illustrates another flow diagram of an algorithm application on the server side according to another example embodiment of the present invention.
  • the term “message” has been used in the description of embodiments of the present invention, the invention may be applied to many types of network data, such as packet, frame, datagram, etc.
  • the term “message” also includes packet, frame, datagram, and any equivalents thereof.
  • certain types of messages and signaling are depicted in exemplary embodiments of the invention, the invention is not limited to a certain type of message, and the invention is not limited to a certain type of signaling.
  • the examples may be extended to other types of information processing (i.e., other than printing) in similar data networking environments. For example, when there are multiple users competing for limited resources.
  • Some example information processing configurations may include converting media files and/or data streams into files of a specific format and size.
  • User specific information collected from the user during the submission of the information processing request may be used to select a most appropriate server, the order of priority of requests received, etc. Illustrations of such cases are provided in detail below.
  • Example embodiments may include identification of information processing priorities, and selecting the most optimal processing strategy in the multi-computer (i.e., application server) system with shared limited resources.
  • User input of processing requirements may be provided to the computer system (i.e., application server) through an automated interface. These processing requirements and additional data related to the user may be used to determine information processing priority.
  • An initial selection determination process may provide selecting a device based on specified requirements. Then a target device may be identified based on an estimated processing load so that the total load is shared between the multiple devices to reduce the cumulative processing cost.
  • the enclosed processing methods are applicable to various types of information processing.
  • Some example processing methods include, but are not limited, to printing documents in a localized networking environment, printing documents at any of a multiple geographical locations, conversion of multimedia files and or data streams into a specified data format, creating an entertainment program from specified media clips, etc.
  • FIG. 1 illustrates an example of a network connecting various mobile devices, computers, storage devices, and other information processing devices (e.g., printers, application servers, etc.), according to an example embodiment of the present invention.
  • the system includes a plurality of devices on a local network 100 that includes type-1 devices.
  • the system also includes a network 200 that includes type-2 device(s), and a network 300 that includes type-3 devices.
  • those devices include a user computer (UC) 110 , a processor device client software application (PCS) 120 running on the user computer 110 , or, on a mobile device 130 communicating to the network via a base station 140 .
  • Other type-1 devices include a computer 150 with specialized software on the local network 100 , or a computer 170 connected to the local area network through the Internet 160 .
  • the type-2 devices are operating on a separate network 200 .
  • a network may include a local area network (LAN), wide area network (WAN) or a network located across the web 160 from the network 100 .
  • a network 200 includes a type-2 device(s), such as, a request processing server (RPS) 220 (i.e., printer request server) which receives print job requests from the type-1 devices (i.e., PCS 110 ) on the network 100 .
  • RPS 220 i.e., printer request server
  • the RPS 220 includes priority and resource allocation software (PRAS) that is operating on the request processing server (RPS) 220 .
  • PRAS resource allocation software
  • the RPS 220 may also include a pool of processors that correspond to a pool of printers 300 , or, type-3 devices.
  • a particular processor associated with the RPS 220 and the PRAS may perform a selection operation to select a particular printer (i.e., 310 ) among the type-3 devices to perform a print operation initiated by the user computer 110 . that is being selected by the PRAS 220 .
  • the PCS application 120 will automatically read information about the user stored in a user login profile. Additional information may be provided by user input.
  • the PCS application 120 will send all the necessary information and a print job request to a RPS 220 (e.g., printer server).
  • the printer server 220 may be unique and have its own network identity and address.
  • the print server 220 may be incorporated into any of a plurality of other computing devices comprising a computer readable storage medium (i.e., memory) and at least one processor. In the event that there are multiple RPSs or print servers 220 operating together in a print server pool, then those print servers 220 may operate together synchronously and may fully share their internal resource management information.
  • FIG. 3A illustrates a graphical user interface (GUI) representation that the user may observe when requesting a print job, according to an example embodiment of the present invention.
  • GUI graphical user interface
  • the requestor of the print job i.e., a user associated with the UC 120
  • the requestor of the print job may be able to view her own personal information in the first box on the left of the print window. This information may be provided from the system (i.e., the user computer 110 ), and may be accessed when the requestor of the print job has been identified.
  • the box in the middle of the GUI and the box on the right of the GUI display illustrate example print options that the user may utilize to setup the options of the print job.
  • the GUI has two additional buttons on the bottom of the GUI to complete the functionality of the print window.
  • the user may select the “Print” button, which will send the print job to the RPS 220 , and the window will be removed from the screen. Pressing the “Cancel” button will only remove the window from the screen.
  • the GUI representation reflects an example only of the types of options that are available to the user. One skilled in the art will recognize that there are many different options that may be added to the proposed GUI print window without deviating from the scope of the current invention.
  • FIG. 3B illustrates another example of the print window, according to an example embodiment of the present invention.
  • the pull-down “Minute” component of the “Time Frame” option has been selected.
  • This functionality allows the user to select between “Minutes”, “Hours”, “Days”, and “Weeks” when setting the time frame that the user desires to have the print job completed.
  • the print server and/or printer devices may be capable of offering increased flexibility and capacity when attempting to prioritize and/or process multiple print jobs.
  • FIG. 3C illustrates another example of the print window, according to an example embodiment of the present invention.
  • a GUI representation of a “Printer Status” is illustrated as a separate window.
  • Such a window GUI may be displayed after the user has performed the necessary selection operations in the GUI of FIG. 3A and/or 3 B.
  • the window GUI in FIG. 3C may be utilized to display the status of a print job from the RPS 220 , once the user has requested a print job.
  • the print job identifier is displayed in the “Print Job” text field. This identifier may be created by a print server or RPS 220 upon the creation of a requested print job.
  • the next text field depicts a “Position in Queue”, which depicts the current queue location of the current print job.
  • the user may select a “Refresh” button at the bottom of the “Printer Status” window to query the queue from the printer system.
  • the “Position in Queue” will be updated with the current queue location (i.e., “3”).
  • the user may also select the “View Queue” option to send a request to the printer system to display the current queue (not shown). This option will provide the user with details regarding the other print jobs that have been submitted (e.g., number of jobs, file size of jobs, color printing vs. black and white printing jobs, which users have submitted jobs, etc.)
  • the user may instead select the “Cancel” button to remove the window from the display screen.
  • FIGS. 2 and 4 illustrate example processing diagrams that include data message transfers, according to example embodiments of the present invention.
  • the user's computer 201 may be used to store all print-related information entered by a user or associated with a print job. That print-related information may be saved in a file and stored in a memory storage on a computer readable storage medium of the user's computer 201 . Some or all of that information may be transferred to a request processing server 202 during a request for a print job sent from the user's computer 201 .
  • the request processing server 202 will utilize some or all of the information transferred from the user's computer 201 to compute a print job priority and to select a printer appropriate for the job.
  • the request processing server 202 processes the print job information prior to sending the print job to a particular printer 203 .
  • the printer 203 may be limited to providing a simple confirmation completion notification when the print job is successful.
  • the user's computer 201 may then discard the stored information.
  • FIG. 4 illustrates a print scenario where the user's submitted print job is not successful after a first attempt.
  • the first few message transfer operations are the same as those illustrated in FIG. 2 .
  • the printer 203 instead of receiving a completion confirmation from the printer 203 , the printer 203 instead transfers an “Error” or “Delay Notification” to the request processing server 202 , which, in turn, transfers that message to the computer 201 .
  • the user's computer may be setup to automatically wait a predefined amount of time and then resubmit the print request and the user's predefined information to the request processing server 202 .
  • the resubmission operation may be performed multiple times until a successful completion notification is received at the user's computer.
  • the processor device client software application (PCS) 120 running on the user computer 110 , or, on a mobile device 130 may operate by collecting information which may be split into several different categories.
  • the first information category collected by the PCS 120 may include, for example, a user ID, user department, user rank in the organization, the project that the user is working on, the type of work the user is performing, etc.
  • Such information will be stored in a user profile file at the user's computer 110 and/or mobile device 130 , which may be automatically retrieved from the PCS 120 .
  • the remaining categories of information may require direct input from the user and may not be predefined user information such as the first information type. Direct input from the user may be accomplished via a command line interface, graphical user interface (GUI), or, via specific times when the PCS application 120 is executed.
  • a second type of information may include, for example, a desired color option (e.g., gray scale, black and white, or full color) of the printed document, layout of the printed document, print options, such as, multiple pages on one page, two-sided print or single-side print, etc.
  • a third category of information may include, for example, a user perceived urgency of print job completion, such as, an expected pick up time (defined by hours, minutes or seconds) after a job submission.
  • a fourth category of information may include, for example, a type of device that sent the request (i.e., the user's computer, mobile station, etc.), the type of device that received the request, location of the device, etc.
  • the device may be identified as a location of the user and his or her proximity to an available pool of printers. For instance, in one embodiment, a location may be identified as one of several zones where each individual zone (i.e., zone-3) corresponds to a certain range or distance (i.e., 10-100 miles) from the RPS 220 .
  • a fifth category of information may include, for example, a preference of a particular printing device selected by the user. Examples may include a laser printer, a color laser printer, an ink-jet printer, a dot-matrix printer, a plotter, etc.
  • the above listed information categories are not exhaustive and may be easily extended to differentiate print job requests based on further alternative attributes.
  • Complete and/or partial information collected by the user's computer 110 and the related PCS application 120 , and the print document or print file including the corresponding print job request information may be sent to the RPS 220 .
  • the RPS 220 may perform various tasks, and, may perform those tasks in parallel.
  • One example, may include a first task executed by the RPS 220 to calculate a priority of the print job sent by the PCS application 120 .
  • the RPS 220 may execute software which maps each of the data input provided in the information categories one, two, and three to a corresponding numerical value. Next, those numerical values may then be multiplied by a particular weight.
  • Weights may be either pre-configured, or, they may be dynamically adjusted depending, for example, on the availability of printers that have certain capabilities, the importance of the project being worked on by the user, etc. Then all the multiplied products are summed (and normalized, if necessary) and adjusted (divided) by a cumulative utility factor (CUF) to provide a simply numerical value.
  • CUF cumulative utility factor
  • the CUF is a fairness enforcement mechanism and is described in detail below.
  • the RPS 220 may utilize the numerical values to perform a print operation. Such a printing operation may be based on a comparison of the priorities of the present print job with other currently pending print jobs currently in the queue.
  • the RPS 220 may receive orders (i.e., to process a print job, file transformation, etc.) from various sources, and create a unique identifier (UI) for each user submitting a job request.
  • UI unique identifier
  • Each user's UI may be a combination of items including but not limited to a user ID, a job department, a location, etc. These components of the UI may be processed and provided by the PCS 220 .
  • each user that has submitted at least one job in the last N time periods (where N is a configurable parameter for each RPS 220 that may include one or more minutes, hours, days, weeks, months, years, etc.), the RPS 220 will maintain a record of the number (K) of jobs submitted by the user and their respective priorities. These priority values may be combined into the CUF, which is computed as “1” plus the sum of K values of the individual job's utility factor (UFK).
  • the UFK is the corresponding job's priority divided by N and multiplied by the number of days before expiration of the N-day period from the current day (i.e., today). In this example, it is assumed that the period of interest is days.
  • the intent may be to increase a contribution level of the most recent jobs to the CUF. For example jobs processed the day that they are submitted (i.e., today) will contribute their full priority value, while the jobs submitted N/2 days ago, will only be considered with half of their respective priorities. The jobs submitted more than N days ago, would not be considered at all.
  • FIG. 5 illustrates an example flowchart of the operations performed by the printer server, according to an example embodiment of the present invention.
  • a first operation begins by receiving user information and a print job request, and a corresponding file and/or document will be located and printed if necessary at operation 501 .
  • a print job priority will be determined at operation 502 and a pool of printers “A” will be selected that are capable of satisfying the time delay budget to process the job based on the priority at operation 503 .
  • another operation may be performed to determine another pool of printers “B” without performing any priority calculation at operation 504 .
  • Another pool of printers “C” may also be determined that satisfy the both the conditions of the first set of pools “A” and “B” at operation 505 .
  • a decision is then made as to whether the pool of printers “C” is an empty set (i.e., no printers available in pool “C”) at operation 506 . If there is at least one printer in pool “C”, then the printer with the minimum load will be selected in pool “C” and the print job will be scheduled for that printer in operation 507 .
  • the printer will then send a notification of success or failure at operation 508 . Alternatively, if there are no printers in pool “C”, the user will receive a failure notification at operation 509 .
  • Operation 510 confirms success of the print job being executed. If there was a failure then the user is notified of an error, and if the print job was successful the user is notified of the successful job completion at operation 511 .
  • the RPS 220 may perform a first task of calculating the priority of the print job submitted.
  • a second task may also be performed to include the identification of printers that are capable of performing the desired print job. There may be a plurality of printers satisfying such a selection criteria.
  • the RPS 220 may evaluate a current load on each of the pre-selected printers. Load may not be defined based only on a number of print jobs currently scheduled or being executed. Instead, load may also include a total real-time estimate that it would take for all the currently scheduled jobs to be completed by a particular printer.
  • the RPS 220 may assign a new print job to a printer with the lowest load, so that an overall load of the entire processing networking system is kept to a minimum.
  • the RPS 220 may schedule print jobs in such a manner that an expected completion time of a submitted print job does not exceed the desired pick-up time specified by the user. If such scheduling is not possible, the user may be informed of the expected delay and will be given an option to cancel his print job. Upon completion of the print job, the user will receive a notification. These messages are exchanged between the printer and the RPS 220 , and, between the RPS 220 and the PCS application 120 at the user computer 110 .
  • the PCS application 120 of the user computer 110 may receive a failure notification from the RPS 220 .
  • the PCS application 120 may analyze the failure reason specified by the RPS 220 and try to make an adjustment to the original request, re-send the request, and/or select another RPS server that may be available.
  • One example failure reason may include, for example, incompatible requirements, such as, requirement “A” is incompatible with requirement “B.”
  • incompatible requirements such as, requirement “A” is incompatible with requirement “B.”
  • requirement “A” is incompatible with requirement “B.”
  • Incompatibility issues may also be due to limited resources available to the RPS 220 .
  • a user may request a full color plotter printout. However, only a black and white plotter may be available to the RPS 220 in order to complete the job in time. In such a case, the user may be asked to adjust her requirements, and the PCS 120 may make these suggestions to the user for troubleshooting assistance.
  • Another example failure reason may include the RPS 220 resources being unavailable before a print job was completed and/or a loss of connection with the RPS 220 .
  • the PCS application 120 may inform the user and suggest re-submitting the job to another RPS. In any case, some time will have passed since the last request, and, thus, the user may decide to change the requirements or even cancel the request altogether. If the user does not respond immediately, RPS 120 will wait for a response for a predetermined amount of time, and then may re-submit the job to the next best RPS 220 itself without any user input.
  • PCS 120 would inform the user and suggest to complete the job without re-doing what was already printed. If the user does not respond immediately, RPS 120 will wait for response for pre-determined time, and then re-submit the remaining job to the next best RPS 220 it can locate.
  • the PCS application 120 will maintain in a memory storage of the user computer 110 all the necessary information and corresponding data files that were sent to the RPS 220 . This provides an optimized data retrieval mechanism in case of a needed re-submission needed. For instance, if an error is received from the printer and forwarded from the RPS 220 to the user computer 110 . Also, assuming a delay notification message is received, the PCS application 120 will have the option of canceling the print job and re-submitting the job at a later time. Alternatively, the job may be sent to a different print server, in case there is a different pool of printer resources available.
  • the PCS application 120 will discard the stored print job information upon receiving a successful job completion notification and/or decision to cancel the print job.
  • UI user index
  • FIG. 6 illustrates an example flow diagram of a client software method that may be performed on the user's computer, according to an example embodiment of the present invention.
  • a request is received to print a document or a file at operation 601 .
  • the request may be received internally via the user computer.
  • the information types are then collected based on the user and the job. For example, category-1 information related to the user is collected at operation 602 .
  • Additional information types i.e., 2, 3, 4 and 5 are also collected from the user based on questions posed in windows and/or GUIs at operation 603 . Any additional information is then collected, if needed, at operation 604 .
  • the collected information may then be sent along with the print job file and request to the printer server at operation 605 .
  • the information that is sent may also be stored locally at the user computer in a temporary file storage memory at operation 606 .
  • the print server PS may then respond with a success or failure message regarding the print job request at operation 607 . If it is determined to be successful at decision operation 608 then the locally stored information may be discarded at operation 609 . If the job has failed then the failure reason is analyzed and a message is sent to the user and a predefined time is waited at operation 610 . The job may then be re-submitted at operation 611 and a re-submit time and wait time are calculated at operation 612 prior to resending the print job at operation 605 .
  • FIG. 7 illustrates a flowchart of an extended call flow diagram between the mobile device, computers, printer server and printer, according to an example embodiment of the present invention.
  • communication signaling is illustrated between a mobile device 601 , a computer-A 602 , a computer-B 603 , a request processing server 604 and a printer 605 .
  • the mobile device 601 sends a request to print a uniquely identifiable document to computer-A 602 , which then finds a computer-B 603 that has the desired document/file and instructs it to send a print job.
  • the computer-B 603 then sends a print job and user information to a request processing server 604 .
  • the computer-B 603 also keeps all information and corresponding data file information in a temporary storage memory.
  • the print job and user information are received at the request processing server 604 , which computes the job priority and selects a printer based on the information received.
  • the print job may then be sent to a suitable printer 605 .
  • the printer may initiate a job complete notification and send the notification back to the request processing server 604 .
  • the request processing server 604 may then relay the notification to the computer-B 603 , which may then discard the stored information now that the print job has been successful.
  • the computer-B 603 may then send the notification to computer-A 602 , which then sends the notification to the mobile device 601 .
  • the print services and job processing procedures described above may be applied to user's who are traveling to multiple geographical destinations.
  • user's who are traveling for business development, academic and industrial researchers, etc may all need remote access to printing services.
  • business users often need the latest documents related to presentations, proposals, etc., and while they are traveling.
  • a leader of a research group may be traveling overseas to a conference to present his research team's latest results.
  • the presentation must be in a large poster format specified by conference organizers. Due to some recently discovered phenomena or other researchers' recently published research results, the presenter may realize that he does not have time to complete the preparation of the poster before he is scheduled to conduct the presentation. The presenter could use a more flexible printing and updating procedure to accommodate his busy career.
  • standards documents may be reviewed and discussed on a regular basis (e.g. once a month) at different locations worldwide. Often it is known that at any particular meeting a certain version of the document will be discussed, and the document becomes available shortly before the meeting at certain locations, such as, known websites, participant's company intranet or Internet, or, may be easily located through an Internet search process.
  • the user who needs to have a printed copy of the latest version of the document may not have an actual copy of that version in her computer.
  • the user may not want to use time downloading and printing the file because she may be busy doing other work, or, the user may simply find the cost of printing the document at her current location unjustified. Instead, the user may choose to specify the title, version, section and/or pages of the document she needs to be printed, and the location where she desires the printed copy to become available.
  • Other features include the time when the user will pick up the document along with other possible options, as described in detail above.
  • the computer 150 will communicate with the RPS 220 by sending a print request when attempting to print a document.
  • the RPS 220 will present the user with printing options and the associated cost of providing the print service. For example, a printed copy of the document may be able to be printed right at the hotel where the user will be staying, or at half the cost at a location five miles away from his hotel. The user may select the option that she prefers and then the RPS 220 will send the print job to a printer at the selected location.
  • a user of a mobile device 130 may invoke a software application to specify one or more documents she wants to be printed.
  • Documents may be specified by their origination and/or destination locations. For example, the location of the mobile device 130 indicated by an attachment received via email on the mobile device 130 . Other location information may be specified by an Internet directory or local directory of the print server that will be receiving the request.
  • Another document identifier may include some unique identification number such as an IP address or other type of identification.
  • the mobile device 130 sends a request message to the computer 150 (or RPS 220 ) via a radio interface base station 140 .
  • the mobile device 130 also sends the document to print if accessible via email and/or already stored on the mobile device 130 . If the document is not currently accessible via email or already stored on the mobile device, the computer 150 (or RPS 220 ) may retrieve the document to be printed by receiving a specified location along with the request. Alternatively, the document may be searched for until an exact location of the desired document is found (i.e., by initiating a search on the web 160 , or, by using one of the identification methods described above). The document may be located on a computer 150 (or RPS 220 ), or, any of the computers or storage devices communicatively coupled with the computer 150 (or RPS 220 ).
  • printing may be executed.
  • the printer selection will be determined by numerous input parameters described previously, assuming that the mobile device 130 is near the printer server RPS 220 and/or the corresponding printer(s). If, however, the mobile device is not within a geographic proximity of a printer (i.e., a printer located within a building where the user is present or within walking distance of the user), then the server will perform a search to determine known printers and related locations. Such printer and location information may be located within any of the networks 100 , 200 or 300 , or, may be ascertained via a web search in order to ensure capabilities that satisfy the user requirements. Such a printer (i.e., printer 320 ) may be connected to the RPS 220 via the Internet 330 , and once printing is completed, the user of the mobile device 130 may be informed.
  • the RPS 220 may be capable of automatically determining where the print job output will be available to the user. Once the RPS 220 knows the location of the user, at or around the time when the print job request is scheduled to be completed, it will automatically select a printer near that location. The RPS 220 may inform the user of the location(s) in order to receive authorization to print at that location. The RPS 220 may instead automatically print at the location closest to the user, in a more secure location and/or the printing may also be based on any number of other parameters, such as, a type of printer, a type of document, etc.
  • Obtaining the user location may be derived in many different ways.
  • the user may specify his/her location explicitly.
  • the location may determined by a location detection operation. For example, if a user submits his/her request from a mobile device 130 (see FIG. 1 ), and if the RPS 220 is known to the base station 140 , the radio network will detect the location of the mobile device 130 and provide it to the RPS 220 .
  • the client software PCS application 120 may acquire location information from a built in GPS functionality. The location information may then be submitted along with the job request to the RPS 220 . Upon completion of the job, the user is informed via the RPS 220 that the print job is complete and is also provided with the location that the user may pick up his/her printed material.
  • GPS global positioning system
  • the pickup locations may be determined by automatically determining a user's identity and matching that identity to the corresponding printed material.
  • the PCS application 120 may send the user identification information to the RPS 220 .
  • the user identification information may be sent to a selected printer or computer and/or at the pickup location by the RPS 220 at the time of job submission. In such a case, the printing of the document will begin when the user is within a particular distance of the printer(s).
  • Automatic detection of the user identity at the pick up location may be implemented in many different ways.
  • the pickup may be performed by using a Bluetooth protocol and interface via the user mobile device 130 that authenticates the user when attempting to obtain the document at the pick up location.
  • Another example may include the user of the mobile device 130 making a phone call to an interactive voice response (IVR) system of an office where the printed material may be available.
  • IVR interactive voice response
  • the IVR system may authenticates the user, and allow the release of the corresponding printed material.
  • an information processing request (e.g., document print request) may be performed as described in any of the previous embodiments.
  • the delivery may be based on the automatically determined user's location prior to sending the print job to the printer.
  • the user's location may be identified through the signal received from his mobile device 130 .
  • the RPS 220 (or another device) will then send the processed information (e.g., print job) to a processor (e.g., printer) near the current user's location.
  • FIGS. 8 and 9 illustrate examples of a location determination operation in accordance with an example embodiment of the present invention.
  • a mobile user 835 transmits a request for a print job to a communication entity, such as, a base station 845 .
  • the request is then transferred over the web 825 and to the RPS 820 .
  • the RPS 820 will then request the location of the mobile user 835 from the mobile network 845 .
  • the base station 845 serving the mobile device 835 identifies the location of the mobile device 835
  • a response with the location information is sent back to the RPS 820 .
  • the RPS 820 will then identify the processor device 840 associated with the needed printer 860 near the mobile device 835 , and send the processing job (e.g., print job) to the printer 860 at the appropriate location.
  • the processing job e.g., print job
  • FIG. 9 illustrates an example flow diagram of transmissions conducted between the RPS 820 , the base station 845 and the printer 860 , according to an example embodiment of the present invention.
  • the RPS 820 will send a request to obtain the user's current location information to the base station 845 .
  • the base station 845 may identify the location of the mobile user by using any of a variety of algorithms, such as, GPS, triangulation, power estimation, Cell ID notification, etc.
  • the location will then be sent back to the RPS 820 in response to the request.
  • the RPS 820 may then send the print job to the processor device 840 and/or the printer 860 nearest or near the user.
  • FIG. 11 illustrates one example embodiment of the present invention may include a method of processing data associated with a job request.
  • the method may include determining at least one job specific resource available to fulfill the job request at operation 1101 .
  • the method may also include performing at least one of a prioritization computation, a job specific requirement computation, and a geographical determination computation at operation 1102 .
  • the method may further include selecting at least one appropriate device to fulfill the job request based on the at least one computation operation and the at least one available job specific resource at operation 1103 .
  • the method may also include processing and completing the job using the at least one appropriate device based on the at least one computation at operation 1104 .
  • a computer program may be embodied on a computer readable medium, such as a storage medium.
  • a computer program may reside in random access memory (“RAM”), flash memory, read-only memory (“ROM”), erasable programmable read-only memory (“EPROM”), electrically erasable programmable read-only memory (“EEPROM”), registers, hard disk, a removable disk, a compact disk read-only memory (“CD-ROM”), or any other form of storage medium known in the art.
  • An exemplary storage medium may be coupled to the processor such that the processor may read information from, and write information to, the storage medium.
  • the storage medium may be integral to the processor.
  • the processor and the storage medium may reside in an application specific integrated circuit (“ASIC”).
  • ASIC application specific integrated circuit
  • the processor and the storage medium may reside as discrete components.
  • FIG. 10 illustrates an example network element 1000 , which may represent any of the above-described network components 110 , 130 , 140 , 150 , 220 , 310 , 320 , 340 , 350 , 360 , 1210 , 1240 and 1250 and other like components in similar drawings.
  • a memory 1010 and a processor 1020 may be discrete components of the network entity 1000 that are used to execute an application or set of operations.
  • the application may be coded in software in a computer language understood by the processor 1020 , and stored in a computer readable medium, such as, the memory 1010 .
  • a software module 1030 may be another discrete entity that is part of the network entity 1000 , and which contains software instructions that may be executed by the processor 1020 .
  • the network entity 1000 may also have a transmitter and receiver pair configured to receive and transmit communication signals (not shown).
  • information processing is not limited to printing documents.
  • information processing could refer to transforming audio, video, or multimedia files or data streams, as will be illustrated in other embodiments that follow.
  • the RPS 220 / 820 it is possible for the RPS 220 / 820 to request processing of information at any geographic location and at the most appropriately suited application processing server.
  • the processed data may still be delivered directly to the users device (e.g., mobile device), or, to another device (e.g., laptop) at the same location.
  • FIG. 12 illustrates an example network configuration according to an example embodiment of the present invention.
  • a mobile device 1210 permits a user to select a video, audio, or multimedia file that the user wants to be processed by a particular software application, such as, a data file converter.
  • the file conversion process may convert a file into a specific format, for example, a format suitable to be used by a user's personal player device (i.e., a MP3 player and/or personal video player, such as, an Ipod®).
  • the user may desire to have that information downloaded and saved to the user's personal device.
  • the content may be a television show that is stored on a website, such as, Youtube® or Hulu®.
  • the user may desire for the data to be transferred to her personal device.
  • the data content desired by the user may be located on a particular multimedia website server (e.g., Hulu's® content server 1240 and/or Youtube's® content server 1250 ).
  • the content may be downloaded over the Internet 1230 , which is transferred to a base station 1220 and delivered to the user mobile device 1210 .
  • the user's mobile device may be a mobile station that is capable of storing, playing and reformatting the downloaded data.
  • the user's mobile device 1210 may be used as a computer readable storage medium to store the downloaded data until the data may be transferred to the user's personal device.
  • the data that is discovered on these remote website servers may not be in the proper format desired by the user.
  • additional processing and location transfers may be required before the content is properly accessible to the user.
  • the need for such processing arises in different situations. For example, when the user plans a relatively long trip by car, bus, train, and/or by air, the user may desire to create his/her own entertainment program(s).
  • Another example is of a user who wants to listen to selected audio files or music while exercising. Of course, there are many other examples where such multimedia files or data stream processing will be implemented.
  • an MP3 player may play files in any of a .MP3, .FLV, .AVI, or, other data file formats.
  • the software itself or, the user may perform a selection of a specific data format.
  • the software application may provide options for the user to compile an “entertainment program” out of audio, video, multimedia clips and/or files that may be found on the Internet by doing a web search (e.g., via a Google search), or, at a specific web site.
  • the data files may be located on the user's LAN or her application device, mobile device, computer, etc.
  • FIG. 12 is a network diagram of a mobile phone 1210 connecting to media servers 1240 and 1250 via the Internet 1230 .
  • the search may be performed on websites which offer free access to the desired media content (i.e., television shows).
  • the user may be prompted with the option of downloading files, clips, and/or data streams for a fee at a different website or server location.
  • FIG. 13A illustrates an example of a user selecting a search option, according to an example embodiment of the present invention.
  • a graphical user interface (GUI) window is illustrated that permits the user to enter a search query.
  • the search is “The Office Season 2”, which is an example television show that the user may be seeking to obtain a copy of for her mobile device.
  • the software application will prompt her to select one or more of all the available episodes, and to specify the order in which she desires to compile the entertainment program. If a prior history of video program creation exists, the software application may prompt the user to add more episodes, which have not yet been compiled or placed in the current entertainment program. For instance, if the user has selected episodes 1, 2, and 3 at a previous time, then the software may suggest episodes 4, 5 and 6 also be added to the current entertainment program. The user may also alter the selection as desired.
  • the window includes a text area where the user may enter a search string of content that is desired to be searched.
  • the user has the option to select the “Submit” button to send the query to the server for processing.
  • the user may also press the “Clear” button to clear the search field, or, the user may press the “Cancel” button to remove the window from the display.
  • FIG. 13A represents one example search option.
  • One skilled in the art will recognize that there are many different indications that may be added to a media search window without deviating from the scope of the current invention.
  • FIG. 13B illustrates an example GUI representation of a media application result window, according to an example embodiment of the present invention.
  • This window may be displayed to the user once the query has been submitted and the system returns a response.
  • the original query is displayed “The Office Season 2.”
  • the grid in the middle of the media application results window of FIG. 13B depicts the results of the user's search.
  • This grid is scrollable, and may be controlled via the scrollbar seen on the right side of the grid.
  • Inside the grid there exists five columns, each displaying the respective parts of each of the results of the query (e.g., Title, Season, Episode, Location, Status).
  • the last column “Status” represents the current status of the particular result generated.
  • the first result, “Episode 2” has a present status of “Previously Received”, which indicates that “Episode 2” has previously been received by the current user.
  • Episode 3 has a status of “Stored”, which indicates that the user's device may not have enough memory to store the content.
  • the content will automatically be downloaded in order (based on episode number or the last viewed episode) when enough memory is available. The user may be alerted to the download when the memory becomes available.
  • the final three results of FIG. 13B each have a “Submit” button in the status column. When this option is selected, the particular result will be queued until the content is ready to be received by the user. There is also a “Done” button on the bottom of the media application results window that, when selected, will remove the window from the display. If necessary a message will be sent to the server to search for any additionally needed content.
  • the GUI representation of FIG. 13B illustrates an example only. One skilled in the art will recognize that there are many different indications that may be added to the proposed GUI media application results window without deviating from the scope of the current invention.
  • FIG. 13C illustrates another view of the media application results window, according to an example embodiment of the present invention.
  • the first “Submit” button has been selected by the user for the result of “Episode 4.”
  • the “Submit” button has been removed, and the text “Scheduled” has been added indicating to the user that the current result are scheduled to be received by the server for processing.
  • the selection of the number of episodes and their respective format may be determined automatically based on the available storage space and desired quality of the entertainment program. For example, the user may be offered a choice of having their content encoded at any of a variety of different bit rates, such as, very good quality, good quality, low quality, etc. Additional options may include changing the amount of the user's storage space, which may also be determined automatically by the software application. For example, a determination may be made based on 50% of the total available hard drive space on the user's device.
  • the software application will suggest formats that will fit the user's requirements. If none of the formats match the user's device capabilities, such as, a format that is not currently installed on the user's machine or requires a higher processor speed, then the user may be prompted to change her initial format selection and/or reduce the number of episodes selected and/or lower the desired quality of video, etc.
  • All the input information items may be divided into groups called information categories. Each category may carry a certain weight that may be used when prioritization of a job request is implemented. The division into different categories will be performed at the application processing server and can be preconfigured. Once the requirements are made consistent and finalized, the software application may form a request and sends it via radio link from the mobile device to the base station, which will forward the request to the request processing server (RPS) 220 communicatively coupled with the base station 140 via LAN 100 (see FIG. 1 ).
  • RPS request processing server
  • the mobile device Before sending the request the mobile device may find a specific location for each file/clip on the Internet. For example, episodes 1 and 2 may be downloaded from the website Hulu®. The next episode may be downloaded from Youtube®, etc.
  • the mobile device could also select to delegate this search to the RPS 220 , in an effort to save time. In that case, the RPS 220 may do the search itself or send the request to certain other specialized devices that are capable of recognizing and finding the exact location of the desired multimedia files.
  • the RPS 220 either does the file/stream conversion locally (if it is configured to provide such a capability), or, alternatively, the processing task is sent to a different application server, such as, 340 over the LAN, or, 350 over the Internet 330 (see FIG. 1 ).
  • the RPS 220 When the RPS 220 receives a high volume of requests of users competing for limited specialized application server resources, the RPS 220 will prioritize requests based on information received from each user. The prioritization may based on a utility function which evaluates whether the user is using free file conversion services or is paying a fee for the services. Naturally, the users who pay for the service will be given a higher priority (utility) value.
  • the RPS 220 To calculate the priority, the RPS 220 first maps each of the inputs provided in each of the information categories to their corresponding numerical value. Next, the inputs are multiplied by a weight.
  • the weights can be either pre-configured and remain the same between the application server maintenance windows, or, they can be dynamically adjusted depending, for example, on the availability of application servers with certain capabilities, the importance of the job requests from certain users, etc. Then all the multiplied pairs of numbers are added (and normalized, if necessary) and adjusted (divided) by the cumulative utility factor (CUF).
  • CUF cumulative utility factor
  • the RPS 220 receives orders from various sources and creates a unique identifier (UI) for each user submitting a job request.
  • UI unique identifier
  • Each user's UI is a combination of items which may include, for example, the user's department, their location, etc.
  • N is a configurable parameter for each RPS and can include one or more of minutes, hours, days, weeks, months, years, etc.
  • the RPS 220 will maintain a record of the number (K) of jobs submitted by the user and their respective priorities.
  • priority values may be combined into the CUF computed as 1 plus the sum of K values of the individual job's utility factors UFK (where UFK is the corresponding job's priority divided by N and multiplied by the number of days before expiration of the N-day period from the present day, assuming the period being used is days).
  • the priority mechanism may increase a contribution level of the most recent jobs to the CUF. For example, jobs processed the same day they are submitted will contribute their full priority value, while the jobs submitted N/2 days ago, will contribute only half of their priorities, and jobs submitted more than N days ago, would not be considered at all.
  • the application program will evaluate the required time needed to process files/data streams and schedules jobs so that they may be completed by the desired time specified by the user. If the application program calculates that the desired time is not a possibility, then the job may simply be delayed and the user will be notified.
  • the RPS 220 will notify the user.
  • the RPS 220 will instruct the application server that has been selected to perform the data processing (i.e., file conversion) to send the file back to the user, or, back to itself, so that it may check the file for data integrity (e.g., right size, right format, etc.) and forward it to the user's device.
  • data processing i.e., file conversion
  • data integrity e.g., right size, right format, etc.
  • the RPS 220 will send the file to that address.
  • processing may be performed when a recurring story line is occurring at a particular portion of a song or video.
  • the processing may include auditing a particular a “recurring story line” phrase that may be included at one or more times during the video and/or song.
  • a message may be sent to the user indicating that a match has occurred, and the portion of the media containing the matching phrase is included in the message.
  • a video for the television show “The Office” often has a recurring line in many of its episodes, such as, “That's what she said.”
  • Another example would be a video for the show “Family Guy”, which often has recurring instances of the character “Stewie” pronouncing the letter “h” in certain words such as “Wil Wheaton” or “Cool Whip.”
  • various songs by artists may have a “recurring story line”, such as, war, money, God, love, animals, etc.
  • FIG. 14A illustrates an example of the media application results window with a recurring story line query displayed, according to an example embodiment of the present invention.
  • the user may have the option of selecting the “Submit” button to enable the video monitoring feature to review the content of the video and alert the user when the video encounters a matching story line. If the user selects the “Clear” button, the query field will be cleared. If the user selects the “Cancel” button, the recurring story line window is removed.
  • FIG. 14D illustrates the results of finding a match for the recurring story line.
  • the match is displayed and the user is provided with the option to watch the video.
  • the speech in the video may be converted to text so that the user may read the matching phrase based on the conversion.
  • Speech-to-text functionality is commonplace and may be used to monitor the voice of the video and transcribe words based on the audio track of the video.
  • FIG. 14A illustrates a recurring story line message sent to the user when a match is found in the song or video.
  • the user has three buttons on the bottom of the window. If the user selects the “Play” button, the portion of the video or song will play, then the message will be displayed again. If the user selects the “Download” button, the user will have the option to download that portion of the video or song to her device. If the user selects the “Cancel” window, the recurring story line window is removed.
  • This cross-platform auditing of “recurring story line” functionality incorporates the linking of seemingly dissimilar information. For instance, the user may be alerted that an artist whose song they downloaded has a song where the words “Cool Whip” are used, based on the original search for such a term in the Family Guy episode.
  • FIGS. 15A and 15B illustrates an example flow diagram of the procedure of the data file processing algorithm, according to an example embodiment of the present invention.
  • the algorithm may be executed on the user's mobile device.
  • the user may submit a request to transfer multimedia files and clips.
  • the request will be passed along to the RPS 220 .
  • the procedure begins by the user providing her information and a list of video and/or other data requested to be transformed at operation 1501 .
  • a decision is made at operation 1502 as to whether the request information is comprehensive (i.e., are all episodes specified?). If the request is not comprehensive, operation 1503 fills in the missing information based on the user's prior history by suggesting certain episodes or other information for the user to select at operation 1503 . If the information is comprehensive operation 1504 proceeds accordingly.
  • the files and/or data streams are located on the web (i.e., at content websites), free sites may be tried first and then pay sites may be tried second. The user is notified of the results and is given the option to accept the content providing options and/or pay if the third party content provider websites require prior payment.
  • the amount of storage space required is estimated based on the requested format, run time of the content file and quality requested by the user. A decision is then made as to whether there is enough storage space at the destination location (i.e., the user's device) at operation 1506 . If there is not enough storage memory available, the user is prompted to select a different format or fewer items in the list. The list may be shortened by default and if there is only one item in the list, then the format and quality may be reduced to lower the amount of storage space required at operation 1507 .
  • RPS location is known at operation 1508 . If not, the RPS that is available may be suggested to the user or the user may specify an RPS to perform the data processing at operation 1509 . If the RPS location is known, then a detailed request is sent to the default RPS so that it may perform the processing based on the information included in the request at operation 1510 in FIG. 15B (a continuation of FIG. 15A ).
  • messages are listened to from the RPS to check the status of the file processing. A decision is then made as to whether a successful request completion notification from the RPS is received at operation 1512 . If not, then listening for new messages is repeated until an update is discovered. If the completion notification has been successfully completed then a successful job completion message is sent to the user at operation 1513 .
  • FIG. 16 illustrates a flowchart of the algorithm running on the RPC when a file transfer and related data processing request is received.
  • a request is received for transferring a specified list of files and/or clips and their suggested location, and requested file format and/or size at operation 1601 .
  • the availability of files and/or data streams are confirmed at their specified locations at operation 1602 and the ability to do file and/or data stream conversions locally is evaluated at operation 1603 .
  • the files and/or data streams are located on the Internet.
  • operation 1605 determines whether there are application server(s) needed. If not, operation 1606 determines all files and/or data streams are transferred locally, and operation 1607 notifies the user of the result and sends the files (if applicable) to the user. Alternatively, if the application servers are needed, operation 1608 sends the collected information and file and/or data stream processing requests to the application server. Operation 1609 then saves the information sent in the request in a temporary storage memory location. Next, the application waits for a response (failure or success) from the server at operation 1610 .
  • CUF cumulative utility factor
  • the CUF is computed as “1” plus the sum of K values of the individual job's utility factor (UFK).
  • the UFK is the corresponding job's priority divided by N and multiplied by the number of days before expiration of the N-day period from the current day (i.e., today). In this example, it is assumed that the period of interest is days.
  • Table 4 illustrates an example of a table depicting the calculation of the weights for particular media files, according to an example embodiment of the present invention.
  • a job priority for a paid service will be greater, for example, since the utility assigned to category one information for the user with a paid service should be greater than an option for the user with a free service.
  • the unadjusted utility would be different.
  • the calculation and adjustment to the CUF is performed in a manner similar to the previous examples (see calculations for Tables 1 and 2).

Abstract

A method and apparatus are disclosed that provide processing data associated with a job request. In one example, the job request may be a printer job to print a particular document based on predefined settings. The data processing operation may include determining at least one job specific resource available to fulfill the job request, and performing at least one of a prioritization computation, a job specific requirement computation, and a geographical determination computation. Additional operations may include selecting at least one appropriate device to fulfill the job request based on the at least one computation operation and the at least one available job specific resource, and processing and completing the job using the at least one appropriate device based on the at least one computation.

Description

CROSS REFERENCE TO RELATED APPLICATIONS
The present patent application is related to provisional patent application No. 61/317,741, filed Mar. 26, 2010, entitled System and Method for Analysing Data Records Utilizing a Touch Screen Interface, and provisional patent application No. 61/317,744, filed Mar. 26, 2010, entitled Touch Screen Commands, and provisional patent application No. 61/317,793, filed Mar. 26, 2010, entitled A Method for Touch Detection in Touch Sensitive Screens, and provisional patent application No. 61/317,800, filed Mar. 26, 2010, entitled Touch Sensitive Screens Utilizing History and a Preview, and provisional patent application No. 61/317,812, filed Mar. 26, 2010, entitled Repetitive Touch Combining Method, and provisional patent application No. 61/317,827 filed Mar. 26, 2010, entitled Touch Screen Accuracy, the entire contents of each of these applications are incorporated by reference herein. The instant patent application is related to Ser. No. 12/753,163 entitled Systems and Methods for Printing a Document From a Mobile Communication Device, and Ser. No. 12/753,167 entitled Method and Apparatus of Compiling Multimedia Files and Related Data Retrieval Operations, and Ser. No. 12/753,180 entitled Systems and Methods for Managing the Execution of Print Jobs, filed on even date herewith, the entire contents of each of these applications are incorporated by reference herein.
TECHNICAL FIELD OF THE INVENTION
This invention relates to a method and apparatus of providing information processing, such as, printing documents and/or converting audio, video, and multimedia files with computer systems.
BACKGROUND OF THE INVENTION
Computer networking systems that include various data processing elements are essential for processing large amounts of data, and automated processes related to the exchange of information. Examples of tasks related to these data processing activities may include printing documents, converting multimedia files or data streams into a desired data format, and delivering certain data content to a user.
Subsets of video, audio, and multimedia files may be located on the user's computer, the Internet and other data storage locations (i.e., such as websites that specialize in content, for example, Youtube® or Hulu®). The user may desire to convert these files to a different format, size and may also desire to deliver those converted files to a specific network location.
Recent changes made to software tools allow users to produce documents and multimedia files with very specific details tailored to each particular user. For example, individual users may want to have certain files processed (e.g., printed), and the results delivered to a location where the user will be the next day. In large and medium sized organizations, the amount of printed information is substantially large, and often it is necessary to separate documents which must be printed quickly with special requirements (i.e., in color poster format) from those that can be printed at a later time (i.e., black and white data specifications that are not likely to be read at all). Any of these tasks can be accomplished through a number of simple but time consuming operations, which can make the process ineffective. Information processing resources may also be shared (e.g., printing, server applications, etc.) more effectively so that costs are kept to a minimum.
Information processing costs can be estimated by assessing first the cost of processing small subsets of information. For example, when attempting to draw (or print) a complicated shape, it is helpful at first to represent the form with a set of primitive shapes. Almost any form can be represented by some combination of the cube, sphere, cylinder, and cone, which are called drawing primitives. Several types of technologies currently exist that deal with problems related to printing documents.
In one example, a method for analyzing the execution times of drawing primitives may be performed. The method allows the host computer to determine whether the printer connected to the host computer will be able to render drawing primitives in real-time. Additionally, the cost metrics associated with printing drawing primitives are also measured and are used to determine whether such printing of a document can be accomplished in real-time.
However, processing information (i.e., printing) encounters additional challenges when being implemented in a multi-computer environment with shared printing resources. For instance, in a large organization a number of computer users will be sending print jobs to only a few printers available for printing. Each print job generally has unique requirements, such as, time during which the print job must be completed, color quality (e.g., gray scale, black and white, or full color), print size and format, etc. These and other unique requirements make the task of selecting an effective printing strategy a necessary part of optimizing network resources.
Due to the increased cost savings sought by many organizations using printing services, utilizing a method for providing an effective printing computer system is apparent. Similar challenges related to processing and delivering multimedia files to users of network services are also encountered when dealing with larger data networking systems.
SUMMARY OF THE INVENTION
One example embodiment of the present invention may include a method of processing data associated with a job request. The method may include determining at least one job specific resource available to fulfill the job request. The method may also include performing at least one of a prioritization computation, a job specific requirement computation, and a geographical determination computation. The method may further include selecting at least one appropriate device to fulfill the job request based on the at least one computation operation and the at least one available job specific resource, and processing and completing the job using the at least one appropriate device based on the at least one computation.
Another example embodiment of the present invention may include an apparatus configured to process data associated with a job request. The apparatus may include a processor configured to determine at least one job specific resource available to fulfill the job request, to perform at least one of a prioritization computation, a job specific requirement computation, and a geographical determination computation, and to select at least one appropriate device to fulfill the job request based on the at least one computation operation and the at least one available job specific resource. The apparatus may also include a transmitter to transmit the job to the appropriate device, and the appropriate device processes and completes the job based on the at least one computation.
BRIEF DESCRIPTION OF THE DRAWINGS
FIG. 1 illustrates an example network configuration according to an example embodiment of the present invention.
FIG. 2 illustrates an example flow diagram according to an example embodiment of the present invention.
FIGS. 3A-3C illustrate example graphical user interfaces according to an example embodiment of the present invention.
FIG. 4 illustrates another example flow diagram according to an example embodiment of the present invention.
FIG. 5 illustrates an example flow chart according to an example embodiment of the present invention.
FIG. 6 illustrates another example flow chart according to an example embodiment of the present invention.
FIG. 7 illustrates another example flow diagram according to an example embodiment of the present invention.
FIG. 8 illustrates another example network configuration according to an example embodiment of the present invention.
FIG. 9 illustrates yet another example flow diagram according to an example embodiment of the present invention.
FIG. 10 illustrates an example networking device according to an example embodiment of the present invention.
FIG. 11 illustrates an example method according to an example embodiment of the present invention.
FIG. 12 illustrates an example network diagram according to another example embodiment of the present invention.
FIGS. 13A-13C illustrate example screenshot windows of the GUI used to perform a search according to another example embodiment of the present invention.
FIGS. 14A and 14B illustrate other example screenshot windows of the GUI used to perform a search for a recurring story line according to another example embodiment of the present invention.
FIGS. 15A and 15B illustrate a single flow diagram of an algorithm application on the user side according to another example embodiment of the present invention.
FIG. 16 illustrates another flow diagram of an algorithm application on the server side according to another example embodiment of the present invention.
DETAILED DESCRIPTION OF THE INVENTION
It will be readily understood that the components of the present invention, as generally described and illustrated in the figures herein, may be arranged and designed in a wide variety of different configurations. Thus, the following detailed description of the embodiments of a method, apparatus, and system, as represented in the attached figures, is not intended to limit the scope of the invention as claimed, but is merely representative of selected embodiments of the invention.
The features, structures, or characteristics of the invention described throughout this specification may be combined in any suitable manner in one or more embodiments. For example, the usage of the phrases “example embodiments”, “some embodiments”, or other similar language, throughout this specification refers to the fact that a particular feature, structure, or characteristic described in connection with the embodiment may be included in at least one embodiment of the present invention. Thus, appearances of the phrases “example embodiments”, “in some embodiments”, “in other embodiments”, or other similar language, throughout this specification do not necessarily all refer to the same group of embodiments, and the described features, structures, or characteristics may be combined in any suitable manner in one or more embodiments.
In addition, while the term “message” has been used in the description of embodiments of the present invention, the invention may be applied to many types of network data, such as packet, frame, datagram, etc. For purposes of this invention, the term “message” also includes packet, frame, datagram, and any equivalents thereof. Furthermore, while certain types of messages and signaling are depicted in exemplary embodiments of the invention, the invention is not limited to a certain type of message, and the invention is not limited to a certain type of signaling.
Enclosed is a method, apparatus and computer system addressing certain optimizations in information processing. The examples may be extended to other types of information processing (i.e., other than printing) in similar data networking environments. For example, when there are multiple users competing for limited resources. Some example information processing configurations may include converting media files and/or data streams into files of a specific format and size. User specific information collected from the user during the submission of the information processing request may be used to select a most appropriate server, the order of priority of requests received, etc. Illustrations of such cases are provided in detail below.
Example embodiments may include identification of information processing priorities, and selecting the most optimal processing strategy in the multi-computer (i.e., application server) system with shared limited resources. User input of processing requirements may be provided to the computer system (i.e., application server) through an automated interface. These processing requirements and additional data related to the user may be used to determine information processing priority. An initial selection determination process may provide selecting a device based on specified requirements. Then a target device may be identified based on an estimated processing load so that the total load is shared between the multiple devices to reduce the cumulative processing cost.
The enclosed processing methods are applicable to various types of information processing. Some example processing methods include, but are not limited, to printing documents in a localized networking environment, printing documents at any of a multiple geographical locations, conversion of multimedia files and or data streams into a specified data format, creating an entertainment program from specified media clips, etc.
FIG. 1 illustrates an example of a network connecting various mobile devices, computers, storage devices, and other information processing devices (e.g., printers, application servers, etc.), according to an example embodiment of the present invention. Referring to FIG. 1, the system includes a plurality of devices on a local network 100 that includes type-1 devices. The system also includes a network 200 that includes type-2 device(s), and a network 300 that includes type-3 devices.
Referring to the type-1 device 100, those devices include a user computer (UC) 110, a processor device client software application (PCS) 120 running on the user computer 110, or, on a mobile device 130 communicating to the network via a base station 140. Other type-1 devices include a computer 150 with specialized software on the local network 100, or a computer 170 connected to the local area network through the Internet 160.
The type-2 devices are operating on a separate network 200. Such a network may include a local area network (LAN), wide area network (WAN) or a network located across the web 160 from the network 100. Such a network 200 includes a type-2 device(s), such as, a request processing server (RPS) 220 (i.e., printer request server) which receives print job requests from the type-1 devices (i.e., PCS 110) on the network 100. Upon receiving a request, the RPS 220 includes priority and resource allocation software (PRAS) that is operating on the request processing server (RPS) 220. In addition, the RPS 220 may also include a pool of processors that correspond to a pool of printers 300, or, type-3 devices.
In operation, a particular processor associated with the RPS 220 and the PRAS may perform a selection operation to select a particular printer (i.e., 310) among the type-3 devices to perform a print operation initiated by the user computer 110. that is being selected by the PRAS 220. When a user instructs the PCS application 120 to print a document, the PCS application 120 will automatically read information about the user stored in a user login profile. Additional information may be provided by user input. The PCS application 120 will send all the necessary information and a print job request to a RPS 220 (e.g., printer server). The printer server 220 may be unique and have its own network identity and address. However, the print server 220 may be incorporated into any of a plurality of other computing devices comprising a computer readable storage medium (i.e., memory) and at least one processor. In the event that there are multiple RPSs or print servers 220 operating together in a print server pool, then those print servers 220 may operate together synchronously and may fully share their internal resource management information.
FIG. 3A illustrates a graphical user interface (GUI) representation that the user may observe when requesting a print job, according to an example embodiment of the present invention. Referring to FIG. 3A, the requestor of the print job (i.e., a user associated with the UC 120) may be able to view her own personal information in the first box on the left of the print window. This information may be provided from the system (i.e., the user computer 110), and may be accessed when the requestor of the print job has been identified.
The box in the middle of the GUI and the box on the right of the GUI display illustrate example print options that the user may utilize to setup the options of the print job. Below the boxes, are two more options (i.e., radio buttons) that provide the user with additional options allowing the user to indicate whether the print job is to be sent to the printer that will execute the job the fastest, “Quickest Printer”, or the printer that is designated as the nearest to the user's workstation, “Nearest Printer.”
The GUI has two additional buttons on the bottom of the GUI to complete the functionality of the print window. The user may select the “Print” button, which will send the print job to the RPS 220, and the window will be removed from the screen. Pressing the “Cancel” button will only remove the window from the screen. The GUI representation reflects an example only of the types of options that are available to the user. One skilled in the art will recognize that there are many different options that may be added to the proposed GUI print window without deviating from the scope of the current invention.
FIG. 3B illustrates another example of the print window, according to an example embodiment of the present invention. In this example, the pull-down “Minute” component of the “Time Frame” option has been selected. This functionality allows the user to select between “Minutes”, “Hours”, “Days”, and “Weeks” when setting the time frame that the user desires to have the print job completed. By offering these additional time frame options, the print server and/or printer devices may be capable of offering increased flexibility and capacity when attempting to prioritize and/or process multiple print jobs.
FIG. 3C illustrates another example of the print window, according to an example embodiment of the present invention. In this example, a GUI representation of a “Printer Status” is illustrated as a separate window. Such a window GUI may be displayed after the user has performed the necessary selection operations in the GUI of FIG. 3A and/or 3B. The window GUI in FIG. 3C may be utilized to display the status of a print job from the RPS 220, once the user has requested a print job. In the window, the print job identifier is displayed in the “Print Job” text field. This identifier may be created by a print server or RPS 220 upon the creation of a requested print job. The next text field depicts a “Position in Queue”, which depicts the current queue location of the current print job.
The user may select a “Refresh” button at the bottom of the “Printer Status” window to query the queue from the printer system. The “Position in Queue” will be updated with the current queue location (i.e., “3”). The user may also select the “View Queue” option to send a request to the printer system to display the current queue (not shown). This option will provide the user with details regarding the other print jobs that have been submitted (e.g., number of jobs, file size of jobs, color printing vs. black and white printing jobs, which users have submitted jobs, etc.) The user may instead select the “Cancel” button to remove the window from the display screen.
FIGS. 2 and 4 illustrate example processing diagrams that include data message transfers, according to example embodiments of the present invention. Referring to FIG. 2, an example of a successful print job operation being conducted is illustrated. The user's computer 201 may be used to store all print-related information entered by a user or associated with a print job. That print-related information may be saved in a file and stored in a memory storage on a computer readable storage medium of the user's computer 201. Some or all of that information may be transferred to a request processing server 202 during a request for a print job sent from the user's computer 201.
The request processing server 202 will utilize some or all of the information transferred from the user's computer 201 to compute a print job priority and to select a printer appropriate for the job. The request processing server 202 processes the print job information prior to sending the print job to a particular printer 203. As illustrated in FIG. 2, the printer 203 may be limited to providing a simple confirmation completion notification when the print job is successful. Upon a successful print operation, the user's computer 201 may then discard the stored information.
FIG. 4 illustrates a print scenario where the user's submitted print job is not successful after a first attempt. The first few message transfer operations are the same as those illustrated in FIG. 2. However, instead of receiving a completion confirmation from the printer 203, the printer 203 instead transfers an “Error” or “Delay Notification” to the request processing server 202, which, in turn, transfers that message to the computer 201. The user's computer may be setup to automatically wait a predefined amount of time and then resubmit the print request and the user's predefined information to the request processing server 202. The resubmission operation may be performed multiple times until a successful completion notification is received at the user's computer.
Referring to FIG. 1, the processor device client software application (PCS) 120 running on the user computer 110, or, on a mobile device 130 may operate by collecting information which may be split into several different categories. The first information category collected by the PCS 120 may include, for example, a user ID, user department, user rank in the organization, the project that the user is working on, the type of work the user is performing, etc. Typically such information will be stored in a user profile file at the user's computer 110 and/or mobile device 130, which may be automatically retrieved from the PCS 120.
The remaining categories of information may require direct input from the user and may not be predefined user information such as the first information type. Direct input from the user may be accomplished via a command line interface, graphical user interface (GUI), or, via specific times when the PCS application 120 is executed. A second type of information may include, for example, a desired color option (e.g., gray scale, black and white, or full color) of the printed document, layout of the printed document, print options, such as, multiple pages on one page, two-sided print or single-side print, etc. A third category of information may include, for example, a user perceived urgency of print job completion, such as, an expected pick up time (defined by hours, minutes or seconds) after a job submission.
A fourth category of information may include, for example, a type of device that sent the request (i.e., the user's computer, mobile station, etc.), the type of device that received the request, location of the device, etc. In one example of embodiments of the present invention, the device may be identified as a location of the user and his or her proximity to an available pool of printers. For instance, in one embodiment, a location may be identified as one of several zones where each individual zone (i.e., zone-3) corresponds to a certain range or distance (i.e., 10-100 miles) from the RPS 220.
A fifth category of information may include, for example, a preference of a particular printing device selected by the user. Examples may include a laser printer, a color laser printer, an ink-jet printer, a dot-matrix printer, a plotter, etc. The above listed information categories are not exhaustive and may be easily extended to differentiate print job requests based on further alternative attributes.
Complete and/or partial information collected by the user's computer 110 and the related PCS application 120, and the print document or print file including the corresponding print job request information may be sent to the RPS 220. Upon receiving the print file and any print-related information, the RPS 220 may perform various tasks, and, may perform those tasks in parallel. One example, may include a first task executed by the RPS 220 to calculate a priority of the print job sent by the PCS application 120. To calculate the priority, the RPS 220 may execute software which maps each of the data input provided in the information categories one, two, and three to a corresponding numerical value. Next, those numerical values may then be multiplied by a particular weight.
Weights may be either pre-configured, or, they may be dynamically adjusted depending, for example, on the availability of printers that have certain capabilities, the importance of the project being worked on by the user, etc. Then all the multiplied products are summed (and normalized, if necessary) and adjusted (divided) by a cumulative utility factor (CUF) to provide a simply numerical value. The CUF is a fairness enforcement mechanism and is described in detail below. The RPS 220 may utilize the numerical values to perform a print operation. Such a printing operation may be based on a comparison of the priorities of the present print job with other currently pending print jobs currently in the queue.
In order to prevent a single user from continually receiving the highest priority on his/her print service requests a fairness mechanism may be implemented, according to embodiments of the present invention. In operation, the RPS 220 may receive orders (i.e., to process a print job, file transformation, etc.) from various sources, and create a unique identifier (UI) for each user submitting a job request. Each user's UI may be a combination of items including but not limited to a user ID, a job department, a location, etc. These components of the UI may be processed and provided by the PCS 220.
In one example, each user that has submitted at least one job in the last N time periods (where N is a configurable parameter for each RPS 220 that may include one or more minutes, hours, days, weeks, months, years, etc.), the RPS 220 will maintain a record of the number (K) of jobs submitted by the user and their respective priorities. These priority values may be combined into the CUF, which is computed as “1” plus the sum of K values of the individual job's utility factor (UFK). The UFK is the corresponding job's priority divided by N and multiplied by the number of days before expiration of the N-day period from the current day (i.e., today). In this example, it is assumed that the period of interest is days.
Continuing with the above-noted example, the intent may be to increase a contribution level of the most recent jobs to the CUF. For example jobs processed the day that they are submitted (i.e., today) will contribute their full priority value, while the jobs submitted N/2 days ago, will only be considered with half of their respective priorities. The jobs submitted more than N days ago, would not be considered at all.
FIG. 5 illustrates an example flowchart of the operations performed by the printer server, according to an example embodiment of the present invention. Referring to FIG. 5, a first operation begins by receiving user information and a print job request, and a corresponding file and/or document will be located and printed if necessary at operation 501. Next, a print job priority will be determined at operation 502 and a pool of printers “A” will be selected that are capable of satisfying the time delay budget to process the job based on the priority at operation 503. Concurrently, another operation may be performed to determine another pool of printers “B” without performing any priority calculation at operation 504.
Another pool of printers “C” may also be determined that satisfy the both the conditions of the first set of pools “A” and “B” at operation 505. A decision is then made as to whether the pool of printers “C” is an empty set (i.e., no printers available in pool “C”) at operation 506. If there is at least one printer in pool “C”, then the printer with the minimum load will be selected in pool “C” and the print job will be scheduled for that printer in operation 507. The printer will then send a notification of success or failure at operation 508. Alternatively, if there are no printers in pool “C”, the user will receive a failure notification at operation 509. Operation 510 confirms success of the print job being executed. If there was a failure then the user is notified of an error, and if the print job was successful the user is notified of the successful job completion at operation 511.
As noted above, the RPS 220 may perform a first task of calculating the priority of the print job submitted. A second task may also be performed to include the identification of printers that are capable of performing the desired print job. There may be a plurality of printers satisfying such a selection criteria. The RPS 220 may evaluate a current load on each of the pre-selected printers. Load may not be defined based only on a number of print jobs currently scheduled or being executed. Instead, load may also include a total real-time estimate that it would take for all the currently scheduled jobs to be completed by a particular printer. The RPS 220 may assign a new print job to a printer with the lowest load, so that an overall load of the entire processing networking system is kept to a minimum.
The RPS 220 may schedule print jobs in such a manner that an expected completion time of a submitted print job does not exceed the desired pick-up time specified by the user. If such scheduling is not possible, the user may be informed of the expected delay and will be given an option to cancel his print job. Upon completion of the print job, the user will receive a notification. These messages are exchanged between the printer and the RPS 220, and, between the RPS 220 and the PCS application 120 at the user computer 110.
In one example, the PCS application 120 of the user computer 110 may receive a failure notification from the RPS 220. In such a case, the PCS application 120 may analyze the failure reason specified by the RPS 220 and try to make an adjustment to the original request, re-send the request, and/or select another RPS server that may be available.
One example failure reason may include, for example, incompatible requirements, such as, requirement “A” is incompatible with requirement “B.” For instance, a user request for a two-sided print job on a dot-matrix printer, which is incapable of two-sided printing. Incompatibility issues may also be due to limited resources available to the RPS 220. For example, a user may request a full color plotter printout. However, only a black and white plotter may be available to the RPS 220 in order to complete the job in time. In such a case, the user may be asked to adjust her requirements, and the PCS 120 may make these suggestions to the user for troubleshooting assistance.
Another example failure reason may include the RPS 220 resources being unavailable before a print job was completed and/or a loss of connection with the RPS 220. In this case, the PCS application 120 may inform the user and suggest re-submitting the job to another RPS. In any case, some time will have passed since the last request, and, thus, the user may decide to change the requirements or even cancel the request altogether. If the user does not respond immediately, RPS 120 will wait for a response for a predetermined amount of time, and then may re-submit the job to the next best RPS 220 itself without any user input.
Yet another example failure reason may provide only part of the job being completed and the rest of the job cannot be completed for any of the reasons specified above and/or some other reason. In that case PCS 120 would inform the user and suggest to complete the job without re-doing what was already printed. If the user does not respond immediately, RPS 120 will wait for response for pre-determined time, and then re-submit the remaining job to the next best RPS 220 it can locate.
The PCS application 120 will maintain in a memory storage of the user computer 110 all the necessary information and corresponding data files that were sent to the RPS 220. This provides an optimized data retrieval mechanism in case of a needed re-submission needed. For instance, if an error is received from the printer and forwarded from the RPS 220 to the user computer 110. Also, assuming a delay notification message is received, the PCS application 120 will have the option of canceling the print job and re-submitting the job at a later time. Alternatively, the job may be sent to a different print server, in case there is a different pool of printer resources available.
The PCS application 120 will discard the stored print job information upon receiving a successful job completion notification and/or decision to cancel the print job.
One example of a priority measurement is illustrated in Table 1, according to an example embodiment of the present invention. Referring to Table 1, a list of recent jobs submitted by the user with a user index (UI)=X in the last N (N=5) days is illustrated.
TABLE 1
Days Left Until
Job Job Expiration of
Number Priority Five-Day Period
376 12 1
427 10 3
501  5 5
Given the above-noted values of Table 1, the cumulative utility factor (CUF) would be=1+12*(1/5)+10*(3/5)+5*(5/5)=14.4.
In another example, Table 2 provides information on a current job submitted by the user with ID=X.
TABLE 2
Information Numeric Value*
Category Item Value Weight Weight
Category One User 1 2 2
Department
Project
1 5 5
Number
User Job
1 1 1
Complexity
. . . . . . . . . . . .
Category Two Color Option 2 3 6
= Full Color
Page Layout = 1 1 1
Landscape
. . . . . . . . . . . .
Category Three Urgency 0 1 0
Level = Low
Wail Time = 0 1 0
24 Hours
. . . . . . . . . . . .
Category Four User Input 1   0.1   0.1
Device =
Laptop
Proximity to 3   0.3   0.9
RPS 220 =
Zone 3
. . . . . . . . . . . .
Category Five Desired 0 1 0
Printing
Device = LP
. . . . . . . . . . . .
Given the above-noted values in Table 2, the job priority may be calculated to be=[(2+5+1)+(6+1)+(0+1)+(0.1+0.9)+(0)]/CUF=17/14.4=1.18.
FIG. 6 illustrates an example flow diagram of a client software method that may be performed on the user's computer, according to an example embodiment of the present invention. Initially, a request is received to print a document or a file at operation 601. The request may be received internally via the user computer. The information types are then collected based on the user and the job. For example, category-1 information related to the user is collected at operation 602. Additional information types (i.e., 2, 3, 4 and 5) are also collected from the user based on questions posed in windows and/or GUIs at operation 603. Any additional information is then collected, if needed, at operation 604.
The collected information may then be sent along with the print job file and request to the printer server at operation 605. The information that is sent may also be stored locally at the user computer in a temporary file storage memory at operation 606. The print server (PS) may then respond with a success or failure message regarding the print job request at operation 607. If it is determined to be successful at decision operation 608 then the locally stored information may be discarded at operation 609. If the job has failed then the failure reason is analyzed and a message is sent to the user and a predefined time is waited at operation 610. The job may then be re-submitted at operation 611 and a re-submit time and wait time are calculated at operation 612 prior to resending the print job at operation 605.
FIG. 7 illustrates a flowchart of an extended call flow diagram between the mobile device, computers, printer server and printer, according to an example embodiment of the present invention. Referring to FIG. 7, communication signaling is illustrated between a mobile device 601, a computer-A 602, a computer-B 603, a request processing server 604 and a printer 605.
Initially, the mobile device 601 sends a request to print a uniquely identifiable document to computer-A 602, which then finds a computer-B 603 that has the desired document/file and instructs it to send a print job. The computer-B 603 then sends a print job and user information to a request processing server 604. The computer-B 603 also keeps all information and corresponding data file information in a temporary storage memory. The print job and user information are received at the request processing server 604, which computes the job priority and selects a printer based on the information received.
The print job may then be sent to a suitable printer 605. Upon successfully completing the print job, the printer may initiate a job complete notification and send the notification back to the request processing server 604. The request processing server 604 may then relay the notification to the computer-B 603, which may then discard the stored information now that the print job has been successful. The computer-B 603 may then send the notification to computer-A 602, which then sends the notification to the mobile device 601.
According to an example embodiment of the present invention, the print services and job processing procedures described above may be applied to user's who are traveling to multiple geographical destinations. For example, user's who are traveling for business development, academic and industrial researchers, etc, may all need remote access to printing services. For example, business users often need the latest documents related to presentations, proposals, etc., and while they are traveling.
In one example, a leader of a research group may be traveling overseas to a conference to present his research team's latest results. In this instance, the presentation must be in a large poster format specified by conference organizers. Due to some recently discovered phenomena or other researchers' recently published research results, the presenter may realize that he does not have time to complete the preparation of the poster before he is scheduled to conduct the presentation. The presenter could use a more flexible printing and updating procedure to accommodate his busy career.
According to another example embodiments of the present invention, standards documents may be reviewed and discussed on a regular basis (e.g. once a month) at different locations worldwide. Often it is known that at any particular meeting a certain version of the document will be discussed, and the document becomes available shortly before the meeting at certain locations, such as, known websites, participant's company intranet or Internet, or, may be easily located through an Internet search process.
The user who needs to have a printed copy of the latest version of the document may not have an actual copy of that version in her computer. The user may not want to use time downloading and printing the file because she may be busy doing other work, or, the user may simply find the cost of printing the document at her current location unjustified. Instead, the user may choose to specify the title, version, section and/or pages of the document she needs to be printed, and the location where she desires the printed copy to become available. Other features include the time when the user will pick up the document along with other possible options, as described in detail above.
Referring to FIG. 1, the computer 150 will communicate with the RPS 220 by sending a print request when attempting to print a document. After analysis and initial processing of the print request, the RPS 220 will present the user with printing options and the associated cost of providing the print service. For example, a printed copy of the document may be able to be printed right at the hotel where the user will be staying, or at half the cost at a location five miles away from his hotel. The user may select the option that she prefers and then the RPS 220 will send the print job to a printer at the selected location.
In another example according to example embodiments of the present invention, a user of a mobile device 130 may invoke a software application to specify one or more documents she wants to be printed. Documents may be specified by their origination and/or destination locations. For example, the location of the mobile device 130 indicated by an attachment received via email on the mobile device 130. Other location information may be specified by an Internet directory or local directory of the print server that will be receiving the request. Another document identifier may include some unique identification number such as an IP address or other type of identification.
The mobile device 130 sends a request message to the computer 150 (or RPS 220) via a radio interface base station 140. The mobile device 130 also sends the document to print if accessible via email and/or already stored on the mobile device 130. If the document is not currently accessible via email or already stored on the mobile device, the computer 150 (or RPS 220) may retrieve the document to be printed by receiving a specified location along with the request. Alternatively, the document may be searched for until an exact location of the desired document is found (i.e., by initiating a search on the web 160, or, by using one of the identification methods described above). The document may be located on a computer 150 (or RPS 220), or, any of the computers or storage devices communicatively coupled with the computer 150 (or RPS 220).
Once the document is located, printing may be executed. The printer selection will be determined by numerous input parameters described previously, assuming that the mobile device 130 is near the printer server RPS 220 and/or the corresponding printer(s). If, however, the mobile device is not within a geographic proximity of a printer (i.e., a printer located within a building where the user is present or within walking distance of the user), then the server will perform a search to determine known printers and related locations. Such printer and location information may be located within any of the networks 100, 200 or 300, or, may be ascertained via a web search in order to ensure capabilities that satisfy the user requirements. Such a printer (i.e., printer 320) may be connected to the RPS 220 via the Internet 330, and once printing is completed, the user of the mobile device 130 may be informed.
The RPS 220 may be capable of automatically determining where the print job output will be available to the user. Once the RPS 220 knows the location of the user, at or around the time when the print job request is scheduled to be completed, it will automatically select a printer near that location. The RPS 220 may inform the user of the location(s) in order to receive authorization to print at that location. The RPS 220 may instead automatically print at the location closest to the user, in a more secure location and/or the printing may also be based on any number of other parameters, such as, a type of printer, a type of document, etc.
Obtaining the user location may be derived in many different ways. For example, the user may specify his/her location explicitly. The location may determined by a location detection operation. For example, if a user submits his/her request from a mobile device 130 (see FIG. 1), and if the RPS 220 is known to the base station 140, the radio network will detect the location of the mobile device 130 and provide it to the RPS 220.
In another example, if a user submits his/her request from a mobile device 130 with a built in global positioning system (GPS) functionality, then the client software PCS application 120 may acquire location information from a built in GPS functionality. The location information may then be submitted along with the job request to the RPS 220. Upon completion of the job, the user is informed via the RPS 220 that the print job is complete and is also provided with the location that the user may pick up his/her printed material.
According to example embodiments of the present invention, the pickup locations may be determined by automatically determining a user's identity and matching that identity to the corresponding printed material. At the time of the job request submission, the PCS application 120 may send the user identification information to the RPS 220. The user identification information may be sent to a selected printer or computer and/or at the pickup location by the RPS 220 at the time of job submission. In such a case, the printing of the document will begin when the user is within a particular distance of the printer(s).
Automatic detection of the user identity at the pick up location may be implemented in many different ways. For example, the pickup may be performed by using a Bluetooth protocol and interface via the user mobile device 130 that authenticates the user when attempting to obtain the document at the pick up location. Another example may include the user of the mobile device 130 making a phone call to an interactive voice response (IVR) system of an office where the printed material may be available. In this example, upon connecting to the office, the IVR system may authenticates the user, and allow the release of the corresponding printed material. These examples and previous examples may be extended to other numerous cases that may correspond with the features of the invention without deviating from the scope of the invention.
In another example embodiment of present invention, an information processing request (e.g., document print request) may be performed as described in any of the previous embodiments. However, the delivery may be based on the automatically determined user's location prior to sending the print job to the printer. In this example, the user's location may be identified through the signal received from his mobile device 130. The RPS 220 (or another device) will then send the processed information (e.g., print job) to a processor (e.g., printer) near the current user's location.
FIGS. 8 and 9 illustrate examples of a location determination operation in accordance with an example embodiment of the present invention. Referring to FIG. 8, a mobile user 835 transmits a request for a print job to a communication entity, such as, a base station 845. The request is then transferred over the web 825 and to the RPS 820. The RPS 820 will then request the location of the mobile user 835 from the mobile network 845. Once the base station 845 serving the mobile device 835 identifies the location of the mobile device 835, a response with the location information is sent back to the RPS 820. The RPS 820 will then identify the processor device 840 associated with the needed printer 860 near the mobile device 835, and send the processing job (e.g., print job) to the printer 860 at the appropriate location.
FIG. 9 illustrates an example flow diagram of transmissions conducted between the RPS 820, the base station 845 and the printer 860, according to an example embodiment of the present invention. Referring to FIG. 9, the RPS 820 will send a request to obtain the user's current location information to the base station 845. The base station 845 may identify the location of the mobile user by using any of a variety of algorithms, such as, GPS, triangulation, power estimation, Cell ID notification, etc. The location will then be sent back to the RPS 820 in response to the request. The RPS 820 may then send the print job to the processor device 840 and/or the printer 860 nearest or near the user.
FIG. 11 illustrates one example embodiment of the present invention may include a method of processing data associated with a job request. The method may include determining at least one job specific resource available to fulfill the job request at operation 1101. The method may also include performing at least one of a prioritization computation, a job specific requirement computation, and a geographical determination computation at operation 1102. The method may further include selecting at least one appropriate device to fulfill the job request based on the at least one computation operation and the at least one available job specific resource at operation 1103. The method may also include processing and completing the job using the at least one appropriate device based on the at least one computation at operation 1104.
The operations of a method or algorithm described in connection with the embodiments disclosed herein may be embodied directly in hardware, in a computer program executed by a processor, or in a combination of the two. A computer program may be embodied on a computer readable medium, such as a storage medium. For example, a computer program may reside in random access memory (“RAM”), flash memory, read-only memory (“ROM”), erasable programmable read-only memory (“EPROM”), electrically erasable programmable read-only memory (“EEPROM”), registers, hard disk, a removable disk, a compact disk read-only memory (“CD-ROM”), or any other form of storage medium known in the art.
An exemplary storage medium may be coupled to the processor such that the processor may read information from, and write information to, the storage medium. In the alternative, the storage medium may be integral to the processor. The processor and the storage medium may reside in an application specific integrated circuit (“ASIC”). In the alternative, the processor and the storage medium may reside as discrete components. For example FIG. 10 illustrates an example network element 1000, which may represent any of the above-described network components 110, 130, 140, 150, 220, 310, 320, 340, 350, 360, 1210, 1240 and 1250 and other like components in similar drawings.
As illustrated in FIG. 10, a memory 1010 and a processor 1020 may be discrete components of the network entity 1000 that are used to execute an application or set of operations. The application may be coded in software in a computer language understood by the processor 1020, and stored in a computer readable medium, such as, the memory 1010. Furthermore, a software module 1030 may be another discrete entity that is part of the network entity 1000, and which contains software instructions that may be executed by the processor 1020. In addition to the above noted components of the network entity 1000, the network entity 1000 may also have a transmitter and receiver pair configured to receive and transmit communication signals (not shown).
It is important to note that the information processing is not limited to printing documents. For example, information processing could refer to transforming audio, video, or multimedia files or data streams, as will be illustrated in other embodiments that follow. In such cases it is possible for the RPS 220/820 to request processing of information at any geographic location and at the most appropriately suited application processing server. However, the processed data may still be delivered directly to the users device (e.g., mobile device), or, to another device (e.g., laptop) at the same location.
FIG. 12 illustrates an example network configuration according to an example embodiment of the present invention. Referring to FIG. 12, a mobile device 1210 permits a user to select a video, audio, or multimedia file that the user wants to be processed by a particular software application, such as, a data file converter. The file conversion process may convert a file into a specific format, for example, a format suitable to be used by a user's personal player device (i.e., a MP3 player and/or personal video player, such as, an Ipod®).
Assuming that the user has located a particular content file and content location (i.e., a video format file and video content location), the user may desire to have that information downloaded and saved to the user's personal device. The content may be a television show that is stored on a website, such as, Youtube® or Hulu®. The user may desire for the data to be transferred to her personal device.
The data content desired by the user may be located on a particular multimedia website server (e.g., Hulu's® content server 1240 and/or Youtube's® content server 1250). The content may be downloaded over the Internet 1230, which is transferred to a base station 1220 and delivered to the user mobile device 1210. The user's mobile device may be a mobile station that is capable of storing, playing and reformatting the downloaded data. Alternatively, the user's mobile device 1210 may be used as a computer readable storage medium to store the downloaded data until the data may be transferred to the user's personal device.
However, the data that is discovered on these remote website servers may not be in the proper format desired by the user. In other words, additional processing and location transfers may be required before the content is properly accessible to the user. The need for such processing arises in different situations. For example, when the user plans a relatively long trip by car, bus, train, and/or by air, the user may desire to create his/her own entertainment program(s). Another example is of a user who wants to listen to selected audio files or music while exercising. Of course, there are many other examples where such multimedia files or data stream processing will be implemented.
Certain applications that permit conversion of some individual multimedia files and/or data streams are commonplace. However, end-to-end/turnkey data processing applications require more information that simply a desired file format. For instance, creating an “entertainment program” that includes multiple processed files and/or data streams satisfying each individual user's requirements may be time consuming, tedious and require multiple user input operations.
In one example, an MP3 player may play files in any of a .MP3, .FLV, .AVI, or, other data file formats. Depending on the desired quality of the multimedia stream and the amount of available storage, (i.e., hard drive space available on user's player device), the software itself, or, the user may perform a selection of a specific data format. The software application may provide options for the user to compile an “entertainment program” out of audio, video, multimedia clips and/or files that may be found on the Internet by doing a web search (e.g., via a Google search), or, at a specific web site. In addition, the data files may be located on the user's LAN or her application device, mobile device, computer, etc.
As noted above, FIG. 12 is a network diagram of a mobile phone 1210 connecting to media servers 1240 and 1250 via the Internet 1230. For each selection made by a user, the search may be performed on websites which offer free access to the desired media content (i.e., television shows). In the case where no such sites are located, the user may be prompted with the option of downloading files, clips, and/or data streams for a fee at a different website or server location.
FIG. 13A illustrates an example of a user selecting a search option, according to an example embodiment of the present invention. Referring to FIG. 13A, a graphical user interface (GUI) window is illustrated that permits the user to enter a search query. In this example, the search is “The Office Season 2”, which is an example television show that the user may be seeking to obtain a copy of for her mobile device. The software application will prompt her to select one or more of all the available episodes, and to specify the order in which she desires to compile the entertainment program. If a prior history of video program creation exists, the software application may prompt the user to add more episodes, which have not yet been compiled or placed in the current entertainment program. For instance, if the user has selected episodes 1, 2, and 3 at a previous time, then the software may suggest episodes 4, 5 and 6 also be added to the current entertainment program. The user may also alter the selection as desired.
Referring to FIG. 13A, the window includes a text area where the user may enter a search string of content that is desired to be searched. The user has the option to select the “Submit” button to send the query to the server for processing. The user may also press the “Clear” button to clear the search field, or, the user may press the “Cancel” button to remove the window from the display. FIG. 13A represents one example search option. One skilled in the art will recognize that there are many different indications that may be added to a media search window without deviating from the scope of the current invention.
FIG. 13B illustrates an example GUI representation of a media application result window, according to an example embodiment of the present invention. This window may be displayed to the user once the query has been submitted and the system returns a response. In the top left box of the window, the original query is displayed “The Office Season 2.” There is a button on the right, “Perform New Search” that, when selected, will remove the window from the screen, and return the user to the media search window illustrated in FIG. 13A.
The grid in the middle of the media application results window of FIG. 13B depicts the results of the user's search. This grid is scrollable, and may be controlled via the scrollbar seen on the right side of the grid. Inside the grid, there exists five columns, each displaying the respective parts of each of the results of the query (e.g., Title, Season, Episode, Location, Status). The last column “Status” represents the current status of the particular result generated. As may be observed from the grid of FIG. 13B, the first result, “Episode 2”, has a present status of “Previously Received”, which indicates that “Episode 2” has previously been received by the current user.
The next result, “Episode 3”, has a status of “Stored”, which indicates that the user's device may not have enough memory to store the content. The content will automatically be downloaded in order (based on episode number or the last viewed episode) when enough memory is available. The user may be alerted to the download when the memory becomes available.
The final three results of FIG. 13B each have a “Submit” button in the status column. When this option is selected, the particular result will be queued until the content is ready to be received by the user. There is also a “Done” button on the bottom of the media application results window that, when selected, will remove the window from the display. If necessary a message will be sent to the server to search for any additionally needed content. The GUI representation of FIG. 13B illustrates an example only. One skilled in the art will recognize that there are many different indications that may be added to the proposed GUI media application results window without deviating from the scope of the current invention.
FIG. 13C illustrates another view of the media application results window, according to an example embodiment of the present invention. In this example, the first “Submit” button has been selected by the user for the result of “Episode 4.” In this GUI, the “Submit” button has been removed, and the text “Scheduled” has been added indicating to the user that the current result are scheduled to be received by the server for processing. There also exists an “X” button that, when selected, will cancel the scheduled request.
The selection of the number of episodes and their respective format may be determined automatically based on the available storage space and desired quality of the entertainment program. For example, the user may be offered a choice of having their content encoded at any of a variety of different bit rates, such as, very good quality, good quality, low quality, etc. Additional options may include changing the amount of the user's storage space, which may also be determined automatically by the software application. For example, a determination may be made based on 50% of the total available hard drive space on the user's device.
Once these selections are made, the software application will suggest formats that will fit the user's requirements. If none of the formats match the user's device capabilities, such as, a format that is not currently installed on the user's machine or requires a higher processor speed, then the user may be prompted to change her initial format selection and/or reduce the number of episodes selected and/or lower the desired quality of video, etc.
All the input information items may be divided into groups called information categories. Each category may carry a certain weight that may be used when prioritization of a job request is implemented. The division into different categories will be performed at the application processing server and can be preconfigured. Once the requirements are made consistent and finalized, the software application may form a request and sends it via radio link from the mobile device to the base station, which will forward the request to the request processing server (RPS) 220 communicatively coupled with the base station 140 via LAN 100 (see FIG. 1).
Before sending the request the mobile device may find a specific location for each file/clip on the Internet. For example, episodes 1 and 2 may be downloaded from the website Hulu®. The next episode may be downloaded from Youtube®, etc. The mobile device could also select to delegate this search to the RPS 220, in an effort to save time. In that case, the RPS 220 may do the search itself or send the request to certain other specialized devices that are capable of recognizing and finding the exact location of the desired multimedia files.
Once the request for creation of the entertainment program is received by the RPS 220, and the location of each part of the entertainment program is determined, the RPS 220 either does the file/stream conversion locally (if it is configured to provide such a capability), or, alternatively, the processing task is sent to a different application server, such as, 340 over the LAN, or, 350 over the Internet 330 (see FIG. 1).
When the RPS 220 receives a high volume of requests of users competing for limited specialized application server resources, the RPS 220 will prioritize requests based on information received from each user. The prioritization may based on a utility function which evaluates whether the user is using free file conversion services or is paying a fee for the services. Naturally, the users who pay for the service will be given a higher priority (utility) value.
To calculate the priority, the RPS 220 first maps each of the inputs provided in each of the information categories to their corresponding numerical value. Next, the inputs are multiplied by a weight. The weights can be either pre-configured and remain the same between the application server maintenance windows, or, they can be dynamically adjusted depending, for example, on the availability of application servers with certain capabilities, the importance of the job requests from certain users, etc. Then all the multiplied pairs of numbers are added (and normalized, if necessary) and adjusted (divided) by the cumulative utility factor (CUF). These calculations provide a single numerical value that is available to the RPS 220 to make a decision on the priority of the present job compared to other jobs that are in the queue for access to the application processor. The CUF is a fairness enforcement mechanism and is described in further detail below.
In order to prevent a single user from continually receiving the highest priority on his/her service processing requests, the fairness mechanism may be implemented. The RPS 220, receives orders from various sources and creates a unique identifier (UI) for each user submitting a job request. Each user's UI is a combination of items which may include, for example, the user's department, their location, etc. For each user that has submitted at least one job in the time period N (where N is a configurable parameter for each RPS and can include one or more of minutes, hours, days, weeks, months, years, etc.), the RPS 220 will maintain a record of the number (K) of jobs submitted by the user and their respective priorities.
These priority values may be combined into the CUF computed as 1 plus the sum of K values of the individual job's utility factors UFK (where UFK is the corresponding job's priority divided by N and multiplied by the number of days before expiration of the N-day period from the present day, assuming the period being used is days). The priority mechanism may increase a contribution level of the most recent jobs to the CUF. For example, jobs processed the same day they are submitted will contribute their full priority value, while the jobs submitted N/2 days ago, will contribute only half of their priorities, and jobs submitted more than N days ago, would not be considered at all.
Among the users of equal status (i.e., two users from the same company department), the application program will evaluate the required time needed to process files/data streams and schedules jobs so that they may be completed by the desired time specified by the user. If the application program calculates that the desired time is not a possibility, then the job may simply be delayed and the user will be notified. One skilled in the art will recognize that there are many different categories and priority evaluation factors with different weights that may be added to determine a priority level. If the user cannot be served in the time specified by the user, the RPS 220 will notify the user.
The RPS 220 will instruct the application server that has been selected to perform the data processing (i.e., file conversion) to send the file back to the user, or, back to itself, so that it may check the file for data integrity (e.g., right size, right format, etc.) and forward it to the user's device. In such a case where the user requested file is to be transmitted to a specified address on the Internet (i.e., email box), the RPS 220 will send the file to that address.
According to another example embodiment of the present invention, processing may be performed when a recurring story line is occurring at a particular portion of a song or video. For example, the processing may include auditing a particular a “recurring story line” phrase that may be included at one or more times during the video and/or song. When the matching video and/or song encounters the matching phrase that is desired by the user, a message may be sent to the user indicating that a match has occurred, and the portion of the media containing the matching phrase is included in the message.
In one example, a video for the television show “The Office” often has a recurring line in many of its episodes, such as, “That's what she said.” Another example, would be a video for the show “Family Guy”, which often has recurring instances of the character “Stewie” pronouncing the letter “h” in certain words such as “Wil Wheaton” or “Cool Whip.” In other examples, various songs by artists may have a “recurring story line”, such as, war, money, God, love, animals, etc.
FIG. 14A illustrates an example of the media application results window with a recurring story line query displayed, according to an example embodiment of the present invention. The user may have the option of selecting the “Submit” button to enable the video monitoring feature to review the content of the video and alert the user when the video encounters a matching story line. If the user selects the “Clear” button, the query field will be cleared. If the user selects the “Cancel” button, the recurring story line window is removed.
FIG. 14D illustrates the results of finding a match for the recurring story line. Referring to FIG. 14D, the match is displayed and the user is provided with the option to watch the video. The speech in the video may be converted to text so that the user may read the matching phrase based on the conversion. Speech-to-text functionality is commonplace and may be used to monitor the voice of the video and transcribe words based on the audio track of the video.
Once the words are transcribed from the media in the currently playing song or video, the beginning and ending time points may be logged and stored when the “recurring story line” query is matched. The beginning and ending time points are included in the message sent to the user. The user may play and/or download that portion of the song or video. FIG. 14A illustrates a recurring story line message sent to the user when a match is found in the song or video. The user has three buttons on the bottom of the window. If the user selects the “Play” button, the portion of the video or song will play, then the message will be displayed again. If the user selects the “Download” button, the user will have the option to download that portion of the video or song to her device. If the user selects the “Cancel” window, the recurring story line window is removed.
Once the user initiates the “recurring story line” functionality, the application program will continue to monitor future songs and videos for that particular “recurring story line”, and alert the user when a match is made. This cross-platform auditing of “recurring story line” functionality incorporates the linking of seemingly dissimilar information. For instance, the user may be alerted that an artist whose song they downloaded has a song where the words “Cool Whip” are used, based on the original search for such a term in the Family Guy episode.
FIGS. 15A and 15B illustrates an example flow diagram of the procedure of the data file processing algorithm, according to an example embodiment of the present invention. The algorithm may be executed on the user's mobile device. In operation, the user may submit a request to transfer multimedia files and clips. The request will be passed along to the RPS 220.
Referring to FIG. 15A, the procedure begins by the user providing her information and a list of video and/or other data requested to be transformed at operation 1501. Next, a decision is made at operation 1502 as to whether the request information is comprehensive (i.e., are all episodes specified?). If the request is not comprehensive, operation 1503 fills in the missing information based on the user's prior history by suggesting certain episodes or other information for the user to select at operation 1503. If the information is comprehensive operation 1504 proceeds accordingly.
Next, at operation 1504, the files and/or data streams are located on the web (i.e., at content websites), free sites may be tried first and then pay sites may be tried second. The user is notified of the results and is given the option to accept the content providing options and/or pay if the third party content provider websites require prior payment. At operation 1505, the amount of storage space required is estimated based on the requested format, run time of the content file and quality requested by the user. A decision is then made as to whether there is enough storage space at the destination location (i.e., the user's device) at operation 1506. If there is not enough storage memory available, the user is prompted to select a different format or fewer items in the list. The list may be shortened by default and if there is only one item in the list, then the format and quality may be reduced to lower the amount of storage space required at operation 1507.
If there is enough storage space then another determination is made as to whether the RPS location is known at operation 1508. If not, the RPS that is available may be suggested to the user or the user may specify an RPS to perform the data processing at operation 1509. If the RPS location is known, then a detailed request is sent to the default RPS so that it may perform the processing based on the information included in the request at operation 1510 in FIG. 15B (a continuation of FIG. 15A). At operation 1511, messages are listened to from the RPS to check the status of the file processing. A decision is then made as to whether a successful request completion notification from the RPS is received at operation 1512. If not, then listening for new messages is repeated until an update is discovered. If the completion notification has been successfully completed then a successful job completion message is sent to the user at operation 1513.
FIG. 16 illustrates a flowchart of the algorithm running on the RPC when a file transfer and related data processing request is received. Referring to FIG. 16, a request is received for transferring a specified list of files and/or clips and their suggested location, and requested file format and/or size at operation 1601. The availability of files and/or data streams are confirmed at their specified locations at operation 1602 and the ability to do file and/or data stream conversions locally is evaluated at operation 1603. At operation 1604, the files and/or data streams are located on the Internet.
Once these preliminary operations are performed, operation 1605 determines whether there are application server(s) needed. If not, operation 1606 determines all files and/or data streams are transferred locally, and operation 1607 notifies the user of the result and sends the files (if applicable) to the user. Alternatively, if the application servers are needed, operation 1608 sends the collected information and file and/or data stream processing requests to the application server. Operation 1609 then saves the information sent in the request in a temporary storage memory location. Next, the application waits for a response (failure or success) from the server at operation 1610.
A determination is then made at operation 1611 whether the data processing operation was successful. If not, the reason for failure is analyzed, a message is sent to the user suggesting a course of action and a predefined time period is waited for a response from the user at operation 1613. After the time period has expired, a resubmission of the request may be performed at operation 1614. The resubmission time is calculated and waited and then the request may be resubmitted at operation 1615. Alternatively, the information may be discarded from the temporary storage memory location at operation 1612.
Table 3 includes a list of recent jobs submitted by a user with UI=X in the last N (N=5) days.
TABLE 3
Days left to
Job expiration of 5-
Job # Priority day period
376 12 1
427 10 3
501  5 5
In order to calculate the cumulative utility factor (CUF) to provide a simply numerical value the following computation may be performed: CUF=1+12*(1/5)+10*(3/5)+5*(5/5)=14.4. The CUF is computed as “1” plus the sum of K values of the individual job's utility factor (UFK). The UFK is the corresponding job's priority divided by N and multiplied by the number of days before expiration of the N-day period from the current day (i.e., today). In this example, it is assumed that the period of interest is days.
Table 4 illustrates a list of information of various categories related to a job request from the user with UI=X.
TABLE 4
Numeric Value*
Category Information item value Weight Weight
Category One Paid Service Type 1000 1 1000
(only one of these options Free Service 1000 0 0
may be selected for each
user)
Category Two Number of files/clips 3 1 3
Estimated duration of 30 1 30
MM play (mins)
Format (select one): 2 5 10
Format = AVI 1 2 2
Format = MP3
. . . . . . . . . . . .
. . . . . . . . . . . .
Category Three Urgency level = Low 0 0 0
Wait time = 24 hrs 1 0 0
. . . . . . . . . . . .
Category Four User Input Device = 1 0 0
Cell Phone
Proximity = Zone 1 1 0 0
. . . . . . . . . . . .
Category Five NA 0 0 0
. . . . . . . . . . . .
As illustrated above, Table 4 illustrates an example of a table depicting the calculation of the weights for particular media files, according to an example embodiment of the present invention. A job priority for a paid service will be greater, for example, since the utility assigned to category one information for the user with a paid service should be greater than an option for the user with a free service. Depending on each of the options selected for categories 1 and 2, the unadjusted utility would be different. The calculation and adjustment to the CUF is performed in a manner similar to the previous examples (see calculations for Tables 1 and 2).
Table 4 illustrates how requests for converting specified files and/or data streams are prioritized. For example, if one request is made to convert 3 clips for free with a total estimated duration time of 30 minutes and with a format of .AVI, the unadjusted utility based on this information only would be: 0+30+3+10=42. Another request may come from a user who paid for the service, but wants to convert a short two minute single movie clip file into a .MP3 file. Then the corresponding unadjusted utility would be 1000+1+5+2=1008. The second request will have a higher priority over the first request at least for the reason that the user has a paid service as opposed to a free service.
While preferred embodiments of the present invention have been described, it is to be understood that the embodiments described are illustrative only and the scope of the invention is to be defined solely by the appended claims when considered with a full range of equivalents and modifications (e.g., protocols, hardware devices, software platforms etc.) thereto.

Claims (20)

What is claimed is:
1. A method of processing data associated with a job request, the method comprising:
determining at least one job specific resource available to fulfill the job request;
performing a prioritization computation, wherein the prioritization computation comprises applying respective weights for a plurality of information items to determine a job priority;
concurrently determining a first pool of printers based on the prioritization computation and a second pool of printers without performing the prioritization computation;
determining a third pool of printers from the first pool of printers and the second pool of printers;
selecting at least one appropriate device from the third pool of printers to fulfill the job request based on the prioritization computation and the at least one available job specific resource, the third pool of printers satisfying conditions of the first pool of printers and conditions of the second pool of printers; and
processing and completing the job using the at least one appropriate device based on the prioritization computation;
wherein the applying of the respective weights for the plurality of information items to determine the job priority comprises taking a value of the collective weights of the plurality of information items and dividing the value by a cumulative utility factor.
2. The method of claim 1, wherein the at least one job specific resource comprises at least one of a printer type, an available printer and a printer's output format.
3. The method of claim 2, wherein the printer type comprises a laser printer, a color printer, an ink jet printer, or a color laser printer.
4. The method of claim 2, wherein the printer's output format comprises a gray scale output, a black and white output, or a color output format.
5. The method of claim 1, wherein the prioritization is calculated based on user information which comprises at least one of a user identification, a user's department, a user's rank and a user's current project.
6. The method of claim 5, wherein the prioritization is calculated based on at least one of how soon the job request must be fulfilled and the user's information.
7. The method of claim 1, wherein the job request is fulfilled based on a fairness scheme that is a function of the number of jobs submitted by the user in a predefined time period, and the number of days left before the job will expire.
8. The method of claim 1, wherein when the job request fails, the user is notified and the job is automatically resubmitted within a predefined amount of time.
9. An apparatus configured to process data associated with a job request, the apparatus comprising:
a processor configured to
determine at least one job specific resource available to fulfill the job request,
perform a prioritization computation, wherein the prioritization computation comprises applying respective weights for a plurality of information items to determine a job priority,
concurrently determine a first pool of printers based on the prioritization computation and a second pool of printers without performing the prioritization computation,
determine a third pool of printers from the first pool of printers and the second pool of printers, the third pool of printers satisfying conditions of the first pool of printers and conditions of the second pool of printers, and
select at least one appropriate device from the third pool of printers to fulfill the job request based on the prioritization computation and the at least one available job specific resource; and
a transmitter configured to transmit the job to the appropriate device, wherein
the appropriate device processes and completes the job based on the prioritization computation;
wherein the applying of the respective weights for the plurality of information items to determine the job priority comprises taking a value of the collective weights of the plurality of information items and dividing the value by a cumulative utility factor.
10. The apparatus of claim 9, wherein the at least one job specific resource comprises at least one of a printer type, an available printer and a printer's output format.
11. The apparatus of claim 10, wherein the printer type comprises a laser printer, a color printer, an ink jet printer, or a color laser printer.
12. The apparatus of claim 10, wherein the prioritization is calculated based on user information which comprises at least one of a user identification, a user's department, a user's rank and a user's current project.
13. The apparatus of claim 12, wherein the prioritization is calculated based on at least one of how soon the job request must be fulfilled and the user's information.
14. The apparatus of claim 10, wherein the job request is fulfilled based on a fairness scheme that is a function of the number of jobs submitted by the user in a predefined time period, and the number of days left before the job will expire.
15. The apparatus of claim 10, wherein when the job request fails, the user is notified and the job is automatically resubmitted within a predefined amount of time.
16. A computer program, embodied on a non-transitory computer readable medium, the computer program configured to cause a processor to:
determine at least one job specific resource available to fulfill the job request;
perform a prioritization computation, wherein the prioritization computation comprises applying respective weights for a plurality of information items to determine a job priority;
concurrently determine a first pool of printers based on the prioritization computation and a second pool of printers without performing the prioritization computation;
determine a third pool of printers from the first pool of printers and the second pool of printers, the third pool of printers satisfying conditions of the first pool of printers and conditions of the second pool of printers;
select at least one appropriate device from the third pool of printers to fulfill the job request based on the prioritization computation and the at least one available job specific resource; and
process and complete the job using the at least one appropriate device based on the prioritization computation;
wherein the applying of the respective weights for the plurality of information items to determine the job priority comprises taking a value of the collective weights of the plurality of information items and dividing the value by a cumulative utility factor.
17. The computer program of claim 16, wherein the prioritization is calculated based on user information which comprises at least one of a user identification, a user's department, a user's rank and a user's current project.
18. The computer program of claim 17, wherein the prioritization is calculated based on at least one of how soon the job request must be fulfilled and the user's information.
19. The computer program of claim 16, wherein the job request is fulfilled based on a fairness scheme that is a function of the number of jobs submitted by the user in a predefined time period, and the number of days left before the job will expire.
20. The computer program of claim 16, wherein when the job request fails, the user is notified and the job is automatically resubmitted within a predefined amount of time.
US12/753,171 2010-03-26 2010-04-02 Method and apparatus of processing information in an environment with multiple devices and limited resources Expired - Fee Related US9223529B1 (en)

Priority Applications (19)

Application Number Priority Date Filing Date Title
US12/753,171 US9223529B1 (en) 2010-03-26 2010-04-02 Method and apparatus of processing information in an environment with multiple devices and limited resources
US12/770,965 US9386256B1 (en) 2010-03-26 2010-04-30 Systems and methods for identifying a set of characters in a media file
US12/770,944 US9235645B1 (en) 2010-03-26 2010-04-30 Systems and methods for managing the execution of processing jobs
US12/822,297 US9405400B1 (en) 2010-03-26 2010-06-24 Method and apparatus of providing and customizing data input touch screen interface to multiple users
US12/822,292 US9383887B1 (en) 2010-03-26 2010-06-24 Method and apparatus of providing a customized user interface
US12/822,286 US9335894B1 (en) 2010-03-26 2010-06-24 Providing data input touch screen interface to multiple users based on previous command selections
US12/958,092 US9619056B1 (en) 2010-03-26 2010-12-01 Method and apparatus for determining a valid touch event on a touch sensitive device
US13/034,860 US9256917B1 (en) 2010-03-26 2011-02-25 Nested zoom in windows on a touch sensitive device
US14/275,129 US9189191B1 (en) 2010-03-26 2014-05-12 Systems and methods for managing the execution of print jobs
US14/333,233 US9524042B1 (en) 2010-03-26 2014-07-16 Method and appartus for determining a valid sequence of touch events on a touch sensitive device
US14/334,338 US8964235B1 (en) 2010-03-26 2014-07-17 Systems and methods for printing a document from a mobile communication device
US14/590,823 US9477373B1 (en) 2010-03-26 2015-01-06 Simultaneous zoom in windows on a touch sensitive device
US14/628,428 US9244636B1 (en) 2010-03-26 2015-02-23 Systems and methods for printing a document from a mobile communication device
US14/940,991 US9575694B1 (en) 2010-03-26 2015-11-13 Systems and methods for managing the execution of print jobs
US14/970,843 US9639305B1 (en) 2010-03-26 2015-12-16 Method and apparatus of processing information in an environment with multiple devices and resources
US14/993,551 US9612874B1 (en) 2010-03-26 2016-01-12 Systems and methods for managing the execution of processing jobs
US15/007,006 US9436424B1 (en) 2010-03-26 2016-01-26 Systems and methods for printing a document from a mobile communication device
US15/364,570 US9817519B1 (en) 2010-03-26 2016-11-30 Method and apparatus for determining a valid sequence of touch events on a touch sensitive device
US15/583,515 US9977633B1 (en) 2010-03-26 2017-05-01 Method and apparatus of processing information in an environment with multiple devices and resources

Applications Claiming Priority (7)

Application Number Priority Date Filing Date Title
US31774410P 2010-03-26 2010-03-26
US31781210P 2010-03-26 2010-03-26
US31774110P 2010-03-26 2010-03-26
US31780010P 2010-03-26 2010-03-26
US31779310P 2010-03-26 2010-03-26
US31782710P 2010-03-26 2010-03-26
US12/753,171 US9223529B1 (en) 2010-03-26 2010-04-02 Method and apparatus of processing information in an environment with multiple devices and limited resources

Related Child Applications (1)

Application Number Title Priority Date Filing Date
US14/970,843 Continuation US9639305B1 (en) 2010-03-26 2015-12-16 Method and apparatus of processing information in an environment with multiple devices and resources

Publications (1)

Publication Number Publication Date
US9223529B1 true US9223529B1 (en) 2015-12-29

Family

ID=49321507

Family Applications (19)

Application Number Title Priority Date Filing Date
US12/753,171 Expired - Fee Related US9223529B1 (en) 2010-03-26 2010-04-02 Method and apparatus of processing information in an environment with multiple devices and limited resources
US12/753,180 Expired - Fee Related US8559036B1 (en) 2010-03-26 2010-04-02 Systems and methods for managing the execution of print jobs
US12/753,163 Expired - Fee Related US8786875B1 (en) 2010-03-26 2010-04-02 Systems and methods for printing a document from a mobile communication device
US14/013,706 Active US8724154B1 (en) 2010-03-26 2013-08-29 Systems and methods for managing the execution of print jobs
US14/275,129 Active US9189191B1 (en) 2010-03-26 2014-05-12 Systems and methods for managing the execution of print jobs
US14/334,338 Expired - Fee Related US8964235B1 (en) 2010-03-26 2014-07-17 Systems and methods for printing a document from a mobile communication device
US14/628,428 Expired - Fee Related US9244636B1 (en) 2010-03-26 2015-02-23 Systems and methods for printing a document from a mobile communication device
US14/940,991 Expired - Fee Related US9575694B1 (en) 2010-03-26 2015-11-13 Systems and methods for managing the execution of print jobs
US14/970,843 Active US9639305B1 (en) 2010-03-26 2015-12-16 Method and apparatus of processing information in an environment with multiple devices and resources
US15/007,006 Active US9436424B1 (en) 2010-03-26 2016-01-26 Systems and methods for printing a document from a mobile communication device
US15/019,900 Active 2032-02-05 US10025477B1 (en) 2010-03-26 2016-02-09 Nested zoom in windows on a touch sensitive device
US15/202,400 Active 2030-11-29 US10417336B1 (en) 2010-03-26 2016-07-05 Systems and methods for identifying a set of characters in a media file
US15/471,342 Active US9996388B1 (en) 2010-03-26 2017-03-28 Systems and methods for managing the execution of processing jobs
US15/583,515 Active US9977633B1 (en) 2010-03-26 2017-05-01 Method and apparatus of processing information in an environment with multiple devices and resources
US16/037,361 Active US10346016B1 (en) 2010-03-26 2018-07-17 Nested zoom in windows on a touch sensitive device
US16/573,991 Active 2030-06-30 US11209967B1 (en) 2010-03-26 2019-09-17 Systems and methods for identifying a set of characters in a media file
US17/515,527 Active US11520471B1 (en) 2010-03-26 2021-10-31 Systems and methods for identifying a set of characters in a media file
US17/993,293 Active US11720200B2 (en) 2010-03-26 2022-11-23 Systems and methods for identifying a set of characters in a media file
US18/334,589 Pending US20230333688A1 (en) 2010-03-26 2023-06-14 Systems and Methods for Identifying a Set of Characters in a Media File

Family Applications After (18)

Application Number Title Priority Date Filing Date
US12/753,180 Expired - Fee Related US8559036B1 (en) 2010-03-26 2010-04-02 Systems and methods for managing the execution of print jobs
US12/753,163 Expired - Fee Related US8786875B1 (en) 2010-03-26 2010-04-02 Systems and methods for printing a document from a mobile communication device
US14/013,706 Active US8724154B1 (en) 2010-03-26 2013-08-29 Systems and methods for managing the execution of print jobs
US14/275,129 Active US9189191B1 (en) 2010-03-26 2014-05-12 Systems and methods for managing the execution of print jobs
US14/334,338 Expired - Fee Related US8964235B1 (en) 2010-03-26 2014-07-17 Systems and methods for printing a document from a mobile communication device
US14/628,428 Expired - Fee Related US9244636B1 (en) 2010-03-26 2015-02-23 Systems and methods for printing a document from a mobile communication device
US14/940,991 Expired - Fee Related US9575694B1 (en) 2010-03-26 2015-11-13 Systems and methods for managing the execution of print jobs
US14/970,843 Active US9639305B1 (en) 2010-03-26 2015-12-16 Method and apparatus of processing information in an environment with multiple devices and resources
US15/007,006 Active US9436424B1 (en) 2010-03-26 2016-01-26 Systems and methods for printing a document from a mobile communication device
US15/019,900 Active 2032-02-05 US10025477B1 (en) 2010-03-26 2016-02-09 Nested zoom in windows on a touch sensitive device
US15/202,400 Active 2030-11-29 US10417336B1 (en) 2010-03-26 2016-07-05 Systems and methods for identifying a set of characters in a media file
US15/471,342 Active US9996388B1 (en) 2010-03-26 2017-03-28 Systems and methods for managing the execution of processing jobs
US15/583,515 Active US9977633B1 (en) 2010-03-26 2017-05-01 Method and apparatus of processing information in an environment with multiple devices and resources
US16/037,361 Active US10346016B1 (en) 2010-03-26 2018-07-17 Nested zoom in windows on a touch sensitive device
US16/573,991 Active 2030-06-30 US11209967B1 (en) 2010-03-26 2019-09-17 Systems and methods for identifying a set of characters in a media file
US17/515,527 Active US11520471B1 (en) 2010-03-26 2021-10-31 Systems and methods for identifying a set of characters in a media file
US17/993,293 Active US11720200B2 (en) 2010-03-26 2022-11-23 Systems and methods for identifying a set of characters in a media file
US18/334,589 Pending US20230333688A1 (en) 2010-03-26 2023-06-14 Systems and Methods for Identifying a Set of Characters in a Media File

Country Status (1)

Country Link
US (19) US9223529B1 (en)

Cited By (15)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20150012610A9 (en) * 2011-04-29 2015-01-08 Motorola Mobility Llc Method and System for Vicarious Downloading or Uploading of Information
US20150242177A1 (en) * 2014-02-27 2015-08-27 Konica Minolta, Inc. Image forming system, relay server, communication controlling method and non-transitory computer readable recording medium
US20150341282A1 (en) * 2014-05-22 2015-11-26 Lior Bar-On Context-aware portal connection allocation
US9639305B1 (en) * 2010-03-26 2017-05-02 Open Invention Network Llc Method and apparatus of processing information in an environment with multiple devices and resources
US20190196758A1 (en) * 2017-12-26 2019-06-27 Brother Kogyo Kabushiki Kaisha Terminal Device, Non-Transitory Computer-Readable Recording Medium Storing Instructions to Control the Terminal Device and Method of Controlling Terminal Device
US10402226B2 (en) * 2015-06-05 2019-09-03 Apple Inc. Media analysis and processing framework on a resource restricted device
US11137950B2 (en) * 2019-02-22 2021-10-05 Brother Kogyo Kabushiki Kaisha Non-transitory storage medium storing instructions executable by communication apparatus, the communication apparatus, and display method
US11281412B2 (en) * 2018-06-27 2022-03-22 Hewlett-Packard Development Company, L.P. Document operation performance
US20220317958A1 (en) * 2019-12-27 2022-10-06 Canon Kabushiki Kaisha Information processing apparatus, control method, and storage medium
US11593233B2 (en) * 2018-10-31 2023-02-28 EMC IP Holding Company LLC Method, apparatus and computer storage medium for data synchronization
US11681651B1 (en) * 2015-11-18 2023-06-20 American Express Travel Related Services Company, Inc. Lineage data for data records
US11804215B1 (en) * 2022-04-29 2023-10-31 Apple Inc. Sonic responses
US11837237B2 (en) 2017-05-12 2023-12-05 Apple Inc. User-specific acoustic models
US11862151B2 (en) 2017-05-12 2024-01-02 Apple Inc. Low-latency intelligent automated assistant
US11893290B1 (en) * 2021-02-15 2024-02-06 egrafa, inc. Printing system operated responsive to data bearing records

Families Citing this family (45)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP6004654B2 (en) * 2011-02-22 2016-10-12 キヤノン株式会社 Print processing apparatus and control method of print processing apparatus
US20130050741A1 (en) * 2011-08-29 2013-02-28 Xerox Corporation System and method for printing from portable devices
US9612866B2 (en) * 2012-08-29 2017-04-04 Oracle International Corporation System and method for determining a recommendation on submitting a work request based on work request type
JP6187053B2 (en) * 2012-09-18 2017-08-30 株式会社リコー Information processing system, information processing apparatus, and program
WO2014112985A1 (en) * 2013-01-15 2014-07-24 Hewlett-Packard Development Company, L.P. Print service provider capacity planning
JP6311352B2 (en) * 2013-03-15 2018-04-18 株式会社リコー Information processing apparatus, control method, program, and information processing system
JP5840640B2 (en) * 2013-03-29 2016-01-06 京セラドキュメントソリューションズ株式会社 Image forming apparatus and image forming method
US20150138585A1 (en) * 2013-11-19 2015-05-21 Toshiba Tec Kabushiki Kaisha Printing management system, printing management method, and image forming apparatus
JP5717887B1 (en) * 2014-01-07 2015-05-13 ウイングアーク1st株式会社 Printing system, print server, and print job submission method
JP6497958B2 (en) * 2015-02-13 2019-04-10 キヤノン株式会社 Image forming apparatus, print processing execution method, and program
JP2016178385A (en) * 2015-03-18 2016-10-06 キヤノン株式会社 Communication system, information processing device, communication control method, and program
JP6477235B2 (en) * 2015-05-20 2019-03-06 コニカミノルタ株式会社 Printing device, print server, print management program
EP4044040B1 (en) * 2015-08-20 2023-10-11 Hewlett-Packard Development Company L.P. Peripheral device pairing
US9600213B1 (en) * 2015-08-31 2017-03-21 Konica Minolta Laboratory U.S.A., Inc. Customized print job analysis to identify job complexity
US11609946B2 (en) 2015-10-05 2023-03-21 Pinterest, Inc. Dynamic search input selection
US11055343B2 (en) * 2015-10-05 2021-07-06 Pinterest, Inc. Dynamic search control invocation and visual search
US10552219B2 (en) * 2016-02-19 2020-02-04 Microsoft Technology Licensing, Llc Computing resource management of computing devices
US9965232B1 (en) * 2016-03-15 2018-05-08 Symantec Corporation Systems and methods for automatically verifying default printing selections
KR102526860B1 (en) * 2016-03-18 2023-05-02 삼성전자주식회사 Electronic device and method for controlling thereof
JP6525209B2 (en) * 2016-06-23 2019-06-05 京セラドキュメントソリューションズ株式会社 Image forming device
US11314388B2 (en) * 2016-06-30 2022-04-26 Huawei Technologies Co., Ltd. Method for viewing application program, graphical user interface, and terminal
US10423798B2 (en) 2016-06-30 2019-09-24 Hewlett-Packard Development Company, L.P. Mobile device authenticated print
US20180341440A1 (en) * 2017-05-25 2018-11-29 Promega Corporation System and method for allowing cloud communication for non-cloud enabled printers and other devices
US10373290B2 (en) * 2017-06-05 2019-08-06 Sap Se Zoomable digital images
CN107547626B (en) * 2017-07-19 2021-06-01 北京五八信息技术有限公司 User portrait sharing method and device
US11841735B2 (en) 2017-09-22 2023-12-12 Pinterest, Inc. Object based image search
US10942966B2 (en) 2017-09-22 2021-03-09 Pinterest, Inc. Textual and image based search
US11126653B2 (en) 2017-09-22 2021-09-21 Pinterest, Inc. Mixed type image based search results
JP6885326B2 (en) * 2017-12-26 2021-06-16 京セラドキュメントソリューションズ株式会社 Image processing system and mobile terminal device
CN110196693A (en) * 2018-02-26 2019-09-03 光宝电子(广州)有限公司 Print system and Method of printing
CN110333815B (en) * 2019-06-21 2022-03-08 腾讯科技(成都)有限公司 Touch event processing method and device
CN110399105B (en) * 2019-07-18 2022-11-22 福建威盾科技集团有限公司 Method and system for printing map page
US10866774B1 (en) * 2019-08-28 2020-12-15 Toshiba Tec Kabushiki Kaisha Device power saving by intelligent document print queuing
US10999403B2 (en) * 2019-09-27 2021-05-04 Red Hat, Inc. Composable infrastructure provisioning and balancing
US11768641B2 (en) 2019-11-14 2023-09-26 Hewlett-Packard Development Company, L.P. Outsourcing print jobs with print job recipes
JP2021093036A (en) * 2019-12-11 2021-06-17 キヤノン株式会社 Information processing apparatus, information processing method, and program
US11113657B2 (en) 2019-12-19 2021-09-07 Lob.com, Inc. Method and system for physical asset tracking
US11221813B2 (en) * 2019-12-19 2022-01-11 Lob.com, Inc. Method and system for aggregate asset routing
US11934379B2 (en) 2019-12-20 2024-03-19 Lob.com, Inc. Method and system for address verification
US11188782B2 (en) 2019-12-20 2021-11-30 Lob.com, Inc. Method and system for address verification
JP2022042784A (en) * 2020-09-03 2022-03-15 キヤノン株式会社 Server device, control method, and program
DE102020215938A1 (en) * 2020-12-15 2022-06-15 Siemens Healthcare Gmbh Method for coordinating a plurality of remote control units when executing a plurality of prioritized work steps
JP2022098896A (en) * 2020-12-22 2022-07-04 富士フイルムビジネスイノベーション株式会社 Information processing method, storage device with printing function, network printing system, and program
US11755264B2 (en) * 2021-08-13 2023-09-12 Zebra Technologies Corporation Selecting a printer based on proximity
US11782662B1 (en) 2022-03-25 2023-10-10 Lob.com, Inc. Method and system for asset routing

Citations (67)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5287194A (en) * 1992-11-25 1994-02-15 Xerox Corporation Distributed printing
US5337258A (en) 1992-07-10 1994-08-09 Microsoft Corporation Cost metrics
US5467434A (en) 1992-08-28 1995-11-14 Xerox Corporation Apparatus and method for determining printer option availability and representing conflict resolution in a combination of print job selections
US6157465A (en) * 1996-12-26 2000-12-05 Canon Kabushiki Kaisha System for transferring jobs between processing units based upon content of job and ability of unit to perform job
US20010013053A1 (en) * 2000-02-04 2001-08-09 Tsutomu Yamazaki Information equipment system
US6348971B2 (en) * 1997-06-20 2002-02-19 Seiko Epson Corporation Printing system and printing method for selecting an optimum printing for printing
US20030011805A1 (en) * 1996-06-11 2003-01-16 Yousef R. Yacoub Directing print jobs in a network printing system
US20030117638A1 (en) * 2001-12-20 2003-06-26 Ferlitsch Andrew Rodney Virtual print driver system and method
US20030142016A1 (en) * 2002-01-30 2003-07-31 Pickup Ray L. System and method for locating an output device
US20030174356A1 (en) * 2002-03-15 2003-09-18 Darrel Cherry Tracking printing in a network
US20030198337A1 (en) * 2002-04-18 2003-10-23 Rohan Lenard Location enhanced automatic work distribution
US6659662B2 (en) * 2001-10-31 2003-12-09 Hewlett-Packard Development Company, L.P. Internet distribution of print job to multiple print shops based on geographic location of document recipients
US20040061890A1 (en) * 2002-09-30 2004-04-01 Ferlitsch Andrew Rodney Providing capabilities matching for cluster printing
US6728753B1 (en) 1999-06-15 2004-04-27 Microsoft Corporation Presentation broadcasting
US6762852B1 (en) * 1999-10-05 2004-07-13 Hewlett-Packard Development Company, Lp. Print feature selection based on combined features of several printers
US20040137855A1 (en) * 2002-07-31 2004-07-15 Wiley Anthony John Wireless mobile printing
US20050088681A1 (en) * 2003-10-14 2005-04-28 Canon Kabushiki Kaisha Information processing apparatus, image processing method, and program
US20050102442A1 (en) * 2003-11-12 2005-05-12 Ferlitsch Andrew R. Printer pool administration policy
US20050128968A1 (en) * 2003-12-13 2005-06-16 Samsung Electronics Co., Ltd. System and method for selecting printer via wireless communication network and printing data
US20050270564A1 (en) * 2004-05-22 2005-12-08 Samsung Electronics Co., Ltd. Printing cost charging method
US20050275852A1 (en) * 2004-06-15 2005-12-15 Ferlitsch Andrew R Method and apparatus for selecting printing devices according to resource availability
US20060037053A1 (en) 2004-08-13 2006-02-16 Microsoft Corporation Dynamically generating video streams for user interfaces based on device capabilities
US20060039026A1 (en) * 2004-08-23 2006-02-23 Xerox Corporation Print sequence scheduling for reliability
US7081969B1 (en) * 1999-10-19 2006-07-25 Electronics For Imaging, Inc. Automatic print load balancing
US20060244991A1 (en) * 2005-04-28 2006-11-02 Konica Minolta Business Technologies, Inc. Image processing device, image processing method, and computer readable recording medium stored with image processing program
US20060268318A1 (en) * 2005-05-25 2006-11-30 Xerox Corporation Printing system
US20070061474A1 (en) * 2005-09-12 2007-03-15 Kabushiki Kaisha Toshiba System and method for controlling output media sources in a shared document processing environment
US20070086052A1 (en) * 2005-10-18 2007-04-19 Canon Kabushiki Kaisha Network compliant output device, information processing apparatus, control method therefor, computer program, computer-readable storage medium, and network system
US20070124436A1 (en) * 2005-11-29 2007-05-31 Xerox Corporation Print server, mobile computing device, system and method for printing using a mobile computing device
US20070165266A1 (en) * 2006-01-17 2007-07-19 Lifen Tian Optimized printing of electronic documents
US20070198755A1 (en) * 2006-02-20 2007-08-23 Canon Kabushiki Kaisha Information processing apparatus, peripheral apparatus control method, and computer readable medium
US20070201078A1 (en) * 2006-02-28 2007-08-30 Xerox Corporation Distributed printing system with improved load balancing
US20070201077A1 (en) * 2006-02-28 2007-08-30 Xerox Corporation Distributed printing system with improved load balancing
US7272647B2 (en) 2001-03-05 2007-09-18 Kabushiki Kaisha Toshiba Print system by mobile terminal, and network system using mobile terminal
US20070229891A1 (en) * 2006-03-31 2007-10-04 Brother Kogyo Kabushiki Kaisha Location information management device, data output system, and program
US20070285714A1 (en) * 2006-05-19 2007-12-13 Fujifilm Corporation Center server and image network system
US20080013109A1 (en) * 2006-07-11 2008-01-17 Yen-Fu Chen Method for Selecting Printers Based On Paper Availability Or Paper Congestion
US20080225326A1 (en) * 2007-03-13 2008-09-18 Jeffrey Owen Kephart Policy based system and method for optimizing output device submission, use and wait times
US20080246986A1 (en) * 2007-04-04 2008-10-09 Xerox Corporation Methods and apparatus for improved operation of networked printing system
US20080246988A1 (en) * 2007-04-09 2008-10-09 Anthony Arnol Ashton Adaptive printer pools
US20080259381A1 (en) * 2007-04-20 2008-10-23 Xerox Corporation Production print capacity display for process optimization
US20080273224A1 (en) * 2007-05-01 2008-11-06 Preo Software Inc. System and method of print management
US20090046319A1 (en) * 2007-08-15 2009-02-19 Brother Kogyo Kabushiki Kaisha Printing system, printing apparatus, method for printing, and computer usable medium therefor
US20090077164A1 (en) * 2007-09-14 2009-03-19 Daja Phillips Distributed workflow-enabled system
US20090158287A1 (en) * 2007-12-18 2009-06-18 International Business Machines Corporation Dynamic critical path update facility
US20090231609A1 (en) * 2005-06-29 2009-09-17 Jan Chipchase Smarter Printing
US20090273801A1 (en) * 2008-05-01 2009-11-05 Dell Products L.P. System and Method for Proximity-Based Printing
US20090273808A1 (en) * 2008-04-14 2009-11-05 Xerox Corporation Resubmission to alternate printers to help efficient printing and space planning
US20090296140A1 (en) * 2007-02-26 2009-12-03 Brother Kogyo Kabushiki Kaisha Printer controller
US20090310160A1 (en) * 2008-06-05 2009-12-17 Hitachi Ins Software, Ltd. Printed matter managing system
US20100053664A1 (en) * 2008-09-04 2010-03-04 Xerox Corporation Run cost optimization for multi-engine printing system
US20100079805A1 (en) * 2008-09-30 2010-04-01 Canon Kabushiki Kaisha Network interface apparatus, control method, program, and image forming apparatus
US20100245885A1 (en) * 2009-03-24 2010-09-30 Selvaraj Senthil K Techniques For Printing To Hotspot Printers
US20100315680A1 (en) * 2009-06-12 2010-12-16 Satoru Ishikake Networked printer system, networked printer management system, and networked printer management method
US20110026070A1 (en) * 2009-07-31 2011-02-03 Xerox Corporation Print management system and method based on service cost
US20110029443A1 (en) * 2009-03-12 2011-02-03 King Martin T Performing actions based on capturing information from rendered documents, such as documents under copyright
US7884954B2 (en) * 2000-10-02 2011-02-08 Canon Kabushiki Kaisha Peripheral equipment and management method thereof
US20110037996A1 (en) * 2009-08-13 2011-02-17 Xerox Corporation Method and system for automatically creating print governance rules and policies
US20110072395A1 (en) * 2004-12-03 2011-03-24 King Martin T Determining actions involving captured information and electronic content associated with rendered documents
US7949740B2 (en) * 2007-04-04 2011-05-24 Xerox Corporation Methods and systems for prioritized servicing or maintenance of networked printers
US20110170131A1 (en) * 2008-09-19 2011-07-14 Konica Minolta Business Technologies, Inc Image forming apparatus, printing system and printing method
US20110235090A1 (en) * 2010-03-29 2011-09-29 Xerox Corporation Apparatus and method for print job redirection
US20110242576A1 (en) * 2010-03-30 2011-10-06 Allen William J Fulfillment utilizing selected negotiation attributes
US20120002241A1 (en) * 2009-03-09 2012-01-05 Ehud Chatow System and method for acquiring document services
US8149441B2 (en) * 2008-04-10 2012-04-03 Xerox Corporation Expected time to collect a print job
US8305602B2 (en) * 2006-09-29 2012-11-06 Sharp Laboratories Of America, Inc. Systems and methods for remotely managing and configuring driver settings
US8559036B1 (en) * 2010-03-26 2013-10-15 Open Invention Networks, Llc Systems and methods for managing the execution of print jobs

Family Cites Families (110)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US2774591A (en) 1952-09-02 1956-12-18 Detroit Hardware Mfg Company Window operator
US3965484A (en) * 1975-01-02 1976-06-22 Dictaphone Corporation Central dictation system
US4962475A (en) 1984-12-26 1990-10-09 International Business Machines Corporation Method for generating a document utilizing a plurality of windows associated with different data objects
US4710758A (en) 1985-04-26 1987-12-01 Westinghouse Electric Corp. Automatic touch screen calibration method
US4829294A (en) 1986-06-25 1989-05-09 Hitachi, Ltd. Document processing method and system using multiwindow
US5367619A (en) 1990-04-27 1994-11-22 Eaton Corporation Electronic data entry system employing an expert system to facilitate generation of electronic data forms with complex interrelationships between fields and subforms
US5691524A (en) 1991-07-17 1997-11-25 J.D. Carreker And Associates, Inc. Electronic check presentment system having a non-ECP exceptions notification system incorporated therein
US5640577A (en) 1991-12-30 1997-06-17 Davox Corporation Data processing system with automated at least partial forms completion
US5845255A (en) 1994-10-28 1998-12-01 Advanced Health Med-E-Systems Corporation Prescription management system
US5635683A (en) 1995-01-04 1997-06-03 Calcomp Technology, Inc. Dynamic pressure adjustment of a pressure-sensitive pointing device for a digitizer
US6213652B1 (en) 1995-04-18 2001-04-10 Fuji Xerox Co., Ltd. Job scheduling system for print processing
US5774591A (en) 1995-12-15 1998-06-30 Xerox Corporation Apparatus and method for recognizing facial expressions and facial gestures in a sequence of images
US5823948A (en) 1996-07-08 1998-10-20 Rlis, Inc. Medical records, documentation, tracking and order entry system
US6714960B1 (en) * 1996-11-20 2004-03-30 Silicon Graphics, Inc. Earnings-based time-share scheduling
US6487390B1 (en) 1996-12-18 2002-11-26 Clubcom, Inc. System and method for interactive on-demand information
CA2198189C (en) 1997-02-21 2001-05-29 Ibm Canada Limited-Ibm Canada Limitee Internet browser based data entry architecture
US5982996A (en) 1997-03-13 1999-11-09 Hewlett-Packard Company Mechanism for printer driver switching in windows operating systems to allow distribution of print jobs to an output device from a single print request within an application
US6006240A (en) 1997-03-31 1999-12-21 Xerox Corporation Cell identification in table analysis
US8479122B2 (en) 2004-07-30 2013-07-02 Apple Inc. Gestures for touch sensitive input devices
EP1717682B1 (en) 1998-01-26 2017-08-16 Apple Inc. Method and apparatus for integrating manual input
US7194757B1 (en) 1998-03-06 2007-03-20 Starguide Digital Network, Inc. Method and apparatus for push and pull distribution of multimedia
US6192380B1 (en) 1998-03-31 2001-02-20 Intel Corporation Automatic web based form fill-in
US6128655A (en) 1998-07-10 2000-10-03 International Business Machines Corporation Distribution mechanism for filtering, formatting and reuse of web based content
US6910179B1 (en) 1998-11-10 2005-06-21 Clarita Corporation Method and apparatus for automatic form filling
US6466935B1 (en) * 1999-06-04 2002-10-15 International Business Machines Corporation Applying relational database technology to process control in manufacturing processes
US6732162B1 (en) 1999-11-15 2004-05-04 Internet Pictures Corporation Method of providing preprocessed images for a plurality of internet web sites
US7356766B1 (en) 2000-01-21 2008-04-08 International Business Machines Corp. Method and system for adding content to a content object stored in a data repository
US7346844B1 (en) 2000-01-21 2008-03-18 International Business Machines, Corporation Method and system for moving content in a content object stored in a data repository
US7506034B2 (en) 2000-03-03 2009-03-17 Intel Corporation Methods and apparatus for off loading content servers through direct file transfer from a storage center to an end-user
US7975021B2 (en) * 2000-10-23 2011-07-05 Clearplay, Inc. Method and user interface for downloading audio and video content filters to a media player
US7069310B1 (en) 2000-11-10 2006-06-27 Trio Systems, Llc System and method for creating and posting media lists for purposes of subsequent playback
US7099350B2 (en) 2001-04-24 2006-08-29 Atitania, Ltd. Method and apparatus for converting data between two dissimilar systems
US7099951B2 (en) 2001-05-24 2006-08-29 Vixs, Inc. Method and apparatus for multimedia system
US6981001B1 (en) 2001-09-21 2005-12-27 Bellsouth Intellectual Property Corporation Method and systems for default mapping mechanization
US7254775B2 (en) 2001-10-03 2007-08-07 3M Innovative Properties Company Touch panel system and method for distinguishing multiple touch inputs
US20040205458A1 (en) * 2001-11-23 2004-10-14 Jenq-Neng Hwang Efficient real-time networked documents conversion for distance meeting environments
US7343565B2 (en) 2002-03-20 2008-03-11 Mercurymd, Inc. Handheld device graphical user interfaces for displaying patient medical records
TWI234115B (en) 2002-04-03 2005-06-11 Htc Corp Method and device of setting threshold pressure for touch panel
US7069259B2 (en) * 2002-06-28 2006-06-27 Microsoft Corporation Multi-attribute specification of preferences about people, priorities and privacy for guiding messaging and communications
US7664991B1 (en) 2002-12-17 2010-02-16 Symantec Operating Corporation System and method for distributed file system I/O recovery
US7426329B2 (en) 2003-03-06 2008-09-16 Microsoft Corporation Systems and methods for receiving, storing, and rendering digital video, music, and pictures on a personal media player
US7499046B1 (en) 2003-03-15 2009-03-03 Oculus Info. Inc. System and method for visualizing connected temporal and spatial information as an integrated visual representation on a user interface
US20040252333A1 (en) * 2003-06-16 2004-12-16 Blume Leo Robert Mobile communication device printing
US8373660B2 (en) 2003-07-14 2013-02-12 Matt Pallakoff System and method for a portable multimedia client
JP2005070898A (en) * 2003-08-20 2005-03-17 Toshiba Corp Information processor and display control method
US20050071423A1 (en) 2003-09-26 2005-03-31 Jaakko Rajaniemi System, apparatus, and method for providing Web services on mobile devices
US7406691B2 (en) * 2004-01-13 2008-07-29 International Business Machines Corporation Minimizing complex decisions to allocate additional resources to a job submitted to a grid environment
US20050165881A1 (en) 2004-01-23 2005-07-28 Pipelinefx, L.L.C. Event-driven queuing system and method
US7565139B2 (en) 2004-02-20 2009-07-21 Google Inc. Image-based search engine for mobile phones with camera
WO2005083703A1 (en) 2004-03-01 2005-09-09 Matsushita Electric Industrial Co., Ltd. Information recording medium and information processing device
JP4335718B2 (en) * 2004-03-19 2009-09-30 富士通株式会社 Data transfer method, apparatus, program, and storage medium between different types of terminals
CA2572455C (en) 2004-06-04 2014-10-28 Therasense, Inc. Diabetes care host-client architecture and data management system
EP1774785B1 (en) 2004-06-15 2011-11-16 Panasonic Avionics Corporation Portable media device and method for presenting viewing content during travel
WO2006001070A1 (en) 2004-06-25 2006-01-05 Matsushita Electric Industrial Co., Ltd. Command input device using touch panel display
US7519223B2 (en) 2004-06-28 2009-04-14 Microsoft Corporation Recognizing gestures and using gestures for interacting with software applications
US7372456B2 (en) 2004-07-07 2008-05-13 Smart Technologies Inc. Method and apparatus for calibrating an interactive touch system
US7218524B2 (en) 2004-09-30 2007-05-15 Fu Zhun Precision Industry (Shen Zhen) Co., Ltd. Locking device for heat dissipating device
US20080255837A1 (en) * 2004-11-30 2008-10-16 Jonathan Kahn Method for locating an audio segment within an audio file
US20090191519A1 (en) * 2004-12-23 2009-07-30 Wakamoto Carl I Online and computer-based interactive immersive system for language training, entertainment and social networking
KR100675371B1 (en) * 2005-01-22 2007-01-29 삼성전자주식회사 Apparatus for forming image and method for controlling job processing order thereof
US20060265249A1 (en) 2005-05-18 2006-11-23 Howard Follis Method, system, and computer-readable medium for providing a patient electronic medical record with an improved timeline
JP2006340744A (en) 2005-06-07 2006-12-21 Nintendo Co Ltd Game program and game device
US7725477B2 (en) 2005-12-19 2010-05-25 Microsoft Corporation Power filter for online listing service
US7657849B2 (en) 2005-12-23 2010-02-02 Apple Inc. Unlocking a device by performing gestures on an unlock image
US7509588B2 (en) 2005-12-30 2009-03-24 Apple Inc. Portable electronic device with interface reconfiguration mode
US8515839B2 (en) 2006-02-03 2013-08-20 Zillow, Inc. Automatically determining a current value for a real estate property, such as a home, that is tailored to input from a human user, such as its owner
US8676680B2 (en) 2006-02-03 2014-03-18 Zillow, Inc. Automatically determining a current value for a home
US7664739B2 (en) 2006-02-14 2010-02-16 Microsoft Corporation Object search ui and dragging object results
US7738129B2 (en) * 2006-03-13 2010-06-15 International Business Machines Corporation Method and apparatus for assigning candidate processing nodes in a stream-oriented computer system
KR100672605B1 (en) 2006-03-30 2007-01-24 엘지전자 주식회사 Method for selecting items and terminal therefor
WO2009073768A1 (en) * 2007-12-04 2009-06-11 Vovision, Llc Correcting transcribed audio files with an email-client interface
US20090278806A1 (en) 2008-05-06 2009-11-12 Matias Gonzalo Duarte Extended touch-sensitive control area for electronic device
US7978181B2 (en) 2006-04-25 2011-07-12 Apple Inc. Keystroke tactility arrangement on a smooth touch surface
US8682654B2 (en) * 2006-04-25 2014-03-25 Cyberlink Corp. Systems and methods for classifying sports video
US8564544B2 (en) 2006-09-06 2013-10-22 Apple Inc. Touch screen device, method, and graphical user interface for customizing display of content category icons
US8291338B2 (en) * 2006-09-20 2012-10-16 International Business Machines Corporation Method of displaying and editing properties of artifacts in graphical editors
JP5024767B2 (en) 2006-11-10 2012-09-12 国立大学法人豊橋技術科学大学 3D model search method, computer program, and 3D model search system
US8510349B1 (en) 2006-12-06 2013-08-13 Zillow, Inc. Multi-faceted search
US20080244453A1 (en) 2007-04-01 2008-10-02 Jason Edward Cafer Iconic event timeline with latitude snapping and method for providing the same
US20080254869A1 (en) 2007-04-13 2008-10-16 Aruze Corp. Gaming machine and playing method thereof
US8171030B2 (en) 2007-06-18 2012-05-01 Zeitera, Llc Method and apparatus for multi-dimensional content search and video identification
US20090106667A1 (en) 2007-10-19 2009-04-23 International Business Machines Corporation Dividing a surface of a surface-based computing device into private, user-specific areas
US8270303B2 (en) * 2007-12-21 2012-09-18 Hand Held Products, Inc. Using metadata tags in video recordings produced by portable encoded information reading terminals
US8140421B1 (en) 2008-01-09 2012-03-20 Zillow, Inc. Automatically determining a current value for a home
WO2010082942A1 (en) 2008-02-01 2010-07-22 Canfield Scientific, Incorporated Automatic mask design and registration and feature detection for computer-aided skin analysis
KR20090089254A (en) 2008-02-18 2009-08-21 세이코 엡슨 가부시키가이샤 Sensing device, display device, electronic apparatus, and sensing method
US8019042B2 (en) 2008-04-22 2011-09-13 Siemens Medical Solutions Usa, Inc. Medical imaging processing and care planning system
US20090322699A1 (en) 2008-06-25 2009-12-31 Sony Ericsson Mobile Communications Ab Multiple input detection for resistive touch panel
JP4632102B2 (en) 2008-07-17 2011-02-16 ソニー株式会社 Information processing apparatus, information processing method, and information processing program
US9305060B2 (en) 2008-07-18 2016-04-05 Steven L. Robertson System and method for performing contextual searches across content sources
JP5271031B2 (en) 2008-08-09 2013-08-21 株式会社キーエンス Image data compression method, pattern model positioning method in image processing, image processing apparatus, image processing program, and computer-readable recording medium
US8604364B2 (en) 2008-08-15 2013-12-10 Lester F. Ludwig Sensors, algorithms and applications for a high dimensional touchpad
KR100969790B1 (en) 2008-09-02 2010-07-15 엘지전자 주식회사 Mobile terminal and method for synthersizing contents
JP2010097438A (en) 2008-10-16 2010-04-30 Keyence Corp Outline information extraction method using image processing, creation method for pattern model in image processing, positioning method for pattern model in image processing, image processor, image processing program and computer-readable recording medium
KR20100048090A (en) 2008-10-30 2010-05-11 삼성전자주식회사 Interface apparatus for generating control command by touch and motion, interface system including the interface apparatus, and interface method using the same
US8171419B2 (en) 2008-10-31 2012-05-01 Research In Motion Limited Method and system for remote media management on a touch screen device
US20100138517A1 (en) 2008-12-02 2010-06-03 At&T Intellectual Property I, L.P. System and method for multimedia content brokering
US8839129B2 (en) 2008-12-19 2014-09-16 T-Mobile Usa, Inc. User interface for a communication device
US8336049B2 (en) 2009-02-05 2012-12-18 Vmware, Inc. Virtual machine utility computing method and system
US20100287493A1 (en) * 2009-05-06 2010-11-11 Cadence Design Systems, Inc. Method and system for viewing and editing an image in a magnified view
US9052848B2 (en) * 2009-07-07 2015-06-09 Hewlett-Packard Development Company, L.P. Web printing a print request via a list of job tasks
US8707381B2 (en) * 2009-09-22 2014-04-22 Caption Colorado L.L.C. Caption and/or metadata synchronization for replay of previously or simultaneously recorded live programs
US8392430B2 (en) 2009-09-23 2013-03-05 Microsoft Corp. Concept-structured image search
US20110113333A1 (en) * 2009-11-12 2011-05-12 John Lee Creation and delivery of ringtones over a communications network
US8788287B2 (en) 2009-11-25 2014-07-22 General Electric Company Systems, apparatus, and methods for developing patient medical history using hierarchical relationships
US20110161820A1 (en) * 2009-12-31 2011-06-30 John Lee Management of multimedia segment data over a communications network
US9405400B1 (en) 2010-03-26 2016-08-02 Open Invention Network Llc Method and apparatus of providing and customizing data input touch screen interface to multiple users
US9235645B1 (en) * 2010-03-26 2016-01-12 Open Invention Network, Llc Systems and methods for managing the execution of processing jobs
JP2014038364A (en) 2010-10-27 2014-02-27 Hitachi Ltd Resource management server, resource management method and resource management program
US9245523B2 (en) * 2013-07-25 2016-01-26 Nice-Systems Ltd Method and apparatus for expansion of search queries on large vocabulary continuous speech recognition transcripts

Patent Citations (71)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5337258A (en) 1992-07-10 1994-08-09 Microsoft Corporation Cost metrics
US5467434A (en) 1992-08-28 1995-11-14 Xerox Corporation Apparatus and method for determining printer option availability and representing conflict resolution in a combination of print job selections
US5287194A (en) * 1992-11-25 1994-02-15 Xerox Corporation Distributed printing
US20030011805A1 (en) * 1996-06-11 2003-01-16 Yousef R. Yacoub Directing print jobs in a network printing system
US6157465A (en) * 1996-12-26 2000-12-05 Canon Kabushiki Kaisha System for transferring jobs between processing units based upon content of job and ability of unit to perform job
US6348971B2 (en) * 1997-06-20 2002-02-19 Seiko Epson Corporation Printing system and printing method for selecting an optimum printing for printing
US6728753B1 (en) 1999-06-15 2004-04-27 Microsoft Corporation Presentation broadcasting
US6762852B1 (en) * 1999-10-05 2004-07-13 Hewlett-Packard Development Company, Lp. Print feature selection based on combined features of several printers
US7081969B1 (en) * 1999-10-19 2006-07-25 Electronics For Imaging, Inc. Automatic print load balancing
US20010013053A1 (en) * 2000-02-04 2001-08-09 Tsutomu Yamazaki Information equipment system
US7884954B2 (en) * 2000-10-02 2011-02-08 Canon Kabushiki Kaisha Peripheral equipment and management method thereof
US7272647B2 (en) 2001-03-05 2007-09-18 Kabushiki Kaisha Toshiba Print system by mobile terminal, and network system using mobile terminal
US6659662B2 (en) * 2001-10-31 2003-12-09 Hewlett-Packard Development Company, L.P. Internet distribution of print job to multiple print shops based on geographic location of document recipients
US20030117638A1 (en) * 2001-12-20 2003-06-26 Ferlitsch Andrew Rodney Virtual print driver system and method
US20030142016A1 (en) * 2002-01-30 2003-07-31 Pickup Ray L. System and method for locating an output device
US20030174356A1 (en) * 2002-03-15 2003-09-18 Darrel Cherry Tracking printing in a network
US20030198337A1 (en) * 2002-04-18 2003-10-23 Rohan Lenard Location enhanced automatic work distribution
US20040137855A1 (en) * 2002-07-31 2004-07-15 Wiley Anthony John Wireless mobile printing
US20040061890A1 (en) * 2002-09-30 2004-04-01 Ferlitsch Andrew Rodney Providing capabilities matching for cluster printing
US20050088681A1 (en) * 2003-10-14 2005-04-28 Canon Kabushiki Kaisha Information processing apparatus, image processing method, and program
US20050102442A1 (en) * 2003-11-12 2005-05-12 Ferlitsch Andrew R. Printer pool administration policy
US20050128968A1 (en) * 2003-12-13 2005-06-16 Samsung Electronics Co., Ltd. System and method for selecting printer via wireless communication network and printing data
US20050270564A1 (en) * 2004-05-22 2005-12-08 Samsung Electronics Co., Ltd. Printing cost charging method
US20050275852A1 (en) * 2004-06-15 2005-12-15 Ferlitsch Andrew R Method and apparatus for selecting printing devices according to resource availability
US8164785B2 (en) * 2004-06-15 2012-04-24 Sharp Laboratories Of America, Inc. Method and apparatus for selecting printing devices according to resource availability
US20060037053A1 (en) 2004-08-13 2006-02-16 Microsoft Corporation Dynamically generating video streams for user interfaces based on device capabilities
US20060037051A1 (en) 2004-08-13 2006-02-16 Mcdowell Brian C Dynamically generating video streams for user interfaces
US20060039026A1 (en) * 2004-08-23 2006-02-23 Xerox Corporation Print sequence scheduling for reliability
US20110072395A1 (en) * 2004-12-03 2011-03-24 King Martin T Determining actions involving captured information and electronic content associated with rendered documents
US20060244991A1 (en) * 2005-04-28 2006-11-02 Konica Minolta Business Technologies, Inc. Image processing device, image processing method, and computer readable recording medium stored with image processing program
US20060268318A1 (en) * 2005-05-25 2006-11-30 Xerox Corporation Printing system
US20090231609A1 (en) * 2005-06-29 2009-09-17 Jan Chipchase Smarter Printing
US20070061474A1 (en) * 2005-09-12 2007-03-15 Kabushiki Kaisha Toshiba System and method for controlling output media sources in a shared document processing environment
US20070086052A1 (en) * 2005-10-18 2007-04-19 Canon Kabushiki Kaisha Network compliant output device, information processing apparatus, control method therefor, computer program, computer-readable storage medium, and network system
US20070124436A1 (en) * 2005-11-29 2007-05-31 Xerox Corporation Print server, mobile computing device, system and method for printing using a mobile computing device
US20070165266A1 (en) * 2006-01-17 2007-07-19 Lifen Tian Optimized printing of electronic documents
US20070198755A1 (en) * 2006-02-20 2007-08-23 Canon Kabushiki Kaisha Information processing apparatus, peripheral apparatus control method, and computer readable medium
US20070201077A1 (en) * 2006-02-28 2007-08-30 Xerox Corporation Distributed printing system with improved load balancing
US20070201078A1 (en) * 2006-02-28 2007-08-30 Xerox Corporation Distributed printing system with improved load balancing
US20070229891A1 (en) * 2006-03-31 2007-10-04 Brother Kogyo Kabushiki Kaisha Location information management device, data output system, and program
US20070285714A1 (en) * 2006-05-19 2007-12-13 Fujifilm Corporation Center server and image network system
US20080013109A1 (en) * 2006-07-11 2008-01-17 Yen-Fu Chen Method for Selecting Printers Based On Paper Availability Or Paper Congestion
US8305602B2 (en) * 2006-09-29 2012-11-06 Sharp Laboratories Of America, Inc. Systems and methods for remotely managing and configuring driver settings
US20090296140A1 (en) * 2007-02-26 2009-12-03 Brother Kogyo Kabushiki Kaisha Printer controller
US8134724B2 (en) * 2007-03-13 2012-03-13 International Business Machines Corporation Policy based system and method for optimizing output device submission, use and wait times
US20080225326A1 (en) * 2007-03-13 2008-09-18 Jeffrey Owen Kephart Policy based system and method for optimizing output device submission, use and wait times
US7949740B2 (en) * 2007-04-04 2011-05-24 Xerox Corporation Methods and systems for prioritized servicing or maintenance of networked printers
US20080246986A1 (en) * 2007-04-04 2008-10-09 Xerox Corporation Methods and apparatus for improved operation of networked printing system
US20080246988A1 (en) * 2007-04-09 2008-10-09 Anthony Arnol Ashton Adaptive printer pools
US20080259381A1 (en) * 2007-04-20 2008-10-23 Xerox Corporation Production print capacity display for process optimization
US20080273224A1 (en) * 2007-05-01 2008-11-06 Preo Software Inc. System and method of print management
US20090046319A1 (en) * 2007-08-15 2009-02-19 Brother Kogyo Kabushiki Kaisha Printing system, printing apparatus, method for printing, and computer usable medium therefor
US20090077164A1 (en) * 2007-09-14 2009-03-19 Daja Phillips Distributed workflow-enabled system
US20090158287A1 (en) * 2007-12-18 2009-06-18 International Business Machines Corporation Dynamic critical path update facility
US8149441B2 (en) * 2008-04-10 2012-04-03 Xerox Corporation Expected time to collect a print job
US20090273808A1 (en) * 2008-04-14 2009-11-05 Xerox Corporation Resubmission to alternate printers to help efficient printing and space planning
US20090273801A1 (en) * 2008-05-01 2009-11-05 Dell Products L.P. System and Method for Proximity-Based Printing
US20090310160A1 (en) * 2008-06-05 2009-12-17 Hitachi Ins Software, Ltd. Printed matter managing system
US20100053664A1 (en) * 2008-09-04 2010-03-04 Xerox Corporation Run cost optimization for multi-engine printing system
US20110170131A1 (en) * 2008-09-19 2011-07-14 Konica Minolta Business Technologies, Inc Image forming apparatus, printing system and printing method
US20100079805A1 (en) * 2008-09-30 2010-04-01 Canon Kabushiki Kaisha Network interface apparatus, control method, program, and image forming apparatus
US20120002241A1 (en) * 2009-03-09 2012-01-05 Ehud Chatow System and method for acquiring document services
US20110029443A1 (en) * 2009-03-12 2011-02-03 King Martin T Performing actions based on capturing information from rendered documents, such as documents under copyright
US20100245885A1 (en) * 2009-03-24 2010-09-30 Selvaraj Senthil K Techniques For Printing To Hotspot Printers
US20100315680A1 (en) * 2009-06-12 2010-12-16 Satoru Ishikake Networked printer system, networked printer management system, and networked printer management method
US20110026070A1 (en) * 2009-07-31 2011-02-03 Xerox Corporation Print management system and method based on service cost
US20110037996A1 (en) * 2009-08-13 2011-02-17 Xerox Corporation Method and system for automatically creating print governance rules and policies
US8559036B1 (en) * 2010-03-26 2013-10-15 Open Invention Networks, Llc Systems and methods for managing the execution of print jobs
US8724154B1 (en) * 2010-03-26 2014-05-13 Open Invention Network, Llc Systems and methods for managing the execution of print jobs
US20110235090A1 (en) * 2010-03-29 2011-09-29 Xerox Corporation Apparatus and method for print job redirection
US20110242576A1 (en) * 2010-03-30 2011-10-06 Allen William J Fulfillment utilizing selected negotiation attributes

Non-Patent Citations (7)

* Cited by examiner, † Cited by third party
Title
David J. Kappos, Subject Matter Eligibilty of Comptuer Readable Media, Feb. 23, 2010, USPTO, 1351 OG 212. *
Fox, Armando, et al., "Adapting to Network and Client Variation Using Infrastructural Proxies: Lessons and Perspectives", Technical Paper, University of California, Berkeley, Aug. 1998.
Giovanni Novelli, et al., "A Grid-Based Infrastructure to Support Multimedia Content Distribution", Technical Paper, Jun. 26, 2007, 7 pages, Universita' di Catania, Viale A. Doria, 6-95125 Catania, Italy.
Kappos, David J., Subject Matter Eligibility of Computer Readable Media, Feb. 23, 2010, USPTO, 1351 OG 212.
Mohan, Rakesh, et al., "Adapting Multimedia Internet Content for Universal Access", Technical Paper, IEEE Transactions on Multimedia, vol. 1, No. 1, Mar. 1999.
Smith, John R., "Transcoding Internet Content for Heterogeneous Client Devices", Technical Paper, IBM T.J. Watson Research Center, 1998.
Tu, Yi-Cheng, et al., "Multiquality Data Replication in Multimedia Databases", Technical Paper, IEEE Transactions on Knowledge and Data Engineering, vol. 19, No. 5, May 2007.

Cited By (21)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US9639305B1 (en) * 2010-03-26 2017-05-02 Open Invention Network Llc Method and apparatus of processing information in an environment with multiple devices and resources
US9977633B1 (en) * 2010-03-26 2018-05-22 Open Invention Network Llc Method and apparatus of processing information in an environment with multiple devices and resources
US9674640B2 (en) * 2011-04-29 2017-06-06 Google Technology Holdings LLC Method and system for vicarious downloading or uploading of information
US10212566B2 (en) 2011-04-29 2019-02-19 Google Technology Holdings LLC Method and system for vicarious downloading or uploading of information
US20150012610A9 (en) * 2011-04-29 2015-01-08 Motorola Mobility Llc Method and System for Vicarious Downloading or Uploading of Information
US10534570B2 (en) * 2014-02-27 2020-01-14 Konica Minolta, Inc. Image forming system for relaying communication between a server on an internet and an image forming device, relay server, communication controlling method and non-transitory computer readable recording medium
US20150242177A1 (en) * 2014-02-27 2015-08-27 Konica Minolta, Inc. Image forming system, relay server, communication controlling method and non-transitory computer readable recording medium
US20150341282A1 (en) * 2014-05-22 2015-11-26 Lior Bar-On Context-aware portal connection allocation
US10402226B2 (en) * 2015-06-05 2019-09-03 Apple Inc. Media analysis and processing framework on a resource restricted device
US11681651B1 (en) * 2015-11-18 2023-06-20 American Express Travel Related Services Company, Inc. Lineage data for data records
US11837237B2 (en) 2017-05-12 2023-12-05 Apple Inc. User-specific acoustic models
US11862151B2 (en) 2017-05-12 2024-01-02 Apple Inc. Low-latency intelligent automated assistant
US10838671B2 (en) * 2017-12-26 2020-11-17 Brother Kogyo Kabushiki Kaisha Terminal device, non-transitory computer-readable recording medium storing instructions to control the terminal device and method of controlling terminal device
US20190196758A1 (en) * 2017-12-26 2019-06-27 Brother Kogyo Kabushiki Kaisha Terminal Device, Non-Transitory Computer-Readable Recording Medium Storing Instructions to Control the Terminal Device and Method of Controlling Terminal Device
US11281412B2 (en) * 2018-06-27 2022-03-22 Hewlett-Packard Development Company, L.P. Document operation performance
US11593233B2 (en) * 2018-10-31 2023-02-28 EMC IP Holding Company LLC Method, apparatus and computer storage medium for data synchronization
US11137950B2 (en) * 2019-02-22 2021-10-05 Brother Kogyo Kabushiki Kaisha Non-transitory storage medium storing instructions executable by communication apparatus, the communication apparatus, and display method
US20220317958A1 (en) * 2019-12-27 2022-10-06 Canon Kabushiki Kaisha Information processing apparatus, control method, and storage medium
US11893290B1 (en) * 2021-02-15 2024-02-06 egrafa, inc. Printing system operated responsive to data bearing records
US11804215B1 (en) * 2022-04-29 2023-10-31 Apple Inc. Sonic responses
US20230352007A1 (en) * 2022-04-29 2023-11-02 Apple Inc. Sonic responses

Also Published As

Publication number Publication date
US11520471B1 (en) 2022-12-06
US9189191B1 (en) 2015-11-17
US9996388B1 (en) 2018-06-12
US9436424B1 (en) 2016-09-06
US9244636B1 (en) 2016-01-26
US9639305B1 (en) 2017-05-02
US10417336B1 (en) 2019-09-17
US11209967B1 (en) 2021-12-28
US10025477B1 (en) 2018-07-17
US8964235B1 (en) 2015-02-24
US20230333688A1 (en) 2023-10-19
US20230082343A1 (en) 2023-03-16
US8559036B1 (en) 2013-10-15
US8724154B1 (en) 2014-05-13
US9575694B1 (en) 2017-02-21
US8786875B1 (en) 2014-07-22
US9977633B1 (en) 2018-05-22
US11720200B2 (en) 2023-08-08
US10346016B1 (en) 2019-07-09

Similar Documents

Publication Publication Date Title
US9977633B1 (en) Method and apparatus of processing information in an environment with multiple devices and resources
US11288632B2 (en) Synchronization of digital content
US20110173537A1 (en) Integrated data processing and transcription service
US20220374817A1 (en) Relationship-based search
US10778734B1 (en) Systems and methods for initiating processing actions utilizing automatically generated data of a group-based communication system
US10528629B2 (en) Systems and methods for providing syndicated content
CN110753908A (en) Facilitating user device and/or proxy device actions during a communication session
US20080225326A1 (en) Policy based system and method for optimizing output device submission, use and wait times
US20120019867A1 (en) Indentifying printers
US9729735B2 (en) Intelligent pre-conversion of document formats for predicted printer selection
JP6079183B2 (en) Information processing apparatus, communication terminal, application providing method, application execution method, application providing program, and application execution program
JP2007026147A (en) Insurance sales supporting method, program and apparatus
EP2216723A2 (en) Screen generation method, and screen generation apparatus
US9026483B1 (en) Automatic prediction of aspects of human task performance
JP2005196676A (en) Service creating method, service creating system, and program,
JP2017037605A (en) Information processing apparatus and information processing program
US20060074840A1 (en) System and method for tracking print job status
US20220130000A1 (en) Activity computer systems
KR102492022B1 (en) Method, Apparatus and System of managing contents in Multi-channel Network
JP2008204403A (en) System for selecting construction contractor
JP2005251067A (en) Synthesis service providing method, synthesis service providing system, execution device, and program
JP4349635B2 (en) Route guidance system, route guidance device, and route guidance program
JP2020057096A (en) Information processing device, information processing method, and program
KR102627577B1 (en) Electronic device for processing information related to providing content and the method thereof
WO2012107961A1 (en) Service providing system, network system, client terminal, storage device, service providing method and program of service providing system

Legal Events

Date Code Title Description
AS Assignment

Owner name: OPEN INVENTION NETWORK LLC, NORTH CAROLINA

Free format text: ASSIGNMENT OF ASSIGNORS INTEREST;ASSIGNOR:KHAFIZOVA, MARGARITA;REEL/FRAME:024178/0898

Effective date: 20091202

ZAAA Notice of allowance and fees due

Free format text: ORIGINAL CODE: NOA

ZAAB Notice of allowance mailed

Free format text: ORIGINAL CODE: MN/=.

STCF Information on status: patent grant

Free format text: PATENTED CASE

MAFP Maintenance fee payment

Free format text: PAYMENT OF MAINTENANCE FEE, 4TH YEAR, LARGE ENTITY (ORIGINAL EVENT CODE: M1551); ENTITY STATUS OF PATENT OWNER: LARGE ENTITY

Year of fee payment: 4

FEPP Fee payment procedure

Free format text: MAINTENANCE FEE REMINDER MAILED (ORIGINAL EVENT CODE: REM.); ENTITY STATUS OF PATENT OWNER: LARGE ENTITY

LAPS Lapse for failure to pay maintenance fees

Free format text: PATENT EXPIRED FOR FAILURE TO PAY MAINTENANCE FEES (ORIGINAL EVENT CODE: EXP.); ENTITY STATUS OF PATENT OWNER: LARGE ENTITY

STCH Information on status: patent discontinuation

Free format text: PATENT EXPIRED DUE TO NONPAYMENT OF MAINTENANCE FEES UNDER 37 CFR 1.362

FP Lapsed due to failure to pay maintenance fee

Effective date: 20231229