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.

Patent
   RE46355
Priority
Feb 27 2006
Filed
Dec 13 2013
Issued
Mar 28 2017
Expiry
Feb 27 2026
Assg.orig
Entity
Large
0
218
all paid
0. 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.
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.
0. 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.
0. 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.
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.
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.
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.
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.
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.
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.
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.
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.
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.
0. 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.
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.
0. 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.
0. 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.
0. 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.
0. 24. The method of claim 20, wherein the software package comprises an update package.
0. 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.
0. 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.
0. 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.
0. 29. The server system of claim 25, wherein the software package comprises an update package.
0. 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.
0. 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.
0. 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.
0. 34. The non-transitory computer-readable storage medium of claim 30, wherein the software package comprises an update package.

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.

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

A variety of wireless data processing devices have been introduced over the past several years. These include wireless personal digital assistants (“PDAs”) such as the Palm® VIIx handheld, cellular phones equipped with data processing capabilities (e.g., those which include wireless application protocol (“WAP”) support), and, more recently, wireless messaging devices such as the Blackberry™ wireless pager developed by Research In Motion (“RIM”).™

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:

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.

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.™ 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™ 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.

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:

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.

Maurya, Sanjiv, Robinson, Tony, Chow, Chih-Yu

Patent Priority Assignee Title
Patent Priority Assignee Title
4682150, Dec 09 1985 TELEDATA SOUND LLC Data compression method and apparatus
4882752, Jun 25 1986 Computer security system
5049881, Jun 18 1990 Intersecting Concepts, Inc. Apparatus and method for very high data rate-compression incorporating lossless data compression and expansion utilizing a hashing technique
5115392, Oct 09 1986 Hitachi, Ltd. Method and apparatus for multi-transaction batch processing
5126739, Jan 13 1989 HI FN, INC Data compression apparatus and method
5159592, Oct 29 1990 International Business Machines Corporation; INTERNATIONAL BUSINESS MACHINES CORPORATION, A CORP OF NEW YORK Network address management for a wired network supporting wireless communication to a plurality of mobile users
5220501, Dec 08 1989 OFFICIAL PAYMENTS CORPORATION Method and system for remote delivery of retail banking services
5237614, Jun 07 1991 EMC Corporation Integrated network security system
5321840, May 05 1988 CITICORP DEVELOPMENT CENTER, INC Distributed-intelligence computer system including remotely reconfigurable, telephone-type user terminal
5392390, Apr 10 1992 Intellisync Corporation Method for mapping, translating, and dynamically reconciling data between disparate computer platforms
5434994, May 23 1994 International Business Machines Corporation System and method for maintaining replicated data coherency in a data processing system
5469161, Aug 13 1992 International Business Machines Corporation Algorithm for the implementation of Ziv-Lempel data compression using content addressable memory
5519606, Jan 21 1992 Intellisync Corporation System and methods for appointment reconciliation
5521597, Aug 02 1993 Microsoft Technology Licensing, LLC Data compression for network transport
5553281, Mar 21 1994 BEN GROUP, INC Method for computer-assisted media processing
5559800, Jan 19 1994 BlackBerry Limited Remote control of gateway functions in a wireless data communication network
5563595, Dec 23 1993 International Business Machines Corporation Method and apparatus for compressing data
5613012, Nov 28 1994 Open Invention Network, LLC Tokenless identification system for authorization of electronic transactions and electronic transmissions
5664207, Dec 16 1994 iAnywhere Solutions, Inc Systems and methods for automatically sharing information among remote/mobile nodes
5666530, Dec 02 1992 Qualcomm Incorporated System for automatic synchronization of common file between portable computer and host computer via communication channel selected from a plurality of usable channels there between
5694546, May 31 1994 TMI SOLUTIONS, LLC System for automatic unattended electronic information transport between a server and a client by a vendor provided transport software with a manifest list
5715387, Feb 10 1995 BlackBerry Limited Method and system for loading and confirming correct operation of an application program in a target system
5721907, Jan 14 1994 Microsoft Technology Licensing, LLC Remote file transfer method and apparatus
5727159, Apr 10 1996 HANGER SOLUTIONS, LLC System in which a Proxy-Server translates information received from the Internet into a form/format readily usable by low power portable computers
5727202, Oct 18 1995 ACCESS CO , LTD Method and apparatus for synchronizing information on two different computer systems
5760716, Aug 21 1996 Autodesk, Inc. Vector data compression
5771010, Mar 22 1995 International Business Machines Corporation Apparatus for compressing data using a Lempel-Ziv-type algorithm
5787441, Jan 11 1996 International Business Machines Corporation Method of replicating data at a field level
5790974, Apr 29 1996 Oracle America, Inc Portable calendaring device having perceptual agent managing calendar entries
5793970, Jul 11 1996 Microsoft Technology Licensing, LLC Method and computer program product for converting message identification codes using a conversion map accesible via a data link
5802312, Sep 27 1994 BlackBerry Limited System for transmitting data files between computers in a wireless environment utilizing a file transfer agent executing on host system
5809415, Dec 11 1995 UNWIRED PLANET IP MANAGER, LLC; Unwired Planet, LLC Method and architecture for an interactive two-way data communication network
5841376, Sep 29 1995 Kyocera Corporation Data compression and decompression scheme using a search tree in which each entry is stored with an infinite-length character string
5850517, Aug 31 1995 Oracle International Corporation Communication link for client-server having agent which sends plurality of requests independent of client and receives information from the server independent of the server
5857201, Jun 18 1996 Good Technology Corporation Enterprise connectivity to handheld devices
5870610, Jun 28 1996 ENTERPRISE SYSTEMS TECHNOLOGIES S A R L Autoconfigurable method and system having automated downloading
5875329, Dec 22 1995 International Business Machines Corp. Intelligent batching of distributed messages
5903230, Mar 22 1995 International Business Machines Corp. Apparatus for compressing data using a Lempel-Ziv-type algorithm
5903881, Jun 05 1997 INTUIT, INC Personal online banking with integrated online statement and checkbook user interface
5930471, Dec 26 1996 AT&T Corp Communications system and method of operation for electronic messaging using structured response objects and virtual mailboxes
5961590, May 29 1997 Malikie Innovations Limited System and method for synchronizing electronic mail between a client site and a central site
5974238, Aug 07 1996 HEWLETT-PACKARD DEVELOPMENT COMPANY, L P Automatic data synchronization between a handheld and a host computer using pseudo cache including tags and logical data elements
5987464, Jul 26 1996 MEC MANAGEMENT, LLC Method and system for periodically updating data records having an expiry time
5999947, May 27 1997 PURE DATA SYSTEMS, LLC Distributing database differences corresponding to database change events made to a database table located on a server computer
6003089, Mar 31 1997 Siemens Aktiengesellschaft Method for constructing adaptive packet lengths in a congested network
6006274, Jan 30 1997 ACCESS CO , LTD Method and apparatus using a pass through personal computer connected to both a local communication link and a computer network for indentifying and synchronizing a preferred computer with a portable computer
6023708, May 29 1997 Malikie Innovations Limited System and method for using a global translator to synchronize workspace elements across a network
6034621, Nov 18 1997 Alcatel Lucent Wireless remote synchronization of data between PC and PDA
6049671, Apr 18 1996 ZHIGU HOLDINGS LIMITED Method for identifying and obtaining computer software from a network computer
6052735, Oct 24 1997 Microsoft Technology Licensing, LLC Electronic mail object synchronization between a desktop computer and mobile device
6065017, Dec 31 1997 RPX Corporation Apparatus and method for identifying and recovering from database errors
6104392, Nov 13 1997 Sun Microsystems, Inc Method of displaying an application on a variety of client devices in a client/server network
6111707, Dec 31 1997 International Business Machines Corporation Tape duplexing with unique identity and error recovery
6151606, Jan 16 1998 BlackBerry Limited System and method for using a workspace data manager to access, manipulate and synchronize network data
6167448, Jun 11 1998 Hewlett Packard Enterprise Development LP Management event notification system using event notification messages written using a markup language
6182117, May 31 1995 Meta Platforms, Inc Method and apparatus for workgroup information replication
6216157, Nov 14 1997 R2 SOLUTIONS LLC Method and apparatus for a client-server system with heterogeneous clients
6218970, Sep 11 1998 International Business Machines Corporation Literal handling in LZ compression employing MRU/LRU encoding
6219694, May 29 1998 Malikie Innovations Limited System and method for pushing information from a host system to a mobile data communication device having a shared electronic address
6226618, Aug 13 1998 SANDPIPER CDN, LLC Electronic content delivery system
6259891, Sep 04 1997 Hughes Electronics Corporation Adapter and method for use in a portable communication signal receiver system
6275848, May 21 1997 International Business Machines Corporation Method and apparatus for automated referencing of electronic information
6279001, May 29 1998 R2 SOLUTIONS LLC Web service
6304881, Mar 03 1998 Intellisync Corporation Remote data access and synchronization
6308061, Aug 07 1996 Symbol Technologies, Inc Wireless software upgrades with version control
6310889, Mar 12 1998 AVAYA Inc Method of servicing data access requests from users
6330618, Jan 30 1997 PALMSOURCE, INC Method and apparatus for synchronizing a portable computer system with a desktop computer system
6343299, Nov 16 1998 International Business Machines Corporation Method and apparatus for random update synchronization among multiple computing devices
6347340, Feb 18 2000 MBLOX INCORPORATED Apparatus and method for converting a network message to a wireless transport message using a modular architecture
6360272, May 28 1999 ACCESS CO , LTD Method and apparatus for maintaining a unified view of multiple mailboxes
6381454, Oct 10 1995 Qualcomm Incorporated Method and system for over-the-air (OTA) service programming
6384850, Sep 21 1999 AMERANTH TECHNOLOGY SYSTEMS, INC Information management and synchronous communications system with menu generation
6393434, Sep 14 1999 International Business Machines Corporation Method and system for synchronizing data using fine-grained synchronization plans
6396482, Jun 26 1998 Malikie Innovations Limited Hand-held electronic device with a keyboard optimized for use with the thumbs
6401136, Nov 13 1998 International Business Machines Corporation Methods, systems and computer program products for synchronization of queue-to-queue communications
6425126, May 19 1999 International Business Machines Corporation Apparatus and method for synchronizing software between computers
6430601, Sep 30 1998 GOOGLE LLC Mobile document paging service
6434613, Feb 23 1999 International Business Machines Corporation System and method for identifying latent computer system bottlenecks and for making recommendations for improving computer system performance
6449622, Mar 08 1999 Intellisync Corporation System and methods for synchronizing datasets when dataset changes may be received out of order
6457062, Apr 08 1999 ACCESS CO , LTD System and method for synchronizing multiple calendars over wide area network
6460055, Dec 16 1999 KEEPITSAFE, LLC Systems and methods for backing up data files
6463463, May 29 1998 Malikie Innovations Limited System and method for pushing calendar event messages from a host system to a mobile data communication device
6463464, May 29 1998 Malikie Innovations Limited System and method for pushing information from a host system to a mobile data communication device
6477543, Oct 23 1998 Alibaba Group Holding Limited Method, apparatus and program storage device for a client and adaptive synchronization and transformation server
6496979, Oct 24 1997 Microsoft Technology Licensing, LLC System and method for managing application installation for a mobile device
6505055, Aug 04 1997 Google Technology Holdings LLC Camel-back digital organizer and communication protocol for a cellular phone device
6535892, Mar 08 1999 Intellisync Corporation System and methods for exchanging messages between a client and a server for synchronizing datasets
6571245, Dec 07 1998 ITVENTURES LIMITED Virtual desktop in a computer network
6604236, Jun 30 1998 IORA, LTD System and method for generating file updates for files stored on read-only media
6615253, Aug 31 1999 Accenture Global Services Limited Efficient server side data retrieval for execution of client side applications
6625621, Jan 04 2000 INLOVITY LIMITED System and methods for a fast and scalable synchronization server
6636873, Apr 17 2000 ORACLE INTERNATIONAL CORPORATION, A CORPORATION, ORGANIZED UNDER THE LAWS OF THE STATE OF DELAWARE; ORACLE INTERNATIONAL CORPORATION A CORPORATION ORGANIZED UNDER THE LAWS OF THE STATE OF CALIFORNIA Methods and systems for synchronization of mobile devices with a remote database
6640244, Aug 31 1999 Accenture Global Services Limited Request batcher in a transaction services patterns environment
6654746, May 03 1999 CLOUDING CORP Methods and apparatuses for single-connection file synchronization workgroup file update
6658167, Jan 31 1999 HEWLETT-PACKARD DEVELOPMENT COMPANY L P On the fly server for modifying data characteristics for client-server network applications
6671757, Jan 26 2000 Synchronoss Technologies, Inc Data transfer and synchronization system
6675009, Feb 15 2001 Sprint Communications Company, L.P. Automated configuration of a wireless communication device
6694335, Oct 04 1999 Microsoft Technology Licensing, LLC Method, computer readable medium, and system for monitoring the state of a collection of resources
6697458, Jul 10 2000 MEC MANAGEMENT, LLC System and method for synchronizing voice mailbox with e-mail box
6701378, May 29 1998 Malikie Innovations Limited System and method for pushing information from a host system to a mobile data communication device
6721019, May 17 2000 Hitachi, Ltd.; Hitachi Device Engineering Co., Ltd.; Hitachi Chiba Electronics, Ltd. Screen input type display device
6721787, Feb 10 2000 UNWIRED BROADBAND, INC System and method for wireless hot-synchronization of a personal digital assistant
6721871, Apr 02 2002 Nokia Technologies Oy Method and apparatus for synchronizing data stores with respect to changes in folders
6735434, Aug 07 1996 Symbol Technologies, Inc Wireless software upgrades with version control
6757698, Apr 14 1999 LG ELECTRONICS, INC Method and apparatus for automatically synchronizing data from a host computer to two or more backup data storage locations
6779019, May 29 1998 Malikie Innovations Limited System and method for pushing information from a host system to a mobile data communication device
6792085, Sep 10 1999 CHEMTRON RESEARCH LLC System and method for unified messaging with message replication and synchronization
6829639, Nov 15 1999 F POSZAT HU, L L C Method and system for intelligent global event notification and control within a distributed computing environment
6874037, Jun 19 2000 Sony Corporation; Sony Electronics, INC Method and apparatus for synchronizing device information
6901415, Jun 27 2001 Microsoft Technology Licensing, LLC Method and system for processing notifications
6907243, Jun 09 1999 Cisco Technology, Inc; CISCO SYSTEMS, INC , A CORPORATION OF CALIFORNIA Method and system for dynamic soft handoff resource allocation in a wireless network
6931454, Dec 29 2000 TAHOE RESEARCH, LTD Method and apparatus for adaptive synchronization of network devices
6934766, Nov 02 2000 Cisco Technology, Inc.; Cisco Technology, Inc Method and apparatus for exchanging event information between computer systems that reduce perceived lag times by subtracting actual lag times from event playback time
6941348, Feb 19 2002 GOOGLE LLC Systems and methods for managing the transmission of electronic messages through active message date updating
6941349, May 29 1998 Malikie Innovations Limited System and method for pushing calendar event messages from a host system to a mobile data communication device
6954789, Jun 30 1999 PACKET INTELLIGENCE LLC Method and apparatus for monitoring traffic in a network
6973299, Aug 01 2003 Microsoft Technology Licensing, LLC Unified contact list
6976263, Nov 19 2001 AVAGO TECHNOLOGIES GENERAL IP SINGAPORE PTE LTD Mechanism for encoding and decoding upgradeable RPC/XDR structures
6983308, Nov 19 1998 UNWIRED PLANET IP MANAGER, LLC; Unwired Planet, LLC Mail synchronization of remote and local mail systems
7003776, Aug 01 2001 Oracle International Corporation System and method for object persistence life-cycle and object caching integration
7073137, Oct 30 2000 Microsoft Technology Licensing, LLC System and method for user interface mirroring utilizing a layout manager
7085809, Sep 18 2001 Fujitsu Limited Data synchronization system, data synchronization method, data center, and client terminal
7092699, Apr 11 2001 Apple Inc Seamless wireless phone access service
7133756, Feb 20 2003 General Electric Company Method and system for autonomously resolving a failure
7136934, Jun 19 2001 SAMSUNG ELECTRONICS CO , LTD Multimedia synchronization method and device
7139555, Aug 01 2003 Microsoft Technology Licensing, LLC Unified contact list
7149813, Aug 14 2001 Microsoft Technology Licensing, LLC Method and system for synchronizing mobile devices
7155483, Aug 07 2001 Google Technology Holdings LLC Apparatus and method for conserving bandwidth by batch processing data transactions
7185082, Aug 09 2000 Microsoft Technology Licensing, LLC Fast dynamic measurement of connection bandwidth using at least a pair of non-compressible packets having measurable characteristics
7239877, Oct 07 2003 Accenture Global Services Limited Mobile provisioning tool system
7257649, Sep 28 2001 Oracle America, Inc Method and system for transferring information during server synchronization with a computing device
7340389, Feb 16 2001 Microsoft Technology Licensing, LLC Multilanguage UI with localized resources
7356510, Apr 30 2001 VL IP HOLDINGS LLC; VL COLLECTIVE IP LLC Content delivery
7467167, Mar 19 2002 Network Appliance, Inc System and method for coalescing a plurality of snapshots
8178040, Nov 09 1999 Fresenius Medical Care Deutschland GmbH Software update for a medical fluid management device
8875116, Nov 17 2000 Hewlett-Packard Development Company, L.P. Network for updating firmware and / or software in wireless communication devices
20010004744,
20010005864,
20010010059,
20010029178,
20010034654,
20010044835,
20010046854,
20010049263,
20010053688,
20010054115,
20020013853,
20020019225,
20020032722,
20020046286,
20020055355,
20020085506,
20020085719,
20020099772,
20020119793,
20020120696,
20020146240,
20020155829,
20020160773,
20030022661,
20030046434,
20030050046,
20030069842,
20030081621,
20030084165,
20030097381,
20030097490,
20030143991,
20030147369,
20030182326,
20040002943,
20040003266,
20040034853,
20040054739,
20040068665,
20040092255,
20040098420,
20040098421,
20040098715,
20040105423,
20040109436,
20040203693,
20040203941,
20040214599,
20040246895,
20050075115,
20050132357,
20050148356,
20050186952,
20050216534,
20050254458,
20060025123,
20060043820,
20060046703,
20060073820,
20060106806,
20060129638,
20060206537,
20060217111,
20060229027,
20060242621,
20070042766,
20070083676,
20080125105,
20090013083,
EP666651,
EP684558,
EP909037,
EP917077,
EP1014629,
JP10269125,
JP11136365,
JP2000148641,
JP2001053785,
JP2001076040,
JP7182263,
WO67158,
WO219626,
//////////
Executed onAssignorAssigneeConveyanceFrameReelDoc
May 03 2006MAURYA, SANJIVGOOD TECHNOLOGY, INC ASSIGNMENT OF ASSIGNORS INTEREST SEE DOCUMENT FOR DETAILS 0333760503 pdf
May 03 2006CHOW, CHIH-YUGOOD TECHNOLOGY, INC ASSIGNMENT OF ASSIGNORS INTEREST SEE DOCUMENT FOR DETAILS 0333760503 pdf
May 04 2006ROBINSON, TONYGOOD TECHNOLOGY, INC ASSIGNMENT OF ASSIGNORS INTEREST SEE DOCUMENT FOR DETAILS 0333760503 pdf
Sep 19 2012GOOD TECHNOLOGY, INC GOOD TECHNOLOGY ACQUISITION, INC CHANGE OF NAME SEE DOCUMENT FOR DETAILS 0333920924 pdf
Oct 09 2012GOOD TECHNOLOGY ACQUISITION, INC Good Technology Software, IncCHANGE OF NAME SEE DOCUMENT FOR DETAILS 0333920898 pdf
Dec 13 2013Good Technology Holdings Limited(assignment on the face of the patent)
May 27 2016Good Technology Software, IncGood Technology Holdings LimitedASSIGNMENT OF ASSIGNORS INTEREST SEE DOCUMENT FOR DETAILS 0413480222 pdf
Jan 11 2018Good Technology Holdings LimitedBlackBerry LimitedASSIGNMENT OF ASSIGNORS INTEREST SEE DOCUMENT FOR DETAILS 0451960255 pdf
May 11 2023BlackBerry LimitedMalikie Innovations LimitedASSIGNMENT OF ASSIGNORS INTEREST SEE DOCUMENT FOR DETAILS 0641040103 pdf
May 11 2023BlackBerry LimitedMalikie Innovations LimitedNUNC PRO TUNC ASSIGNMENT SEE DOCUMENT FOR DETAILS 0642710199 pdf
Date Maintenance Fee Events
Jun 13 2019M1552: Payment of Maintenance Fee, 8th Year, Large Entity.
Jun 13 2023M1553: Payment of Maintenance Fee, 12th Year, Large Entity.


Date Maintenance Schedule
Mar 28 20204 years fee payment window open
Sep 28 20206 months grace period start (w surcharge)
Mar 28 2021patent expiry (for year 4)
Mar 28 20232 years to revive unintentionally abandoned end. (for year 4)
Mar 28 20248 years fee payment window open
Sep 28 20246 months grace period start (w surcharge)
Mar 28 2025patent expiry (for year 8)
Mar 28 20272 years to revive unintentionally abandoned end. (for year 8)
Mar 28 202812 years fee payment window open
Sep 28 20286 months grace period start (w surcharge)
Mar 28 2029patent expiry (for year 12)
Mar 28 20312 years to revive unintentionally abandoned end. (for year 12)