US20080130639A1 - Software update via peer-to-peer networks - Google Patents

Software update via peer-to-peer networks Download PDF

Info

Publication number
US20080130639A1
US20080130639A1 US11/729,750 US72975007A US2008130639A1 US 20080130639 A1 US20080130639 A1 US 20080130639A1 US 72975007 A US72975007 A US 72975007A US 2008130639 A1 US2008130639 A1 US 2008130639A1
Authority
US
United States
Prior art keywords
peer
network
service
hoc
update
Prior art date
Legal status (The legal status 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 status listed.)
Abandoned
Application number
US11/729,750
Inventor
Jose Costa-Requena
Inmaculada Espigares
Mika Helander
Kirmo Koistinen
Vesa Luiro
Markku Pulkkinen
Anssi Saarimaki
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Nokia Oyj
Original Assignee
Nokia Oyj
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
Application filed by Nokia Oyj filed Critical Nokia Oyj
Priority to US11/729,750 priority Critical patent/US20080130639A1/en
Assigned to NOKIA CORPORATION reassignment NOKIA CORPORATION ASSIGNMENT OF ASSIGNORS INTEREST (SEE DOCUMENT FOR DETAILS). Assignors: HELANDER, MIKA, KOISTINEN, KIRMO, LUIRO, VESA, PULKKINEN, MARKKU, SAARIMAKI, ANSSI, COSTA-REQUENA, JOSE, ESPIGARES, INMACULADA
Publication of US20080130639A1 publication Critical patent/US20080130639A1/en
Abandoned legal-status Critical Current

Links

Images

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/104Peer-to-peer [P2P] networks
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F8/00Arrangements for software engineering
    • G06F8/60Software deployment
    • G06F8/65Updates
    • 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/104Peer-to-peer [P2P] networks
    • H04L67/1061Peer-to-peer [P2P] networks using node-based peer discovery mechanisms
    • H04L67/1068Discovery involving direct consultation or announcement among potential requesting and potential source peers
    • 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/51Discovery or management thereof, e.g. service location protocol [SLP] or web services
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04WWIRELESS COMMUNICATION NETWORKS
    • H04W8/00Network data management
    • H04W8/22Processing or transfer of terminal data, e.g. status or physical capabilities
    • H04W8/24Transfer of terminal data
    • H04W8/245Transfer of terminal data from a network towards a terminal
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04WWIRELESS COMMUNICATION NETWORKS
    • H04W84/00Network topologies
    • H04W84/18Self-organising networks, e.g. ad-hoc networks or sensor networks

Definitions

  • This invention relates in general to computing devices, and more particularly to providing software update and configuration services via ad-hoc, peer-to-peer networks and online services.
  • UDP Universal Plug and PlayTM
  • UPnP defines an architecture for pervasive, peer-to-peer networking between all types of consumer electronics, including intelligent appliances, wireless devices, and PCs of all form factors.
  • UPnP technologies provide a way for disparate processing devices to exchange data via proximity or ad-hoc networks.
  • the UPnP framework is designed to bring easy-to-use, flexible, standards-based connectivity to ad-hoc or unmanaged networks whether in the home, in a small business, public spaces, or attached to the Internet.
  • UPnP technologies provide a distributed, open networking architecture that leverages TCP/IP and the Web technologies to enable seamless proximity networking in addition to control and data transfer among networked devices.
  • the UPnP Device Architecture is designed to support zero-configuration, “invisible” networking, and automatic discovery for a breadth of device categories from a wide range of vendors. This means a device can dynamically join a network, obtain an IP address, convey its capabilities, and learn about the presence and capabilities of other devices.
  • the UPnP specification includes standards for service discovery, and a number of particular device control protocols (DCP) are published by the UPnP Forum. These published DCPs standardize particular types of UPnP network functions. For example, some DCPs define functions used to render audio and video via a UPnP network. Various contributors can implement these and other UPnP device and service descriptions, thus creating a way to easily connect devices into a functioning network. It is the goal of UPnP to enable home electronics to seamlessly interact, thus furthering the usefulness of such devices.
  • the UPnP standard includes standards for service discovery, and is mainly targeted for proximity or ad-hoc networks. Various contributors publish UPnP device and service descriptions, thus creating a way to easily connect devices and simplifying the implementation of networks. UPnP is designed to work in many environments, including the home, businesses, public spaces, and on devices attached to the Internet. The UPnP standard is an open architecture that leverages Web technologies and is designed to provide ad-hoc networking and distributed computing.
  • UPnP and related protocols were developed primarily to allow consumers to easily assemble a home network, and to access and control devices not normally associated with networked computing.
  • the flexible nature of UPnP means that it can be implemented anywhere, and can be adapted to uses not foreseen by the originators of the network framework.
  • peer-to-peer technologies such as UPnP become more ubiquitous, these technologies may be used for many other purposes besides facilitating control of diverse consumer devices. The present disclosure provides an example of such adaptations.
  • a method involves discovering, via an ad-hoc peer-to-peer network, a peer-to-peer software update service using a service discovery protocol of the ad-hoc peer-to-peer network.
  • the peer-to-peer software update service is offered by a peer device and facilitates updates of programs via the ad-hoc, peer-to-peer network.
  • an update is selected that is applicable to a program of a first device of the ad-hoc peer-to-peer network.
  • the update is sent to the first device and the program of the first device is modified using the update.
  • the method may further involve sending, to the peer device, at least one query for a description of the peer-to-peer software update service in response to discovering the peer-to-peer software update service.
  • a description of the peer-to-peer update service is received in response the query, and the update is selected based on the description.
  • the at least one query may include a description of a computer platform of the target device used for filtering a result returned in response to the query and/or a software category used for filtering a result returned in response to the query.
  • the discovery of the peer-to-peer software update service and the selection of the update are performed by a second device of the ad-hoc, peer-to-peer network, and the second device initiates sending of the update to the first device and modifying of the program of the first device using the update.
  • the ad-hoc, peer-to-peer network may include a Universal Plug and Play network.
  • modifying the program on the first device may involve adding a capability to the program.
  • adding the capability involves adding the capability for the program to access a service of the ad-hoc, peer-to-peer network.
  • selection of the update may be initiated by the first device in response to the first device detecting the service being advertised on the ad-hoc peer-to-peer network.
  • modifying the program on the first device involves reconfiguring the program.
  • modifying the program involves modifying the program to receive a handover of a data session currently being conducted by a second device on the ad-hoc peer-to-peer network.
  • modifying the program may involve a) providing parameters of the data session to the program of the first device, b) adding a capability to the program that enables the program to engage in the data session, and/or c) updating a presence of the user by one of the first and second devices based on the handover of the data session.
  • a method involves advertising, via a peer device coupled to an ad-hoc, peer to peer network, a peer-to-peer software update service using a service discovery protocol of the ad-hoc peer-to-peer network.
  • the peer-to-peer software update service facilitates updating of programs to other entities of the ad-hoc peer-to-peer network.
  • the peer device receives at least one query for a description of the peer-to-peer software update service.
  • transmission of an update to a target device is facilitated via the peer-to-peer software update service.
  • the update is used to modify a program on the target device.
  • the method involves monitoring an external network update service that is independent of the ad-hoc peer to peer network and configuring the peer device to provide updates of the external network update service via the peer-to-peer software update service.
  • the method may further involve forwarding discovery from the peer-to-peer to software update service to an external repository service outside the ad-hoc, peer to peer network.
  • the ad-hoc, peer-to-peer network may include a Universal Plug and Play network.
  • the at least one query may includes a) a description of a computer platform of the target device used for filtering a result returned in response to the query and/or b) a software category used for filtering a result returned in response to the query.
  • an apparatus in another embodiment, includes a network interface capable of communicating via an ad-hoc peer-to-peer network and a processor coupled to the network interface.
  • a peer-to-peer software update service is offered by a peer device and facilitates updating programs via the ad-hoc peer-to-peer network.
  • a memory storage device is coupled to the processor and includes instructions that cause the processor to: a) discover the peer-to-peer software update service using a service discovery protocol of the ad-hoc peer-to-peer network; b) select an update that is compatible with a target program in response to the discovery of the peer-to-peer software update service; c) facilitate sending the update to a device of the ad-hoc peer-to-peer network that executes the target program; and d) facilitate modifying the target program using the update.
  • the apparatus is the device that executes the target program.
  • the instructions further cause the processor to advertise, via the service discovery protocol, a locally provided peer-to-peer software update service that facilitates updating programs via the ad-hoc, peer-to-peer network, and facilitate transferring a second update to a target device via the locally provided peer-to-peer software update service, wherein the second update is used to modify a program of the target device.
  • the instructions may further cause the processor to monitor an external network update service that is independent of the ad-hoc peer-to-peer network and offer updates of the external network update service via the locally provided peer-to-peer software update service.
  • the target program is capable of engaging in user-interactive data sessions, and modifying the target program involves modifying the program to receive a handover of a data session currently being conducted by a second device on the ad-hoc peer-to-peer network.
  • a computer-readable storage medium has instructions which are executable by an apparatus capable of being coupled to an ad-hoc peer-to-peer network.
  • a peer-to-peer software update service is offered by a peer device and facilitates updates of programs via the ad-hoc, peer-to-peer network.
  • the instructions are executable by the apparatus for performing steps that include a) discovering a peer-to-peer software update service using a service discovery protocol of the ad-hoc peer-to-peer network; b) selecting, in response to discovering the peer-to-peer software update service, an update that is applicable to a target program; c) facilitate sending the update to a device of the ad-hoc peer-to-peer network that executes the target program; and d) facilitate modifying the target program using the update.
  • the steps further include e) offering a locally provided peer-to-peer software update service that facilitates updating of programs via the ad-hoc, peer to peer network; f) advertising the locally provided, peer-to-peer software update service using a service discovery protocol of the ad-hoc peer-to-peer network; g) facilitating transmission of a second update to a target device via the peer-to-peer software update service in response to advertising the locally provided, peer-to-peer software update service.
  • a system in another embodiment, includes means for advertising a peer-to-peer software update service via a service discovery protocol of an ad-hoc peer-to-peer network.
  • the generic peer-to-peer software update service facilitates peers of the network to update programs of the peers.
  • the system further includes means for discovering the peer-to-peer software update service via the ad-hoc peer to peer network, means for facilitating transmission of an update to a peer device via the peer-to-peer software update service, and means for modifying a program of the peer device using the update.
  • the system further includes means for monitoring an external network update service that is independent of the ad-hoc peer-to-peer network and means for offering updates of the external network update service via the peer-to-peer software update service.
  • the system may further include means for modifying the program of the peer device using the update to receive a handover of a data session currently being conducted by another device on the ad-hoc peer-to-peer network.
  • the system may include means for updating a presence of a user of the peer device based on the handover of the data session.
  • the system further includes means for forwarding discovery from the peer-to-peer to software update service to an external repository service outside the ad-hoc, peer to peer network.
  • FIG. 1 is a block diagram illustrating a system according to embodiments of the invention
  • FIG. 2 is a block diagram illustrating an implementation of a software update service according to embodiments of the invention.
  • FIG. 3 is a block diagram illustrating a UPnP software update and configuration architecture according to embodiments of the invention.
  • FIG. 4 is a sequence diagram of a session handover facilitated by an update service according to an embodiment of the invention.
  • FIG. 5 is a block diagram of a mobile device according to embodiments of the invention.
  • FIG. 6 is a flowchart illustrating a procedure for accessing a software update service via ad-hoc, peer-to-peer networks according to embodiments of the invention
  • FIG. 7 is a flowchart illustrating a procedure for providing a software update service via ad-hoc, peer-to-peer networks according to embodiments of the invention.
  • FIG. 8 is a flowchart illustrating a procedure for handing over a data session via a software update service of an ad-hoc, peer-to-peer networks according to embodiments of the invention.
  • the present invention relates to methods, systems, and apparatus that enable software to be configured and/or updated via ad-hoc, peer-to-peer networks or online software repository service.
  • Such networks are considered to be “ad-hoc” because the network may be automatically self-formed by peer nodes that discover each other's existence and capabilities automatically. Each peer may be willing to forward data (and provide other peer-to-peer services) for other peers, and so the determination of which nodes provide a particular service is made dynamically based on the network connectivity.
  • This is in contrast to older network technologies in which some designated nodes, usually with custom infrastructure hardware (e.g., servers, routers, hubs, firewalls, and switches) perform designated tasks or services.
  • Minimal configuration and quick deployment make ad hoc networks suitable for emergency situations like emergencies, where some infrastructure elements may not be relied upon.
  • Such ad-hoc networks are also useful in consumer environments, because they free the consumer from having to understand and configure the function of various infrastructure devices.
  • UPnP uses the Simple Service Discovery Protocol (SSDP) for service discovery, and is generally built on top of Internet Protocol (IP) based networks.
  • IP Internet Protocol
  • SLP Service Location Protocol
  • Zeroconf Zeroconf
  • JiniTM are protocols that provide functions similar to those of UPnP.
  • the UPnP framework includes several layers that cover the addressing, discovering, and control functions associated with connecting to and using services of the network.
  • the UPnP Device Architecture (UDA) consists of the layer that takes care of the basic addressing and networking functionality.
  • UDA UPnP Device Architecture
  • UPnP define additional services such as audio-video (AV), Remote User Interface (UI), Printing, etc.
  • UPnP is designed to be flexible, and as a result UPnP applications are constantly evolving. This evolution occurs at all levels, from the low-level network protocols and interfaces to the high-level applications that utilize UPnP.
  • An example of a low-level network update includes updating the UDA and UPnP services by adding support for newer network protocols such as IPv6.
  • Another network update may include updating the Web service protocols upon which discovery and other functions are based.
  • An example of a high level service that may be changed (which may still require changes be made to the UDA) is making a transition from printing service to enhanced printing service.
  • a device may need to update a protocol, service, UDA, or other software in order to interoperate with other devices.
  • the UPnP framework has no automatic way of doing this. The user has to manually install the new version of the software or service into the device. Without such capability, the UPnP framework may fall short of its promise of providing a seamless and automatic way for devices to interoperate. This is particularly true for devices and services that do not have a substantial user interface, such as special purpose consumer devices (e.g., appliances, control modules).
  • updating the software may require physically accessing the device and using a non-UPnP interface to do the update (e.g., by connecting the device to a computer with a cable and updating the device via a specialized update program).
  • Existing device software may be updated and/or reconfigured for such purposes as fixing bugs and improving performance. It may also be desirable to extend the functionality of devices to provide a service for which the device was not originally provisioned. In particular, such extensions are particularly useful if they can be provided on demand, such as when a user or other network device advertises or attempts to use the service. For example, a sizeable number of users depend on on-line services, like Instant Messaging (IM), email, web access, etc.
  • IM Instant Messaging
  • the online sessions of the Internet capable devices are limited to one device per session and there is no way to move the session from device to another without breaking the online connection. If the end user wants to move the session to another device (e.g.
  • the session must be closed and started again using another device. It would be beneficial for the end user if the online session (like chatting session in IM client) could be transparently moved from the device to another without interruption in online session.
  • the present disclosure describes an adaptation to ad-hoc, peer-to-peer, local networking technologies such as UPnP that allow devices to automatically update software and software configurations, regardless of the diversity of target devices and the diverse methodologies chosen by device vendors and/or software maintainers to obtain apply updates.
  • UPnP a standardized UPnP software configuration/update interface can become a commonly accessible service on the network usable by any type of device, regardless of vendor, operating platform, and proprietary update methodologies.
  • These adaptations to UPnP (or any other ad-hoc, peer-to-peer framework) may also be used for dynamic device update and configuration.
  • a new UPnP DCP may be defined for these automatic update and dynamic configuration functions. This new DCP may enable applications with equivalent functionalities to configure each other dynamically.
  • the automatic update and dynamic configuration may be implemented as UPnP upgrade/configuration service that will be discoverable as any of the existing services. Thus, for example, when a user receives an error indicating the device does not support the service the user was trying to access, the user or the device automatically can search for the UPnP upgrade service and initiate the automatic update of the UPnP UDA or services.
  • the “update” and/or “configuration” of software may involve any combination of discovery, transmission, verification, installation, purchase, activation, and maintenance of processor executable instructions between two or more computing arrangements.
  • the software may include any type of system or user software that can be executed on a data processing device.
  • One example of such software is a game that is made available for download via a distribution service of the peer-to-peer network. Such a game may also utilize the peer-to-peer network to advertise the use of the game, updates that enable a device to participate in the game, and/or to use the network to exchange game play data.
  • a generic software update and configuration service may be discovered and utilized via a single generic interface.
  • the updates and/or configurations may be made available to assist a device to access another service on the peer-to-peer network.
  • a peer device may discover a multiplayer game that is advertised via the discovery protocols of the network.
  • the multiplayer game may use the peer-to-peer network for both discovery and game play events.
  • the user device may discover and/or be automatically directed to a software distribution service that enables compatible software to be installed on the user device.
  • the user device may discover and/or be automatically directed to a software update service that enables the needed upgrades to be installed on the user device.
  • the user can seamlessly utilize theretofore unknown and uninstalled capabilities that arise on the peer-to-peer network, and seamlessly maintain those capabilities even when versions used by other devices change.
  • the ad-hoc, peer-to-peer network that enables the software distribution service may be a Universal Plug and Play (UPnP) network.
  • the UPnP framework includes two layers: a general-purpose UPnP device architecture (UDA) and device-specific device control protocols (DCP). There are currently about ten standardized DCPs for various device categories.
  • Software distribution via UPnP may involve creating a generic framework that enables users to search any available programs, such that the search would not be tied to any particular software type, device platform, licensing scheme or other categories typically associated with software distribution.
  • a software update and configuration DCP may be created that would define the services, actions and state variables that a “UPnP software update and configuration device” would expose to the UPnP network.
  • FIG. 1 a block diagram 100 illustrates an example system according to embodiments of the invention.
  • technologies such as UPnP are designed for operating within a limited space.
  • a physical boundary defines a local space 102 .
  • the dimensions of the local space 102 are generally confined by the underlying network protocols and media, as well as the scalability of the ad-hoc, peer-to-peer networking technologies used to facilitate software distribution.
  • other ad-hoc, peer-to-peer protocols may not be limited to any physical space limitations, and so the illustration of the local space 102 is for purposes of illustration, and not of limitation.
  • the space 102 may include at least one local network 104 that is capable of supporting communications with one or more user devices 106 .
  • the local network 104 may include any combination of data transmission media and protocols.
  • the network 104 may utilize wired or wireless data transmission media.
  • devices 106 on the local network 104 may various physical and data link layer protocols to intercommunicate, including, Ethernet, FDDI, PPP, ATM, HDLC, Fibre Channel, X-10, serial/parallel point-to-point connections, etc.
  • a number of higher layer network protocols may operate on the network 104 as well, including TCP/IP, UDP/IP, IPX, Appletalk, ICMP, ARP, SNMP, DNS, FTP, SMB, NetBEUI, etc.
  • the user devices 106 generally include some manner of data processing capabilities, and in particular at least some of the devices 106 are capable of obtaining and running software via the network 104 .
  • this software includes user or system programs that are capable of running on devices 106 having general-purpose data processing capabilities.
  • Such devices 106 usually include sufficient memory (e.g., random access memory) to load in new programs that selectably alter the behavior of the device.
  • Such devices 106 generally include (or at least have access to) some type of persistent data storage (e.g., hard disk, flash memory) that allow the devices 106 to retain changed or added software after the cycling of power.
  • the devices 106 may include an embedded system device 107 , which is a limited-purpose data processing arrangement that is not, in general, extendable by the addition of new programs.
  • the existing specific-purpose program contained in the embedded system 107 may be updated, modified, or replaced by a peer-to-peer software distribution service as described herein.
  • the embedded system 107 may include a “smart” UPnP appliance that performs a single function via the network 104 .
  • Such device 107 may be upgradeable (e.g., to enhance the specific function or fix bugs) by modifying flash memory that contains the operating instructions of the device 107 .
  • the device 107 may include instructions that allow it to utilize a UPnP software distribution service for obtaining and applying flash memory upgrades without requiring user intervention.
  • other networkable devices 106 include a gaming console 108 , mobile phone 109 , laptop computer 110 , personal digital assistant 112 , portable music player 114 , tablet computer 116 , personal computer 117 , entertainment center 120 , or any other device as represented by generic data processing device 118 .
  • consumer electronics devices such as the entertainment center 120 may include peer-to-peer network functionality.
  • the consumer electronics device 120 like the embedded system 107 , may have fixed functionality, such as being only capable of rendering sound or video. For example, such capabilities may be included in a flash memory program of the device 120 , and thus are relatively fixed for the life of the device 120 .
  • the device 120 may include general-purpose computer capabilities such as access to random access memory (RAM) and/or persistent storage, and as such may be able to add new programs to extend the device's capability. In either arrangement, the device 120 may be adaptable to use or provide some or all of the software distribution services described herein.
  • RAM random access memory
  • persistent storage persistent storage
  • the network 104 and its underlying protocols are designed to be generic and flexible so that many types of control or data processing functionality can be abstracted and offered as a service to other entities on the network 104 .
  • the local network 104 may support one or more protocols for ad-hoc, peer-to-peer service discovery and interoperability.
  • the local network 104 may be designed to service a limited physical region, as indicated by the boundary 102 .
  • the protocols used in such a local network 104 e.g., UPnP
  • many devices on the local network 104 may benefit from information services available via an external network, particularly the Internet 126 .
  • the UPnP specification defines a special service/function known as an Internet Gateway Device (IGD) 128 .
  • IGD Internet Gateway Device
  • the IGD function 128 can be provided by one or more of the devices 106 for purposes of provide routing and firewall services on behalf of others of the devices 106 of the local UPnP network 104 .
  • a dedicated gateway device may perform the IGD functions 128 on the UPnP network 104 , as well as providing traditional gateway/router functions for non-UPnP devices.
  • one or more of the user devices 106 have specialized components 130 that enable the devices 106 to distribute software programs and updates at least via the local network 104 .
  • This component 130 may be referred to alternately as a device or a service.
  • the concept of a “device” is a logical abstraction that does not necessarily have a one-to-one correspondence to a single piece of physical hardware.
  • the software distribution device/service 130 may be hosted by one or more of the network devices 106 and be advertised 132 according to service discovery protocols of the local peer-to-peer network 104 . For example, devices on a UPnP network advertise via SSDP, which uses XML UDP unicast and multicast packets to advertise 132 services.
  • a device 118 may initiate further negotiations (e.g., queries) to discover particulars about the service 130 . Assuming the device 118 is willing and able to utilize the software distribution service 130 , the device can request 134 a software distribution function via the service 130 .
  • One software distribution function that may be requested 134 by the device is a download 136 .
  • the download 136 may involve data transfer directly from the service 130 to the device 118 .
  • a download 138 may be facilitated by the service 130 , but the data transfer 138 occurs from another device 117 in the local network 104 .
  • the device 117 from which the download 138 originates may or may not be capable of communicating using the formats and protocols of the service 130 .
  • the device 117 may be in a sleep mode, and the service/device 130 acts as a proxy that processes queries and other transactions, but causes the download 138 to originate from the device 117 after causing the device 117 to wake up.
  • the device 117 may use an “out-of-band”mechanism to transfer data.
  • the term “out-of-band” generally refers to the use of one or more protocols that are not part of the protocols of the ad-hoc peer-to-peer network 104 .
  • FTP File Transfer Protocol
  • UPnP UPnP protocol stack
  • in-band uses at least a minimum set of the protocols defined for devices 106 to engage in ad-hoc, peer-to-peer interactions via the network 104 .
  • a download 140 may originate from an outside network such as the Internet 126 , and may be facilitated by one or more local components, including the software distribution service 130 and the IGD 128 . Where the download originates from outside the network, an entity 142 providing the download 140 may not appear as a logical device on the local network 104 . In one arrangement, a device such as the IGD 128 may act as a proxy for the software downloads, so that it appears that the IGD 128 is providing the download, even though the data originates from an external entity 142 .
  • the external entity 142 may include a single server or multiple, distributed hosts that provide a partial download using peer-to-peer technologies such as BitTorrent and Gnutella. Local entities 130 , 117 may also participate in similar distributed software distribution.
  • the local service 130 may act as a proxy for the external entity 142 .
  • the external entity generates its own advertisement 141 , which may be broadcast, multicast, or unicast to the service 130 (e.g., by way of the IGD 128 ).
  • This advertisement 141 may be provided directly to the network by way of the IGD 128 , or as illustrated, combined with the advertisements of the local update/distribution service 130 .
  • requests/queries 134 of the local network 104 may be sent directly to the external service 142 , such as directly via the IGD 128 , or indirectly by way of the local service 130 , which then forwards a request 143 to the external service.
  • the system enables forwarding discovery from the peer-to-peer to software update service 130 and/or the local network 104 to an external repository service 142 outside the ad-hoc, peer to peer network 104 . Thereafter, services such as downloading 136 , 140 can be utilized as described elsewhere herein.
  • Downloading is only one example of a software distribution function that may be facilitated by the device/service 130 .
  • Other functions are illustrated as the setup/configure/activate function 144 .
  • These functions 144 may include any actions other than downloading that cause the instructions to operate correctly on a particular device.
  • configuration may include adding and modifying files or other data to the target device. This configuration data may be used by an installer program, be read from and written to by programs to maintain states, used to store log data, etc.
  • the functions 144 may also involve placing of files and other persistent objects in the correct places of a file system hierarchy, patching of binaries, activation of protected/encrypted code, making system file/registry changes, communication with existing software components, etc.
  • the service 130 may directly perform the function 144 , or may facilitate functions between the client 118 and another entity.
  • An example of this is the illustrated activation 146 , which performed via an entity 142 that is outside the local environment 102 (e.g. in an online software repository service).
  • setup, configuration and/or update data may also originate from the external entity 142 .
  • the external entity 142 may be, for example, a software update server of a device manufacturer or other entity.
  • Examples of these types of Internet-based update facilities 142 include automatic updates facilities included in operating systems such as WindowsTM and LinuxTM, and automatic virus definition updates used by virus scanning programs. It should be noted that these update features are typically limited to updating specific components, and are not generally applicable to a wide range of consumer device. For example, even though the Windows UpdateTM feature automatically detects and downloads upgrades to the operating system, by default it does not download updates to the application programs, even those of the same vendor.
  • the upgrades can be updates in specific functionality of an applications, such as new UPnP actions on an existing service like schedule recording, printing or the basic connectivity in the device architecture (DA).
  • DA device architecture
  • Linux distribution such as Ubuntu may automatically detect and apply updates to the OS and application programs, these updates are limited to those programs supported by the distribution. In these cases, independent application developers must provide alternate update mechanisms to ensure their products get updated.
  • the illustrated service 130 may be generally applicable to provide updates to any device on the network 104 .
  • Proprietary update mechanisms implemented on individual local devices 106 may be extended to include a UPnP update interface. Similar adaptations can be made for external update sites 142 . Even though external update sites 142 may have custom or proprietary interfaces, the service 130 may be made modular, so that a manufacturer can install a plug-in so that any updates offered by specialized external update servers 142 can applied via a common UPnP interface locally.
  • the update service 130 itself may be automatically updateable to add these extensions, such as by the use of plug-ins that can extend the functionality of existing programs.
  • the new device can register with the update service 130 , the update service 130 can automatically discover any extensions needed to interface with the remote server 142 and apply those extensions. Thereafter the service 130 can ensure that the new device is kept up to date, and can also be used to extend the functionality of the new device if such new functionality is requested and the device is so capable.
  • the update service 130 may be able to automatically cache update and configuration data and redistribute updates as necessary, thus reducing bandwidth at the external server 142 .
  • Such caching is particularly useful where a single update or configuration is applicable to a number of devices.
  • a home network may include a number of identical devices, such as electrical controllers for lights, alarm systems, monitoring systems, etc.
  • different devices may support a common software component.
  • many devices may support running platform independent program modules (e.g., Java Applets or Midlets) and some functions, such as time synchronization or power management, may be common to different types of devices. These components can be added and updated by using objects cached by the service 130 .
  • the illustrated system 100 holds many advantages over traditional ways of distributing and maintaining software.
  • the user must first have knowledge of the particular software, find the downloads of the software for a particular computing platform, and install the software.
  • the software involves interaction with other people or devices (e.g., in a UPnP environment) the user may also have to seek out a device, user, or community in which to engage in the software activity.
  • the existence of the target activity and the existence of other people and devices that are willing to engage in the activity may be determined by just performing service discovery via the ad-hoc networks. In many situations, the users may be unable to engage in the targeted activity without additional software.
  • the software that facilitates the activity could be automatically downloaded on a trial or permanent basis from others in the local environment or elsewhere. This allows users to be more discerning about which software that they wish to install on their system. The decisions may therefore be based on the actual usage of such activities in environments frequented by the user, rather than based on possibly outdated or inaccurate data obtained via public forums such as the Web.
  • Two mobile terminals 202 , 204 are coupled via an ad-hoc, peer-to-peer network 206 .
  • mobile terminal 202 includes a control point/client 208 and a terminal 204 includes an update server 210 that may be configured to update and/or configure software on mobile terminals 202 , 204 , or any other device of the network 206 .
  • both terminals 202 , 204 may contain any combination of respective control point/client 208 and server components 210 , although in this example only the illustrated components 208 , 210 are being utilized on respective terminals 202 , 204 .
  • the terminal 204 may be acting as a UPnP device that is offering its update services 210 to other UPnP devices on the network 206 .
  • the terminal 204 may provide an eXtensible Markup Language (XML) device description 212 in response to queries received via the network 206 .
  • XML eXtensible Markup Language
  • the example device description 212 includes variables that describe the device itself, such as the device type 214 .
  • This implementation defines new UPnP DCP definition for a UPnP Software configuration DCP root device 214 and may include optional embedded devices.
  • a UPnP device may also provide one or more services, and the illustrated device description 212 shows an example UPnP SWConfigurationService 216 .
  • the service 216 may be associated with an action 218 , GetDeviceType. GetDeviceType returns the type of the device, which can be, for example, mobile phone, PC, PDA, television etc. Devices may use this information for determining which device has higher priority.
  • the device 214 , service 216 , and action 218 may be defined as a minimum mandatory requirement for any device providing this type of network function 210 .
  • the device type used with the GetDeviceType action 218 may also include a descriptor of the device platform.
  • a “computing platform” is sometimes defined as the combination of central processing unit (CPU) and operating system (OS) used by a device.
  • OS operating system
  • an Intel® x86 compatible CPU may run different OSes, such as Windows®, Linux®, OS X®, Free BSD, etc.
  • OS operating system
  • all programs that run natively on an x86 CPU will use the same instruction set, the programs need particular arrangements of instructions and data in order to be compatible with a particular OS. In some cases, a program may even rely on a particular patch level of the OS, and will not run correctly on incompatible patch levels.
  • the Linux OS has been compiled to run on a wide variety of different CPUs. However, a program compiled for Linux x86, for example, will have to be recompiled to run on a different CPU, e.g., PowerPC.
  • an emulation program creates a virtual processor and OS that allows a program to run even if it was compiled for a different OS and CPU, albeit with significant performance degradation.
  • Other adaptations such as the Wine Project, allow programs that are compiled for a particular CPU to run in a different operating system on the same CPU.
  • These adaptations emulate the application program interface (API) of another operating system, but because the program was compiled for the same CPU type, the program instructions can still be run natively on the CPU without any translation.
  • Still other adaptations involve distributing programs that do not utilize CPU specific instructions at all.
  • One form of these adaptations are scripting languages such as Perl, Python, Basic, etc., which utilize programs written in ASCII text, and the text is converted to machine language “on-the-fly” at run-time.
  • Other adaptations such as JavaTM or MicrosoftTM .NET, use binary programs that are designed to run in platform independent runtime environments. Programs compatible with the run-time environment can be compiled once and thereafter run on any platform that has the run-time environment installed.
  • the directory service 216 may have to take into account the platform of the requesting device when processing directory requests. Even when the programs are platform independent (e.g., Java) there may be version incompatibilities that require considering the particular runtime environments of the requesting device 208 .
  • Other issues that the directory service 216 may need to take into account when distributing software include the capacity of the requesting terminal 202 , 204 (e.g., memory, processor speed, graphics capability, required user input devices), licensing issues, software categories, content restrictions (e.g., parental controls, corporate IT policies), other software versions (e.g., UPnP version, UPnP DA, UPnP service version), OS patch level, etc.
  • the software configuration device 214 can provide a list of available updates that satisfy the criteria.
  • the list could be “flat,” or be arranged in a hierarchy.
  • the client device 202 may utilize a control point 208 that is specially adapted for controlling the software configuration device 214 , as well as any other embedded devices and associated services. Each embedded device may also have own control point for controlling other similar applications.
  • the update server 210 may be hosted in any home device, and the hosting apparatus 204 may store new software data that is transferred to other devices in order to perform upgrades.
  • the server 210 can store the new software data in an upgrade repository 219 that is locally situated, either within the apparatus 204 or elsewhere on the local network 206 .
  • the repository 219 may be part of an external source, such as a manufacturer's site where the updates are stored for generic, public download.
  • the client device/control point 208 will interact with the upgrade server 210 and will check the list of services and available versions (e.g., version of UPnP Device Architecture) and will compare them with the ones existing in the device 202 . If there is a difference in the versioning number of the service 210 , the client 208 will initiate the upgrade.
  • the client 208 may identify updates automatically or at the prompting of a user. For example, the client 208 may query any local update services 210 at a predetermined interval, such as once per day. In another scenario, the client 208 may determine that updates or upgrades are needed when the user first tries to use an unavailable or non-activated service on the apparatus 202 . This scenario is shown in screen 222 , which is an example display of a video player application. The user has attempted to play a video on the apparatus 202 , but the player does not have the needed codec to process a particular video file or stream. The screen 222 includes a prompt 221 that requests whether the user wishes to attempt an update.
  • control point/client 208 may access one or more update servers 210 to obtain the upgrade.
  • the service 210 may access one or more upgrade repositories 219 to find the needed update. If available updates are found, the user may be notified, such as via screen 222 . If multiple compatible updates are found, the user may have the option of selecting one based on factors such as trust placed in the offer/offeror, cost, perceived quality, licensing, location/bandwidth, etc.
  • the server 210 will facilitate transferring update data to the terminal 202 (such as via a separate download manager), thereby enabling the selected update to be installed.
  • the server 210 may be configured to facilitate downloads of configurations and/or executable images, either from the terminal 204 itself or from a third party.
  • the server 210 may provide authentication that allows the other terminal 202 to access a Web download site and obtain an update or configuration.
  • the serving terminal 204 has the needed update files stored in the device's local file system.
  • the server 210 provides a link to the installation files (e.g., a Uniform Resource Identifier, or URI) and receiving client 208 can download the files using a UPnP content directory service DCP.
  • the serving terminal 204 has a lightweight run-time object (Java or web browser scripts) stored in the terminal's file system.
  • the server 210 provides an HTTP link to the run-time files, and receiving client 208 can download them using a UPnP content directory service DCP.
  • server 210 provides an Internet HTTP URI to the update files to the client 208 , and the device 202 can download them using suitable program.
  • software updates can be distributed rather widely and easily.
  • software vendors may be concerned about distributing updates to users who may not have obtained the software legally.
  • software contains digital rights managements (DRM) feature that prevent software modifications under certain circumstances.
  • DRM digital rights managements
  • the update service 210 may be required to process certain software updates differently, depending on the licensing and/or DRM associated with the software and/or restrictions place on the vendors.
  • DRM digital rights managements
  • the vendor may want to validate whether the target program was obtained legally before an update is given out.
  • the vendor may want to limit third-party modifications to a program, such as programs that illicitly enable certain features by modifying binary executables.
  • Implementing rights management into a software distribution service may address concerns related to illegal distribution of some types of software. Another concern that may need to be addressed in implementing the distribution service is that of security. For example, certain types of software (often referred to as “malware”) may become installed unintentionally on a user device. In some cases, malware may consume resources for unwelcome or nefarious purposes, intentionally damage data and/or hardware, attempt to access and divulge private data, etc. In order to prevent the spread of malicious or unwanted software, the underlying platform may implement security measures, such as only allowing digitally signed and authenticated software to be installed.
  • the upgrade server 210 may include security features to ensure updates are authenticated and validated.
  • the updates and configurations may be secured using security mechanisms of the local network, e.g., UPnP security mechanisms.
  • independent verification and authentication may be performed, such as by using pre/shared certificates to authenticate the device 208 and any servers 210 that provide the updates
  • Security measures may be implemented in both the server 210 and/or client 208 .
  • the system may require that any software be authenticated by a trusted source before the client machine 202 installs it.
  • a user interface of the control point 208 may require user confirmation before any software is installed.
  • the device description 212 may include specific services related to both security and rights management.
  • the client/control point 208 may include provisions to ensure any distribution server 210 is to be trusted. For example, transactions with the server 210 may involve exchanging authentication keys that can be independently verified.
  • An a priori configuration e.g., shared encryption key, manual authorization
  • FIG. 3 a block diagram 300 illustrates an example implementation of a UPnP update and configuration architecture according to an embodiment of the invention.
  • the diagram 300 includes two compatible peer devices 302 , 304 that may interact via a UPnP network 306 .
  • the devices 302 , 304 typically represent separate hardware components; however there may be some arrangements where the devices 302 , 304 are virtual devices that share hardware with each other and with other components of the network 306 .
  • the device 302 , 304 may contain compatible functional components 308 , 310 , 312 , 314 , 338 , 340 , 342 , 344 that allow each device 302 , 304 to facilitate software update and configuration for others (e.g., act as a server) and find/use updates and configurations for itself (e.g., act as a client). It will be appreciated that it is not necessary for the devices 302 , 304 to each include all of the listed functionality to form a usable system. For example, some devices may be configured to act only as clients, such as by disabling update server functionality or by not having such functionality installed to begin with.
  • peer device 302 may be comprised of a handheld game controller acting as the UPnP control point 338 , and this controller communicates via Bluetooth with a cellular phone acting as a UPnP client 340 .
  • the device 304 includes a UPnP software update control point 308 , a UPnP software update client 310 , and a UPnP software update server 312 .
  • Each of the components 308 , 310 , 312 are configured to communicate via UPnP protocols, and as such will implement the UPnP Device Architecture (UDA).
  • UDA UPnP Device Architecture
  • DCP UPnP software update device control protocol
  • DCP UPnP software update device control protocol
  • the UPnP software distribution control point 308 may provide functions similar to other UPnP control points, such as the UPnP audio video (AV) control point.
  • the control point 308 includes the user interface and application logic that allows a user to discover the services of other software update devices on the UPnP network 306 .
  • the UPnP update control point 308 may also provide other control functions for activities associated with finding, selecting, buying, downloading, configuring, and/or running updates.
  • the control point 308 can invoke the UPnP software update DCP to perform these actions in order to get a desired response.
  • the software update client device 310 is a UPnP device that provides UPnP interface for connecting to software update servers.
  • the client device 310 may operate in response to operations of the control point 308 , other user interface devices, or in response to other, non-user initiated events.
  • the client device 310 interacts with software update servers 312 , 342 to at least initiate downloads of update data, and may also handle the other actions such as configuration and activation needed to apply those updates.
  • the UPnP software distribution server 312 acts as a central point for accessing specific updates 314 that are available via the device 304 . More specifically, the server 312 is a UPnP device with the “software update” service exposing the available updates 314 . The server device 312 may also handle the actions and maintain the state variables associated with installing the updates 314 . The server device 312 may use a registry or some other mechanism for tracking and categorizing various updates 314 that are available via the peer device 304 . Generally, those updates may be applied to programs 317 .
  • the programs 317 may include UPnP-capable and non-UPnP-capable programs.
  • the distribution of the updates 314 can be integrated with the discovery of UPnP services, including UPnP services hosted by a device 304 that also stores updates or helper programs for enabling other devices to use the service.
  • the device 304 can act as both a provider of the service and a provider of software updates that enable use of that service.
  • the software update server 312 may be implemented similarly to the UPnP Content Directory Service (CDS).
  • CDS is a UPnP Audio Video (AV) service template, identified as “urn:schemas-upnp-org:service:ContentDirectory:1.”
  • the CDS is a server-side interface used for accessing media storage devices.
  • the CDS provides lookup functions such as “browse” and “search” that allows devices to discover individual data objects stored on the media servers and access that content.
  • the existing CDS interface may be extended to include software update repositories.
  • the software update server 312 may use a service template that is modeled after the CDS, but includes features unique to update distribution, including features that address rights management and security concerns.
  • a standard AV Control Point component may be used (or adapted) to view and select software made available via the system 300 .
  • a standard AV Control Point sends data from a media storage device to an AV Media Renderer device, where the media is rendered and (presumably) perceived by a user.
  • the software updates distributed by the system 300 are not necessarily “rendered” to a user, but are generally installed on a computer.
  • components such as the clients 310 , 340 may be adapted to resemble a UPnP Media Renderer.
  • software update components could be transferred via the network 306 to an update “consumer” in a manner similar to the sending of digital media from a media storage device to a rendering device, the rendering device being the end “consumer” of the media.
  • the operations of the software update framework 300 can be made compatible with some or all of the existing UPnP AV framework.
  • the components 308 , 310 , 312 , 314 , 338 , 340 , 342 , 344 may interact for such purposes as service discovery 316 , cataloging 318 , query/search 320 , as well as initiation 322 , download 324 and configuration 326 of updates.
  • runtime data 328 of the installed updates may be communicated between components 308 , 310 , 312 , 314 , 338 , 340 , 342 , 344 .
  • an update may signal 328 a success at runtime so that programs involved in the installation can terminate and log the installation as a success.
  • This type of signal 328 may also be used to hand over a data session where the handover is preceded by an update or configuration that enables the handover to occur.
  • data may also be communicated by out-of-band mechanisms 329 , either via a network or via interprocess communication within the devices 302 , 304 .
  • out of band mechanisms may include using dedicated network connections, alternate network access mechanisms and media, streaming data, multicast data, writing to a remote database, etc.
  • the downloading function 324 may involve downloads directly between the devices 302 , 304 and/or by using the devices 302 , 304 as proxies.
  • out-of-band upload/download mechanisms 330 , 332 may also be used, such as for accessing updates from a database 334 and/or adding updates to the database 334 .
  • Another illustrated out-of-band upload/download mechanism includes distributed uploads/downloads 356 , 358 which generally allows downloads from multiple peer devices 360 at the same time. Technologies such as BitTorrent allow this type of distributed uploads/download 356 , 358 by distributing a file that contains metadata about the files to be shared, and about a server (or “tracker”) that coordinates the file distribution. The tracker assists the downloading device in discovering the peers 360 that can download a portion of the requested data. It will be appreciated that the peers 360 may include any combination of hosts within and outside of the UPnP network 306 , including Internet hosts.
  • the distributed uploads/downloads 356 , 358 may be enabled using entirely UPnP network protocols.
  • the UPnP update clients 310 , 340 and servers 312 , 342 may be extended to act as BitTorrent-type peers, without requiring the use of a tracker.
  • Such UPnP distribution would only require the querying of devices on the local UPnP network to discover distributed download devices/services, although the availability of updates in such a case could be extended to entities outside the network by the use of a proxy, such as by configuring a UPnP IGD (see FIG. 1 ) as a proxy.
  • software updates may be found and installed automatically using the discovery and data transfer protocols of the ad-hoc network.
  • a user may actively search for particular updates, or the user may be advised of the existence of an update or upgrade when the user tries to access an unavailable feature.
  • the updates can be used to continue a real-time data session by allowing the session to be transferred between devices.
  • FIG. 4 a sequence diagram illustrates an example use of software update and configuration services to help maintain a session according to an embodiment of the invention.
  • a mobile device 400 and a PC 402 are capable of communicating via an ad-hoc, peer-to-peer network, such as a UPnP network.
  • software update and configuration services are used to hand over an instant messaging (IM) session from the mobile device 400 to the PC.
  • the mobile device 400 includes an IM client 404 that facilitates the IM session.
  • the mobile device 400 also includes an update control point 406 that can be used to control aspects of an update server 408 .
  • the control point 406 and server 408 may be UPnP components as described in other embodiments, or may use an alternate ad-hoc, peer-to-peer framework.
  • the server 408 may be located in the mobile device 400 , the PC 402 , or any other network peer.
  • the advantage of ad-hoc, peer-to-peer protocols is that the end users of the services do not depend on the service being located at any predetermined location, as long as such services can eventually be discovered by use of the network protocols.
  • the PC 402 also includes an update client component 410 .
  • This client 410 may be integrated with a control point-like component, or be separate module.
  • the PC 402 also includes an IM client 412 that is capable of engaging in IM sessions, and is capable of being configured or updated to receive a handover of a session 414 with which the mobile client 404 is currently engaging.
  • the user of the mobile device 400 is engaging in the session 414 outside the home, and the session 414 continues as the user arrives home.
  • the IM client 404 (or other component) detects the existence of the network, here by receiving service discovery announcements 416 , 418 from the update server 408 .
  • the illustrated service discovery messages 416 , 418 respectively advertise the services of the IM client 412 and the update server 408 .
  • the full process of service discovery will often involve additional data exchanges besides these initial messages 416 , 418 , and such additional messages are not illustrated.
  • the particulars of how service discovery are particular to different ad-hoc peer-to-peer frameworks, and the present disclosure is not dependent on any particular form of service discovery.
  • the mobile device 401 may become aware of the local ad-hoc network besides the illustrated messages 416 , 418 .
  • another program (not shown) may occasionally test network connections in order to determine the existence of a desired ad-hoc network. That program may query and enumerate the available services, and based on this determination, signal to the IM client 404 that new ad-hoc services are available.
  • the PC 402 may not initially have the IM client 412 installed. Nonetheless, the mobile device 400 may be able to conclude that the PC 402 is configurable or upgradeable to support IM sessions.
  • the PC 402 may advertise a UPnP DCP called “MobileTelephony” that is currently configured to only handle Voice over Internet Protocol (VoIP) sessions.
  • the mobile device 400 discovers the MobileTelephony DCP and further determines that the PC 402 includes the software update client 410 (e.g., via discovery advertisement 418 ) that can automatically upgrade the MobileTelephony DCP to include IM support.
  • the user After the user arrives to home and the mobile device 400 determines the existence of the PC IM client 412 , the user receives a notification 420 via the device's user interface.
  • the notification 420 informs the user that the chat session can be continued using the PC 402 .
  • an update notification 422 , 424 , 426 , 428 is sent to the PC's IM client 412 by way of the update components 406 , 408 , 410 .
  • the PC IM client 412 receives the notification 428 , it is informed that a device 400 with a compatible application 404 and user preferences have arrived on the same network as the PC 402 . Further, this notification 428 informs the IM client 412 , based on the received preferences, that a handover of the session is requested.
  • the PC IM client application 412 may query 430 the end user to verify that the current IM session can be transferred to the PC 402 . Assuming that the user accepts the dialog 430 , the PC IM client 412 receives a handover of the IM session 432 and the mobile IM client 404 closes the session 434 . In this way, the session is dynamically transferred to the PC 402 , and the user may continue the PC IM chat session 432 . In addition, the user's IM presence is automatically set to “Home” by way of a message 436 sent to a presence server. The IM client 404 of the mobile device 400 may alternatively or in addition signal a change of presence (not shown).
  • the mobile device 400 may include a mobile TV or radio application.
  • the user may be watching a mobile TV show or listening to Internet radio when the user arrives home.
  • the mobile media application informs the end user that the session may be transferred to a home entertainment center. If the user agrees, the TV or radio is automatically opened to the channel that user was watching with his/her mobile, and the user can continues enjoying the program.
  • FIG. 5 an example is illustrated of a representative mobile computing arrangement 500 capable of carrying out operations in accordance with embodiments of the invention.
  • exemplary mobile computing arrangement 500 is merely representative of general functions that may be associated with such mobile devices, and also that landline computing systems similarly include computing circuitry to perform such operations.
  • the processing unit 502 controls the basic functions of the arrangement 500 . Those functions associated may be included as instructions stored in a program storage/memory 504 .
  • the program modules associated with the storage/memory 504 are stored in non-volatile electrically-erasable, programmable read-only memory (EEPROM), flash read-only memory (ROM), hard-drive, etc. so that the information is not lost upon power down of the mobile terminal.
  • EEPROM electrically-erasable, programmable read-only memory
  • ROM flash read-only memory
  • hard-drive etc.
  • the mobile computing arrangement 500 may include hardware and software components coupled to the processing/control unit 502 for performing network data exchanges.
  • the mobile computing arrangement 500 may include multiple network interfaces for maintaining any combination of wired or wireless data connections.
  • the illustrated mobile computing arrangement 500 includes wireless data transmission circuitry for performing network data exchanges.
  • This wireless circuitry includes a digital signal processor (DSP) 506 employed to perform a variety of functions, including analog-to-digital (A/D) conversion, digital-to-analog (D/A) conversion, speech coding/decoding, encryption/decryption, error detection and correction, bit stream translation, filtering, etc.
  • DSP digital signal processor
  • a transceiver 508 generally coupled to an antenna 510 , transmits the outgoing radio signals 512 and receives the incoming radio signals 514 associated with the wireless device.
  • These components may enable the arrangement 500 to join in one or more networks 515 , including mobile service provider networks, local networks, and public networks such as the Internet.
  • the mobile computing arrangement 500 may also include an alternate network/data interface 516 coupled to the processing/control unit 502 .
  • the alternate network/data interface 516 may include the ability to communicate on secondary networks using any manner of data transmission medium, including wired and wireless mediums. Examples of alternate network/data interfaces 516 include USB, Bluetooth, Ethernet, 802.11 Wi-Fi, IRDA, etc.
  • the alternate network interface is coupled to a local, ad-hoc, peer-to-peer network 517 . These alternate interfaces 516 may also be capable of communicating via the networks 515 .
  • the processor 502 is also coupled to user-interface elements 518 associated with the mobile terminal.
  • the user-interface 518 of the mobile terminal may include, for example, a display 520 such as a liquid crystal display and a camera 522 .
  • Other user-interface mechanisms may be included in the interface 518 , such as keypads, speakers, microphones, voice commands, switches, touch pad/screen, graphical user interface using a pointing device, trackball, joystick, vibration generators, etc.
  • These and other user-interface components are coupled to the processor 502 as is known in the art.
  • the program storage/memory 504 typically includes operating systems for carrying out functions and applications associated with functions on the mobile computing arrangement 500 .
  • the program storage 504 may include one or more of read-only memory (ROM), flash ROM, programmable and/or erasable ROM, random access memory (RAM), subscriber interface module (SIM), wireless interface module (WIM), smart card, hard drive, or other removable memory device.
  • ROM read-only memory
  • flash ROM read-only memory
  • SIM subscriber interface module
  • WIM wireless interface module
  • smart card hard drive, or other removable memory device.
  • the storage/memory 504 of the mobile computing arrangement 500 may also include software modules for performing functions according to embodiments of the present invention.
  • the program storage/memory 504 includes a UPnP stack 530 that provides baseline UDA functionality for communicating with devices of the peer-to-peer network 517 .
  • This stack 530 may be implemented as common libraries and/or as a standalone process.
  • some or all UPnP applications on the system 500 may implement their own UPnP stacks. These UPnP applications may include a software update server device 532 , a software update client device 534 , a software update control point 536 , and UPnP-aware programs 538 .
  • Other programs 540 that are not natively UPnP-aware may also be capable of utilizing UPnP functions by way of a plug-in API 542 .
  • developers often include a plug-in API 542 as a way for third parties to extend the functionality of the base program 540 .
  • a plug-in can utilize this API 542 to include UPnP functions that allow the programs 540 to be integrated with the functionality of the other UPnP software update modules 532 , 534 , 536 , 538 for purposes such as software updates and configurations.
  • the server and client 532 , 534 may need to access persistent or non-persistent data storage for caching and or storing update images, configuration data, and state data.
  • An example of this storage requirement is shown as the subscriptions database 546 and the updates and versioning database 548 .
  • the subscriptions database 546 may include persistent data related to recurring updates requested by peer devices. These subscriptions may be added to the database 546 automatically in response to previous installations serviced by the server device 532 , or based on requests for software update services from devices that discover this subscription capability via descriptions of the server device 532 .
  • the server device 532 (or some other component) may regularly query known sources of updates, and push out the updates to any subscribing peer devices.
  • the updates and versioning database 548 may contain the files needed to distribute software updates, including binary images, configurations files/scripts, and other metadata distributed with the programs. In some instances the updates and versioning database 548 may contain a reference to such data, so that the data need not be stored locally.
  • the updates and versioning database 548 may utilize a subscription service (e.g., via the subscription database 546 and server device 532 ) to ensure that data and/or references to data are kept up to date.
  • the updates and versioning database 548 may store metadata related to versioning, platforms, and other relevant data to determine whether a particular update is needed and applicable.
  • the database 548 may use some aspects of target platforms and versions to arrange the data, such as by creating a hierarchy with levels for different processor types, operating systems, virtual platforms, target applications, etc.
  • the software of the device 500 may include a native UPnP interface, such as represented by the stack 530 .
  • legacy programs shown here as other applications 550
  • the peer-to-peer network 517 may still be useful, but certain restrictions (e.g., copyright concerns, no access to source code) may prevent adapting those programs to utilize UPnP, and in particular to use UPnP software update functionality provided locally (e.g., via server component 532 ) or via other devices of the network 517 . It may still be possible to adapt such programs 550 to use UPnP through a helper program or some other means.
  • some applications 550 may be able to receive commands and configurations via an interprocess communications (IPC) facility 552 of the operating system.
  • IPC interprocess communications
  • These IPC mechanisms may include system messaging, sockets, pipes, middleware (e.g., CORBA, Java RMI), shared files, command line arguments, etc.
  • middleware e.g., CORBA, Java RMI
  • wrapper component 554 may set up a simulated environment in which to run the application 550 .
  • wrapper component 554 may set up a simulated environment in which to run the application 550 .
  • system or kernel calls can be intercepted, and events directed to hardware (e.g., network interfaces 516 , 508 ) and/or operating system APIs can be intercepted and translated to conform to UPnP protocols.
  • the mobile computing arrangement 500 of FIG. 5 is provided as a representative example of a computing environment in which the principles of the present invention may be applied. From the description provided herein, those skilled in the art will appreciate that the present invention is equally applicable in a variety of other currently known and future mobile and landline computing environments.
  • desktop computing devices similarly include a processor, memory, a user interface, and data communication circuitry.
  • the present invention is applicable in any known computing structure where data may be communicated via a network.
  • a flowchart illustrates a procedure 600 for accessing a software update service via ad-hoc peer-to-peer networks.
  • a peer-to-peer software update service is discovered 602 via an ad-hoc peer-to-peer network using a service discovery protocol of the network.
  • the peer-to-peer software update service is offered by at least one peer device and facilitates updates of programs via the ad-hoc, peer-to-peer network.
  • discovery mechanisms may differ between different types of ad-hoc networks, in some networks a query is sent 604 to the peer device for a description in response to the discovery 602 . A description is then received 606 that enables a particular update to be identified.
  • an update is selected 608 that is applicable to a program of a first device of the ad-hoc peer-to-peer network.
  • the first device may be the same device that discovers 602 and selects 608 , or may be a different physical or logical device.
  • the update is sent 610 to the first device, and the program of the first device is modified 612 using the update.
  • a flowchart illustrates a procedure 700 for providing a software update service via ad-hoc peer-to-peer networks.
  • a peer-to-peer software update service is advertised 702 via a peer device coupled to an ad-hoc, peer to peer network using a service discovery protocol of the ad-hoc peer-to-peer network.
  • the peer-to-peer software update service facilitates updating of programs to other entities of the ad-hoc peer-to-peer network.
  • the peer device receives 704 at least one query for a description of the peer-to-peer software update service. In response to the at least one query, transmission of an update to a target device via the peer-to-peer software update service is facilitated 706 .
  • the update may be transmitted from the peer device or another device inside of or outside of the network.
  • the update is used to modify a program on the target device.
  • an external network update service that is independent of the ad-hoc peer to peer network is monitored 708 .
  • the peer device is then configured 710 to provide updates of the external network update service via the peer-to-peer software update service.
  • a flowchart illustrates a procedure 800 for handover of a data session via a software update service of an ad-hoc peer-to-peer network.
  • a peer-to-peer software update service is discovered 802 using a service discovery protocol of the network.
  • An update for handing over a data session currently being conducted by a second device on the ad-hoc, peer-to-peer network is selected 804 via the software update service.
  • the update is sent 806 to the first device the program of the first device is modified using the update so that the program can receive the handover of the data session.
  • a presence of the user by at least one of the first and second devices based on the handover may be optionally updated 808 .
  • UPnP software update/configuration service when a UPnP software update/configuration service is registered, the service may notify other UPnP services that can utilize update service. These devices may request that the service locate and make available particular updates. For example, when a program or device is added to the network and discovers the update service, the new program/device may register with the update service and provide details such as the types of updates needed, the location of such updates, the frequency of checking for new updates, etc. Thereafter, the program/device may rely on the update service to automatically ensure the program/device is kept up to date.

Abstract

Providing a software update service involves discovering, via an ad-hoc peer-to-peer network, a peer-to-peer software update service using a service discovery protocol of the ad-hoc peer-to-peer network. The peer-to-peer software update service is offered by a peer device and facilitates updates of programs via the ad-hoc, peer-to-peer network. In response to discovering the peer-to-peer software update service, an update is selected that is applicable to a program of a first device of the ad-hoc peer-to-peer network. The update is sent to the first device and the program of the first device is modified using the update.

Description

    CROSS REFERENCE TO RELATED APPLICATIONS
  • This is a continuation-in-part of application Ser. No. 11/633,756, entitled “Software Distribution Via Peer-To-Peer Networks”, filed on Dec. 5, 2006, which is assigned to the assignee of the instant application, the contents of which are incorporated herein by reference.
  • FIELD OF THE INVENTION
  • This invention relates in general to computing devices, and more particularly to providing software update and configuration services via ad-hoc, peer-to-peer networks and online services.
  • BACKGROUND OF THE INVENTION
  • Universal Plug and Play™ (UPnP) defines an architecture for pervasive, peer-to-peer networking between all types of consumer electronics, including intelligent appliances, wireless devices, and PCs of all form factors. UPnP technologies provide a way for disparate processing devices to exchange data via proximity or ad-hoc networks. The UPnP framework is designed to bring easy-to-use, flexible, standards-based connectivity to ad-hoc or unmanaged networks whether in the home, in a small business, public spaces, or attached to the Internet. UPnP technologies provide a distributed, open networking architecture that leverages TCP/IP and the Web technologies to enable seamless proximity networking in addition to control and data transfer among networked devices.
  • The UPnP Device Architecture (UDA) is designed to support zero-configuration, “invisible” networking, and automatic discovery for a breadth of device categories from a wide range of vendors. This means a device can dynamically join a network, obtain an IP address, convey its capabilities, and learn about the presence and capabilities of other devices. The UPnP specification includes standards for service discovery, and a number of particular device control protocols (DCP) are published by the UPnP Forum. These published DCPs standardize particular types of UPnP network functions. For example, some DCPs define functions used to render audio and video via a UPnP network. Various contributors can implement these and other UPnP device and service descriptions, thus creating a way to easily connect devices into a functioning network. It is the goal of UPnP to enable home electronics to seamlessly interact, thus furthering the usefulness of such devices.
  • The UPnP standard includes standards for service discovery, and is mainly targeted for proximity or ad-hoc networks. Various contributors publish UPnP device and service descriptions, thus creating a way to easily connect devices and simplifying the implementation of networks. UPnP is designed to work in many environments, including the home, businesses, public spaces, and on devices attached to the Internet. The UPnP standard is an open architecture that leverages Web technologies and is designed to provide ad-hoc networking and distributed computing.
  • UPnP and related protocols were developed primarily to allow consumers to easily assemble a home network, and to access and control devices not normally associated with networked computing. However, the flexible nature of UPnP means that it can be implemented anywhere, and can be adapted to uses not foreseen by the originators of the network framework. As peer-to-peer technologies such as UPnP become more ubiquitous, these technologies may be used for many other purposes besides facilitating control of diverse consumer devices. The present disclosure provides an example of such adaptations.
  • SUMMARY OF THE INVENTION
  • To overcome limitations in the prior art described above, and to overcome other limitations that will become apparent upon reading and understanding the present specification, the present specification discloses a system, apparatus and method for configuring and updating software via a data processing apparatus of an ad-hoc, peer-to-peer network. In one embodiment of the invention, a method involves discovering, via an ad-hoc peer-to-peer network, a peer-to-peer software update service using a service discovery protocol of the ad-hoc peer-to-peer network. The peer-to-peer software update service is offered by a peer device and facilitates updates of programs via the ad-hoc, peer-to-peer network. In response to discovering the peer-to-peer software update service, an update is selected that is applicable to a program of a first device of the ad-hoc peer-to-peer network. The update is sent to the first device and the program of the first device is modified using the update.
  • In more particular embodiments, the method may further involve sending, to the peer device, at least one query for a description of the peer-to-peer software update service in response to discovering the peer-to-peer software update service. A description of the peer-to-peer update service is received in response the query, and the update is selected based on the description. The at least one query may include a description of a computer platform of the target device used for filtering a result returned in response to the query and/or a software category used for filtering a result returned in response to the query.
  • In other arrangements, the discovery of the peer-to-peer software update service and the selection of the update are performed by a second device of the ad-hoc, peer-to-peer network, and the second device initiates sending of the update to the first device and modifying of the program of the first device using the update. The ad-hoc, peer-to-peer network may include a Universal Plug and Play network.
  • In other, more particular embodiments, modifying the program on the first device may involve adding a capability to the program. In such a case, adding the capability involves adding the capability for the program to access a service of the ad-hoc, peer-to-peer network. In such an arrangement, selection of the update may be initiated by the first device in response to the first device detecting the service being advertised on the ad-hoc peer-to-peer network.
  • In other, more particular embodiments, modifying the program on the first device involves reconfiguring the program. In another example, modifying the program involves modifying the program to receive a handover of a data session currently being conducted by a second device on the ad-hoc peer-to-peer network. In such a case, modifying the program may involve a) providing parameters of the data session to the program of the first device, b) adding a capability to the program that enables the program to engage in the data session, and/or c) updating a presence of the user by one of the first and second devices based on the handover of the data session.
  • In another embodiment of the invention, a method, involves advertising, via a peer device coupled to an ad-hoc, peer to peer network, a peer-to-peer software update service using a service discovery protocol of the ad-hoc peer-to-peer network. The peer-to-peer software update service facilitates updating of programs to other entities of the ad-hoc peer-to-peer network. The peer device receives at least one query for a description of the peer-to-peer software update service. In response to the at least one query, transmission of an update to a target device is facilitated via the peer-to-peer software update service. The update is used to modify a program on the target device.
  • In more particular embodiments, the method involves monitoring an external network update service that is independent of the ad-hoc peer to peer network and configuring the peer device to provide updates of the external network update service via the peer-to-peer software update service. The method may further involve forwarding discovery from the peer-to-peer to software update service to an external repository service outside the ad-hoc, peer to peer network. The ad-hoc, peer-to-peer network may include a Universal Plug and Play network. The at least one query may includes a) a description of a computer platform of the target device used for filtering a result returned in response to the query and/or b) a software category used for filtering a result returned in response to the query.
  • In another embodiment of the invention, an apparatus includes a network interface capable of communicating via an ad-hoc peer-to-peer network and a processor coupled to the network interface. A peer-to-peer software update service is offered by a peer device and facilitates updating programs via the ad-hoc peer-to-peer network. A memory storage device is coupled to the processor and includes instructions that cause the processor to: a) discover the peer-to-peer software update service using a service discovery protocol of the ad-hoc peer-to-peer network; b) select an update that is compatible with a target program in response to the discovery of the peer-to-peer software update service; c) facilitate sending the update to a device of the ad-hoc peer-to-peer network that executes the target program; and d) facilitate modifying the target program using the update.
  • In more particular embodiments, the apparatus is the device that executes the target program. In other particular embodiments, the instructions further cause the processor to advertise, via the service discovery protocol, a locally provided peer-to-peer software update service that facilitates updating programs via the ad-hoc, peer-to-peer network, and facilitate transferring a second update to a target device via the locally provided peer-to-peer software update service, wherein the second update is used to modify a program of the target device. In such a case, the instructions may further cause the processor to monitor an external network update service that is independent of the ad-hoc peer-to-peer network and offer updates of the external network update service via the locally provided peer-to-peer software update service.
  • In more particular embodiments, the target program is capable of engaging in user-interactive data sessions, and modifying the target program involves modifying the program to receive a handover of a data session currently being conducted by a second device on the ad-hoc peer-to-peer network.
  • In another embodiment of the invention, a computer-readable storage medium has instructions which are executable by an apparatus capable of being coupled to an ad-hoc peer-to-peer network. A peer-to-peer software update service is offered by a peer device and facilitates updates of programs via the ad-hoc, peer-to-peer network. The instructions are executable by the apparatus for performing steps that include a) discovering a peer-to-peer software update service using a service discovery protocol of the ad-hoc peer-to-peer network; b) selecting, in response to discovering the peer-to-peer software update service, an update that is applicable to a target program; c) facilitate sending the update to a device of the ad-hoc peer-to-peer network that executes the target program; and d) facilitate modifying the target program using the update.
  • In more particular embodiments, the steps further include e) offering a locally provided peer-to-peer software update service that facilitates updating of programs via the ad-hoc, peer to peer network; f) advertising the locally provided, peer-to-peer software update service using a service discovery protocol of the ad-hoc peer-to-peer network; g) facilitating transmission of a second update to a target device via the peer-to-peer software update service in response to advertising the locally provided, peer-to-peer software update service.
  • In another embodiment of the invention, a system includes means for advertising a peer-to-peer software update service via a service discovery protocol of an ad-hoc peer-to-peer network. The generic peer-to-peer software update service facilitates peers of the network to update programs of the peers. The system further includes means for discovering the peer-to-peer software update service via the ad-hoc peer to peer network, means for facilitating transmission of an update to a peer device via the peer-to-peer software update service, and means for modifying a program of the peer device using the update.
  • In more particular embodiments, the system further includes means for monitoring an external network update service that is independent of the ad-hoc peer-to-peer network and means for offering updates of the external network update service via the peer-to-peer software update service. The system may further include means for modifying the program of the peer device using the update to receive a handover of a data session currently being conducted by another device on the ad-hoc peer-to-peer network. In such a case, the system may include means for updating a presence of a user of the peer device based on the handover of the data session. In another more particular embodiment the system further includes means for forwarding discovery from the peer-to-peer to software update service to an external repository service outside the ad-hoc, peer to peer network.
  • These and various other advantages and features of novelty which characterize the invention are pointed out with particularity in the claims annexed hereto and form a part hereof. However, for a better understanding of the invention, its advantages, and the objects obtained by its use, reference should be made to the drawings which form a further part hereof, and to accompanying descriptive matter, in which there are illustrated and described representative examples of systems, apparatuses, and methods in accordance with the invention.
  • BRIEF DESCRIPTION OF THE DRAWINGS
  • The invention is described in connection with the embodiments illustrated in the following diagrams.
  • FIG. 1 is a block diagram illustrating a system according to embodiments of the invention;
  • FIG. 2 is a block diagram illustrating an implementation of a software update service according to embodiments of the invention;
  • FIG. 3 is a block diagram illustrating a UPnP software update and configuration architecture according to embodiments of the invention;
  • FIG. 4 is a sequence diagram of a session handover facilitated by an update service according to an embodiment of the invention;
  • FIG. 5 is a block diagram of a mobile device according to embodiments of the invention;
  • FIG. 6 is a flowchart illustrating a procedure for accessing a software update service via ad-hoc, peer-to-peer networks according to embodiments of the invention;
  • FIG. 7 is a flowchart illustrating a procedure for providing a software update service via ad-hoc, peer-to-peer networks according to embodiments of the invention; and
  • FIG. 8 is a flowchart illustrating a procedure for handing over a data session via a software update service of an ad-hoc, peer-to-peer networks according to embodiments of the invention.
  • DETAILED DESCRIPTION OF EMBODIMENTS OF THE INVENTION
  • In the following description of various exemplary embodiments, reference is made to the accompanying drawings that form a part hereof, and in which is shown by way of illustration various embodiments in which the invention may be practiced. It is to be understood that other embodiments may be utilized, as structural and operational changes may be made without departing from the scope of the present invention.
  • Generally, the present invention relates to methods, systems, and apparatus that enable software to be configured and/or updated via ad-hoc, peer-to-peer networks or online software repository service. Such networks are considered to be “ad-hoc” because the network may be automatically self-formed by peer nodes that discover each other's existence and capabilities automatically. Each peer may be willing to forward data (and provide other peer-to-peer services) for other peers, and so the determination of which nodes provide a particular service is made dynamically based on the network connectivity. This is in contrast to older network technologies in which some designated nodes, usually with custom infrastructure hardware (e.g., servers, routers, hubs, firewalls, and switches) perform designated tasks or services. Minimal configuration and quick deployment make ad hoc networks suitable for emergency situations like emergencies, where some infrastructure elements may not be relied upon. Such ad-hoc networks are also useful in consumer environments, because they free the consumer from having to understand and configure the function of various infrastructure devices.
  • An example of ad-hoc, peer-to-peer protocols are those protocols used in the UPnP architecture. UPnP uses the Simple Service Discovery Protocol (SSDP) for service discovery, and is generally built on top of Internet Protocol (IP) based networks. Although concepts of the present invention may be described in terms of UPnP networks, those familiar with the applicable art will appreciate that these concepts may be applied to any manner of ad-hoc, peer-to-peer networking arrangement suitable for consumer or business networks. For example, the Service Location Protocol (SLP), Zeroconf, and Jini™ are protocols that provide functions similar to those of UPnP.
  • The UPnP framework includes several layers that cover the addressing, discovering, and control functions associated with connecting to and using services of the network. The UPnP Device Architecture (UDA) consists of the layer that takes care of the basic addressing and networking functionality. On top of the Device Architecture, UPnP define additional services such as audio-video (AV), Remote User Interface (UI), Printing, etc.
  • UPnP is designed to be flexible, and as a result UPnP applications are constantly evolving. This evolution occurs at all levels, from the low-level network protocols and interfaces to the high-level applications that utilize UPnP. An example of a low-level network update includes updating the UDA and UPnP services by adding support for newer network protocols such as IPv6. Another network update may include updating the Web service protocols upon which discovery and other functions are based. An example of a high level service that may be changed (which may still require changes be made to the UDA) is making a transition from printing service to enhanced printing service.
  • As UPnP and its related standards evolve, a device may need to update a protocol, service, UDA, or other software in order to interoperate with other devices. Currently, the UPnP framework has no automatic way of doing this. The user has to manually install the new version of the software or service into the device. Without such capability, the UPnP framework may fall short of its promise of providing a seamless and automatic way for devices to interoperate. This is particularly true for devices and services that do not have a substantial user interface, such as special purpose consumer devices (e.g., appliances, control modules). In such a case, updating the software may require physically accessing the device and using a non-UPnP interface to do the update (e.g., by connecting the device to a computer with a cable and updating the device via a specialized update program).
  • Existing device software may be updated and/or reconfigured for such purposes as fixing bugs and improving performance. It may also be desirable to extend the functionality of devices to provide a service for which the device was not originally provisioned. In particular, such extensions are particularly useful if they can be provided on demand, such as when a user or other network device advertises or attempts to use the service. For example, a sizeable number of users depend on on-line services, like Instant Messaging (IM), email, web access, etc. Currently the online sessions of the Internet capable devices are limited to one device per session and there is no way to move the session from device to another without breaking the online connection. If the end user wants to move the session to another device (e.g. current IM chatting session from mobile device to personal computer) the session must be closed and started again using another device. It would be beneficial for the end user if the online session (like chatting session in IM client) could be transparently moved from the device to another without interruption in online session.
  • However, current UPnP implementations lack a mechanism for handing over presence to mobile device when user moves away with it from a personal computer (PC), and restoring the presence back to the PC when the user returns. This applies also to other services and protocols, like games, browsing sessions, etc. The presence and session control of the online application must be transferred manually. For example, when the end user wants to change the session from a PC IM application to a mobile IM application, the user must first manually set the PC status to “offline,” and then set it to “online” from the mobile client.
  • The present disclosure describes an adaptation to ad-hoc, peer-to-peer, local networking technologies such as UPnP that allow devices to automatically update software and software configurations, regardless of the diversity of target devices and the diverse methodologies chosen by device vendors and/or software maintainers to obtain apply updates. Like other UPnP interfaces, a standardized UPnP software configuration/update interface can become a commonly accessible service on the network usable by any type of device, regardless of vendor, operating platform, and proprietary update methodologies. These adaptations to UPnP (or any other ad-hoc, peer-to-peer framework) may also be used for dynamic device update and configuration.
  • A new UPnP DCP may be defined for these automatic update and dynamic configuration functions. This new DCP may enable applications with equivalent functionalities to configure each other dynamically. The automatic update and dynamic configuration may be implemented as UPnP upgrade/configuration service that will be discoverable as any of the existing services. Thus, for example, when a user receives an error indicating the device does not support the service the user was trying to access, the user or the device automatically can search for the UPnP upgrade service and initiate the automatic update of the UPnP UDA or services.
  • The “update” and/or “configuration” of software may involve any combination of discovery, transmission, verification, installation, purchase, activation, and maintenance of processor executable instructions between two or more computing arrangements. The software may include any type of system or user software that can be executed on a data processing device. One example of such software is a game that is made available for download via a distribution service of the peer-to-peer network. Such a game may also utilize the peer-to-peer network to advertise the use of the game, updates that enable a device to participate in the game, and/or to use the network to exchange game play data. Although various embodiments shown herein may be described in terms of various specific types of software such as games, it will be appreciated that the invention is not so limited, and may be applied to any manner of computer-assisted activities known in the art.
  • In a system according to an embodiment of the invention, a generic software update and configuration service may be discovered and utilized via a single generic interface. In some scenarios, the updates and/or configurations may be made available to assist a device to access another service on the peer-to-peer network. For example, a peer device may discover a multiplayer game that is advertised via the discovery protocols of the network. The multiplayer game may use the peer-to-peer network for both discovery and game play events. In order to play the game, the user device may discover and/or be automatically directed to a software distribution service that enables compatible software to be installed on the user device. Alternatively, if the device was already configured to play the game, but detects a new version is in use, the user device may discover and/or be automatically directed to a software update service that enables the needed upgrades to be installed on the user device. In this way, the user can seamlessly utilize theretofore unknown and uninstalled capabilities that arise on the peer-to-peer network, and seamlessly maintain those capabilities even when versions used by other devices change.
  • In one arrangement, the ad-hoc, peer-to-peer network that enables the software distribution service may be a Universal Plug and Play (UPnP) network. The UPnP framework includes two layers: a general-purpose UPnP device architecture (UDA) and device-specific device control protocols (DCP). There are currently about ten standardized DCPs for various device categories. Software distribution via UPnP may involve creating a generic framework that enables users to search any available programs, such that the search would not be tied to any particular software type, device platform, licensing scheme or other categories typically associated with software distribution. A software update and configuration DCP may be created that would define the services, actions and state variables that a “UPnP software update and configuration device” would expose to the UPnP network.
  • In reference now to FIG. 1, a block diagram 100 illustrates an example system according to embodiments of the invention. Generally, technologies such as UPnP are designed for operating within a limited space. In FIG. 1, a physical boundary defines a local space 102. The dimensions of the local space 102 are generally confined by the underlying network protocols and media, as well as the scalability of the ad-hoc, peer-to-peer networking technologies used to facilitate software distribution. However, it will be appreciated that other ad-hoc, peer-to-peer protocols may not be limited to any physical space limitations, and so the illustration of the local space 102 is for purposes of illustration, and not of limitation.
  • The space 102 may include at least one local network 104 that is capable of supporting communications with one or more user devices 106. The local network 104 may include any combination of data transmission media and protocols. For example, the network 104 may utilize wired or wireless data transmission media. Similarly, devices 106 on the local network 104 may various physical and data link layer protocols to intercommunicate, including, Ethernet, FDDI, PPP, ATM, HDLC, Fibre Channel, X-10, serial/parallel point-to-point connections, etc. A number of higher layer network protocols may operate on the network 104 as well, including TCP/IP, UDP/IP, IPX, Appletalk, ICMP, ARP, SNMP, DNS, FTP, SMB, NetBEUI, etc.
  • The user devices 106 generally include some manner of data processing capabilities, and in particular at least some of the devices 106 are capable of obtaining and running software via the network 104. In most installations, this software includes user or system programs that are capable of running on devices 106 having general-purpose data processing capabilities. Such devices 106 usually include sufficient memory (e.g., random access memory) to load in new programs that selectably alter the behavior of the device. Such devices 106 generally include (or at least have access to) some type of persistent data storage (e.g., hard disk, flash memory) that allow the devices 106 to retain changed or added software after the cycling of power.
  • Although the concepts described herein may be usefully applied to general-purpose computing devices, the invention need not be limited such devices. For example, the devices 106 may include an embedded system device 107, which is a limited-purpose data processing arrangement that is not, in general, extendable by the addition of new programs. However, the existing specific-purpose program contained in the embedded system 107 may be updated, modified, or replaced by a peer-to-peer software distribution service as described herein. For example, the embedded system 107 may include a “smart” UPnP appliance that performs a single function via the network 104. Such device 107 may be upgradeable (e.g., to enhance the specific function or fix bugs) by modifying flash memory that contains the operating instructions of the device 107. In such an arrangement, the device 107 may include instructions that allow it to utilize a UPnP software distribution service for obtaining and applying flash memory upgrades without requiring user intervention.
  • In the illustrated diagram 100, other networkable devices 106 include a gaming console 108, mobile phone 109, laptop computer 110, personal digital assistant 112, portable music player 114, tablet computer 116, personal computer 117, entertainment center 120, or any other device as represented by generic data processing device 118. Because protocols such are UPnP are applicable to a wide variety of consumer electronics, consumer electronics devices such as the entertainment center 120 may include peer-to-peer network functionality. In some configurations, the consumer electronics device 120, like the embedded system 107, may have fixed functionality, such as being only capable of rendering sound or video. For example, such capabilities may be included in a flash memory program of the device 120, and thus are relatively fixed for the life of the device 120. In other arrangements, however, the device 120 may include general-purpose computer capabilities such as access to random access memory (RAM) and/or persistent storage, and as such may be able to add new programs to extend the device's capability. In either arrangement, the device 120 may be adaptable to use or provide some or all of the software distribution services described herein.
  • Preferably, the network 104 and its underlying protocols are designed to be generic and flexible so that many types of control or data processing functionality can be abstracted and offered as a service to other entities on the network 104. In one embodiment, the local network 104 may support one or more protocols for ad-hoc, peer-to-peer service discovery and interoperability. The local network 104 may be designed to service a limited physical region, as indicated by the boundary 102. The protocols used in such a local network 104 (e.g., UPnP) often assume that the network 104 will need to support only a limited number of devices operating within a reasonably small area. However, many devices on the local network 104 may benefit from information services available via an external network, particularly the Internet 126. The UPnP specification defines a special service/function known as an Internet Gateway Device (IGD) 128. The IGD function 128 can be provided by one or more of the devices 106 for purposes of provide routing and firewall services on behalf of others of the devices 106 of the local UPnP network 104. In some arrangements, a dedicated gateway device may perform the IGD functions 128 on the UPnP network 104, as well as providing traditional gateway/router functions for non-UPnP devices.
  • In one embodiment of the invention, one or more of the user devices 106 have specialized components 130 that enable the devices 106 to distribute software programs and updates at least via the local network 104. This component 130 may be referred to alternately as a device or a service. In the UPnP specifications, the concept of a “device” is a logical abstraction that does not necessarily have a one-to-one correspondence to a single piece of physical hardware. The software distribution device/service 130 may be hosted by one or more of the network devices 106 and be advertised 132 according to service discovery protocols of the local peer-to-peer network 104. For example, devices on a UPnP network advertise via SSDP, which uses XML UDP unicast and multicast packets to advertise 132 services. In response to the advertisement 132, a device 118 may initiate further negotiations (e.g., queries) to discover particulars about the service 130. Assuming the device 118 is willing and able to utilize the software distribution service 130, the device can request 134 a software distribution function via the service 130.
  • One software distribution function that may be requested 134 by the device is a download 136. In the illustrated environment, the download 136 may involve data transfer directly from the service 130 to the device 118. In another example, a download 138 may be facilitated by the service 130, but the data transfer 138 occurs from another device 117 in the local network 104. The device 117 from which the download 138 originates may or may not be capable of communicating using the formats and protocols of the service 130. For example, the device 117 may be in a sleep mode, and the service/device 130 acts as a proxy that processes queries and other transactions, but causes the download 138 to originate from the device 117 after causing the device 117 to wake up. In another example, the device 117 may use an “out-of-band”mechanism to transfer data. As used herein, the term “out-of-band” generally refers to the use of one or more protocols that are not part of the protocols of the ad-hoc peer-to-peer network 104. For example, although both File Transfer Protocol (FTP) and UPnP may work on top of TCP/IP networks, a simple host-to-host FTP file transfer may be considered out-of-band because such a transfer, by itself, does not utilize the UPnP protocol stack. Conversely, “in-band” mechanisms use at least a minimum set of the protocols defined for devices 106 to engage in ad-hoc, peer-to-peer interactions via the network 104.
  • In another arrangement, a download 140 may originate from an outside network such as the Internet 126, and may be facilitated by one or more local components, including the software distribution service 130 and the IGD 128. Where the download originates from outside the network, an entity 142 providing the download 140 may not appear as a logical device on the local network 104. In one arrangement, a device such as the IGD 128 may act as a proxy for the software downloads, so that it appears that the IGD 128 is providing the download, even though the data originates from an external entity 142. The external entity 142 may include a single server or multiple, distributed hosts that provide a partial download using peer-to-peer technologies such as BitTorrent and Gnutella. Local entities 130, 117 may also participate in similar distributed software distribution.
  • It will be appreciated that in alternate arrangements, the local service 130 may act as a proxy for the external entity 142. In such an arrangement, the external entity generates its own advertisement 141, which may be broadcast, multicast, or unicast to the service 130 (e.g., by way of the IGD 128). This advertisement 141 may be provided directly to the network by way of the IGD 128, or as illustrated, combined with the advertisements of the local update/distribution service 130. Similarly requests/queries 134 of the local network 104 may be sent directly to the external service 142, such as directly via the IGD 128, or indirectly by way of the local service 130, which then forwards a request 143 to the external service. In this way, the system enables forwarding discovery from the peer-to-peer to software update service 130 and/or the local network 104 to an external repository service 142 outside the ad-hoc, peer to peer network 104. Thereafter, services such as downloading 136, 140 can be utilized as described elsewhere herein.
  • Downloading is only one example of a software distribution function that may be facilitated by the device/service 130. Other functions are illustrated as the setup/configure/activate function 144. These functions 144 may include any actions other than downloading that cause the instructions to operate correctly on a particular device. For example, configuration may include adding and modifying files or other data to the target device. This configuration data may be used by an installer program, be read from and written to by programs to maintain states, used to store log data, etc. The functions 144 may also involve placing of files and other persistent objects in the correct places of a file system hierarchy, patching of binaries, activation of protected/encrypted code, making system file/registry changes, communication with existing software components, etc. The service 130 may directly perform the function 144, or may facilitate functions between the client 118 and another entity. An example of this is the illustrated activation 146, which performed via an entity 142 that is outside the local environment 102 (e.g. in an online software repository service).
  • In other situations, setup, configuration and/or update data may also originate from the external entity 142. The external entity 142 may be, for example, a software update server of a device manufacturer or other entity. Examples of these types of Internet-based update facilities 142 include automatic updates facilities included in operating systems such as Windows™ and Linux™, and automatic virus definition updates used by virus scanning programs. It should be noted that these update features are typically limited to updating specific components, and are not generally applicable to a wide range of consumer device. For example, even though the Windows Update™ feature automatically detects and downloads upgrades to the operating system, by default it does not download updates to the application programs, even those of the same vendor. Moreover, the upgrades can be updates in specific functionality of an applications, such as new UPnP actions on an existing service like schedule recording, printing or the basic connectivity in the device architecture (DA). Similarly, although a Linux distribution such as Ubuntu may automatically detect and apply updates to the OS and application programs, these updates are limited to those programs supported by the distribution. In these cases, independent application developers must provide alternate update mechanisms to ensure their products get updated.
  • In contrast to updates on personal computers, the illustrated service 130 may be generally applicable to provide updates to any device on the network 104. Proprietary update mechanisms implemented on individual local devices 106 may be extended to include a UPnP update interface. Similar adaptations can be made for external update sites 142. Even though external update sites 142 may have custom or proprietary interfaces, the service 130 may be made modular, so that a manufacturer can install a plug-in so that any updates offered by specialized external update servers 142 can applied via a common UPnP interface locally. The update service 130 itself may be automatically updateable to add these extensions, such as by the use of plug-ins that can extend the functionality of existing programs. So if a user adds a new device to the network 104, the new device can register with the update service 130, the update service 130 can automatically discover any extensions needed to interface with the remote server 142 and apply those extensions. Thereafter the service 130 can ensure that the new device is kept up to date, and can also be used to extend the functionality of the new device if such new functionality is requested and the device is so capable.
  • Note that the update service 130 may be able to automatically cache update and configuration data and redistribute updates as necessary, thus reducing bandwidth at the external server 142. Such caching is particularly useful where a single update or configuration is applicable to a number of devices. In some cases, a home network may include a number of identical devices, such as electrical controllers for lights, alarm systems, monitoring systems, etc. In other cases, different devices may support a common software component. For example, many devices may support running platform independent program modules (e.g., Java Applets or Midlets) and some functions, such as time synchronization or power management, may be common to different types of devices. These components can be added and updated by using objects cached by the service 130.
  • It will be appreciated that the illustrated system 100 holds many advantages over traditional ways of distributing and maintaining software. In typical systems, the user must first have knowledge of the particular software, find the downloads of the software for a particular computing platform, and install the software. Where the software involves interaction with other people or devices (e.g., in a UPnP environment) the user may also have to seek out a device, user, or community in which to engage in the software activity. However, in a system according to embodiments of the invention, the existence of the target activity and the existence of other people and devices that are willing to engage in the activity may be determined by just performing service discovery via the ad-hoc networks. In many situations, the users may be unable to engage in the targeted activity without additional software. In such a case, the software that facilitates the activity could be automatically downloaded on a trial or permanent basis from others in the local environment or elsewhere. This allows users to be more discerning about which software that they wish to install on their system. The decisions may therefore be based on the actual usage of such activities in environments frequented by the user, rather than based on possibly outdated or inaccurate data obtained via public forums such as the Web.
  • In reference now to FIG. 2, a more detailed example is presented of how updates and configurations can be facilitated in accordance with embodiments of the invention. Two mobile terminals 202, 204 are coupled via an ad-hoc, peer-to-peer network 206. In this example, mobile terminal 202 includes a control point/client 208 and a terminal 204 includes an update server 210 that may be configured to update and/or configure software on mobile terminals 202, 204, or any other device of the network 206. It will be appreciated that both terminals 202, 204 may contain any combination of respective control point/client 208 and server components 210, although in this example only the illustrated components 208, 210 are being utilized on respective terminals 202, 204. In this scenario, the terminal 204 may be acting as a UPnP device that is offering its update services 210 to other UPnP devices on the network 206. As such, the terminal 204 may provide an eXtensible Markup Language (XML) device description 212 in response to queries received via the network 206.
  • The example device description 212 includes variables that describe the device itself, such as the device type 214. This implementation defines new UPnP DCP definition for a UPnP Software configuration DCP root device 214 and may include optional embedded devices. Generally, a UPnP device may also provide one or more services, and the illustrated device description 212 shows an example UPnP SWConfigurationService 216. The service 216 may be associated with an action 218, GetDeviceType. GetDeviceType returns the type of the device, which can be, for example, mobile phone, PC, PDA, television etc. Devices may use this information for determining which device has higher priority. Generally, to ensure compatibility across platforms and systems, the device 214, service 216, and action 218 may be defined as a minimum mandatory requirement for any device providing this type of network function 210.
  • The device type used with the GetDeviceType action 218 may also include a descriptor of the device platform. As is known in the art, a “computing platform” is sometimes defined as the combination of central processing unit (CPU) and operating system (OS) used by a device. For example, an Intel® x86 compatible CPU may run different OSes, such as Windows®, Linux®, OS X®, Free BSD, etc. Although all programs that run natively on an x86 CPU will use the same instruction set, the programs need particular arrangements of instructions and data in order to be compatible with a particular OS. In some cases, a program may even rely on a particular patch level of the OS, and will not run correctly on incompatible patch levels. Similarly, the Linux OS has been compiled to run on a wide variety of different CPUs. However, a program compiled for Linux x86, for example, will have to be recompiled to run on a different CPU, e.g., PowerPC.
  • A number of adaptations have been created to ease the problem of using software on incompatible platforms. In some arrangements, an emulation program creates a virtual processor and OS that allows a program to run even if it was compiled for a different OS and CPU, albeit with significant performance degradation. Other adaptations, such as the Wine Project, allow programs that are compiled for a particular CPU to run in a different operating system on the same CPU. These adaptations emulate the application program interface (API) of another operating system, but because the program was compiled for the same CPU type, the program instructions can still be run natively on the CPU without any translation. Still other adaptations involve distributing programs that do not utilize CPU specific instructions at all. One form of these adaptations are scripting languages such as Perl, Python, Basic, etc., which utilize programs written in ASCII text, and the text is converted to machine language “on-the-fly” at run-time. Other adaptations, such as Java™ or Microsoft™ .NET, use binary programs that are designed to run in platform independent runtime environments. Programs compatible with the run-time environment can be compiled once and thereafter run on any platform that has the run-time environment installed.
  • It will be appreciated that the directory service 216 may have to take into account the platform of the requesting device when processing directory requests. Even when the programs are platform independent (e.g., Java) there may be version incompatibilities that require considering the particular runtime environments of the requesting device 208. Other issues that the directory service 216 may need to take into account when distributing software include the capacity of the requesting terminal 202, 204 (e.g., memory, processor speed, graphics capability, required user input devices), licensing issues, software categories, content restrictions (e.g., parental controls, corporate IT policies), other software versions (e.g., UPnP version, UPnP DA, UPnP service version), OS patch level, etc. In response to various combinations of such criteria, the software configuration device 214 can provide a list of available updates that satisfy the criteria. The list could be “flat,” or be arranged in a hierarchy. The client device 202 may utilize a control point 208 that is specially adapted for controlling the software configuration device 214, as well as any other embedded devices and associated services. Each embedded device may also have own control point for controlling other similar applications.
  • The update server 210 may be hosted in any home device, and the hosting apparatus 204 may store new software data that is transferred to other devices in order to perform upgrades. The server 210 can store the new software data in an upgrade repository 219 that is locally situated, either within the apparatus 204 or elsewhere on the local network 206. In another arrangement, the repository 219 may be part of an external source, such as a manufacturer's site where the updates are stored for generic, public download. The client device/control point 208 will interact with the upgrade server 210 and will check the list of services and available versions (e.g., version of UPnP Device Architecture) and will compare them with the ones existing in the device 202. If there is a difference in the versioning number of the service 210, the client 208 will initiate the upgrade.
  • The client 208 may identify updates automatically or at the prompting of a user. For example, the client 208 may query any local update services 210 at a predetermined interval, such as once per day. In another scenario, the client 208 may determine that updates or upgrades are needed when the user first tries to use an unavailable or non-activated service on the apparatus 202. This scenario is shown in screen 222, which is an example display of a video player application. The user has attempted to play a video on the apparatus 202, but the player does not have the needed codec to process a particular video file or stream. The screen 222 includes a prompt 221 that requests whether the user wishes to attempt an update. Assuming the user answers in the affirmative, the control point/client 208 may access one or more update servers 210 to obtain the upgrade. In turn, the service 210 may access one or more upgrade repositories 219 to find the needed update. If available updates are found, the user may be notified, such as via screen 222. If multiple compatible updates are found, the user may have the option of selecting one based on factors such as trust placed in the offer/offeror, cost, perceived quality, licensing, location/bandwidth, etc.
  • Assuming the appropriate update is available, the server 210 will facilitate transferring update data to the terminal 202 (such as via a separate download manager), thereby enabling the selected update to be installed. The server 210 may be configured to facilitate downloads of configurations and/or executable images, either from the terminal 204 itself or from a third party. For example, the server 210 may provide authentication that allows the other terminal 202 to access a Web download site and obtain an update or configuration.
  • In more particular examples of downloads, the serving terminal 204 has the needed update files stored in the device's local file system. The server 210 provides a link to the installation files (e.g., a Uniform Resource Identifier, or URI) and receiving client 208 can download the files using a UPnP content directory service DCP. In another example, the serving terminal 204 has a lightweight run-time object (Java or web browser scripts) stored in the terminal's file system. The server 210 provides an HTTP link to the run-time files, and receiving client 208 can download them using a UPnP content directory service DCP. In another example, server 210 provides an Internet HTTP URI to the update files to the client 208, and the device 202 can download them using suitable program.
  • It will be appreciated that, in the example scenario described above, software updates can be distributed rather widely and easily. However, software vendors may be concerned about distributing updates to users who may not have obtained the software legally. In other cases, software contains digital rights managements (DRM) feature that prevent software modifications under certain circumstances. Thus the update service 210 may be required to process certain software updates differently, depending on the licensing and/or DRM associated with the software and/or restrictions place on the vendors. For some software distribution scenarios, such as Open Source software, freely distributing copies of the program is an acceptable use under the Open Source license, and thus updates are also typically freely distributable. However, most proprietary models of software distribution require that at least some of the end users purchase software. In some cases, the vendor may want to validate whether the target program was obtained legally before an update is given out. In other cases, the vendor may want to limit third-party modifications to a program, such as programs that illicitly enable certain features by modifying binary executables.
  • Implementing rights management into a software distribution service may address concerns related to illegal distribution of some types of software. Another concern that may need to be addressed in implementing the distribution service is that of security. For example, certain types of software (often referred to as “malware”) may become installed unintentionally on a user device. In some cases, malware may consume resources for unwelcome or nefarious purposes, intentionally damage data and/or hardware, attempt to access and divulge private data, etc. In order to prevent the spread of malicious or unwanted software, the underlying platform may implement security measures, such as only allowing digitally signed and authenticated software to be installed. The upgrade server 210 may include security features to ensure updates are authenticated and validated. The updates and configurations may be secured using security mechanisms of the local network, e.g., UPnP security mechanisms. In other arrangements, independent verification and authentication may be performed, such as by using pre/shared certificates to authenticate the device 208 and any servers 210 that provide the updates Security measures may be implemented in both the server 210 and/or client 208. For example, the system may require that any software be authenticated by a trusted source before the client machine 202 installs it. In other cases, a user interface of the control point 208 may require user confirmation before any software is installed.
  • The device description 212 may include specific services related to both security and rights management. Similarly, the client/control point 208 may include provisions to ensure any distribution server 210 is to be trusted. For example, transactions with the server 210 may involve exchanging authentication keys that can be independently verified. An a priori configuration (e.g., shared encryption key, manual authorization) may also be used, although such a priori configurations are typically less user-friendly than an automated authentication from a trusted verification source.
  • The systems described herein may be implemented using any combination of networking technologies known in the art. In particular, network updates may be implemented using the UPnP framework. In reference now to FIG. 3, a block diagram 300 illustrates an example implementation of a UPnP update and configuration architecture according to an embodiment of the invention. The diagram 300 includes two compatible peer devices 302, 304 that may interact via a UPnP network 306. The devices 302, 304 typically represent separate hardware components; however there may be some arrangements where the devices 302, 304 are virtual devices that share hardware with each other and with other components of the network 306.
  • As illustrated, the device 302, 304 may contain compatible functional components 308, 310, 312, 314, 338, 340, 342, 344 that allow each device 302, 304 to facilitate software update and configuration for others (e.g., act as a server) and find/use updates and configurations for itself (e.g., act as a client). It will be appreciated that it is not necessary for the devices 302, 304 to each include all of the listed functionality to form a usable system. For example, some devices may be configured to act only as clients, such as by disabling update server functionality or by not having such functionality installed to begin with. Similarly, the functional components may be distributed across multiple physical devices yet operate in an integrated fashion as if on a single device. For example, peer device 302 may be comprised of a handheld game controller acting as the UPnP control point 338, and this controller communicates via Bluetooth with a cellular phone acting as a UPnP client 340.
  • Functional components 308, 310, 312, 314 of peer device 304 will be described in greater detail below. It will be appreciated that the same functionality may also be provided by analogous components 338, 340, 342, 344 of device 302. The device 304 includes a UPnP software update control point 308, a UPnP software update client 310, and a UPnP software update server 312. Each of the components 308, 310, 312 are configured to communicate via UPnP protocols, and as such will implement the UPnP Device Architecture (UDA). Also associated with these components 308, 310, 312 is a UPnP software update device control protocol (DCP) that defines the actions and state variables of the various interactions between components 308, 310, 312.
  • The UPnP software distribution control point 308 may provide functions similar to other UPnP control points, such as the UPnP audio video (AV) control point. Generally, the control point 308 includes the user interface and application logic that allows a user to discover the services of other software update devices on the UPnP network 306. The UPnP update control point 308 may also provide other control functions for activities associated with finding, selecting, buying, downloading, configuring, and/or running updates. The control point 308 can invoke the UPnP software update DCP to perform these actions in order to get a desired response. In some applications, it is desirable to hide the UPnP functionality from the user as much as possible. In such a case, the control point 308 may only provide minimal user interface functions, such as reporting critical errors, or requiring confirmation of updates as required by security policy settings.
  • The software update client device 310 is a UPnP device that provides UPnP interface for connecting to software update servers. The client device 310 may operate in response to operations of the control point 308, other user interface devices, or in response to other, non-user initiated events. Generally, the client device 310 interacts with software update servers 312, 342 to at least initiate downloads of update data, and may also handle the other actions such as configuration and activation needed to apply those updates.
  • The UPnP software distribution server 312 acts as a central point for accessing specific updates 314 that are available via the device 304. More specifically, the server 312 is a UPnP device with the “software update” service exposing the available updates 314. The server device 312 may also handle the actions and maintain the state variables associated with installing the updates 314. The server device 312 may use a registry or some other mechanism for tracking and categorizing various updates 314 that are available via the peer device 304. Generally, those updates may be applied to programs 317. The programs 317 may include UPnP-capable and non-UPnP-capable programs. Where the programs 317 are UPnP-capable, the distribution of the updates 314 can be integrated with the discovery of UPnP services, including UPnP services hosted by a device 304 that also stores updates or helper programs for enabling other devices to use the service. In such a way, the device 304 can act as both a provider of the service and a provider of software updates that enable use of that service.
  • In one configuration, the software update server 312 may be implemented similarly to the UPnP Content Directory Service (CDS). The CDS is a UPnP Audio Video (AV) service template, identified as “urn:schemas-upnp-org:service:ContentDirectory:1.” The CDS is a server-side interface used for accessing media storage devices. The CDS provides lookup functions such as “browse” and “search” that allows devices to discover individual data objects stored on the media servers and access that content. The existing CDS interface may be extended to include software update repositories. Alternatively, the software update server 312 may use a service template that is modeled after the CDS, but includes features unique to update distribution, including features that address rights management and security concerns.
  • Where the software distribution server 312 is configured as a CDS or CDS-like service, a standard AV Control Point component may be used (or adapted) to view and select software made available via the system 300. One difference between an AV Control point and one adapted for use with the system 300 is that a standard AV Control Point sends data from a media storage device to an AV Media Renderer device, where the media is rendered and (presumably) perceived by a user. In the present system, the software updates distributed by the system 300 are not necessarily “rendered” to a user, but are generally installed on a computer. However, components such as the clients 310, 340 may be adapted to resemble a UPnP Media Renderer. In such a case, software update components could be transferred via the network 306 to an update “consumer” in a manner similar to the sending of digital media from a media storage device to a rendering device, the rendering device being the end “consumer” of the media. In such an arrangement, the operations of the software update framework 300 can be made compatible with some or all of the existing UPnP AV framework.
  • The components 308, 310, 312, 314, 338, 340, 342, 344 may interact for such purposes as service discovery 316, cataloging 318, query/search 320, as well as initiation 322, download 324 and configuration 326 of updates. In some situations, runtime data 328 of the installed updates may be communicated between components 308, 310, 312, 314, 338, 340, 342, 344. For example, once an update is installed and successfully running, it may signal 328 a success at runtime so that programs involved in the installation can terminate and log the installation as a success. This type of signal 328 may also be used to hand over a data session where the handover is preceded by an update or configuration that enables the handover to occur. Such data may also be communicated by out-of-band mechanisms 329, either via a network or via interprocess communication within the devices 302, 304. Such out of band mechanisms may include using dedicated network connections, alternate network access mechanisms and media, streaming data, multicast data, writing to a remote database, etc.
  • It will be appreciated that the downloading function 324 may involve downloads directly between the devices 302, 304 and/or by using the devices 302, 304 as proxies. However, out-of-band upload/ download mechanisms 330, 332 may also be used, such as for accessing updates from a database 334 and/or adding updates to the database 334. Another illustrated out-of-band upload/download mechanism includes distributed uploads/ downloads 356, 358 which generally allows downloads from multiple peer devices 360 at the same time. Technologies such as BitTorrent allow this type of distributed uploads/ download 356, 358 by distributing a file that contains metadata about the files to be shared, and about a server (or “tracker”) that coordinates the file distribution. The tracker assists the downloading device in discovering the peers 360 that can download a portion of the requested data. It will be appreciated that the peers 360 may include any combination of hosts within and outside of the UPnP network 306, including Internet hosts.
  • In another configuration, the distributed uploads/ downloads 356, 358 may be enabled using entirely UPnP network protocols. In such an example, the UPnP update clients 310, 340 and servers 312, 342 may be extended to act as BitTorrent-type peers, without requiring the use of a tracker. Such UPnP distribution would only require the querying of devices on the local UPnP network to discover distributed download devices/services, although the availability of updates in such a case could be extended to entities outside the network by the use of a proxy, such as by configuring a UPnP IGD (see FIG. 1) as a proxy.
  • As previously described, software updates may be found and installed automatically using the discovery and data transfer protocols of the ad-hoc network. In some cases, a user may actively search for particular updates, or the user may be advised of the existence of an update or upgrade when the user tries to access an unavailable feature. In some cases, the updates can be used to continue a real-time data session by allowing the session to be transferred between devices. In reference now to FIG. 4, a sequence diagram illustrates an example use of software update and configuration services to help maintain a session according to an embodiment of the invention.
  • In this example a mobile device 400 and a PC 402 are capable of communicating via an ad-hoc, peer-to-peer network, such as a UPnP network. In the following example, software update and configuration services are used to hand over an instant messaging (IM) session from the mobile device 400 to the PC. The mobile device 400 includes an IM client 404 that facilitates the IM session. The mobile device 400 also includes an update control point 406 that can be used to control aspects of an update server 408. The control point 406 and server 408 may be UPnP components as described in other embodiments, or may use an alternate ad-hoc, peer-to-peer framework. Note that the server 408 may be located in the mobile device 400, the PC 402, or any other network peer. The advantage of ad-hoc, peer-to-peer protocols is that the end users of the services do not depend on the service being located at any predetermined location, as long as such services can eventually be discovered by use of the network protocols.
  • The PC 402 also includes an update client component 410. This client 410 may be integrated with a control point-like component, or be separate module. The PC 402 also includes an IM client 412 that is capable of engaging in IM sessions, and is capable of being configured or updated to receive a handover of a session 414 with which the mobile client 404 is currently engaging. Generally, the user of the mobile device 400 is engaging in the session 414 outside the home, and the session 414 continues as the user arrives home. Upon arriving home, the IM client 404 (or other component) detects the existence of the network, here by receiving service discovery announcements 416, 418 from the update server 408. The illustrated service discovery messages 416, 418 respectively advertise the services of the IM client 412 and the update server 408. The full process of service discovery will often involve additional data exchanges besides these initial messages 416, 418, and such additional messages are not illustrated. The particulars of how service discovery are particular to different ad-hoc peer-to-peer frameworks, and the present disclosure is not dependent on any particular form of service discovery.
  • It will be appreciated that there are numerous other ways that the mobile device 401 may become aware of the local ad-hoc network besides the illustrated messages 416, 418. For example, another program (not shown) may occasionally test network connections in order to determine the existence of a desired ad-hoc network. That program may query and enumerate the available services, and based on this determination, signal to the IM client 404 that new ad-hoc services are available. In another example, the PC 402 may not initially have the IM client 412 installed. Nonetheless, the mobile device 400 may be able to conclude that the PC 402 is configurable or upgradeable to support IM sessions. For example, the PC 402 may advertise a UPnP DCP called “MobileTelephony” that is currently configured to only handle Voice over Internet Protocol (VoIP) sessions. The mobile device 400 discovers the MobileTelephony DCP and further determines that the PC 402 includes the software update client 410 (e.g., via discovery advertisement 418) that can automatically upgrade the MobileTelephony DCP to include IM support.
  • After the user arrives to home and the mobile device 400 determines the existence of the PC IM client 412, the user receives a notification 420 via the device's user interface. The notification 420 informs the user that the chat session can be continued using the PC 402. If the user selects to transfer the session, an update notification 422, 424, 426, 428 is sent to the PC's IM client 412 by way of the update components 406, 408, 410. When the PC IM client 412 receives the notification 428, it is informed that a device 400 with a compatible application 404 and user preferences have arrived on the same network as the PC 402. Further, this notification 428 informs the IM client 412, based on the received preferences, that a handover of the session is requested.
  • In response to the notification 428, the PC IM client application 412 may query 430 the end user to verify that the current IM session can be transferred to the PC 402. Assuming that the user accepts the dialog 430, the PC IM client 412 receives a handover of the IM session 432 and the mobile IM client 404 closes the session 434. In this way, the session is dynamically transferred to the PC 402, and the user may continue the PC IM chat session 432. In addition, the user's IM presence is automatically set to “Home” by way of a message 436 sent to a presence server. The IM client 404 of the mobile device 400 may alternatively or in addition signal a change of presence (not shown).
  • The session handover concepts shown in FIG. 4 may be equally applicable to other types of one-way and multi-way communications sessions. For example, the mobile device 400 may include a mobile TV or radio application. The user may be watching a mobile TV show or listening to Internet radio when the user arrives home. The mobile media application informs the end user that the session may be transferred to a home entertainment center. If the user agrees, the TV or radio is automatically opened to the channel that user was watching with his/her mobile, and the user can continues enjoying the program.
  • Many types of apparatuses may be able to engage in software update and configuration activities as described herein. Mobile devices are particularly useful in this role because they are portable user interface devices, and therefore may be called upon to control a wide variety of networked components. In reference now to FIG. 5, an example is illustrated of a representative mobile computing arrangement 500 capable of carrying out operations in accordance with embodiments of the invention. Those skilled in the art will appreciate that the exemplary mobile computing arrangement 500 is merely representative of general functions that may be associated with such mobile devices, and also that landline computing systems similarly include computing circuitry to perform such operations.
  • The processing unit 502 controls the basic functions of the arrangement 500. Those functions associated may be included as instructions stored in a program storage/memory 504. In one embodiment of the invention, the program modules associated with the storage/memory 504 are stored in non-volatile electrically-erasable, programmable read-only memory (EEPROM), flash read-only memory (ROM), hard-drive, etc. so that the information is not lost upon power down of the mobile terminal. The relevant software for carrying out conventional mobile terminal operations and operations in accordance with the present invention may also be transmitted to the mobile computing arrangement 500 via data signals, such as being downloaded electronically via one or more networks, such as the Internet and an intermediate wireless network(s).
  • The mobile computing arrangement 500 may include hardware and software components coupled to the processing/control unit 502 for performing network data exchanges. The mobile computing arrangement 500 may include multiple network interfaces for maintaining any combination of wired or wireless data connections. In particular, the illustrated mobile computing arrangement 500 includes wireless data transmission circuitry for performing network data exchanges.
  • This wireless circuitry includes a digital signal processor (DSP) 506 employed to perform a variety of functions, including analog-to-digital (A/D) conversion, digital-to-analog (D/A) conversion, speech coding/decoding, encryption/decryption, error detection and correction, bit stream translation, filtering, etc. A transceiver 508, generally coupled to an antenna 510, transmits the outgoing radio signals 512 and receives the incoming radio signals 514 associated with the wireless device. These components may enable the arrangement 500 to join in one or more networks 515, including mobile service provider networks, local networks, and public networks such as the Internet.
  • The mobile computing arrangement 500 may also include an alternate network/data interface 516 coupled to the processing/control unit 502. The alternate network/data interface 516 may include the ability to communicate on secondary networks using any manner of data transmission medium, including wired and wireless mediums. Examples of alternate network/data interfaces 516 include USB, Bluetooth, Ethernet, 802.11 Wi-Fi, IRDA, etc. In the illustrated example, the alternate network interface is coupled to a local, ad-hoc, peer-to-peer network 517. These alternate interfaces 516 may also be capable of communicating via the networks 515.
  • The processor 502 is also coupled to user-interface elements 518 associated with the mobile terminal. The user-interface 518 of the mobile terminal may include, for example, a display 520 such as a liquid crystal display and a camera 522. Other user-interface mechanisms may be included in the interface 518, such as keypads, speakers, microphones, voice commands, switches, touch pad/screen, graphical user interface using a pointing device, trackball, joystick, vibration generators, etc. These and other user-interface components are coupled to the processor 502 as is known in the art.
  • The program storage/memory 504 typically includes operating systems for carrying out functions and applications associated with functions on the mobile computing arrangement 500. The program storage 504 may include one or more of read-only memory (ROM), flash ROM, programmable and/or erasable ROM, random access memory (RAM), subscriber interface module (SIM), wireless interface module (WIM), smart card, hard drive, or other removable memory device. The storage/memory 504 of the mobile computing arrangement 500 may also include software modules for performing functions according to embodiments of the present invention.
  • In particular, the program storage/memory 504 includes a UPnP stack 530 that provides baseline UDA functionality for communicating with devices of the peer-to-peer network 517. This stack 530 may be implemented as common libraries and/or as a standalone process. Alternatively, some or all UPnP applications on the system 500 may implement their own UPnP stacks. These UPnP applications may include a software update server device 532, a software update client device 534, a software update control point 536, and UPnP-aware programs 538. Other programs 540 that are not natively UPnP-aware may also be capable of utilizing UPnP functions by way of a plug-in API 542. Generally, developers often include a plug-in API 542 as a way for third parties to extend the functionality of the base program 540. A plug-in can utilize this API 542 to include UPnP functions that allow the programs 540 to be integrated with the functionality of the other UPnP software update modules 532, 534, 536, 538 for purposes such as software updates and configurations.
  • The server and client 532, 534 may need to access persistent or non-persistent data storage for caching and or storing update images, configuration data, and state data. An example of this storage requirement is shown as the subscriptions database 546 and the updates and versioning database 548. The subscriptions database 546 may include persistent data related to recurring updates requested by peer devices. These subscriptions may be added to the database 546 automatically in response to previous installations serviced by the server device 532, or based on requests for software update services from devices that discover this subscription capability via descriptions of the server device 532. Generally, the server device 532 (or some other component) may regularly query known sources of updates, and push out the updates to any subscribing peer devices.
  • The updates and versioning database 548 may contain the files needed to distribute software updates, including binary images, configurations files/scripts, and other metadata distributed with the programs. In some instances the updates and versioning database 548 may contain a reference to such data, so that the data need not be stored locally. The updates and versioning database 548 may utilize a subscription service (e.g., via the subscription database 546 and server device 532) to ensure that data and/or references to data are kept up to date. The updates and versioning database 548 may store metadata related to versioning, platforms, and other relevant data to determine whether a particular update is needed and applicable. The database 548 may use some aspects of target platforms and versions to arrange the data, such as by creating a hierarchy with levels for different processor types, operating systems, virtual platforms, target applications, etc.
  • In many cases, the software of the device 500 may include a native UPnP interface, such as represented by the stack 530. However, legacy programs (shown here as other applications 550) that provide or use functions of the peer-to-peer network 517 may still be useful, but certain restrictions (e.g., copyright concerns, no access to source code) may prevent adapting those programs to utilize UPnP, and in particular to use UPnP software update functionality provided locally (e.g., via server component 532) or via other devices of the network 517. It may still be possible to adapt such programs 550 to use UPnP through a helper program or some other means. For example, some applications 550 may be able to receive commands and configurations via an interprocess communications (IPC) facility 552 of the operating system. These IPC mechanisms may include system messaging, sockets, pipes, middleware (e.g., CORBA, Java RMI), shared files, command line arguments, etc. Alternatively, a virtual environment, here represented by wrapper component 554, may set up a simulated environment in which to run the application 550. In this way, system or kernel calls can be intercepted, and events directed to hardware (e.g., network interfaces 516, 508) and/or operating system APIs can be intercepted and translated to conform to UPnP protocols.
  • The mobile computing arrangement 500 of FIG. 5 is provided as a representative example of a computing environment in which the principles of the present invention may be applied. From the description provided herein, those skilled in the art will appreciate that the present invention is equally applicable in a variety of other currently known and future mobile and landline computing environments. For example, desktop computing devices similarly include a processor, memory, a user interface, and data communication circuitry. Thus, the present invention is applicable in any known computing structure where data may be communicated via a network.
  • In reference now to FIG. 6, a flowchart illustrates a procedure 600 for accessing a software update service via ad-hoc peer-to-peer networks. A peer-to-peer software update service is discovered 602 via an ad-hoc peer-to-peer network using a service discovery protocol of the network. Generally the peer-to-peer software update service is offered by at least one peer device and facilitates updates of programs via the ad-hoc, peer-to-peer network. Although discovery mechanisms may differ between different types of ad-hoc networks, in some networks a query is sent 604 to the peer device for a description in response to the discovery 602. A description is then received 606 that enables a particular update to be identified.
  • In response to discovering 602 the peer-to-peer software update service (and in some cases in response to the description 606), an update is selected 608 that is applicable to a program of a first device of the ad-hoc peer-to-peer network. The first device may be the same device that discovers 602 and selects 608, or may be a different physical or logical device. The update is sent 610 to the first device, and the program of the first device is modified 612 using the update.
  • In reference now to FIG. 7, a flowchart illustrates a procedure 700 for providing a software update service via ad-hoc peer-to-peer networks. A peer-to-peer software update service is advertised 702 via a peer device coupled to an ad-hoc, peer to peer network using a service discovery protocol of the ad-hoc peer-to-peer network. The peer-to-peer software update service facilitates updating of programs to other entities of the ad-hoc peer-to-peer network. The peer device receives 704 at least one query for a description of the peer-to-peer software update service. In response to the at least one query, transmission of an update to a target device via the peer-to-peer software update service is facilitated 706. The update may be transmitted from the peer device or another device inside of or outside of the network. The update is used to modify a program on the target device. In one optional configuration, an external network update service that is independent of the ad-hoc peer to peer network is monitored 708. The peer device is then configured 710 to provide updates of the external network update service via the peer-to-peer software update service.
  • In reference now to FIG. 8, a flowchart illustrates a procedure 800 for handover of a data session via a software update service of an ad-hoc peer-to-peer network. A peer-to-peer software update service is discovered 802 using a service discovery protocol of the network. An update for handing over a data session currently being conducted by a second device on the ad-hoc, peer-to-peer network is selected 804 via the software update service. The update is sent 806 to the first device the program of the first device is modified using the update so that the program can receive the handover of the data session. A presence of the user by at least one of the first and second devices based on the handover may be optionally updated 808.
  • It will be appreciated that various alternates to the illustrated ad-hoc, peer-to-peer software distribution services may be implemented. For example, when a UPnP software update/configuration service is registered, the service may notify other UPnP services that can utilize update service. These devices may request that the service locate and make available particular updates. For example, when a program or device is added to the network and discovers the update service, the new program/device may register with the update service and provide details such as the types of updates needed, the location of such updates, the frequency of checking for new updates, etc. Thereafter, the program/device may rely on the update service to automatically ensure the program/device is kept up to date.
  • The foregoing description of the exemplary embodiments of the invention has been presented for the purposes of illustration and description. It is not intended to be exhaustive or to limit the invention to the precise form disclosed. Many modifications and variations are possible in light of the above teaching. It is intended that the scope of the invention be limited not with this detailed description, but rather determined by the claims appended hereto.

Claims (31)

1. A method, comprising:
discovering, via an ad-hoc peer-to-peer network, a peer-to-peer software update service using a service discovery protocol of the ad-hoc peer-to-peer network, wherein the peer-to-peer software update service is offered by a peer device and facilitates updates of programs via the ad-hoc, peer-to-peer network;
selecting, in response to discovering the peer-to-peer software update service, an update that is applicable to a program of a first device of the ad-hoc peer-to-peer network;
sending the update to the first device; and
modifying the program of the first device using the update.
2. The method of claim 1, further comprising:
sending, to the peer device, at least one query for a description of the peer-to-peer software update service in response to discovering the peer-to-peer software update service;
receiving a description of the peer-to-peer update service in response the query; and
wherein the update is selected based on the description.
3. The method of claim 1, wherein the discovery of the peer-to-peer software update service and the selection of the update is performed by a second device of the ad-hoc, peer-to-peer network, and wherein the second device initiates sending of the update to the first device and modifying of the program of the first device using the update.
4. The method of claim 1, wherein modifying the program on the first device comprises adding a capability to the program.
5. The method of claim 4, wherein the adding the capability comprises adding the capability for the program to access a service of the ad-hoc, peer-to-peer network.
6. The method of claim 5, wherein the selection of the update is initiated by the first device in response to the first device detecting the service being advertised on the ad-hoc peer-to-peer network.
7. The method of claim 1, wherein modifying the program on the first device comprises reconfiguring the program.
8. The method of claim 1, wherein modifying the program comprises modifying the program to receive a handover of a data session currently being conducted by a second device on the ad-hoc peer-to-peer network.
9. The method of claim 8, wherein modifying the program comprises providing parameters of the data session to the program of the first device.
10. The method of claim 8, wherein modifying the program on the first device comprises adding a capability to the program that enables the program to engage in the data session.
11. The method of claim 8, further comprising updating a presence of the user by one of the first and second devices based on the handover of the data session.
12. The method of claim 1, wherein the ad-hoc, peer-to-peer network comprises a Universal Plug and Play network.
13. A method, comprising:
advertising, via a peer device coupled to an ad-hoc, peer to peer network, a peer-to-peer software update service using a service discovery protocol of the ad-hoc peer-to-peer network, wherein the peer-to-peer software update service facilitates updating of programs to other entities of the ad-hoc peer-to-peer network;
receiving, at the peer device, at least one query for a description of the peer-to-peer software update service;
facilitating, in response to the at least one query, transmission of an update to a target device via the peer-to-peer software update service, wherein the update is used to modify a program on the target device.
14. The method of claim 13, further comprising:
monitoring an external network update service that is independent of the ad-hoc peer to peer network; and
configuring the peer device to provide updates of the external network update service via the peer-to-peer software update service.
15. The method of claim 13, further comprising forwarding discovery from the peer-to-peer to software update service to an external repository service outside the ad-hoc, peer to peer network.
16. The method of claim 13, wherein the ad-hoc, peer-to-peer network comprises a Universal Plug and Play network.
17. The method of claim 13, wherein the at least one query includes a description of a computer platform of the target device used for filtering a result returned in response to the query.
18. The method of claim 13, wherein the at least one query includes a software category used for filtering a result returned in response to the query.
19. An apparatus, comprising:
a network interface capable of communicating via an ad-hoc peer-to-peer network;
a processor coupled to the network interface; and
a memory storage device coupled to the processor, the memory storage device including instructions that cause the processor to,
discover a peer-to-peer software update service using a service discovery protocol of the ad-hoc peer-to-peer network, wherein the peer-to-peer software update service is offered by a peer device and facilitates updating programs via the ad-hoc peer-to-peer network;
select an update that is compatible with a target program in response to the discovery of the peer-to-peer software update service;
facilitate sending the update to a device of the ad-hoc peer-to-peer network that executes the target program; and
facilitate modifying the target program using the update.
20. The apparatus of claim 19, wherein the peer-to-peer software update service is advertised as a Universal Plug and Play device.
21. The apparatus of claim 19, wherein the apparatus comprises the device that executes the target program.
22. The apparatus of claim 19, wherein the instructions further cause the processor to:
advertise, via the service discovery protocol, a locally provided peer-to-peer software update service that facilitates updating programs via the ad-hoc, peer-to-peer network; and
facilitate transferring a second update to a target device via the locally provided peer-to-peer software update service, wherein the second update is used to modify a program of the target device.
23. The apparatus of claim 22, wherein the instructions further cause the processor to,
monitor an external network update service that is independent of the ad-hoc peer-to-peer network; and
offer updates of the external network update service via the locally provided peer-to-peer software update service.
24. The apparatus of claim 19, wherein the target program is capable of engaging in user-interactive data sessions, and wherein modifying the target program comprises modifying the program to receive a handover of a data session currently being conducted by a second device on the ad-hoc peer-to-peer network.
25. A computer-readable storage medium having instructions stored thereon which are executable by an apparatus capable of being coupled to an ad-hoc peer-to-peer network for performing steps comprising:
discovering a peer-to-peer software update service using a service discovery protocol of the ad-hoc peer-to-peer network, wherein the peer-to-peer software update service is offered by a peer device and facilitates updates of programs via the ad-hoc, peer-to-peer network;
selecting, in response to discovering the peer-to-peer software update service, an update that is applicable to a target program;
facilitate sending the update to a device of the ad-hoc peer-to-peer network that executes the target program; and
facilitate modifying the target program using the update.
26. The computer readable medium of claim 25, wherein the steps further comprise:
offering a locally provided peer-to-peer software update service that facilitates updating of programs via the ad-hoc, peer to peer network;
advertising the locally provided, peer-to-peer software update service using a service discovery protocol of the ad-hoc peer-to-peer network;
facilitating transmission of a second update to a target device via the peer-to-peer software update service in response to advertising the locally provided, peer-to-peer software update service.
27. A system comprising:
means for advertising a peer-to-peer software update service via a service discovery protocol of an ad-hoc peer-to-peer network, wherein the generic peer-to-peer software update service facilitates peers of the network to update programs of the peers;
means for discovering the peer-to-peer software update service via the ad-hoc peer to peer network;
means for facilitating transmission of an update to a peer device via the peer-to-peer software update service; and
means for modifying a program of the peer device using the update.
28. The system of claim 27, further comprising:
means for monitoring an external network update service that is independent of the ad-hoc peer-to-peer network; and
means for offering updates of the external network update service via the peer-to-peer software update service.
29. The system of claim 27, further comprising means for modifying the program of the peer device using the update to receive a handover of a data session currently being conducted by another device on the ad-hoc peer-to-peer network.
30. The system of claim 29, further comprising means for updating a presence of a user of the peer device based on the handover of the data session.
31. The system of claim 27, further comprising means for forwarding discovery from the peer-to-peer to software update service to an external repository service outside the ad-hoc, peer to peer network.
US11/729,750 2006-12-05 2007-03-29 Software update via peer-to-peer networks Abandoned US20080130639A1 (en)

Priority Applications (1)

Application Number Priority Date Filing Date Title
US11/729,750 US20080130639A1 (en) 2006-12-05 2007-03-29 Software update via peer-to-peer networks

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
US11/633,756 US7734717B2 (en) 2006-12-05 2006-12-05 Software distribution via peer-to-peer networks
US11/729,750 US20080130639A1 (en) 2006-12-05 2007-03-29 Software update via peer-to-peer networks

Related Parent Applications (1)

Application Number Title Priority Date Filing Date
US11/633,756 Continuation-In-Part US7734717B2 (en) 2006-12-05 2006-12-05 Software distribution via peer-to-peer networks

Publications (1)

Publication Number Publication Date
US20080130639A1 true US20080130639A1 (en) 2008-06-05

Family

ID=39475661

Family Applications (2)

Application Number Title Priority Date Filing Date
US11/633,756 Expired - Fee Related US7734717B2 (en) 2006-12-05 2006-12-05 Software distribution via peer-to-peer networks
US11/729,750 Abandoned US20080130639A1 (en) 2006-12-05 2007-03-29 Software update via peer-to-peer networks

Family Applications Before (1)

Application Number Title Priority Date Filing Date
US11/633,756 Expired - Fee Related US7734717B2 (en) 2006-12-05 2006-12-05 Software distribution via peer-to-peer networks

Country Status (4)

Country Link
US (2) US7734717B2 (en)
EP (1) EP2090076A2 (en)
CN (1) CN101584187A (en)
WO (1) WO2008068601A2 (en)

Cited By (324)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20080108437A1 (en) * 2006-11-07 2008-05-08 Kari Kaarela Gaming via peer-to-peer networks
US20080288939A1 (en) * 2007-05-14 2008-11-20 Dehaan Michael Methods and systems for provisioning software
US20080320469A1 (en) * 2007-06-22 2008-12-25 Samsung Electronics Co., Ltd. Method of receiving/transmitting event message, controlled device, and control point
US20080320472A1 (en) * 2007-06-20 2008-12-25 James Laska Methods and systems for dynamically generating installation configuration files for software
US20090034534A1 (en) * 2007-07-30 2009-02-05 Stefano Faccin System and method for establishing and managing multimedia sessions between terminals
US20090063978A1 (en) * 2007-09-05 2009-03-05 Sony Corporation Network status icon in navigable toolbar
US20090083398A1 (en) * 2007-09-24 2009-03-26 Ford Daniel E Autonomous network device configuration method
US20090198796A1 (en) * 2008-01-31 2009-08-06 Microsoft Corporation Layered Architectures for Remote Dynamic Administration of Distributed Client Configurations
US20090240935A1 (en) * 2008-03-20 2009-09-24 Microsoft Corporation Computing environment configuration
US20090240728A1 (en) * 2008-03-20 2009-09-24 Microsoft Corporation Computing environment representation
US20090241104A1 (en) * 2008-03-20 2009-09-24 Microsoft Corporation Application management within deployable object hierarchy
US20090248737A1 (en) * 2008-03-27 2009-10-01 Microsoft Corporation Computing environment representation
US20090252063A1 (en) * 2008-03-14 2009-10-08 Aastra Technologies Limited Method & system for configuring a network communications device
US20090307678A1 (en) * 2008-06-09 2009-12-10 Yuwen Wu Mfp software update using web service
US20090320016A1 (en) * 2008-06-24 2009-12-24 Canon Kabushiki Kaisha Image processing apparatus, control method therefor, storage medium, and distribution server
US20100010899A1 (en) * 2008-07-11 2010-01-14 Lambert Paul A Service discovery methods
US20100049838A1 (en) * 2008-08-20 2010-02-25 Dehaan Michael Paul Methods and systems for automatically registering new machines in a software provisioning environment
US20100056268A1 (en) * 2008-08-28 2010-03-04 Microsoft Corporation Automated direct bids to purchase entertainment content upon a predetermined event
US20100058332A1 (en) * 2008-08-29 2010-03-04 Dehaan Michael Paul Systems and methods for provisioning machines having virtual storage resources
US20100057930A1 (en) * 2008-08-26 2010-03-04 Dehaan Michael Paul Methods and systems for automatically locating a provisioning server
US20100057833A1 (en) * 2008-08-29 2010-03-04 Dehaan Michael Paul Methods and systems for centrally managing multiple provisioning servers
US20100058328A1 (en) * 2008-08-29 2010-03-04 Dehaan Michael Paul Systems and methods for differential software provisioning on virtual machines having different configurations
US20100083245A1 (en) * 2008-09-26 2010-04-01 Dehaan Michael Paul Methods and systems for managing network connections associated with provisioning objects in a software provisioning environment
US20100099359A1 (en) * 2007-02-26 2010-04-22 Lg Electronics Inc. Method for receiving data service
US20100128639A1 (en) * 2008-11-26 2010-05-27 Dehaan Michael Paul Methods and systems for supporting multiple name servers in a software provisioning environment
US20100131648A1 (en) * 2008-11-25 2010-05-27 Dehaan Michael Paul Methods and systems for providing power management services in a software provisioning environment
US20100138521A1 (en) * 2008-11-28 2010-06-03 Dehaan Michael Paul Methods and systems for providing a rescue environment in a software provisioning environment
US20100138526A1 (en) * 2008-11-28 2010-06-03 Dehaan Michael Paul Methods and systems for providing hardware updates in a software provisioning environment
US20100217843A1 (en) * 2009-02-26 2010-08-26 Dehaan Michael Paul Systems and methods for collecting and altering firmware configurations of target machines in a software provisioning environment
US20100217944A1 (en) * 2009-02-26 2010-08-26 Dehaan Michael Paul Systems and methods for managing configurations of storage devices in a software provisioning environment
US20100223504A1 (en) * 2009-02-27 2010-09-02 Dehaan Michael Paul Systems and methods for interrogating diagnostic target using remotely loaded image
US20100220584A1 (en) * 2009-02-27 2010-09-02 Dehaan Michael Paul Systems and methods for automatically generating system restoration order for network recovery
US20100223607A1 (en) * 2009-02-27 2010-09-02 Dehaan Michael Paul Systems and methods for abstracting software content management in a software provisioning environment
US20100223610A1 (en) * 2009-02-27 2010-09-02 Dehaan Michael Paul Systems and methods for providing a library of virtual images in a software provisioning environment
US20100223608A1 (en) * 2009-02-27 2010-09-02 Dehaan Micheal Paul Systems and methods for generating reverse installation file for network restoration
US20100223367A1 (en) * 2009-02-27 2010-09-02 Dehaan Michael Paul Systems and methods for integrating software provisioning and configuration management
US20100312902A1 (en) * 2007-11-28 2010-12-09 Damaka, Inc. System and method for endpoint handoff in a hybrid peer-to-peer networking environment
US20100333084A1 (en) * 2009-06-30 2010-12-30 Dehaan Michael Paul Systems and methods for message-based installation management using message bus
US20110010699A1 (en) * 2009-07-09 2011-01-13 Simon Cooper Methods and Systems for Upgrade and Synchronization of Securely Installed Applications on a Computing Device
WO2011069730A1 (en) * 2009-12-10 2011-06-16 International Business Machines Corporation A method and system for managing configurations of system management agents in a distributed environment
US20110153773A1 (en) * 2009-12-23 2011-06-23 Apple Inc. Efficient service advertisement and discovery in a peer-to-peer networking environment with cooperative advertisement
US20110167117A1 (en) * 2010-01-06 2011-07-07 International Business Machines Corporation Feature propagation
US20110181411A1 (en) * 2008-10-02 2011-07-28 Samsung Electronics Co., Ltd. Apparatus and method for providing presence service in communication device
US20110238498A1 (en) * 2010-03-29 2011-09-29 Microsoft Corporation Service stage for subscription management
US20110235117A1 (en) * 2010-03-29 2011-09-29 Kyocera Mita Corporation Image Forming System and Image Forming Apparatus Settings Search Method Using WS-Discovery
US20110265080A1 (en) * 2010-04-27 2011-10-27 Jack Matthew Dynamic retrieval of installation packages when installing software
US20110296013A1 (en) * 2010-05-28 2011-12-01 Greg Saunders System and method for providing hybrid on demand services to a work unit
US20110300943A1 (en) * 2010-06-04 2011-12-08 Devine Graeme J Methods for using unique identifiers to identify systems in collaborative interaction in a mesh network
US8103776B2 (en) 2008-08-29 2012-01-24 Red Hat, Inc. Systems and methods for storage allocation in provisioning of virtual machines
WO2012080768A1 (en) * 2010-12-17 2012-06-21 Sony Ericsson Mobile Communications Ab Method for interface configuration of an electronic device detection
CN102523562A (en) * 2010-12-16 2012-06-27 微软公司 Fast join of peer to peer group with power saving mode
WO2012085220A1 (en) * 2010-12-23 2012-06-28 Koninklijke Kpn N.V. Method, device, system and network architecture for handling a service request
US8244836B2 (en) 2008-08-29 2012-08-14 Red Hat, Inc. Methods and systems for assigning provisioning servers in a software provisioning environment
DE102011006722A1 (en) * 2011-04-04 2012-10-04 Endress + Hauser Conducta Gesellschaft für Mess- und Regeltechnik mbH + Co. KG Method for programming subsystem of data transmission system, involves programming base software with super-ordinate subsystem, so that data flows from subordinate subsystem into super-ordinate subsystem
US8326972B2 (en) 2008-09-26 2012-12-04 Red Hat, Inc. Methods and systems for managing network connections in a software provisioning environment
US8402123B2 (en) 2009-02-24 2013-03-19 Red Hat, Inc. Systems and methods for inventorying un-provisioned systems in a software provisioning environment
EP2570920A1 (en) * 2011-09-16 2013-03-20 France Télécom System and method for cross-platform application execution and display
US8413259B2 (en) 2009-02-26 2013-04-02 Red Hat, Inc. Methods and systems for secure gated file deployment associated with provisioning
US8417926B2 (en) 2009-03-31 2013-04-09 Red Hat, Inc. Systems and methods for providing configuration management services from a provisioning server
US8446900B2 (en) 2010-06-18 2013-05-21 Damaka, Inc. System and method for transferring a call between endpoints in a hybrid peer-to-peer network
US8464247B2 (en) 2007-06-21 2013-06-11 Red Hat, Inc. Methods and systems for dynamically generating installation configuration files for software
US8478890B2 (en) 2011-07-15 2013-07-02 Damaka, Inc. System and method for reliable virtual bi-directional data stream communications with single socket point-to-multipoint capability
US20130204450A1 (en) * 2011-10-04 2013-08-08 Electro Industries/Gauge Tech Systems and methods for collecting, analyzing, billing, and reporting data from intelligent electronic devices
US20130290395A1 (en) * 2012-04-26 2013-10-31 Empire Technology Development Llc Multimedia application rental and billing
CN103648034A (en) * 2013-12-23 2014-03-19 乐视致新电子科技(天津)有限公司 Method and device for playing resources in intelligent television
US8689307B2 (en) 2010-03-19 2014-04-01 Damaka, Inc. System and method for providing a virtual peer-to-peer environment
US8713177B2 (en) 2008-05-30 2014-04-29 Red Hat, Inc. Remote management of networked systems using secure modular platform
US8725895B2 (en) 2010-02-15 2014-05-13 Damaka, Inc. NAT traversal by concurrently probing multiple candidates
US8743781B2 (en) 2010-10-11 2014-06-03 Damaka, Inc. System and method for a reverse invitation in a hybrid peer-to-peer environment
US8769059B1 (en) * 2012-05-23 2014-07-01 Amazon Technologies, Inc. Best practice analysis, third-party plug-ins
US8782204B2 (en) 2008-11-28 2014-07-15 Red Hat, Inc. Monitoring hardware resources in a software provisioning environment
US8793683B2 (en) 2008-08-28 2014-07-29 Red Hat, Inc. Importing software distributions in a software provisioning environment
US8792429B2 (en) 2010-12-14 2014-07-29 Microsoft Corporation Direct connection with side channel control
US20140237465A1 (en) * 2012-11-26 2014-08-21 Tencent Technology (Shenzhen) Company Limited Software download method and software download apparatus
US8825819B2 (en) 2009-11-30 2014-09-02 Red Hat, Inc. Mounting specified storage resources from storage area network in machine provisioning platform
US20140259005A1 (en) * 2013-03-08 2014-09-11 Air Computing, Inc. Systems and methods for managing files in a cloud-based computing environment
US8867549B2 (en) 2004-06-29 2014-10-21 Damaka, Inc. System and method for concurrent sessions in a peer-to-peer hybrid communications network
US8874785B2 (en) 2010-02-15 2014-10-28 Damaka, Inc. System and method for signaling and data tunneling in a peer-to-peer environment
US8892646B2 (en) 2010-08-25 2014-11-18 Damaka, Inc. System and method for shared session appearance in a hybrid peer-to-peer environment
US8923770B2 (en) 2010-12-09 2014-12-30 Microsoft Corporation Cognitive use of multiple regulatory domains
US8930512B2 (en) 2008-08-21 2015-01-06 Red Hat, Inc. Providing remote software provisioning to machines
US20150026307A1 (en) * 2013-07-20 2015-01-22 Cisco Technology, Inc. Xmpp based upnp device architecture for cloud computing in a network environment
US8948132B2 (en) 2005-03-15 2015-02-03 Damaka, Inc. Device and method for maintaining a communication session during a network transition
US8948382B2 (en) 2010-12-16 2015-02-03 Microsoft Corporation Secure protocol for peer-to-peer network
US8954574B1 (en) 2012-05-23 2015-02-10 Amazon Technologies, Inc. Best practice analysis, migration advisor
US8971841B2 (en) 2010-12-17 2015-03-03 Microsoft Corporation Operating system supporting cost aware applications
US8990368B2 (en) 2009-02-27 2015-03-24 Red Hat, Inc. Discovery of network software relationships
CN104468695A (en) * 2013-09-25 2015-03-25 索尼公司 System and methods for managing applications in multiple devices
US9015258B2 (en) 2010-04-29 2015-04-21 Damaka, Inc. System and method for peer-to-peer media routing using a third party instant messaging system for signaling
US9021470B2 (en) 2008-08-29 2015-04-28 Red Hat, Inc. Software provisioning in multiple network configuration environment
US9027032B2 (en) 2013-07-16 2015-05-05 Damaka, Inc. System and method for providing additional functionality to existing software in an integrated manner
US20150143361A1 (en) * 2013-11-19 2015-05-21 Institute For Information Industry Software roaming system, method and computer readable storage medium thereof
US9043488B2 (en) 2010-03-29 2015-05-26 Damaka, Inc. System and method for session sweeping between devices
US20150178064A1 (en) * 2013-12-23 2015-06-25 Google Inc. Providing a software update to computing devices on the same network
WO2015097583A1 (en) * 2013-12-24 2015-07-02 International Business Machines Corporation Configuration updates across peer storage systems
WO2015116363A1 (en) * 2014-02-03 2015-08-06 Updatelogic, Inc. Facilitating interactive support sessions for an embedded device using a portable device
US9106509B2 (en) 2004-06-29 2015-08-11 Damaka, Inc. System and method for data transfer in a peer-to-peer hybrid communication network
US9111118B2 (en) 2008-08-29 2015-08-18 Red Hat, Inc. Managing access in a software provisioning environment
US9128927B2 (en) 2010-09-24 2015-09-08 Damaka, Inc. System and method for language translation in a hybrid peer-to-peer environment
US9134987B2 (en) 2009-05-29 2015-09-15 Red Hat, Inc. Retiring target machines by a provisioning server
US9135279B2 (en) 2007-05-04 2015-09-15 Microsoft Technology Licensing, Llc Mesh-managing data across a distributed set of devices
US9143489B2 (en) 2010-06-23 2015-09-22 Damaka, Inc. System and method for secure messaging in a hybrid peer-to-peer network
US9172703B2 (en) 2004-06-29 2015-10-27 Damaka, Inc. System and method for peer-to-peer hybrid communications
US9191416B2 (en) 2010-04-16 2015-11-17 Damaka, Inc. System and method for providing enterprise voice call continuity
US20150341448A1 (en) * 2008-06-23 2015-11-26 Huawei Technologies Co., Ltd. Method, system, service selection entity, and service management entity for selectingservice provision entity
US9209902B2 (en) 2013-12-10 2015-12-08 At&T Intellectual Property I, L.P. Quasi-optical coupler
US9210268B2 (en) 2011-05-17 2015-12-08 Damaka, Inc. System and method for transferring a call bridge between communication devices
US20160007136A1 (en) * 2013-03-20 2016-01-07 Nokia Technologies Oy Application recommendations
US9250672B2 (en) 2009-05-27 2016-02-02 Red Hat, Inc. Cloning target machines in a software provisioning environment
US20160055133A1 (en) * 2014-08-19 2016-02-25 Adlast, Inc. Systems and methods for directing access to products and services
US9298747B2 (en) 2008-03-20 2016-03-29 Microsoft Technology Licensing, Llc Deployable, consistent, and extensible computing environment platform
US9312919B1 (en) 2014-10-21 2016-04-12 At&T Intellectual Property I, Lp Transmission device with impairment compensation and methods for use therewith
CN105516226A (en) * 2014-09-26 2016-04-20 酷派软件技术(深圳)有限公司 Data download method, data download device, and terminal
US9356997B2 (en) 2011-04-04 2016-05-31 Damaka, Inc. System and method for sharing unsupported document types between communication devices
US9357016B2 (en) 2013-10-18 2016-05-31 Damaka, Inc. System and method for virtual parallel resource management
US20160182518A1 (en) * 2014-12-23 2016-06-23 Mcafee, Inc. Self-Organizing Trusted Networks
US9390120B1 (en) 2013-12-31 2016-07-12 Google Inc. System and methods for organizing hierarchical database replication
US9420065B2 (en) 2013-01-18 2016-08-16 Google Inc. Peer-to-peer software updates
US9426185B1 (en) * 2013-06-03 2016-08-23 Ayla Networks, Inc. Proximity based communication with embedded system
US9432412B2 (en) 2004-06-29 2016-08-30 Damaka, Inc. System and method for routing and communicating in a heterogeneous network environment
US9461706B1 (en) 2015-07-31 2016-10-04 At&T Intellectual Property I, Lp Method and apparatus for exchanging communication signals
US9467870B2 (en) 2013-11-06 2016-10-11 At&T Intellectual Property I, L.P. Surface-wave communications and methods thereof
US9477570B2 (en) 2008-08-26 2016-10-25 Red Hat, Inc. Monitoring software provisioning
US9490869B1 (en) 2015-05-14 2016-11-08 At&T Intellectual Property I, L.P. Transmission medium having multiple cores and methods for use therewith
US9503189B2 (en) 2014-10-10 2016-11-22 At&T Intellectual Property I, L.P. Method and apparatus for arranging communication sessions in a communication system
US9509415B1 (en) 2015-06-25 2016-11-29 At&T Intellectual Property I, L.P. Methods and apparatus for inducing a fundamental wave mode on a transmission medium
US9520945B2 (en) 2014-10-21 2016-12-13 At&T Intellectual Property I, L.P. Apparatus for providing communication services and methods thereof
US9525524B2 (en) 2013-05-31 2016-12-20 At&T Intellectual Property I, L.P. Remote distributed antenna system
US9525210B2 (en) 2014-10-21 2016-12-20 At&T Intellectual Property I, L.P. Guided-wave transmission device with non-fundamental mode propagation and methods for use therewith
US9531427B2 (en) 2014-11-20 2016-12-27 At&T Intellectual Property I, L.P. Transmission device with mode division multiplexing and methods for use therewith
US9542203B2 (en) 2010-12-06 2017-01-10 Microsoft Technology Licensing, Llc Universal dock for context sensitive computing device
US9558195B2 (en) 2009-02-27 2017-01-31 Red Hat, Inc. Depopulation of user data from network
US9564947B2 (en) 2014-10-21 2017-02-07 At&T Intellectual Property I, L.P. Guided-wave transmission device with diversity and methods for use therewith
US9577307B2 (en) 2014-10-21 2017-02-21 At&T Intellectual Property I, L.P. Guided-wave transmission device and methods for use therewith
US9608692B2 (en) 2015-06-11 2017-03-28 At&T Intellectual Property I, L.P. Repeater and methods for use therewith
US9608740B2 (en) 2015-07-15 2017-03-28 At&T Intellectual Property I, L.P. Method and apparatus for launching a wave mode that mitigates interference
US9615269B2 (en) 2014-10-02 2017-04-04 At&T Intellectual Property I, L.P. Method and apparatus that provides fault tolerance in a communication network
US9628116B2 (en) 2015-07-14 2017-04-18 At&T Intellectual Property I, L.P. Apparatus and methods for transmitting wireless signals
US9626710B1 (en) 2012-05-23 2017-04-18 Amazon Technologies, Inc. Best practice analysis, optimized resource use
US9640850B2 (en) 2015-06-25 2017-05-02 At&T Intellectual Property I, L.P. Methods and apparatus for inducing a non-fundamental wave mode on a transmission medium
US9648051B2 (en) 2007-09-28 2017-05-09 Damaka, Inc. System and method for transitioning a communication session between networks that are not commonly controlled
US9654173B2 (en) 2014-11-20 2017-05-16 At&T Intellectual Property I, L.P. Apparatus for powering a communication device and methods thereof
US9653770B2 (en) 2014-10-21 2017-05-16 At&T Intellectual Property I, L.P. Guided wave coupler, coupling module and methods for use therewith
US9667317B2 (en) 2015-06-15 2017-05-30 At&T Intellectual Property I, L.P. Method and apparatus for providing security using network traffic adjustments
US9680670B2 (en) 2014-11-20 2017-06-13 At&T Intellectual Property I, L.P. Transmission device with channel equalization and control and methods for use therewith
US9685992B2 (en) 2014-10-03 2017-06-20 At&T Intellectual Property I, L.P. Circuit panel network and methods thereof
US9692101B2 (en) 2014-08-26 2017-06-27 At&T Intellectual Property I, L.P. Guided wave couplers for coupling electromagnetic waves between a waveguide surface and a surface of a wire
US9699785B2 (en) 2012-12-05 2017-07-04 At&T Intellectual Property I, L.P. Backhaul link for distributed antenna system
US9705571B2 (en) 2015-09-16 2017-07-11 At&T Intellectual Property I, L.P. Method and apparatus for use with a radio distributed antenna system
US9705561B2 (en) 2015-04-24 2017-07-11 At&T Intellectual Property I, L.P. Directional coupling device and methods for use therewith
US9722318B2 (en) 2015-07-14 2017-08-01 At&T Intellectual Property I, L.P. Method and apparatus for coupling an antenna to a device
US9727320B2 (en) 2009-02-25 2017-08-08 Red Hat, Inc. Configuration of provisioning servers in virtualized systems
US9729197B2 (en) 2015-10-01 2017-08-08 At&T Intellectual Property I, L.P. Method and apparatus for communicating network management traffic over a network
US9735833B2 (en) 2015-07-31 2017-08-15 At&T Intellectual Property I, L.P. Method and apparatus for communications management in a neighborhood network
US9742462B2 (en) 2014-12-04 2017-08-22 At&T Intellectual Property I, L.P. Transmission medium and communication interfaces and methods for use therewith
US9748626B2 (en) 2015-05-14 2017-08-29 At&T Intellectual Property I, L.P. Plurality of cables having different cross-sectional shapes which are bundled together to form a transmission medium
US9749013B2 (en) 2015-03-17 2017-08-29 At&T Intellectual Property I, L.P. Method and apparatus for reducing attenuation of electromagnetic waves guided by a transmission medium
US9749053B2 (en) 2015-07-23 2017-08-29 At&T Intellectual Property I, L.P. Node device, repeater and methods for use therewith
US9755697B2 (en) 2014-09-15 2017-09-05 At&T Intellectual Property I, L.P. Method and apparatus for sensing a condition in a transmission medium of electromagnetic waves
US9762289B2 (en) 2014-10-14 2017-09-12 At&T Intellectual Property I, L.P. Method and apparatus for transmitting or receiving signals in a transportation system
US9769128B2 (en) 2015-09-28 2017-09-19 At&T Intellectual Property I, L.P. Method and apparatus for encryption of communications over a network
US9769020B2 (en) 2014-10-21 2017-09-19 At&T Intellectual Property I, L.P. Method and apparatus for responding to events affecting communications in a communication network
US9780834B2 (en) 2014-10-21 2017-10-03 At&T Intellectual Property I, L.P. Method and apparatus for transmitting electromagnetic waves
US9793955B2 (en) 2015-04-24 2017-10-17 At&T Intellectual Property I, Lp Passive electrical coupling device and methods for use therewith
US9793951B2 (en) 2015-07-15 2017-10-17 At&T Intellectual Property I, L.P. Method and apparatus for launching a wave mode that mitigates interference
US9793954B2 (en) 2015-04-28 2017-10-17 At&T Intellectual Property I, L.P. Magnetic coupling device and methods for use therewith
US9800327B2 (en) 2014-11-20 2017-10-24 At&T Intellectual Property I, L.P. Apparatus for controlling operations of a communication device and methods thereof
US9820146B2 (en) 2015-06-12 2017-11-14 At&T Intellectual Property I, L.P. Method and apparatus for authentication and identity management of communicating devices
US9838896B1 (en) 2016-12-09 2017-12-05 At&T Intellectual Property I, L.P. Method and apparatus for assessing network coverage
US9836957B2 (en) 2015-07-14 2017-12-05 At&T Intellectual Property I, L.P. Method and apparatus for communicating with premises equipment
US9847566B2 (en) 2015-07-14 2017-12-19 At&T Intellectual Property I, L.P. Method and apparatus for adjusting a field of a signal to mitigate interference
US9847850B2 (en) 2014-10-14 2017-12-19 At&T Intellectual Property I, L.P. Method and apparatus for adjusting a mode of communication in a communication network
US20170364349A1 (en) * 2016-06-16 2017-12-21 Axon Enterprise, Inc. Systems and Methods for Distributing Updates to Devices
US9853342B2 (en) 2015-07-14 2017-12-26 At&T Intellectual Property I, L.P. Dielectric transmission medium connector and methods for use therewith
US9860075B1 (en) 2016-08-26 2018-01-02 At&T Intellectual Property I, L.P. Method and communication node for broadband distribution
US9866309B2 (en) 2015-06-03 2018-01-09 At&T Intellectual Property I, Lp Host node device and methods for use therewith
US9865911B2 (en) 2015-06-25 2018-01-09 At&T Intellectual Property I, L.P. Waveguide system for slot radiating first electromagnetic waves that are combined into a non-fundamental wave mode second electromagnetic wave on a transmission medium
US9871283B2 (en) 2015-07-23 2018-01-16 At&T Intellectual Property I, Lp Transmission medium having a dielectric core comprised of plural members connected by a ball and socket configuration
US9871282B2 (en) 2015-05-14 2018-01-16 At&T Intellectual Property I, L.P. At least one transmission medium having a dielectric surface that is covered at least in part by a second dielectric
US20180019919A1 (en) * 2016-07-15 2018-01-18 Dell Products L.P. System and method for refreshing an information handling system using many to one peer based communication
US9876264B2 (en) 2015-10-02 2018-01-23 At&T Intellectual Property I, Lp Communication system, guided wave switch and methods for use therewith
US9876571B2 (en) 2015-02-20 2018-01-23 At&T Intellectual Property I, Lp Guided-wave transmission device with non-fundamental mode propagation and methods for use therewith
US9876605B1 (en) 2016-10-21 2018-01-23 At&T Intellectual Property I, L.P. Launcher and coupling system to support desired guided wave mode
US9882277B2 (en) 2015-10-02 2018-01-30 At&T Intellectual Property I, Lp Communication device and antenna assembly with actuated gimbal mount
US9882257B2 (en) 2015-07-14 2018-01-30 At&T Intellectual Property I, L.P. Method and apparatus for launching a wave mode that mitigates interference
US9886423B2 (en) 2015-06-19 2018-02-06 International Business Machines Corporation Reconciliation of transcripts
US9893795B1 (en) 2016-12-07 2018-02-13 At&T Intellectual Property I, Lp Method and repeater for broadband distribution
US9904535B2 (en) 2015-09-14 2018-02-27 At&T Intellectual Property I, L.P. Method and apparatus for distributing software
US9906269B2 (en) 2014-09-17 2018-02-27 At&T Intellectual Property I, L.P. Monitoring and mitigating conditions in a communication network
US9911020B1 (en) 2016-12-08 2018-03-06 At&T Intellectual Property I, L.P. Method and apparatus for tracking via a radio frequency identification device
US9912382B2 (en) 2015-06-03 2018-03-06 At&T Intellectual Property I, Lp Network termination and methods for use therewith
US9912419B1 (en) 2016-08-24 2018-03-06 At&T Intellectual Property I, L.P. Method and apparatus for managing a fault in a distributed antenna system
US9913139B2 (en) 2015-06-09 2018-03-06 At&T Intellectual Property I, L.P. Signal fingerprinting for authentication of communicating devices
US9912027B2 (en) 2015-07-23 2018-03-06 At&T Intellectual Property I, L.P. Method and apparatus for exchanging communication signals
US9917341B2 (en) 2015-05-27 2018-03-13 At&T Intellectual Property I, L.P. Apparatus and method for launching electromagnetic waves and for modifying radial dimensions of the propagating electromagnetic waves
US9927517B1 (en) 2016-12-06 2018-03-27 At&T Intellectual Property I, L.P. Apparatus and methods for sensing rainfall
US9934020B2 (en) 2015-03-10 2018-04-03 International Business Machines Corporation Intelligent mobile application update
US9948333B2 (en) 2015-07-23 2018-04-17 At&T Intellectual Property I, L.P. Method and apparatus for wireless communications to mitigate interference
US9948354B2 (en) 2015-04-28 2018-04-17 At&T Intellectual Property I, L.P. Magnetic coupling device with reflective plate and methods for use therewith
US9952851B2 (en) 2015-03-10 2018-04-24 International Business Machines Corporation Intelligent mobile application update
US9954287B2 (en) 2014-11-20 2018-04-24 At&T Intellectual Property I, L.P. Apparatus for converting wireless signals and electromagnetic waves and methods thereof
US9967173B2 (en) 2015-07-31 2018-05-08 At&T Intellectual Property I, L.P. Method and apparatus for authentication and identity management of communicating devices
US9973940B1 (en) 2017-02-27 2018-05-15 At&T Intellectual Property I, L.P. Apparatus and methods for dynamic impedance matching of a guided wave launcher
US9991580B2 (en) 2016-10-21 2018-06-05 At&T Intellectual Property I, L.P. Launcher and coupling system for guided wave mode cancellation
US9997819B2 (en) 2015-06-09 2018-06-12 At&T Intellectual Property I, L.P. Transmission medium and method for facilitating propagation of electromagnetic waves via a core
US9998870B1 (en) 2016-12-08 2018-06-12 At&T Intellectual Property I, L.P. Method and apparatus for proximity sensing
US9999038B2 (en) 2013-05-31 2018-06-12 At&T Intellectual Property I, L.P. Remote distributed antenna system
US10009063B2 (en) 2015-09-16 2018-06-26 At&T Intellectual Property I, L.P. Method and apparatus for use with a radio distributed antenna system having an out-of-band reference signal
US10009065B2 (en) 2012-12-05 2018-06-26 At&T Intellectual Property I, L.P. Backhaul link for distributed antenna system
US10009901B2 (en) 2015-09-16 2018-06-26 At&T Intellectual Property I, L.P. Method, apparatus, and computer-readable storage medium for managing utilization of wireless resources between base stations
US10009067B2 (en) 2014-12-04 2018-06-26 At&T Intellectual Property I, L.P. Method and apparatus for configuring a communication interface
US10020587B2 (en) 2015-07-31 2018-07-10 At&T Intellectual Property I, L.P. Radial antenna and methods for use therewith
US10020844B2 (en) 2016-12-06 2018-07-10 T&T Intellectual Property I, L.P. Method and apparatus for broadcast communication via guided waves
US10027397B2 (en) 2016-12-07 2018-07-17 At&T Intellectual Property I, L.P. Distributed antenna system and methods for use therewith
US10033108B2 (en) 2015-07-14 2018-07-24 At&T Intellectual Property I, L.P. Apparatus and methods for generating an electromagnetic wave having a wave mode that mitigates interference
US10033107B2 (en) 2015-07-14 2018-07-24 At&T Intellectual Property I, L.P. Method and apparatus for coupling an antenna to a device
US10044409B2 (en) 2015-07-14 2018-08-07 At&T Intellectual Property I, L.P. Transmission medium and methods for use therewith
US10051483B2 (en) 2015-10-16 2018-08-14 At&T Intellectual Property I, L.P. Method and apparatus for directing wireless signals
US10051629B2 (en) 2015-09-16 2018-08-14 At&T Intellectual Property I, L.P. Method and apparatus for use with a radio distributed antenna system having an in-band reference signal
US10069535B2 (en) 2016-12-08 2018-09-04 At&T Intellectual Property I, L.P. Apparatus and methods for launching electromagnetic waves having a certain electric field structure
US10074890B2 (en) 2015-10-02 2018-09-11 At&T Intellectual Property I, L.P. Communication device and antenna with integrated light assembly
US10075385B1 (en) * 2014-07-16 2018-09-11 Ivanti, Inc. Systems and methods for discovering and downloading configuration files from peer nodes
US10079661B2 (en) 2015-09-16 2018-09-18 At&T Intellectual Property I, L.P. Method and apparatus for use with a radio distributed antenna system having a clock reference
US10090594B2 (en) 2016-11-23 2018-10-02 At&T Intellectual Property I, L.P. Antenna system having structural configurations for assembly
US10090606B2 (en) 2015-07-15 2018-10-02 At&T Intellectual Property I, L.P. Antenna system with dielectric array and methods for use therewith
US10091025B2 (en) 2016-03-31 2018-10-02 Damaka, Inc. System and method for enabling use of a single user identifier across incompatible networks for UCC functionality
US10103422B2 (en) 2016-12-08 2018-10-16 At&T Intellectual Property I, L.P. Method and apparatus for mounting network devices
US10103801B2 (en) 2015-06-03 2018-10-16 At&T Intellectual Property I, L.P. Host node device and methods for use therewith
US10133485B2 (en) 2009-11-30 2018-11-20 Red Hat, Inc. Integrating storage resources from storage area network in machine provisioning platform
US10135147B2 (en) 2016-10-18 2018-11-20 At&T Intellectual Property I, L.P. Apparatus and methods for launching guided waves via an antenna
US10135146B2 (en) 2016-10-18 2018-11-20 At&T Intellectual Property I, L.P. Apparatus and methods for launching guided waves via circuits
US10135145B2 (en) 2016-12-06 2018-11-20 At&T Intellectual Property I, L.P. Apparatus and methods for generating an electromagnetic wave along a transmission medium
US10136434B2 (en) 2015-09-16 2018-11-20 At&T Intellectual Property I, L.P. Method and apparatus for use with a radio distributed antenna system having an ultra-wideband control channel
US10142086B2 (en) 2015-06-11 2018-11-27 At&T Intellectual Property I, L.P. Repeater and methods for use therewith
US10142167B2 (en) 2015-05-13 2018-11-27 Cisco Technology, Inc. Peer-assisted image update with self-healing capabilities
US10139820B2 (en) 2016-12-07 2018-11-27 At&T Intellectual Property I, L.P. Method and apparatus for deploying equipment of a communication system
US10148016B2 (en) 2015-07-14 2018-12-04 At&T Intellectual Property I, L.P. Apparatus and methods for communicating utilizing an antenna array
US10144036B2 (en) 2015-01-30 2018-12-04 At&T Intellectual Property I, L.P. Method and apparatus for mitigating interference affecting a propagation of electromagnetic waves guided by a transmission medium
US10154493B2 (en) 2015-06-03 2018-12-11 At&T Intellectual Property I, L.P. Network termination and methods for use therewith
US10168695B2 (en) 2016-12-07 2019-01-01 At&T Intellectual Property I, L.P. Method and apparatus for controlling an unmanned aircraft
US10170840B2 (en) 2015-07-14 2019-01-01 At&T Intellectual Property I, L.P. Apparatus and methods for sending or receiving electromagnetic signals
US10178445B2 (en) 2016-11-23 2019-01-08 At&T Intellectual Property I, L.P. Methods, devices, and systems for load balancing between a plurality of waveguides
US10180845B1 (en) 2015-11-13 2019-01-15 Ivanti, Inc. System and methods for network booting
US10205655B2 (en) 2015-07-14 2019-02-12 At&T Intellectual Property I, L.P. Apparatus and methods for communicating utilizing an antenna array and multiple communication paths
US20190056924A1 (en) * 2017-01-12 2019-02-21 Telink Semiconductor (Shanghai) Co., Ltd. Node upgrading method and system in mesh network
US10224634B2 (en) 2016-11-03 2019-03-05 At&T Intellectual Property I, L.P. Methods and apparatus for adjusting an operational characteristic of an antenna
US10225025B2 (en) 2016-11-03 2019-03-05 At&T Intellectual Property I, L.P. Method and apparatus for detecting a fault in a communication system
US10243784B2 (en) 2014-11-20 2019-03-26 At&T Intellectual Property I, L.P. System for generating topology information and methods thereof
US10243270B2 (en) 2016-12-07 2019-03-26 At&T Intellectual Property I, L.P. Beam adaptive multi-feed dielectric antenna system and methods for use therewith
US10264586B2 (en) 2016-12-09 2019-04-16 At&T Mobility Ii Llc Cloud-based packet controller and methods for use therewith
US10291311B2 (en) 2016-09-09 2019-05-14 At&T Intellectual Property I, L.P. Method and apparatus for mitigating a fault in a distributed antenna system
US10291334B2 (en) 2016-11-03 2019-05-14 At&T Intellectual Property I, L.P. System for detecting a fault in a communication system
US10298293B2 (en) 2017-03-13 2019-05-21 At&T Intellectual Property I, L.P. Apparatus of communication utilizing wireless network devices
US10303860B2 (en) 2011-10-04 2019-05-28 Electro Industries/Gauge Tech Security through layers in an intelligent electronic device
US10305190B2 (en) 2016-12-01 2019-05-28 At&T Intellectual Property I, L.P. Reflecting dielectric antenna system and methods for use therewith
US10313850B2 (en) * 2017-07-24 2019-06-04 Honeywell International Inc. Systems and methods for upgrading firmware in multiple devices of a wireless fire detection system
US10312567B2 (en) 2016-10-26 2019-06-04 At&T Intellectual Property I, L.P. Launcher with planar strip antenna and methods for use therewith
US10320586B2 (en) 2015-07-14 2019-06-11 At&T Intellectual Property I, L.P. Apparatus and methods for generating non-interfering electromagnetic waves on an insulated transmission medium
US10326689B2 (en) 2016-12-08 2019-06-18 At&T Intellectual Property I, L.P. Method and system for providing alternative communication paths
US10326494B2 (en) 2016-12-06 2019-06-18 At&T Intellectual Property I, L.P. Apparatus for measurement de-embedding and methods for use therewith
US10340983B2 (en) 2016-12-09 2019-07-02 At&T Intellectual Property I, L.P. Method and apparatus for surveying remote sites via guided wave communications
US10341142B2 (en) 2015-07-14 2019-07-02 At&T Intellectual Property I, L.P. Apparatus and methods for generating non-interfering electromagnetic waves on an uninsulated conductor
US10340573B2 (en) 2016-10-26 2019-07-02 At&T Intellectual Property I, L.P. Launcher with cylindrical coupling device and methods for use therewith
US10340600B2 (en) 2016-10-18 2019-07-02 At&T Intellectual Property I, L.P. Apparatus and methods for launching guided waves via plural waveguide systems
US10340603B2 (en) 2016-11-23 2019-07-02 At&T Intellectual Property I, L.P. Antenna system having shielded structural configurations for assembly
US10340601B2 (en) 2016-11-23 2019-07-02 At&T Intellectual Property I, L.P. Multi-antenna system and methods for use therewith
US10348837B2 (en) * 2014-12-16 2019-07-09 Citrix Systems, Inc. Methods and systems for connecting devices to applications and desktops that are receiving maintenance
US10348606B2 (en) * 2017-05-05 2019-07-09 Dell Products L.P. Method and system for providing a platform for testing of processes over server communications protocols
US10348391B2 (en) 2015-06-03 2019-07-09 At&T Intellectual Property I, L.P. Client node device with frequency conversion and methods for use therewith
US10355882B2 (en) 2014-08-05 2019-07-16 Damaka, Inc. System and method for providing unified communications and collaboration (UCC) connectivity between incompatible systems
US10355367B2 (en) 2015-10-16 2019-07-16 At&T Intellectual Property I, L.P. Antenna structure for exchanging wireless signals
US10359749B2 (en) 2016-12-07 2019-07-23 At&T Intellectual Property I, L.P. Method and apparatus for utilities management via guided wave communication
US10361489B2 (en) 2016-12-01 2019-07-23 At&T Intellectual Property I, L.P. Dielectric dish antenna system and methods for use therewith
US10374316B2 (en) 2016-10-21 2019-08-06 At&T Intellectual Property I, L.P. System and dielectric antenna with non-uniform dielectric
US10382976B2 (en) 2016-12-06 2019-08-13 At&T Intellectual Property I, L.P. Method and apparatus for managing wireless communications based on communication paths and network device positions
US10389037B2 (en) 2016-12-08 2019-08-20 At&T Intellectual Property I, L.P. Apparatus and methods for selecting sections of an antenna array and use therewith
US10389029B2 (en) 2016-12-07 2019-08-20 At&T Intellectual Property I, L.P. Multi-feed dielectric antenna system with core selection and methods for use therewith
US10396887B2 (en) 2015-06-03 2019-08-27 At&T Intellectual Property I, L.P. Client node device and methods for use therewith
US10411356B2 (en) 2016-12-08 2019-09-10 At&T Intellectual Property I, L.P. Apparatus and methods for selectively targeting communication devices with an antenna array
US10416979B2 (en) * 2017-05-16 2019-09-17 Red Hat, Inc. Package installation on a host file system using a container
US10430263B2 (en) 2016-02-01 2019-10-01 Electro Industries/Gauge Tech Devices, systems and methods for validating and upgrading firmware in intelligent electronic devices
US10439675B2 (en) 2016-12-06 2019-10-08 At&T Intellectual Property I, L.P. Method and apparatus for repeating guided wave communication signals
US10446936B2 (en) 2016-12-07 2019-10-15 At&T Intellectual Property I, L.P. Multi-feed dielectric antenna system and methods for use therewith
US10498044B2 (en) 2016-11-03 2019-12-03 At&T Intellectual Property I, L.P. Apparatus for configuring a surface of an antenna
US10530505B2 (en) 2016-12-08 2020-01-07 At&T Intellectual Property I, L.P. Apparatus and methods for launching electromagnetic waves along a transmission medium
US10535928B2 (en) 2016-11-23 2020-01-14 At&T Intellectual Property I, L.P. Antenna system and methods for use therewith
US10547348B2 (en) 2016-12-07 2020-01-28 At&T Intellectual Property I, L.P. Method and apparatus for switching transmission mediums in a communication system
US10601494B2 (en) 2016-12-08 2020-03-24 At&T Intellectual Property I, L.P. Dual-band communication device and method for use therewith
US10620933B2 (en) * 2015-03-24 2020-04-14 Oracle International Corporation Techniques for efficient application configuration patching
US10637149B2 (en) 2016-12-06 2020-04-28 At&T Intellectual Property I, L.P. Injection molded dielectric antenna and methods for use therewith
US10650940B2 (en) 2015-05-15 2020-05-12 At&T Intellectual Property I, L.P. Transmission medium having a conductive material and methods for use therewith
US10665942B2 (en) 2015-10-16 2020-05-26 At&T Intellectual Property I, L.P. Method and apparatus for adjusting wireless communications
US10679767B2 (en) 2015-05-15 2020-06-09 At&T Intellectual Property I, L.P. Transmission medium having a conductive material and methods for use therewith
US10694379B2 (en) 2016-12-06 2020-06-23 At&T Intellectual Property I, L.P. Waveguide system with device-based authentication and methods for use therewith
US10727599B2 (en) 2016-12-06 2020-07-28 At&T Intellectual Property I, L.P. Launcher with slot antenna and methods for use therewith
US10740765B1 (en) 2012-05-23 2020-08-11 Amazon Technologies, Inc. Best practice analysis as a service
US10740090B2 (en) 2014-07-03 2020-08-11 Oracle International Corporation Efficient application patching in heterogeneous computing environments
US10755542B2 (en) 2016-12-06 2020-08-25 At&T Intellectual Property I, L.P. Method and apparatus for surveillance via guided wave communication
US20200272459A1 (en) * 2019-02-25 2020-08-27 Red Hat, Inc. Deploying applications in a computing environment
US10771532B2 (en) 2011-10-04 2020-09-08 Electro Industries/Gauge Tech Intelligent electronic devices, systems and methods for communicating messages over a network
US10777873B2 (en) 2016-12-08 2020-09-15 At&T Intellectual Property I, L.P. Method and apparatus for mounting network devices
US10784670B2 (en) 2015-07-23 2020-09-22 At&T Intellectual Property I, L.P. Antenna support for aligning an antenna
US10811767B2 (en) 2016-10-21 2020-10-20 At&T Intellectual Property I, L.P. System and dielectric antenna with convex dielectric radome
US10819035B2 (en) 2016-12-06 2020-10-27 At&T Intellectual Property I, L.P. Launcher with helical antenna and methods for use therewith
US10862784B2 (en) 2011-10-04 2020-12-08 Electro Industries/Gauge Tech Systems and methods for processing meter information in a network of intelligent electronic devices
US10916969B2 (en) 2016-12-08 2021-02-09 At&T Intellectual Property I, L.P. Method and apparatus for providing power using an inductive coupling
US10938108B2 (en) 2016-12-08 2021-03-02 At&T Intellectual Property I, L.P. Frequency selective multi-feed dielectric antenna system and methods for use therewith
US10958435B2 (en) 2015-12-21 2021-03-23 Electro Industries/ Gauge Tech Providing security in an intelligent electronic device
US10986686B2 (en) 2019-07-11 2021-04-20 International Business Machines Corporation Offline device management
US11012534B2 (en) * 2017-02-23 2021-05-18 Osram Gmbh Node for a multi-hop communication network, related lighting system, method of updating the software of lighting modules and computer-program product
US11032819B2 (en) 2016-09-15 2021-06-08 At&T Intellectual Property I, L.P. Method and apparatus for use with a radio distributed antenna system having a control channel reference signal
US20210274341A1 (en) * 2018-11-20 2021-09-02 Parallel Wireless, Inc. Secure Software Update in a Wireless Mesh Radio Network Using Peer-to-Peer File Sharing
US20210294657A1 (en) * 2020-03-23 2021-09-23 T-Mobile Usa, Inc. Local edge device
US20220101335A1 (en) * 2020-09-28 2022-03-31 Arris Enterprises Llc Identification of unsupported device capability to service provider for enhancement and customer attraction
US11307845B2 (en) * 2016-08-19 2022-04-19 Veniam, Inc. Systems and methods for updating network nodes
US20220385531A1 (en) * 2019-11-13 2022-12-01 Huawei Technologies Co., Ltd. Mobile device management method and device
US11686594B2 (en) 2018-02-17 2023-06-27 Ei Electronics Llc Devices, systems and methods for a cloud-based meter management system
US11686749B2 (en) 2004-10-25 2023-06-27 El Electronics Llc Power meter having multiple ethernet ports
US11734396B2 (en) 2014-06-17 2023-08-22 El Electronics Llc Security through layers in an intelligent electronic device
US11734704B2 (en) 2018-02-17 2023-08-22 Ei Electronics Llc Devices, systems and methods for the collection of meter data in a common, globally accessible, group of servers, to provide simpler configuration, collection, viewing, and analysis of the meter data
US11754997B2 (en) 2018-02-17 2023-09-12 Ei Electronics Llc Devices, systems and methods for predicting future consumption values of load(s) in power distribution systems
US11816465B2 (en) 2013-03-15 2023-11-14 Ei Electronics Llc Devices, systems and methods for tracking and upgrading firmware in intelligent electronic devices
US11863589B2 (en) 2019-06-07 2024-01-02 Ei Electronics Llc Enterprise security in meters
US11941639B1 (en) 2020-06-08 2024-03-26 Amazon Technologies, Inc. Best practice analysis as a service

Families Citing this family (77)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US9819561B2 (en) 2000-10-26 2017-11-14 Liveperson, Inc. System and methods for facilitating object assignments
US8868448B2 (en) 2000-10-26 2014-10-21 Liveperson, Inc. Systems and methods to facilitate selling of products and services
US8260917B1 (en) * 2004-11-24 2012-09-04 At&T Mobility Ii, Llc Service manager for adaptive load shedding
US7716662B2 (en) * 2005-06-22 2010-05-11 Comcast Cable Holdings, Llc System and method for generating a set top box code download step sequence
US9432468B2 (en) 2005-09-14 2016-08-30 Liveperson, Inc. System and method for design and dynamic generation of a web page
US8738732B2 (en) 2005-09-14 2014-05-27 Liveperson, Inc. System and method for performing follow up based on user interactions
KR20080005622A (en) * 2006-07-10 2008-01-15 삼성전자주식회사 Control point at upnp network and registration method of preference device
EP1939759A1 (en) * 2006-12-29 2008-07-02 Vodafone Holding GmbH Method for providing content to a mobile device, gateway for providing content and mobile device
EP2105839A4 (en) * 2007-01-16 2016-12-07 Mitsubishi Electric Corp Client terminal, application providing server, and application providing system
US8560654B2 (en) * 2007-02-02 2013-10-15 Hewlett-Packard Development Company Change management
US8316364B2 (en) * 2007-02-28 2012-11-20 Red Hat, Inc. Peer-to-peer software update distribution network
US8028019B2 (en) * 2007-02-28 2011-09-27 Solid State Networks, Inc. Methods and apparatus for data transfer in networks using distributed file location indices
US8296385B2 (en) 2007-04-23 2012-10-23 Lenovo (Singapore) Pte. Ltd. Apparatus and method for selective engagement in software distribution
JP4591486B2 (en) * 2007-08-23 2010-12-01 ソニー株式会社 Information processing apparatus, information processing method, and computer program
US20090158273A1 (en) * 2007-12-18 2009-06-18 Thanabalan Thavittupitchai Paul Systems and methods to distribute software for client receivers of a content distribution system
US20090172082A1 (en) * 2007-12-31 2009-07-02 Joaquin Sufuentes Software as a service in a peer-to-peer environment
US8943488B2 (en) * 2007-12-31 2015-01-27 Activision Publishing, Inc. Video game forward compatibility including software patching
WO2009096686A2 (en) 2008-01-29 2009-08-06 Samsung Electronics Co,. Ltd. Method for providing a content-sharing service, and a device therefor
US20090193455A1 (en) * 2008-01-29 2009-07-30 Samsung Electronics Co., Ltd. Information storage medium and method for providing additional contents based on trigger, and digital broadcast reception apparatus
US8973028B2 (en) * 2008-01-29 2015-03-03 Samsung Electronics Co., Ltd. Information storage medium storing metadata and method of providing additional contents, and digital broadcast reception apparatus
WO2009096684A2 (en) 2008-01-29 2009-08-06 Samsung Electronics Co,. Ltd. Content recording control method for peers, and a device therefor
US7516367B1 (en) * 2008-05-30 2009-04-07 International Business Machines Corporation Automated, distributed problem determination and upgrade planning tool
US8655341B2 (en) * 2008-06-24 2014-02-18 Haim Boukai Methods for mobile phone applications
US20090328234A1 (en) * 2008-06-26 2009-12-31 Condel International Technologies Inc. Method and system for performing interoperable digital rights management among different operating system platforms
US8260846B2 (en) 2008-07-25 2012-09-04 Liveperson, Inc. Method and system for providing targeted content to a surfer
US8762313B2 (en) 2008-07-25 2014-06-24 Liveperson, Inc. Method and system for creating a predictive model for targeting web-page to a surfer
US8805844B2 (en) 2008-08-04 2014-08-12 Liveperson, Inc. Expert search
US9892417B2 (en) 2008-10-29 2018-02-13 Liveperson, Inc. System and method for applying tracing tools for network locations
US8478820B2 (en) * 2009-08-26 2013-07-02 Qualcomm Incorporated Methods and systems for service discovery management in peer-to-peer networks
KR101612553B1 (en) * 2009-10-09 2016-04-27 삼성전자주식회사 Apparatus and method for interfacing between a remote user interface server and a remote user interface client
US8478776B2 (en) 2009-10-30 2013-07-02 Qualcomm Incorporated Methods and systems for peer-to-peer network discovery using multi-user diversity
US8825818B2 (en) * 2009-11-10 2014-09-02 Qualcomm Incorporated Host initiated connection to a device
EP2328325B1 (en) * 2009-11-26 2014-01-08 Alcatel Lucent Management framework and method for retrieving software identification information pertaining to a sensor in a network
US20110185354A1 (en) * 2010-01-26 2011-07-28 Emdigo Inc. Mobile Application Delivery Management System
EP2532118B1 (en) * 2010-02-03 2019-03-20 Samsung Electronics Co., Ltd. System and method for file transfer in universal plug and play telephony service
US8730928B2 (en) * 2010-02-23 2014-05-20 Qualcomm Incorporated Enhancements for increased spatial reuse in ad-hoc networks
EP2556449A1 (en) 2010-04-07 2013-02-13 Liveperson Inc. System and method for dynamically enabling customized web content and applications
WO2012055013A1 (en) * 2010-10-25 2012-05-03 Research In Motion Limited System and method for enabling applications to communicate using a peer-to-peer (p2p) system
US9703539B2 (en) * 2010-10-29 2017-07-11 Microsoft Technology Licensing, Llc Viral application distribution
US9350598B2 (en) 2010-12-14 2016-05-24 Liveperson, Inc. Authentication of service requests using a communications initiation feature
US8918465B2 (en) 2010-12-14 2014-12-23 Liveperson, Inc. Authentication of service requests initiated from a social networking site
US9072117B1 (en) * 2011-11-16 2015-06-30 Amazon Technologies, Inc. Distributed computing over a wireless ad hoc network
US8805941B2 (en) 2012-03-06 2014-08-12 Liveperson, Inc. Occasionally-connected computing interface
US9563336B2 (en) * 2012-04-26 2017-02-07 Liveperson, Inc. Dynamic user interface customization
US9672196B2 (en) 2012-05-15 2017-06-06 Liveperson, Inc. Methods and systems for presenting specialized content using campaign metrics
US9250983B2 (en) * 2012-06-01 2016-02-02 Blackberry Limited System and method for sharing items between electronic devices
JP5921693B2 (en) * 2012-08-09 2016-05-24 日本電信電話株式会社 Trace center device
US9658841B2 (en) * 2012-08-30 2017-05-23 Avaya Inc. System and method for efficient software replication
JP6131551B2 (en) * 2012-09-18 2017-05-24 株式会社リコー Information processing system, information processing apparatus, information processing method, and information processing program
US10171592B2 (en) 2012-10-24 2019-01-01 Intel Corporation Techniques for multi-level service discovery
US20140179229A1 (en) * 2012-12-24 2014-06-26 Arthur Lin Peer-to-peer wireless transmission system and method thereof
US9122554B2 (en) * 2013-02-08 2015-09-01 Microsoft Technology Licensing, Llc Pervasive service providing device-specific updates
US9842091B2 (en) * 2013-03-15 2017-12-12 Google Llc Switching to and from native web applications
US9575741B2 (en) * 2014-03-20 2017-02-21 Google Technology Holdings LLC Methods and devices for wireless device-to-device software upgrades
US11386442B2 (en) 2014-03-31 2022-07-12 Liveperson, Inc. Online behavioral predictor
US9661445B2 (en) * 2014-05-02 2017-05-23 Qualcomm Incorporated Methods and apparatus for integrating bluetooth devices into neighbor aware networks
US9563545B2 (en) 2014-05-28 2017-02-07 Lenovo Enterprise Solutions (Singapore) Pte. Ltd. Autonomous propagation of system updates
JP2016071422A (en) * 2014-09-26 2016-05-09 ブラザー工業株式会社 Software providing system and installation program
TWI568285B (en) * 2014-10-02 2017-01-21 財團法人資訊工業策進會 Service provider system and service provider method
US10003659B2 (en) * 2014-10-31 2018-06-19 Qualcomm Incorporated Efficient group communications leveraging LTE-D discovery for application layer contextual communication
US9606894B2 (en) 2015-03-04 2017-03-28 International Business Machines Corporation Collaborative collection of diagnostics data of software programs
US9612899B2 (en) 2015-03-04 2017-04-04 International Business Machines Corporation Collaborative collection of diagnostics data of software programs
US10389794B2 (en) * 2015-05-21 2019-08-20 International Business Machines Corporation Managing redundancy among application bundles
US10152516B2 (en) 2015-05-21 2018-12-11 International Business Machines Corporation Managing staleness latency among application bundles
US10389850B2 (en) * 2015-05-21 2019-08-20 International Business Machines Corporation Managing redundancy among application bundles
US9965262B2 (en) 2015-05-21 2018-05-08 International Business Machines Corporation Application bundle pulling
US10530660B2 (en) 2015-05-21 2020-01-07 International Business Machines Corporation Application bundle preloading
US9888057B2 (en) 2015-05-21 2018-02-06 International Business Machines Corporation Application bundle management across mixed file system types
JP6762963B2 (en) 2015-06-02 2020-09-30 ライブパーソン, インコーポレイテッド Dynamic communication routing based on consistency weighting and routing rules
US10025578B2 (en) * 2015-06-18 2018-07-17 Ricoh Company, Ltd. Information processing system and method on a client server environment for software download
US20170063723A1 (en) * 2015-08-26 2017-03-02 International Business Machines Corporation Asset arrangement management for a shared pool of configurable computing resources associated with a streaming application
CN107196983A (en) * 2016-03-15 2017-09-22 阿里巴巴集团控股有限公司 A kind of resource distribution method and device
CN109074248A (en) * 2016-04-04 2018-12-21 鲁门无线电通信公司 Method for the software upgrading distributed in communication network
CA3033743A1 (en) 2016-08-14 2018-02-22 Liveperson, Inc. Systems and methods for real-time remote control of mobile applications
GB201702933D0 (en) * 2017-02-23 2017-04-12 Ge Healthcare Bio Sciences Ab A method and a system for installation of an instrument
WO2019164268A1 (en) * 2018-02-20 2019-08-29 엘지전자 주식회사 Method for wireless connection in wireless lan system and wireless device using same
US11115269B1 (en) * 2020-10-20 2021-09-07 Metactix Llc System and method for updating an application for a population of computers

Citations (20)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20020147771A1 (en) * 2001-01-22 2002-10-10 Traversat Bernard A. Peer-to-peer computing architecture
US20030100372A1 (en) * 2001-11-23 2003-05-29 Cyberscan Technology, Inc. Modular entertainment and gaming systems
US20040083471A1 (en) * 2002-10-21 2004-04-29 Lg Electronics Inc. Method of upgrading system software of a home appliance
US20040085947A1 (en) * 2002-10-31 2004-05-06 Jan-Erik Ekberg Device detection and service discovery system and method for a mobile ad hoc communications network
US20050240665A1 (en) * 1999-06-11 2005-10-27 Microsoft Corporation Dynamic self-configuration for ad hoc peer networking
US20050267935A1 (en) * 1999-06-11 2005-12-01 Microsoft Corporation Data driven remote device control model with general programming interface-to-network messaging adaptor
US20050282637A1 (en) * 2003-03-10 2005-12-22 Cyberscan Technology, Inc. Universal peer-to-peer game download
US20060026304A1 (en) * 2004-05-04 2006-02-02 Price Robert M System and method for updating software in electronic devices
US20060031828A1 (en) * 2004-08-06 2006-02-09 Samsung Electronics Co., Ltd. Methodof apparatus for updating software of network device
US20060178216A1 (en) * 2003-07-15 2006-08-10 Shea Mattew T Multi-session user launching and invitation system and method
US20060179079A1 (en) * 2005-02-09 2006-08-10 Mikko Kolehmainen System, method and apparatus for data transfer between computing hosts
US20060200570A1 (en) * 2005-03-02 2006-09-07 Nokia Corporation Discovering and mounting network file systems via ad hoc, peer-to-peer networks
US20060217112A1 (en) * 2005-03-23 2006-09-28 Richard Mo System And Method For A Virtual Mobile Network
US20060230428A1 (en) * 2005-04-11 2006-10-12 Rob Craig Multi-player video game system
US20060291412A1 (en) * 2005-06-24 2006-12-28 Naqvi Shamim A Associated device discovery in IMS networks
US20070127394A1 (en) * 2004-02-06 2007-06-07 Nokia Crorporation Method and system for optimization of data transfer between networked devices
US20070153740A1 (en) * 2006-01-04 2007-07-05 Arcadyan Technology Corporation Method and apparatus for media handover in the network
US20070195760A1 (en) * 2006-02-23 2007-08-23 Mahfuzur Rahman Light weight service discovery protocol
US20080081558A1 (en) * 2006-09-29 2008-04-03 Sony Ericsson Mobile Communications Ab Handover for Audio and Video Playback Devices
US20080201723A1 (en) * 2005-10-11 2008-08-21 France Telecom Method of Automatically Managing Associations Between Services in a Distributed Environment

Family Cites Families (15)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6604140B1 (en) 1999-03-31 2003-08-05 International Business Machines Corporation Service framework for computing devices
JP2002014821A (en) * 2000-06-29 2002-01-18 Toshiba Corp Server client system and recording medium having application distributing method in the same system recorded thereon
US6931429B2 (en) 2001-04-27 2005-08-16 Left Gate Holdings, Inc. Adaptable wireless proximity networking
US7299304B2 (en) 2001-11-20 2007-11-20 Intel Corporation Method and architecture to support interaction between a host computer and remote devices
KR100712047B1 (en) 2002-10-31 2007-04-27 노키아 코포레이션 Device detection and service discovery system and method for a mobile ad hoc communications network
WO2004095293A1 (en) 2003-04-24 2004-11-04 Mitsubishi Denki Kabushiki Kaisha Video device, video module unit, and video device operation method
WO2005066808A1 (en) * 2004-01-06 2005-07-21 Matsushita Electric Industrial Co., Ltd. Device linkage service system and electronic device constituting the system
GB2410150B (en) * 2004-01-13 2006-05-10 Toshiba Res Europ Ltd Software download
JP4192137B2 (en) 2004-09-30 2008-12-03 株式会社東芝 Service providing apparatus, service providing method, and program
US20060258341A1 (en) 2005-05-13 2006-11-16 Microsoft Corporation Mobile internet services discovery and/or provisioning
TW200725335A (en) 2005-12-16 2007-07-01 Inventec Corp Circuit layout system with automatic prompt of items to be modified and method thereof
US8898203B2 (en) * 2005-12-27 2014-11-25 International Business Machines Corporation Generating a separable query design object and database schema through visual view editing
US20070255798A1 (en) * 2006-04-26 2007-11-01 Sap Ag Brokered virtualized application execution
US8616976B2 (en) * 2006-11-07 2013-12-31 Core Wireless Licensing S.A.R.L. Gaming via peer-to-peer networks
US8984279B2 (en) 2006-12-07 2015-03-17 Core Wireless Licensing S.A.R.L. System for user-friendly access control setup using a protected setup

Patent Citations (21)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20050240665A1 (en) * 1999-06-11 2005-10-27 Microsoft Corporation Dynamic self-configuration for ad hoc peer networking
US20050267935A1 (en) * 1999-06-11 2005-12-01 Microsoft Corporation Data driven remote device control model with general programming interface-to-network messaging adaptor
US7487230B2 (en) * 1999-06-11 2009-02-03 Microsoft Corporation Dynamic self-configuration for AD HOC peer networking
US20020147771A1 (en) * 2001-01-22 2002-10-10 Traversat Bernard A. Peer-to-peer computing architecture
US20030100372A1 (en) * 2001-11-23 2003-05-29 Cyberscan Technology, Inc. Modular entertainment and gaming systems
US20040083471A1 (en) * 2002-10-21 2004-04-29 Lg Electronics Inc. Method of upgrading system software of a home appliance
US20040085947A1 (en) * 2002-10-31 2004-05-06 Jan-Erik Ekberg Device detection and service discovery system and method for a mobile ad hoc communications network
US20050282637A1 (en) * 2003-03-10 2005-12-22 Cyberscan Technology, Inc. Universal peer-to-peer game download
US20060178216A1 (en) * 2003-07-15 2006-08-10 Shea Mattew T Multi-session user launching and invitation system and method
US20070127394A1 (en) * 2004-02-06 2007-06-07 Nokia Crorporation Method and system for optimization of data transfer between networked devices
US20060026304A1 (en) * 2004-05-04 2006-02-02 Price Robert M System and method for updating software in electronic devices
US20060031828A1 (en) * 2004-08-06 2006-02-09 Samsung Electronics Co., Ltd. Methodof apparatus for updating software of network device
US20060179079A1 (en) * 2005-02-09 2006-08-10 Mikko Kolehmainen System, method and apparatus for data transfer between computing hosts
US20060200570A1 (en) * 2005-03-02 2006-09-07 Nokia Corporation Discovering and mounting network file systems via ad hoc, peer-to-peer networks
US20060217112A1 (en) * 2005-03-23 2006-09-28 Richard Mo System And Method For A Virtual Mobile Network
US20060230428A1 (en) * 2005-04-11 2006-10-12 Rob Craig Multi-player video game system
US20060291412A1 (en) * 2005-06-24 2006-12-28 Naqvi Shamim A Associated device discovery in IMS networks
US20080201723A1 (en) * 2005-10-11 2008-08-21 France Telecom Method of Automatically Managing Associations Between Services in a Distributed Environment
US20070153740A1 (en) * 2006-01-04 2007-07-05 Arcadyan Technology Corporation Method and apparatus for media handover in the network
US20070195760A1 (en) * 2006-02-23 2007-08-23 Mahfuzur Rahman Light weight service discovery protocol
US20080081558A1 (en) * 2006-09-29 2008-04-03 Sony Ericsson Mobile Communications Ab Handover for Audio and Video Playback Devices

Cited By (515)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US9172703B2 (en) 2004-06-29 2015-10-27 Damaka, Inc. System and method for peer-to-peer hybrid communications
US9172702B2 (en) 2004-06-29 2015-10-27 Damaka, Inc. System and method for traversing a NAT device for peer-to-peer hybrid communications
US9497181B2 (en) 2004-06-29 2016-11-15 Damaka, Inc. System and method for concurrent sessions in a peer-to-peer hybrid communications network
US9106509B2 (en) 2004-06-29 2015-08-11 Damaka, Inc. System and method for data transfer in a peer-to-peer hybrid communication network
US10673568B2 (en) 2004-06-29 2020-06-02 Damaka, Inc. System and method for data transfer in a peer-to-peer hybrid communication network
US9432412B2 (en) 2004-06-29 2016-08-30 Damaka, Inc. System and method for routing and communicating in a heterogeneous network environment
US8867549B2 (en) 2004-06-29 2014-10-21 Damaka, Inc. System and method for concurrent sessions in a peer-to-peer hybrid communications network
US11686749B2 (en) 2004-10-25 2023-06-27 El Electronics Llc Power meter having multiple ethernet ports
US8948132B2 (en) 2005-03-15 2015-02-03 Damaka, Inc. Device and method for maintaining a communication session during a network transition
US9011254B2 (en) 2006-11-07 2015-04-21 Core Wireless Licensing S.A.R.L Gaming via peer-to-peer networks
US20080108437A1 (en) * 2006-11-07 2008-05-08 Kari Kaarela Gaming via peer-to-peer networks
US8616976B2 (en) 2006-11-07 2013-12-31 Core Wireless Licensing S.A.R.L. Gaming via peer-to-peer networks
US20100099359A1 (en) * 2007-02-26 2010-04-22 Lg Electronics Inc. Method for receiving data service
US9135279B2 (en) 2007-05-04 2015-09-15 Microsoft Technology Licensing, Llc Mesh-managing data across a distributed set of devices
US8132166B2 (en) 2007-05-14 2012-03-06 Red Hat, Inc. Methods and systems for provisioning software
US20080288939A1 (en) * 2007-05-14 2008-11-20 Dehaan Michael Methods and systems for provisioning software
US20080288938A1 (en) * 2007-05-14 2008-11-20 Dehaan Michael Methods and systems for provisioning software
US8271975B2 (en) 2007-05-14 2012-09-18 Red Hat, Inc. Method and system for provisioning software
US8185891B2 (en) 2007-05-14 2012-05-22 Red Hat, Inc. Methods and systems for provisioning software
US20080320472A1 (en) * 2007-06-20 2008-12-25 James Laska Methods and systems for dynamically generating installation configuration files for software
US8561058B2 (en) 2007-06-20 2013-10-15 Red Hat, Inc. Methods and systems for dynamically generating installation configuration files for software
US8464247B2 (en) 2007-06-21 2013-06-11 Red Hat, Inc. Methods and systems for dynamically generating installation configuration files for software
US20080320469A1 (en) * 2007-06-22 2008-12-25 Samsung Electronics Co., Ltd. Method of receiving/transmitting event message, controlled device, and control point
US9948748B2 (en) * 2007-06-22 2018-04-17 Samsung Electronics Co., Ltd. Method of receiving/transmitting event message, controlled device, and control point
US20090034534A1 (en) * 2007-07-30 2009-02-05 Stefano Faccin System and method for establishing and managing multimedia sessions between terminals
US20090063978A1 (en) * 2007-09-05 2009-03-05 Sony Corporation Network status icon in navigable toolbar
US8321538B2 (en) * 2007-09-24 2012-11-27 Hewlett-Packard Development Company, L.P. Autonomous network device configuration method
US20090083398A1 (en) * 2007-09-24 2009-03-26 Ford Daniel E Autonomous network device configuration method
US20130246590A1 (en) * 2007-09-24 2013-09-19 Hewlett-Packard Development Company, L.P. Autonomous network device configuration method
US9648051B2 (en) 2007-09-28 2017-05-09 Damaka, Inc. System and method for transitioning a communication session between networks that are not commonly controlled
US9264458B2 (en) 2007-11-28 2016-02-16 Damaka, Inc. System and method for endpoint handoff in a hybrid peer-to-peer networking environment
US20100312902A1 (en) * 2007-11-28 2010-12-09 Damaka, Inc. System and method for endpoint handoff in a hybrid peer-to-peer networking environment
US8380859B2 (en) * 2007-11-28 2013-02-19 Damaka, Inc. System and method for endpoint handoff in a hybrid peer-to-peer networking environment
US9654568B2 (en) * 2007-11-28 2017-05-16 Damaka, Inc. System and method for endpoint handoff in a hybrid peer-to-peer networking environment
US9026623B2 (en) * 2008-01-31 2015-05-05 Microsoft Technology Licensing, Llc Layered architectures for remote dynamic administration of distributed client configurations
US20090198796A1 (en) * 2008-01-31 2009-08-06 Microsoft Corporation Layered Architectures for Remote Dynamic Administration of Distributed Client Configurations
US20090252063A1 (en) * 2008-03-14 2009-10-08 Aastra Technologies Limited Method & system for configuring a network communications device
US8130677B2 (en) * 2008-03-14 2012-03-06 Aastra Technologies Limited Method and system for configuring a network communications device
US11366654B2 (en) * 2008-03-20 2022-06-21 Microsoft Technology Licensing, Llc Application management within deployable object hierarchy
US11593094B2 (en) * 2008-03-20 2023-02-28 Microsoft Technology Licensing, Llc Application management within deployable object hierarchy
US10970062B2 (en) * 2008-03-20 2021-04-06 Microsoft Technology Licensing, Llc Application management within deployable object hierarchy
US20090240935A1 (en) * 2008-03-20 2009-09-24 Microsoft Corporation Computing environment configuration
US20220276857A1 (en) * 2008-03-20 2022-09-01 Microsoft Technology Licensing, Llc Application management within deployable object hierarchy
US20090240728A1 (en) * 2008-03-20 2009-09-24 Microsoft Corporation Computing environment representation
US8572033B2 (en) 2008-03-20 2013-10-29 Microsoft Corporation Computing environment configuration
US9753712B2 (en) * 2008-03-20 2017-09-05 Microsoft Technology Licensing, Llc Application management within deployable object hierarchy
US10514901B2 (en) 2008-03-20 2019-12-24 Microsoft Technology Licensing, Llc Application management within deployable object hierarchy
US9298747B2 (en) 2008-03-20 2016-03-29 Microsoft Technology Licensing, Llc Deployable, consistent, and extensible computing environment platform
US9332063B2 (en) 2008-03-20 2016-05-03 Microsoft Technology Licensing, Llc Versatile application configuration for deployable computing environments
US8484174B2 (en) 2008-03-20 2013-07-09 Microsoft Corporation Computing environment representation
US20090241104A1 (en) * 2008-03-20 2009-09-24 Microsoft Corporation Application management within deployable object hierarchy
US20090248737A1 (en) * 2008-03-27 2009-10-01 Microsoft Corporation Computing environment representation
US8713177B2 (en) 2008-05-30 2014-04-29 Red Hat, Inc. Remote management of networked systems using secure modular platform
US8271967B2 (en) 2008-06-09 2012-09-18 Ricoh Company, Ltd. MFP software update using web service
EP2133790A1 (en) * 2008-06-09 2009-12-16 Ricoh Company, Ltd. MFP software update using web service
US20090307678A1 (en) * 2008-06-09 2009-12-10 Yuwen Wu Mfp software update using web service
US20150341448A1 (en) * 2008-06-23 2015-11-26 Huawei Technologies Co., Ltd. Method, system, service selection entity, and service management entity for selectingservice provision entity
US10033548B2 (en) * 2008-06-23 2018-07-24 Huawei Technologies Co., Ltd. Method, system, service selection entity, and service management entity for selecting service provision entity
US20090320016A1 (en) * 2008-06-24 2009-12-24 Canon Kabushiki Kaisha Image processing apparatus, control method therefor, storage medium, and distribution server
US20140269426A1 (en) * 2008-07-11 2014-09-18 Marvell World Trade Ltd. Service discovery methods
US8719384B2 (en) * 2008-07-11 2014-05-06 Marvell World Trade Ltd. Service discovery methods
US20100010899A1 (en) * 2008-07-11 2010-01-14 Lambert Paul A Service discovery methods
US9100297B2 (en) * 2008-08-20 2015-08-04 Red Hat, Inc. Registering new machines in a software provisioning environment
US20100049838A1 (en) * 2008-08-20 2010-02-25 Dehaan Michael Paul Methods and systems for automatically registering new machines in a software provisioning environment
US8930512B2 (en) 2008-08-21 2015-01-06 Red Hat, Inc. Providing remote software provisioning to machines
US20100057930A1 (en) * 2008-08-26 2010-03-04 Dehaan Michael Paul Methods and systems for automatically locating a provisioning server
US9477570B2 (en) 2008-08-26 2016-10-25 Red Hat, Inc. Monitoring software provisioning
US8838827B2 (en) 2008-08-26 2014-09-16 Red Hat, Inc. Locating a provisioning server
US20100056268A1 (en) * 2008-08-28 2010-03-04 Microsoft Corporation Automated direct bids to purchase entertainment content upon a predetermined event
US8793683B2 (en) 2008-08-28 2014-07-29 Red Hat, Inc. Importing software distributions in a software provisioning environment
US8229796B2 (en) * 2008-08-28 2012-07-24 Microsoft Corporation Automated direct bids to purchase entertainment content upon a predetermined event
US9952845B2 (en) 2008-08-29 2018-04-24 Red Hat, Inc. Provisioning machines having virtual storage resources
US8244836B2 (en) 2008-08-29 2012-08-14 Red Hat, Inc. Methods and systems for assigning provisioning servers in a software provisioning environment
US8103776B2 (en) 2008-08-29 2012-01-24 Red Hat, Inc. Systems and methods for storage allocation in provisioning of virtual machines
US9021470B2 (en) 2008-08-29 2015-04-28 Red Hat, Inc. Software provisioning in multiple network configuration environment
US9111118B2 (en) 2008-08-29 2015-08-18 Red Hat, Inc. Managing access in a software provisioning environment
US9164749B2 (en) 2008-08-29 2015-10-20 Red Hat, Inc. Differential software provisioning on virtual machines having different configurations
US20100058328A1 (en) * 2008-08-29 2010-03-04 Dehaan Michael Paul Systems and methods for differential software provisioning on virtual machines having different configurations
US20100057833A1 (en) * 2008-08-29 2010-03-04 Dehaan Michael Paul Methods and systems for centrally managing multiple provisioning servers
US20100058332A1 (en) * 2008-08-29 2010-03-04 Dehaan Michael Paul Systems and methods for provisioning machines having virtual storage resources
US8527578B2 (en) 2008-08-29 2013-09-03 Red Hat, Inc. Methods and systems for centrally managing multiple provisioning servers
US8612968B2 (en) 2008-09-26 2013-12-17 Red Hat, Inc. Methods and systems for managing network connections associated with provisioning objects in a software provisioning environment
US20100083245A1 (en) * 2008-09-26 2010-04-01 Dehaan Michael Paul Methods and systems for managing network connections associated with provisioning objects in a software provisioning environment
US8326972B2 (en) 2008-09-26 2012-12-04 Red Hat, Inc. Methods and systems for managing network connections in a software provisioning environment
US10313515B2 (en) * 2008-10-02 2019-06-04 Samsung Electronics Co., Ltd. Apparatus and method for providing presence service in communication device
US20110181411A1 (en) * 2008-10-02 2011-07-28 Samsung Electronics Co., Ltd. Apparatus and method for providing presence service in communication device
US8898305B2 (en) 2008-11-25 2014-11-25 Red Hat, Inc. Providing power management services in a software provisioning environment
US9223369B2 (en) 2008-11-25 2015-12-29 Red Hat, Inc. Providing power management services in a software provisioning environment
US20100131648A1 (en) * 2008-11-25 2010-05-27 Dehaan Michael Paul Methods and systems for providing power management services in a software provisioning environment
US20100128639A1 (en) * 2008-11-26 2010-05-27 Dehaan Michael Paul Methods and systems for supporting multiple name servers in a software provisioning environment
US9124497B2 (en) 2008-11-26 2015-09-01 Red Hat, Inc. Supporting multiple name servers in a software provisioning environment
US20100138521A1 (en) * 2008-11-28 2010-06-03 Dehaan Michael Paul Methods and systems for providing a rescue environment in a software provisioning environment
US20100138526A1 (en) * 2008-11-28 2010-06-03 Dehaan Michael Paul Methods and systems for providing hardware updates in a software provisioning environment
US8832256B2 (en) 2008-11-28 2014-09-09 Red Hat, Inc. Providing a rescue Environment in a software provisioning environment
US8782204B2 (en) 2008-11-28 2014-07-15 Red Hat, Inc. Monitoring hardware resources in a software provisioning environment
US8775578B2 (en) * 2008-11-28 2014-07-08 Red Hat, Inc. Providing hardware updates in a software environment
US8402123B2 (en) 2009-02-24 2013-03-19 Red Hat, Inc. Systems and methods for inventorying un-provisioned systems in a software provisioning environment
US9727320B2 (en) 2009-02-25 2017-08-08 Red Hat, Inc. Configuration of provisioning servers in virtualized systems
US20100217843A1 (en) * 2009-02-26 2010-08-26 Dehaan Michael Paul Systems and methods for collecting and altering firmware configurations of target machines in a software provisioning environment
US20100217944A1 (en) * 2009-02-26 2010-08-26 Dehaan Michael Paul Systems and methods for managing configurations of storage devices in a software provisioning environment
US8892700B2 (en) 2009-02-26 2014-11-18 Red Hat, Inc. Collecting and altering firmware configurations of target machines in a software provisioning environment
US8413259B2 (en) 2009-02-26 2013-04-02 Red Hat, Inc. Methods and systems for secure gated file deployment associated with provisioning
US9411570B2 (en) 2009-02-27 2016-08-09 Red Hat, Inc. Integrating software provisioning and configuration management
US20100223367A1 (en) * 2009-02-27 2010-09-02 Dehaan Michael Paul Systems and methods for integrating software provisioning and configuration management
US20100223610A1 (en) * 2009-02-27 2010-09-02 Dehaan Michael Paul Systems and methods for providing a library of virtual images in a software provisioning environment
US20100223608A1 (en) * 2009-02-27 2010-09-02 Dehaan Micheal Paul Systems and methods for generating reverse installation file for network restoration
US8990368B2 (en) 2009-02-27 2015-03-24 Red Hat, Inc. Discovery of network software relationships
US20100220584A1 (en) * 2009-02-27 2010-09-02 Dehaan Michael Paul Systems and methods for automatically generating system restoration order for network recovery
US20100223607A1 (en) * 2009-02-27 2010-09-02 Dehaan Michael Paul Systems and methods for abstracting software content management in a software provisioning environment
US8640122B2 (en) 2009-02-27 2014-01-28 Red Hat, Inc. Systems and methods for abstracting software content management in a software provisioning environment
US8135989B2 (en) 2009-02-27 2012-03-13 Red Hat, Inc. Systems and methods for interrogating diagnostic target using remotely loaded image
US8572587B2 (en) 2009-02-27 2013-10-29 Red Hat, Inc. Systems and methods for providing a library of virtual images in a software provisioning environment
US9940208B2 (en) * 2009-02-27 2018-04-10 Red Hat, Inc. Generating reverse installation file for network restoration
US20100223504A1 (en) * 2009-02-27 2010-09-02 Dehaan Michael Paul Systems and methods for interrogating diagnostic target using remotely loaded image
US9558195B2 (en) 2009-02-27 2017-01-31 Red Hat, Inc. Depopulation of user data from network
US8667096B2 (en) 2009-02-27 2014-03-04 Red Hat, Inc. Automatically generating system restoration order for network recovery
US8417926B2 (en) 2009-03-31 2013-04-09 Red Hat, Inc. Systems and methods for providing configuration management services from a provisioning server
US9250672B2 (en) 2009-05-27 2016-02-02 Red Hat, Inc. Cloning target machines in a software provisioning environment
US9134987B2 (en) 2009-05-29 2015-09-15 Red Hat, Inc. Retiring target machines by a provisioning server
US10203946B2 (en) 2009-05-29 2019-02-12 Red Hat, Inc. Retiring target machines by a provisioning server
US9047155B2 (en) 2009-06-30 2015-06-02 Red Hat, Inc. Message-based installation management using message bus
US20100333084A1 (en) * 2009-06-30 2010-12-30 Dehaan Michael Paul Systems and methods for message-based installation management using message bus
US20110010699A1 (en) * 2009-07-09 2011-01-13 Simon Cooper Methods and Systems for Upgrade and Synchronization of Securely Installed Applications on a Computing Device
US10521214B2 (en) 2009-07-09 2019-12-31 Apple Inc. Methods and systems for upgrade and synchronization of securely installed applications on a computing device
US8849717B2 (en) * 2009-07-09 2014-09-30 Simon Cooper Methods and systems for upgrade and synchronization of securely installed applications on a computing device
US8825819B2 (en) 2009-11-30 2014-09-02 Red Hat, Inc. Mounting specified storage resources from storage area network in machine provisioning platform
US10133485B2 (en) 2009-11-30 2018-11-20 Red Hat, Inc. Integrating storage resources from storage area network in machine provisioning platform
US20120233299A1 (en) * 2009-12-10 2012-09-13 International Business Machines Corporation Managing configurations of system management agents in a distributed environment
WO2011069730A1 (en) * 2009-12-10 2011-06-16 International Business Machines Corporation A method and system for managing configurations of system management agents in a distributed environment
US9485134B2 (en) * 2009-12-10 2016-11-01 International Business Machines Corporation Managing configurations of system management agents in a distributed environment
GB2488268B (en) * 2009-12-10 2017-10-04 Ibm A method and system for managing configurations of system management agents in a distributed environment
US9391853B2 (en) 2009-12-23 2016-07-12 Apple Inc. Efficient service advertisement and discovery in a peer-to-peer networking environment with dynamic advertisement and discovery periods based on operating conditions
US10230596B2 (en) 2009-12-23 2019-03-12 Apple Inc. Efficient service advertisement and discovery in a peer-to-peer networking environment with cooperative advertisement
US9306813B2 (en) * 2009-12-23 2016-04-05 Apple Inc. Efficient service advertisement and discovery in a peer-to-peer networking environment with cooperative advertisement
US20110153773A1 (en) * 2009-12-23 2011-06-23 Apple Inc. Efficient service advertisement and discovery in a peer-to-peer networking environment with cooperative advertisement
US8225001B2 (en) 2010-01-06 2012-07-17 International Business Machines Corporation Feature propagation
US20110167117A1 (en) * 2010-01-06 2011-07-07 International Business Machines Corporation Feature propagation
US10050872B2 (en) 2010-02-15 2018-08-14 Damaka, Inc. System and method for strategic routing in a peer-to-peer environment
US8874785B2 (en) 2010-02-15 2014-10-28 Damaka, Inc. System and method for signaling and data tunneling in a peer-to-peer environment
US9866629B2 (en) 2010-02-15 2018-01-09 Damaka, Inc. System and method for shared session appearance in a hybrid peer-to-peer environment
US10027745B2 (en) 2010-02-15 2018-07-17 Damaka, Inc. System and method for signaling and data tunneling in a peer-to-peer environment
US8725895B2 (en) 2010-02-15 2014-05-13 Damaka, Inc. NAT traversal by concurrently probing multiple candidates
US8689307B2 (en) 2010-03-19 2014-04-01 Damaka, Inc. System and method for providing a virtual peer-to-peer environment
US9043488B2 (en) 2010-03-29 2015-05-26 Damaka, Inc. System and method for session sweeping between devices
EP2375697A1 (en) * 2010-03-29 2011-10-12 Kyocera Mita Corporation Image forming system and image forming apparatus settings search method using WS-Discovery
US10033806B2 (en) 2010-03-29 2018-07-24 Damaka, Inc. System and method for session sweeping between devices
US20110238498A1 (en) * 2010-03-29 2011-09-29 Microsoft Corporation Service stage for subscription management
US20110235117A1 (en) * 2010-03-29 2011-09-29 Kyocera Mita Corporation Image Forming System and Image Forming Apparatus Settings Search Method Using WS-Discovery
US8477355B2 (en) 2010-03-29 2013-07-02 Kyocera Document Solutions Inc. Image forming system and image forming apparatus settings search method using WS-discovery
KR101292981B1 (en) 2010-03-29 2013-08-02 교세라 도큐멘트 솔루션즈 가부시키가이샤 Image forming system, image forming apparatus and searching method for image forming apparatus
US9781173B2 (en) 2010-04-16 2017-10-03 Damaka, Inc. System and method for providing enterprise voice call continuity
US9356972B1 (en) 2010-04-16 2016-05-31 Damaka, Inc. System and method for providing enterprise voice call continuity
US9191416B2 (en) 2010-04-16 2015-11-17 Damaka, Inc. System and method for providing enterprise voice call continuity
AU2011245573B2 (en) * 2010-04-27 2014-09-04 Apple Inc. Dynamic retrieval of installation packages when installing software
US10379831B2 (en) 2010-04-27 2019-08-13 Apple Inc. Dynamic retrieval of installation packages when installing software
US9465600B2 (en) 2010-04-27 2016-10-11 Apple Inc. Dynamic retrieval of installation packages when installing software
US20110265080A1 (en) * 2010-04-27 2011-10-27 Jack Matthew Dynamic retrieval of installation packages when installing software
US8707296B2 (en) * 2010-04-27 2014-04-22 Apple Inc. Dynamic retrieval of installation packages when installing software
US9015258B2 (en) 2010-04-29 2015-04-21 Damaka, Inc. System and method for peer-to-peer media routing using a third party instant messaging system for signaling
US9781258B2 (en) 2010-04-29 2017-10-03 Damaka, Inc. System and method for peer-to-peer media routing using a third party instant messaging system for signaling
US20110296013A1 (en) * 2010-05-28 2011-12-01 Greg Saunders System and method for providing hybrid on demand services to a work unit
US9083762B2 (en) * 2010-05-28 2015-07-14 Greg Saunders System and method for providing hybrid on demand services to a work unit
US20150006613A1 (en) * 2010-05-28 2015-01-01 Medconnex / 6763294 Canada inc. System and method for providing hybrid on demand services to a work unit
US8924304B2 (en) * 2010-06-04 2014-12-30 Apple Inc. Methods for using unique identifiers to identify systems in collaborative interaction in a mesh network
US20110300943A1 (en) * 2010-06-04 2011-12-08 Devine Graeme J Methods for using unique identifiers to identify systems in collaborative interaction in a mesh network
US8446900B2 (en) 2010-06-18 2013-05-21 Damaka, Inc. System and method for transferring a call between endpoints in a hybrid peer-to-peer network
US9143489B2 (en) 2010-06-23 2015-09-22 Damaka, Inc. System and method for secure messaging in a hybrid peer-to-peer network
US9712507B2 (en) 2010-06-23 2017-07-18 Damaka, Inc. System and method for secure messaging in a hybrid peer-to-peer network
US10148628B2 (en) 2010-06-23 2018-12-04 Damaka, Inc. System and method for secure messaging in a hybrid peer-to-peer network
US8892646B2 (en) 2010-08-25 2014-11-18 Damaka, Inc. System and method for shared session appearance in a hybrid peer-to-peer environment
US10506036B2 (en) 2010-08-25 2019-12-10 Damaka, Inc. System and method for shared session appearance in a hybrid peer-to-peer environment
US9128927B2 (en) 2010-09-24 2015-09-08 Damaka, Inc. System and method for language translation in a hybrid peer-to-peer environment
US8743781B2 (en) 2010-10-11 2014-06-03 Damaka, Inc. System and method for a reverse invitation in a hybrid peer-to-peer environment
US9497127B2 (en) 2010-10-11 2016-11-15 Damaka, Inc. System and method for a reverse invitation in a hybrid peer-to-peer environment
US9031005B2 (en) 2010-10-11 2015-05-12 Damaka, Inc. System and method for a reverse invitation in a hybrid peer-to-peer environment
US9542203B2 (en) 2010-12-06 2017-01-10 Microsoft Technology Licensing, Llc Universal dock for context sensitive computing device
US9870028B2 (en) 2010-12-06 2018-01-16 Microsoft Technology Licensing, Llc Universal dock for context sensitive computing device
US8923770B2 (en) 2010-12-09 2014-12-30 Microsoft Corporation Cognitive use of multiple regulatory domains
US9178652B2 (en) 2010-12-09 2015-11-03 Microsoft Technology Licensing, Llc Cognitive use of multiple regulatory domains
US9801074B2 (en) 2010-12-09 2017-10-24 Microsoft Technology Licensing, Llc Cognitive use of multiple regulatory domains
US9462479B2 (en) 2010-12-09 2016-10-04 Microsoft Technology Licensing, Llc Cognitive use of multiple regulatory domains
US9450995B2 (en) 2010-12-14 2016-09-20 Microsoft Technology Licensing, Llc Direct connection with side channel control
US8792429B2 (en) 2010-12-14 2014-07-29 Microsoft Corporation Direct connection with side channel control
US9813466B2 (en) 2010-12-14 2017-11-07 Microsoft Technology Licensing, Llc Direct connection with side channel control
US9294545B2 (en) 2010-12-16 2016-03-22 Microsoft Technology Licensing, Llc Fast join of peer to peer group with power saving mode
US10575174B2 (en) 2010-12-16 2020-02-25 Microsoft Technology Licensing, Llc Secure protocol for peer-to-peer network
CN102523562A (en) * 2010-12-16 2012-06-27 微软公司 Fast join of peer to peer group with power saving mode
US9998522B2 (en) 2010-12-16 2018-06-12 Microsoft Technology Licensing, Llc Fast join of peer to peer group with power saving mode
US8948382B2 (en) 2010-12-16 2015-02-03 Microsoft Corporation Secure protocol for peer-to-peer network
US9596220B2 (en) 2010-12-16 2017-03-14 Microsoft Technology Licensing, Llc Secure protocol for peer-to-peer network
WO2012080768A1 (en) * 2010-12-17 2012-06-21 Sony Ericsson Mobile Communications Ab Method for interface configuration of an electronic device detection
US8971841B2 (en) 2010-12-17 2015-03-03 Microsoft Corporation Operating system supporting cost aware applications
US9008610B2 (en) 2010-12-17 2015-04-14 Microsoft Corporation Operating system supporting cost aware applications
US9338309B2 (en) 2010-12-17 2016-05-10 Microsoft Technology Licensing, Llc Operating system supporting cost aware applications
US10044515B2 (en) 2010-12-17 2018-08-07 Microsoft Technology Licensing, Llc Operating system supporting cost aware applications
WO2012085220A1 (en) * 2010-12-23 2012-06-28 Koninklijke Kpn N.V. Method, device, system and network architecture for handling a service request
US10135668B2 (en) 2010-12-23 2018-11-20 Koninklijke Kpn N.V. Method, device, system and network architecture for handling a service request
DE102011006722A1 (en) * 2011-04-04 2012-10-04 Endress + Hauser Conducta Gesellschaft für Mess- und Regeltechnik mbH + Co. KG Method for programming subsystem of data transmission system, involves programming base software with super-ordinate subsystem, so that data flows from subordinate subsystem into super-ordinate subsystem
US9356997B2 (en) 2011-04-04 2016-05-31 Damaka, Inc. System and method for sharing unsupported document types between communication devices
US10097638B2 (en) 2011-04-04 2018-10-09 Damaka, Inc. System and method for sharing unsupported document types between communication devices
US9742846B2 (en) 2011-04-04 2017-08-22 Damaka, Inc. System and method for sharing unsupported document types between communication devices
US9210268B2 (en) 2011-05-17 2015-12-08 Damaka, Inc. System and method for transferring a call bridge between communication devices
US8478890B2 (en) 2011-07-15 2013-07-02 Damaka, Inc. System and method for reliable virtual bi-directional data stream communications with single socket point-to-multipoint capability
US9558021B2 (en) * 2011-09-16 2017-01-31 France Telecom System and method for cross-platform application execution and display
US20130074069A1 (en) * 2011-09-16 2013-03-21 France Telecom System and method for cross-platform application execution and display
EP2570920A1 (en) * 2011-09-16 2013-03-20 France Télécom System and method for cross-platform application execution and display
US10771532B2 (en) 2011-10-04 2020-09-08 Electro Industries/Gauge Tech Intelligent electronic devices, systems and methods for communicating messages over a network
US10862784B2 (en) 2011-10-04 2020-12-08 Electro Industries/Gauge Tech Systems and methods for processing meter information in a network of intelligent electronic devices
US10303860B2 (en) 2011-10-04 2019-05-28 Electro Industries/Gauge Tech Security through layers in an intelligent electronic device
US10275840B2 (en) * 2011-10-04 2019-04-30 Electro Industries/Gauge Tech Systems and methods for collecting, analyzing, billing, and reporting data from intelligent electronic devices
US20130204450A1 (en) * 2011-10-04 2013-08-08 Electro Industries/Gauge Tech Systems and methods for collecting, analyzing, billing, and reporting data from intelligent electronic devices
US20130290395A1 (en) * 2012-04-26 2013-10-31 Empire Technology Development Llc Multimedia application rental and billing
US9219648B1 (en) 2012-05-23 2015-12-22 Amazon Technologies, Inc. Best practice analysis, automatic remediation
US11030669B1 (en) 2012-05-23 2021-06-08 Amazon Technologies, Inc. Best practice analysis, optimized resource use
US8769059B1 (en) * 2012-05-23 2014-07-01 Amazon Technologies, Inc. Best practice analysis, third-party plug-ins
US8954574B1 (en) 2012-05-23 2015-02-10 Amazon Technologies, Inc. Best practice analysis, migration advisor
US10740765B1 (en) 2012-05-23 2020-08-11 Amazon Technologies, Inc. Best practice analysis as a service
US9455871B1 (en) 2012-05-23 2016-09-27 Amazon Technologies, Inc. Best practice analysis, migration advisor
US9197502B1 (en) 2012-05-23 2015-11-24 Amazon Technologies, Inc. Best practice analysis, migration advisor
US9626710B1 (en) 2012-05-23 2017-04-18 Amazon Technologies, Inc. Best practice analysis, optimized resource use
US9158531B2 (en) * 2012-11-26 2015-10-13 Tencent Technology (Shenzhen) Company Limited Software download method and software download apparatus
US20140237465A1 (en) * 2012-11-26 2014-08-21 Tencent Technology (Shenzhen) Company Limited Software download method and software download apparatus
US9699785B2 (en) 2012-12-05 2017-07-04 At&T Intellectual Property I, L.P. Backhaul link for distributed antenna system
US9788326B2 (en) 2012-12-05 2017-10-10 At&T Intellectual Property I, L.P. Backhaul link for distributed antenna system
US10009065B2 (en) 2012-12-05 2018-06-26 At&T Intellectual Property I, L.P. Backhaul link for distributed antenna system
US10194437B2 (en) 2012-12-05 2019-01-29 At&T Intellectual Property I, L.P. Backhaul link for distributed antenna system
US9420065B2 (en) 2013-01-18 2016-08-16 Google Inc. Peer-to-peer software updates
US20140259005A1 (en) * 2013-03-08 2014-09-11 Air Computing, Inc. Systems and methods for managing files in a cloud-based computing environment
US11816465B2 (en) 2013-03-15 2023-11-14 Ei Electronics Llc Devices, systems and methods for tracking and upgrading firmware in intelligent electronic devices
US9973876B2 (en) * 2013-03-20 2018-05-15 Provenance Asset Group Llc Application recommendations
US20160007136A1 (en) * 2013-03-20 2016-01-07 Nokia Technologies Oy Application recommendations
US9930668B2 (en) 2013-05-31 2018-03-27 At&T Intellectual Property I, L.P. Remote distributed antenna system
US9999038B2 (en) 2013-05-31 2018-06-12 At&T Intellectual Property I, L.P. Remote distributed antenna system
US9525524B2 (en) 2013-05-31 2016-12-20 At&T Intellectual Property I, L.P. Remote distributed antenna system
US10051630B2 (en) 2013-05-31 2018-08-14 At&T Intellectual Property I, L.P. Remote distributed antenna system
US10091787B2 (en) 2013-05-31 2018-10-02 At&T Intellectual Property I, L.P. Remote distributed antenna system
US10129226B2 (en) 2013-06-03 2018-11-13 Ayla Networks, Inc. Proximity based communication with embedded system
US9426185B1 (en) * 2013-06-03 2016-08-23 Ayla Networks, Inc. Proximity based communication with embedded system
US10805279B2 (en) 2013-06-03 2020-10-13 Ayla Networks, Inc. Communication module for embedded system
US10387220B2 (en) 2013-07-16 2019-08-20 Damaka, Inc. System and method for providing additional functionality to existing software in an integrated manner
US9578092B1 (en) 2013-07-16 2017-02-21 Damaka, Inc. System and method for providing additional functionality to existing software in an integrated manner
US10863357B2 (en) 2013-07-16 2020-12-08 Damaka, Inc. System and method for providing additional functionality to existing software in an integrated manner
US9491233B2 (en) 2013-07-16 2016-11-08 Damaka, Inc. System and method for providing additional functionality to existing software in an integrated manner
US9027032B2 (en) 2013-07-16 2015-05-05 Damaka, Inc. System and method for providing additional functionality to existing software in an integrated manner
US20150026307A1 (en) * 2013-07-20 2015-01-22 Cisco Technology, Inc. Xmpp based upnp device architecture for cloud computing in a network environment
US9560145B2 (en) * 2013-07-20 2017-01-31 Cisco Technology, Inc. XMPP based UPNP device architecture for cloud computing in a network environment
US20150088957A1 (en) * 2013-09-25 2015-03-26 Sony Corporation System and methods for managing applications in multiple devices
CN104468695A (en) * 2013-09-25 2015-03-25 索尼公司 System and methods for managing applications in multiple devices
US9357016B2 (en) 2013-10-18 2016-05-31 Damaka, Inc. System and method for virtual parallel resource management
US9825876B2 (en) 2013-10-18 2017-11-21 Damaka, Inc. System and method for virtual parallel resource management
US9674711B2 (en) 2013-11-06 2017-06-06 At&T Intellectual Property I, L.P. Surface-wave communications and methods thereof
US9661505B2 (en) 2013-11-06 2017-05-23 At&T Intellectual Property I, L.P. Surface-wave communications and methods thereof
US9467870B2 (en) 2013-11-06 2016-10-11 At&T Intellectual Property I, L.P. Surface-wave communications and methods thereof
CN104657126A (en) * 2013-11-19 2015-05-27 财团法人资讯工业策进会 Software roaming system and method
US20150143361A1 (en) * 2013-11-19 2015-05-21 Institute For Information Industry Software roaming system, method and computer readable storage medium thereof
US9876584B2 (en) 2013-12-10 2018-01-23 At&T Intellectual Property I, L.P. Quasi-optical coupler
US9209902B2 (en) 2013-12-10 2015-12-08 At&T Intellectual Property I, L.P. Quasi-optical coupler
US9794003B2 (en) 2013-12-10 2017-10-17 At&T Intellectual Property I, L.P. Quasi-optical coupler
US9479266B2 (en) 2013-12-10 2016-10-25 At&T Intellectual Property I, L.P. Quasi-optical coupler
US9830141B2 (en) * 2013-12-23 2017-11-28 Google Llc Providing a software update to computing devices on the same network
US20150178064A1 (en) * 2013-12-23 2015-06-25 Google Inc. Providing a software update to computing devices on the same network
CN103648034A (en) * 2013-12-23 2014-03-19 乐视致新电子科技(天津)有限公司 Method and device for playing resources in intelligent television
US9667496B2 (en) 2013-12-24 2017-05-30 International Business Machines Corporation Configuration updates across peer storage systems
WO2015097583A1 (en) * 2013-12-24 2015-07-02 International Business Machines Corporation Configuration updates across peer storage systems
US9390120B1 (en) 2013-12-31 2016-07-12 Google Inc. System and methods for organizing hierarchical database replication
WO2015116363A1 (en) * 2014-02-03 2015-08-06 Updatelogic, Inc. Facilitating interactive support sessions for an embedded device using a portable device
US11734396B2 (en) 2014-06-17 2023-08-22 El Electronics Llc Security through layers in an intelligent electronic device
US10740090B2 (en) 2014-07-03 2020-08-11 Oracle International Corporation Efficient application patching in heterogeneous computing environments
US10075385B1 (en) * 2014-07-16 2018-09-11 Ivanti, Inc. Systems and methods for discovering and downloading configuration files from peer nodes
US10355882B2 (en) 2014-08-05 2019-07-16 Damaka, Inc. System and method for providing unified communications and collaboration (UCC) connectivity between incompatible systems
US20160055133A1 (en) * 2014-08-19 2016-02-25 Adlast, Inc. Systems and methods for directing access to products and services
US9692101B2 (en) 2014-08-26 2017-06-27 At&T Intellectual Property I, L.P. Guided wave couplers for coupling electromagnetic waves between a waveguide surface and a surface of a wire
US10096881B2 (en) 2014-08-26 2018-10-09 At&T Intellectual Property I, L.P. Guided wave couplers for coupling electromagnetic waves to an outer surface of a transmission medium
US9768833B2 (en) 2014-09-15 2017-09-19 At&T Intellectual Property I, L.P. Method and apparatus for sensing a condition in a transmission medium of electromagnetic waves
US9755697B2 (en) 2014-09-15 2017-09-05 At&T Intellectual Property I, L.P. Method and apparatus for sensing a condition in a transmission medium of electromagnetic waves
US9906269B2 (en) 2014-09-17 2018-02-27 At&T Intellectual Property I, L.P. Monitoring and mitigating conditions in a communication network
US10063280B2 (en) 2014-09-17 2018-08-28 At&T Intellectual Property I, L.P. Monitoring and mitigating conditions in a communication network
CN105516226A (en) * 2014-09-26 2016-04-20 酷派软件技术(深圳)有限公司 Data download method, data download device, and terminal
US9973416B2 (en) 2014-10-02 2018-05-15 At&T Intellectual Property I, L.P. Method and apparatus that provides fault tolerance in a communication network
US9615269B2 (en) 2014-10-02 2017-04-04 At&T Intellectual Property I, L.P. Method and apparatus that provides fault tolerance in a communication network
US9998932B2 (en) 2014-10-02 2018-06-12 At&T Intellectual Property I, L.P. Method and apparatus that provides fault tolerance in a communication network
US9685992B2 (en) 2014-10-03 2017-06-20 At&T Intellectual Property I, L.P. Circuit panel network and methods thereof
US9503189B2 (en) 2014-10-10 2016-11-22 At&T Intellectual Property I, L.P. Method and apparatus for arranging communication sessions in a communication system
US9866276B2 (en) 2014-10-10 2018-01-09 At&T Intellectual Property I, L.P. Method and apparatus for arranging communication sessions in a communication system
US9762289B2 (en) 2014-10-14 2017-09-12 At&T Intellectual Property I, L.P. Method and apparatus for transmitting or receiving signals in a transportation system
US9973299B2 (en) 2014-10-14 2018-05-15 At&T Intellectual Property I, L.P. Method and apparatus for adjusting a mode of communication in a communication network
US9847850B2 (en) 2014-10-14 2017-12-19 At&T Intellectual Property I, L.P. Method and apparatus for adjusting a mode of communication in a communication network
US9780834B2 (en) 2014-10-21 2017-10-03 At&T Intellectual Property I, L.P. Method and apparatus for transmitting electromagnetic waves
US9705610B2 (en) 2014-10-21 2017-07-11 At&T Intellectual Property I, L.P. Transmission device with impairment compensation and methods for use therewith
US9627768B2 (en) 2014-10-21 2017-04-18 At&T Intellectual Property I, L.P. Guided-wave transmission device with non-fundamental mode propagation and methods for use therewith
US9571209B2 (en) 2014-10-21 2017-02-14 At&T Intellectual Property I, L.P. Transmission device with impairment compensation and methods for use therewith
US9876587B2 (en) 2014-10-21 2018-01-23 At&T Intellectual Property I, L.P. Transmission device with impairment compensation and methods for use therewith
US9520945B2 (en) 2014-10-21 2016-12-13 At&T Intellectual Property I, L.P. Apparatus for providing communication services and methods thereof
US9769020B2 (en) 2014-10-21 2017-09-19 At&T Intellectual Property I, L.P. Method and apparatus for responding to events affecting communications in a communication network
US9525210B2 (en) 2014-10-21 2016-12-20 At&T Intellectual Property I, L.P. Guided-wave transmission device with non-fundamental mode propagation and methods for use therewith
US9653770B2 (en) 2014-10-21 2017-05-16 At&T Intellectual Property I, L.P. Guided wave coupler, coupling module and methods for use therewith
US9871558B2 (en) 2014-10-21 2018-01-16 At&T Intellectual Property I, L.P. Guided-wave transmission device and methods for use therewith
US9960808B2 (en) 2014-10-21 2018-05-01 At&T Intellectual Property I, L.P. Guided-wave transmission device and methods for use therewith
US9954286B2 (en) 2014-10-21 2018-04-24 At&T Intellectual Property I, L.P. Guided-wave transmission device with non-fundamental mode propagation and methods for use therewith
US9596001B2 (en) 2014-10-21 2017-03-14 At&T Intellectual Property I, L.P. Apparatus for providing communication services and methods thereof
US9948355B2 (en) 2014-10-21 2018-04-17 At&T Intellectual Property I, L.P. Apparatus for providing communication services and methods thereof
US9577306B2 (en) 2014-10-21 2017-02-21 At&T Intellectual Property I, L.P. Guided-wave transmission device and methods for use therewith
US9912033B2 (en) 2014-10-21 2018-03-06 At&T Intellectual Property I, Lp Guided wave coupler, coupling module and methods for use therewith
US9577307B2 (en) 2014-10-21 2017-02-21 At&T Intellectual Property I, L.P. Guided-wave transmission device and methods for use therewith
US9564947B2 (en) 2014-10-21 2017-02-07 At&T Intellectual Property I, L.P. Guided-wave transmission device with diversity and methods for use therewith
US9312919B1 (en) 2014-10-21 2016-04-12 At&T Intellectual Property I, Lp Transmission device with impairment compensation and methods for use therewith
US9654173B2 (en) 2014-11-20 2017-05-16 At&T Intellectual Property I, L.P. Apparatus for powering a communication device and methods thereof
US9749083B2 (en) 2014-11-20 2017-08-29 At&T Intellectual Property I, L.P. Transmission device with mode division multiplexing and methods for use therewith
US9712350B2 (en) 2014-11-20 2017-07-18 At&T Intellectual Property I, L.P. Transmission device with channel equalization and control and methods for use therewith
US9680670B2 (en) 2014-11-20 2017-06-13 At&T Intellectual Property I, L.P. Transmission device with channel equalization and control and methods for use therewith
US9742521B2 (en) 2014-11-20 2017-08-22 At&T Intellectual Property I, L.P. Transmission device with mode division multiplexing and methods for use therewith
US9531427B2 (en) 2014-11-20 2016-12-27 At&T Intellectual Property I, L.P. Transmission device with mode division multiplexing and methods for use therewith
US9954287B2 (en) 2014-11-20 2018-04-24 At&T Intellectual Property I, L.P. Apparatus for converting wireless signals and electromagnetic waves and methods thereof
US10243784B2 (en) 2014-11-20 2019-03-26 At&T Intellectual Property I, L.P. System for generating topology information and methods thereof
US9544006B2 (en) 2014-11-20 2017-01-10 At&T Intellectual Property I, L.P. Transmission device with mode division multiplexing and methods for use therewith
US9800327B2 (en) 2014-11-20 2017-10-24 At&T Intellectual Property I, L.P. Apparatus for controlling operations of a communication device and methods thereof
US10009067B2 (en) 2014-12-04 2018-06-26 At&T Intellectual Property I, L.P. Method and apparatus for configuring a communication interface
US9742462B2 (en) 2014-12-04 2017-08-22 At&T Intellectual Property I, L.P. Transmission medium and communication interfaces and methods for use therewith
US10348837B2 (en) * 2014-12-16 2019-07-09 Citrix Systems, Inc. Methods and systems for connecting devices to applications and desktops that are receiving maintenance
US11303704B2 (en) 2014-12-16 2022-04-12 Citrix Systems, Inc. Methods and systems for connecting devices to applications and desktops that are receiving maintenance
US20160182518A1 (en) * 2014-12-23 2016-06-23 Mcafee, Inc. Self-Organizing Trusted Networks
US10673852B2 (en) * 2014-12-23 2020-06-02 Mcafee, Llc Self-organizing trusted networks
US11595390B2 (en) * 2014-12-23 2023-02-28 Mcafee, Llc Self-organizing trusted networks
US10144036B2 (en) 2015-01-30 2018-12-04 At&T Intellectual Property I, L.P. Method and apparatus for mitigating interference affecting a propagation of electromagnetic waves guided by a transmission medium
US9876570B2 (en) 2015-02-20 2018-01-23 At&T Intellectual Property I, Lp Guided-wave transmission device with non-fundamental mode propagation and methods for use therewith
US9876571B2 (en) 2015-02-20 2018-01-23 At&T Intellectual Property I, Lp Guided-wave transmission device with non-fundamental mode propagation and methods for use therewith
US9934020B2 (en) 2015-03-10 2018-04-03 International Business Machines Corporation Intelligent mobile application update
US9952851B2 (en) 2015-03-10 2018-04-24 International Business Machines Corporation Intelligent mobile application update
US9749013B2 (en) 2015-03-17 2017-08-29 At&T Intellectual Property I, L.P. Method and apparatus for reducing attenuation of electromagnetic waves guided by a transmission medium
US10620933B2 (en) * 2015-03-24 2020-04-14 Oracle International Corporation Techniques for efficient application configuration patching
US10224981B2 (en) 2015-04-24 2019-03-05 At&T Intellectual Property I, Lp Passive electrical coupling device and methods for use therewith
US9705561B2 (en) 2015-04-24 2017-07-11 At&T Intellectual Property I, L.P. Directional coupling device and methods for use therewith
US9793955B2 (en) 2015-04-24 2017-10-17 At&T Intellectual Property I, Lp Passive electrical coupling device and methods for use therewith
US9831912B2 (en) 2015-04-24 2017-11-28 At&T Intellectual Property I, Lp Directional coupling device and methods for use therewith
US9948354B2 (en) 2015-04-28 2018-04-17 At&T Intellectual Property I, L.P. Magnetic coupling device with reflective plate and methods for use therewith
US9793954B2 (en) 2015-04-28 2017-10-17 At&T Intellectual Property I, L.P. Magnetic coupling device and methods for use therewith
US10142167B2 (en) 2015-05-13 2018-11-27 Cisco Technology, Inc. Peer-assisted image update with self-healing capabilities
US9887447B2 (en) 2015-05-14 2018-02-06 At&T Intellectual Property I, L.P. Transmission medium having multiple cores and methods for use therewith
US9748626B2 (en) 2015-05-14 2017-08-29 At&T Intellectual Property I, L.P. Plurality of cables having different cross-sectional shapes which are bundled together to form a transmission medium
US9490869B1 (en) 2015-05-14 2016-11-08 At&T Intellectual Property I, L.P. Transmission medium having multiple cores and methods for use therewith
US9871282B2 (en) 2015-05-14 2018-01-16 At&T Intellectual Property I, L.P. At least one transmission medium having a dielectric surface that is covered at least in part by a second dielectric
US10679767B2 (en) 2015-05-15 2020-06-09 At&T Intellectual Property I, L.P. Transmission medium having a conductive material and methods for use therewith
US10650940B2 (en) 2015-05-15 2020-05-12 At&T Intellectual Property I, L.P. Transmission medium having a conductive material and methods for use therewith
US9917341B2 (en) 2015-05-27 2018-03-13 At&T Intellectual Property I, L.P. Apparatus and method for launching electromagnetic waves and for modifying radial dimensions of the propagating electromagnetic waves
US10348391B2 (en) 2015-06-03 2019-07-09 At&T Intellectual Property I, L.P. Client node device with frequency conversion and methods for use therewith
US9967002B2 (en) 2015-06-03 2018-05-08 At&T Intellectual I, Lp Network termination and methods for use therewith
US9912381B2 (en) 2015-06-03 2018-03-06 At&T Intellectual Property I, Lp Network termination and methods for use therewith
US10797781B2 (en) 2015-06-03 2020-10-06 At&T Intellectual Property I, L.P. Client node device and methods for use therewith
US10396887B2 (en) 2015-06-03 2019-08-27 At&T Intellectual Property I, L.P. Client node device and methods for use therewith
US9866309B2 (en) 2015-06-03 2018-01-09 At&T Intellectual Property I, Lp Host node device and methods for use therewith
US10103801B2 (en) 2015-06-03 2018-10-16 At&T Intellectual Property I, L.P. Host node device and methods for use therewith
US10154493B2 (en) 2015-06-03 2018-12-11 At&T Intellectual Property I, L.P. Network termination and methods for use therewith
US9912382B2 (en) 2015-06-03 2018-03-06 At&T Intellectual Property I, Lp Network termination and methods for use therewith
US10050697B2 (en) 2015-06-03 2018-08-14 At&T Intellectual Property I, L.P. Host node device and methods for use therewith
US10812174B2 (en) 2015-06-03 2020-10-20 At&T Intellectual Property I, L.P. Client node device and methods for use therewith
US9935703B2 (en) 2015-06-03 2018-04-03 At&T Intellectual Property I, L.P. Host node device and methods for use therewith
US9997819B2 (en) 2015-06-09 2018-06-12 At&T Intellectual Property I, L.P. Transmission medium and method for facilitating propagation of electromagnetic waves via a core
US9913139B2 (en) 2015-06-09 2018-03-06 At&T Intellectual Property I, L.P. Signal fingerprinting for authentication of communicating devices
US10142010B2 (en) 2015-06-11 2018-11-27 At&T Intellectual Property I, L.P. Repeater and methods for use therewith
US10142086B2 (en) 2015-06-11 2018-11-27 At&T Intellectual Property I, L.P. Repeater and methods for use therewith
US9608692B2 (en) 2015-06-11 2017-03-28 At&T Intellectual Property I, L.P. Repeater and methods for use therewith
US10027398B2 (en) 2015-06-11 2018-07-17 At&T Intellectual Property I, Lp Repeater and methods for use therewith
US9820146B2 (en) 2015-06-12 2017-11-14 At&T Intellectual Property I, L.P. Method and apparatus for authentication and identity management of communicating devices
US9667317B2 (en) 2015-06-15 2017-05-30 At&T Intellectual Property I, L.P. Method and apparatus for providing security using network traffic adjustments
US9892095B2 (en) 2015-06-19 2018-02-13 International Business Machines Corporation Reconciliation of transcripts
US9886423B2 (en) 2015-06-19 2018-02-06 International Business Machines Corporation Reconciliation of transcripts
US9640850B2 (en) 2015-06-25 2017-05-02 At&T Intellectual Property I, L.P. Methods and apparatus for inducing a non-fundamental wave mode on a transmission medium
US10069185B2 (en) 2015-06-25 2018-09-04 At&T Intellectual Property I, L.P. Methods and apparatus for inducing a non-fundamental wave mode on a transmission medium
US9787412B2 (en) 2015-06-25 2017-10-10 At&T Intellectual Property I, L.P. Methods and apparatus for inducing a fundamental wave mode on a transmission medium
US9509415B1 (en) 2015-06-25 2016-11-29 At&T Intellectual Property I, L.P. Methods and apparatus for inducing a fundamental wave mode on a transmission medium
US9865911B2 (en) 2015-06-25 2018-01-09 At&T Intellectual Property I, L.P. Waveguide system for slot radiating first electromagnetic waves that are combined into a non-fundamental wave mode second electromagnetic wave on a transmission medium
US9882657B2 (en) 2015-06-25 2018-01-30 At&T Intellectual Property I, L.P. Methods and apparatus for inducing a fundamental wave mode on a transmission medium
US10090601B2 (en) 2015-06-25 2018-10-02 At&T Intellectual Property I, L.P. Waveguide system and methods for inducing a non-fundamental wave mode on a transmission medium
US10170840B2 (en) 2015-07-14 2019-01-01 At&T Intellectual Property I, L.P. Apparatus and methods for sending or receiving electromagnetic signals
US9836957B2 (en) 2015-07-14 2017-12-05 At&T Intellectual Property I, L.P. Method and apparatus for communicating with premises equipment
US10341142B2 (en) 2015-07-14 2019-07-02 At&T Intellectual Property I, L.P. Apparatus and methods for generating non-interfering electromagnetic waves on an uninsulated conductor
US9628116B2 (en) 2015-07-14 2017-04-18 At&T Intellectual Property I, L.P. Apparatus and methods for transmitting wireless signals
US10320586B2 (en) 2015-07-14 2019-06-11 At&T Intellectual Property I, L.P. Apparatus and methods for generating non-interfering electromagnetic waves on an insulated transmission medium
US9722318B2 (en) 2015-07-14 2017-08-01 At&T Intellectual Property I, L.P. Method and apparatus for coupling an antenna to a device
US9882257B2 (en) 2015-07-14 2018-01-30 At&T Intellectual Property I, L.P. Method and apparatus for launching a wave mode that mitigates interference
US9853342B2 (en) 2015-07-14 2017-12-26 At&T Intellectual Property I, L.P. Dielectric transmission medium connector and methods for use therewith
US10033108B2 (en) 2015-07-14 2018-07-24 At&T Intellectual Property I, L.P. Apparatus and methods for generating an electromagnetic wave having a wave mode that mitigates interference
US9929755B2 (en) 2015-07-14 2018-03-27 At&T Intellectual Property I, L.P. Method and apparatus for coupling an antenna to a device
US10033107B2 (en) 2015-07-14 2018-07-24 At&T Intellectual Property I, L.P. Method and apparatus for coupling an antenna to a device
US9947982B2 (en) 2015-07-14 2018-04-17 At&T Intellectual Property I, Lp Dielectric transmission medium connector and methods for use therewith
US10044409B2 (en) 2015-07-14 2018-08-07 At&T Intellectual Property I, L.P. Transmission medium and methods for use therewith
US10205655B2 (en) 2015-07-14 2019-02-12 At&T Intellectual Property I, L.P. Apparatus and methods for communicating utilizing an antenna array and multiple communication paths
US9847566B2 (en) 2015-07-14 2017-12-19 At&T Intellectual Property I, L.P. Method and apparatus for adjusting a field of a signal to mitigate interference
US10148016B2 (en) 2015-07-14 2018-12-04 At&T Intellectual Property I, L.P. Apparatus and methods for communicating utilizing an antenna array
US9608740B2 (en) 2015-07-15 2017-03-28 At&T Intellectual Property I, L.P. Method and apparatus for launching a wave mode that mitigates interference
US9793951B2 (en) 2015-07-15 2017-10-17 At&T Intellectual Property I, L.P. Method and apparatus for launching a wave mode that mitigates interference
US10090606B2 (en) 2015-07-15 2018-10-02 At&T Intellectual Property I, L.P. Antenna system with dielectric array and methods for use therewith
US9871283B2 (en) 2015-07-23 2018-01-16 At&T Intellectual Property I, Lp Transmission medium having a dielectric core comprised of plural members connected by a ball and socket configuration
US9948333B2 (en) 2015-07-23 2018-04-17 At&T Intellectual Property I, L.P. Method and apparatus for wireless communications to mitigate interference
US9806818B2 (en) 2015-07-23 2017-10-31 At&T Intellectual Property I, Lp Node device, repeater and methods for use therewith
US9749053B2 (en) 2015-07-23 2017-08-29 At&T Intellectual Property I, L.P. Node device, repeater and methods for use therewith
US9912027B2 (en) 2015-07-23 2018-03-06 At&T Intellectual Property I, L.P. Method and apparatus for exchanging communication signals
US10074886B2 (en) 2015-07-23 2018-09-11 At&T Intellectual Property I, L.P. Dielectric transmission medium comprising a plurality of rigid dielectric members coupled together in a ball and socket configuration
US10784670B2 (en) 2015-07-23 2020-09-22 At&T Intellectual Property I, L.P. Antenna support for aligning an antenna
US10020587B2 (en) 2015-07-31 2018-07-10 At&T Intellectual Property I, L.P. Radial antenna and methods for use therewith
US9967173B2 (en) 2015-07-31 2018-05-08 At&T Intellectual Property I, L.P. Method and apparatus for authentication and identity management of communicating devices
US9838078B2 (en) 2015-07-31 2017-12-05 At&T Intellectual Property I, L.P. Method and apparatus for exchanging communication signals
US9735833B2 (en) 2015-07-31 2017-08-15 At&T Intellectual Property I, L.P. Method and apparatus for communications management in a neighborhood network
US9461706B1 (en) 2015-07-31 2016-10-04 At&T Intellectual Property I, Lp Method and apparatus for exchanging communication signals
US10127033B2 (en) 2015-09-14 2018-11-13 At&T Intellectual Property I, L.P. Method and apparatus for distributing software
US9904535B2 (en) 2015-09-14 2018-02-27 At&T Intellectual Property I, L.P. Method and apparatus for distributing software
US10558452B2 (en) 2015-09-14 2020-02-11 At&T Intellectual Property I, L.P. Method and apparatus for distributing software
US9705571B2 (en) 2015-09-16 2017-07-11 At&T Intellectual Property I, L.P. Method and apparatus for use with a radio distributed antenna system
US10009063B2 (en) 2015-09-16 2018-06-26 At&T Intellectual Property I, L.P. Method and apparatus for use with a radio distributed antenna system having an out-of-band reference signal
US10225842B2 (en) 2015-09-16 2019-03-05 At&T Intellectual Property I, L.P. Method, device and storage medium for communications using a modulated signal and a reference signal
US10349418B2 (en) 2015-09-16 2019-07-09 At&T Intellectual Property I, L.P. Method and apparatus for managing utilization of wireless resources via use of a reference signal to reduce distortion
US10136434B2 (en) 2015-09-16 2018-11-20 At&T Intellectual Property I, L.P. Method and apparatus for use with a radio distributed antenna system having an ultra-wideband control channel
US10079661B2 (en) 2015-09-16 2018-09-18 At&T Intellectual Property I, L.P. Method and apparatus for use with a radio distributed antenna system having a clock reference
US10009901B2 (en) 2015-09-16 2018-06-26 At&T Intellectual Property I, L.P. Method, apparatus, and computer-readable storage medium for managing utilization of wireless resources between base stations
US10051629B2 (en) 2015-09-16 2018-08-14 At&T Intellectual Property I, L.P. Method and apparatus for use with a radio distributed antenna system having an in-band reference signal
US9769128B2 (en) 2015-09-28 2017-09-19 At&T Intellectual Property I, L.P. Method and apparatus for encryption of communications over a network
US9729197B2 (en) 2015-10-01 2017-08-08 At&T Intellectual Property I, L.P. Method and apparatus for communicating network management traffic over a network
US9882277B2 (en) 2015-10-02 2018-01-30 At&T Intellectual Property I, Lp Communication device and antenna assembly with actuated gimbal mount
US9876264B2 (en) 2015-10-02 2018-01-23 At&T Intellectual Property I, Lp Communication system, guided wave switch and methods for use therewith
US10074890B2 (en) 2015-10-02 2018-09-11 At&T Intellectual Property I, L.P. Communication device and antenna with integrated light assembly
US10051483B2 (en) 2015-10-16 2018-08-14 At&T Intellectual Property I, L.P. Method and apparatus for directing wireless signals
US10665942B2 (en) 2015-10-16 2020-05-26 At&T Intellectual Property I, L.P. Method and apparatus for adjusting wireless communications
US10355367B2 (en) 2015-10-16 2019-07-16 At&T Intellectual Property I, L.P. Antenna structure for exchanging wireless signals
US10180845B1 (en) 2015-11-13 2019-01-15 Ivanti, Inc. System and methods for network booting
US10958435B2 (en) 2015-12-21 2021-03-23 Electro Industries/ Gauge Tech Providing security in an intelligent electronic device
US11870910B2 (en) 2015-12-21 2024-01-09 Ei Electronics Llc Providing security in an intelligent electronic device
US10430263B2 (en) 2016-02-01 2019-10-01 Electro Industries/Gauge Tech Devices, systems and methods for validating and upgrading firmware in intelligent electronic devices
US10091025B2 (en) 2016-03-31 2018-10-02 Damaka, Inc. System and method for enabling use of a single user identifier across incompatible networks for UCC functionality
US20170364349A1 (en) * 2016-06-16 2017-12-21 Axon Enterprise, Inc. Systems and Methods for Distributing Updates to Devices
US20180019919A1 (en) * 2016-07-15 2018-01-18 Dell Products L.P. System and method for refreshing an information handling system using many to one peer based communication
US10333786B2 (en) * 2016-07-15 2019-06-25 Dell Products L.P. System and method for refreshing an information handling system using many to one peer based communication
US11307845B2 (en) * 2016-08-19 2022-04-19 Veniam, Inc. Systems and methods for updating network nodes
US9912419B1 (en) 2016-08-24 2018-03-06 At&T Intellectual Property I, L.P. Method and apparatus for managing a fault in a distributed antenna system
US9860075B1 (en) 2016-08-26 2018-01-02 At&T Intellectual Property I, L.P. Method and communication node for broadband distribution
US10291311B2 (en) 2016-09-09 2019-05-14 At&T Intellectual Property I, L.P. Method and apparatus for mitigating a fault in a distributed antenna system
US11032819B2 (en) 2016-09-15 2021-06-08 At&T Intellectual Property I, L.P. Method and apparatus for use with a radio distributed antenna system having a control channel reference signal
US10135146B2 (en) 2016-10-18 2018-11-20 At&T Intellectual Property I, L.P. Apparatus and methods for launching guided waves via circuits
US10340600B2 (en) 2016-10-18 2019-07-02 At&T Intellectual Property I, L.P. Apparatus and methods for launching guided waves via plural waveguide systems
US10135147B2 (en) 2016-10-18 2018-11-20 At&T Intellectual Property I, L.P. Apparatus and methods for launching guided waves via an antenna
US9991580B2 (en) 2016-10-21 2018-06-05 At&T Intellectual Property I, L.P. Launcher and coupling system for guided wave mode cancellation
US9876605B1 (en) 2016-10-21 2018-01-23 At&T Intellectual Property I, L.P. Launcher and coupling system to support desired guided wave mode
US10374316B2 (en) 2016-10-21 2019-08-06 At&T Intellectual Property I, L.P. System and dielectric antenna with non-uniform dielectric
US10811767B2 (en) 2016-10-21 2020-10-20 At&T Intellectual Property I, L.P. System and dielectric antenna with convex dielectric radome
US10312567B2 (en) 2016-10-26 2019-06-04 At&T Intellectual Property I, L.P. Launcher with planar strip antenna and methods for use therewith
US10340573B2 (en) 2016-10-26 2019-07-02 At&T Intellectual Property I, L.P. Launcher with cylindrical coupling device and methods for use therewith
US10225025B2 (en) 2016-11-03 2019-03-05 At&T Intellectual Property I, L.P. Method and apparatus for detecting a fault in a communication system
US10498044B2 (en) 2016-11-03 2019-12-03 At&T Intellectual Property I, L.P. Apparatus for configuring a surface of an antenna
US10291334B2 (en) 2016-11-03 2019-05-14 At&T Intellectual Property I, L.P. System for detecting a fault in a communication system
US10224634B2 (en) 2016-11-03 2019-03-05 At&T Intellectual Property I, L.P. Methods and apparatus for adjusting an operational characteristic of an antenna
US10090594B2 (en) 2016-11-23 2018-10-02 At&T Intellectual Property I, L.P. Antenna system having structural configurations for assembly
US10178445B2 (en) 2016-11-23 2019-01-08 At&T Intellectual Property I, L.P. Methods, devices, and systems for load balancing between a plurality of waveguides
US10340601B2 (en) 2016-11-23 2019-07-02 At&T Intellectual Property I, L.P. Multi-antenna system and methods for use therewith
US10340603B2 (en) 2016-11-23 2019-07-02 At&T Intellectual Property I, L.P. Antenna system having shielded structural configurations for assembly
US10535928B2 (en) 2016-11-23 2020-01-14 At&T Intellectual Property I, L.P. Antenna system and methods for use therewith
US10305190B2 (en) 2016-12-01 2019-05-28 At&T Intellectual Property I, L.P. Reflecting dielectric antenna system and methods for use therewith
US10361489B2 (en) 2016-12-01 2019-07-23 At&T Intellectual Property I, L.P. Dielectric dish antenna system and methods for use therewith
US10382976B2 (en) 2016-12-06 2019-08-13 At&T Intellectual Property I, L.P. Method and apparatus for managing wireless communications based on communication paths and network device positions
US10755542B2 (en) 2016-12-06 2020-08-25 At&T Intellectual Property I, L.P. Method and apparatus for surveillance via guided wave communication
US10020844B2 (en) 2016-12-06 2018-07-10 T&T Intellectual Property I, L.P. Method and apparatus for broadcast communication via guided waves
US10439675B2 (en) 2016-12-06 2019-10-08 At&T Intellectual Property I, L.P. Method and apparatus for repeating guided wave communication signals
US10637149B2 (en) 2016-12-06 2020-04-28 At&T Intellectual Property I, L.P. Injection molded dielectric antenna and methods for use therewith
US10135145B2 (en) 2016-12-06 2018-11-20 At&T Intellectual Property I, L.P. Apparatus and methods for generating an electromagnetic wave along a transmission medium
US10819035B2 (en) 2016-12-06 2020-10-27 At&T Intellectual Property I, L.P. Launcher with helical antenna and methods for use therewith
US9927517B1 (en) 2016-12-06 2018-03-27 At&T Intellectual Property I, L.P. Apparatus and methods for sensing rainfall
US10727599B2 (en) 2016-12-06 2020-07-28 At&T Intellectual Property I, L.P. Launcher with slot antenna and methods for use therewith
US10326494B2 (en) 2016-12-06 2019-06-18 At&T Intellectual Property I, L.P. Apparatus for measurement de-embedding and methods for use therewith
US10694379B2 (en) 2016-12-06 2020-06-23 At&T Intellectual Property I, L.P. Waveguide system with device-based authentication and methods for use therewith
US10027397B2 (en) 2016-12-07 2018-07-17 At&T Intellectual Property I, L.P. Distributed antenna system and methods for use therewith
US9893795B1 (en) 2016-12-07 2018-02-13 At&T Intellectual Property I, Lp Method and repeater for broadband distribution
US10139820B2 (en) 2016-12-07 2018-11-27 At&T Intellectual Property I, L.P. Method and apparatus for deploying equipment of a communication system
US10547348B2 (en) 2016-12-07 2020-01-28 At&T Intellectual Property I, L.P. Method and apparatus for switching transmission mediums in a communication system
US10168695B2 (en) 2016-12-07 2019-01-01 At&T Intellectual Property I, L.P. Method and apparatus for controlling an unmanned aircraft
US10243270B2 (en) 2016-12-07 2019-03-26 At&T Intellectual Property I, L.P. Beam adaptive multi-feed dielectric antenna system and methods for use therewith
US10359749B2 (en) 2016-12-07 2019-07-23 At&T Intellectual Property I, L.P. Method and apparatus for utilities management via guided wave communication
US10389029B2 (en) 2016-12-07 2019-08-20 At&T Intellectual Property I, L.P. Multi-feed dielectric antenna system with core selection and methods for use therewith
US10446936B2 (en) 2016-12-07 2019-10-15 At&T Intellectual Property I, L.P. Multi-feed dielectric antenna system and methods for use therewith
US10326689B2 (en) 2016-12-08 2019-06-18 At&T Intellectual Property I, L.P. Method and system for providing alternative communication paths
US10103422B2 (en) 2016-12-08 2018-10-16 At&T Intellectual Property I, L.P. Method and apparatus for mounting network devices
US10530505B2 (en) 2016-12-08 2020-01-07 At&T Intellectual Property I, L.P. Apparatus and methods for launching electromagnetic waves along a transmission medium
US10411356B2 (en) 2016-12-08 2019-09-10 At&T Intellectual Property I, L.P. Apparatus and methods for selectively targeting communication devices with an antenna array
US10777873B2 (en) 2016-12-08 2020-09-15 At&T Intellectual Property I, L.P. Method and apparatus for mounting network devices
US10389037B2 (en) 2016-12-08 2019-08-20 At&T Intellectual Property I, L.P. Apparatus and methods for selecting sections of an antenna array and use therewith
US9998870B1 (en) 2016-12-08 2018-06-12 At&T Intellectual Property I, L.P. Method and apparatus for proximity sensing
US10916969B2 (en) 2016-12-08 2021-02-09 At&T Intellectual Property I, L.P. Method and apparatus for providing power using an inductive coupling
US10938108B2 (en) 2016-12-08 2021-03-02 At&T Intellectual Property I, L.P. Frequency selective multi-feed dielectric antenna system and methods for use therewith
US10069535B2 (en) 2016-12-08 2018-09-04 At&T Intellectual Property I, L.P. Apparatus and methods for launching electromagnetic waves having a certain electric field structure
US9911020B1 (en) 2016-12-08 2018-03-06 At&T Intellectual Property I, L.P. Method and apparatus for tracking via a radio frequency identification device
US10601494B2 (en) 2016-12-08 2020-03-24 At&T Intellectual Property I, L.P. Dual-band communication device and method for use therewith
US10340983B2 (en) 2016-12-09 2019-07-02 At&T Intellectual Property I, L.P. Method and apparatus for surveying remote sites via guided wave communications
US9838896B1 (en) 2016-12-09 2017-12-05 At&T Intellectual Property I, L.P. Method and apparatus for assessing network coverage
US10264586B2 (en) 2016-12-09 2019-04-16 At&T Mobility Ii Llc Cloud-based packet controller and methods for use therewith
US20190056924A1 (en) * 2017-01-12 2019-02-21 Telink Semiconductor (Shanghai) Co., Ltd. Node upgrading method and system in mesh network
US11012534B2 (en) * 2017-02-23 2021-05-18 Osram Gmbh Node for a multi-hop communication network, related lighting system, method of updating the software of lighting modules and computer-program product
US9973940B1 (en) 2017-02-27 2018-05-15 At&T Intellectual Property I, L.P. Apparatus and methods for dynamic impedance matching of a guided wave launcher
US10298293B2 (en) 2017-03-13 2019-05-21 At&T Intellectual Property I, L.P. Apparatus of communication utilizing wireless network devices
US10348606B2 (en) * 2017-05-05 2019-07-09 Dell Products L.P. Method and system for providing a platform for testing of processes over server communications protocols
US10768919B2 (en) 2017-05-16 2020-09-08 Red Hat, Inc. Package installation on a host file system using a container
US10416979B2 (en) * 2017-05-16 2019-09-17 Red Hat, Inc. Package installation on a host file system using a container
US11089454B2 (en) * 2017-07-24 2021-08-10 Honeywell International Inc. Systems and methods for upgrading firmware in multiple devices of a wireless fire detection system
US10313850B2 (en) * 2017-07-24 2019-06-04 Honeywell International Inc. Systems and methods for upgrading firmware in multiple devices of a wireless fire detection system
US11686594B2 (en) 2018-02-17 2023-06-27 Ei Electronics Llc Devices, systems and methods for a cloud-based meter management system
US11734704B2 (en) 2018-02-17 2023-08-22 Ei Electronics Llc Devices, systems and methods for the collection of meter data in a common, globally accessible, group of servers, to provide simpler configuration, collection, viewing, and analysis of the meter data
US11754997B2 (en) 2018-02-17 2023-09-12 Ei Electronics Llc Devices, systems and methods for predicting future consumption values of load(s) in power distribution systems
US20210274341A1 (en) * 2018-11-20 2021-09-02 Parallel Wireless, Inc. Secure Software Update in a Wireless Mesh Radio Network Using Peer-to-Peer File Sharing
US11743713B2 (en) * 2018-11-20 2023-08-29 Parallel Wireless, Inc. Secure software update in a wireless mesh radio network using peer-to-peer file sharing
US11113049B2 (en) * 2019-02-25 2021-09-07 Red Hat, Inc. Deploying applications in a computing environment
US20200272459A1 (en) * 2019-02-25 2020-08-27 Red Hat, Inc. Deploying applications in a computing environment
US11863589B2 (en) 2019-06-07 2024-01-02 Ei Electronics Llc Enterprise security in meters
US10986686B2 (en) 2019-07-11 2021-04-20 International Business Machines Corporation Offline device management
US20220385531A1 (en) * 2019-11-13 2022-12-01 Huawei Technologies Co., Ltd. Mobile device management method and device
US11863386B2 (en) * 2019-11-13 2024-01-02 Huawei Technologies Co., Ltd. Mobile device management method and device
US20210294657A1 (en) * 2020-03-23 2021-09-23 T-Mobile Usa, Inc. Local edge device
US11630700B2 (en) * 2020-03-23 2023-04-18 T-Mobile Usa, Inc. Local edge device
US11941639B1 (en) 2020-06-08 2024-03-26 Amazon Technologies, Inc. Best practice analysis as a service
US20220101335A1 (en) * 2020-09-28 2022-03-31 Arris Enterprises Llc Identification of unsupported device capability to service provider for enhancement and customer attraction

Also Published As

Publication number Publication date
EP2090076A2 (en) 2009-08-19
US7734717B2 (en) 2010-06-08
CN101584187A (en) 2009-11-18
WO2008068601A3 (en) 2008-11-27
US20080133650A1 (en) 2008-06-05
WO2008068601A2 (en) 2008-06-12

Similar Documents

Publication Publication Date Title
US20080130639A1 (en) Software update via peer-to-peer networks
US10758823B2 (en) Gaming via peer-to-peer networks
US10791152B2 (en) Automatic communications between networked devices such as televisions and mobile devices
AU2011222509B2 (en) System and method for two way communication and controlling content in a web browser
EP2027687B1 (en) Bridging between ad hoc local networks and internet-based peer-to-peer networks
US10425675B2 (en) Discovery, access control, and communication with networked services
US20150113172A1 (en) Deploying and managing networked devices
JP5745656B2 (en) Method and apparatus for protecting personal information in home network
JP2010515957A (en) Service chain method and apparatus
US20080133723A1 (en) Extended home service apparatus and method for providing extended home service on p2p networks
Melcher et al. Towards an autonomic framework: Self-configuring network services and developing autonomic applications.
JP2005341237A (en) Network setting method and program, and its storage medium
EP2656585B1 (en) Method, device, system and network architecture for handling a service request
KR20060001550A (en) Upnp device controlling method using internet
US8671178B2 (en) Information processing system and method providing a remote access
WO2001026336A2 (en) Program download in a network
Andersen Changes to functionality in Microsoft Windows XP service pack 2
Muhammad et al. Educational Aspects of Service Orientation: Smart Home Design issues and Technologies.
Portelli et al. HoNeY: leveraging the MHP to provide HOme NEtwork interoperabilitY
Lee et al. A Peer-to-Peer Service Platform Architecture for Extended Home Services
Yamasaki et al. Implementation of a distributed network middleware" CSC" on OSGi frameworks
Gómez-Escalonilla et al. A gateway-based solution for remote accessing to residential UPnP services networks
HARJULA et al. Analysis of connectivity and session management for mobile peer-to-peer applications
Archer Self-organizing mesh network of android devices
Cruz et al. A management framework for residential broadband environments

Legal Events

Date Code Title Description
AS Assignment

Owner name: NOKIA CORPORATION, FINLAND

Free format text: ASSIGNMENT OF ASSIGNORS INTEREST;ASSIGNORS:COSTA-REQUENA, JOSE;ESPIGARES, INMACULADA;HELANDER, MIKA;AND OTHERS;REEL/FRAME:019383/0777;SIGNING DATES FROM 20070322 TO 20070323

STCB Information on status: application discontinuation

Free format text: ABANDONED -- FAILURE TO RESPOND TO AN OFFICE ACTION