US2012030505A1PendingUtilityA1
Method and Apparatus for Calendaring Reminders
Est. expiryJul 16, 2021(expired)· nominal 20-yr term from priority
Inventors:Rupesh ChhatrapatiRichard J. TreitelJon ChesterDavid C. SobotkaLouis LaoAndrew ZaeskeMeera Vengadasubbu
G06Q 10/06G06Q 10/1093H04L 67/535G06F 16/24547Y02P90/80G06Q 10/109Y10S707/99948Y10S707/951Y10S707/99945
57
PatentIndex Score
0
Cited by
0
References
0
Claims
Abstract
An electronic calendar includes such features as recurring reminders, dividing unpredictable work loads into equal pieces, template free parsing, a reminders scheduling algorithm to reduce spikes, dynamic delivery and recovery algorithms, methods for splitting the work load between controllers and workers and for monitoring progress, all within the context of a calendar architecture for a large enterprise.
Claims
exact text as granted — not AI-modified1 . A method for dividing an unpredictable workload into equal pieces, comprising the steps of:
dividing up actions that must be taken during a given time frame into groups of substantially equal size; assigning each group to at least one device, wherein a number of actions to be taken by said at least one device are no greater than said device can take within such time frame; attaching a label to a description of each action, in addition to any details specified by a client and independent therefrom, at a time when a request for action is received from said client, such that all possible labels appear with substantially equal frequency; and grouping actions to be taken in a given time frame according to said labels attached to them into groups of substantially equal size.
2 . A method for delivering messages that are composed of standard reminder content and event-specific content, comprising the steps of:
storing all standard content for reminders in a set of template files; specifying in each template file all standard content for a specific reminder; and including in each template a set of directives that indicate where a substitution of event-specific content should occur.
3 . The method of claim 2 , further comprising the steps of:
at runtime, loading a template file into a cache when it is first needed; and pre-parsing said template file when said template is first loaded into said cache by dissecting said template into an array of hard coded string constants and variable names.
4 . The method of claim 3 , further comprising the steps of:
assembling final reminder content by walking said array of hard coded string constants and variable names; appending string constants to final message content; and using template variable names as a lookup into a dictionary of key-value pairs for a particular reminder.
5 . A method for splitting a large workload, for executing said workload at a specific time, and for finishing said execution within a small period of time, comprising the steps of:
providing a controller for starting a-job as a worker on a different worker machine to distribute said workload evenly across a plurality of worker machines; depending upon said worker machines' capacity, and current usage; and said controller dividing a large job into smaller jobs by grouping records within said large job by a distribution 10 that is randomly assigned to each record upon its creation, and by assigning a range of distribution IDs to a job.
6 . The method of claim 5 , further comprising the step of:
removing a worker machine on the fly should said worker machine fail or need to be taken down; wherein said controller does not start any new work on said worker machine.
7 . The method of claim 5 , further comprising the step of:
said worker starts executing a job that is sorted by a distribution; and said worker updating said controller at a regular interval with its progress, measured in terms of said distribution.
8 . The method of claim 5 , wherein if a worker fails to complete a job, then said controller identifying said failure and restarting a new job that only does work that was not completed by a previous worker, thereby reducing redundant work.
9 . The method of claim 5 , further comprising the step of:
running of a backup controller which keeps an eye on a primary controller and takes charge when said primary controller is not able to do its job to safeguard against any single point of failure.
10 . The method of claim 5 , further comprising the steps of:
adding a new worker machine on the fly; and said controller assigning new work on said new machine.
11 . A system for delivering messages that are composed of standard reminder content and event-specific content, comprising:
at least one user computer comprising a processor, memory, an input device for receiving one or more reminders, and a plurality of processing modules including at least;
a storage module configured for storing all standard content for reminders in a set of template files;
a specification module configured for specifying in each template file all standard content for a specific reminder; and
a substitution module configured for including in each template a set of directives that indicate where a substitution of event-specific content should occur.
12 . The system of claim 11 , further comprising:
a caching module configured for loading, at runtime, a template file into a cache when it is first needed; and a parser configured for pre-parsing said template file when said template is first loaded into said cache by dissecting said template into an array of hard coded string constants and variable names.
13 . The system of claim 12 , further comprising:
an assembly module configured for assembling final reminder content by walking said array of hard coded string constants and variable names; an appendix module configured for appending string constants to final message content; and a lookup module configured for using template variable names as a lookup into a dictionary of key-value pairs for a particular reminder.
14 . A system comprising:
at least one user computer comprising a processor, memory, an input device for receiving one or more reminders, wherein said processor is configured for splitting a large workload, for executing said workload at a specific time, and for finishing said execution within a small period of time; and a plurality of processing modules including at least;
a controller for starting a-job as a worker on a different worker machine to distribute said workload evenly across a plurality of worker machines; depending upon said worker machines' capacity, and current usage; and
wherein said controller is further configured for dividing a large job into smaller jobs by grouping records within said large job by a distribution that is randomly assigned to each record upon its creation, and by assigning a range of distribution IDs to a job.
15 . The system of claim 14 , further comprising:
a removal module configured for removing a worker machine on the fly should said worker machine fail or need to be taken down; wherein said controller does not start any new work on said worker machine.
16 . The system of claim 14 , further comprising:
said worker starts executing a job that is sorted by a distribution; and said worker updating said controller at a regular interval with its progress, measured in terms of said distribution.
17 . The system of claim 14 , wherein the controller is further configured for that, if a worker fails to complete a job, identifying said failure and restarting a new job that only does work that was not completed by a previous worker, thereby reducing redundant work.
18 . The system of claim 14 , wherein the controller is further configured for running of a backup controller which keeps an eye on a primary controller and takes charge when said primary controller is not able to do its job to safeguard against any single point of failure.
19 . The system of claim 14 , further configured for adding a new worker machine on the fly, and wherein said controller is configured for assigning new work on said new machine.
20 . A computer readable medium containing executable code that, when executed by a processing device, performs the method of claim 2 .Join the waitlist — get patent alerts
Track US2012030505A1 — get alerts on status changes and closely related new filings.
We store only your email — no account needed. See our privacy policy.