WO2014145545A2 - Distributing software for updating of client devices - Google Patents

Distributing software for updating of client devices Download PDF

Info

Publication number
WO2014145545A2
WO2014145545A2 PCT/US2014/030336 US2014030336W WO2014145545A2 WO 2014145545 A2 WO2014145545 A2 WO 2014145545A2 US 2014030336 W US2014030336 W US 2014030336W WO 2014145545 A2 WO2014145545 A2 WO 2014145545A2
Authority
WO
WIPO (PCT)
Prior art keywords
client
client device
file
data
platform
Prior art date
Application number
PCT/US2014/030336
Other languages
French (fr)
Other versions
WO2014145545A3 (en
Inventor
Adrian Chan
Original Assignee
Innopath Software, Inc.
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Priority claimed from US14/165,066 external-priority patent/US9781192B2/en
Application filed by Innopath Software, Inc. filed Critical Innopath Software, Inc.
Publication of WO2014145545A2 publication Critical patent/WO2014145545A2/en
Publication of WO2014145545A3 publication Critical patent/WO2014145545A3/en

Links

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L67/00Network arrangements or protocols for supporting network services or applications
    • H04L67/01Protocols
    • H04L67/10Protocols in which an application is distributed across nodes in the network
    • H04L67/1095Replication or mirroring of data, e.g. scheduling or transport for data synchronisation between network nodes
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L67/00Network arrangements or protocols for supporting network services or applications
    • H04L67/34Network arrangements or protocols for supporting network services or applications involving the movement of software or configuration parameters 
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L67/00Network arrangements or protocols for supporting network services or applications
    • H04L67/50Network services
    • H04L67/52Network services specially adapted for the location of the user terminal

Definitions

  • the embodiments herein relate to processing systems and, more particularly, to methods and apparatus for firmware over-the-air (FOTA) updates of the client device.
  • FOTA firmware over-the-air
  • Figure 1 is a block diagram of a device management service, under an embodiment.
  • Figure 2 is a block diagram of a device management service including software distribution centers for distributing replicated software update images, under an embodiment.
  • FIG. 3 is a block diagram of a device management service comprising software distribution centers that include replicated software update images, version control files (VCFs), and firmware version information (FVI) for client devices, under an alternative embodiment.
  • VCFs version control files
  • FVI firmware version information
  • Figure 4 is another block diagram of a device management service, under an embodiment.
  • Figure 5 is a flow diagram for provisioning a client device and assigning a universal identification to the client device, under an embodiment.
  • One or more of a system, device or apparatus, and associated methods are described herein that enable a distributed processing method to efficiently process client inquires regarding the availability of newer firmware updates for the requesting device or any corresponding software modules hosed on the device, and to distribute software update images for use in updating firmware of the devices.
  • the embodiments described herein provide a relatively higher level of efficiency for these over-the-air updates.
  • the term "client” includes but is not limited to one or more of software modules, applications, and mobile communication devices having or coupled to at least one of a wired and wireless communication interface to interact with server software application.
  • the server software application of an embodiment also referred to herein as the server application, executes or runs on one or more of a local processing device (e.g., personal computer, server, etc.) and a service the provides the FOTA service.
  • the service providing the FOTA service includes but is not limited to at least one of a public service, private service, and a personal service deploying as at least one of a cloud and non-cloud based service providing the FOTA service.
  • Systems and methods are generally described that comprise receiving software files of client devices at a platform.
  • the software files include software update images for use in updating software of the client devices.
  • the software files are replicated at multiple distribution platforms.
  • An electronic message is generated to a client device when a software file corresponds to the client device, and the electronic message includes a link.
  • the client device is redirected to a distribution platform geographically closest to the client device upon selection of the link, and the software file is downloaded from the distribution platform to the client device.
  • Figure 1 is a block diagram of a device management service, under an
  • the device management service includes a device management platform, system and/or components at a centralized location.
  • the device management platform communicates with one or more clients, which as described herein include client devices, software modules, and/or applications. Communication between the device management platform and the clients involves the use of a unique identification, referred to herein as innodevID, as described in detail herein.
  • the device management service also includes a content distribution network (CDN) that is coupled to the device management platform.
  • CDN includes numerous software distribution centers, each of which is located in a different geographical region or area than the device management platform and any other software distribution center.
  • the device management platform receives information or data from each device that includes the device firmware version information. This firmware version
  • the platform includes a version control file (VCF) that includes the firmware version information of the corresponding device.
  • VCF version control file
  • the firmware version information for the devices is kept in separate device specific version control files (VCFs) at the device management platform, all version control files are replicated to numerous software distribution centers of the CDN.
  • the replicated version control files are publicly readable but are write-restricted so that they can only be written by authorized server software applications in order to prevent corruption or contamination of the files.
  • the software distribution centers which are each located in a different geographical region or area than both the device management platform and others of the software distribution centers, are coupled or connected to the device management platform via one or more of public networks like the internet, and private networks.
  • the service provider updates the corresponding files inside the respective configuration file specific to that device model at the device management service.
  • the device management service subsequently propagates the new firmware files via the CDN to each of the software distribution centers where the firmware files are stored.
  • the client software hosted in the device periodically downloads via the Internet, for example, the corresponding firmware version control file from the software distribution center in closest proximity to the device.
  • the client software evaluates whether a new firmware package is available for the device model by comparing the firmware version currently residing on the device with the firmware version received or downloaded from the software distribution center in order to determine if a newer version of firmware is available.
  • the client waits for its next subsequent self-check cycle to query the closest software distribution center for any new software version information.
  • the FOTA server is not contacted by the device until such time as a newer firmware version is available for that device under the embodiments herein.
  • FOTA Firmware-Over-the-Air
  • firmware updates are pushed or issued directly "over the air" to the device from the mobile phone service provider or other intermediary.
  • the software update images of an embodiment instead of being retrieved or received from a single server of the device management server, are downloaded from a software distribution center located in one of a number of different geographical regions or areas around the world.
  • the software update image for a device is retrieved or received from a software distribution center that is closest to the client device relative to the other software distribution centers.
  • the scheme improves efficiency of the FOTA process because the software distribution center from which the software update image is received is a point geographically closer to the client device than the device management service. Consequently, efficiency of the updating process is realized in the reduced time required to complete the download, and the improved throughput of the software download and update process to many devices in parallel.
  • FIG. 2 is a block diagram of a device management service including software distribution centers for distributing replicated software update images, under an embodiment.
  • the device management service includes a content distribution network (CDN) that is coupled to the device management platform as described herein.
  • CDN includes numerous software distribution centers or points, each of which is located in a different geographical region or area than the device management platform and any other software distribution center.
  • the device management platform receives software update images from software providers. While the software update images for the devices are kept in separate files at the device management platform, all software update images are replicated to numerous software distribution centers of the CDN.
  • the replicated software update images are publicly readable but are write-restricted so that they can only be written by authorized server software applications in order to prevent corruption or contamination of the files.
  • the software distribution centers which are each located in a different geographical region or area than both the device management platform and others of the software distribution centers, are coupled or connected to the device management platform via one or more of public networks like the Internet and/or private networks.
  • FIG. 3 is a block diagram of a device management service comprising software ⁇ distribution centers that include replicated software update images, version control files (VCFs), and firmware version information (FVI) for client devices, under an alternative embodiment.
  • the device management service includes a content distribution network (CDN) that is coupled to the device management platform as described herein.
  • CDN includes numerous software distribution centers or points, each of which is located in a different geographical region or area than the device management platform and any other software distribution center.
  • the device management platform receives information or data from each device that includes the device firmware version information (FVI) corresponding to that device.
  • the firmware version information corresponding to each client device is stored at the device management platform in separate device-specific version control files so that, for each device registered with the device management platform, the platform includes a version control file (VCF) that includes the firmware version information of the corresponding device.
  • VCF version control file
  • firmware version information for the devices is kept in separate device specific version control files (VCFs) at the device management platform, all version control files are replicated to numerous software distribution centers of the CDN.
  • VCFs device specific version control files
  • the service provider updates the corresponding files inside the respective configuration file specific to that device model at the device management service.
  • the device management service subsequently propagates the new firmware files via the CDN to each of the software distribution centers where the firmware files are stored.
  • the device management service of an embodiment includes software update images for the devices, and replicates all software update images to numerous software distribution centers of the CDN along with the version control files and the firmware version information.
  • management service notifies a device of the availability of the new firmware version by sending to the client device an electronic message (e.g., electronic mail, SMS, etc.) that includes a uniform resource locator (URL), link or icon for use in downloading the updated software.
  • an electronic message e.g., electronic mail, SMS, etc.
  • URL uniform resource locator
  • Activation or selection of the URL redirects the device to the closest software distribution access point (geographically) where it downloads the latest software update image.
  • communication between the device management service and the client devices involves the use of a unique identification issued to each device.
  • the unique identification which is referred to herein as innodevID, is issued to each device that is brought to a mobile device management service of a service provider.
  • the mobile device management service of an embodiment is referred to herein as a care service or, alternatively, an activeCare service.
  • Communication with the device is enabled using a pre-specified address convention. Communication with the device in an embodiment uses but is not limited to the following address convention:
  • innodevID@service_domain/serviceID This address convention is used for example to send and receive real-time device control command or device information to and from the device and the activeCare service platform.
  • the servicelD portion or component of the address convention is an identification number that is used to represent the logical active session ongoing between the device and the servicing agent during the service call.
  • FIG 4 is another block diagram of a device management service, under an embodiment.
  • the device management service includes a platform, system and/or components comprising one or more of an enrollment service, authentication service and care services or care applications, all of which are described in detail herein.
  • the device management service communicates with one or more client devices, each hosting client software. Communication between the device management service and the client devices involves the use of a unique identification, referred to herein as innodevID, as described in detail herein.
  • Figure 5 is a flow diagram for provisioning a client device and assigning a universal identification the client device, under an embodiment.
  • the universal identification assigned to the client device is used by care applications in management of the device, as described below.
  • the client device includes any portable communication device having a wired and/or wireless communication interface by which the device interacts with one or more care applications in a local or remote environment, but is not so limited.
  • the client device couples or connects to the care applications using a communication path that includes any medium for communicating among the computing systems including, but not limited to, wireless couplings and/or connections, wired couplings and/or connections, and hybrid wireless/wired couplings and/or connections.
  • the care services are provided by care applications that include but are not limited to applications hosted on one or more local desktop computers and/or server computers. Further, the care applications include one or more services including but not limited to public services, private services, and/or personal services deploying as cloud or non- cloud based services.
  • the client device of an embodiment includes one or more applications or modules, referred to herein as client software or software, downloaded from a software distribution service via a communication path and installed on the client device.
  • client software is loaded onto the device via a user-initiated download from a software distribution program, for example.
  • the client software is loaded onto the device via an automatic download, but the embodiment is not so limited.
  • the client software can be loaded onto the device using a hybrid procedure that includes an automatic procedure combined with some user action.
  • the care services send to the client device an electronic message (e.g., electronic mail, SMS, etc.) that includes a link or icon for use in downloading the client software.
  • an electronic message e.g., electronic mail, SMS, etc.
  • the client software of an embodiment is instructed to initiate an enrollment request to a care application but is not so limited.
  • the client software self-recognizes its pre-enrollment state and in response initiates an enrollment request to a care application.
  • the enrollment request of an embodiment includes a set of information including but not limited to a prearranged enrollment request key and client device-specific information.
  • the device information includes one or more of mobile device
  • the information of the enrollment request is sent to the care enrollment service.
  • the care enrollment service upon receiving an enrollment request uses the client device information included in the enrollment request along with information of a knowledge base to which it is coupled to determine if the client device has previously been enrolled. If a determination is made that the requesting client device has not been enrolled, a unique device identification number, referred to herein as innodevID, is generated by the care application in the application domain. Once generated, the innodevID is issued and assigned to the particular requesting client device.
  • the unique device identification number includes additional information identifying the location generating the unique device identification number. If a determination is made that the requesting client device has previously been enrolled, then the unique device identification number previously issued during the enrollment is again returned to the requesting client device.
  • the care enrollment service responds to the enrollment request with the assigned unique device identification number along with an encrypted login credential.
  • the login credential is used for any service request to the care application.
  • the client software Upon receipt of the enrollment response from the care enrollment service, the client software stores the unique device identification and login credential for subsequent use in future service requests.
  • the client software couples or connects to the care application using the unique device identification and the login credential over a secure communication channel such as transport layer security (TLS) and secured sockets layer (SSL), but is not so limited.
  • TLS transport layer security
  • SSL secured sockets layer
  • the unique device identification of an embodiment is in the form of
  • the serviced component of the device identification is a string of characters and/or numbers assigned to identify an active session between the client device and the care application.
  • the care application and its modules communicate with the client device using this unique device identification regardless of a current location of the client device and regardless of a location of the application modules.
  • the established communication session or path remains connected from the logical perspective of both the client software and the care application until such time as one of the client software and the care application terminate the application session and disconnect the coupling or connection.
  • the client device can connect to the care service via a mobile data network at the start of a session; and during the session the client device switches and connects to a WiFi network. Regardless of the change in the connection during the session, the care application continues to address the client software using the assigned unique client device identifier.
  • Embodiments described herein include a method comprising receiving at a platform a plurality of software files of a plurality of client devices.
  • the plurality of software files includes a plurality of software update images for use in updating software of the plurality of client devices.
  • the method comprises replicating the plurality of software files at a plurality of distribution platforms; generating an electronic message to a client device when a software file of the plurality of software files corresponds to the client device.
  • the electronic message includes a link.
  • the method comprises redirecting the client device to a distribution platform geographically closest to the client device upon selection of the link; and downloading from the distribution platform to the client device the software file.
  • Embodiments described herein include a method comprising: receiving at a platform a plurality of software files of a plurality of client devices, wherein the plurality of software files include a plurality of software update images for use in updating software of the plurality of client devices; replicating the plurality of software files at a plurality of distribution platforms; generating an electronic message to a client device when a software file of the plurality of software files corresponds to the client device, wherein the electronic message includes a link; redirecting the client device to a distribution platform geographically closest to the client device upon selection of the link; and downloading from the distribution platform to the client device the software file.
  • the plurality of distribution platforms is remote to the platform and in different geographical regions.
  • the method comprises receiving at a platform device data of each of the plurality of client devices, storing the device data in a plurality of device files and replicating the plurality of device files at the plurality of distribution platforms.
  • the method comprises comparing the device file with the device data on the client device and determining when a new device file is available for the client device.
  • the method comprises downloading from the distribution platform geographically closest to the client device the new device file when the determining indicates the new device data file is available.
  • the device data comprises data of a firmware version currently hosted on the device.
  • Each device file comprises a version control file that includes firmware version data of a corresponding client device, wherein each device file corresponds to each client device.
  • the method comprises generating a plurality of updated device files by updating the plurality of device files as new device data becomes available for the plurality of client devices, and propagating the pl urality of updated device files to the plurality of distribution platforms.
  • the comparing is performed at the client device and comprises comparing of a current firmware version of the client device with device data of the downloaded device file.
  • the new device file comprises a new firmware image for the client device.
  • the method comprises receiving at the platform an enrollment request from each client device, wherein the enrollment request comprises a request key and the device data of the client device.
  • the method comprises generating a device identification and issuing the device identification to the client device in the absence of a previous enrollment event.
  • the method comprises generating a response to the client device, wherein the response is a response to the enrollment request and includes the device identification.
  • the method comprises controlling subsequent sessions between the client device and the platform using the device identification.
  • the subsequent sessions each use an address convention comprising the device identification, wherein the address convention includes a service identification component that represents a logical active session between the client device and the platform, and a service domain identification component.
  • the method comprises initiating the enrollment request in a client application hosted on the client device, wherein the initiating comprises one of instructing the client application to initiate the enrollment request, and automatically initiating the enrollment request at the client application when the client application self-recognizes a pre- enrollment state.
  • the device data comprises at least one of a device identification number, a device manufacturer, a manufacturer serial number, a model number, International Mobile Subscriber Identity (IMSI), International Mobile Station Equipment Identity (IMEI), Mobile Subscriber Integrated Services Digital Network-Number (MSISDN), a media access control (MAC) address, carrier data of a carrier corresponding to the client device, and state data of the client device.
  • IMSI International Mobile Subscriber Identity
  • IMEI International Mobile Station Equipment Identity
  • MSISDN Mobile Subscriber Integrated Services Digital Network-Number
  • MAC media access control
  • the device identification includes location data of a location from which the device identification is issued.
  • the response includes a login credential, wherein the login credential is encrypted, comprising establishing a session between a client application of the client device and the platform upon receipt of the response.
  • Embodiments described herein include a system comprising a platform including a plurality of software files of a plurality of client devices.
  • the plurality of software files includes a plurality of software update images for use in updating software of the plurality of client devices.
  • the system comprises a plurality of distribution platforms coupled to the platform.
  • the plurality of distribution platforms comprises replicated versions of the plurality of software files.
  • An electronic message is generated to a client device when a software file of the plurality of software files corresponds to the client device.
  • the electronic message includes a link.
  • the client device is redirected to a distribution platform geographically closest to the client device upon selection of the link, and the software file is downloaded from the distribution platform to the client device.
  • Embodiments described herein include a system comprising: a platform comprising a plurality of software files of a plurality of client devices, wherein the plurality of software files include a plurality of software update images for use in updating software of the plurality of client devices; and a plurality of distribution platforms coupled to the platform, wherein the plurality of distribution platforms comprises replicated versions of the plurality of software files, wherein an electronic message is generated to a client device when a software file of the plurality of software files corresponds to the client device, wherein the electronic message includes a link, wherein the client device is redirected to a distribution platform geographically closest to the client device upon selection of the link, and the software file is downloaded from the distribution platform to the client device.
  • the plurality of distribution platforms is remote to the platform and in different geographical regions.
  • the platform includes device data of each of the plurality of client devices and stores the device data in a plurality of device files, wherein the plurality of device files are replicated at the plurality of distribution platforms, wherein the device file is compared with the device data on the client device and a determination is made when a new device file is available for the client device, wherein the new device file is downloaded from the distribution platform geographically closest to the client device when the determination indicates the new device data file is available.
  • the device data comprises data of a firmware version currently hosted on the device.
  • Each device file comprises a version control file that includes firmware version data of a corresponding client device, wherein each device file corresponds to each client device.
  • a plurality of updated device files are generated by updating the plurality of device files as new device data becomes available for the plurality of client devices, wherein the plurality of updated device files are propagated to the plurality of distribution platforms.
  • the downloading of the device file to each client device is periodic.
  • the device file is evaluated at the client device and comprises comparing of a current firmware version of the client device with device data of the downloaded device file.
  • the new device file comprises a new firmware image for the client device.
  • the platform receives an enrollment request from each client device, wherein the enrollment request comprises a request key and the device data of the client device, wherein a device identification is generated and issued to the client device in the absence of a previous enrollment event, wherein a response is generated to the client device, wherein the response is a response to the enrollment request and includes the device identification, wherein subsequent sessions between the client device and the platform are controlled using the device identification.
  • the subsequent sessions each use an address convention comprising the device identification, wherein the address convention includes a service identification component that represents a logical active session between the client device and the platform, and a service domain identification component.
  • the enrollment request is initiated in a client application hosted on the client device, wherein the initiating comprises one of instructing the client application to initiate the enrollment request, and automatically initiating the enrollment request at the client application when the client application self-recognizes a pre-enrollment state.
  • the device data comprises at least one of a device identification number, a device manufacturer, a manufacturer serial number, a model number, International Mobile Subscriber Identity (IMSI), International Mobile Station Equipment Identity (IMEI), Mobile Subscriber Integrated Services Digital Network-Number (MSISDN), a media access control (MAC) address, carrier data of a carrier corresponding to the client device, and state data of the client device.
  • IMSI International Mobile Subscriber Identity
  • IMEI International Mobile Station Equipment Identity
  • MSISDN Mobile Subscriber Integrated Services Digital Network-Number
  • MAC media access control
  • the device identification includes location data of a location from which the device identification is issued.
  • the response includes a login credential, wherein the login credential is encrypted, comprising establishing a session between a client application of the client device and the platform upon receipt of the response.
  • Embodiments described herein include a method comprising receiving at a platform device data of each of a plurality of client devices.
  • the method comprises storing the device data of the plurality of client devices in a plurality of device files.
  • the method comprises replicating the plurality of device files at a plurality of distribution platforms.
  • the method comprises downloading to each client device the device file corresponding to the device.
  • the downloading is performed from a distribution platform geographically closest to the client device.
  • the method comprises evaluating the downloaded device file with the device data on the client device and determining when a new device file is available for the client device.
  • the method comprises downloading from an update server the new device file when the determining indicates the new device data file is available.
  • Embodiments described herein include a method comprising: receiving at a platform device data of each of a plurality of client devices; storing the device data of the plurality of client devices in a plurality of device files; replicating the plurality of device files at a plurality of distribution platforms; downloading to each client device the device file corresponding to the device, wherein the downloading is performed from a distribution platform geographically closest to the client device; evaluating the downloaded device file with the device data on the client device and determining when a new device file is available for the client device; and downloading from an update server the new device file when the determining indicates the new device data file is available.
  • the device data comprises data of a firmware version currently hosted on the device.
  • Each device file comprises a version control file that includes firmware version data of a corresponding client device.
  • Each device file corresponds to each client device.
  • the plurality of distribution platforms is remote to the platform and in different geographical regions.
  • the method comprises generating a plurality of updated device files by updating the plurality of device files as new device data becomes available for the plurality of client devices.
  • the method comprises propagating the plurality of updated device files to the plurality of distribution platforms.
  • the downloading of the device file to each client device is periodic.
  • the evaluating is performed at the client device and comprises comparing of a current firmware version of the client device with device data of the downloaded device file.
  • the new device file comprises a new firmware image for the client device.
  • the method comprises receiving at the platform an enrollment request from each client device, wherein the enrollment request comprises a request key and the device data of the client device.
  • the method comprises generating a device identification and issuing the device identification to the client device in the absence of a previous enrollment event.
  • the method comprises generating a response to the client device, wherein the response is a response to the enrollment request and includes the device identification.
  • the method comprises controlling subsequent sessions between the client device and the platform using the device identification.
  • the subsequent sessions each use an address convention comprising the device identification, wherein the address convention includes a service identification component that represents a logical active session between the client device and the platform, and a service domain identification component.
  • the method comprises initiating the enrollment request in a client application hosted on the client device, wherein the initiating comprises one of instructing the client application to initiate the enrollment request, and automatically initiating the enrollment request at the client application when the client application self-recognizes a pre- enrollment state.
  • the device data comprises at least one of a device identification number, a device manufacturer, a manufacturer serial number, a model number, International Mobile Subscriber Identity (IMSI), International Mobile Station Equipment Identity (IMEI), Mobile Subscriber Integrated Services Digital Network-Number (MSISDN), a media access control (MAC) address, carrier data of a carrier corresponding to the client device, and state data of the client device.
  • IMSI International Mobile Subscriber Identity
  • IMEI International Mobile Station Equipment Identity
  • MSISDN Mobile Subscriber Integrated Services Digital Network-Number
  • MAC media access control
  • the device identification includes location data of a location from which the device identification is issued.
  • the response includes a login credential, wherein the login credential is encrypted, comprising establishing a session between a client application of the client device and the platform upon receipt of the response.
  • Embodiments described herein include a system comprising a central platform comprising a plurality of device files.
  • the plurality of device files includes device data of the plurality of client devices.
  • the system comprises a plurality of distribution platforms coupled to the central platform.
  • the plurality of distribution platforms comprises replicated versions of the plurality of device files.
  • a distribution platform geographically closest to each client device downloads to each client device the device file corresponding to the device.
  • the downloaded device file is evaluated with the device data on the client device and a determination made when a new device file is available for the client device.
  • the system comprises an update server coupled to the central platform.
  • the new device file is downloaded from the update server when the determining indicates the new device data file is available.
  • Embodiments described herein include a system comprising: a central platform comprising a plurality of device files, wherein the plurality of device files include device data of the plurality of client devices; a plurality of distribution platforms coupled to the central platform, wherein the plurality of distribution platforms comprises replicated versions of the plurality of device files, wherein a distribution platform geographically closest to each client device downloads to each client device the device file
  • the downloaded device file is evaluated with the device data on the client device and a determination made when a new device file is available for the client device; and an update server coupled to the central platform, wherein the new device file is downloaded from the update server when the determining indicates the new device data file is available.
  • the device data comprises data of a firmware version currently hosted on the device.
  • Each device file comprises a version control file that includes firmware version data of a corresponding client device, wherein each device file corresponds to each client device.
  • the plurality of distribution platforms is remote to the platform and in different geographical regions.
  • a plurality of updated device files are generated by updating the plurality of device files as new device data becomes available for the plurality of client devices, wherein the plurality of updated device files are propagated to the plurality of distribution platforms.
  • the downloading of the device file to each client device is periodic.
  • the device file is evaluated at the client device and comprises comparing of a current firmware version of the client device with device data of the downloaded device file.
  • the new device file comprises a new firmware image for the client device.
  • the platform receives an enrollment request from each client device, wherein the enrollment request comprises a request key and the device data of the client device, wherein a device identification is generated and issued to the client device in the absence of a previous enrollment event, wherein a response is generated to the client device, wherein the response is a response to the enrollment request and includes the device identification, wherein subsequent sessions between the client device and the platform are controlled using the device identification.
  • the subsequent sessions each use an address convention comprising the device identification, wherein the address convention includes a service identification
  • the enrollment request is initiated in a client application hosted on the client device, wherein the initiating comprises one of instructing the client application to initiate the enrollment request, and automatically initiating the enrollment request at the client application when the client application self-recognizes a pre-enrollment state.
  • the device data comprises at least one of a device identification number, a device manufacturer, a manufacturer serial number, a model number, International Mobile Subscriber Identity (IMSI), International Mobile Station Equipment Identity (IMEI), Mobile Subscriber Integrated Services Digital Network-Number (MSISDN), a media access control (MAC) address, carrier data of a carrier corresponding to the client device, and state data of the client device.
  • IMSI International Mobile Subscriber Identity
  • IMEI International Mobile Station Equipment Identity
  • MSISDN Mobile Subscriber Integrated Services Digital Network-Number
  • MAC media access control
  • the device identification includes location data of a location from which the device identification is issued.
  • the response includes a login credential, wherein the login credential is encrypted, comprising establishing a session between a client application of the client device and the platform upon receipt of the response.
  • computer networks suitable for use with the embodiments described herein include local area networks (LAN), wide area networks (WAN), Internet, or other connection services and network variations such as the world wide web, the public internet, a private internet, a private computer network, a public network, a mobile network, a cellular network, a value-added network, and the like.
  • Computing devices coupled or connected to the network may be any microprocessor controlled device that permits access to the network, including terminal devices, such as personal computers, workstations, servers, mini computers, main-frame computers, laptop computers, mobile computers, palm top computers, hand held computers, mobile phones, TV set-top boxes, or combinations thereof.
  • the computer network may include one of more LANs, WANs, Internets, and computers.
  • the computers may serve as servers, clients, or a combination thereof.
  • the device management service can be a component of a single system, multiple systems, and/or geographically separate systems.
  • the device management service can also be a subcomponent or subsystem of a single system, multiple systems, and/or geographically separate systems.
  • the device management service can be coupled to one or more other components (not shown) of a host system or a system coupled to the host system.
  • the processing system includes any collection of processor-based devices or computing devices operating together, or components of processing systems or devices, as is known in the art.
  • the processing system can include one or more of a portable computer, portable communication device operating in a communication network, and/or a network server.
  • the portable computer can be any of a number and/or combination of devices selected from among personal computers, personal digital assistants, portable computing devices, and portable communication devices, but is not so limited.
  • the processing system can include components within a larger computer system.
  • the processing system of an embodiment includes at least one processor and at least one memory device or subsystem.
  • the processing system can also include or be coupled to at least one database.
  • the term "processor” as generally used herein refers to any logic processing unit, such as one or more central processing units (CPUs), digital signal processors (DSPs), application-specific integrated circuits (ASIC), etc.
  • the processor and memory can be monolifhically integrated onto a single chip, distributed among a number of chips or components, and/or provided by some combination of algorithms.
  • the methods described herein can be implemented in one or more of software algorithm(s), programs, firmware, hardware, components, circuitry, in any combination.
  • the components of any system that includes the device management service can be located together or in separate locations. Communication paths couple the
  • the communication paths include wireless connections, wired connections, and hybrid wireless/wired connections.
  • the communication paths also include couplings or connections to networks including local area networks (LANs), metropolitan area networks (MANs), wide area networks (WANs), proprietary networks, interoffice or backend networks, and the Internet.
  • LANs local area networks
  • MANs metropolitan area networks
  • WANs wide area networks
  • proprietary networks interoffice or backend networks
  • the communication paths include removable fixed mediums like floppy disks, hard disk drives, and CD-ROM disks, as well as flash RAM, Universal Serial Bus (USB) connections, RS-232 connections, telephone lines, buses, and electronic mail messages.
  • USB Universal Serial Bus
  • aspects of the device management service and corresponding systems and methods described herein may be implemented as functionality programmed into any of a variety of circuitry, including programmable logic devices (PLDs), such as field programmable gate arrays (FPGAs), programmable array logic (PAL) devices, electrically programmable logic and memory devices and standard cell-based devices, as well as application specific integrated circuits (ASICs).
  • PLDs programmable logic devices
  • FPGAs field programmable gate arrays
  • PAL programmable array logic
  • ASICs application specific integrated circuits
  • microcontrollers with memory such as electronically erasable programmable read only memory (EEPROM)
  • embedded microprocessors firmware, software, etc.
  • aspects of the device management service and corresponding systems and methods may be embodied in microprocessors having software-based circuit emulation, discrete logic (sequential and combinatorial), custom devices, fuzzy (neural) logic, quantum devices, and hybrids of any of the above device types.
  • the underlying device technologies may be provided in a variety of component types, e.g., metal-oxide semiconductor field-effect transistor (MOSFET) technologies like complementary metal-oxide semiconductor (CMOS), bipolar technologies like emitter- coupled logic (ECL), polymer technologies (e.g., silicon-conjugated polymer and metal- conjugated polymer-metal structures), mixed analog and digital, etc.
  • MOSFET metal-oxide semiconductor field-effect transistor
  • CMOS complementary metal-oxide semiconductor
  • ECL emitter- coupled logic
  • polymer technologies e.g., silicon-conjugated polymer and metal- conjugated polymer-metal structures
  • mixed analog and digital etc.

Abstract

Systems and methods are described that comprise receiving software files of client devices at a platform. The software files include software update images for use in updating software of the client devices. The software files are replicated at multiple distribution platforms. An electronic message is generated to a client device when a software file corresponds to the client device, and the electronic message includes a link. The client device is redirected to a distribution platform geographically closest to the client device upon selection of the link, and the software file is downloaded from the distribution platform to the client device.

Description

DISTRIBUTING SOFTWARE FOR UPDATING OF CLIENT DEVICES
Inventor:
Adrian CHAN RELATED APPLICATIONS
This application claims the benefit of United States (US) Patent Application Number 61/798,347, filed March 15, 2013.
This application claims the benefit of US Patent Application Number 61/794,977, filed March 15, 2013.
This application is a continuation in part of US Patent Application Number
14/165,066, filed January 27, 2014.
This application is a continuation in part of US Patent Application Number 14/165,109, filed January 27, 2014.
This application is a continuation in part of US Patent Application Number 14/165,157, filed January 27, 2014.
TECHNICAL FIELD
The embodiments herein relate to processing systems and, more particularly, to methods and apparatus for firmware over-the-air (FOTA) updates of the client device.
BACKGROUND
Systems and methods are needed for distributing software for use in updating client devices. INCORPORATION BY REFERENCE
Each patent, patent application, and/or publication mentioned in this specification is herein incorporated by reference in its entirety to the same extent as if each individual patent, patent application, and/or publication was specifically and individually indicated to be incorporated by reference. BRIEF DESCRIPTION OF THE DRAWINGS
Figure 1 is a block diagram of a device management service, under an embodiment.
Figure 2 is a block diagram of a device management service including software distribution centers for distributing replicated software update images, under an embodiment.
Figure 3 is a block diagram of a device management service comprising software distribution centers that include replicated software update images, version control files (VCFs), and firmware version information (FVI) for client devices, under an alternative embodiment.
Figure 4 is another block diagram of a device management service, under an embodiment.
Figure 5 is a flow diagram for provisioning a client device and assigning a universal identification to the client device, under an embodiment.
DETAILED DESCRIPTION
One or more of a system, device or apparatus, and associated methods are described herein that enable a distributed processing method to efficiently process client inquires regarding the availability of newer firmware updates for the requesting device or any corresponding software modules hosed on the device, and to distribute software update images for use in updating firmware of the devices. As the numbers of these requests can be very large, for example in the tens or hundreds of millions, the embodiments described herein provide a relatively higher level of efficiency for these over-the-air updates.
As used herein, the term "client" includes but is not limited to one or more of software modules, applications, and mobile communication devices having or coupled to at least one of a wired and wireless communication interface to interact with server software application. The server software application of an embodiment, also referred to herein as the server application, executes or runs on one or more of a local processing device (e.g., personal computer, server, etc.) and a service the provides the FOTA service. The service providing the FOTA service includes but is not limited to at least one of a public service, private service, and a personal service deploying as at least one of a cloud and non-cloud based service providing the FOTA service.
Although the detailed description herein contains many specifics for the purposes of illustration, anyone of ordinary skill in the art will appreciate that many variations and alterations to the following details are within the scope of the embodiments described herein. Thus, the following illustrative embodiments are set forth without any loss of generality to, and without imposing limitations upon, the claimed invention.
Systems and methods are generally described that comprise receiving software files of client devices at a platform. The software files include software update images for use in updating software of the client devices. The software files are replicated at multiple distribution platforms. An electronic message is generated to a client device when a software file corresponds to the client device, and the electronic message includes a link. The client device is redirected to a distribution platform geographically closest to the client device upon selection of the link, and the software file is downloaded from the distribution platform to the client device.
Figure 1 is a block diagram of a device management service, under an
embodiment. The device management service includes a device management platform, system and/or components at a centralized location. The device management platform communicates with one or more clients, which as described herein include client devices, software modules, and/or applications. Communication between the device management platform and the clients involves the use of a unique identification, referred to herein as innodevID, as described in detail herein.
The device management service also includes a content distribution network (CDN) that is coupled to the device management platform. The CDN includes numerous software distribution centers, each of which is located in a different geographical region or area than the device management platform and any other software distribution center. The device management platform receives information or data from each device that includes the device firmware version information. This firmware version
information corresponding to each device is stored at the device management platform in separate device-specific version control files. Thus, for each device registered with the device management platform, the platform includes a version control file (VCF) that includes the firmware version information of the corresponding device.
While the firmware version information for the devices is kept in separate device specific version control files (VCFs) at the device management platform, all version control files are replicated to numerous software distribution centers of the CDN. The replicated version control files are publicly readable but are write-restricted so that they can only be written by authorized server software applications in order to prevent corruption or contamination of the files. The software distribution centers, which are each located in a different geographical region or area than both the device management platform and others of the software distribution centers, are coupled or connected to the device management platform via one or more of public networks like the internet, and private networks.
When a new firmware package becomes available for a specific device model, the service provider updates the corresponding files inside the respective configuration file specific to that device model at the device management service. The device management service subsequently propagates the new firmware files via the CDN to each of the software distribution centers where the firmware files are stored.
The client software hosted in the device periodically downloads via the Internet, for example, the corresponding firmware version control file from the software distribution center in closest proximity to the device. The client software then evaluates whether a new firmware package is available for the device model by comparing the firmware version currently residing on the device with the firmware version received or downloaded from the software distribution center in order to determine if a newer version of firmware is available. When it is determined that no firmware update is available, the client waits for its next subsequent self-check cycle to query the closest software distribution center for any new software version information. The FOTA server is not contacted by the device until such time as a newer firmware version is available for that device under the embodiments herein.
When it is determined that a version of firmware is available that is newer than the version currently residing on the device, then the client software will contact the appropriate Firmware-Over-the-Air (FOTA) server to follow the FOTA firmware download and upgrade transaction processing for the newer firmware image. Firmware Over-the-Air (FOTA) is used for upgrades to mobile telephones and other portable computing devices. The FOTA is also referred to as software update, firmware update or device management, but is not so limited. Using FOTA, firmware updates are pushed or issued directly "over the air" to the device from the mobile phone service provider or other intermediary.
The software update images of an embodiment, instead of being retrieved or received from a single server of the device management server, are downloaded from a software distribution center located in one of a number of different geographical regions or areas around the world. In particular, the software update image for a device is retrieved or received from a software distribution center that is closest to the client device relative to the other software distribution centers. The scheme improves efficiency of the FOTA process because the software distribution center from which the software update image is received is a point geographically closer to the client device than the device management service. Consequently, efficiency of the updating process is realized in the reduced time required to complete the download, and the improved throughput of the software download and update process to many devices in parallel. Furthermore, the use of numerous software distribution centers to distribute the update images means that any point of failure on a given software distribution center does not impact downloads via other distribution centers. Figure 2 is a block diagram of a device management service including software distribution centers for distributing replicated software update images, under an embodiment. The device management service includes a content distribution network (CDN) that is coupled to the device management platform as described herein. The CDN includes numerous software distribution centers or points, each of which is located in a different geographical region or area than the device management platform and any other software distribution center.
The device management platform receives software update images from software providers. While the software update images for the devices are kept in separate files at the device management platform, all software update images are replicated to numerous software distribution centers of the CDN. The replicated software update images are publicly readable but are write-restricted so that they can only be written by authorized server software applications in order to prevent corruption or contamination of the files. The software distribution centers, which are each located in a different geographical region or area than both the device management platform and others of the software distribution centers, are coupled or connected to the device management platform via one or more of public networks like the Internet and/or private networks.
Figure 3 is a block diagram of a device management service comprising software distribution centers that include replicated software update images, version control files (VCFs), and firmware version information (FVI) for client devices, under an alternative embodiment. The device management service includes a content distribution network (CDN) that is coupled to the device management platform as described herein. The CDN includes numerous software distribution centers or points, each of which is located in a different geographical region or area than the device management platform and any other software distribution center.
As described herein, the device management platform receives information or data from each device that includes the device firmware version information (FVI) corresponding to that device. The firmware version information corresponding to each client device is stored at the device management platform in separate device-specific version control files so that, for each device registered with the device management platform, the platform includes a version control file (VCF) that includes the firmware version information of the corresponding device.
While the firmware version information for the devices is kept in separate device specific version control files (VCFs) at the device management platform, all version control files are replicated to numerous software distribution centers of the CDN. When a new firmware package becomes available for a specific device model, the service provider updates the corresponding files inside the respective configuration file specific to that device model at the device management service. The device management service subsequently propagates the new firmware files via the CDN to each of the software distribution centers where the firmware files are stored.
In addition to the version control files and firmware version information distributed to the software distribution centers, the device management service of an embodiment includes software update images for the devices, and replicates all software update images to numerous software distribution centers of the CDN along with the version control files and the firmware version information.
When a newer version of firmware becomes available for a device, it is distributed to the software distribution centers around the world. The device
management service notifies a device of the availability of the new firmware version by sending to the client device an electronic message (e.g., electronic mail, SMS, etc.) that includes a uniform resource locator (URL), link or icon for use in downloading the updated software. Activation or selection of the URL redirects the device to the closest software distribution access point (geographically) where it downloads the latest software update image.
As described above, communication between the device management service and the client devices involves the use of a unique identification issued to each device. The unique identification, which is referred to herein as innodevID, is issued to each device that is brought to a mobile device management service of a service provider. The mobile device management service of an embodiment is referred to herein as a care service or, alternatively, an activeCare service. Communication with the device is enabled using a pre-specified address convention. Communication with the device in an embodiment uses but is not limited to the following address convention:
innodevID@service_domain/serviceID. This address convention is used for example to send and receive real-time device control command or device information to and from the device and the activeCare service platform. The servicelD portion or component of the address convention is an identification number that is used to represent the logical active session ongoing between the device and the servicing agent during the service call.
Figure 4 is another block diagram of a device management service, under an embodiment. The device management service includes a platform, system and/or components comprising one or more of an enrollment service, authentication service and care services or care applications, all of which are described in detail herein. The device management service communicates with one or more client devices, each hosting client software. Communication between the device management service and the client devices involves the use of a unique identification, referred to herein as innodevID, as described in detail herein.
Figure 5 is a flow diagram for provisioning a client device and assigning a universal identification the client device, under an embodiment. The universal identification assigned to the client device is used by care applications in management of the device, as described below. The client device includes any portable communication device having a wired and/or wireless communication interface by which the device interacts with one or more care applications in a local or remote environment, but is not so limited. The client device couples or connects to the care applications using a communication path that includes any medium for communicating among the computing systems including, but not limited to, wireless couplings and/or connections, wired couplings and/or connections, and hybrid wireless/wired couplings and/or connections. The care services are provided by care applications that include but are not limited to applications hosted on one or more local desktop computers and/or server computers. Further, the care applications include one or more services including but not limited to public services, private services, and/or personal services deploying as cloud or non- cloud based services.
The client device of an embodiment includes one or more applications or modules, referred to herein as client software or software, downloaded from a software distribution service via a communication path and installed on the client device. The client software is loaded onto the device via a user-initiated download from a software distribution program, for example. Alternatively, the client software is loaded onto the device via an automatic download, but the embodiment is not so limited.
As yet another alternative, the client software can be loaded onto the device using a hybrid procedure that includes an automatic procedure combined with some user action. In but one example of a hybrid procedure, the care services send to the client device an electronic message (e.g., electronic mail, SMS, etc.) that includes a link or icon for use in downloading the client software. Following receipt of the electronic message, the user clicks or selects the link or icon in the message and this user action initiates the download of the client software.
Once loaded onto a host client device, the client software of an embodiment is instructed to initiate an enrollment request to a care application but is not so limited. Alternatively, the client software self-recognizes its pre-enrollment state and in response initiates an enrollment request to a care application.
The enrollment request of an embodiment includes a set of information including but not limited to a prearranged enrollment request key and client device-specific information. The device information includes one or more of mobile device
identification number, manufacturer serial number, Ethernet MAC address, carrier information, and additional information describing the state of the client device. The information of the enrollment request is sent to the care enrollment service. The care enrollment service upon receiving an enrollment request uses the client device information included in the enrollment request along with information of a knowledge base to which it is coupled to determine if the client device has previously been enrolled. If a determination is made that the requesting client device has not been enrolled, a unique device identification number, referred to herein as innodevID, is generated by the care application in the application domain. Once generated, the innodevID is issued and assigned to the particular requesting client device. In the case where the enrollment service is hosted or running in multiple locations, such as regional data centers, the unique device identification number includes additional information identifying the location generating the unique device identification number. If a determination is made that the requesting client device has previously been enrolled, then the unique device identification number previously issued during the enrollment is again returned to the requesting client device.
The care enrollment service responds to the enrollment request with the assigned unique device identification number along with an encrypted login credential. The login credential is used for any service request to the care application. Upon receipt of the enrollment response from the care enrollment service, the client software stores the unique device identification and login credential for subsequent use in future service requests. In further response to receipt of the enrollment response, the client software couples or connects to the care application using the unique device identification and the login credential over a secure communication channel such as transport layer security (TLS) and secured sockets layer (SSL), but is not so limited.
Once the requesting client device receives the unique device identification number from the device management service, the care application and its modules or components communicate with the client device using this unique device identification. The unique device identification of an embodiment is in the form of
innodevID@domain/serviceID.
The serviced component of the device identification, referred to herein as the service identification notation, is a string of characters and/or numbers assigned to identify an active session between the client device and the care application. As such, the care application and its modules communicate with the client device using this unique device identification regardless of a current location of the client device and regardless of a location of the application modules. Furthermore, the established communication session or path remains connected from the logical perspective of both the client software and the care application until such time as one of the client software and the care application terminate the application session and disconnect the coupling or connection. For example, the client device can connect to the care service via a mobile data network at the start of a session; and during the session the client device switches and connects to a WiFi network. Regardless of the change in the connection during the session, the care application continues to address the client software using the assigned unique client device identifier.
Embodiments described herein include a method comprising receiving at a platform a plurality of software files of a plurality of client devices. The plurality of software files includes a plurality of software update images for use in updating software of the plurality of client devices. The method comprises replicating the plurality of software files at a plurality of distribution platforms; generating an electronic message to a client device when a software file of the plurality of software files corresponds to the client device. The electronic message includes a link. The method comprises redirecting the client device to a distribution platform geographically closest to the client device upon selection of the link; and downloading from the distribution platform to the client device the software file.
Embodiments described herein include a method comprising: receiving at a platform a plurality of software files of a plurality of client devices, wherein the plurality of software files include a plurality of software update images for use in updating software of the plurality of client devices; replicating the plurality of software files at a plurality of distribution platforms; generating an electronic message to a client device when a software file of the plurality of software files corresponds to the client device, wherein the electronic message includes a link; redirecting the client device to a distribution platform geographically closest to the client device upon selection of the link; and downloading from the distribution platform to the client device the software file. The plurality of distribution platforms is remote to the platform and in different geographical regions.
The method comprises receiving at a platform device data of each of the plurality of client devices, storing the device data in a plurality of device files and replicating the plurality of device files at the plurality of distribution platforms. The method comprises comparing the device file with the device data on the client device and determining when a new device file is available for the client device. The method comprises downloading from the distribution platform geographically closest to the client device the new device file when the determining indicates the new device data file is available.
The device data comprises data of a firmware version currently hosted on the device.
Each device file comprises a version control file that includes firmware version data of a corresponding client device, wherein each device file corresponds to each client device.
The method comprises generating a plurality of updated device files by updating the plurality of device files as new device data becomes available for the plurality of client devices, and propagating the pl urality of updated device files to the plurality of distribution platforms.
The comparing is performed at the client device and comprises comparing of a current firmware version of the client device with device data of the downloaded device file.
The new device file comprises a new firmware image for the client device.
The method comprises receiving at the platform an enrollment request from each client device, wherein the enrollment request comprises a request key and the device data of the client device. The method comprises generating a device identification and issuing the device identification to the client device in the absence of a previous enrollment event. The method comprises generating a response to the client device, wherein the response is a response to the enrollment request and includes the device identification. The method comprises controlling subsequent sessions between the client device and the platform using the device identification.
The subsequent sessions each use an address convention comprising the device identification, wherein the address convention includes a service identification component that represents a logical active session between the client device and the platform, and a service domain identification component.
The method comprises initiating the enrollment request in a client application hosted on the client device, wherein the initiating comprises one of instructing the client application to initiate the enrollment request, and automatically initiating the enrollment request at the client application when the client application self-recognizes a pre- enrollment state.
The device data comprises at least one of a device identification number, a device manufacturer, a manufacturer serial number, a model number, International Mobile Subscriber Identity (IMSI), International Mobile Station Equipment Identity (IMEI), Mobile Subscriber Integrated Services Digital Network-Number (MSISDN), a media access control (MAC) address, carrier data of a carrier corresponding to the client device, and state data of the client device.
The device identification includes location data of a location from which the device identification is issued.
The response includes a login credential, wherein the login credential is encrypted, comprising establishing a session between a client application of the client device and the platform upon receipt of the response.
Embodiments described herein include a system comprising a platform including a plurality of software files of a plurality of client devices. The plurality of software files includes a plurality of software update images for use in updating software of the plurality of client devices. The system comprises a plurality of distribution platforms coupled to the platform. The plurality of distribution platforms comprises replicated versions of the plurality of software files. An electronic message is generated to a client device when a software file of the plurality of software files corresponds to the client device. The electronic message includes a link. The client device is redirected to a distribution platform geographically closest to the client device upon selection of the link, and the software file is downloaded from the distribution platform to the client device.
Embodiments described herein include a system comprising: a platform comprising a plurality of software files of a plurality of client devices, wherein the plurality of software files include a plurality of software update images for use in updating software of the plurality of client devices; and a plurality of distribution platforms coupled to the platform, wherein the plurality of distribution platforms comprises replicated versions of the plurality of software files, wherein an electronic message is generated to a client device when a software file of the plurality of software files corresponds to the client device, wherein the electronic message includes a link, wherein the client device is redirected to a distribution platform geographically closest to the client device upon selection of the link, and the software file is downloaded from the distribution platform to the client device.
The plurality of distribution platforms is remote to the platform and in different geographical regions.
The platform includes device data of each of the plurality of client devices and stores the device data in a plurality of device files, wherein the plurality of device files are replicated at the plurality of distribution platforms, wherein the device file is compared with the device data on the client device and a determination is made when a new device file is available for the client device, wherein the new device file is downloaded from the distribution platform geographically closest to the client device when the determination indicates the new device data file is available.
The device data comprises data of a firmware version currently hosted on the device.
Each device file comprises a version control file that includes firmware version data of a corresponding client device, wherein each device file corresponds to each client device. A plurality of updated device files are generated by updating the plurality of device files as new device data becomes available for the plurality of client devices, wherein the plurality of updated device files are propagated to the plurality of distribution platforms.
The downloading of the device file to each client device is periodic.
The device file is evaluated at the client device and comprises comparing of a current firmware version of the client device with device data of the downloaded device file.
The new device file comprises a new firmware image for the client device.
The platform receives an enrollment request from each client device, wherein the enrollment request comprises a request key and the device data of the client device, wherein a device identification is generated and issued to the client device in the absence of a previous enrollment event, wherein a response is generated to the client device, wherein the response is a response to the enrollment request and includes the device identification, wherein subsequent sessions between the client device and the platform are controlled using the device identification.
The subsequent sessions each use an address convention comprising the device identification, wherein the address convention includes a service identification component that represents a logical active session between the client device and the platform, and a service domain identification component.
The enrollment request is initiated in a client application hosted on the client device, wherein the initiating comprises one of instructing the client application to initiate the enrollment request, and automatically initiating the enrollment request at the client application when the client application self-recognizes a pre-enrollment state.
The device data comprises at least one of a device identification number, a device manufacturer, a manufacturer serial number, a model number, International Mobile Subscriber Identity (IMSI), International Mobile Station Equipment Identity (IMEI), Mobile Subscriber Integrated Services Digital Network-Number (MSISDN), a media access control (MAC) address, carrier data of a carrier corresponding to the client device, and state data of the client device.
The device identification includes location data of a location from which the device identification is issued.
The response includes a login credential, wherein the login credential is encrypted, comprising establishing a session between a client application of the client device and the platform upon receipt of the response.
Embodiments described herein include a method comprising receiving at a platform device data of each of a plurality of client devices. The method comprises storing the device data of the plurality of client devices in a plurality of device files. The method comprises replicating the plurality of device files at a plurality of distribution platforms. The method comprises downloading to each client device the device file corresponding to the device. The downloading is performed from a distribution platform geographically closest to the client device. The method comprises evaluating the downloaded device file with the device data on the client device and determining when a new device file is available for the client device. The method comprises downloading from an update server the new device file when the determining indicates the new device data file is available.
Embodiments described herein include a method comprising: receiving at a platform device data of each of a plurality of client devices; storing the device data of the plurality of client devices in a plurality of device files; replicating the plurality of device files at a plurality of distribution platforms; downloading to each client device the device file corresponding to the device, wherein the downloading is performed from a distribution platform geographically closest to the client device; evaluating the downloaded device file with the device data on the client device and determining when a new device file is available for the client device; and downloading from an update server the new device file when the determining indicates the new device data file is available.
The device data comprises data of a firmware version currently hosted on the device. Each device file comprises a version control file that includes firmware version data of a corresponding client device.
Each device file corresponds to each client device.
The plurality of distribution platforms is remote to the platform and in different geographical regions.
The method comprises generating a plurality of updated device files by updating the plurality of device files as new device data becomes available for the plurality of client devices.
The method comprises propagating the plurality of updated device files to the plurality of distribution platforms.
The downloading of the device file to each client device is periodic.
The evaluating is performed at the client device and comprises comparing of a current firmware version of the client device with device data of the downloaded device file.
The new device file comprises a new firmware image for the client device.
The method comprises receiving at the platform an enrollment request from each client device, wherein the enrollment request comprises a request key and the device data of the client device. The method comprises generating a device identification and issuing the device identification to the client device in the absence of a previous enrollment event. The method comprises generating a response to the client device, wherein the response is a response to the enrollment request and includes the device identification. The method comprises controlling subsequent sessions between the client device and the platform using the device identification.
The subsequent sessions each use an address convention comprising the device identification, wherein the address convention includes a service identification component that represents a logical active session between the client device and the platform, and a service domain identification component.
The method comprises initiating the enrollment request in a client application hosted on the client device, wherein the initiating comprises one of instructing the client application to initiate the enrollment request, and automatically initiating the enrollment request at the client application when the client application self-recognizes a pre- enrollment state.
The device data comprises at least one of a device identification number, a device manufacturer, a manufacturer serial number, a model number, International Mobile Subscriber Identity (IMSI), International Mobile Station Equipment Identity (IMEI), Mobile Subscriber Integrated Services Digital Network-Number (MSISDN), a media access control (MAC) address, carrier data of a carrier corresponding to the client device, and state data of the client device.
The device identification includes location data of a location from which the device identification is issued.
The response includes a login credential, wherein the login credential is encrypted, comprising establishing a session between a client application of the client device and the platform upon receipt of the response.
Embodiments described herein include a system comprising a central platform comprising a plurality of device files. The plurality of device files includes device data of the plurality of client devices. The system comprises a plurality of distribution platforms coupled to the central platform. The plurality of distribution platforms comprises replicated versions of the plurality of device files. A distribution platform geographically closest to each client device downloads to each client device the device file corresponding to the device. The downloaded device file is evaluated with the device data on the client device and a determination made when a new device file is available for the client device. The system comprises an update server coupled to the central platform. The new device file is downloaded from the update server when the determining indicates the new device data file is available.
Embodiments described herein include a system comprising: a central platform comprising a plurality of device files, wherein the plurality of device files include device data of the plurality of client devices; a plurality of distribution platforms coupled to the central platform, wherein the plurality of distribution platforms comprises replicated versions of the plurality of device files, wherein a distribution platform geographically closest to each client device downloads to each client device the device file
corresponding to the device, wherein the downloaded device file is evaluated with the device data on the client device and a determination made when a new device file is available for the client device; and an update server coupled to the central platform, wherein the new device file is downloaded from the update server when the determining indicates the new device data file is available.
The device data comprises data of a firmware version currently hosted on the device.
Each device file comprises a version control file that includes firmware version data of a corresponding client device, wherein each device file corresponds to each client device.
The plurality of distribution platforms is remote to the platform and in different geographical regions.
A plurality of updated device files are generated by updating the plurality of device files as new device data becomes available for the plurality of client devices, wherein the plurality of updated device files are propagated to the plurality of distribution platforms.
The downloading of the device file to each client device is periodic.
The device file is evaluated at the client device and comprises comparing of a current firmware version of the client device with device data of the downloaded device file.
The new device file comprises a new firmware image for the client device.
The platform receives an enrollment request from each client device, wherein the enrollment request comprises a request key and the device data of the client device, wherein a device identification is generated and issued to the client device in the absence of a previous enrollment event, wherein a response is generated to the client device, wherein the response is a response to the enrollment request and includes the device identification, wherein subsequent sessions between the client device and the platform are controlled using the device identification.
The subsequent sessions each use an address convention comprising the device identification, wherein the address convention includes a service identification
component that represents a logical active session between the client device and the platform, and a service domain identification component.
The enrollment request is initiated in a client application hosted on the client device, wherein the initiating comprises one of instructing the client application to initiate the enrollment request, and automatically initiating the enrollment request at the client application when the client application self-recognizes a pre-enrollment state.
The device data comprises at least one of a device identification number, a device manufacturer, a manufacturer serial number, a model number, International Mobile Subscriber Identity (IMSI), International Mobile Station Equipment Identity (IMEI), Mobile Subscriber Integrated Services Digital Network-Number (MSISDN), a media access control (MAC) address, carrier data of a carrier corresponding to the client device, and state data of the client device.
The device identification includes location data of a location from which the device identification is issued.
The response includes a login credential, wherein the login credential is encrypted, comprising establishing a session between a client application of the client device and the platform upon receipt of the response.
As described above, computer networks suitable for use with the embodiments described herein include local area networks (LAN), wide area networks (WAN), Internet, or other connection services and network variations such as the world wide web, the public internet, a private internet, a private computer network, a public network, a mobile network, a cellular network, a value-added network, and the like. Computing devices coupled or connected to the network may be any microprocessor controlled device that permits access to the network, including terminal devices, such as personal computers, workstations, servers, mini computers, main-frame computers, laptop computers, mobile computers, palm top computers, hand held computers, mobile phones, TV set-top boxes, or combinations thereof. The computer network may include one of more LANs, WANs, Internets, and computers. The computers may serve as servers, clients, or a combination thereof.
The device management service can be a component of a single system, multiple systems, and/or geographically separate systems. The device management service can also be a subcomponent or subsystem of a single system, multiple systems, and/or geographically separate systems. The device management service can be coupled to one or more other components (not shown) of a host system or a system coupled to the host system.
One or more components of the device management service and/or a
corresponding system or application to which the device management service is coupled or connected includes and/or runs under and/or in association with a processing system. The processing system includes any collection of processor-based devices or computing devices operating together, or components of processing systems or devices, as is known in the art. For example, the processing system can include one or more of a portable computer, portable communication device operating in a communication network, and/or a network server. The portable computer can be any of a number and/or combination of devices selected from among personal computers, personal digital assistants, portable computing devices, and portable communication devices, but is not so limited. The processing system can include components within a larger computer system.
The processing system of an embodiment includes at least one processor and at least one memory device or subsystem. The processing system can also include or be coupled to at least one database. The term "processor" as generally used herein refers to any logic processing unit, such as one or more central processing units (CPUs), digital signal processors (DSPs), application-specific integrated circuits (ASIC), etc. The processor and memory can be monolifhically integrated onto a single chip, distributed among a number of chips or components, and/or provided by some combination of algorithms. The methods described herein can be implemented in one or more of software algorithm(s), programs, firmware, hardware, components, circuitry, in any combination.
The components of any system that includes the device management service can be located together or in separate locations. Communication paths couple the
components and include any medium for communicating or transferring files among the components. The communication paths include wireless connections, wired connections, and hybrid wireless/wired connections. The communication paths also include couplings or connections to networks including local area networks (LANs), metropolitan area networks (MANs), wide area networks (WANs), proprietary networks, interoffice or backend networks, and the Internet. Furthermore, the communication paths include removable fixed mediums like floppy disks, hard disk drives, and CD-ROM disks, as well as flash RAM, Universal Serial Bus (USB) connections, RS-232 connections, telephone lines, buses, and electronic mail messages.
Aspects of the device management service and corresponding systems and methods described herein may be implemented as functionality programmed into any of a variety of circuitry, including programmable logic devices (PLDs), such as field programmable gate arrays (FPGAs), programmable array logic (PAL) devices, electrically programmable logic and memory devices and standard cell-based devices, as well as application specific integrated circuits (ASICs). Some other possibilities for implementing aspects of the device management service and corresponding systems and methods include: microcontrollers with memory (such as electronically erasable programmable read only memory (EEPROM)), embedded microprocessors, firmware, software, etc. Furthermore, aspects of the device management service and corresponding systems and methods may be embodied in microprocessors having software-based circuit emulation, discrete logic (sequential and combinatorial), custom devices, fuzzy (neural) logic, quantum devices, and hybrids of any of the above device types. Of course the underlying device technologies may be provided in a variety of component types, e.g., metal-oxide semiconductor field-effect transistor (MOSFET) technologies like complementary metal-oxide semiconductor (CMOS), bipolar technologies like emitter- coupled logic (ECL), polymer technologies (e.g., silicon-conjugated polymer and metal- conjugated polymer-metal structures), mixed analog and digital, etc.
Unless the context clearly requires otherwise, throughout the description and the claims, the words "comprise," "comprising," and the like are to be construed in an inclusive sense as opposed to an exclusive or exhaustive sense; that is to say, in a sense of "including, but not limited to." Words using the singular or plural number also include the plural or singular number respectively. Additionally, the words "herein,"
"hereunder," "above," "below," and words of similar import, when used in this application, refer to this application as a whole and not to any particular portions of this application. When the word "or" is used in reference to a list of two or more items, that word covers all of the following interpretations of the word: any of the items in the list, all of the items in the list and any combination of the items in the list.
The above description of embodiments of the device management service and corresponding systems and methods is not intended to be exhaustive or to limit the systems and methods to the precise forms disclosed. While specific embodiments of, and examples for, the device management service and corresponding systems and methods are described herein for illustrative purposes, various equivalent modifications are possible within the scope of the systems and methods, as those skilled in the relevant art will recognize. The teachings of the device management service and corresponding systems and methods provided herein can be applied to other systems and methods, not only for the systems and methods described above.
The elements and acts of the various embodiments described above can be combined to provide further embodiments. These and other changes can be made to the device management service and corresponding systems and methods in light of the above detailed description.

Claims

CLAIMS What is claimed is:
1. A method comprising:
receiving at a platform a plurality of software files of a plurality of client devices, wherein the plurality of software files includes a plurality of software update images for use in updating software of the plurality of client devices;
replicating the plurality of software files at a plurality of distribution platforms; generating an electronic message to a client device when a software file of the plurality of software files corresponds to the client device, wherein the electronic message includes a link;
redirecting the client device to a distribution platform geographically closest to the client device upon selection of the link; and
downloading from the distribution platform to the client device the software file.
2. The method of claim 1, wherein the plurality of distribution platforms is remote to the platform and in different geographical regions.
3. The method of claim 1 , comprising:
receiving at a platform device data of each of the plurality of client devices, storing the device data in a plurality of device files and replicating the plurality of device files at the plurality of distribution platforms;
comparing the device file with the device data on the client device and determining when a new device file is available for the client device; and
downloading from the distribution platform geographically closest to the client device the new device file when the determining indicates the new device data file is available.
4. The method of claim 3, wherein the device data comprises data of a firmware version currently hosted on the device.
5. The method of claim 3, wherein each device file comprises a version control file that includes firmware version data of a corresponding client device, wherein each device file corresponds to each client device.
6. The method of claim 3, comprising generating a plurality of updated device files by updating the plurality of device files as new device data becomes available for the plurality of client devices, and propagating the plurality of updated device files to the plurality of distribution platforms.
7. The method of claim 3, wherein the comparing is performed at the client device and comprises comparing of a current firmware version of the client device with device data of the downloaded device file.
8. The method of claim 3, wherein the new device file comprises a new firmware image for the client device.
9. The method of claim 3, comprising:
receiving at the platform an enrollment request from each client device, wherein the enrollment request comprises a request key and the device data of the client device; generating a device identification and issuing the device identification to the client device in the absence of a previous enrollment event;
generating a response to the client device, wherein the response is a response to the enrollment request and includes the device identification; and
controlling subsequent sessions between the client device and the platform using the device identification.
10. The method of claim 9, wherein the subsequent sessions each use an address convention comprising the device identification, wherein the address convention includes a service identification component that represents a logical active session between the client device and the platform, and a service domain identification component.
1 1. The method of claim 9, comprising initiating the enrollment request in a client application hosted on the client device, wherein the initiating comprises one of instructing the client application to initiate the enrollment request, and automatically initiating the enrollment request at the client application when the client application self- recognizes a pre-enrollment state.
12. The method of claim 9, wherein the device data comprises at least one of a device identification number, a device manufacturer, a manufacturer serial number, a model number, International Mobile Subscriber Identity (IMSI), International Mobile Station Equipment Identity (IMEI), Mobile Subscriber Integrated Services Digital Network- Number (MSISDN), a media access control (MAC) address, carrier data of a carrier corresponding to the client device, and state data of the client device.
13. The method of claim 9, wherein the device identification includes location data of a location from which the device identification is issued.
14. The method of claim 9, wherein the response includes a login credential, wherein the login credential is encrypted, comprising establishing a session between a client application of the client device and the platform upon receipt of the response.
15. A system comprising:
a platform comprising a plurality of software files of a plurality of client devices, wherein the plurality of software files includes a plurality of software update images for use in updating software of the plurality of client devices; and a plurality of distribution platforms coupled to the platform, wherein the plurality of distribution platforms comprises replicated versions of the plurality of software files, wherein an electronic message is generated to a client device when a software file of the plurality of software files corresponds to the client device, wherein the electronic message includes a link, wherein the client device is redirected to a distribution platform geographically closest to the client device upon selection of the link, and the software file is downloaded from the distribution platform to the client device.
16, The system of claim 15, wherein the plurality of distribution platforms are remote to the platform and in different geographical regions.
17. The system of claim 15, wherein the platform includes device data of each of the plurality of client devices and stores the device data in a plurality of device files, wherein the plurality of device files are replicated at the plurality of distribution platforms, wherein the device file is compared with the device data on the client device and a determination is made when a new device file is available for the client device, wherein the new device file is downloaded from the distribution platform geographically closest to the client device when the determination indicates the new device data file is available.
18. The system of claim 17, wherein the device data comprises data of a firmware version currently hosted on the device.
19. The system of claim 17, wherein each device file comprises a version control file that includes firmware version data of a corresponding client device, wherein each device file corresponds to each client device.
20. The system of claim 17, wherein a plurality of updated device files are generated by updating the plurality of device files as new device data becomes available for the plurality of client devices, wherein the plurality of updated device files are propagated to the plurality of distribution platforms.
21. The system of claim 17, wherein the downloading of the device file to each client device is periodic.
22. The system of claim 17, wherein the device file is evaluated at the client device and comprises comparing of a current firmware version of the client device with device data of the downloaded device file.
23. The system of claim 17, wherein the new device file comprises a new firmware image for the client device.
24. The system of claim 17, wherein the platform receives an enrollment request from each client device, wherein the enrollment request comprises a request key and the device data of the client device, wherein a device identification is generated and issued to the client device in the absence of a previous enrollment event, wherein a response is generated to the client device, wherein the response is a response to the enrollment request and includes the device identification, wherein subsequent sessions between the client device and the platform are controlled using the device identification.
25. The system of claim 24, wherein the subsequent sessions each use an address convention comprising the device identification, wherein the address convention includes a service identification component that represents a logical active session between the client device and the platform, and a service domain identification component.
26. The system of claim 24, wherein the enrollment request is initiated in a client application hosted on the client device, wherein the initiating comprises one of instructing the client application to initiate the enrollment request, and automatically initiating the enrollment request at the client application when the client application self- recognizes a pre-enrollment state.
27. The system of claim 24, wherein the device data comprises at least one of a device identification number, a device manufacturer, a manufacturer serial number, a model number, International Mobile Subscriber Identity (IMSI), International Mobile Station Equipment Identity (IMEI), Mobile Subscriber Integrated Services Digital Network-Number (MSISDN), a media access control (MAC) address, carrier data of a carrier corresponding to the client device, and state data of the client device.
28. The system of claim 24, wherein the device identification includes location data of a location from which the device identification is issued.
29. The system of claim 24, wherein the response includes a login credential, wherein the login credential is encrypted, comprising establishing a session between a client application of the client device and the platform upon receipt of the response.
30. A method comprising:
receiving at a platform device data of each of a plurality of client devices;
storing the device data of the plurality of client devices in a plurality of device files;
replicating the plurality of device files at a plurality of distribution platforms; downloading to each client device the device file corresponding to the device, wherein the downloading is performed from a distribution platform geographically closest to the client device;
evaluating the downloaded device file with the device data on the client device and determining when a new device file is available for the client device; and
downloading from an update server the new device file when the determining indicates the new device data file is available.
31. The method of claim 30, wherein the device data comprises data of a firmware version currently hosted on the device.
32. The method of claim 30, wherein each device file comprises a version control file that includes firmware version data of a corresponding client device.
33. The method of claim 30, wherein each device file corresponds to each client device.
34. The method of claim 30, wherein the plurality of distribution platforms is remote to the platform and in different geographical regions.
35. The method of claim 30, comprising generating a plurality of updated device files by updating the plurality of device files as new device data becomes available for the plurality of client devices.
36. The method of claim 35, comprising propagating the plurality of updated device files to the plurality of distribution platforms.
37. The method of claim 30, wherein the downloading of the device file to each client device is periodic.
38. The method of claim 30, wherein the evaluating is performed at the client device and comprises comparing of a current firmware version of the client device with device data of the downloaded device file.
39. The method of claim 30, wherein the new device file comprises a new firmware image for the client device.
40. The method of claim 30, comprising:
receiving at the platform an enrollment request from each client device, wherein the enrollment request comprises a request key and the device data of the client device; generating a device identification and issuing the device identification to the client device in the absence of a previous enrollment event;
generating a response to the client device, wherein the response is a response to the enrollment request and includes the device identification; and
controlling subsequent sessions between the client device and the platform using the device identification.
41. The method of claim 40, wherein the subsequent sessions each use an address convention comprising the device identification, wherein the address convention includes a service identification component that represents a logical active session between the client device and the platform, and a service domain identification component.
42. The method of claim 40, comprising initiating the enrollment request in a client application hosted on the client device, wherein the initiating comprises one of instructing the client application to initiate the enrollment request, and automatically initiating the enrollment request at the client application when the client application self- recognizes a pre-enrollment state.
43. The method of claim 40, wherein the device data comprises at least one of a device identification number, a device manufacturer, a manufacturer serial number, a model number, International Mobile Subscriber Identity (IMSI), International Mobile Station Equipment Identity (IMEI), Mobile Subscriber Integrated Services Digital Network-Number (MSISDN), a media access control (MAC) address, carrier data of a carrier corresponding to the client device, and state data of the client device.
44. The method of claim 40, wherein the device identification includes location data of a location from which the device identification is issued.
45. The method of claim 40, wherein the response includes a login credential, wherein the login credential is encrypted, comprising establishing a session between a client application of the client device and the platform upon receipt of the response.
46. A system comprising:
a central platform comprising a plurality of device files, wherein the plurality of device files include device data of the plurality of client devices;
a plurality of distribution platforms coupled to the central platform, wherein the plurality of distribution platforms comprises replicated versions of the plurality of device files, wherein a distribution platform geographically closest to each client device downloads to each client device the device file corresponding to the device, wherein the downloaded device file is evaluated with the device data on the client device and a determination made when a new device file is available for the client device; and
an update server coupled to the central platform, wherein the new device file is downloaded from the update server when the determining indicates the new device data file is available.
47. The system of claim 46, wherein the device data comprises data of a firmware version currently hosted on the device.
48. The system of claim 46, wherein each device file comprises a version control file that includes firmware version data of a corresponding client device, wherein each device file corresponds to each client device.
49. The system of claim 46, wherein the plurality of distribution platforms is remote to the platform and in different geographical regions.
50. The system of claim 46, wherein a plurality of updated device files are generated by updating the plurality of device files as new device data becomes available for the plurality of client devices, wherein the plurality of updated device files are propagated to the plurality of distribution platforms.
51. The system of claim 46, wherein the downloading of the device file to each client device is periodic.
52. The system of claim 46, wherein the device file is evaluated at the client device and comprises comparing of a current firmware version of the client device with device data of the downloaded device file.
53. The system of claim 46, wherein the new device file comprises a new firmware image for the client device.
54. The system of claim 46, wherein the platform receives an enrollment request from each client device, wherein the enrollment request comprises a request key and the device data of the client device, wherein a device identification is generated and issued to the client device in the absence of a previous enrollment event, wherein a response is generated to the client device, wherein the response is a response to the enrollment request and includes the device identification, wherein subsequent sessions between the client device and the platform are controlled using the device identification.
55. The system of claim 54, wherein the subsequent sessions each use an address convention comprising the device identification, wherein the address convention includes a service identification component that represents a logical active session between the client device and the platform, and a service domain identification component.
56. The system of claim 54, wherein the enrollment request is initiated in a client application hosted on the client device, wherein the initiating comprises one of instructing the client application to initiate the enrollment request, and automatically initiating the enrollment request at the client application when the client application self- recognizes a pre -enrollment state.
57. The system of claim 54, wherein the device data comprises at least one of a device identification number, a device manufacturer, a manufacturer serial number, a model number, International Mobile Subscriber Identity (IMSI), International Mobile Station Equipment Identity (IMEI), Mobile Subscriber Integrated Services Digital
Network-Number (MSISDN), a media access control (MAC) address, carrier data of a carrier corresponding to the client device, and state data of the client device.
58. The system of claim 54, wherein the device identification includes location data of a location from which the device identification is issued.
59. The system of claim 54, wherein the response includes a login credential, wherein the login credential is encrypted, comprising establishing a session between a client application of the client device and the platform upon receipt of the response.
PCT/US2014/030336 2013-03-15 2014-03-17 Distributing software for updating of client devices WO2014145545A2 (en)

Applications Claiming Priority (10)

Application Number Priority Date Filing Date Title
US201361794977P 2013-03-15 2013-03-15
US201361798347P 2013-03-15 2013-03-15
US61/794,977 2013-03-15
US61/798,347 2013-03-15
US14/165,066 US9781192B2 (en) 2013-01-25 2014-01-27 Device management service
US14/165,157 US9544358B2 (en) 2013-01-25 2014-01-27 Providing near real-time device representation to applications and services
US14/165,109 2014-01-27
US14/165,109 US9912730B2 (en) 2013-01-25 2014-01-27 Secured communication channel between client device and device management service
US14/165,066 2014-01-27
US14/165,157 2014-01-27

Publications (2)

Publication Number Publication Date
WO2014145545A2 true WO2014145545A2 (en) 2014-09-18
WO2014145545A3 WO2014145545A3 (en) 2014-12-24

Family

ID=51538494

Family Applications (1)

Application Number Title Priority Date Filing Date
PCT/US2014/030336 WO2014145545A2 (en) 2013-03-15 2014-03-17 Distributing software for updating of client devices

Country Status (1)

Country Link
WO (1) WO2014145545A2 (en)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN114938369A (en) * 2022-07-25 2022-08-23 北京创新乐知网络技术有限公司 Software data packet synchronization method and device, computer equipment and storage medium

Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20060080656A1 (en) * 2004-10-12 2006-04-13 Microsoft Corporation Methods and instructions for patch management
US20070050762A1 (en) * 2004-04-06 2007-03-01 Shao-Chun Chen Build optimizer tool for efficient management of software builds for mobile devices
US20080140714A1 (en) * 2000-03-18 2008-06-12 Rhoads Geoffrey B Methods for Linking from Objects to Remote Resources
US20120099024A1 (en) * 2010-10-21 2012-04-26 Lg Electronics Inc. Method for software update and display apparatus thereof

Patent Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20080140714A1 (en) * 2000-03-18 2008-06-12 Rhoads Geoffrey B Methods for Linking from Objects to Remote Resources
US20070050762A1 (en) * 2004-04-06 2007-03-01 Shao-Chun Chen Build optimizer tool for efficient management of software builds for mobile devices
US20060080656A1 (en) * 2004-10-12 2006-04-13 Microsoft Corporation Methods and instructions for patch management
US20120099024A1 (en) * 2010-10-21 2012-04-26 Lg Electronics Inc. Method for software update and display apparatus thereof

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN114938369A (en) * 2022-07-25 2022-08-23 北京创新乐知网络技术有限公司 Software data packet synchronization method and device, computer equipment and storage medium
CN114938369B (en) * 2022-07-25 2022-10-28 北京创新乐知网络技术有限公司 Software data packet synchronization method and device, computer equipment and storage medium

Also Published As

Publication number Publication date
WO2014145545A3 (en) 2014-12-24

Similar Documents

Publication Publication Date Title
US9535681B2 (en) Validating availability of firmware updates for client devices
US20150058834A1 (en) Distributing software for updating of client devices
US9781192B2 (en) Device management service
CN110944330B (en) MEC platform deployment method and device
US9015694B2 (en) Cloud-based firmware distribution service
TWI393464B (en) Apparatus and methods for network identification of open market wireless devices
KR100953855B1 (en) Methods and apparatus for simultaneously hosting multiple service providers on a network
CN108540433B (en) User identity verification method and device
CN102629935A (en) Method for installing application software based on cloud service, device thereof and system thereof
US9198223B2 (en) Telecommunication network
CN106657259B (en) Routing server and routing service method for server cluster
CN105812435B (en) Application upgrading data packet processing method and device, electronic equipment and system
US20120192263A1 (en) Access gateway and method for providing cloud storage service
CN110929262A (en) Online upgrading method and system
WO2012071907A1 (en) Method and system for hosting desktop virtualized terminal
CN110944319B (en) 5G communication identity verification method, equipment and storage medium
WO2013004059A1 (en) Version upgrade method, terminal and version upgrade system
US20210160128A1 (en) Provisioning of wireless security configuration information in a wireless network environment
CN104852971B (en) Plug-in protocol device and data communication method based on plug-in protocol
US9417887B2 (en) Method and apparatus for bootstrapping gateway in device management system
WO2013189398A2 (en) Application data push method, device, and system
WO2014145545A2 (en) Distributing software for updating of client devices
WO2013166776A1 (en) Method, device, and system for implementing function sharing in wireless access hotspot device
CN113824789B (en) Configuration method, device, equipment and storage medium of access descriptor
US11889593B2 (en) Wireless communication service over an edge data network (EDN) between a user equipment (UE) and an application server (AS)

Legal Events

Date Code Title Description
121 Ep: the epo has been informed by wipo that ep was designated in this application

Ref document number: 14764773

Country of ref document: EP

Kind code of ref document: A2

122 Ep: pct application non-entry in european phase

Ref document number: 14764773

Country of ref document: EP

Kind code of ref document: A2