WO2007040504A1 - Serveur de courriels a memoire cache de mandataire d'identificateurs uniques - Google Patents
Serveur de courriels a memoire cache de mandataire d'identificateurs uniques Download PDFInfo
- Publication number
- WO2007040504A1 WO2007040504A1 PCT/US2005/034540 US2005034540W WO2007040504A1 WO 2007040504 A1 WO2007040504 A1 WO 2007040504A1 US 2005034540 W US2005034540 W US 2005034540W WO 2007040504 A1 WO2007040504 A1 WO 2007040504A1
- Authority
- WO
- WIPO (PCT)
- Prior art keywords
- uid
- proxy
- cache
- mappings
- Prior art date
Links
Classifications
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L51/00—User-to-user messaging in packet-switching networks, transmitted according to store-and-forward or real-time protocols, e.g. e-mail
- H04L51/42—Mailbox-related aspects, e.g. synchronisation of mailboxes
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L51/00—User-to-user messaging in packet-switching networks, transmitted according to store-and-forward or real-time protocols, e.g. e-mail
- H04L51/58—Message adaptation for wireless communication
Definitions
- CMIME Multipurpose Internet Mail Extension
- OTAFM Over The Air Folder Management operation
- the port agent 30 acts as a transport layer between the infrastructure and the rest of the Web client engine 22. It is responsible for delivering packets to and from the mobile wireless communications device. To support different integrated mailboxes with one device, more than one service book can be used, and each service book can be associated with one integrated mailbox.
- messages deleted on the device 25 may correspondingly be deleted from the source mailbox 51, 53.
- device-originated marking of a message as read or unread on the device 25 may similarly be propagated to the source mailbox 51, 53. While the foregoing features are described as source-dependent and synchronizing one-way, in some embodiments certain synchronization features may in addition, or instead, propagate from the source mailbox/account to the handheld device, as will be appreciated by those skilled in the art.
- the mail service provider or corporate mail server may be used for submission of outgoing messages. While this may not be possible for all mail service providers or servers, it is preferrably used when available as it may provide several advantages.
- the mobile office platform 24 may be responsible for connecting to the various source mailboxes 51, 53 to detect new emails. For each new mail, a notification is sent to the Web client engine 22 and, based on this notification, the supervisor 34 chooses one of the workers 32 to process that email. The chosen worker will fetch additional account information and the contents of the mail message from the direct access proxy 40 and deliver it to the user device 25. [0057] In a message sent from handheld function, the MFH could be given to the direct access proxy 40 from the Web client worker 32. In turn, the mobile office platform 24 delivers a message to the Internet 49 by sending through a native outbox or sending it via SMTP.
- LBAC 46 may support this function.
- the LBAC 46 is a system-wide component that can perform two important functions . The first of these function is that it provides a mapping from the device PIN to a particular direct access proxy 40, while caching the information in memory for both fast access and to save load on the central database. Secondly, as the direct access proxy 40 will be run in clustered partitions, the LBAC 46 may distribute the load across all direct access proxies within any partition.
- a receiving component in the Web client engine 22 saves the job that has been assigned to it from other components to a job store on the disk before processing. It can update the status of the job and remove the job from the job store when the job processing is completed. In case of component failure or if the process is restarted, it can recover the jobs from the job store and, based on the current statuses of these jobs, continue processing these jobs to the next state, saving the time to reprocess them from the beginning.
- Any recovery from the standpoint of MTH/MFH can be achieved through current polling behavior and on the Web client engine 22 recovery mechanisms. From within the mail office platform components, until a message has been successfully delivered to a Web client engine 22, that message is not recorded in the partition database 60. During the next polling interval, the system can again "discover" the message and attempt to notify the Web client engine 22. For new mail events, if an event is lost, the system can pick up that message upon receiving the next event or during the next polling interval. For sources supporting notifications, this interval could be set at six hours, as one non-limiting example. For messages sent from the Web client engine 22, and for messages that have been accepted by the Web client engine, recovery can be handled by different Web client engine components.
- the DA proxy 10 receives a Get/Delete/Move request for a Msgld and it does not find it in the cache 44, it accesses the database and obtains all the msgld, uid, and href mappings and caches them. Once cached, these mappings will reside for the life of the user session.
- the database 60 can include a disk memory in which messages or portions of messages can be spooled. A disk memory to which messages or portions of messages can be spooled could be separate from the database physical structure, of course.
- the system could retrieve a smaller number, for example, the latest 100, when the system is about to perform a quick poll.
- the system does not require a full reconcile, and it is able to retrieve all UID' s only when the system is about to make a full poll.
- the system could add another stored procedure call that gives it the mapping for this particular msgld and, as an example, another 100 mappings around it.
- Sample data suggests that the average mailbox size on a Work Client production is 200. A typical mailbox, however, has 2000 UID' s.
- Another possible approach makes a stored procedure (proc) call with a batch of UID' s in the right order, and implements the quick poll logic in the stored proc call.
- This approach is available since the quick poll logic is rather straightforward, and it would eliminate a requirement to read all the UID mappings into memory.
- the quick poll logic requires the system to look at the top and the bottom of the mailbox to check for new mail, in which case it would result in two separate hits to the database, once with the batch of UID' s from the top, and a second time with the UID' s from the bottom of the mailbox.
- One method to reduce the memory requirement would be to purge the UID' s that have been read into memory after the polling step is over.
- the system can proactively remove the UID' s that have been read into memory.
- This polling logic requires only the UID' s, and it does not require the msgld or the davHref. These are no longer read from the database into memory.
- the new UID mappings that have been discovered in the polling step are cached into memory, in order to avoid a database hit when the worker asks for them.
- the system may end up deleting a message from the cache prematurely, and thus, have to download the message a second time. This could possibly increase bandwidth usage.
- the system may not delete messages until the LRU forces them out, thus failing to derive any benefit from the optimization.
- An example DA system request rate performance spreadsheet indicates the following requirements that the DA proxy 40 (per partition) can support. Those requests that involve reading or writing to the message cache in this example are:
- 776,000 requests over a 12 hour period amounts to about 18 requests/sec. It is possible to use multiple proxies. If the system uses one DA proxy 40 per partition, as long as the disk I/O can give the system 18 requests per second, the system should be operable in its intended manner. If the system uses two DA proxies 40 per partition, then the system may require about 9 requests/second.
- FIGS. 6A, 6B, 7 and 8 are high-level flowcharts illustrating examples of the processes for obtaining mappings for new UID' s and mapping new message ID' s (FIG. 6), reducing UID mappings in cache
- FIG. 6A shows that a polling function can start (block 200).
- the UID' s and message ID' s of new mail are stored in a persistent store such as a database (block 202) .
- the message ID' s of new mail are cached to a cache memory (block 204) and the polling is complete.
- FIG. 6B a mail job is received (block 210) and a determination is made if a message ID is in cache (block 212) . If so, a mapping is obtained from cache (block 214) and the mail job processed (block 216) .
- the mail job is complete (block 218) .
- the message ID and adjacent message ID'S can be retrieved from the persistent store as a data store (block 220) and the message ID is cached in the cache memory (block 222) .
- the polling can start (block 230) . All previously existing UID' s can be fetched and cached from the persistent store as a database (block 232). The UID' s and message ID' s for new mail can be stored in the persistent store (block 234) . The message ID's for new mail can be stored in a message ID cache (block 236) . All previously existing UID' s can be cleared from the cache (block 238) and the polling is complete (block 240) . [0099] As shown in FIG. 8, the polling can start (block 250) . The UID' s and message ID's of new mail can be stored in a persistent store as a database (block 252) .
- the message ID's or new mail can be cached to a cache memory (block 254) .
- Each message can be retrieved and added into the LRU (block 256) .
- the messages can be spooled to a disk (block 258) .
- the polling is complete (block 260) .
- the device 1000 illustratively includes a housing 1200, a keypad 1400 and an output device 1600.
- the output device shown is a display 1600, which is preferably a full graphic LCD. Other types of output devices may alternatively be utilized.
- a processing device 1800 is contained within the housing 1200 and is coupled between the keypad 1400 and the display 1600. The processing device 1800 controls the operation of the display 1600, as well as the overall operation of the mobile device 1000, in response to actuation of keys on the keypad 1400 by the user.
- the housing 1200 may be elongated vertically, or may take on other sizes and shapes (including clamshell housing structures) .
- the keypad may include a mode selection key, or other hardware or software for switching between text entry and telephony entry.
- FIG. 9 In addition to the processing device 1800, other parts of the mobile device 1000 are shown schematically in FIG. 9. These include a communications subsystem 1001; a short-range communications subsystem 1020; the keypad 1400 and the display 1600, along with other input/output devices 1060, 1080, 1100 and 1120; as well as memory devices 1160, 1180 and various other device subsystems 1201.
- the mobile device 1000 is preferably a two-way RF communications device having voice and data communications capabilities.
- the mobile device 1000 preferably has the capability to communicate with other computer systems via the Internet .
- Operating system software executed by the processing device 1800 is preferably stored in a persistent store, such as the flash memory 1160, but may be stored in other types of memory devices, such as a read only memory (ROM) or similar storage element.
- system software, specific device applications, or parts thereof may be temporarily loaded into a volatile store, such as the random access memory (RAM) 1180.
- Communications signals received by the mobile device may also be stored in the RAM 1180.
- the processing device 1800 in addition to its operating system functions, enables execution of software applications 1300A-1300N on the device 1000.
- a predetermined set of applications that control basic device operations, such as data and voice communications 1300A and 1300B, may be installed on the device 1000 during manufacture.
- a personal information manager (PIM) application may be installed during manufacture.
- the PIM is preferably capable of organizing and managing data items, such as e-mail, calendar events, voice mails, appointments, and task items.
- the PIM application is also preferably capable of sending and receiving data items via a wireless network 1401.
- the PIM data items are seamlessly integrated, synchronized and updated via the wireless network 1401 with the device user's corresponding data items stored or associated with a host computer system.
- the communications subsystem 1001 includes a receiver 1500, a transmitter 1520, and one or more antennas 1540 and 1560.
- the communications subsystem 1001 also includes a processing module, such as a digital signal processor (DSP) 1580, and local oscillators (LOs) 1601.
- DSP digital signal processor
- LOs local oscillators
- a mobile device 1000 may include a communications subsystem 1001 designed to operate with the MobitexTM, Data TACTM or General Packet Radio Service (GPRS) mobile data communications networks, and also designed to operate with any of a variety of voice communications networks, such as AMPS, TDMA, CDMA, PCS, GSM, etc. Other types of data and voice networks, both separate and integrated, may also be utilized with the mobile device 1000.
- Network access requirements vary depending upon the type of communication system. For example, in the Mobitex and DataTAC networks, mobile devices are registered on the network using a unique personal identification number or PIN associated with each device. In GPRS networks, however, network access is associated with a subscriber or user of a device. A GPRS device therefore requires a subscriber identity module, commonly referred to as a SIM card, in order to operate on a GPRS network.
- SIM card subscriber identity module
- the mobile device 1000 may send and receive communications signals over the communication network 1401.
- Signals received from the communications network 1401 by the antenna 1540 are routed to the receiver 1500, which provides for signal amplification, frequency down conversion, filtering, channel selection, etc., and may also provide analog to digital conversion. Analog-to-digital conversion of the received signal allows the DSP 1580 to perform more complex communications functions, such as demodulation and decoding.
- signals to be transmitted to the network 1401 are processed (e.g. modulated and encoded) by the DSP 1580 and are then provided to the transmitter 1520 for digital to analog conversion, frequency up conversion, filtering, amplification and transmission to the communication network 1401 (or networks) via the antenna 1560.
- the DSP 1580 provides for control of the receiver 1500 and the transmitter 1520. For example, gains applied to communications signals in the receiver 1500 and transmitter 1520 may be adaptively controlled through automatic gain control algorithms implemented in the DSP 1580.
- a received signal such as a text message or web page download
- the received signal is then further processed by the processing device 1800 for an output to the display 1600, or alternatively to some other auxiliary I/O device 1060.
- a device user may also compose data items, such as e- mail messages, using the keypad 1400 and/or some other auxiliary I/O device 1060, such as a touchpad, a rocker switch, a thumb-wheel, or some other type of input device.
- the composed data items may then be transmitted over the communications network 1401 via the communications subsystem 1001.
- a voice communications mode In a voice communications mode, overall operation of the device is substantially similar to the data communications mode, except that received signals are output to a speaker 1100, and signals for transmission are generated by a microphone 1120.
- Alternative voice or audio I/O subsystems such as a voice message recording subsystem, may also be implemented on the device 1000.
- the display 1600 may also be utilized in voice communications mode, for example to display the identity of a calling party, the duration of a voice call, or other voice call related information.
- the short-range communications subsystem enables communication between the mobile device 1000 and other proximate systems or devices, which need not necessarily be similar devices.
- the short- range communications subsystem may include an infrared device and associated circuits and components, or a BluetoothTM communications module to provide for communication with similarly-enabled systems and devices .
Abstract
L'invention concerne un serveur de courrier électronique (courriel) présentant une base de données qui mémorise des identificateurs uniques (UID) de messages électroniques. Un mandataire reçoit des tables de correspondance provenant de la base de données prévue pour des UID existant antérieurement de messages électroniques qui ont été déterminés sur la base d'une opération d'appels sélectifs. Une mémoire cache stocke en cache les tables de correspondance et le mandataire est en état de fonctionner pour éliminer les UID existant antérieurement, de la mémoire cache, après avoir effectué les appels sélectifs.
Priority Applications (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CA2621649A CA2621649C (fr) | 2005-09-27 | 2005-09-27 | Serveur de courriels a memoire cache de mandataire d'identificateurs uniques |
PCT/US2005/034540 WO2007040504A1 (fr) | 2005-09-27 | 2005-09-27 | Serveur de courriels a memoire cache de mandataire d'identificateurs uniques |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
PCT/US2005/034540 WO2007040504A1 (fr) | 2005-09-27 | 2005-09-27 | Serveur de courriels a memoire cache de mandataire d'identificateurs uniques |
Publications (1)
Publication Number | Publication Date |
---|---|
WO2007040504A1 true WO2007040504A1 (fr) | 2007-04-12 |
Family
ID=36379553
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
PCT/US2005/034540 WO2007040504A1 (fr) | 2005-09-27 | 2005-09-27 | Serveur de courriels a memoire cache de mandataire d'identificateurs uniques |
Country Status (2)
Country | Link |
---|---|
CA (1) | CA2621649C (fr) |
WO (1) | WO2007040504A1 (fr) |
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US8326932B2 (en) | 2009-02-20 | 2012-12-04 | Research In Motion Limited | Caching email unique identifiers |
Citations (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
WO2003036492A1 (fr) * | 2001-09-18 | 2003-05-01 | Idetic, Inc. | Systeme de redistribution de fichier joint mime de courriel sans client via le web pour reduire l'utilisation de la largeur de bande du reseau |
WO2005046148A1 (fr) * | 2003-10-31 | 2005-05-19 | Bluespace Group Limited | Mise en cache dans un systeme de messagerie electronique |
-
2005
- 2005-09-27 WO PCT/US2005/034540 patent/WO2007040504A1/fr active Application Filing
- 2005-09-27 CA CA2621649A patent/CA2621649C/fr active Active
Patent Citations (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
WO2003036492A1 (fr) * | 2001-09-18 | 2003-05-01 | Idetic, Inc. | Systeme de redistribution de fichier joint mime de courriel sans client via le web pour reduire l'utilisation de la largeur de bande du reseau |
WO2005046148A1 (fr) * | 2003-10-31 | 2005-05-19 | Bluespace Group Limited | Mise en cache dans un systeme de messagerie electronique |
Cited By (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US8326932B2 (en) | 2009-02-20 | 2012-12-04 | Research In Motion Limited | Caching email unique identifiers |
US8495159B2 (en) | 2009-02-20 | 2013-07-23 | Research In Motion Limited | Caching email unique identifiers |
Also Published As
Publication number | Publication date |
---|---|
CA2621649C (fr) | 2009-12-22 |
CA2621649A1 (fr) | 2007-04-12 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US8296369B2 (en) | Email server with proxy caching of unique identifiers | |
US8307036B2 (en) | Email server with enhanced least recently used (LRU) cache | |
US8301711B2 (en) | Electronic mail communications system with client email internet service provider (ISP) polling application and related methods | |
US8756317B2 (en) | System and method for authenticating a user for accessing an email account using authentication token | |
US8494491B2 (en) | System and method for provisioning a mobile wireless communications device to display account or device-specific characteristics | |
EP1929401B1 (fr) | Serveur de courrier electronique destine a traiter un nombre seuil de taches de courriers electroniques pour un utilisateur donne et procedes associes | |
US20070072588A1 (en) | System and method for reconciling email messages between a mobile wireless communications device and electronic mailbox | |
US20070073815A1 (en) | Email server with proxy caching of message identifiers and related methods | |
CA2622833C (fr) | Serveur de courrier electronique effectuant le traitement de taches de courriers electroniques pour un utilisateur donne et procede associe | |
EP1929721B1 (fr) | Procede et systeme permettant des communications asynchrones sur internet | |
US8468204B2 (en) | Communications system providing asynchronous communications over the internet and related methods | |
CA2622409C (fr) | Serveur de messagerie electronique a memoire cache d'utilisation la moins recente | |
CA2621347C (fr) | Systeme et procede de reconciliation des messages entre un terminal de radiocommunications mobiles et une boite de courrier electronique | |
EP1929725B1 (fr) | Systeme et procede d'affichage de compte ou de caracteristiques specifiques de dispositif | |
CA2621649C (fr) | Serveur de courriels a memoire cache de mandataire d'identificateurs uniques | |
CA2622316C (fr) | Serveur de courriel avec cache proxy d'identificateurs de message et procedes associes | |
EP1929740A1 (fr) | Systeme et procede permettant d'authentifier un utilisateur pour acces a un compte de courriers electroniques au moyen d'un jeton d'authentification | |
EP1999913A1 (fr) | Système et méthode d'approvisionnement d'un dispositif de communication mobile sans fil, comportant des indicateurs représentant les données image et son |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
DPE2 | Request for preliminary examination filed before expiration of 19th month from priority date (pct application filed from 20040101) | ||
121 | Ep: the epo has been informed by wipo that ep was designated in this application | ||
ENP | Entry into the national phase |
Ref document number: 2621649 Country of ref document: CA |
|
NENP | Non-entry into the national phase |
Ref country code: DE |
|
122 | Ep: pct application non-entry in european phase |
Ref document number: 05799722 Country of ref document: EP Kind code of ref document: A1 |