A MESSAGING PROXY APPARATUS AND METHOD
BACKGROUND Field of the Invention
This invention relates generally to the field of network data services. More particularly, the invention relates to an apparatus and method for providing data synchronization between a wireless data processing device and a messaging service.
Description of the Related Art
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, corporate wireless messaging devices such as the Blackberry™ wireless pager developed by Research In Motion ("RIM").™
Personal digital assistants such as the Palm devices are typically configured for individual users are provide only limited wireless messaging capabilities (e.g., instant messaging and basic Internet access). Although corporate messaging devices such as the RIM Blackberry provide more comprehensive messaging capabilities (e.g., email and calendar forwarding), the overhead required to support these devices may be significant. For example, in order for a user to receive messages on a RIM device, a proprietary messaging interface must be installed and configured on the corporate email server or the user's desktop computer. In the former case, users are individually unable to subscribe to the wireless messaging service (e.g., without an enterprise-level agreement and extensive support from the corporation's information systems group); in the latter case, no message forwarding can take place if the user's l
desktop computer is turned off or is otherwise disconnected from the network (e.g., a notebook computer which the user takes on the road).
Accordingly, what is needed is an apparatus and method which will allow individual users to individually subscribe to wireless messaging services without installing desktop or server messaging software.
SUMMARY
A system is described which includes a messaging service and a wireless device to be synchronized with the messaging service. In one embodiment of the system, a messaging proxy node is configured on a network over which the messaging service communicates. The messaging proxy node receives message synchronization updates from the service and transmits the updates to the wireless device and receives message synchronization updates from the wireless device and transmits the transaction updates to the service.
BRIEF DESCRIPTION OF THE DRAWINGS
A better understanding of the present invention can be obtained from the following detailed description in conjunction with the following drawings, in which:
FIG.1 illustrates an exemplary network architecture used to synchronize data between a wireless device and a service.
FIG. 2 illustrates one embodiment of a system for synchronizing data between a wireless device and a service for an individual user.
FIG. 3 illustrates a messaging proxy node according to one embodiment of the invention.
FIG. 4 illustrates a messaging proxy node communicatively coupled between a client and a network.
DETAILED DESCRIPTION
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.
Figure 1 illustrates one embodiment of wireless messaging architecture. The "customer site" 120 illustrated in Figure 1 may be any local-area or wide-area network over which a plurality of servers 103 and clients 110 communicate. For example, the customer site may include all servers and clients maintained by a single corporation. The servers 103 may be configured to provide a variety of different messaging and groupware services 102 to network users (e.g., email, 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.
In one embodiment of the invention, an interface 100 transmits data maintained by the service 102 (e.g., email messages, instant messages, calendar data, . . . etc) to a plurality of wireless data processing devices (represented in Figure 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 email database, the interface 100 transmits any new emails which arrive in a
user's mailbox on the service 102 to the user's wireless data processing device 130 (over the network(s) 170 and/ or 171). Alternatively, or in addition, the service 102 may forward the email to the user's local computer (e.g., client 110) (i.e., so that the user will receive the email on his/her wireless device 130 when out of the office and on his/her personal computer 110 when in the office). Conversely, email messages sent from the user's wireless data processing device 130 are transmitted to the service 102 via the interface 100.
In one embodiment of the invention, messages are not merely "forwarded" to and from the wireless data processing device 130 as described above. Rather, the service 102 (e.g., the email database) is continually synchronized with the wireless data processing device 130. Thus, any actions performed on the wireless device 130 are automatically updated on the service 102 and any transactions occurring at the service 102 are automatically reflected on the device 130. Synchronization updates of this type may include but are not limited to calendar updates, email message updates, contact updates, notes updates, instant messages, to-do list updates and/ or any other type of information management transaction (hereinafter "message transactions"). For example, when a user views an email message using the device 130, an indication that the user viewed the message is transmitted to the service 102 (via the interface 100). Accordingly, when the user subsequently connects to email via the client 110, the email will appear as having already been viewed. Other actions such as message deletions, filing activities (e.g., moving a message to the "saved mail" 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.
In one embodiment, the interface 100 is a software module adapted to work with the particular service 120. It should be noted, however, that the interface
100 may be implemented in hardware or any combination of hardware and software while still complying with the underlying principles of the invention.
In one embodiment, the external data network 170 is comprised of a plurality of 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. The interface 100 may encapsulate 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 #") or an internet protocol ("IP") address). The external data network 170 transmits the packets to a wireless service provider network 171 which 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 pager network. However, various other network types may be employed (e.g., Code Division Multiple Access ("CDMA") 2000, General Packet Radio Service ("GPRS"), Personal Communication Services ("PCS"), . . . etc) while still complying with the underlying principles of the invention.
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.
Figure 2 illustrates one embodiment of the invention which provides synchronization between a wireless device 130 and a service 102 on user-by- user basis. Specifically, a messaging proxy node 200 communicatively coupled to the local network 220 (or wide area network) synchronizes message transactions between the service 102 and the wireless device 130 of a particular
user. An interface 205 executed on the messaging proxy node 200 performs messaging synchronization functions in a similar manner as the server-based interface 100 illustrated in Figure 1. The user simply couples the proxy node to the network (e.g., via the network port in the user's office/cube), and when the user is away, his/her wireless device will automatically be synchronized with the service 102, regardless of whether the user has taken his/her notebook computer on the road. In fact, using the embodiments of the messaging proxy node set forth herein, the user does not even need a desktop computer.
In operation, when the user performs a message transaction such as deleting an email message or a calendar entry on the wireless device 130, the "delete" message transaction is transmitted from the wireless device 130, over the wireless service provider network 171, data network 170 and LAN 220 to the messaging proxy node interface 205. The interface 205 then transmits the message transaction update to the service 102 which updates the user's information accordingly. Similarly, when a new message transaction is generated at the service 102 (e.g., a new email message arrives addressed to the user, a new calendar entry is generated, the user deletes a message from a client computer 230, . . . etc) the messaging proxy node 200 transmits the transaction to the wireless device 130, thereby providing synchronization between the wireless device 130 and the service 102. It should be noted that the specific types of message transactions mentioned above are for the purpose of illustration only. The underlying principles of the invention may be implemented using virtually an type of message transaction.
In one embodiment, the messaging interface 205 communicates with the messaging service 102 via the Mail API ("MAPI") from Microsoft Corporation. However, various alternative messaging protocols capable of providing message transaction updates (both standard and proprietary) may be
employed while still complying with the underlying principles of the invention.
One embodiment of the messaging proxy node hardware 300, illustrated in Figure 3, is a relatively low-cost network appliance comprised of a processor 310, a volatile memory 320, a non-volatile memory 330 and a network interface 350. The processor 310 of one embodiment is an ARM processor from ARM Inc., Los Gatos, CA. However, alternative processor types may also be employed (e.g., Intel Pentium processors, Sun SPARC processors, . . . etc).
The network interface 250 allows the node 200 to communicate over the local network 220. Accordingly, if the local network 220 is an Ethernet network then the network interface 200 will be an Ethernet interface. Various other network protocols may be supported by the network interface 350, both wired (e.g., Token Ring) and wireless (e.g., 802.11b, Bluetooth, . . . etc), consistent with the underlying principles of the invention.
In one embodiment, the volatile memory 320 stores program code and data to be executed by the processor 310 when the messaging proxy node 200 is powered on. A non-volatile memory 330 (e.g., Flash memory and/ or a hard drive) maintains program code and data if the messaging proxy node 200 is powered off. For example, in one embodiment, the non-volatile memory 330 stores the operating system and application programs which synchronize the wireless device 130 and the service 102 (e.g., such as the messaging interface 205 as described above). When the proxy node 200 is powered on, portions of the operating system and application programs and data stored in the nonvolatile memory 330 are loaded into volatile memory 320 where they may be executed/ processed by the processor 310. In one embodiment, the processor
310 executes/ processes code directly from non-volatile memory (e.g., as certain types of Flash memory allow).
In one particular embodiment, the operating system employed on the messaging proxy node 200 is Windows CE®. In another embodiment, the operating system is a version of Linux. However, the particular operating system employed within the proxy node 200 is not pertinent to the underlying principles of the invention.
The local communication port 340 provides for communication between the messaging proxy node 200 and other data processing devices. For example, an external device (e.g., a CD ROM drive or a personal computer) may be connected to the messaging proxy node 200 to upgrade the OS or application programs stored in the non-volatile memory 330. Alternatively, the messaging proxy node 200 may be upgraded over the network 220. In one embodiment, the communication port 340 is a serial port (e.g., a standard RS-232 serial port, a universal serial bus ("USB") port, IEEE 1394 Fire wire™ . . . etc). However, various alternative port types may also be employed (e.g., IEEE 1284 parallel, SCSI, . . . etc).
In one embodiment, the wireless data processing device 130 contains an interface which is compatible with the local communication port 340. In addition, the messaging proxy node 200 may contain a structural "cradle" allowing the wireless data processing device 130 to be easily communicatively coupled to the proxy node 200. This embodiment is illustrated generally in Figure 4 which shows the data processing device 130 physically and communicatively coupled to the messaging proxy node 200. In one embodiment, when coupled directly to the messaging proxy node 200, the wireless data processing device 130 receives synchronization updates through the local communication port 340, thereby conserving wireless bandwidth
(which may be more expensive and slower than the local communication port 340).
In addition, the messaging proxy node 200 illustrated in Figure 4 performs the functions of a network hub configured between a client computer 405 (e.g., the user's notebook computer) and the network 220. As such, only a single Ethernet port 410 (or other type of network drop) is required in the user's office or cube, thereby allowing users to individually take advantage of the functionality of the proxy node 200 without the need for an additional network port. In one embodiment, both the link 400 between the network 220 and the proxy node 200 and the link 401 between the proxy node 200 and the client computer 405 use the same physical layer, data link layer and network layer standards such as, e.g., twisted pair, Ethernet, and Internet Protocol ("IP"), respectively. However, various other physical, data link and network layer technologies may be employed while still complying with the underlying principles of the invention.
In addition, link 400 and link 401 may be physically coupled to the network 220, the messaging proxy node 200, and the client computer 405 in a variety of ways. For example, if twisted pair is used at the physical layer, the messaging proxy node 200 may be configured with two female RJ-45 connectors. Alternatively, the messaging proxy node may be configured with one female connector and one male connector (e.g., with the male connector disposed at the end of a length of twisted pair cable). Moreover, additional network ports and/ or serial ports may be configured on the messaging proxy node 200. The underlying principles of the invention remain the same regardless of how the messaging proxy node 200 is physically coupled between the network 220 and the client 405 or how many ports are configured on the proxy node 200.
The messaging proxy node 200 may be configured with its own network address to which message transaction updates are transmitted. Alternatively, the network proxy node may share a network address with the client computer 405. In one embodiment, the network address is automatically assigned to the messaging proxy node 200 via the Dynamic Host Configuration Protocol ("DHCP"). However, various other address assignment techniques may be employed, including manual assignment of static IP addresses.
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.
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, elements of 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).
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 described as an application-specific network appliance, it will be appreciated that the underlying principles of the invention may be implemented on a general purpose client computer (e.g., clients 230) in which the client executes software which synchronizes data between the wireless device 130 and service 102 as described above. Moreover, the functions of the message proxy node 200 may also be implemented solely in hardware (e.g., such as an application specific integrated circuit ("ASIC")).
Accordingly, the scope and spirit of the invention should be judged in terms of the claims which follow.