EP1873986B1 - Automatic data synchronization - Google Patents

Automatic data synchronization Download PDF

Info

Publication number
EP1873986B1
EP1873986B1 EP06116394A EP06116394A EP1873986B1 EP 1873986 B1 EP1873986 B1 EP 1873986B1 EP 06116394 A EP06116394 A EP 06116394A EP 06116394 A EP06116394 A EP 06116394A EP 1873986 B1 EP1873986 B1 EP 1873986B1
Authority
EP
European Patent Office
Prior art keywords
computer
server
computing device
handheld computing
detecting
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.)
Active
Application number
EP06116394A
Other languages
German (de)
French (fr)
Other versions
EP1873986A1 (en
Inventor
Neil Adams
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.)
BlackBerry Ltd
Original Assignee
Research in Motion Ltd
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 Research in Motion Ltd filed Critical Research in Motion Ltd
Priority to AT06116394T priority Critical patent/ATE411683T1/en
Priority to EP06116394A priority patent/EP1873986B1/en
Priority to DE602006003205T priority patent/DE602006003205D1/en
Priority to CA002592811A priority patent/CA2592811A1/en
Publication of EP1873986A1 publication Critical patent/EP1873986A1/en
Application granted granted Critical
Publication of EP1873986B1 publication Critical patent/EP1873986B1/en
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L51/00User-to-user messaging in packet-switching networks, transmitted according to store-and-forward or real-time protocols, e.g. e-mail
    • H04L51/21Monitoring or handling of messages
    • H04L51/214Monitoring or handling of messages using selective forwarding

Definitions

  • handheld computing devices with an email capability are able to synchronize with a user's personal computer, thereby allowing the user to receive email either through their personal computer or through their handheld computing device. Synchronizing between the personal computer and the handheld computing device allows the status of emails between the two platforms to be synchronized. Thus, an email which was read on the user's computer, will be marked as already being read on the handheld computing device. This can be extremely helpful especially if the two platforms can retrieve email independently of one another from a central email server.
  • a method for ensuring data synchronization between specific data on a server and data on a handheld computing device in a communication system in which the handheld communication device can communicate with a computer via a short range wireless link, the computer is coupled to the server, and both the computer and the handheld communication device receive said specific data from the server, the method comprising detecting a change in status of the short range wireless link between said computer and said handheld computing device; and automatically initiating a synchronization process on said server to synchronize said specific data between said server and said handheld computing device in response to detecting said change in status.
  • a system for ensuring data synchronization between specific data on a server and data on a handheld computing device in a communication system in which the handheld computing device can communicate with a computer via a short range wireless link, the computer is coupled to the server, and both the computer and the handheld computing device receive said specific data from the server, the system comprisingmeans for detecting a change in status of the short range wireless link between said computer and said handheld computing device; and means for automatically initiating a synchronization process on said server to synchronize said specific data between said server and said handheld computing device in response to detecting said change in status.
  • a computer having means for establishing a short range radio link with a handheld computing device, means for receiving specific data from a server, means for detecting a change in status of the short range wireless link between said computer and said handheld computing device, and being configured automatically to initiate a synchronization process on said server to synchronize said specific data between said server and said handheld computing device in response to detecting said change in status.
  • a handheld computing device having means for establishing a short range radio link with a computer, means for receiving specific data from a server, means for detecting a change in status of the short range wireless link between said computer and said handheld computing device, and being configured automatically to initiate a synchronization process on said server to synchronize said specific data between said server and said handheld computing device in response to detecting said change in status.
  • computer readable media having embodied thereon computer readable code for causing a computing device or system to perform the method described above.
  • Figure 1 is a block diagram of a system on which the present solution may be practiced
  • Figure 2 is a flowchart of a method according to the present solution.
  • Figure 3 is a flowchart of a method according to the present solution implementing a specific embodiment of the solution.
  • the following description discusses methods and systems for automatically synchronizing data between an email server and a handheld computing device based on an event occurring on a personal computer communicating with the server.
  • a module in the personal computer monitors events in the operating system of the personal computer that signifies that the user is either away from the vicinity of the computer or is about to leave the computer. Upon detecting these events, the module initiates an automatic synchronization of data between the server and the handheld computing device. This way, emails which have already been seen or responded to by the user on the computer will appear as such on the handheld computing device.
  • a server 10 (illustrated as an email server) is coupled to or in communication with a personal computer 20.
  • the personal computer 20 receives data from the server 10 that is related to a user such as that user's email, calendar, contacts, email lists, etc. A user can thus access these and other server stored information through the personal computer 20.
  • a handheld computing device 30 with an email capability is also capable of communicating with the computer 20, either via a cable or a short-range wireless link, such as a Bluetooth compatible wireless link.
  • the data on the server 10 and on the device 30 may be synchronized by a user-initiated synchronization process. Such a process would ensure that data previously accessed by the user through or received through the computer 20 from the server 10 and data on the device 30 are synchronized. Such a process also ensures that the data server 10 is synchronized with the data on the device 30. It should be noted that such data may also be stored on the computer 20 - the server 10 usually ensures that data stored on the computer 20 is kept synchronized with the data on the server 10.
  • the server 10 communicates with the device 30 via a wireless link and may do so independently of the computer 20.
  • the server 10 may use "push" technology to send data, such as email, to the device 30 even when the device 30 is not in the vicinity of either the computer 20 or the server 10.
  • email the same emails are sent by the server 10 to the computer 20 when the computer is turned on.
  • a user can access email either through the computer 20 or the device 30.
  • Synchronizing the data between the server 10 and the device 30 addresses this concern as, after synchronization, data previously accessed on one platform (either the computer 20 or the device 30) is shown or marked as already having been accessed on the other platform.
  • the synchronization process may be initiated by the user using either the device 30 or the computer 20.
  • a synchronization of data is automatically initiated after a set time interval.
  • the time interval is too small, would unduly use up the bandwidth or airtime for the wireless link between the server 10 and the device 30.
  • An automatic synchronization 10 is quite useful when coupled with a suitable means for determining when the synchronization is to occur.
  • the system could initiate an automatic synchronization when an event occurs which indicates that the user has left his computer or is about to leave his computer or has returned to his desk.
  • an event can be the detection of a computer shutdown, a locking up of the computer, an activation of a screen saver, an indication that the device (and hence the user) is physically moving away from the computer, or any other event which may indicate that the user has left the computer.
  • the event can also be an indication that the user has returned to his desk.
  • Such an event can be the detection of the computer powering up, an unlocking of the computer by the user logging onto the computer, a deactivation of a screen saver, or other indications that the device (and hence the user) has returned to the computer.
  • FIG. 2 A flowchart of a method according to the above is illustrated in Fig 2 .
  • the method starts by checking software parameters in the computer 20 to determine if one or more of a number of events have occurred (step 40).
  • Step 50 decides, after the checking in step 40, if any of the specific events have occurred. If any of the events have not occurred, then the logic flow returns to step 40. If the events have occurred, then a synchronization process is initiated (step 60).
  • the detection of the relevant event may be accomplished in numerous ways. Depending on the operating system on the computer 20 and on the event being detected, detection can be as simple as waiting for a specific message from the operating system.
  • a system shutdown can be detected by listening for a specific message from the operating system.
  • a specific message (WM_QueryEndSession) is sent by the operating system to all open applications or processes.
  • the open application can initiate a synchronization process and may delay the system shutdown until the synchronization process is completed.
  • the system shutdown may not even need to be delayed as the synchronization process is executed at the server 10 and not at the computer 20.
  • the computer 20 when a system shutdown is detected by a specific application, can send a message to the server 10 to initiate a synchronization process.
  • Another example of detecting a specific event can be that of detecting the initiation or the execution of the operating system's screen saver. Since screen saver programs are usually started after a given interval of inactivity on the computer, the initiation of a screen saver is a good indication that a user is probably away from his computer.
  • the function SystemParametersInfo can be called with the flag SPI_GETSCREENSAVERRUNNING to determine whether a screen saver is running. If the flag indicates that a screen saver is running, then the system can initiate the synchronization process with a suitable message to the server.
  • Other events which indicate a lack of activity on the computer for a predetermined amount of time may also be detected.
  • One of these events may be a locking process that is used in conjunction with or in place of a screen saver program. The occurrence of some of these events, such as the locking process, may be determined by calling similar functions to that called to detect the screen saver program.
  • the event to be detected which would automatically initiate a synchronization may indicate that a user has returned to the computer. Depending on the event being detected, this may be done in various ways. For Windows-based systems, if a synchronization is to be initiated after a user initially logs in to the computer or after the computer is initially turned on, a small stand alone applet may be created which would be placed in the "Startup" directory. Execution of this applet would initiate a synchronization. Since all the programs in the "Startup" directory are automatically executed when the computer is started up (either a cold boot, an initial logging in of a user, or a soft boot), then this approach ensures that a synchronization is initiated every time the computer is started up.
  • the event to be detected is the shutdown of a program such as a screen saver (i.e. indicating that a user has returned to his computer)
  • a flag transition from a "screen saver running" state to a "screen saver not running” state can be used to trigger the synchronization.
  • a flag's present value one of which is predetermined to indicate that a screen saver is running, this value can be saved as a past value for the next comparison. For every comparison, the flag's present value is compared to the flag's past value and, if the two equal one another, then no synchronization is required as this means that no transition has occurred.
  • the flag's present value is saved as the past value after every comparison. If the two values do not equal one another when compared, then a transition has occurred in that either the screen saver has been initiated or has been terminated. Either way, a synchronization is initiated.
  • This approach not only forces a synchronization when a screen saver program is started, it also forces a synchronization when the screen saver program is turned off or terminated. If only the termination of a screen saver program is desired to cause an initiation of a synchronization, then extra logic that detects a specific transition, from a "screen saver running" state to a "screen saver not running” state, may be used to trigger the synchronization.
  • the use of flags may again be used.
  • a flag may be set to a predetermined value whenever the locking process is called and it be set to another value when the locking process terminates.
  • the status of the locking process may be determined by an appropriate call to the operating system.
  • a locking process flag's present value is compared to its previous value. If the two do not equal one another, then a transition in the state of the locking process has occurred. If the two do equal one another, then a transition has not occurred. A synchronization may thus be initiated when a transition is detected.
  • a transition indicates that either a period of inactivity has caused the locking process to be called or that activity (the user's logging back in) has followed a period of inactivity and that, thus, the locking process has terminated.
  • the locking process flag's value is saved after every comparison to be used as the previous flag value for the next comparison.
  • the event which triggers the synchronization process could be the severing of the wireless link between the computer and the device or the establishment of such a wireless link.
  • a synchronization process can be initiated once the presence of the device on the wireless link transitions from available to not available or from not available to available. Since the computer keeps track of the wireless devices connected to it, a software flag can be used to trigger the synchronization process. If the device is detected by the computer as being available via the wireless link, the flag can be set to one. If the device cannot be detected by the computer, then the flag is set to zero.
  • the computer can thus be programmed to initiate a synchronization process when the flag transitions from a one value to a zero value. Such a transition would mean that the device has either left the range of the wireless receiver/transmitter on the computer or that the device has been turned off. Either way, a synchronization process would ensure that the user will not need to initiate a synchronization process when he checks his device for email and/or other data.
  • the computer can also be programmed to initiate a synchronization process when a wireless link between the computer and the handheld device is established. Such a scenario would be useful for when the user returns to his desktop computer.
  • the software flag noted above may be used.
  • a synchronization process may be initiated by the computer upon any transition of the software flag. A flag transition from a zero value to a one value indicates the establishing of a wireless link while a flag transition from a one value to a zero value indicates a severing of such a link.
  • the computer can be programmed to initiate a synchronization process once either of these transition is detected.
  • the handheld device may perform such a detection and may initiate the synchronization process.
  • the handheld device can therefore detect either the presence or absence of such a wireless link, perhaps through the use of a similar software flag.
  • the synchronization process may then be automatically initiated by the handheld device.
  • the transition can be detected by saving a previous state of the software flag and comparing this with a current state of the same flag. Periodic checks on this flag while simultaneously saving the current flag state can ensure that changes in the availability of the wireless link are detected.
  • the previous flag state differs from the current flag state, then there has been a transition and a synchronization process needs to be initiated.
  • the above options may be implemented separately by different software modules which may be part of a larger software package.
  • the three options given above may be implemented as a single module which may incorporate other tests for other events.
  • Such a module would implement the logic illustrated in the flowchart of Fig 3 .
  • step 70 that of checking for messages from the operating system of the computer.
  • a decision 80 determines if a shutdown of the operating system is about to occur. This can be determined by, as explained above, checking if a specific shutdown message has been received by the operating system. If a shutdown is to occur, step 90 is that of sending a message to the server to cause the initiation of the synchronization process.
  • decision 110 checks if a screen saver program is running. As noted above, this can be done by calling a specific function in the Windows operating system. Depending on the results of the function call, it can be determined if a screen saver is running or not. If it is, then step 90, that of initiating a synchronization by sending a message to the server, is executed.
  • decision 120 determines if a short-range wireless connection between the computer and the device exists. If there is currently such a connection, the logic flow returns to step 70. If there is no connection, then decision 130 checks if such a connection previously existed. This may be done using a flag as explained above. Decision 130 can be as simple as checking the above noted flag. If the device was not previously connected to the computer, then the logic flow passes again to step 70. If the device was previously connected, then step 90 is executed. As noted above, decision 130 may be simplified by merely determining if the software flag has recently transitioned from one state to another. Such a transition would indicate that the wireless link has either been severed or reestablished. In either event, a synchronization process would be called for.
  • Fig 3 illustrates checking for these specific events, it can be extended to check for any number of system/computer events which may signify that the user has left or is about to leave the computer or has returned to his computer.
  • PIM Personal Information Manager
  • Embodiments of the invention may be implemented in any conventional computer programming language.
  • preferred embodiments may be implemented in a procedural programming language (e.g. "C") or an object oriented language (e.g. "C++").
  • Alternative embodiments of the invention may be implemented as pre-programmed hardware elements, other related components, or as a combination of hardware and software components.
  • Embodiments can be implemented as a computer program product for use with a computer system.
  • Such implementation may include a series of computer instructions fixed either on a tangible medium, such as a computer readable medium (e.g., a diskette, CD-ROM, ROM, or fixed disk) or transmittable to a computer system, via a modem or other interface device, such as a communications adapter connected to a network over a medium.
  • the medium may be either a tangible medium (e.g., optical or electrical communications lines) or a medium implemented with wireless techniques (e.g., microwave, infrared or other transmission techniques).
  • the series of computer instructions embodies all or part of the functionality previously described herein.
  • Such computer instructions can be written in a number of programming languages for use with many computer architectures or operating systems. Furthermore, such instructions may be stored in any memory device, such as semiconductor, magnetic, optical or other memory devices, and may be transmitted using any communications technology, such as optical, infrared, microwave, or other transmission technologies. It is expected that such a computer program product may be distributed as a removable medium with accompanying printed or electronic documentation (e.g., shrink wrapped software), preloaded with a computer system (e.g., on system ROM or fixed disk), or distributed from a server over the network (e.g., the Internet or World Wide Web).
  • some embodiments of the invention may be implemented as a combination of both software (e.g., a computer program product) and hardware. Still other embodiments of the invention may be implemented as entirely hardware, or entirely software (e.g., a computer program product).

Abstract

The proposed solution relates to methods and systems for automatically synchronizing data between an email server and a handheld computing device based on an event occurring on a personal computer communicating with the server. A module in the personal computer monitors events in the operating system of the personal computer that signifies that the user is either away from the vicinity of the computer or is about to leave the computer. Upon detecting these events, the module initiates an automatic synchronization of data between the server and the handheld computing device. This way, emails which have already been seen or responded to by the user on the computer will appear as such on the handheld computing device.

Description

  • The use of electronic communications for both business and personal purposes has been increasing in the past few years. The use of email has caused people to place an increasing reliance on email as one of the main means by which to communicate with others. This increasing reliance has given rise to the development and proliferation of email capable handheld or portable computing devices. Such devices, whether they be personal digital assistants (PDAs) or dedicated wireless email devices, are now capable of receiving and sending email without the need for a personal computer.
  • Currently, such handheld computing devices with an email capability are able to synchronize with a user's personal computer, thereby allowing the user to receive email either through their personal computer or through their handheld computing device. Synchronizing between the personal computer and the handheld computing device allows the status of emails between the two platforms to be synchronized. Thus, an email which was read on the user's computer, will be marked as already being read on the handheld computing device. This can be extremely helpful especially if the two platforms can retrieve email independently of one another from a central email server.
  • However, even though current devices allow for synchronization between the two platforms, such synchronization can usually occur when the user expressly initiates the synchronization process or after a predetermined period of time. An automated synchronization process helps and is available but such an option does not take into account the possibility that the user may receive email at both platforms while he is away from his personal computer. To ensure that email accessed and read on the handheld device is marked as such on the personal computer or that email already accessed on the personal computer is marked as such on the handheld device, the user must initiate a manual synchronization between the two platforms. Alternatively, the user may need to wait for a regularly timed automatic synchronization to ensure that the emails on the personal computer and on the handheld device are in the same state. A further alternative would be to manually sift through the emails on each platform.
    [0003a] Our earlier patent application WO-A-01/78319 discloses a system in which an event triggers the forwarding of emails from a host system, in this case a desk top computer, to a mobile device. Various "events" are discussed that trigger the forwarding of emails. The mobile device is synchronized with the desktop computer at intervals to ensure that email data on the computer is consistent with email data on the mobile device. This disclosure is not concerned with a system in which computer and mobile device receive emails from a server.
  • Based on the above, there is therefore a need for solutions which address the above issues.
  • GENERAL
  • [0004a] In one aspect there is provided a method for ensuring data synchronization between specific data on a server and data on a handheld computing device, in a communication system in which the handheld communication device can communicate with a computer via a short range wireless link, the computer is coupled to the server, and both the computer and the handheld communication device receive said specific data from the server, the method comprising detecting a change in status of the short range wireless link between said computer and said handheld computing device; and automatically initiating a synchronization process on said server to synchronize said specific data between said server and said handheld computing device in response to detecting said change in status.
    [0004b] In another aspect there is provided a system for ensuring data synchronization between specific data on a server and data on a handheld computing device, in a communication system in which the handheld computing device can communicate with a computer via a short range wireless link, the computer is coupled to the server, and both the computer and the handheld computing device receive said specific data from the server, the system comprisingmeans for detecting a change in status of the short range wireless link between said computer and said handheld computing device; and means for automatically initiating a synchronization process on said server to synchronize said specific data between said server and said handheld computing device in response to detecting said change in status.
    [0004c] In another aspect there is provided a computer having means for establishing a short range radio link with a handheld computing device, means for receiving specific data from a server, means for detecting a change in status of the short range wireless link between said computer and said handheld computing device, and being configured automatically to initiate a synchronization process on said server to synchronize said specific data between said server and said handheld computing device in response to detecting said change in status.
    [0004d] In another aspect there is provided a handheld computing device having means for establishing a short range radio link with a computer, means for receiving specific data from a server, means for detecting a change in status of the short range wireless link between said computer and said handheld computing device, and being configured automatically to initiate a synchronization process on said server to synchronize said specific data between said server and said handheld computing device in response to detecting said change in status.
    [0004e] There is also provided computer readable media having embodied thereon computer readable code for causing a computing device or system to perform the method described above.
  • BRIEF DESCRIPTION OF THE DRAWINGS
  • A better understanding of the proposed solution which serves to overcome the deficiencies of the prior art will be obtained by considering the detailed description below, with reference to the following drawings in which:
  • Figure 1 is a block diagram of a system on which the present solution may be practiced;
  • Figure 2 is a flowchart of a method according to the present solution; and
  • Figure 3 is a flowchart of a method according to the present solution implementing a specific embodiment of the solution.
  • DESCRIPTION OF PREFERRED EMBODIMENTS
  • The following description discusses methods and systems for automatically synchronizing data between an email server and a handheld computing device based on an event occurring on a personal computer communicating with the server. A module in the personal computer monitors events in the operating system of the personal computer that signifies that the user is either away from the vicinity of the computer or is about to leave the computer. Upon detecting these events, the module initiates an automatic synchronization of data between the server and the handheld computing device. This way, emails which have already been seen or responded to by the user on the computer will appear as such on the handheld computing device.
  • Current handheld computing devices that have an email capability can have their data usually synchronized with a server through the handheld device upon manual activation by a user. Some systems allow for automatic synchronization at specific time intervals. These systems, however, do not synchronize upon the detection of events which indicate that the user is about to leave the computer or that the user has left the vicinity of the computer.
    Referring to Fig 1, a system 5 which uses the solution explained in this document is illustrated. A server 10 (illustrated as an email server) is coupled to or in communication with a personal computer 20. The personal computer 20 receives data from the server 10 that is related to a user such as that user's email, calendar, contacts, email lists, etc. A user can thus access these and other server stored information through the personal computer 20. A handheld computing device 30 with an email capability is also capable of communicating with the computer 20, either via a cable or a short-range wireless link, such as a Bluetooth compatible wireless link. The data on the server 10 and on the device 30 may be synchronized by a user-initiated synchronization process. Such a process would ensure that data previously accessed by the user through or received through the computer 20 from the server 10 and data on the device 30 are synchronized. Such a process also ensures that the data server 10 is synchronized with the data on the device 30. It should be noted that such data may also be stored on the computer 20 - the server 10 usually ensures that data stored on the computer 20 is kept synchronized with the data on the server 10.
  • It should be noted that the server 10 communicates with the device 30 via a wireless link and may do so independently of the computer 20. The server 10 may use "push" technology to send data, such as email, to the device 30 even when the device 30 is not in the vicinity of either the computer 20 or the server 10. In the email example, the same emails are sent by the server 10 to the computer 20 when the computer is turned on. In the case of email, a user can access email either through the computer 20 or the device 30. However, if the user has read or responded to an email on the device 30, that same email is listed as being unread on the computer 20 and vice versa. Synchronizing the data between the server 10 and the device 30 addresses this concern as, after synchronization, data previously accessed on one platform (either the computer 20 or the device 30) is shown or marked as already having been accessed on the other platform.
  • It should further be noted that the synchronization process may be initiated by the user using either the device 30 or the computer 20. One some systems, a synchronization of data is automatically initiated after a set time interval. However, while useful, such an option, if the time interval is too small, would unduly use up the bandwidth or airtime for the wireless link between the server 10 and the device 30.
  • An automatic synchronization 10 is quite useful when coupled with a suitable means for determining when the synchronization is to occur. To save the user the effort of having to manually initiate a synchronization when he leaves his desk or when he comes back to his desk or the effort of having to wait for a time determined automatic synchronization, the system could initiate an automatic synchronization when an event occurs which indicates that the user has left his computer or is about to leave his computer or has returned to his desk. Such an event can be the detection of a computer shutdown, a locking up of the computer, an activation of a screen saver, an indication that the device (and hence the user) is physically moving away from the computer, or any other event which may indicate that the user has left the computer. Similarly, the event can also be an indication that the user has returned to his desk. Such an event can be the detection of the computer powering up, an unlocking of the computer by the user logging onto the computer, a deactivation of a screen saver, or other indications that the device (and hence the user) has returned to the computer.
  • A flowchart of a method according to the above is illustrated in Fig 2. The method starts by checking software parameters in the computer 20 to determine if one or more of a number of events have occurred (step 40). Step 50 decides, after the checking in step 40, if any of the specific events have occurred. If any of the events have not occurred, then the logic flow returns to step 40. If the events have occurred, then a synchronization process is initiated (step 60).
  • The detection of the relevant event may be accomplished in numerous ways. Depending on the operating system on the computer 20 and on the event being detected, detection can be as simple as waiting for a specific message from the operating system. As an example, for the Windows operating system, a system shutdown can be detected by listening for a specific message from the operating system. In the Windows operating system, when a shutdown is about to occur, a specific message (WM_QueryEndSession) is sent by the operating system to all open applications or processes. Thus, when this message is received by an open application, the open application can initiate a synchronization process and may delay the system shutdown until the synchronization process is completed. The system shutdown may not even need to be delayed as the synchronization process is executed at the server 10 and not at the computer 20. Thus, the computer 20, when a system shutdown is detected by a specific application, can send a message to the server 10 to initiate a synchronization process.
  • Another example of detecting a specific event can be that of detecting the initiation or the execution of the operating system's screen saver. Since screen saver programs are usually started after a given interval of inactivity on the computer, the initiation of a screen saver is a good indication that a user is probably away from his computer. For the Windows operating system, (Windows 2000 and later versions), the function SystemParametersInfo can be called with the flag SPI_GETSCREENSAVERRUNNING to determine whether a screen saver is running. If the flag indicates that a screen saver is running, then the system can initiate the synchronization process with a suitable message to the server. Other events which indicate a lack of activity on the computer for a predetermined amount of time may also be detected. One of these events may be a locking process that is used in conjunction with or in place of a screen saver program. The occurrence of some of these events, such as the locking process, may be determined by calling similar functions to that called to detect the screen saver program.
  • As noted above, the event to be detected which would automatically initiate a synchronization may indicate that a user has returned to the computer. Depending on the event being detected, this may be done in various ways. For Windows-based systems, if a synchronization is to be initiated after a user initially logs in to the computer or after the computer is initially turned on, a small stand alone applet may be created which would be placed in the "Startup" directory. Execution of this applet would initiate a synchronization. Since all the programs in the "Startup" directory are automatically executed when the computer is started up (either a cold boot, an initial logging in of a user, or a soft boot), then this approach ensures that a synchronization is initiated every time the computer is started up.
  • Conversely, if the event to be detected is the shutdown of a program such as a screen saver (i.e. indicating that a user has returned to his computer), then prudent use of the screen saver flag noted above may be used. Since the flag indicates when a screen saver is running, then a flag transition from a "screen saver running" state to a "screen saver not running" state can be used to trigger the synchronization. A flag's present value, one of which is predetermined to indicate that a screen saver is running, this value can be saved as a past value for the next comparison. For every comparison, the flag's present value is compared to the flag's past value and, if the two equal one another, then no synchronization is required as this means that no transition has occurred. The flag's present value is saved as the past value after every comparison. If the two values do not equal one another when compared, then a transition has occurred in that either the screen saver has been initiated or has been terminated. Either way, a synchronization is initiated. This approach not only forces a synchronization when a screen saver program is started, it also forces a synchronization when the screen saver program is turned off or terminated. If only the termination of a screen saver program is desired to cause an initiation of a synchronization, then extra logic that detects a specific transition, from a "screen saver running" state to a "screen saver not running" state, may be used to trigger the synchronization.
  • If the event to be detected is a user's login after the computer has been locked (usually due to inactivity on the computer), then the use of flags may again be used. A flag may be set to a predetermined value whenever the locking process is called and it be set to another value when the locking process terminates. The status of the locking process may be determined by an appropriate call to the operating system. As with the approach noted above for the screen saver program, a locking process flag's present value is compared to its previous value. If the two do not equal one another, then a transition in the state of the locking process has occurred. If the two do equal one another, then a transition has not occurred. A synchronization may thus be initiated when a transition is detected. A transition indicates that either a period of inactivity has caused the locking process to be called or that activity (the user's logging back in) has followed a period of inactivity and that, thus, the locking process has terminated. As with the above approach, the locking process flag's value is saved after every comparison to be used as the previous flag value for the next comparison.
  • If the computer 20 and the device 30 are both equipped with the capability to communicate with one another using a short-range wireless protocol such as the Bluetooth standard, the event which triggers the synchronization process could be the severing of the wireless link between the computer and the device or the establishment of such a wireless link. A synchronization process can be initiated once the presence of the device on the wireless link transitions from available to not available or from not available to available. Since the computer keeps track of the wireless devices connected to it, a software flag can be used to trigger the synchronization process. If the device is detected by the computer as being available via the wireless link, the flag can be set to one. If the device cannot be detected by the computer, then the flag is set to zero. The computer can thus be programmed to initiate a synchronization process when the flag transitions from a one value to a zero value. Such a transition would mean that the device has either left the range of the wireless receiver/transmitter on the computer or that the device has been turned off. Either way, a synchronization process would ensure that the user will not need to initiate a synchronization process when he checks his device for email and/or other data.
  • As noted above, the computer can also be programmed to initiate a synchronization process when a wireless link between the computer and the handheld device is established. Such a scenario would be useful for when the user returns to his desktop computer. When the user's handheld device is detected by the computer and the computer reestablishes a wireless link, this can be the event which triggers a synchronization process. To implement this, the software flag noted above may be used. To simplify matters, a synchronization process may be initiated by the computer upon any transition of the software flag. A flag transition from a zero value to a one value indicates the establishing of a wireless link while a flag transition from a one value to a zero value indicates a severing of such a link. The computer can be programmed to initiate a synchronization process once either of these transition is detected.
  • As an alternative, instead of having the computer detect the severing or the establishment of the wireless link, the handheld device may perform such a detection and may initiate the synchronization process. The handheld device can therefore detect either the presence or absence of such a wireless link, perhaps through the use of a similar software flag. Once a transition in the state of the wireless link is detected, the synchronization process may then be automatically initiated by the handheld device. The transition can be detected by saving a previous state of the software flag and comparing this with a current state of the same flag. Periodic checks on this flag while simultaneously saving the current flag state can ensure that changes in the availability of the wireless link are detected. Clearly, if the previous flag state differs from the current flag state, then there has been a transition and a synchronization process needs to be initiated.
  • The above options may be implemented separately by different software modules which may be part of a larger software package. Alternatively, the three options given above may be implemented as a single module which may incorporate other tests for other events. Such a module would implement the logic illustrated in the flowchart of Fig 3.
  • Referring to Fig 3, the method commences with step 70, that of checking for messages from the operating system of the computer. A decision 80 then determines if a shutdown of the operating system is about to occur. This can be determined by, as explained above, checking if a specific shutdown message has been received by the operating system. If a shutdown is to occur, step 90 is that of sending a message to the server to cause the initiation of the synchronization process.
  • If a shutdown is not about to occur, decision 110 checks if a screen saver program is running. As noted above, this can be done by calling a specific function in the Windows operating system. Depending on the results of the function call, it can be determined if a screen saver is running or not. If it is, then step 90, that of initiating a synchronization by sending a message to the server, is executed.
  • In the event a screen saver program is not running, decision 120 determines if a short-range wireless connection between the computer and the device exists. If there is currently such a connection, the logic flow returns to step 70. If there is no connection, then decision 130 checks if such a connection previously existed. This may be done using a flag as explained above. Decision 130 can be as simple as checking the above noted flag. If the device was not previously connected to the computer, then the logic flow passes again to step 70. If the device was previously connected, then step 90 is executed. As noted above, decision 130 may be simplified by merely determining if the software flag has recently transitioned from one state to another. Such a transition would indicate that the wireless link has either been severed or reestablished. In either event, a synchronization process would be called for.
  • It should be clear that while Fig 3 illustrates checking for these specific events, it can be extended to check for any number of system/computer events which may signify that the user has left or is about to leave the computer or has returned to his computer.
  • It should further be clear that the synchronization process to be initiated is one that is known in the art and to persons skilled in the field of software engineering and wireless email applications.
  • While the above uses email data as the data being synchronized, other types of data may also be synchronized. PIM (Personal Information Manager) data such as contact information, telephone numbers, and the like may be synchronized as well using the above scheme.
  • Embodiments of the invention may be implemented in any conventional computer programming language. For example, preferred embodiments may be implemented in a procedural programming language (e.g. "C") or an object oriented language (e.g. "C++"). Alternative embodiments of the invention may be implemented as pre-programmed hardware elements, other related components, or as a combination of hardware and software components.
  • Embodiments can be implemented as a computer program product for use with a computer system. Such implementation may include a series of computer instructions fixed either on a tangible medium, such as a computer readable medium (e.g., a diskette, CD-ROM, ROM, or fixed disk) or transmittable to a computer system, via a modem or other interface device, such as a communications adapter connected to a network over a medium. The medium may be either a tangible medium (e.g., optical or electrical communications lines) or a medium implemented with wireless techniques (e.g., microwave, infrared or other transmission techniques). The series of computer instructions embodies all or part of the functionality previously described herein. Those skilled in the art should appreciate that such computer instructions can be written in a number of programming languages for use with many computer architectures or operating systems. Furthermore, such instructions may be stored in any memory device, such as semiconductor, magnetic, optical or other memory devices, and may be transmitted using any communications technology, such as optical, infrared, microwave, or other transmission technologies. It is expected that such a computer program product may be distributed as a removable medium with accompanying printed or electronic documentation (e.g., shrink wrapped software), preloaded with a computer system (e.g., on system ROM or fixed disk), or distributed from a server over the network (e.g., the Internet or World Wide Web). Of course, some embodiments of the invention may be implemented as a combination of both software (e.g., a computer program product) and hardware. Still other embodiments of the invention may be implemented as entirely hardware, or entirely software (e.g., a computer program product).
  • A person understanding the proposed solution may now conceive of alternative structures and embodiments or variations of the above all of which are intended to fall within the scope of the proposed solution as defined in the claims that follow.

Claims (11)

  1. A method for ensuring data synchronization between specific data on a server (10) and data on a handheld computing device (30), in a communication system in which the handheld communication device can communicate with a computer (20) via a short range wireless link, the computer (20) is coupled to the server (10), and both the computer and the handheld communication device receive said specific data from the server, the method comprising:
    detecting a change in status of the short range wireless link between said computer and said handheld computing device; and
    automatically initiating a synchronization process on said server to synchronize said specific data between said server and said handheld computing device in response to detecting said change in status.
  2. A method according to claim 1 wherein said change in status is caused by detecting that said handheld computing device (30) is beyond a range of said short range wireless link or by detecting that said handheld computing device has entered a range of said short range wireless link.
  3. A method according to claim 1 or 2 wherein said specific data comprises electronic mail data.
  4. A method according to any one of the preceding claims wherein said synchronization process synchronizes an email database on said server (10) with an email database on said handheld computing device (30).
  5. A method according to any one of the preceding claims wherein said handheld computing device (30) is for receiving and sending emails independently of said computer (20).
  6. A method according to any one of the preceding claims wherein said synchronization process is initiated from said handheld computing device(30).
  7. A method according to any one of claims 1 to 5 wherein said synchronization process is initiated from said computer (20).
  8. A system for ensuring data synchronization between specific data on a server (10) and data on a handheld computing device (30), in a communication system in which the handheld computing device can communicate with a computer (20) via a short range wireless link, the computer is coupled to the server, and both the computer and the handheld computing device receive said specific data from the server, the system comprising:
    means for detecting a change in status of the short range wireless link between said computer and said handheld computing device; and
    means for automatically initiating a synchronization process on said server (10) to synchronize said specific data between said server and said handheld computing device (30) in response to detecting said change in status.
  9. A computer (20) having means for establishing a short range radio link with a handheld computing device, means for receiving specific data from a server, means for detecting a change in status of the short range wireless link between said computer and said handheld computing device, and being configured automatically to initiate a synchronization process on said server to synchronize said specific data between said server and said handheld computing device in response to detecting said change in status.
  10. A handheld computing device (30) having means for establishing a short range radio link with a computer, means for receiving specific data from a server, means for detecting a change in status of the short range wireless link between said computer and said handheld computing device, and being configured automatically to initiate a synchronization process on said server to synchronize said specific data between said server and said handheld computing device in response to detecting said change in status.
  11. A computer readable media having embodied thereon computer readable code for causing a computing device or system to perform the method of any one of claims 1 to 7.
EP06116394A 2006-06-30 2006-06-30 Automatic data synchronization Active EP1873986B1 (en)

Priority Applications (4)

Application Number Priority Date Filing Date Title
AT06116394T ATE411683T1 (en) 2006-06-30 2006-06-30 AUTOMATIC DATA SYNCHRONIZATION
EP06116394A EP1873986B1 (en) 2006-06-30 2006-06-30 Automatic data synchronization
DE602006003205T DE602006003205D1 (en) 2006-06-30 2006-06-30 Automatic data synchronization
CA002592811A CA2592811A1 (en) 2006-06-30 2007-06-28 Automatic data synchronization

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
EP06116394A EP1873986B1 (en) 2006-06-30 2006-06-30 Automatic data synchronization

Publications (2)

Publication Number Publication Date
EP1873986A1 EP1873986A1 (en) 2008-01-02
EP1873986B1 true EP1873986B1 (en) 2008-10-15

Family

ID=37137478

Family Applications (1)

Application Number Title Priority Date Filing Date
EP06116394A Active EP1873986B1 (en) 2006-06-30 2006-06-30 Automatic data synchronization

Country Status (4)

Country Link
EP (1) EP1873986B1 (en)
AT (1) ATE411683T1 (en)
CA (1) CA2592811A1 (en)
DE (1) DE602006003205D1 (en)

Family Cites Families (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
AU2001250201A1 (en) * 2000-04-10 2001-10-23 Research In Motion Limited System and method for bundling information
US8880735B2 (en) * 2003-09-05 2014-11-04 Sierra Wireless, Inc. Mail server based application record synchronization

Also Published As

Publication number Publication date
ATE411683T1 (en) 2008-10-15
EP1873986A1 (en) 2008-01-02
CA2592811A1 (en) 2007-12-30
DE602006003205D1 (en) 2008-11-27

Similar Documents

Publication Publication Date Title
US20080005280A1 (en) Automatic data synchronization
EP1589723B1 (en) A device capable of modifying its behaviour based on surrounding devices
US9460104B2 (en) Database synchronization via a mobile network
US8495249B2 (en) Providing sync notifications to client devices
EP1806886B1 (en) System and method of message transport selection
US7366796B2 (en) Method and levels of ping notification
EP1820332B1 (en) Method and apparatus for managing ring tones in a mobile device
US20040215723A1 (en) Methods and apparatus for facilitating online presence based actions
US20090203389A1 (en) Systems and methods for synchronizing information using short message services and email services
EP1959409A2 (en) Auto connect virtual keypad
US20070043820A1 (en) System and method for obtaining remote instant messages
JP2001274841A (en) Database synchronization for portable computing device
CN105916100B (en) Method, device and communication system for acting heartbeat packet
WO2006101556A2 (en) Enabling application wakeup on a mobile device with a hybrid client
CN108829542B (en) Mobile terminal, control method thereof and storage medium
EP1883204B1 (en) Method and system for unified communication
US20040122965A1 (en) Mechanisms for supporting a virtual on-line mobile environment
EP1873986B1 (en) Automatic data synchronization
US20020147836A1 (en) Routing notifications to mobile devices
US20100174786A1 (en) Programmatic Message Forwarding
CN111918383B (en) Bluetooth device and wireless local area network-based self-checking message synchronization method
US20010010060A1 (en) Electronics information transmission
CN114257630A (en) Classroom real-time interaction method and system, terminal equipment and readable storage medium
CN113423107A (en) System and method for carrying out mobile phone number identity authentication based on 5G message

Legal Events

Date Code Title Description
PUAI Public reference made under article 153(3) epc to a published international application that has entered the european phase

Free format text: ORIGINAL CODE: 0009012

17P Request for examination filed

Effective date: 20060630

AK Designated contracting states

Kind code of ref document: A1

Designated state(s): AT BE BG CH CY CZ DE DK EE ES FI FR GB GR HU IE IS IT LI LT LU LV MC NL PL PT RO SE SI SK TR

AX Request for extension of the european patent

Extension state: AL BA HR MK YU

GRAP Despatch of communication of intention to grant a patent

Free format text: ORIGINAL CODE: EPIDOSNIGR1

GRAS Grant fee paid

Free format text: ORIGINAL CODE: EPIDOSNIGR3

AKX Designation fees paid

Designated state(s): AT BE BG CH CY CZ DE DK EE ES FI FR GB GR HU IE IS IT LI LT LU LV MC NL PL PT RO SE SI SK TR

AXX Extension fees paid

Extension state: AL

Payment date: 20060630

Extension state: HR

Payment date: 20060630

Extension state: RS

Payment date: 20060630

Extension state: MK

Payment date: 20060630

Extension state: BA

Payment date: 20060630

GRAA (expected) grant

Free format text: ORIGINAL CODE: 0009210

AK Designated contracting states

Kind code of ref document: B1

Designated state(s): AT BE BG CH CY CZ DE DK EE ES FI FR GB GR HU IE IS IT LI LT LU LV MC NL PL PT RO SE SI SK TR

AX Request for extension of the european patent

Extension state: AL BA HR MK RS

REG Reference to a national code

Ref country code: GB

Ref legal event code: FG4D

Ref country code: CH

Ref legal event code: EP

REG Reference to a national code

Ref country code: IE

Ref legal event code: FG4D

REF Corresponds to:

Ref document number: 602006003205

Country of ref document: DE

Date of ref document: 20081127

Kind code of ref document: P

NLV1 Nl: lapsed or annulled due to failure to fulfill the requirements of art. 29p and 29m of the patents act
PG25 Lapsed in a contracting state [announced via postgrant information from national office to epo]

Ref country code: ES

Free format text: LAPSE BECAUSE OF FAILURE TO SUBMIT A TRANSLATION OF THE DESCRIPTION OR TO PAY THE FEE WITHIN THE PRESCRIBED TIME-LIMIT

Effective date: 20090126

Ref country code: BG

Free format text: LAPSE BECAUSE OF FAILURE TO SUBMIT A TRANSLATION OF THE DESCRIPTION OR TO PAY THE FEE WITHIN THE PRESCRIBED TIME-LIMIT

Effective date: 20090115

Ref country code: AT

Free format text: LAPSE BECAUSE OF FAILURE TO SUBMIT A TRANSLATION OF THE DESCRIPTION OR TO PAY THE FEE WITHIN THE PRESCRIBED TIME-LIMIT

Effective date: 20081015

Ref country code: LT

Free format text: LAPSE BECAUSE OF FAILURE TO SUBMIT A TRANSLATION OF THE DESCRIPTION OR TO PAY THE FEE WITHIN THE PRESCRIBED TIME-LIMIT

Effective date: 20081015

PG25 Lapsed in a contracting state [announced via postgrant information from national office to epo]

Ref country code: IS

Free format text: LAPSE BECAUSE OF FAILURE TO SUBMIT A TRANSLATION OF THE DESCRIPTION OR TO PAY THE FEE WITHIN THE PRESCRIBED TIME-LIMIT

Effective date: 20090215

Ref country code: LV

Free format text: LAPSE BECAUSE OF FAILURE TO SUBMIT A TRANSLATION OF THE DESCRIPTION OR TO PAY THE FEE WITHIN THE PRESCRIBED TIME-LIMIT

Effective date: 20081015

Ref country code: NL

Free format text: LAPSE BECAUSE OF FAILURE TO SUBMIT A TRANSLATION OF THE DESCRIPTION OR TO PAY THE FEE WITHIN THE PRESCRIBED TIME-LIMIT

Effective date: 20081015

Ref country code: PL

Free format text: LAPSE BECAUSE OF FAILURE TO SUBMIT A TRANSLATION OF THE DESCRIPTION OR TO PAY THE FEE WITHIN THE PRESCRIBED TIME-LIMIT

Effective date: 20081015

Ref country code: SI

Free format text: LAPSE BECAUSE OF FAILURE TO SUBMIT A TRANSLATION OF THE DESCRIPTION OR TO PAY THE FEE WITHIN THE PRESCRIBED TIME-LIMIT

Effective date: 20081015

Ref country code: PT

Free format text: LAPSE BECAUSE OF FAILURE TO SUBMIT A TRANSLATION OF THE DESCRIPTION OR TO PAY THE FEE WITHIN THE PRESCRIBED TIME-LIMIT

Effective date: 20090316

Ref country code: FI

Free format text: LAPSE BECAUSE OF FAILURE TO SUBMIT A TRANSLATION OF THE DESCRIPTION OR TO PAY THE FEE WITHIN THE PRESCRIBED TIME-LIMIT

Effective date: 20081015

PG25 Lapsed in a contracting state [announced via postgrant information from national office to epo]

Ref country code: DK

Free format text: LAPSE BECAUSE OF FAILURE TO SUBMIT A TRANSLATION OF THE DESCRIPTION OR TO PAY THE FEE WITHIN THE PRESCRIBED TIME-LIMIT

Effective date: 20081015

Ref country code: BE

Free format text: LAPSE BECAUSE OF FAILURE TO SUBMIT A TRANSLATION OF THE DESCRIPTION OR TO PAY THE FEE WITHIN THE PRESCRIBED TIME-LIMIT

Effective date: 20081015

Ref country code: RO

Free format text: LAPSE BECAUSE OF FAILURE TO SUBMIT A TRANSLATION OF THE DESCRIPTION OR TO PAY THE FEE WITHIN THE PRESCRIBED TIME-LIMIT

Effective date: 20081015

Ref country code: EE

Free format text: LAPSE BECAUSE OF FAILURE TO SUBMIT A TRANSLATION OF THE DESCRIPTION OR TO PAY THE FEE WITHIN THE PRESCRIBED TIME-LIMIT

Effective date: 20081015

PLBE No opposition filed within time limit

Free format text: ORIGINAL CODE: 0009261

STAA Information on the status of an ep patent application or granted ep patent

Free format text: STATUS: NO OPPOSITION FILED WITHIN TIME LIMIT

PG25 Lapsed in a contracting state [announced via postgrant information from national office to epo]

Ref country code: SE

Free format text: LAPSE BECAUSE OF FAILURE TO SUBMIT A TRANSLATION OF THE DESCRIPTION OR TO PAY THE FEE WITHIN THE PRESCRIBED TIME-LIMIT

Effective date: 20090115

Ref country code: CZ

Free format text: LAPSE BECAUSE OF FAILURE TO SUBMIT A TRANSLATION OF THE DESCRIPTION OR TO PAY THE FEE WITHIN THE PRESCRIBED TIME-LIMIT

Effective date: 20081015

Ref country code: IT

Free format text: LAPSE BECAUSE OF FAILURE TO SUBMIT A TRANSLATION OF THE DESCRIPTION OR TO PAY THE FEE WITHIN THE PRESCRIBED TIME-LIMIT

Effective date: 20081015

26N No opposition filed

Effective date: 20090716

PG25 Lapsed in a contracting state [announced via postgrant information from national office to epo]

Ref country code: SK

Free format text: LAPSE BECAUSE OF FAILURE TO SUBMIT A TRANSLATION OF THE DESCRIPTION OR TO PAY THE FEE WITHIN THE PRESCRIBED TIME-LIMIT

Effective date: 20081015

PG25 Lapsed in a contracting state [announced via postgrant information from national office to epo]

Ref country code: MC

Free format text: LAPSE BECAUSE OF NON-PAYMENT OF DUE FEES

Effective date: 20090630

PG25 Lapsed in a contracting state [announced via postgrant information from national office to epo]

Ref country code: IE

Free format text: LAPSE BECAUSE OF NON-PAYMENT OF DUE FEES

Effective date: 20090630

PG25 Lapsed in a contracting state [announced via postgrant information from national office to epo]

Ref country code: GR

Free format text: LAPSE BECAUSE OF FAILURE TO SUBMIT A TRANSLATION OF THE DESCRIPTION OR TO PAY THE FEE WITHIN THE PRESCRIBED TIME-LIMIT

Effective date: 20090116

REG Reference to a national code

Ref country code: CH

Ref legal event code: PL

PG25 Lapsed in a contracting state [announced via postgrant information from national office to epo]

Ref country code: LI

Free format text: LAPSE BECAUSE OF NON-PAYMENT OF DUE FEES

Effective date: 20090630

Ref country code: CH

Free format text: LAPSE BECAUSE OF NON-PAYMENT OF DUE FEES

Effective date: 20090630

PG25 Lapsed in a contracting state [announced via postgrant information from national office to epo]

Ref country code: LU

Free format text: LAPSE BECAUSE OF NON-PAYMENT OF DUE FEES

Effective date: 20090630

Ref country code: LI

Free format text: LAPSE BECAUSE OF NON-PAYMENT OF DUE FEES

Effective date: 20100630

Ref country code: CH

Free format text: LAPSE BECAUSE OF NON-PAYMENT OF DUE FEES

Effective date: 20100630

PG25 Lapsed in a contracting state [announced via postgrant information from national office to epo]

Ref country code: HU

Free format text: LAPSE BECAUSE OF FAILURE TO SUBMIT A TRANSLATION OF THE DESCRIPTION OR TO PAY THE FEE WITHIN THE PRESCRIBED TIME-LIMIT

Effective date: 20090416

PG25 Lapsed in a contracting state [announced via postgrant information from national office to epo]

Ref country code: TR

Free format text: LAPSE BECAUSE OF FAILURE TO SUBMIT A TRANSLATION OF THE DESCRIPTION OR TO PAY THE FEE WITHIN THE PRESCRIBED TIME-LIMIT

Effective date: 20081015

PG25 Lapsed in a contracting state [announced via postgrant information from national office to epo]

Ref country code: CY

Free format text: LAPSE BECAUSE OF FAILURE TO SUBMIT A TRANSLATION OF THE DESCRIPTION OR TO PAY THE FEE WITHIN THE PRESCRIBED TIME-LIMIT

Effective date: 20081015

REG Reference to a national code

Ref country code: DE

Ref legal event code: R082

Ref document number: 602006003205

Country of ref document: DE

Representative=s name: MERH-IP MATIAS ERNY REICHL HOFFMANN, DE

REG Reference to a national code

Ref country code: DE

Ref legal event code: R082

Ref document number: 602006003205

Country of ref document: DE

Representative=s name: MERH-IP MATIAS ERNY REICHL HOFFMANN, DE

Effective date: 20141215

Ref country code: DE

Ref legal event code: R081

Ref document number: 602006003205

Country of ref document: DE

Owner name: BLACKBERRY LTD., WATERLOO, CA

Free format text: FORMER OWNER: RESEARCH IN MOTION LTD., ONTARIO, CA

Effective date: 20141215

Ref country code: DE

Ref legal event code: R082

Ref document number: 602006003205

Country of ref document: DE

Representative=s name: MERH-IP MATIAS ERNY REICHL HOFFMANN PATENTANWA, DE

Effective date: 20141215

REG Reference to a national code

Ref country code: FR

Ref legal event code: PLFP

Year of fee payment: 11

REG Reference to a national code

Ref country code: FR

Ref legal event code: PLFP

Year of fee payment: 12

REG Reference to a national code

Ref country code: FR

Ref legal event code: PLFP

Year of fee payment: 13

REG Reference to a national code

Ref country code: DE

Ref legal event code: R079

Ref document number: 602006003205

Country of ref document: DE

Free format text: PREVIOUS MAIN CLASS: H04L0012580000

Ipc: H04L0051000000

PGFP Annual fee paid to national office [announced via postgrant information from national office to epo]

Ref country code: FR

Payment date: 20230626

Year of fee payment: 18

Ref country code: DE

Payment date: 20230626

Year of fee payment: 18

PGFP Annual fee paid to national office [announced via postgrant information from national office to epo]

Ref country code: GB

Payment date: 20230627

Year of fee payment: 18