US2013332218A1PendingUtilityA1
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/535G06Q 10/109Y02P90/80G06F 16/24547Y10S707/99945Y10S707/99948Y10S707/951G06Q 10/1095
64
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 .- 7 . (canceled)
8 . 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.
9 . The method of claim 8 , 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.
10 . The method of claim 9 , further comprising the steps of:
assembling final reminder content by walking said array of hard coded string constants and variable names once; appending string constants to final message content; and using template variable names as a lookup into a dictionary of keyvalue pairs for a particular reminder.
11 . A reminders scheduling method for reducing spikes in delivery volume, comprising the steps of:
spreading a load of reminder deliveries across time without delivering said reminders too late or too early by weighing one or more factors in deciding when to schedule a reminder for delivery, where said factors may comprise any of an intent of a user and a destination device.
12 . The method of claim 11 , further comprising the step of:
inferring said intent of said user by examining a lead time of said reminder, where lead time is a difference between a time an event occurs and a time for which a reminder for said event occurs, wherein the shorter a lead time for a reminder, the less accuracy is required in its delivery.
13 . The method of claim 12 , further comprising the step of:
assigning each reminder to a priority class based on the lead time of said reminder; wherein each priority class has a delivery window during which reminders of that class may be delivered; and wherein size of a window varies according to urgency of a priority class, measured backwards from an ideal delivery time.
14 . The method of claim 11 , further comprising the step of:
clustering reminders into different priority classes based upon any of lead time and destination device.
15 . The method of claim 11 , further comprising the step of:
providing a dynamic priority queue; and using a dynamic prioritization scheme to determine which reminders to deliver; wherein reminders with similar delivery properties are grouped into units of work referred to as jobs.
16 . The method of claim 15 , wherein jobs in said dynamic priority queue are prioritized by their delivery urgency as follows:
jobs that are not yet late are always preferred over jobs that are late; for jobs that are not late, the closer to late they are, the more urgent they are; for jobs that are already late, the less late a job is, the more urgent the job is; and in the event of a tie, prefer a job with the smallest delivery window.
17 . The method of claim 15 , further comprising the step of:
delivering jobs which have less accurate delivery requirements earlier.
18 . 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 ID that is randomly assigned to each record upon its creation, and by assigning a range of distribution IDs to a job.
19 . The method of claim 18 , 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.
20 . The method of claim 18 , further comprising the step of:
said worker starts executing a job that is sorted by a distribution ID; and said worker updating said controller at a regular interval with its progress, measured in terms of said distribution ID.
21 . The method of claim 18 , 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.
22 . The method of claim 18 , 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.
23 . The method of claim 18 , further comprising the steps of:
adding a new worker machine on the fly; and said controller assigning new work on said new machine.Join the waitlist — get patent alerts
Track US2013332218A1 — get alerts on status changes and closely related new filings.
We store only your email — no account needed. See our privacy policy.