Deferred reading of email database in mobile environments
Summary by NHIP
Priority-based email database deferral
The method determines event priority before reading an email database to optimize mobile performance. It immediately reads the database for first priority events but defers reading second priority events by a pre-determined time unless a higher priority event occurs first.
Claim Score by NHIP
Abstract
Systems, methods, computer program product embodiments for deferred reading of email databases are described herein. An embodiment includes an event listener configured to poll (or query) the email server and selectively read an email database associated with the email server. Such a selective database read operation is based on the priority of an event occurring in the email server. If events of a low priority occur, the event listener does not open the email database immediately to retrieve additional information related to the low priority event but defers reading the email database by a pre-determined amount of time. If a higher priority event occurs, the email database is immediately read to retrieve details related to the high priority event from the mail server database. In another embodiment, event listener reads the email database based on when event timestamp information is updated by the email server.

Term
2.6 yearsleft in the term
Expires 29 April 2029.
- Priority and filed
- Granted
- Today
- Expires
18 claims: 3 independent, 15 dependent
- 1Broadest claimClaim Score 59, broad(NHIP)A method for deferred reading of data from an email database that includes a plurality of emails, comprising:(a) determining an occurrence of an event in an email server;(b) determining priority of said event prior to reading said data from said email database;(c) reading said email database for said event, when said event is of a first priority;and (d) deferring reading of said email database for said event by a pre-determined amount of time, when said event is of a second priority unless another event of a first priority occurs prior to said pre-determined amount of time elapsing, wherein steps (a)-(d) are performed using one or more processors.
- 10A system for deferred reading of data from an email database that includes a plurality of emails, comprising:one or more processors;an email server;and an event listener to determine an occurrence of an event in said email server prior to reading said data from said email database, wherein said event listener reads said email database for said event, when said event is of a first priority and defers reading of said email database for said event by a pre-determined amount of time, when said event is of a second priority unless another event of a first priority occurs prior to said pre-determined amount of time elapsing, and wherein said email server and said event listener are implemented using said one or more processors.
- 17A computer program product including a non-transitory computer-readable storage medium having instructions stored thereon that, if executed by a processing device, cause said processing device to perform operations comprising:determining an occurrence of an event in an email server associated with data from an email database, said email database including a plurality of emails;determining priority of said event, said priority determined prior to reading said data from said email database;reading said email database for said event, when said event is of a first priority;and deferring reading of said email database for said event by a pre-determined amount of time has elapsed, when said event is of a second priority unless another event of a first priority occurs prior to said pre-determined amount of time elapsing.
Independent claims3
88 paragraphs in 5 sections, as filed
CROSS REFERENCE TO RELATED APPLICATIONS
This patent application is related to U.S. patent application Ser. No. 12/432,330, filed on Apr. 29, 2009, entitled “An Active/Push Notification Facade For a Passive Database System,” and to U.S. patent application Ser. No. 12/104,905 filed on Apr. 17, 2008, entitled “Synchronizing Communications and Data Between Mobile Devices and Servers,” both of which are incorporated by reference herein in their entireties.
BACKGROUND
1. Field of the Invention
The present invention relates generally to mobile communications and, more particularly, to polling email servers and reading data from email databases.
2. Background Art
Mobile devices are in common usage, many featuring powerful processors, larger and more colorful displays, and wireless networking capabilities. Despite these advances in mobile technology, mobile devices typically have greater limitations on memory capacity, data storage capacity, central processing unit (CPU) capacity, and networkability than workstation computers. These limitations require efficient use of resources in a mobile environment.
Interaction using data sets exchanged between mobile devices and email servers often occurs in the context of exchanges of email, calendar appointments, application data, business process tasks, and information stored in email databases. Mobile devices need to frequently communicate with email servers to retrieve emails and events related to the emails from email databases.
Many email servers are passive and lack functionality to notify mobile devices of events related to emails. When associated with such passive servers, mobile devices have to frequently poll and read the email database to check if any events, such as arrival of new emails, have occurred. Constant reading of an email server's database to check email and appointment information consumes valuable network resources. Furthermore, mobile devices use a substantial portion of CPU capacity to perform continuous polling and read operations.
Therefore, systems, methods and computer program products are needed that overcome the limitations of existing email database reading techniques and allow mobile devices to more efficiently retrieve emails and other related events from email databases.
BRIEF SUMMARY
Briefly stated, the invention includes system, method, computer program product embodiments and combinations and sub-combinations thereof for deferred reading of email databases.
An embodiment includes an event listener configured to poll (or query) the email server and read an email database associated with the email server.
The event listener selectively reads the email database based on the priority of an event occurring in the email server. As an example, an operation that includes opening of an email by a user on a mobile device or moving an email between two folders on a mobile device may be categorized as a low priority event. Events such as arrival of a new email in the email server may be categorized as high priority events.
If events of a low priority occur, the event listener does not open the email database immediately to retrieve additional information related to the low priority event but defers its action of reading the email database by a pre-determined period of time. If a higher priority event occurs, the email database is more immediately opened to read details related to the high priority event from the email database. Therefore, event listener proceeds to read the email database after the lapse of a pre-determined amount of time or the occurrence of a high priority event, whichever of these events occurs first.
In another embodiment, the email server is configured to update timestamp information for high priority events. When the event listener determines that a timestamp has been updated, it also determines that a high priority event has occurred and proceeds to access the email database to retrieve information related to that high priority event from the email database.
In this way, the email database is not read for each email related event, thereby saving valuable computational resources. Furthermore, by deferring reading of the email database, information related to multiple low priority events can be retrieved by the event listener in a single read operation instead of multiple read operations. Also, in an embodiment, the event listener needs only to check timestamp(s) in the email server to determine occurrence of high priority events that would necessitate reading of the email database.
Further embodiments, features, and advantages of the invention, as well as the structure and operation of the various embodiments of the invention are, described in detail below with reference to accompanying drawings.
BRIEF DESCRIPTION OF THE DRAWINGS/FIGURES
The accompanying drawings, which are incorporated herein and form part of the specification, illustrate embodiments of the present invention and, together with the description, further serve to explain the principles of the invention and to enable a person skilled in the relevant art(s) to make and use the invention.
<figref idrefs="DRAWINGS">FIG. 1A</figref> illustrates a system for deferred polling of email databases, according to an embodiment of the invention.
<figref idrefs="DRAWINGS">FIG. 1B</figref> illustrates an embodiment of an event listener and associated modules, according to an embodiment of the invention.
<figref idrefs="DRAWINGS">FIG. 2A</figref> is a flowchart illustrating an operation of an event listener, according to an embodiment of the invention.
<figref idrefs="DRAWINGS">FIG. 2B</figref> is a flowchart illustrating an operation of an event listener, according to another embodiment of the invention.
<figref idrefs="DRAWINGS">FIG. 3</figref> is a flowchart illustrating an operation of a synchronization server, according to an embodiment of the invention.
<figref idrefs="DRAWINGS">FIG. 4</figref> is a diagram illustrating a plurality of queues in a synchronization server, according to an embodiment of the invention.
<figref idrefs="DRAWINGS">FIG. 5</figref> illustrates an example computer useful for implementing components of embodiments of the invention.
The features and advantages of the present invention will become more apparent from the detailed description set forth below when taken in conjunction with the drawings. In the drawings, like reference numbers generally indicate identical, functionally similar, and/or structurally similar elements. Generally, the drawing in which an element first appears is indicated by the leftmost digit(s) in the corresponding reference number.
DETAILED DESCRIPTION
While the present invention is described herein with reference to illustrative embodiments for particular applications, it should be understood that the invention is not limited thereto. Those skilled in the art with access to the teachings provided herein will recognize additional modifications, applications, and embodiments within the scope thereof and additional fields in which the invention would be of significant utility.
System
<figref idrefs="DRAWINGS">FIG. 1A</figref> illustrates an exemplary system <b>100</b> for deferred reading of email databases, according to an embodiment of the invention. (While the following is described in terms of mobile environments and mobile devices, the invention is not limited to this embodiment. The invention is applicable to any system having generally the structure of <figref idrefs="DRAWINGS">FIG. 1A</figref>, or that would benefit from the function as described herein.)
System <b>100</b> includes mobile device <b>110</b>, synchronization server <b>120</b>, email server <b>130</b>, event listener <b>140</b> and email database <b>150</b>.
Mobile device <b>110</b> can include, but is not limited to, a device having a processor and memory for executing and storing instructions. Such a mobile device may include software, firmware, and hardware or some combination thereof. The software may include one or more applications and an operating system. The hardware can include, but is not limited to, a processor, memory and user interface display. An optional input device, such as a mouse, stylus or any other pointing device, may be used. In an embodiment, mobile device <b>110</b> includes a client application that receives and displays emails and notifications to a user.
Mobile device <b>110</b> may be one of many devices commonly designated as mobile clients, such as, but not limited to, personal digital assistants (“PDAs”), devices operating according to the Microsoft Pocket PC specification with the Microsoft Windows® CE operating system (OS), devices running the Symbian OS, devices running the Palm OS®, mobile phones, BlackBerry® devices, smart phones, hand held computers, palmtop computers, laptop computers, ultra-mobile PCs, and other wireless mobile devices capable of running mobile applications.
Although <figref idrefs="DRAWINGS">FIG. 1A</figref> illustrates a single mobile device <b>110</b> for clarity, it is to be appreciated that system <b>100</b> is scalable and a plurality of mobile devices can connect to synchronization server <b>120</b> and email server <b>130</b> via network <b>102</b>.
Network <b>102</b> may include one or more networks, including but not limited to, a local area network, medium-area network, and/or wide-area network, such as, the Internet. Network <b>102</b>, for example, may be a wired or wireless network that allows mobile device <b>110</b>, synchronization server <b>120</b>, and email server <b>130</b> to communicate with each other. Network <b>102</b> can further support world-wide web protocols and services.
Mobile device <b>110</b> may receive current data on synchronization server <b>120</b> via network <b>102</b>. Mobile devices may upload their current data to synchronization server <b>120</b> for any given application or set of applications. For example, a calendar application might allow other users to add or make changes to appointments which are then stored on synchronization server <b>120</b>. A user of mobile device <b>110</b> may also have added, deleted, or made changes to appointments within mobile device <b>110</b> itself. Upon synchronization, synchronization server <b>120</b> learns of the appointments made, changed, or deleted on mobile device <b>110</b>, and mobile device <b>110</b> learns of appointments made, changed, or deleted on server <b>120</b>. In accordance with an additional embodiment of the present invention, a partial synchronization is possible, whereby some subset of appointments may be exchanged.
In accordance with an embodiment, data stored in email database <b>150</b> may also be synchronized with local data stores or databases residing on mobile device <b>110</b>. “Data” as used herein may be any object, including, but not limited to, information in any form (text, video, audio, multimedia etc.) and applications.
Email server <b>130</b> facilitates the routing of email messages from one user to another via network <b>102</b>. Email servers are well known to those skilled in the art. As an example, email server <b>130</b> may receive an email from a user and forward that email to mobile device <b>110</b> using synchronization server <b>120</b>. As an example, not intended to limit the invention, email server <b>130</b> is an IBM LOTUS DOMINO email server. In an embodiment, email server <b>130</b> also maintains timestamp information for events that occur in email server <b>130</b>. Such events include, for example, email arrival and email read events.
Email server <b>150</b> is associated with email database <b>150</b> that stores a plurality of emails, including all metadata associated with the emails. Email database <b>150</b> may also store information related to appointments, tasks and a user calendar. Email database <b>150</b> may be located within email server <b>130</b>, in other email servers independent from email server <b>130</b> or even exist as an independent database. In an embodiment, email database <b>150</b> includes a plurality of mail boxes, with each mail box associated with a unique user.
Event Listener
Event listener <b>140</b> determines occurrences of events associated with emails, appointments or any other messaging data in email server <b>130</b>. Although the following is described in terms of emails and email related events, it is to be appreciated that any other form of information, including, but not limited to, appointments, tasks, contacts or journals may be used by embodiments of the invention.
As an example, not intended to limit the invention, event listener <b>140</b> may be implemented as an add-in or a plug-in module for an IBM® LOTUS DOMINO email server. <figref idrefs="DRAWINGS">FIG. 1B</figref> illustrates an exemplary embodiment of event listener <b>140</b>. As illustrated in <figref idrefs="DRAWINGS">FIG. 1B</figref>, event listener <b>140</b> is implemented as an “OBListener” module. OBListener communicates (or polls) with email server <b>130</b> and determines occurrences of events associated with emails, appointments or any other messaging data in email server <b>130</b>, according to embodiments of the invention. Email database <b>150</b> may include a plurality of mailboxes <b>180</b>A-N, each associated with a unique user and configured to receive and store user emails along with any metadata associated with those emails. Users <b>192</b> and <b>194</b> may also communicate with email server <b>130</b> using computing devices <b>190</b>A and <b>190</b>B (e.g. desktop computers) instead of using their mobile devices to send emails, read emails, delete emails, create appointments and other such operations.
Event listener <b>140</b> selectively reads email database <b>150</b> based on the priority of an event occurring in email server <b>130</b>. As an example, an operation that includes opening of an email by a user on mobile device <b>110</b> or moving an email between two folders on mobile device <b>110</b> may be categorized as a low priority event. Events such as arrival of a new email in email server <b>130</b> may be categorized as high priority events. Events can be categorized as low or high priority events according to any pre-defined criteria.
If events of a low priority occur, the event listener does not open email database <b>150</b> immediately to retrieve additional information related to the low priority event but defers its action of reading email database <b>150</b> by a pre-determined period of time. As an example such a pre-determined amount of time may be configurable and set by an administrator (e.g. user <b>150</b>) of email server <b>130</b>.
If a higher priority event occurs, email database <b>150</b> is immediately opened to read details related to the high priority event from email database <b>150</b>. Therefore, event listener proceeds to read email database <b>150</b> after the lapse of a pre-determined amount of time or the occurrence of a high priority event, whichever of these events occurs first.
<figref idrefs="DRAWINGS">FIG. 2A</figref> is method <b>200</b>, illustrating an operation of event listener <b>140</b>, according to an embodiment of the invention.
In step <b>202</b>, an event related to an email occurs in email server <b>130</b>. As an example, such an event can include an email arrival event or an email read event.
In step <b>204</b>, event listener <b>140</b> determines if the event that occurred in step <b>202</b> is a high priority event. As example, a high priority event can include an email arrival event. If event listener <b>140</b> determines that a high priority event has occurred (step <b>204</b>), event listener <b>140</b> proceeds to read email database <b>150</b> associated with email server <b>130</b> to retrieve details of the high priority event (step <b>206</b>). Such details, for example, include email content and email header information. At this time, the event listener <b>140</b> also retrieves details of any deferred low priority events.
In step <b>208</b>, event listener <b>140</b> proceeds to provide the event and data related to the event (e.g. content of an email) to synchronization server <b>120</b>. Synchronization server <b>120</b> may place the event in a queue for subsequent transfer to mobile device <b>110</b>.
In step <b>210</b>, event listener <b>140</b> stores the time at which email database <b>150</b> was last read.
Returning to step <b>204</b>, if event listener <b>140</b> determines that the event was not a high priority event, it does not read email database <b>150</b> and proceeds to check if a pre-determined amount of time has elapsed since email database <b>150</b> was last checked (step <b>212</b>).
If a pre-determined amount of time has elapsed (step <b>212</b>), event listener <b>140</b> proceeds to read email database <b>150</b> (step <b>206</b>). If a pre-determined amount of time has not elapsed (step <b>212</b>), event listener <b>140</b> proceeds to wait and does not read email database <b>150</b> until the pre-determined amount of time elapses or until an event of high priority occurs at email server <b>130</b> (step <b>214</b>).
In this way, event listener <b>140</b> allows one or more low priority events (e.g. read flag events and folder move events) to be read with high priority events (e.g. arrival of a new mail) or after the lapse of a pre-determined amount of time, whichever occurs first. Once email database <b>150</b> is read and the all events are queued up in synchronization server <b>120</b> for subsequent transfer to mobile device <b>110</b>. By deferring the read operation of low priority events, embodiments of the invention save significant processing resources.
In another embodiment, event listener <b>140</b> reads timestamp information stored in email server <b>130</b>. In an embodiment each email related event is associated with its own timestamp.
In another embodiment, low priority events (e.g. email read events or email folder move events) may not be associated with time stamps and high priority events (e.g. arrival of new emails) are associated with time stamps. Therefore, if event listener <b>140</b> determines that a time stamp value has changed in email server <b>130</b>, it determines that a high priority event has occurred and event listener <b>140</b> immediately proceeds to read details related to the higher priority event from email database <b>150</b>.
If events of a lower priority occur, the event listener <b>140</b> does not open the email database <b>150</b> immediately to retrieve additional information related to the lower priority event but defers its action of opening email database <b>150</b> by a pre-determined period of time.
As an illustrative example, if no high priority events occur (e.g. email arrival events), event listener <b>140</b> does not read email database <b>150</b> associated with email server <b>130</b>. Event listener <b>140</b> is able to determine an occurrence of a high priority event by an updated timestamp in email server <b>130</b>. During the time no high priority events are occurring there may be one or more low priority events that occur. Such low priority events do not cause email server <b>130</b> to change or modify the timestamp. Event listener <b>140</b> does not read email database <b>150</b> for such low priority events. However, event listener <b>140</b> proceeds to read email database <b>150</b> after the lapse of a pre-determined amount of time or the occurrence of an updated timestamp, whichever of these occurs first.
In this way, event listener <b>140</b> allows one or more low priority events (e.g. read flag events and folder move events) to be read with high priority events (e.g. arrival of a new mail) or after the lapse of a pre-determined amount of time, whichever occurs first. Once email database <b>150</b> is read and the all events are queued up in synchronization server <b>120</b> for subsequent transfer to mobile device <b>110</b>. By deferring the read operation of low priority events, embodiments of the invention save significant processing resources.
<figref idrefs="DRAWINGS">FIG. 2B</figref> is method <b>220</b> illustrating the operation of event listener <b>140</b> according to the above described embodiment of the invention. In the following embodiment, email server <b>130</b> is configured to store time stamps for high priority events. Therefore, as described below, event listener <b>140</b> reviews timestamp information of email server <b>130</b> to identify high priority events.
Method <b>220</b> begins with event listener <b>140</b> polling email server <b>130</b>'s timestamp information (step <b>222</b>)
In step <b>224</b>, event listener <b>140</b> determines if email server <b>130</b> has updated a timestamp. As described earlier, in this embodiment, email server <b>130</b> is configured to store timestamps for high priority events. If event listener <b>140</b> determines that a time stamp has been updated (step <b>224</b>), event listener <b>140</b> thereby determines that a high priority event has occurred and immediately reads email database <b>150</b> associated with email server <b>130</b> to retrieve details of the high priority event (step <b>226</b>). Such details, for example, include email content and email header information.
In step <b>228</b>, event listener <b>140</b> stores the time at which email database <b>150</b> was last read.
In step <b>230</b>, event listener <b>140</b> proceeds to provide the event and any related data to synchronization server <b>120</b>. Synchronization server <b>120</b> may place the event in a queue for subsequent transfer to mobile device <b>110</b>.
Returning to step <b>224</b>, if event listener <b>140</b> determines that no time stamp has been updated, it does not read email database <b>150</b> and proceeds to check if a pre-determined amount of time has elapsed since email database <b>150</b> was last read (step <b>232</b>).
If a pre-determined amount of time has elapsed (step <b>232</b>), event listener <b>140</b> proceeds to read email database <b>150</b> (step <b>226</b>). If a pre-determined amount of time has not elapsed (step <b>232</b>), event listener <b>140</b> proceeds to wait and does not read email database <b>150</b> until the pre-determined amount of time elapses or until a time stamp is updated by email server <b>130</b> (step <b>234</b>).
In this way, event listener <b>140</b> needs only to check time stamp information of email server <b>130</b>. Checking for an update to timestamp information in not a resource intensive operation and thus saves system resources while preventing overloading of email server <b>130</b>.
Synchronization Server
In an embodiment, synchronization server <b>120</b> routes communication between email server <b>130</b> and mobile device <b>110</b>. As an example, synchronization server <b>120</b> may relay email related events (e.g. moving of an email into a folder) to email server <b>130</b>. Also, if a new email message arrives at email server <b>130</b>, event listener <b>140</b> forwards a notification of this event to synchronization server <b>120</b>. In this way, event listener <b>140</b> acts as a notification facade for a passive email server <b>130</b> that does not provide notification of such events to synchronization server <b>120</b>. An exemplary notification facade is described in detail in U.S. patent application Ser. No. 12/432,330, filed Apr. 29, 2009, entitled “An Active/Push Notification Facade For a Passive Database System,” which is incorporated by reference herein in its entirety. Message communication between synchronization server <b>120</b> and mobile device <b>110</b> is described in greater detail in U.S. patent application Ser. No. 12/104,905 filed on Apr. 17, 2008, entitled “Synchronizing Communications and Data Between Mobile Devices and Servers,” also incorporated by reference herein in its entirety.
<figref idrefs="DRAWINGS">FIG. 3</figref> illustrates flowchart <b>300</b> describing an exemplary operation of synchronization server <b>120</b>, according to an embodiment of the invention.
In step <b>302</b>, synchronization server <b>120</b> receives an event notification from event listener <b>140</b>. As an example, such a notification may be related to the arrival of a new email message at email server <b>130</b>.
In step <b>304</b>, synchronization server <b>120</b> places the notification of the event in a synchronization queue. As an example, such a synchronization queue may include event notifications that were previously received from event listener <b>140</b>.
In step <b>306</b>, synchronization server <b>120</b> proceeds to transmit the event notification received in step <b>302</b> to mobile device <b>110</b>. As an example, the event notification may be transmitted to mobile device <b>110</b> whenever it is ‘online’ or connected to network <b>102</b>. Furthermore, if mobile device <b>110</b> is ‘offline’ or disconnected from network <b>102</b>, synchronization server <b>120</b> may wait to send the event notification to the device till is online. Whenever mobile device <b>110</b> receives the event notification from synchronization server <b>120</b>, an email client instantiated on mobile device <b>110</b> displays the event to a user.
In this way, synchronization server <b>120</b> communicates event notifications between email server <b>130</b> and mobile device <b>110</b>.
<figref idrefs="DRAWINGS">FIG. 4</figref> illustrates a plurality of event (or message) queues <b>410</b>A-<b>410</b>N in synchronization server <b>120</b>. As illustrated in <figref idrefs="DRAWINGS">FIG. 4</figref>, embodiments of the invention allow for a separate message queue for each user. In this way, embodiments of the invention allow events to be transmitted from email server <b>130</b> to mobile device <b>110</b> via synchronization server <b>120</b>.
Example Computer Embodiment
In an embodiment of the present invention, the system and components of embodiments described herein are implemented using well known computers, such as computer <b>502</b> shown in <figref idrefs="DRAWINGS">FIG. 5</figref>. For example, synchronization server <b>120</b> or email server <b>130</b> can be implemented using computer(s) <b>502</b>.
The computer <b>502</b> can be any commercially available and well known computer capable of performing the functions described herein, such as computers available from International Business Machines, Apple, Sun, HP, Dell, Compaq, Digital, Cray, etc.
The computer <b>502</b> includes one or more processors (also called central processing units, or CPUs), such as a processor <b>506</b>. The processor <b>506</b> is connected to a communication bus <b>504</b>.
The computer <b>502</b> also includes a main or primary memory <b>508</b>, such as random access memory (RAM). The primary memory <b>508</b> has stored therein control logic <b>528</b>A (computer software), and data.
The computer <b>502</b> also includes one or more secondary storage devices <b>510</b>. The secondary storage devices <b>510</b> include, for example, a hard disk drive <b>512</b> and/or a removable storage device or drive <b>514</b>, as well as other types of storage devices, such as memory cards and memory sticks. The removable storage drive <b>514</b> represents a floppy disk drive, a magnetic tape drive, a compact disk drive, an optical storage device, tape backup, etc.
The removable storage drive <b>514</b> interacts with a removable storage unit <b>516</b>. The removable storage unit <b>516</b> includes a computer useable or readable storage medium <b>524</b> having stored therein computer software <b>528</b>B (control logic) and/or data. Removable storage unit <b>516</b> represents a floppy disk, magnetic tape, compact disk, DVD, optical storage disk, or any other computer data storage device. The removable storage drive <b>514</b> reads from and/or writes to the removable storage unit <b>516</b> in a well known manner.
The computer <b>502</b> also includes input/output/display devices <b>522</b>, such as monitors, keyboards, pointing devices, etc.
The computer <b>502</b> further includes a communication or network interface <b>518</b>. The network interface <b>518</b> enables the computer <b>502</b> to communicate with remote devices. For example, the network interface <b>518</b> allows the computer <b>502</b> to communicate over communication networks or mediums <b>524</b>B (representing a form of a computer useable or readable medium), such as LANs, WANs, the Internet, etc. The network interface <b>518</b> may interface with remote sites or networks via wired or wireless connections.
Control logic <b>528</b>C may be transmitted to and from the computer <b>502</b> via the communication medium <b>524</b>B. More particularly, the computer <b>502</b> may receive and transmit carrier waves (electromagnetic signals) modulated with control logic <b>530</b> via the communication medium <b>524</b>B.
Any apparatus or manufacture comprising a computer useable or readable medium having control logic (software) stored therein is referred to herein as a computer program product or program storage device. This includes, but is not limited to, the computer <b>502</b>, the main memory <b>508</b>, secondary storage devices <b>510</b>, the removable storage unit <b>516</b> and the carrier waves modulated with control logic <b>530</b>. Such computer program products, having control logic stored therein that, when executed by one or more data processing devices, cause such data processing devices to operate as described herein, represent embodiments of the invention.
The invention can work with software, hardware, and/or operating system implementations other than those described herein. Any software, hardware, and operating system implementations suitable for performing the functions described herein can be used.
The Summary and Abstract sections may set forth one or more but not all exemplary embodiments of the present invention as contemplated by the inventor(s), and thus, are not intended to limit the present invention and the appended claims in any way.
The present invention has been described above with the aid of functional building blocks illustrating the implementation of specified functions and relationships thereof. The boundaries of these functional building blocks have been arbitrarily defined herein for the convenience of the description. Alternate boundaries can be defined so long as the specified functions and relationships thereof are appropriately performed.
The foregoing description of the specific embodiments will so fully reveal the general nature of the invention that others can, by applying knowledge within the skill of the art, readily modify and/or adapt for various applications such specific embodiments, without undue experimentation, without departing from the general concept of the present invention. Therefore, such adaptations and modifications are intended to be within the meaning and range of equivalents of the disclosed embodiments, based on the teaching and guidance presented herein. It is to be understood that the phraseology or terminology herein is for the purpose of description and not of limitation, such that the terminology or phraseology of the present specification is to be interpreted by the skilled artisan in light of the teachings and guidance.
The breadth and scope of the present invention should not be limited by any of the above-described exemplary embodiments, but should be defined only in accordance with the following claims and their equivalents.
The claims in the instant application are different than those of the parent application or other related applications. The Applicant therefore rescinds any disclaimer of claim scope made in the parent application or any predecessor application in relation to the instant application. The Examiner is therefore advised that any such previous disclaimer and the cited references that it was made to avoid, may need to be revisited. Further, the Examiner is also reminded that any disclaimer made in the instant application should not be read into or against the parent application.
Contents5
8 sheets
Sheet 1 Sheet 2 Sheet 3 Sheet 4 Sheet 5 Sheet 6 Sheet 7 Sheet 8
Every citation, both ways
| Document | Relation | Office | Cited during |
|---|---|---|---|
| US9524312B2 | Cited by | United States of America | Applicant |
| US2012137302A1 | Cited by | United States of America | Pre-grant |
| US2010280993A1 | Cited by | United States of America | Pre-grant |
| US5377354A | Cites | United States of America | Search report |
| US6356633B1 | Cites | United States of America | Search report |
| US6611519B1 | Cites | United States of America | Search report |
| US7092707B2 | Cites | United States of America | Search report |
| US7120865B1 | Cites | United States of America | Search report |
| US7281201B2 | Cites | United States of America | Search report |
| US7305402B2 | Cites | United States of America | Search report |
| US7324510B2 | Cites | United States of America | Search report |
4 members in 1 office
Priority claims2
| Document | Office | Kind | Date |
|---|---|---|---|
| 43242509 | United States of America | A | |
| US20090432425 | – | – | – |
Members4
| Document | Office | Kind | |
|---|---|---|---|
| US2010280993A1 | United States of America | A1 | |
| US2010281119A1 | United States of America | A1 | |
| US8200768B2This record | United States of America | B2 | |
| US9524312B2 | United States of America | B2 |
39 transactions on the USPTO file
Allowed after 1 non-final rejection, 1 final rejection and 1 RCE.
- Non-final rejections
- 1
- Final rejections
- 1
- RCEs
- 1
- Appeals
- 0
Over time
Point at a mark for the transactionTransactions
| Event | Code | |
|---|---|---|
| Payment of Maintenance Fee, 12th Year, Large EntityM1553 | M1553 | |
| Payment of Maintenance Fee, 8th Year, Large EntityM1552 | M1552 | |
| Post Issue Communication - Certificate of CorrectionN423 | N423 | |
| Recordation of Patent Grant MailedPGM/ | PGM/ | |
| Patent Issue Date Used in PTA CalculationAllowedPTAC | PTAC | |
| Issue Notification MailedAllowedWPIR | WPIR | |
| Dispatch to FDCD1935 | D1935 | |
| Application Is Considered Ready for IssuePILS | PILS | |
| Issue Fee Payment VerifiedN084 | N084 | |
| Issue Fee Payment ReceivedIFEE | IFEE | |
| Workflow - Request for RCE - FinishFRCE | FRCE | |
| Mail Notice of AllowanceAllowedMN/=. | MN/=. | |
| Notice of Allowance Data Verification CompletedAllowedN/=. | N/=. | |
| Examiner's Amendment CommunicationEX.A | EX.A | |
| Disposal for a RCE / CPA / R129AbandonedABN9 | ABN9 | |
| Date Forwarded to ExaminerFWDX | FWDX | |
| Workflow - Request for RCE - BeginBRCE | BRCE | |
| Request for Continued Examination (RCE)RCEX | RCEX | |
| Request for Extension of Time - GrantedXT/G | XT/G | |
| Mail Final Rejection (PTOL - 326)Final rejectionMCTFR | MCTFR | |
| Final RejectionFinal rejectionCTFR | CTFR | |
| Case Docketed to Examiner in GAUDOCK | DOCK | |
| Date Forwarded to ExaminerFWDX | FWDX | |
| Response after Non-Final ActionA... | A... | |
| Request for Extension of Time - GrantedXT/G | XT/G | |
| Mail Non-Final RejectionNon-final rejectionMCTNF | MCTNF | |
| Non-Final RejectionNon-final rejectionCTNF | CTNF | |
| PG-Pub Issue NotificationPG-ISSUE | PG-ISSUE | |
| Case Docketed to Examiner in GAUDOCK | DOCK | |
| Case Docketed to Examiner in GAUDOCK | DOCK | |
| Case Docketed to Examiner in GAUDOCK | DOCK | |
| Preliminary AmendmentA.PE | A.PE | |
| Preliminary AmendmentA.PE | A.PE | |
| Application Dispatched from OIPEOIPE | OIPE | |
| Sent to Classification ContractorPGPC | PGPC | |
| Filing ReceiptFLRCPT.O | FLRCPT.O | |
| Cleared by OIPE CSRL194 | L194 | |
| IFW Scan & PACR Auto Security ReviewSCAN | SCAN | |
| Initial Exam Team nnIEXX | IEXX |
6 legal events, as the office reported them to INPADOC
Over the term
Point at a mark for the eventEvents
| Event | Code | |
|---|---|---|
| Maintenance fee paymentMAFP | MAFP | |
| Maintenance fee paymentMAFP | MAFP | |
| Fee paymentFPAY | FPAY | |
| Certificate of correctionCC | CC | |
| Information on status: patent grantGrantedPATENTED CASESTCF | STCF | |
| AssignmentAS | AS |
Numbers
- Publication
- 08200768
- Publication, DOCDB
- 8200768
- Publication, EPODOC
- US8200768
- Application
- 12432425
- Application, DOCDB
- 43242509
- Application, EPODOC
- US20090432425
Titles
- English
- Deferred reading of email database in mobile environments
Patent term adjustment
- A delay
- +168 daysthe office missed an examination deadline
- Applicant delay
- −171 days
- Net adjustment
- 0 days
Classification
- CPC, 2
- H04L51/226
- H04L51/214
- IPC, 1
- G06F15 16
- USPC, 2
- 709206000
- 709224000