Abstract:
According to one embodiment, a system is disclosed. The system includes a wireless data processing device and a server communicatively coupled to the wireless device. The server comprises mapping logic that translates data objects having a first set of identification (ID) codes to a second set of ID codes for transmission to the wireless device to maintain synchronization of data objects with the wireless device over a wireless network.

Description:
PRIORITY  
       [0001]    This application is a continuation-in-part of co-pending U.S. application entitled SYSTEM AND METHOD FOR FULL WIRELESS SYNCHRONIZATION OF A DATA PROCESSING APPARATUS WITH A DATA SERVICE, application Ser. No. 10/109,928, filed Mar. 29, 2002, which is a continuation-in-part of co-pending U.S. application entitled APPARATUS AND METHOD FOR CONSERVING BANDWIDTH BY BATCH PROCESSING DATA TRANSACTIONS, application Ser. No. 09/924,283, filed Aug. 7, 2001. 
     
    
     
       COPYRIGHT NOTICE  
         [0002]    Contained herein is material that is subject to copyright protection. The copyright owner has no objection to the facsimile reproduction of the patent disclosure by any person as it appears in the Patent and Trademark Office patent files or records, but otherwise reserves all rights to the copyright whatsoever.  
         FIELD OF THE INVENTION  
         [0003]    This invention relates generally to the field of network data services. More particularly, the invention relates to an apparatus and method for synchronizing a wireless data processing device with a wireless messaging service.  
         BACKGROUND  
         [0004]    A variety of wireless data processing devices have been introduced over the past several years. These include wireless personal digital assistants (“PDAs”) such as the Palm® VIIx handheld, cellular phones equipped with data processing capabilities (e.g., those which include wireless application protocol (“WAP”) support), and, more recently, wireless messaging devices such as the Blackberry™ wireless pager developed by Research In Motion (“RIM”).™ 
           [0005]    Personal digital assistants such as the Palm devices typically provide only limited wireless messaging capabilities (e.g., instant messaging and basic Internet access). For example, these devices typically require a user to manually establish a connection to the Internet via an Internet Service Provider (“ISP”) or to a corporate server to check e-mail messages.  
           [0006]    Although corporate messaging systems such as the RIM Blackberry provide more comprehensive messaging capabilities, there are significant limitations to these systems. Specifically, these systems employ e-mail “redirection” or “forwarding” techniques in which messages are redirected to the wireless device only if certain conditions are met. These conditions, referred to as “redirection events,” may include, for example, an indication that the user is not working at his corporate desktop (e.g., removal of the wireless device from the desktop cradle, a screen saver firing on the desktop, . . . etc) or a manual redirection command initiated by the user (e.g., via the wireless device or the corporate desktop). One such message redirection system is described in U.S. Pat. No. 6,219,694 (“System and Method for Pushing Information From a Host System to a Mobile Data Communication Device Having a Shared Electronic Address”).  
           [0007]    As a result, these systems are (as a practical matter) incapable of providing complete synchronization between the wireless device and the corporate e-mail database. For example, because messages are only redirected to the wireless device under certain conditions (e.g., following a redirection event), at any given point in time, the wireless device may contain an incomplete set of e-mail data. Moreover, even when messages are actively being forwarded to the wireless device, the e-mail data stored at the wireless device and the e-mail database are not truly synchronized. For example, certain types of transactions performed on the wireless device, such as an indication that a message has been viewed by the user, message deletions, movement of messages from one folder to another, . . . etc., are not updated at the e-mail service wirelessly.  
           [0008]    Moreover, only basic e-mail functions such as sending and receiving messages may be controlled at the wireless device. More advanced e-mail management functions must be set at the user&#39;s desktop (e.g., configuring e-mail filters, outgoing e-mail signatures, security settings such as passwords, . . . etc).  
           [0009]    In addition, prior messaging systems require a corporate desktop to which the device must be attached when the user is in the office. The problem with this is not merely that a corporate desktop is required, but also that the corporate desktop must be configured with software and a proprietary “cradle” that allows it to communicate directly to the wireless device.  
           [0010]    Accordingly, what is needed is a system and method for providing complete synchronization and management between a wireless device and a messaging service (e.g., a corporate e-mail account). What is also needed is a wireless apparatus for receiving and sending e-mail messages, which does not require a corporate desktop or any software to be installed and executed on the corporate desktop.  
         SUMMARY  
         [0011]    According to one embodiment, a system is disclosed. The system includes a wireless data processing device and a server communicatively coupled to the wireless device. The server comprises mapping logic that translates data objects having a first set of identification (ID) codes to a second set of ID codes for transmission to the wireless device to maintain synchronization of data objects with the wireless device over a wireless network.  
       
    
    
     BRIEF DESCRIPTION OF THE DRAWINGS  
       [0012]    A better understanding of the present invention can be obtained from the following detailed description in conjunction with the following drawings, in which:  
         [0013]    [0013]FIG. 1 illustrates an exemplary network architecture used to implement elements of the present invention;  
         [0014]    [0014]FIG. 2 illustrates one embodiment of a mechanism that maps synchronization identification codes to standard identification codes;  
         [0015]    [0015]FIG. 3 illustrates one embodiment of a computer system.  
     
    
     DETAILED DESCRIPTION  
       [0016]    In the following description, for the purposes of explanation, numerous specific details are set forth in order to provide a thorough understanding of the present invention. It will be apparent, however, to one skilled in the art that the present invention may be practiced without some of these specific details. In other instances, well-known structures and devices are shown in block diagram form to avoid obscuring the underlying principles of the present invention.  
         [0017]    Reference in the specification to “one embodiment” or “an embodiment” means that a particular feature, structure, or characteristic described in connection with the embodiment is included in at least one embodiment of the invention. The appearances of the phrase “in one embodiment” in various places in the specification are not necessarily all referring to the same embodiment.  
       An Exemplary Network Architecture  
       [0018]    [0018]FIG. 1 illustrates one embodiment of a network architecture. A “customer site”  120  illustrated in FIG. 1 may be any local-area or wide-area network over which a plurality of servers  103  and clients  110  communicate. For example, customer site  120  may include all servers and clients maintained by a single corporation.  
         [0019]    Servers  103  may be configured to provide a variety of different messaging and groupware services  102  to network users (e.g., e-mail, instant messaging, calendaring, . . . etc). In one embodiment, these services are provided by Microsoft Exchange.™ However, the underlying principles of the invention are not limited to any particular messaging/groupware platform.  
         [0020]    In one embodiment, an interface  100  forwards data objects maintained by service  102  (e.g., e-mail messages, instant messages, calendar data, . . . etc) to a plurality of wireless data processing devices (represented in FIG. 1 by wireless device  130 ) via an external data network  170  and/or a wireless service provider network  171 . For example, if the service  102  includes an e-mail database, the interface  100  transmits any new e-mails, which arrive in a user&#39;s mailbox on the service  102  to the user&#39;s wireless data processing device  130  (over the network(s)  170  and/or  171 ).  
         [0021]    Alternatively, or in addition, the service  102  may provide the e-mail to the user&#39;s local computer (e.g., client  110 ) upon request (i.e., so that the user will receive the e-mail on his/her wireless device  130  when out of the office and on his/her personal computer  110  when in the office). Conversely, e-mail messages sent from the user&#39;s wireless data processing device  130  are transmitted to the service  102  via the interface  100 .  
         [0022]    In one embodiment, the interface  100  is a software module adapted to work with the particular service  120 . It should be noted, however, that interface  100  may be implemented in hardware or any combination of hardware and software while still complying with the underlying principles of the invention.  
         [0023]    In one embodiment, the external data network  170  is comprised of a plurality of databases, servers/clients (not shown) and other networking hardware (e.g., routers, hubs, . . . etc) for transmitting data between the interface  100  and the wireless devices  130 . In one embodiment, the interface  100  encapsulates data in one or more packets containing an address identifying the wireless devices  130  (e.g., such as a 24-bit Mobitex Access Number (“MAN #”)).  
         [0024]    The external data network  170  transmits the packets to a wireless service provider network  171 , which in turn, transmits the packets (or the data contained therein) over a wireless communication link to the wireless device  130 . In one embodiment, the wireless service provider network is a 2-way paging network. However, various other network types may be employed (e.g., CDMA 2000, GPRS, PCS, . . . etc) while still complying with the underlying principles of the invention.  
         [0025]    It should be noted that the network service provider network  171  and the external data network  170  (and associated interface  100 ) may be owned/operated by the same organization or, alternatively, the owner/operator of the external data network  170  may lease wireless services from the wireless service provider network. The underlying principles of the invention are not limited to any particular service arrangement.  
         [0026]    In one embodiment, service  102  (e.g., the e-mail database) is fully synchronized with wireless data processing device  130 . Thus, any actions performed on wireless device  130  are automatically updated on service  102  and any transactions occurring at service  102  are automatically reflected on device  130 .  
         [0027]    In a further embodiment, synchronization updates of this type may include, but are not limited to, device configuration modifications, calendar updates, e-mail message updates, instant messages, to-do list updates and/or any other type of personal information management transactions or corporate data management transactions (hereinafter “message transactions”).  
         [0028]    As one example, when a user views an e-mail message using device  130 , a message transaction indicating that the user viewed the message is transmitted to service  102  (via the interface  100 ). Accordingly, if the user subsequently connects to e-mail via a client  110 , the e-mail will appear as having already been viewed.  
         [0029]    Other actions such as message deletions, filing activities (e.g., moving a message to a particular folder), message responses, meeting confirmations/additions . . . etc, will automatically be reflected in the service  102 , thereby providing complete synchronization between the service  102 , the device  130  and/or the client  110  (if one is being used).  
         [0030]    Current messaging systems do not offer complete wireless device synchronization. As such, these systems require that the user have a desktop computer with a “cradle” to which the device is attached to receive certain types of synchronization updates. One reason for this is that prior systems process message transactions in a relatively inefficient manner and employ only limited compression techniques, thereby making complete synchronization impractical. As such, in order to realize complete wireless synchronization, embodiments of the invention employ one or more of the following compression and/or message processing techniques.  
       Identification Code Allocation  
       [0031]    According to one embodiment, each e-mail message, calendar entry, to-do list entry, . . . etc, is assigned a unique identification code by service  102 . For example, if the service is Microsoft Exchange, a 128-byte identification code is generated for each new data object. Accordingly, when fully synchronizing a wireless device  130  to the service  102 , a mechanism is to be provided to ensure that no duplicate identification codes are assigned for two distinct data objects. For example, if both the service  102  and the wireless device  130  are capable of independently generating data objects, they may both concurrently generate data objects with the same identification codes, resulting in a conflict.  
         [0032]    One mechanism for solving this problem is to require the wireless device  130  to request a new identification code from the service  102  each time it generates a new data object. One potential problem with this scenario is that it may take an unreasonably long time for the wireless device  130  to acquire the identification code from service  102  via data network  170 , depending on the speed of the wireless network. For instance, several seconds may be considered an unreasonable amount of time to wait to begin entering a new e-mail message or calendar entry.  
         [0033]    Alternatively, in one embodiment, the range of all possible data object codes is divided between the wireless device  130  and the service  103 . In other words, a certain percentage (e.g., ½) of all possible codes are allocated to the wireless device  130  and the remaining possible codes are allocated to the service  103 . In operation, when a new data object is generated at the wireless device (e.g., a new “to-do” list entry) the wireless device  130  will select a data object code only from within its pre-assigned range, thereby preventing a conflict at the service  102 .  
         [0034]    In one embodiment, all negative codes are assigned to the wireless device  130  and all positive codes are assigned to the service  102 . If a 32-bit (4-byte) code is used, this will result in 2,147,483,648 (2 31 ) negative codes and 2,147,483,648 (2 31 ) positive codes. It should be noted, however, that the particular manner in which codes are divided up is not pertinent to the underlying principles of the invention.  
       Identification Code Translation  
       [0035]    Another potential problem which exists when fully synchronizing a wireless device with a service is that the standard data object identification codes employed by many services are unnecessarily large. As mentioned above, Microsoft Exchange generates a 128-byte (1024 bit) code to identify each unique data object.  
         [0036]    Accordingly, in one embodiment of the invention illustrated in FIG. 2, interface  100  includes object identification code mapping logic  200  for mapping standard data object identification codes  220  (e.g., such as the 128-byte codes used by Microsoft Exchange) to data object identification codes  210  generated specifically for use in the synchronization system described herein (hereinafter “synchronization system identification codes”).  
         [0037]    As illustrated, object identification code mapping logic  200  maintains a data object identification table  205  in which each standard identification code  220  is associated with a corresponding synchronization system identification code  210 . As described above, in one embodiment, the synchronization system identification codes  210  are 32-bits in length, thereby significantly reducing the amount of information transmitted across the wireless network. In addition, as indicated in FIG. 2, negative identification codes  210  identify data objects created by the wireless device  130  and positive identification codes  210  identify data objects created at service  102  (e.g., from a local desktop PC).  
       Exemplary Computer System  
       [0038]    [0038]FIG. 3 illustrates a computer system  300  on which wireless device  130  and or server  103  may be implemented. Computer system  300  includes a system bus  320  for communicating information, and a processor  310  coupled to bus  320  for processing information. According to one embodiment, processor  310  is implemented using one of the multitudes of Motorola DragonBall MC68328-family of microprocessors. Nevertheless one of ordinary skill in the art will appreciate that other processors may be used.  
         [0039]    Computer system  300  further comprises a random access memory (RAM) or other dynamic storage device  325  (referred to herein as main memory), coupled to bus  320  for storing information and instructions to be executed by processor  310 . Main memory  325  also may be used for storing temporary variables or other intermediate information during execution of instructions by processor  310 . Computer system  300  also may include a read only memory (ROM) and/or other static storage device  326  coupled to bus  320  for storing static information and instructions used by processor  310 .  
         [0040]    A data storage device  325  such as a magnetic disk or optical disc and its corresponding drive may also be coupled to computer system  300  for storing information and instructions. Computer system  300  can also be coupled to a second I/O bus  350  via an I/O interface  330 . A plurality of I/O devices may be coupled to I/O bus  350 , including a display device  324 , an input device (e.g., an alphanumeric input device  323  and/or a cursor control device  322 ).  
         [0041]    The communication device  321  is for accessing other computers (servers or clients) via network  170 . The communication device  321  may comprise a modem, a network interface card, or other well-known interface device, such as those used for coupling to Ethernet, token ring, or other types of networks.  
         [0042]    Embodiments of the invention may include various steps as set forth above. The steps may be embodied in machine-executable instructions. The instructions can be used to cause a general-purpose or special-purpose processor to perform certain steps. Alternatively, these steps may be performed by specific hardware components that contain hardwired logic for performing the steps, or by any combination of programmed computer components and custom hardware components.  
         [0043]    Elements of the present invention may also be provided as a machine-readable medium for storing the machine-executable instructions. The machine-readable medium may include, but is not limited to, floppy diskettes, optical disks, CD-ROMs, and magneto-optical disks, ROMs, RAMs, EPROMs, EEPROMs, magnetic or optical cards, propagation media or other type of media/machine-readable medium suitable for storing electronic instructions. For example, the present invention may be downloaded as a computer program which may be transferred from a remote computer (e.g., a server) to a requesting computer (e.g., a client) by way of data signals embodied in a carrier wave or other propagation medium via a communication link (e.g., a modem or network connection).  
         [0044]    Throughout the foregoing description, for the purposes of explanation, numerous specific details were set forth in order to provide a thorough understanding of the invention. It will be apparent, however, to one skilled in the art that the invention may be practiced without some of these specific details. For example, while illustrated as an interface  100  to a service  102  executed on a server  103  (see FIG. 1), it will be appreciated that the underlying principles of the invention may be implemented on a single client in which the client transmits data over a network.  
         [0045]    Moreover, although described in the context of a wireless data processing device, the underlying principles of the invention may be implemented to compress data in virtually any networking environment, both wired and wireless. Accordingly, the scope and spirit of the invention should be judged in terms of the claims which follow.