Method and system for distributing and updating software in wireless devices
A method is disclosed. The method includes receiving an update package from a wireless service provider that includes information indicating that multiple language versions of an update are included in the update package. Based on the information, the method further specifies an update associated with a language from the update package, and transmits the update associated with the language to a wireless device.
Latest Good Technology Holdings Limited Patents:
The present patent application This application is a reissue of U.S. Pat. No. 8,078,157. U.S. Pat. No. 8,078,157 is a Continuation application claiming priority from continuation of U.S. patent application Ser. No. 11/363,582, filed Feb. 27, 2006, now U.S. Pat. No. 7,620,392.
FIELD OF THE INVENTIONThis invention relates generally to the field of wireless networks. More particularly, the invention relates to distributing and updating software in wireless devices.
BACKGROUNDA 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”).™
Currently, in order to distribute software to wireless devices, the devices are cradled and/or connected to a computer system for software to be installed to a wireless device. Additionally, some software to be installed on the device may be language specific, or device specific. In this case software running on a computer system controls what version of the software is to be installed on the wireless device, or users may choose from a set of options provided.
A better understanding of the present invention can be obtained from the following detailed description in conjunction with the following drawings, in which:
According to one embodiment a method for updating a wireless device is disclosed. 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.
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.
Servers 103 may 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.
In one embodiment, an interface 100 forwards data objects (e.g., e-mail messages, instant messages, calendar data, etc.) maintained by service 102 to a plurality of wireless data processing devices (represented in
Alternatively, or in addition, service 102 may provide the e-mail to the user's local computer (e.g., client 110) upon request (e.g., so that the user will receive the e-mail on his/her device 130 when out of the office and on his/her personal computer 110 when in the office). Conversely, e-mail messages transmitted from the user's wireless data processing device 130 are transmitted to the service 102 via the interface 100.
In one embodiment, interface 100 is a software module adapted to work with the particular service 102. 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.
In one embodiment, the external data network 170 includes 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 devices 130. In one embodiment, the interface 100 encapsulates data in one or more packets having an address identifying the devices 130 (e.g., such as a 24-bit Mobitex Access Number (“MAN #”)).
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 wireless communication link 173 (e.g. cell tower) to the device 130. In one embodiment, the wireless service provider network is a CDMA 2000 network. However, various other network types may be employed (e.g., Mobitex, GPRS, 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.
In one embodiment, customer site 120 includes a management console (MC) 150. In a further embodiment, MC 150 is a GoodLink™ management console (GMC) developed by Good Technology®. Further wireless service provider network 171 is connected to a web-based software server 172. In one embodiment, web-based software server 172 is a web-store, which is used to distribute updates and applications to wireless devices (e.g. device 130).
According to one embodiment, updates and/or applications for device 130 are transmitted to web-based software server 172 from wireless service provider network 171, which are available for download by device 130. In one embodiment, the application to be downloaded is GoodLink™ client developed by Good Technology®. In another embodiment, notification of the availability of updates and/or applications is transmitted to customer site 120. At customer site 120, MC 150 allows an administrator to assign software policies for device 130. In one embodiment, the software policies determine which update and/or application notifications device 130 will receive.
Based on the software policies, customer site 120 then transmits a message to device 130 notifying device 130 of the updates and/or applications that are available to be downloaded from web-based software server 172.
At process block 230, device 130, based on the software policy, receives notification from customer site 120 that updates and/or applications are available for download. At process block 240, device 130 accesses web-based software server 172 to receive information regarding the updates and/or applications. At process block 250, web-based software server 172 transmits a universal resource locator (URL) to device 130 that indicates the location of the updates and/or applications. At process block 260, device 130 downloads the updates and/or applications from web-based software server 172 via the received URL.
Downloading updates and/or applications from a web-based software server reduces the burden on the bandwidth of a data network by spreading out the time when devices will download an update and/or application is described.
In another embodiment of the present invention a mechanism to distribute multi-language applications and updates in a package format is disclosed.
In one embodiment, web-based software server 172 decides, based on information received from device 130, which one of the software updates in update package 300 that device 130 will receive. Accordingly, the device 130 receives the version of the update that corresponds to its specified language.
In one embodiment, update package 300 has a compatibility matrix included with it. This compatibility matrix is included in meta-data associated with update package 300. The compatibility matrix includes information describing the languages supported by update package 300. An IT administrator may use the information to know the content of update package 300.
The following is an example of one embodiment of a compatibility matrix:
The locale and GUID tags in the compatibility matrix are to identify rules that are associated with each update in update package 300. For example, ‘locale=DE’ is a rule that identifies that the update is designated for devices with German as the device language.
At process block 430, device 130 requests meta-data associated with update package 300 from web-based software server 172. Device 130 transmits device specific information to web-based software server 172, process block 440. At decision block 450, web-based software server 172 checks the device specific information to determine whether the update associated with the device specific information is included in the compatibility matrix.
If the update associated with the device specific information is not included in the compatibility matrix, web-based software server 172 transmits an error to device 130 indicating that the appropriate update for device 130 is not included in update package 300, process block 460.
If the update associated with the device specific information is included in the compatibility matrix, web-based software server 172 evaluates the rules in the compatibility matrix and transmits information to device 130 specifying to device 130 what file in update package 300 to download, process block 470. At process block 480, device 130 downloads the specified file in update package 300 from web-based software server 172.
Receiving an update from an update package allows an IT administrator to globally deploy an update to all users regardless of their locale or language.
In another embodiment, a mechanism to distribute the load placed on a network is described. For Example, a network (e.g. wireless communication link 173) may only be able to handle a limited number of connections at the same time. In one embodiment, the maximum number of connections that can be supported simultaneously is thirty. However, other values may be used.
In order to minimize the number of devices downloading an update from a specific cell tower, a download restriction is associated with the updates.
If a user has not overridden the download restriction, the download restriction initiates scheduling of a download time for the update based on a random time, process block 540. At process block 550, the random time is generated based on a criteria. The criteria attempts to ensure that device 130 will download the update at a second location (e.g. a house). In one embodiment, the criteria restricts the random time to after 8 pm and before 2 am. However, other time restrictions may be used.
The above-mentioned process effectively alters the location of a device when the download occurs. The benefit is to distribute the load of downloading updates over a range of cell towers.
Computer system 600 further comprises a random access memory (RAM) or other dynamic storage device 625 (referred to herein as main memory), coupled to bus 620 for storing information and instructions to be executed by processor 610. Main memory 625 also may be used for storing temporary variables or other intermediate information during execution of instructions by processor 610. Computer system 600 also may include a read only memory (ROM) and/or other static storage device 626 coupled to bus 620 for storing static information and instructions used by processor 610.
A data storage device 625 such as a magnetic disk or optical disc and its corresponding drive may also be coupled to computer system 600 for storing information and instructions. Computer system 600 can also be coupled to a second I/O bus 650 via an I/O interface 630. A plurality of I/O devices may be coupled to I/O bus 650, including a display device 624; an input device (e.g., an alphanumeric input device 623 and/or a cursor control device 622).
The communication device 621 is for accessing other computers (servers or clients) via network 170. The communication device 621 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.
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, 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 illustrated as an interface 100 to a service 102 executed on a server 103 (see
Claims
1. A method of updating a wireless device, comprising:
- a wireless device receiving, at a first location, a notification indicating that an update package is available for the wireless device, the update package comprising a plurality of versions of an update;
- the wireless device transmitting, in response to receipt of said notification, device-specific information to a server system, the device-specific information comprising compatibility information relating to the wireless device;
- the wireless device receiving data specifying a download location of a version of the update from the server system, the version having been selected, based on the compatibility information; and
- the wireless device using the received data to access said the selected version of the update; and
- the wireless device receiving, based on a download restriction, at a predetermined location different from the first location, the selected version of the update from the server system.
2. The method of claim 1, further comprising: the wireless device requesting meta-data associated with the update.
3. The method of claim 1, further comprising:
- the server system determining whether the compatibility information is included in a compatibility matrix associated with the update; and
- the server system transmitting the data specifying a the download location of a the version of the update in response to determining that the compatibility information is included in the compatibility matrix.
4. A non-transitory, machine-readable storage medium having stored thereon data representing sets of machine-readable instructions which, when executed by a wireless device, configure cause the wireless device to perform a method, the method comprising:
- receive receiving, at a first location, a notification indicating that an update package is available for the wireless device, the update package comprising a plurality of versions of an update;
- transmit transmitting, in response to receipt of the notification, device-specific information to a server system, the device-specific information comprising compatibility information relating to the wireless device;
- receive receiving data specifying a download location of a version of the update from the server system, the version having been selected, based on the compatibility information; and
- use using the received data to access said the selected version of the update; and
- receiving, based on a download restriction, at a predetermined location different from the first location, the selected version of the update from the server system.
5. The machine-readable medium of claim 4, wherein the sets of instructions, when executed by the wireless device, further cause the wireless device to request the method further comprises: requesting meta-data associated with the update.
6. A The method according to claim 1, wherein the received data comprises a universal resource locator.
7. A The method according to claim 1, wherein the plurality of versions relate to a plurality of languages.
8. A method of providing an update to a wireless device, comprising:
- sending, to a wireless device at a first location, a notification indicating that an update package is available for the wireless device, the update package comprising a plurality of versions of an update;
- receiving, from the wireless device, device-specific information comprising compatibility information relating to the wireless device;
- selecting, based on the received compatibility information, a version of the update from the plurality of versions; and
- sending data for receipt at the wireless device, the data specifying a download location of the selected version; and
- providing, based on a download restriction, the selected version to the wireless device when the wireless device is in a predetermined location, the predetermined location being different than the first location.
9. A The method according to claim 8, further comprising:
- determining whether the compatibility information is included in a compatibility matrix associated with the update; and
- transmitting the data specifying a the download location of a the version of the update in response to determining that the compatibility information is included in the compatibility matrix.
10. A The method according to claim 8, wherein the data specifying a the download location of the selected version comprises a universal resource locator with which the selected version can be downloaded.
11. A The method according to claim 8, wherein the plurality of versions relates to a plurality of languages.
12. A The method according to claim 8, further comprising providing updates to a plurality of wireless devices via a network, wherein the method comprises: scheduling the a timing of provision of updates providing the selected version to the wireless devices so that no more than a predefined number of updates are simultaneously provided via the network.
13. A method according to claim 12, further comprising scheduling the provision of the selected version so that the selected version is provided to the wireless device when the wireless device is in a predetermined location.
14. A server system for providing an update to a wireless device, the server system comprising a processor and one or more a communications interfaces interface for communicating with one or more wireless devices, the server system being configured to:
- send, to a wireless device at a first location, via said one or more the communications interfaces, a notification indicating that an update package is available for the wireless device, the update package comprising a plurality of versions of an update;
- receive, from the wireless device via said one or more the communications interfaces, device-specific information comprising compatibility information relating to the wireless device;
- select, byat the processor, based on the received compatibility information, a version of the update; and
- send data, via said one or more the communications interfaces, for receipt at the wireless device, data specifying a download location of the selected version; and
- provide, based on a download restriction, the selected version to the wireless device when the wireless device is in a predetermined location, the predetermined location being different than the first location.
15. A The system according to claim 14, further comprising: a software server system storing the plurality of versions.
16. A The system according to claim 14, further comprising: a management console for configuring rules associated with the update.
17. A non-transitory, computer-readable storage medium storing computer readable instructions thereon for execution on a computing system to implement a method of providing an update to a wireless device, the method comprising:
- sending, to a wireless device at a first location, a notification indicating that an update package is available for the wireless device, the update package comprising a plurality of versions of the update;
- receiving, from the wireless device, device-specific information comprising compatibility information relating to the wireless device;
- selecting, based on the received compatibility information, a version of the update; and
- sending data for receipt at the wireless device, a data specifying a download location of the selected version; and
- providing, based on a download restriction, the selected version to the wireless device when the wireless device is in a predetermined location, the predetermined location being different than the first location.
18. A wireless device configured to, comprising:
- a memory comprising computer-executable software;
- a communication interface;
- a processor in data communication with the memory and the communication interface, the processor being configured to execute the software and cause the wireless device to:
- receive, at a first location, a notification indicating that an update package is available for the wireless device, the update package comprising a plurality of versions of an update;
- transmit, in response to receiving a said the notification, device-specific information comprising compatibility information relating to the wireless device to a server system;
- receive data specifying a download location of a version of the update from the server system, the version having been selected, based on the compatibility information; and
- use the received data to access said selected version of the update; and receive, based on a download restriction, at a predetermined location different from the first location, the selected version of the update from the server system.
19. A method of updating a wireless device, comprising:
- a wireless device receiving, at a first location, a notification indicating that an update package is available for the wireless device, the update package comprising a plurality of versions of an update;
- the wireless device transmitting, in response to receipt of said notification, device-specific information to a server system, the device-specific information comprising compatibility information relating to the wireless device;
- the wireless device receiving data specifying a download location of a version of the update from the server system, the version being associated with the compatibility information; and
- the wireless device using the received data to access said the selected version of the update; and
- the wireless device receiving, based on a download restriction, at a predetermined location different from the first location, the selected version of the update from the server system.
20. A method of distributing software, comprising, at a server system comprising memory and one or more processors:
- receiving a software package for distribution, the software package having rules associated therewith;
- identifying a wireless device to which to provide the software package, based on the rules and device-specific information stored in the memory; and
- providing the software package via a wireless network to the identified wireless device when the identified wireless device is at a first location; and
- restricting provision of the software package to the identified wireless device, so that the software package is provided to the identified wireless device at a predetermined location, the predetermined location being different than the first location.
21. The method of claim 20, further comprising, at the server system:
- providing the software package to each of a plurality of identified wireless devices via a respective connection; and
- configuring two or more of the connections so as to restrict simultaneous provision of the software package.
22. The method of claim 21, further comprising, at the server system:
- scheduling a time for the provision of the software package to the plurality of identified wireless devices.
23. The method of claim 21, further comprising, at the server system: setting a random time to provide the software package to the plurality of identified wireless devices.
24. The method of claim 20, wherein the software package comprises an update package.
25. A server system for distributing software, the server system comprising:
- memory comprising executable software and device specific information for each of a plurality of wireless devices; and one or more processors configured to execute the executable software and cause the server system to: receive a software package for distribution, the software package having rules associated therewith; identify, at the processor, based on the device specific information and the rules, a wireless device to which to provide the software package; provide the software package, via a wireless network, to the identified wireless device when the identified wireless device is at a first location; and restrict provision of the software package to the identified wireless device, so that the software package is provided to the identified wireless device at a predetermined location, the predetermined location being different than the first location.
26. The server system of claim 25, further configured to:
- provide the software package to each of a plurality of identified wireless devices via a respective connection; and
- configure two or more of the connections so as to restrict simultaneous provision of the software package.
27. The server system of claim 26, further configured to: schedule a time for the provision of the software package to the plurality of identified wireless devices.
28. The server system of claim 26, further configured to: set a random time to provide the software package to the plurality of identified wireless devices.
29. The server system of claim 25, wherein the software package comprises an update package.
30. A non-transitory computer-readable storage medium storing computer readable instructions thereon for execution on a computing system to implement a method of distributing software, the method comprising:
- receiving a software package for distribution, the software package having rules associated therewith;
- identifying a wireless device to which to provide the software package, based on the rules and device-specific information stored in a memory of the computing system;
- providing the software package via a wireless network to the identified wireless device when the identified wireless device is at a first location; and
- restricting provision of the software package to the identified wireless device, so that the software package is provided to the identified wireless device at a predetermined location, the predetermined location being different than the first location.
31. The non-transitory computer-readable storage medium of claim 30, wherein the method further comprises:
- providing the software package to each of a plurality of identified wireless devices via a respective connection; and
- configuring two or more of the connections so as to restrict simultaneous provision of the software package.
32. The non-transitory computer-readable storage medium of claim 31, wherein the method further comprising:
- scheduling a time for the provision of the software package to the identified plurality of wireless devices.
33. The non-transitory computer-readable storage medium of claim 31, wherein the method further comprises: setting a random time to provide the software package to the plurality of identified wireless devices.
34. The non-transitory computer-readable storage medium of claim 30, wherein the software package comprises an update package.
4682150 | July 21, 1987 | Mathes et al. |
4882752 | November 21, 1989 | Lindman et al. |
5049881 | September 17, 1991 | Gibson et al. |
5115392 | May 19, 1992 | Takamoto et al. |
5126739 | June 30, 1992 | Whiting et al. |
5159592 | October 27, 1992 | Perkins |
5220501 | June 15, 1993 | Lawlor et al. |
5237614 | August 17, 1993 | Weiss |
5321840 | June 14, 1994 | Ahlin |
5392390 | February 21, 1995 | Crozier |
5434994 | July 18, 1995 | Shaheen et al. |
5469161 | November 21, 1995 | Bezek |
5519606 | May 21, 1996 | Frid-Nielsen et al. |
5521597 | May 28, 1996 | Dimitri |
5553281 | September 3, 1996 | Brown et al. |
5559800 | September 24, 1996 | Mousseau et al. |
5563595 | October 8, 1996 | Strohacker |
5613012 | March 18, 1997 | Hoffman et al. |
5664207 | September 2, 1997 | Crumpler et al. |
5666530 | September 9, 1997 | Clark et al. |
5694546 | December 2, 1997 | Reisman |
5715387 | February 3, 1998 | Barnstijn et al. |
5721907 | February 24, 1998 | Pyne |
5727159 | March 10, 1998 | Kikinis |
5727202 | March 10, 1998 | Kucala |
5760716 | June 2, 1998 | Mathews et al. |
5771010 | June 23, 1998 | Masenas |
5787441 | July 28, 1998 | Beckhardt |
5790974 | August 4, 1998 | Tognazzini |
5793970 | August 11, 1998 | Fakes et al. |
5802312 | September 1, 1998 | Lazaridis et al. |
5809415 | September 15, 1998 | Rossmann |
5841376 | November 24, 1998 | Hayashi |
5850517 | December 15, 1998 | Verkler et al. |
5857201 | January 5, 1999 | Wright et al. |
5870610 | February 9, 1999 | Beyda |
5875329 | February 23, 1999 | Shan |
5903230 | May 11, 1999 | Masenas |
5903881 | May 11, 1999 | Schrader et al. |
5930471 | July 27, 1999 | Milewski et al. |
5961590 | October 5, 1999 | Mendez et al. |
5974238 | October 26, 1999 | Chase, Jr. |
5987464 | November 16, 1999 | Schneider |
5999947 | December 7, 1999 | Zollinger et al. |
6003089 | December 14, 1999 | Shaffer et al. |
6006274 | December 21, 1999 | Hawkins et al. |
6023708 | February 8, 2000 | Mendez et al. |
6034621 | March 7, 2000 | Kaufman |
6049671 | April 11, 2000 | Slivka et al. |
6052735 | April 18, 2000 | Ulrich et al. |
6065017 | May 16, 2000 | Barker |
6104392 | August 15, 2000 | Shaw et al. |
6111707 | August 29, 2000 | Buddecke et al. |
6151606 | November 21, 2000 | Mendez et al. |
6167448 | December 26, 2000 | Hemphill et al. |
6182117 | January 30, 2001 | Christie et al. |
6216157 | April 10, 2001 | Vishwanath et al. |
6218970 | April 17, 2001 | Jaquette |
6219694 | April 17, 2001 | Lazaridis et al. |
6226618 | May 1, 2001 | Downs |
6259891 | July 10, 2001 | Allen |
6275848 | August 14, 2001 | Arnold |
6279001 | August 21, 2001 | DeBettencourt et al. |
6304881 | October 16, 2001 | Halim et al. |
6308061 | October 23, 2001 | Criss et al. |
6310889 | October 30, 2001 | Parsons et al. |
6330618 | December 11, 2001 | Hawkins et al. |
6343299 | January 29, 2002 | Huang et al. |
6347340 | February 12, 2002 | Coelho et al. |
6360272 | March 19, 2002 | Lincke et al. |
6381454 | April 30, 2002 | Tiedemann |
6384850 | May 7, 2002 | McNally et al. |
6393434 | May 21, 2002 | Huang et al. |
6396482 | May 28, 2002 | Griffin et al. |
6401136 | June 4, 2002 | Britton et al. |
6425126 | July 23, 2002 | Branson et al. |
6430601 | August 6, 2002 | Eldridge et al. |
6434613 | August 13, 2002 | Bertram et al. |
6449622 | September 10, 2002 | LaRue et al. |
6457062 | September 24, 2002 | Pivowar et al. |
6460055 | October 1, 2002 | Midgley et al. |
6463463 | October 8, 2002 | Godfrey et al. |
6463464 | October 8, 2002 | Lazaridis et al. |
6477543 | November 5, 2002 | Huang et al. |
6496979 | December 17, 2002 | Chen |
6505055 | January 7, 2003 | Kahn et al. |
6535892 | March 18, 2003 | LaRue et al. |
6571245 | May 27, 2003 | Huang et al. |
6604236 | August 5, 2003 | Draper et al. |
6615253 | September 2, 2003 | Bowman-Amuah |
6625621 | September 23, 2003 | Tan et al. |
6636873 | October 21, 2003 | Carini et al. |
6640244 | October 28, 2003 | Bowman-Amuah |
6654746 | November 25, 2003 | Wong et al. |
6658167 | December 2, 2003 | Lee et al. |
6671757 | December 30, 2003 | Multer et al. |
6675009 | January 6, 2004 | Cook |
6694335 | February 17, 2004 | Hopmann et al. |
6697458 | February 24, 2004 | Kunjibettu |
6701378 | March 2, 2004 | Gilhuly et al. |
6721019 | April 13, 2004 | Kono et al. |
6721787 | April 13, 2004 | Hiscock |
6721871 | April 13, 2004 | Piispanen et al. |
6735434 | May 11, 2004 | Criss et al. |
6757698 | June 29, 2004 | McBride et al. |
6779019 | August 17, 2004 | Mousseau et al. |
6792085 | September 14, 2004 | Rigaldies et al. |
6829639 | December 7, 2004 | Lawson et al. |
6874037 | March 29, 2005 | Abram et al. |
6901415 | May 31, 2005 | Thomas et al. |
6907243 | June 14, 2005 | Patel |
6931454 | August 16, 2005 | Deshpande et al. |
6934766 | August 23, 2005 | Russell |
6941348 | September 6, 2005 | Petry et al. |
6941349 | September 6, 2005 | Godfrey et al. |
6954789 | October 11, 2005 | Dietz et al. |
6973299 | December 6, 2005 | Apfel |
6976263 | December 13, 2005 | Delaney |
6983308 | January 3, 2006 | Oberhaus |
7003776 | February 21, 2006 | Sutherland |
7073137 | July 4, 2006 | Hassanin et al. |
7085809 | August 1, 2006 | Mori et al. |
7092699 | August 15, 2006 | Hefter |
7133756 | November 7, 2006 | Jammu et al. |
7136934 | November 14, 2006 | Carter et al. |
7139555 | November 21, 2006 | Apfel |
7149813 | December 12, 2006 | Flanagin et al. |
7155483 | December 26, 2006 | Friend et al. |
7185082 | February 27, 2007 | del Val et al. |
7239877 | July 3, 2007 | Corneille et al. |
7257649 | August 14, 2007 | Rabbers et al. |
7340389 | March 4, 2008 | Vargas |
7356510 | April 8, 2008 | Durand |
7467167 | December 16, 2008 | Patterson |
8178040 | May 15, 2012 | Brauer |
8875116 | October 28, 2014 | O'Neill et al. |
20010004744 | June 21, 2001 | Lazaridis et al. |
20010005864 | June 28, 2001 | Mousseau et al. |
20010010059 | July 26, 2001 | Burman et al. |
20010029178 | October 11, 2001 | Criss et al. |
20010034654 | October 25, 2001 | Vigil |
20010044835 | November 22, 2001 | Schober et al. |
20010046854 | November 29, 2001 | Henry et al. |
20010049263 | December 6, 2001 | Zhang |
20010053688 | December 20, 2001 | Rignell et al. |
20010054115 | December 20, 2001 | Ferguson et al. |
20020013853 | January 31, 2002 | Baber et al. |
20020019225 | February 14, 2002 | Miyashita |
20020032722 | March 14, 2002 | Baynes et al. |
20020046286 | April 18, 2002 | Caldwell et al. |
20020055355 | May 9, 2002 | Ikeda |
20020085506 | July 4, 2002 | Hundscheidt |
20020085719 | July 4, 2002 | Crosbie |
20020099772 | July 25, 2002 | Deshpande |
20020119793 | August 29, 2002 | Hronek |
20020120696 | August 29, 2002 | Mousseau et al. |
20020146240 | October 10, 2002 | Ogawa et al. |
20020155829 | October 24, 2002 | Proctor |
20020160773 | October 31, 2002 | Gresham et al. |
20030022661 | January 30, 2003 | Guterman |
20030046434 | March 6, 2003 | Flanagin et al. |
20030050046 | March 13, 2003 | Conneely |
20030069842 | April 10, 2003 | Kight |
20030081621 | May 1, 2003 | Godfrey et al. |
20030084165 | May 1, 2003 | Kjellberg |
20030097381 | May 22, 2003 | Detweiler |
20030097490 | May 22, 2003 | Delaney |
20030143991 | July 31, 2003 | Minear |
20030147369 | August 7, 2003 | Singh |
20030182326 | September 25, 2003 | Patterson |
20040002943 | January 1, 2004 | Merrill |
20040003266 | January 1, 2004 | Moshir |
20040034853 | February 19, 2004 | Gibbons |
20040054739 | March 18, 2004 | Friend et al. |
20040068665 | April 8, 2004 | Fox |
20040092255 | May 13, 2004 | Ji et al. |
20040098420 | May 20, 2004 | Peng |
20040098421 | May 20, 2004 | Peng et al. |
20040098715 | May 20, 2004 | Aghera |
20040105423 | June 3, 2004 | Koehler et al. |
20040109436 | June 10, 2004 | Vargas et al. |
20040203693 | October 14, 2004 | Mehta |
20040203941 | October 14, 2004 | Kaplan |
20040214599 | October 28, 2004 | Ogino |
20040246895 | December 9, 2004 | Feyerabend |
20050075115 | April 7, 2005 | Corneille |
20050132357 | June 16, 2005 | Shell |
20050148356 | July 7, 2005 | Ferguson et al. |
20050186952 | August 25, 2005 | Kitajima |
20050216534 | September 29, 2005 | Ikezawa |
20050254458 | November 17, 2005 | Proctor |
20060025123 | February 2, 2006 | Majmundar et al. |
20060043820 | March 2, 2006 | Nakahara |
20060046703 | March 2, 2006 | Liu |
20060073820 | April 6, 2006 | Craswell et al. |
20060106806 | May 18, 2006 | Sperling et al. |
20060129638 | June 15, 2006 | Deakin |
20060206537 | September 14, 2006 | Chiang |
20060217111 | September 28, 2006 | Marolia et al. |
20060229027 | October 12, 2006 | Wang et al. |
20060242621 | October 26, 2006 | Ye et al. |
20070042766 | February 22, 2007 | Herle |
20070083676 | April 12, 2007 | Rabbers |
20080125105 | May 29, 2008 | Qumei et al. |
20090013083 | January 8, 2009 | Garcia-Luna-Aceves |
0666651 | August 1995 | EP |
0684558 | November 1995 | EP |
0909037 | April 1999 | EP |
0917077 | May 1999 | EP |
1014629 | June 2000 | EP |
07-182263 | July 1995 | JP |
10-269125 | October 1998 | JP |
11-136365 | May 1999 | JP |
2000148641 | May 2000 | JP |
2001053785 | February 2001 | JP |
2001076040 | March 2001 | JP |
0067158 | November 2000 | WO |
0219626 | March 2002 | WO |
- “Rarlabs Download Page”, http://web.archive.orglweb/20020603234419/http://www.rarlab.comldownload.htm, Capture by Wayback Machine on Jun. 3, 2002, (1 pg.).
- Hild, Stefan G. “Mobilizing Applications”, IEEE Personal Communications/ 1070-9916/97 (Oct. 1997), 26-34.
- Airsoft, Inc., 1996, Powerburst: making remote access work, 9 pp.
- Airsoft, Inc., Dec. 1995, Corporate Backgrounder, 5 pp.
- Airsoft, Inc., Jun. 21, 1994, AirSoft AirAccess 2.0 Mobile Networking Software: Product Overview and Reviewer's Guide, 11 pp.
- Anterior Technology Radiomail Gateway Services, Dec. 1991, Draft Application Program Interface Specification, Version 1.0 (Beta), 7 pp.
- Barnstijn: Memo re MailCall and Radiomail integration, Research in Motion, 7 pp, Dec. 6, 1991.
- Berners-Lee et al: Hypertext Transfer Protocol—HTTP/1.0, 60 pp, May 1996.
- Business Wire, SkyTel and CompuServe team to provide wireless messaging services in countries worldwide; SkyTel adds to e-mail connectivity options it provides for business markets, 3 pp, May 1, 1991.
- cc:Mail Inc., 1995, Lotus cc:Mail for the World Wide Web Release 1 Administrator's Guide, 78 pp.
- cc:Mail Inc., 1994, Automatic Directory Exchange Release 2: Administrator's Guide, 76 pp.
- CompuServe Incorporated, 1988, CompuServe Professional Connection Plus Message Management with Forms, Users Guide, 131 pp.
- Crispin: RFC1730—Internet message access protocol—Version 4, Network Working Group, University of Washington, 55 pp. Dec. 1994.
- Crocker: RFC 822—Standard for the format of ARPA Internet text messages, 43 pp, 1982.
- Dahl, Andrew: Lotus Notes 4 Administrator's Survival Guide, Sams Publishing, pp. 49, 64-66, 1996.
- Data Communications, Juicing up remote-node links to the LAN, pp. 108 and 110, Jan. 1996.
- developerWorks Lotus, Web team, IBM,The History of Notes and Domino, 22 pp., Nov. 14, 2007.
- GloMop Group, GloMop: Global Mobile Computing by Proxy, 12 pp., 1995.
- Grous: Creating and Managing a Web Site with Lotus' InterNotes Web Publisher, The View, 17 pp., Sep. 1995.
- Infinite Technologies, Administrator's Guide: WebMail Remote e-mail access via the world wide web, Release 1.0, 72 pp., 1996.
- Infinite Technologies, User's Guide: Webmail Remote Email Access, 82 pp., 1996.
- Infinite Technologies, WebMail Q&A, 5pp., 1996.
- Infinite Technologies, Infinite InterChange: remote access to almost any LAN-based e-mail from anywhere, 170 pp., 1997.
- Infinite Technologies, Infinite InterChange: remote access to almost any LAN-based e-mail from anywhere, 1 p., 1997.
- Infinite Technologies, Introducing WebMail Presentation, 13 pp., 1997.
- InfoKomp, WebMail Tech Notes: FYIs, 5 pp., 1996.
- Internet Anywhere Consortium, Business Plan of Jul. 1, 1994, Information Technology Research Centre, Mortice Kern Systems Inc., Research in Motion Limited, 48 pp.
- Internet Anywhere Consortium, Program Budget and Statement of Work, Information Technology Research Centre, Mortice Kern Systems Inc. Research in Motion Limited, 12 pp., Feb. 21, 1994.
- Internet Anywhere Wireless Functional Specification, Research in Motion, Limited, 9 pp., 1994.
- Kramer: Remote possibilities; gateways let remote users exchange mail via web browsers, 5 pp., 1999.
- Kucharczyk, David: Memo re MailCall and Radiomail Integration, Research in Motion, 2 pp., Dec. 11, 1991.
- Lamb et al.: Lotus Notes Network Design for Notes Release 3 and 4, McGraw-Hill, pp. 196-197, 1996.
- Lambert: PCMail: A distributed mail system for personal computers, 38 pp., 1988.
- Lazaridis: Viking Express document to Richard Kirby, 2pp., Jan. 23, 1992.
- Libris Inc.: Libris AirNet Service, Specification Version 0.6b, 172 pp., Sep. 1995.
- Lotus Development, Lotus Notes Release 4.5 Administrator's Guide, 748 pp., 1995.
- Mathers et al: Lotus Notes Internet Cookbook for Notes Release 4, 37 pp., Feb. 14, 1996.
- MKS Internet Anywhere Product Plan, 7.2.3 Release Schedule, 2 pp., 1994.
- Mobilib-Plus Developers Kit: User Guide and Reference Manual, Version 2.2, Research in Motion Ltd., 80 pp.. Jun. 28, 1993.
- MobilLib-Plus Product Brief: Preliminary interface specification for MobiLib-Plus session layer, Research in Motion Limited, 8 pp., Sep. 24, 1991.
- Mobitex User's Handbook for the Mobiden AT, Version 1.0, Research in Motion, 66 pp., Apr. 1993.
- Motorola Inc., Communication Client Guide: AirMobile Wireless Software for Lotus cc:Mail, 48 pp., 1995.
- Motorola, AirMobile wireless software for cc:mail: e-mail from anywhere, 2 pp., 1995.
- Motorola, Communication Server Guide: AirMobile Wireless Software for Lotus cc:Mail, 46 pp., 1995.
- Pyle: A jump start for the top ten R3-toR4 migration consideration, The View, Wellesley Information Services, pp. 3-20, Nov.-Dec. 1995.
- RAM Mobile Data, Inc., An Overview of the RAM Mobile Data, Inc. Mobitex Packet Radio Networks including a summary of radio/modern and terminal design requirements and guidelines for application specific software design, Issue 2, 61 pp., Aug. 1990.
- Rennie: The Official Guide to Lotus Software: cc:Mail Plain and Simple, Sybex Inc., 293 pp., 1994.
- Research in Motion Limited, Wireless Access to the Internet-Preliminary Functional Specification, 12 pp., 1994.
- RIM/MKS/ITRC Canarie Partnership: Internet Anywhere Wireless Access to the Internet; PowerPoint slide, 1 pg., 1992.
- Wong: Casahl's replic-action: delivering true notes/DMBS integration, The View, pp. 33-50, Jan./Feb. 1996.
Type: Grant
Filed: Dec 13, 2013
Date of Patent: Mar 28, 2017
Assignee: Good Technology Holdings Limited (Waterloo, Ontario)
Inventors: Sanjiv Maurya (Fremont, CA), Chih-Yu Chow (Palo Alto, CA), Tony Robinson (Palo Alto, CA)
Primary Examiner: Angela M Lie
Application Number: 14/106,534
International Classification: H04M 3/00 (20060101); H04M 1/00 (20060101); H04M 1/725 (20060101); G06F 9/445 (20060101); G06F 9/44 (20060101);