Method and system for distributing and updating software in wireless devices

Maurya , et al. March 28, 2

Patent Grant RE46355

U.S. patent number RE46,355 [Application Number 14/106,534] was granted by the patent office on 2017-03-28 for method and system for distributing and updating software in wireless devices. This patent grant is currently assigned to Good Technology Holdings Limited. The grantee listed for this patent is Good Technology Holdings Limited. Invention is credited to Chih-Yu Chow, Sanjiv Maurya, Tony Robinson.


United States Patent RE46,355
Maurya ,   et al. March 28, 2017
**Please see images for: ( Certificate of Correction ) **

Method and system for distributing and updating software in wireless devices

Abstract

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.


Inventors: Maurya; Sanjiv (Fremont, CA), Chow; Chih-Yu (Palo Alto, CA), Robinson; Tony (Palo Alto, CA)
Applicant:
Name City State Country Type

Good Technology Holdings Limited

Waterloo

N/A

CA
Assignee: Good Technology Holdings Limited (Waterloo, Ontario, CA)
Family ID: 41279709
Appl. No.: 14/106,534
Filed: December 13, 2013

Related U.S. Patent Documents

Application Number Filing Date Patent Number Issue Date
11363582 Nov 17, 2009 7620392
Reissue of: 12577428 Oct 12, 2009 8078157 Dec 13, 2011

Current U.S. Class: 1/1
Current CPC Class: G06F 8/65 (20130101); H04M 1/72406 (20210101); G06F 9/454 (20180201); H04M 1/72406 (20210101); G06F 8/65 (20130101); G06F 9/454 (20180201); H04M 2250/58 (20130101); H04M 2250/58 (20130101)
Current International Class: H04M 3/00 (20060101); G06F 9/445 (20060101); H04M 1/725 (20060101); G06F 9/44 (20060101); H04M 1/00 (20060101)
Field of Search: ;455/418

References Cited [Referenced By]

U.S. Patent Documents
4682150 July 1987 Mathes et al.
4882752 November 1989 Lindman et al.
5049881 September 1991 Gibson et al.
5115392 May 1992 Takamoto et al.
5126739 June 1992 Whiting et al.
5159592 October 1992 Perkins
5220501 June 1993 Lawlor et al.
5237614 August 1993 Weiss
5321840 June 1994 Ahlin
5392390 February 1995 Crozier
5434994 July 1995 Shaheen et al.
5469161 November 1995 Bezek
5519606 May 1996 Frid-Nielsen et al.
5521597 May 1996 Dimitri
5553281 September 1996 Brown et al.
5559800 September 1996 Mousseau et al.
5563595 October 1996 Strohacker
5613012 March 1997 Hoffman et al.
5664207 September 1997 Crumpler et al.
5666530 September 1997 Clark et al.
5694546 December 1997 Reisman
5715387 February 1998 Barnstijn et al.
5721907 February 1998 Pyne
5727159 March 1998 Kikinis
5727202 March 1998 Kucala
5760716 June 1998 Mathews et al.
5771010 June 1998 Masenas
5787441 July 1998 Beckhardt
5790974 August 1998 Tognazzini
5793970 August 1998 Fakes et al.
5802312 September 1998 Lazaridis et al.
5809415 September 1998 Rossmann
5841376 November 1998 Hayashi
5850517 December 1998 Verkler et al.
5857201 January 1999 Wright et al.
5870610 February 1999 Beyda
5875329 February 1999 Shan
5903230 May 1999 Masenas
5903881 May 1999 Schrader et al.
5930471 July 1999 Milewski et al.
5961590 October 1999 Mendez et al.
5974238 October 1999 Chase, Jr.
5987464 November 1999 Schneider
5999947 December 1999 Zollinger et al.
6003089 December 1999 Shaffer et al.
6006274 December 1999 Hawkins et al.
6023708 February 2000 Mendez et al.
6034621 March 2000 Kaufman
6049671 April 2000 Slivka et al.
6052735 April 2000 Ulrich et al.
6065017 May 2000 Barker
6104392 August 2000 Shaw et al.
6111707 August 2000 Buddecke et al.
6151606 November 2000 Mendez et al.
6167448 December 2000 Hemphill et al.
6182117 January 2001 Christie et al.
6216157 April 2001 Vishwanath et al.
6218970 April 2001 Jaquette
6219694 April 2001 Lazaridis et al.
6226618 May 2001 Downs
6259891 July 2001 Allen
6275848 August 2001 Arnold
6279001 August 2001 DeBettencourt et al.
6304881 October 2001 Halim et al.
6308061 October 2001 Criss et al.
6310889 October 2001 Parsons et al.
6330618 December 2001 Hawkins et al.
6343299 January 2002 Huang et al.
6347340 February 2002 Coelho et al.
6360272 March 2002 Lincke et al.
6381454 April 2002 Tiedemann
6384850 May 2002 McNally et al.
6393434 May 2002 Huang et al.
6396482 May 2002 Griffin et al.
6401136 June 2002 Britton et al.
6425126 July 2002 Branson et al.
6430601 August 2002 Eldridge et al.
6434613 August 2002 Bertram et al.
6449622 September 2002 LaRue et al.
6457062 September 2002 Pivowar et al.
6460055 October 2002 Midgley et al.
6463463 October 2002 Godfrey et al.
6463464 October 2002 Lazaridis et al.
6477543 November 2002 Huang et al.
6496979 December 2002 Chen
6505055 January 2003 Kahn et al.
6535892 March 2003 LaRue et al.
6571245 May 2003 Huang et al.
6604236 August 2003 Draper et al.
6615253 September 2003 Bowman-Amuah
6625621 September 2003 Tan et al.
6636873 October 2003 Carini et al.
6640244 October 2003 Bowman-Amuah
6654746 November 2003 Wong et al.
6658167 December 2003 Lee et al.
6671757 December 2003 Multer et al.
6675009 January 2004 Cook
6694335 February 2004 Hopmann et al.
6697458 February 2004 Kunjibettu
6701378 March 2004 Gilhuly et al.
6721019 April 2004 Kono et al.
6721787 April 2004 Hiscock
6721871 April 2004 Piispanen et al.
6735434 May 2004 Criss et al.
6757698 June 2004 McBride et al.
6779019 August 2004 Mousseau et al.
6792085 September 2004 Rigaldies et al.
6829639 December 2004 Lawson et al.
6874037 March 2005 Abram et al.
6901415 May 2005 Thomas et al.
6907243 June 2005 Patel
6931454 August 2005 Deshpande et al.
6934766 August 2005 Russell
6941348 September 2005 Petry et al.
6941349 September 2005 Godfrey et al.
6954789 October 2005 Dietz et al.
6973299 December 2005 Apfel
6976263 December 2005 Delaney
6983308 January 2006 Oberhaus
7003776 February 2006 Sutherland
7073137 July 2006 Hassanin et al.
7085809 August 2006 Mori et al.
7092699 August 2006 Hefter
7133756 November 2006 Jammu et al.
7136934 November 2006 Carter et al.
7139555 November 2006 Apfel
7149813 December 2006 Flanagin et al.
7155483 December 2006 Friend et al.
7185082 February 2007 del Val et al.
7239877 July 2007 Corneille et al.
7257649 August 2007 Rabbers et al.
7340389 March 2008 Vargas
7356510 April 2008 Durand
7467167 December 2008 Patterson
8178040 May 2012 Brauer
8875116 October 2014 O'Neill et al.
2001/0004744 June 2001 Lazaridis et al.
2001/0005864 June 2001 Mousseau et al.
2001/0010059 July 2001 Burman et al.
2001/0029178 October 2001 Criss et al.
2001/0034654 October 2001 Vigil
2001/0044835 November 2001 Schober et al.
2001/0046854 November 2001 Henry et al.
2001/0049263 December 2001 Zhang
2001/0053688 December 2001 Rignell et al.
2001/0054115 December 2001 Ferguson et al.
2002/0013853 January 2002 Baber et al.
2002/0019225 February 2002 Miyashita
2002/0032722 March 2002 Baynes et al.
2002/0046286 April 2002 Caldwell et al.
2002/0055355 May 2002 Ikeda
2002/0085506 July 2002 Hundscheidt
2002/0085719 July 2002 Crosbie
2002/0099772 July 2002 Deshpande
2002/0119793 August 2002 Hronek
2002/0120696 August 2002 Mousseau et al.
2002/0146240 October 2002 Ogawa et al.
2002/0155829 October 2002 Proctor
2002/0160773 October 2002 Gresham et al.
2003/0022661 January 2003 Guterman
2003/0046434 March 2003 Flanagin et al.
2003/0050046 March 2003 Conneely
2003/0069842 April 2003 Kight
2003/0081621 May 2003 Godfrey et al.
2003/0084165 May 2003 Kjellberg
2003/0097381 May 2003 Detweiler
2003/0097490 May 2003 Delaney
2003/0143991 July 2003 Minear
2003/0147369 August 2003 Singh
2003/0182326 September 2003 Patterson
2004/0002943 January 2004 Merrill
2004/0003266 January 2004 Moshir
2004/0034853 February 2004 Gibbons
2004/0054739 March 2004 Friend et al.
2004/0068665 April 2004 Fox
2004/0092255 May 2004 Ji et al.
2004/0098420 May 2004 Peng
2004/0098421 May 2004 Peng et al.
2004/0098715 May 2004 Aghera
2004/0105423 June 2004 Koehler et al.
2004/0109436 June 2004 Vargas et al.
2004/0203693 October 2004 Mehta
2004/0203941 October 2004 Kaplan
2004/0214599 October 2004 Ogino
2004/0246895 December 2004 Feyerabend
2005/0075115 April 2005 Corneille
2005/0132357 June 2005 Shell
2005/0148356 July 2005 Ferguson et al.
2005/0186952 August 2005 Kitajima
2005/0216534 September 2005 Ikezawa
2005/0254458 November 2005 Proctor
2006/0025123 February 2006 Majmundar et al.
2006/0043820 March 2006 Nakahara
2006/0046703 March 2006 Liu
2006/0073820 April 2006 Craswell et al.
2006/0106806 May 2006 Sperling et al.
2006/0129638 June 2006 Deakin
2006/0206537 September 2006 Chiang
2006/0217111 September 2006 Marolia et al.
2006/0229027 October 2006 Wang et al.
2006/0242621 October 2006 Ye et al.
2007/0042766 February 2007 Herle
2007/0083676 April 2007 Rabbers
2008/0125105 May 2008 Qumei et al.
2009/0013083 January 2009 Garcia-Luna-Aceves
Foreign Patent Documents
0666651 Aug 1995 EP
0684558 Nov 1995 EP
0909037 Apr 1999 EP
0917077 May 1999 EP
1014629 Jun 2000 EP
07-182263 Jul 1995 JP
10-269125 Oct 1998 JP
11-136365 May 1999 JP
2000148641 May 2000 JP
2001053785 Feb 2001 JP
2001076040 Mar 2001 JP
0067158 Nov 2000 WO
0219626 Mar 2002 WO

Other References

"Rarlabs Download Page", http://web.archive.orglweb/20020603234419/http://www.rarlab.comldownload.- htm, Capture by Wayback Machine on Jun. 3, 2002, (1 pg.). cited by applicant .
Hild, Stefan G. "Mobilizing Applications", IEEE Personal Communications/ 1070-9916/97 (Oct. 1997), 26-34. cited by applicant .
Airsoft, Inc., 1996, Powerburst: making remote access work, 9 pp. cited by applicant .
Airsoft, Inc., Dec. 1995, Corporate Backgrounder, 5 pp. cited by applicant .
Airsoft, Inc., Jun. 21, 1994, AirSoft AirAccess 2.0 Mobile Networking Software: Product Overview and Reviewer's Guide, 11 pp. cited by applicant .
Anterior Technology Radiomail Gateway Services, Dec. 1991, Draft Application Program Interface Specification, Version 1.0 (Beta), 7 pp. cited by applicant .
Barnstijn: Memo re MailCall and Radiomail integration, Research in Motion, 7 pp, Dec. 6, 1991. cited by applicant .
Berners-Lee et al: Hypertext Transfer Protocol--HTTP/1.0, 60 pp, May 1996. cited by applicant .
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. cited by applicant .
cc:Mail Inc., 1995, Lotus cc:Mail for the World Wide Web Release 1 Administrator's Guide, 78 pp. cited by applicant .
cc:Mail Inc., 1994, Automatic Directory Exchange Release 2: Administrator's Guide, 76 pp. cited by applicant .
CompuServe Incorporated, 1988, CompuServe Professional Connection Plus Message Management with Forms, Users Guide, 131 pp. cited by applicant .
Crispin: RFC1730--Internet message access protocol--Version 4, Network Working Group, University of Washington, 55 pp. Dec. 1994. cited by applicant .
Crocker: RFC 822--Standard for the format of ARPA Internet text messages, 43 pp, 1982. cited by applicant .
Dahl, Andrew: Lotus Notes 4 Administrator's Survival Guide, Sams Publishing, pp. 49, 64-66, 1996. cited by applicant .
Data Communications, Juicing up remote-node links to the LAN, pp. 108 and 110, Jan. 1996. cited by applicant .
developerWorks Lotus, Web team, IBM,The History of Notes and Domino, 22 pp., Nov. 14, 2007. cited by applicant .
GloMop Group, GloMop: Global Mobile Computing by Proxy, 12 pp., 1995. cited by applicant .
Grous: Creating and Managing a Web Site with Lotus' InterNotes Web Publisher, The View, 17 pp., Sep. 1995. cited by applicant .
Infinite Technologies, Administrator's Guide: WebMail Remote e-mail access via the world wide web, Release 1.0, 72 pp., 1996. cited by applicant .
Infinite Technologies, User's Guide: Webmail Remote Email Access, 82 pp., 1996. cited by applicant .
Infinite Technologies, WebMail Q&A, 5pp., 1996. cited by applicant .
Infinite Technologies, Infinite InterChange: remote access to almost any LAN-based e-mail from anywhere, 170 pp., 1997. cited by applicant .
Infinite Technologies, Infinite InterChange: remote access to almost any LAN-based e-mail from anywhere, 1 p., 1997. cited by applicant .
Infinite Technologies, Introducing WebMail Presentation, 13 pp., 1997. cited by applicant .
InfoKomp, WebMail Tech Notes: FYIs, 5 pp., 1996. cited by applicant .
Internet Anywhere Consortium, Business Plan of Jul. 1, 1994, Information Technology Research Centre, Mortice Kern Systems Inc., Research in Motion Limited, 48 pp. cited by applicant .
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. cited by applicant .
Internet Anywhere Wireless Functional Specification, Research in Motion, Limited, 9 pp., 1994. cited by applicant .
Kramer: Remote possibilities; gateways let remote users exchange mail via web browsers, 5 pp., 1999. cited by applicant .
Kucharczyk, David: Memo re MailCall and Radiomail Integration, Research in Motion, 2 pp., Dec. 11, 1991. cited by applicant .
Lamb et al.: Lotus Notes Network Design for Notes Release 3 and 4, McGraw-Hill, pp. 196-197, 1996. cited by applicant .
Lambert: PCMail: A distributed mail system for personal computers, 38 pp., 1988. cited by applicant .
Lazaridis: Viking Express document to Richard Kirby, 2pp., Jan. 23, 1992. cited by applicant .
Libris Inc.: Libris AirNet Service, Specification Version 0.6b, 172 pp., Sep. 1995. cited by applicant .
Lotus Development, Lotus Notes Release 4.5 Administrator's Guide, 748 pp., 1995. cited by applicant .
Mathers et al: Lotus Notes Internet Cookbook for Notes Release 4, 37 pp., Feb. 14, 1996. cited by applicant .
MKS Internet Anywhere Product Plan, 7.2.3 Release Schedule, 2 pp., 1994. cited by applicant .
Mobilib-Plus Developers Kit: User Guide and Reference Manual, Version 2.2, Research in Motion Ltd., 80 pp.. Jun. 28, 1993. cited by applicant .
MobilLib-Plus Product Brief: Preliminary interface specification for MobiLib-Plus session layer, Research in Motion Limited, 8 pp., Sep. 24, 1991. cited by applicant .
Mobitex User's Handbook for the Mobiden AT, Version 1.0, Research in Motion, 66 pp., Apr. 1993. cited by applicant .
Motorola Inc., Communication Client Guide: AirMobile Wireless Software for Lotus cc:Mail, 48 pp., 1995. cited by applicant .
Motorola, AirMobile wireless software for cc:mail: e-mail from anywhere, 2 pp., 1995. cited by applicant .
Motorola, Communication Server Guide: AirMobile Wireless Software for Lotus cc:Mail, 46 pp., 1995. cited by applicant .
Pyle: A jump start for the top ten R3-toR4 migration consideration, The View, Wellesley Information Services, pp. 3-20, Nov.-Dec. 1995. cited by applicant .
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. cited by applicant .
Rennie: The Official Guide to Lotus Software: cc:Mail Plain and Simple, Sybex Inc., 293 pp., 1994. cited by applicant .
Research in Motion Limited, Wireless Access to the Internet-Preliminary Functional Specification, 12 pp., 1994. cited by applicant .
RIM/MKS/ITRC Canarie Partnership: Internet Anywhere Wireless Access to the Internet; PowerPoint slide, 1 pg., 1992. cited by applicant .
Wong: Casahl's replic-action: delivering true notes/DMBS integration, The View, pp. 33-50, Jan./Feb. 1996. cited by applicant.

Primary Examiner: Lie; Angela M
Attorney, Agent or Firm: Fish & Richardson P.C.

Parent Case Text



.[.The present patent application.]. .Iadd.This application is a reissue of U.S. Pat. No. 8,078,157. U.S. Pat. No. 8,078,157 .Iaddend.is a .[.Continuation application claiming priority from.]. .Iadd.continuation of U.S. patent .Iaddend.application Ser. No. 11/363,582, filed Feb. 27, 2006.Iadd., .Iaddend.now U.S. Pat. No. 7,620,392.
Claims



What is claimed is:

1. A method of updating a wireless device.Iadd., .Iaddend.comprising: a wireless device receiving.Iadd., at a first location, .Iaddend.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 .Iadd.download .Iaddend.location of a version of the update from the server system, the version having been selected.Iadd., .Iaddend.based on the compatibility information; .[.and.]. the wireless device using the received data to access .[.said.]. .Iadd.the .Iaddend.selected version of the update.Iadd.; 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..Iaddend.

2. The method of claim 1.Iadd., .Iaddend.further comprising.Iadd.: the wireless device .Iaddend.requesting meta-data associated with the update.

3. The method of claim 1.Iadd., .Iaddend.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.]. .Iadd.the download .Iaddend.location of .[.a.]. .Iadd.the .Iaddend.version of the update in response to determining that the compatibility information is included in the compatibility matrix.

4. A non-transitory.Iadd., .Iaddend.machine-readable storage medium having stored thereon .[.data representing sets of.]. machine-readable instructions which, when executed by a wireless device, .[.configure.]. .Iadd.cause .Iaddend.the wireless device to .Iadd.perform a method, the method comprising.Iaddend.: .[.receive.]. .Iadd.receiving, at a first location, .Iaddend.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.]. .Iadd.transmitting.Iaddend., 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.]. .Iadd.receiving .Iaddend.data specifying a .Iadd.download .Iaddend.location of a version of the update from the server system, the version having been selected.Iadd., .Iaddend.based on the compatibility information; .[.and.]. .[.use.]. .Iadd.using .Iaddend.the received data to access .[.said.]. .Iadd.the .Iaddend.selected version of the update.Iadd.; 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.Iaddend..

5. The machine-readable medium of claim 4.Iadd., .Iaddend.wherein .[.the sets of instructions, when executed by the wireless device, further cause the wireless device to request.]. .Iadd.the method further comprises: requesting .Iaddend.meta-data associated with the update.

6. .[.A.]. .Iadd.The .Iaddend.method according to claim 1, wherein the received data comprises a universal resource locator.

7. .[.A.]. .Iadd.The .Iaddend.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 .Iadd.at a first location.Iaddend., 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 .Iadd.download .Iaddend.location of the selected version.Iadd.; 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.Iaddend..

9. .[.A.]. .Iadd.The .Iaddend.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.]. .Iadd.the download .Iaddend.location of .[.a.]. .Iadd.the .Iaddend.version of the update in response to determining that the compatibility information is included in the compatibility matrix.

10. .[.A.]. .Iadd.The .Iaddend.method according to claim 8, wherein the data specifying .[.a.]. .Iadd.the download .Iaddend.location of the selected version comprises a universal resource locator with which the selected version can be downloaded.

11. .[.A.]. .Iadd.The .Iaddend.method according to claim 8, wherein the plurality of versions relates to a plurality of languages.

12. .[.A.]. .Iadd.The .Iaddend.method according to claim 8, further comprising .[.providing updates to a plurality of wireless devices via a network, wherein the method comprises.]..Iadd.: .Iaddend.scheduling .[.the.]. .Iadd.a .Iaddend.timing of .[.provision of updates.]. .Iadd.providing the selected version .Iaddend.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.]. .Iadd.a .Iaddend.communications .[.interfaces.]. .Iadd.interface .Iaddend.for communicating with one or more wireless devices, the server system being configured to: send, to a wireless device .Iadd.at a first location, .Iaddend.via .[.said one or more.]. .Iadd.the .Iaddend.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.]. .Iadd.the .Iaddend.communications interfaces, device-specific information comprising compatibility information relating to the wireless device; select, .[.by.]..Iadd.at .Iaddend.the processor, based on the received compatibility information, a version of the update; .[.and.]. send .[.data.]., via .[.said one or more.]. .Iadd.the .Iaddend.communications interfaces, for receipt at the wireless device.Iadd., data .Iaddend.specifying a .Iadd.download .Iaddend.location of the selected version.Iadd.; 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.Iaddend..

15. .[.A.]. .Iadd.The .Iaddend.system according to claim 14, further comprising.Iadd.: .Iaddend.a .Iadd.software .Iaddend.server system storing the plurality of versions.

16. .[.A.]. .Iadd.The .Iaddend.system according to claim 14, further comprising.Iadd.: .Iaddend.a management console for configuring rules associated with the update.

17. A non-transitory.Iadd., .Iaddend.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 .Iadd.at a first location.Iaddend., 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.Iadd., a data .Iaddend.specifying a .Iadd.download .Iaddend.location of the selected version.Iadd.; 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.Iaddend..

18. A wireless device .[.configured to.]..Iadd., comprising.Iaddend.: .Iadd.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:.Iaddend. receive.Iadd., at a first location, .Iaddend.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.]. .Iadd.the .Iaddend.notification, device-specific information comprising compatibility information relating to the wireless device to a server system; receive data specifying a .Iadd.download .Iaddend.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.Iadd.; 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.Iaddend..

19. A method of updating a wireless device.Iadd., .Iaddend.comprising: a wireless device receiving.Iadd., at a first location, .Iaddend.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 .Iadd.download .Iaddend.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.]. .Iadd.the .Iaddend.selected version of the update.Iadd.; 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.Iaddend..

.Iadd.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..Iaddend.

.Iadd.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..Iaddend.

.Iadd.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..Iaddend.

.Iadd.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..Iaddend.

.Iadd.24. The method of claim 20, wherein the software package comprises an update package..Iaddend.

.Iadd.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..Iaddend.

.Iadd.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..Iaddend.

.Iadd.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..Iaddend.

.Iadd.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..Iaddend.

.Iadd.29. The server system of claim 25, wherein the software package comprises an update package..Iaddend.

.Iadd.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..Iaddend.

.Iadd.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..Iaddend.

.Iadd.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..Iaddend.

.Iadd.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..Iaddend.

.Iadd.34. The non-transitory computer-readable storage medium of claim 30, wherein the software package comprises an update package..Iaddend.
Description



FIELD OF THE INVENTION

This invention relates generally to the field of wireless networks. More particularly, the invention relates to distributing and updating software in wireless devices.

BACKGROUND

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.RTM. 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.TM. wireless pager developed by Research In Motion ("RIM")..TM.

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.

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 one embodiment of a network;

FIG. 2 illustrates one embodiment of a flow diagram for a wireless device downloading updates and/or applications from a web-based software server;

FIG. 3 illustrates one embodiment of an update package;

FIG. 4 illustrates one embodiment of a wireless device receiving an update from an update package;

FIG. 5 illustrates one embodiment of restricting where a device is located when it downloads updates; and

FIG. 6 illustrates one embodiment of a computer system.

DETAILED DESCRIPTION

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.

FIG. 1 illustrates one embodiment of a network architecture. A "customer site" 120 is illustrated in FIG. 1 and 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.

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..TM. 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 FIG. 1 by 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'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, 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.TM. management console (GMC) developed by Good Technology.RTM.. 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.TM. client developed by Good Technology.RTM.. 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.

FIG. 2 illustrates one embodiment of a flow diagram illustrating the process of device 130 downloading updates and/or applications from web-based software server 172. At process block 210, customer site 120 receives a message indicating that there are updates and/or applications available for device 130 to download. At process block 220, an IT administrator assigns software policies to individual users and/or a group of users (e.g. device 130). In one embodiment, a software policy defines a rule, which uniquely identifies the updates and/or applications.

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. FIG. 3 illustrates one embodiment of an update package 300. Update package 300 includes a similar software update provided in five different languages (i.e. English, German, French, Italian and Spanish). However, other languages and a different number of languages may be used.

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:

TABLE-US-00001 ComparabilityMatrix = { [locale=EN|GUID=Guid3_2_1] [locale=DE|GUID=Guid3_2_2] [locale=FR|GUID=Guid3_2_3] [locale=IT|GUID=Guid3_2_4] [locale=SP|GUID=Guid3_2_5] }

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.

FIG. 4 illustrates one embodiment of a device 130 receiving an update from update package 300. At process block 410, customer site 120 receives a message indicating that update package 300 is available for device 130. At process block 420, customer site 120 transmits a notification to device 130 indicating that update package 300 is available for device 130 to download.

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.

FIG. 5 illustrates one embodiment of restricting where device 130 is located when it downloads updates. At process block 510, an update notification that has a download restriction associated with it is transmitted to device 130 at a first location. In one embodiment, the first location is an office. At decision block 520, it is determined whether a user has overridden the download restriction. If a user has overridden the download restriction the update is immediately downloaded to device 130, process block 530.

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.

FIG. 6 illustrates one embodiment of a computer system 600 on which device 130 and or server 103 may be implemented. Computer system 600 includes a system bus 620 for communicating information, and a processor 610 coupled to bus 620 for processing information. According to one embodiment, processor 610 is implemented using one of the multitudes of Motorola ARM family of processors of microprocessors. Nevertheless one of ordinary skill in the art will appreciate that other processors may be used.

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 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. Accordingly, the scope and spirit of the invention should be judged in terms of the claims that follow.

* * * * *

References


uspto.report is an independent third-party trademark research tool that is not affiliated, endorsed, or sponsored by the United States Patent and Trademark Office (USPTO) or any other governmental organization. The information provided by uspto.report is based on publicly available data at the time of writing and is intended for informational purposes only.

While we strive to provide accurate and up-to-date information, we do not guarantee the accuracy, completeness, reliability, or suitability of the information displayed on this site. The use of this site is at your own risk. Any reliance you place on such information is therefore strictly at your own risk.

All official trademark data, including owner information, should be verified by visiting the official USPTO website at www.uspto.gov. This site is not intended to replace professional legal advice and should not be used as a substitute for consulting with a legal professional who is knowledgeable about trademark law.

© 2025 USPTO.report | Privacy Policy | Resources | RSS Feed of Trademarks | Trademark Filings Twitter Feed