US20140298314A1 - Method for efficient content distribution using a peer-to-peer networking infrastructure - Google Patents

Method for efficient content distribution using a peer-to-peer networking infrastructure Download PDF

Info

Publication number
US20140298314A1
US20140298314A1 US14231693 US201414231693A US2014298314A1 US 20140298314 A1 US20140298314 A1 US 20140298314A1 US 14231693 US14231693 US 14231693 US 201414231693 A US201414231693 A US 201414231693A US 2014298314 A1 US2014298314 A1 US 2014298314A1
Authority
US
Grant status
Application
Patent type
Prior art keywords
computing device
peer
network
software product
content
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
US14231693
Inventor
Todd R. Manion
Ravi T. Rao
Michael Shappell
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.)
Microsoft Technology Licensing LLC
Original Assignee
Microsoft Corp
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

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING; 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-specific arrangements or communication protocols supporting networked applications
    • H04L67/10Network-specific arrangements or communication protocols supporting networked applications in which an application is distributed across nodes in the network
    • H04L67/104Network-specific arrangements or communication protocols supporting networked applications in which an application is distributed across nodes in the network for peer-to-peer [P2P] networking; Functionalities or architectural details of P2P networks
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L67/00Network-specific arrangements or communication protocols supporting networked applications
    • H04L67/10Network-specific arrangements or communication protocols supporting networked applications in which an application is distributed across nodes in the network
    • H04L67/104Network-specific arrangements or communication protocols supporting networked applications in which an application is distributed across nodes in the network for peer-to-peer [P2P] networking; Functionalities or architectural details of P2P networks
    • H04L67/1042Network-specific arrangements or communication protocols supporting networked applications in which an application is distributed across nodes in the network for peer-to-peer [P2P] networking; Functionalities or architectural details of P2P networks involving topology management mechanisms
    • H04L67/1044Group management mechanisms
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L67/00Network-specific arrangements or communication protocols supporting networked applications
    • H04L67/10Network-specific arrangements or communication protocols supporting networked applications in which an application is distributed across nodes in the network
    • H04L67/104Network-specific arrangements or communication protocols supporting networked applications in which an application is distributed across nodes in the network for peer-to-peer [P2P] networking; Functionalities or architectural details of P2P networks
    • H04L67/1061Network-specific arrangements or communication protocols supporting networked applications in which an application is distributed across nodes in the network for peer-to-peer [P2P] networking; Functionalities or architectural details of P2P networks involving 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
    • H04L29/00Arrangements, apparatus, circuits or systems, not covered by a single one of groups H04L1/00 - H04L27/00 contains provisionally no documents
    • H04L29/02Communication control; Communication processing contains provisionally no documents
    • H04L29/06Communication control; Communication processing contains provisionally no documents characterised by a protocol
    • H04L29/0602Protocols characterised by their application
    • H04L29/06027Protocols for multimedia communication
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L67/00Network-specific arrangements or communication protocols supporting networked applications
    • H04L67/34Network-specific arrangements or communication protocols supporting networked applications involving the movement of software or configuration parameters

Abstract

Disclosed is a method for efficiently distributing content by leveraging the use of a peer-to-peer network infrastructure. In a network of peers, a handful peers can receive content from centralized servers. These peers can then flood this content out to more clients who in turn can send the content along to others. Ultimately, a request for content can be fulfilled by locating the closest peer and obtaining the content from that peer. In one embodiment the method can be used to distribute content by creating content distribution groups of one or more client computing devices and redirecting requests for content from the server to the content distribution group. A further contemplated embodiment efficiently streams time sensitive data through the use of a spanning tree architecture of peer-to-peer clients. In yet another embodiment the present invention provides for more efficient use of bandwidth for shared residential broadband connections.

Description

    RELATED APPLICATION
  • This application is a continuation of U.S. application Ser. No. 10/810,917, filed on Mar. 26, 2004, entitled “METHOD FOR EFFICIENT CONTENT DISTRIBUTION USING A PEER-TO-PEER NETWORKING INFRASTRUCTURE”, at least some of which may be incorporated herein.
  • BACKGROUND
  • Traditionally, the task of distributing content over a network to a client computing device has been one that is highly server-intensive. In the typical model, the clients will connect to a server to receive content directly from the server on an individual basis. In the case of a large enterprise installation, for instance, this model implies that every client is required to connect to the server to receive data from it making it very difficult for the server to handle such large amounts of simultaneous requests for data.
  • A server-only content distribution model can also present problems with respect to bandwidth availability. With the advent of affordable and easily maintainable home networking equipment it is becoming more common for several computers in a household, or residential area, to share a single broadband or dial-up connection. A household having five computers, for example, may need to download software (e.g., patches, product upgrades, etc.) from a central server (e.g., windowsupdate.com) to each computer. Since there is a single point of receipt from outside the home network, if all five computers, or even less than all five, are requesting the same content at overlapping times the computers will be splitting the available bandwidth of the connection while receiving the same content.
  • Not only does a server-based content distribution solution have drawbacks in the enterprise and home settings but also in the internet setting as well. For example, the interconnected nature of the Internet has, among other things, accelerated the spread of computer viruses and worms. Unfortunately, virus cleansing and repair remains a reactionary process whereby the necessary virus definition files are distributed upon identification of the virus “in the wild.” Time is therefore of the essence in distributing the virus definition files to stanch the spread of the virus. When a new virus is first identified, the virus definition distribution servers can become overloaded with requests or could even be made unavailable (e.g., through a denial of service attack or some similar nefarious method) as part of the scheme to propagate the spread of the virus. A solution where the virus definitions are obtained only from a centralized server on the internet fails to safeguard against this eventuality and additionally fails to provide a method whereby the virus definitions can be distributed to the maximum number of computers in the most efficient fashion.
  • One potential solution to the problems described above is to use a series of redundant content distribution servers that may serve to distribute the load of demand over a number of servers. Such a solution however has several drawbacks. First, server hardware and software, and in particular the type of server hardware and software needed for intensive data delivery tasks, is typically expensive and requires experienced administration resources. Additionally, such a solution only scales in a linear fashion. For example, suppose 1,000 clients are currently receiving their content from a single server. Adding one more content distributing server reduces the average number of clients to a server to 500. Adding a third reduces this number to approximately 333, and so on. Thus a significant number of servers must be added to reduce the number of clients receiving content from a particular server to desired or manageable levels. Finally, a further drawback to this solution is that the content to be distributed and the distribution ability will always remain solely on the servers and hence only available in a limited fashion.
  • SUMMARY
  • In view of the foregoing, the present invention provides a method for efficiently distributing content by leveraging the use of a peer-to-peer network infrastructure. Peer-to-peer networking provides an infrastructure that enables computing devices to communicate and share information securely with one another without the need of a server or other third party to facilitate the communication. A peer-to-peer networking infrastructure can be effectively employed to improve the efficiency of content distribution and the corresponding scalability. In a network of peers, a handful of the peers can receive content from centralized servers. These peers can then flood this content out to a few more peers who in turn can send the content along to others. Ultimately, this method produces a result whereby a request for content can be fulfilled by locating the closest peer and obtaining the content from that peer.
  • In one embodiment the above method can be used to distribute content over the Internet or within an enterprise installation by creating content distribution groups of one or more computing devices that are also peers in one or more peer-to-peer networks. Content requests on the server can then be redirected to a content distribution group for distribution to peers to reduce load on the centralized content distribution server.
  • A further contemplated embodiment efficiently streams time sensitive content through the use of a spanning tree architecture of peer-to-peer clients. On-line meeting materials or webcast concerts or similar time sensitive content can be distributed in a highly efficient manner by geometrically increasing the amount of content distributing computing devices over time.
  • In yet another embodiment the present invention provides for more efficient use of bandwidth in home networks or shared residential broadband or dial-up connections. In a peer-to-peer content distribution scenario one client computing device can download content over the connection while the other computing devices can simply obtain the content from the peer that downloaded it, thereby eliminating the need for bandwidth to be used by multiple client computing devices in downloading the same content.
  • BRIEF DESCRIPTION OF THE DRAWINGS
  • While the appended claims set forth the features of the present invention with particularity, the invention, together with its objects and advantages, may be best understood from the following detailed description taken in conjunction with the accompanying drawings of which:
  • FIG. 1 is a schematic diagram of an exemplary computer architecture on which the method of the invention can be implemented;
  • FIG. 2 is a schematic diagram showing an exemplary communications network in which the method of the invention can be practiced;
  • FIG. 3 is a schematic diagram showing an exemplary peer-to-peer networking infrastructure architecture;
  • FIG. 4 is a schematic diagram illustrating the process of a peer node joining a peer-to-peer group;
  • FIG. 5 is a flowchart illustrating the process of a peer node joining a peer-to-peer group;
  • FIG. 6 is a schematic diagram showing an exemplary peer-to-peer group;
  • FIG. 7 is a flowchart illustrating the process of content distribution leveraging a peer-to-peer networking infrastructure;
  • FIG. 8 is a schematic diagram showing an implementation of content distribution leveraging a peer-to-peer networking infrastructure for a residential network;
  • FIG. 9 is a schematic diagram showing an implementation of content distribution leveraging a peer-to-peer networking infrastructure for the Internet; and
  • FIG. 10 is a schematic diagram showing an implementation of content distribution leveraging a peer-to-peer networking infrastructure for an enterprise installation.
  • DETAILED DESCRIPTION
  • In the description that follows, the invention is described with reference to acts and symbolic representations of operations that are performed by one or more computing devices, unless indicated otherwise. As such, it will be understood that such acts and operations, which are at times referred to as being computer-executed, include the manipulation by the processing unit of the computing device of electrical signals representing data in a structured form. This manipulation transforms the data or maintains them at locations in the memory system of the computing device, which reconfigures or otherwise alters the operation of the computing device in a manner well understood by those skilled in the art. The data structures where data are maintained are physical locations of the memory that have particular properties defined by the format of the data. However, while the invention is being described in the foregoing context, it is not meant to be limiting as those of skill in the art will appreciate that several of the acts and operations described hereinafter may also be implemented in hardware.
  • Turning to the drawings, wherein like reference numerals refer to like elements, the invention is illustrated as being implemented in a suitable networking environment. The following description is based on illustrated embodiments of the invention and should not be taken as limiting the invention with regard to alternative embodiments that are not explicitly described herein.
  • I. Exemplary Environment
  • Referring to FIG. 1, the present invention relates to communications between network nodes on connected networks. Each of the network nodes resides in a device that may have one of many different computer architectures. For descriptive purposes, FIG. 1 shows a schematic diagram of an exemplary architecture usable for these devices. The architecture portrayed is only one example of a suitable environment and is not intended to suggest any limitation as to the scope of use or functionality of the invention. Neither should the computing devices be interpreted as having any dependency or requirement relating to any one or combination of components illustrated in FIG. 1. The invention is operational with numerous other general-purpose or special-purpose computing or communications environments or configurations. Examples of well known computing systems, environments, and configurations suitable for use with the invention include, but are not limited to, mobile telephones, pocket computers, personal computers, servers, multiprocessor systems, microprocessor-based systems, minicomputers, mainframe computers, and distributed computing environments that include any of the above systems or devices.
  • In its most basic configuration, a computing device 100 typically includes at least one processing unit 102 and memory 104. The memory 104 may be volatile (such as RAM), non-volatile (such as ROM and flash memory), or some combination of the two. This most basic configuration is illustrated in FIG. 1 by the dashed line 106.
  • Computing device 100 can also contain storage media devices 108 and 110 that may have additional features and functionality. For example, they may include additional storage (removable and non-removable) including, but not limited to, PCMCIA cards, magnetic and optical disks, and magnetic tape. Such additional storage is illustrated in FIG. 1 by removable storage 108 and non-removable storage 110. Computer-storage media include volatile and non-volatile, removable and non-removable media implemented in any method or technology for storage of information such as computer-readable instructions, data structures, program modules, or other data. Memory 104, removable storage 108, and non-removable storage 110 are all examples of computer-storage media. Computer-storage media include, but are not limited to, RAM, ROM, EEPROM, flash memory, other memory technology, CD-ROM, digital versatile disks, other optical storage, magnetic cassettes, magnetic tape, magnetic disk storage, other magnetic storage devices, and any other media that can be used to store the desired information and that can be accessed by the computing device.
  • Computing device 100 can also contain communication channels 112 that allow it to communicate with other devices. Communication channels 112 are examples of communications media. Communications media typically embody computer-readable instructions, data structures, program modules, or other data in a modulated data signal such as a carrier wave or other transport mechanism and include any information-delivery media. The term “modulated data signal” means a signal that has one or more of its characteristics set or changed in such a manner as to encode information in the signal. By way of example, and not limitation, communications media include wired media, such as wired networks and direct-wired connections, and wireless media such as acoustic, radio, infrared, and other wireless media. The term computer-readable media as used herein includes both storage media and communications media. The computing device 100 may also have input components 114 such as a keyboard, mouse, pen, a voice-input component, and a touch-input device. Output components 116 include screen displays, speakers, printers, and rendering modules (often called “adapters”) for driving them. The computing device 100 has a power supply 118. All these components are well known in the art and need not be discussed at length here.
  • II. Server-Based Content Distribution
  • The present invention is directed to methods for efficiently distributing content over computer networks. Referring to FIG. 2, an exemplary communications network architecture is illustrated. Accompanying a computing device 100 on a local area network (LAN) 120 is a server 200 and a router 202. The router 202 allows the devices on the LAN 120 to communicate over an internetwork 204 to remote computing devices 206. The Internet is one example of an internetwork. In the present example, the server 200 can be a network server which the computing device 100 may access for content distribution over the LAN 120 and the remote computing device can be a remote content distribution server which the computing device may access for content distribution over the Internet 204 or similar wide area network (WAN).
  • Traditionally, the task of distributing content over a network 120 to a client computing device 100 has been one that is highly server-intensive. In the typical model, the clients 100 will connect to a server 200, 206 to receive content directly from the server 200, 206 on an individual basis. In the case of a large enterprise installation, for instance, this model implies that every client 100 is required to connect to the internal network server 200 to receive content (e.g., data) from it making it very difficult for the server to handle large amounts of simultaneous requests for content. In the case of a home network or similar shared residential broadband or dial-up connectivity scenario, this model implies that every computer 100 sharing the connection 208 is required to connect to the external content server 206 to receive data from it, thereby splitting the available bandwidth of the connection 208 when requests are made by the computing devices 100 at overlapping times. External content servers 206 exposed on the Internet can become overloaded when there is a spike in requests for time sensitive content regardless of whether the requests are originating from inside an enterprise installation or residential gateway. In addition, the server based content distribution model may fail to provide content availability contingency scenarios for periods of server unavailability. Attempts to address the limitations of server-based content distribution have focused on additional server redundancy, however such solutions do not scale well under severe demand and are generally not cost effective.
  • III. Peer-to-Peer Networking Infrastructure
  • The present invention leverages the use of a peer-to-peer network infrastructure for efficient content distribution. In the description that follows the invention is described as being implemented over a peer-to-peer network infrastructure such as the Windows® Peer-to-Peer Networking Infrastructure by Microsoft of Redmond, Wash. As will be appreciated by one of ordinary skill in the art, the network infrastructure should be understood to include any network infrastructure possessing the necessary communications and security protocols.
  • Turning to FIG. 3, an exemplary peer-to-peer architecture is illustrated. The peer-to-peer infrastructure resides primarily between the operating system (OS) 300 and socket 302 layers and the application layer 318. Of particular importance are the discovery 308, graphing 306, and grouping 312 components. At the bottom most layer of the architecture is the core OS 300. The OS is, in one embodiment, the Windows operating system by Microsoft of Redmond, Wash. As will be appreciated by one of ordinary skill in the art, the OS should be understood to also include similar operating systems. Residing between the peer-to-peer architecture and the OS is the network communications socket layer 302. The socket layer 302 allows the peer-to-peer architecture to leverage the operating system's interface with lower level network communication protocols. The discovery protocol 308 is a peer name resolution protocol (PNRP) that enables the resolution of a peer name to an IP address in a completely serverless fashion. Thus, with the discovery protocol 308, it is possible for a computing device to locate a peer on a network without the need for a separate server to maintain peer network location information. The graphing component 306 allows for the organization of a given set of network nodes so that data can be efficiently disseminated amongst them. Specifically, graphing 306 addresses data dissemination in a network that is not fully connected and provides for one-to-many dissemination of the data. The grouping component 312 associates a security model with one or more graphs created by the graphing component 306. With the grouping 312 module, a peer is able to create a group, own a group, and define members (users or machines) that are allowed to join the group.
  • In one embodiment of the graphing component 306 employed by the present invention, interfaces and methods can be implemented through an application programming interface (API). Such an embodiment is particularly well suited for the Microsoft Windows XP operating system in which the APIs may be as follows:
  • // Graph interfaces
    HRESULT WINAPI PeerGraphStartup(
     IN WORD wVersionRequested,
     OUT PPEER_VERSION_DATA pVersionData);
    HRESULT WINAPI PeerGraphShutdown( );
    VOID WINAPI PeerGraphFreeData(
     IN PVOID pvData);
    HRESULT WINAPI PeerGraphGetItemCount(
     IN HPEERENUM hPeerEnum,
     OUT PULONG pCount);
    HRESULT WINAPI PeerGraphGetNextItem(
     IN HPEERENUM hPeerEnum,
     IN OUT PULONG pCount,
     OUT PVOID * ppvItems);
    HRESULT WINAPI PeerGraphEndEnumeration(
     IN HPEERENUM hPeerEnum);
    HRESULT WINAPI PeerGraphCreate(
     IN PPEER_GRAPH_PROPERTIES pGraphProperties,
     IN PCWSTR pwzDatabaseName,
     IN PPEER_SECURITY_INTERFACE
    pSecurityInterface,
     OUT PHGRAPH phGraph);
    HRESULT WINAPI PeerGraphOpen(
     IN PCWSTR pwzGraphId,
     IN PCWSTR pwzPeerId,
     IN PCWSTR pwzDatabaseName,
     IN PPEER_SECURITY_INTERFACE
    pSecurityInterface,
     IN ULONG cRecordTypeSyncPrecedence,
     IN GUID * pRecordTypeSyncPrecedence,
     OUT PHGRAPH phGraph);
    HRESULTWINAPI PeerGraphListen(
     IN HGRAPH hGraph,
     IN DWORD dwScope,
     IN DWORD dwScopeId,
     IN WORD wPort);
    HRESULT WINAPI PeerGraphConnect(
     IN HGRAPH hGraph,
     IN PCWSTR pwzPeerId,
     IN PPEER_ADDRESS pAddress,
     OUT ULONGLONG * pullConnectionId);
    HRESULT WINAPI PeerGraphClose(
     IN HGRAPH hGraph);
    HRESULT WINAPI PeerGraphDelete(
     IN PCWSTR pwzGraphId,
     IN PCWSTR pwzPeerId,
     IN PCWSTR pwzDatabaseName);
    HRESULT WINAPI PeerGraphGetStatus(
     IN HGRAPH hGraph,
     OUT DWORD * pdwStatus);
    HRESULT WINAPI PeerGraphGetProperties(
     IN HGRAPH hGraph,
     OUT PPEER_GRAPH_PROPERTIES *
    ppGraphProperties);
    HRESULT WINAPI PeerGraphSetProperties(
     IN HGRAPH hGraph,
     IN PPEER_GRAPH_PROPERTIES pGraphProperties);
    // Eventing interfaces
    HRESULT WINAPI PeerGraphRegisterEvent(
     IN HGRAPH hGraph,
     IN HANDLE hEvent,
     IN ULONG cEventRegistrations,
     IN PPEER_GRAPH_EVENT_REGISTRATION
    pEventRegistrations,
     OUT HPEEREVENT * phPeerEvent);
    HRESULT WINAPI PeerGraphUnregisterEvent(
     IN HPEEREVENT hPeerEvent);
    HRESULT WINAPI PeerGraphGetEventData(
     IN HPEEREVENT hPeerEvent,
     OUT PPEER_GRAPH_EVENT_DATA * ppEventData);
    // Data Storage
    HRESULT WINAPI PeerGraphGetRecord(
     IN HGRAPH hGraph,
     IN GUID * pRecordId,
     OUT PPEER_RECORD * ppRecord);
    HRESULT WINAPI PeerGraphAddRecord(
     IN HGRAPH hGraph,
     IN PPEER_RECORD pRecord,
     OUT GUID * pRecordId);
    HRESULT WINAPI PeerGraphUpdateRecord(
     IN HGRAPH hGraph,
     IN PPEER_RECORD pRecord);
    HRESULT WINAPI PeerGraphDeleteRecord(
     IN HGRAPH hGraph,
     IN GUID * pRecordId,
     IN BOOL fLocal);
    HRESULT WINAPI PeerGraphEnumRecords(
     IN HGRAPH hGraph,
     IN GUID * pRecordType,
     IN PCWSTR pwzPeerId,
     OUT HPEERENUM * phPeerEnum);
    HRESULT WINAPI PeerGraphSearchRecords(
     IN HGRAPH hGraph,
     IN PCWSTR pwzCriteria,
     OUT HPEERENUM * phPeerEnum);
    HRESULT WINAPI PeerGraphExportDatabase(
     IN HGRAPH hGraph,
     IN PCWSTR pwzFilePath);
    HRESULT WINAPI PeerGraphImportDatabase(
     IN HGRAPH hGraph,
     IN PCWSTR pwzFilePath);
    HRESULT WINAPI PeerGraphValidateDeferredRecords(
     IN HGRAPH hGraph,
     IN ULONG cRecordIds,
     IN GUID * pRecordIds);
    // Node/Connection interfaces
    HRESULT WINAPI PeerGraphOpenDirectConnection(
     IN HGRAPH hGraph,
     IN PCWSTR pwzPeerId,
     IN PPEER_ADDRESS pAddress,
     OUT ULONGLONG * pullConnectionId);
    HRESULT WINAPI PeerGraphSendData(
     IN HGRAPH hGraph,
     IN ULONGLONG ullConnectionId,
     IN GUID * pType,
     IN ULONG cbData,
     IN PVOID pvData);
    HRESULT WINAPIPeerGraphCloseDirectConnection(
     IN HGRAPH hGraph,
     IN ULONGLONG ullConnectionId);
    HRESULT WINAPI PeerGraphEnumConnections(
     IN HGRAPH hGraph,
     IN DWORD dwFlags, //
    PEER_CONNECTION_FLAGS
     OUT HPEERENUM * phPeerEnum);
    HRESULT WINAPI PeerGraphEnumNodes(
     IN HGRAPH hGraph,
     IN PCWSTR pwzPeerld,
     OUT HPEERENUM * phPeerEnum);
    HRESULT WINAPI PeerGraphSetPresence(
     IN HGRAPH hGraph,
     IN BOOL fPresent);
    HRESULT WINAPI PeerGraphGetNodeInfo(
     IN HGRAPH hGraph,
     IN ULONGLONG ullNodeId,
     OUT PPEER NODE INFO * ppNodelnfo);
    HRESULT WINAPI PeerGraphSetNodeAttributes(
     IN HGRAPH hGraph,
     IN PCWSTR pwzAttributes);
    HRESULT WINAPI PeerGraphSystemTimeFromGraphTime(
     IN HGRAPH hGraph,
     IN FILETIME * pftGraphTime,
     OUT FILETIME * pftSystemTime);
  • In one embodiment of the grouping component 312 employed by the present invention, interfaces and methods can be implemented through an API. Such an embodiment is particularly well suited for the Microsoft Windows XP operating system in which the APIs may be as follows:
  • HRESULT WINAPI PeerGroupStartup(
     IN WORD wVersionRequested,
     OUT_PPEER_VERSION DATA pVersionData);
    HRESULT WINAPI PeerGroupShutdown( );
    VOID WINAPI PeerFreeData(
     IN PVOID pvData);
    HRESULT WINAPI PeerGetItemCount(
     IN HPEERENUM hPeerEnum,
     OUT PULONG pCount);
    HRESULT WINAPI PeerGetNextItem(
     IN HPEERENUM hPeerEnum,
     IN OUT PULONG pCount,
     OUT PVOID * ppvItems);
    HRESULT WINAPI PeerEndEnumeration(
     IN HPEERENUM hPeerEnum);
    ///////////////////////////////////////////////////
    // Group interfaces
    HRESULT WINAPI PeerGroupCreate(
     IN PPEER_GROUP_PROPERTIES pProperties,
     OUT HGROUP * phGroup);
    HRESULT WINAPI PeerGroupOpen(
     IN PCWSTR pwzIdentity,
     IN PCWSTR pwzGroupPeerName,
     IN PCWSTR pwzCloud,
     OUT HGROUP * phGroup);
    HRESULT WINAPI PeerGroupJoin(
     IN PCWSTR pwzIdentity,
     IN PCWSTR pwzInvitation,
     IN PCWSTR pwzCloud,
     OUT HGROUP * phGroup);
    HRESULT WINAPI PeerGroupConnect(
     IN HGROUP hGroup);
    HRESULT WINAPI PeerGroupClose(
     IN HGROUP hGroup);
    HRESULT WINAPI PeerGroupDelete(
     IN PCWSTR pwzIdentity,
     IN PCWSTR pwzGroupPeerName);
    HRESULT WINAPI PeerGroupCreateInvitation(
     IN HGROUP hGroup,
     IN PCWSTR pwzIdentityInfo,
     IN FILETIME * pftExpiration,
     IN ULONG cRoles,
     IN PEER_ROLE_ID* pRoles,
     OUT PWSTR * ppwzInvitation);
    HRESULT WINAPI PeerGroupParseInvitation(
     IN PCWSTR pwzInvitation,
     OUT PPEER_INVITATION_INFO * ppinvitationInfo);
    HRESULT WINAPI PeerGroupGetStatus(
     IN HGROUP hGroup,
     OUT DWORD * pdwStatus);
    HRESULT WINAPI PeerGroupGetProperties(
     IN HGROUP hGroup,
     OUT PPEER_GROUP_PROPERTIES * ppProperties);
    HRESULT WINAPI PeerGroupSetProperties(
     IN HGROUP hGroup,
     IN PPEER_GROUP_PROPERTIES pProperties);
    HRESULT WINAPI PeerGroupEnumMembers(
     IN HGROUP hGroup,
     IN DWORD dwFlags, //
    PEER_MEMBER_FLAGS
     IN PCWSTR pwzIdentity,
     OUT HPEERENUM * phPeerEnum);
    HRESULT WINAPI PeerGroupOpenDirectConnection(
     IN HGROUP hGroup,
     IN PCWSTR pwzIdentity,
     IN PPEER_ADDRESS pAddress,
     OUT ULONGLONG * pullConnectionId);
    HRESULT WINAPI PeerGroupCloseDirectConnection(
     IN HGROUP hGroup,
     IN ULONGLONG ullConnectionId);
    HRESULT WINAPI PeerGroupEnumConnections(
     IN HGROUP hGroup,
     IN DWORD dwFlags, //
    PEER_CONNECTION_FLAGS
     OUT HPEERENUM * phPeerEnum);
    HRESULT WINAPI PeerGroupSendData(
     IN HGROUP hGroup,
     IN ULONGLONG ullConnectionId,
     IN GUID * pType,
     IN ULONG cbData,
     IN PVOID pvData);
    // Eventing interfaces
    HRESULT WINAPI PeerGroupRegisterEvent(
     IN HGROUP hGroup,
     IN HANDLE hEvent,
     IN DWORD cEventRegistration,
     IN PPEER_GROUP_EVENT_REGISTRATION
    pEventRegistrations,
     OUT HPEEREVENT * phPeerEvent);
    HRESULT WINAPI PeerGroupUnregisterEvent(
     IN HPEEREVENT hPeerEvent);
    HRESULT WINAPI PeerGroupGetEventData(
     IN HPEEREVENT hPeerEvent,
     OUT PPEER_GROUP_EVENT_DATA * ppEventData);
    // Data Storage
    HRESULT WINAPI PeerGroupGetRecord(
     IN HGROUP hGroup,
     IN GUID * pRecordId,
     OUT PPEER_RECORD * ppRecord);
    HRESULT WINAPI PeerGroupAddRecord(
     IN HGROUP hGroup,
     IN PPEER_RECORD pRecord,
     OUT GUID * pRecordId);
    HRESULT WINAPI PeerGroupUpdateRecord(
     IN HGROUP hGroup,
     IN PPEER_RECORD pRecord);
    HRESULT WINAPI PeerGroupDeleteRecord(
     IN HGROUP hGroup,
     IN GUID * pRecordId);
    HRESULT WINAPI PeerGroupEnumRecords(
     IN HGROUP hGroup,
     IN GUID * pRecordType,
     OUT HPEERENUM * phPeerEnum);
    HRESULT WINAPI PeerGroupSearchRecords(
     IN HGROUP hGroup,
     IN PCWSTR pwzCriteria,
     OUT HPEERENUM * phPeerEnum);
    HRESULT WINAPI PeerGroupExportDatabase(
     IN HGROUP hGroup,
     IN PCWSTR pwzFilePath);
    HRESULT WINAPI PeerGroupImportDatabase(
     IN HGROUP hGroup,
     IN PCWSTR pwzFilePath);
    HRESULT WINAPI PeerGroupAuthorizeMembership(
     IN HGROUP hGroup,
     IN PPEER_MEMBERSHIP_INFO pMemberinfo,
     IN BOOL fAuthorize);
    HRESULT WINAPI PeerGroupPeerTimeToUniversalTime(
     IN HGROUP hGroup,
     IN FILETIME * pftPeerTime,
     OUT FILETIME * pftUniversalTime);
    HRESULT WINAPIPeerGroupUniversalTimeToPeerTime(
     IN HGROUP hGroup,
     IN FILETIME * pftUniversalTime,
     OUT FILETIME * pftPeerTime);
  • FIGS. 4 and 5 illustrate the peer-to-peer group creation and joining process. Beginning with step 500, the group creator 100 requests that a peer identity for the application be created by the identity manager 310. Next, in step 502, the group creator 100 requests that a group 404 be created. In step 504 a group joiner 100 requests that a peer identity be created by the identity manager 310. Next, in step 506, using the discovery protocol 308 the group joiner 100 locates a group 404 to join. In step 508 the group joiner 100 opens the group 404 that the joiner wishes to join and in step 510 the group joiner 100 sends its identity 400 credentials to the group creator 100. Upon receipt of the group joiner's identity credentials 400 by the group creator 100, in step 512, the group creator 100 requests that an invitation 402 be created to send to the group joiner 100. Next, in step 514, the group creator 100 sends the invitation 402 to the group joiner 100. Upon receipt of the invitation 402 in step 516, the group joiner 100 accepts the invitation 402 and joins the group 404 in step 518. The preceding steps can be repeated resulting in the formation of a peer-to-peer group such as the one illustrated in FIG. 6.
  • IV. Content Distribution Leveraging a Peer-to-Peer Network Infrastructure
  • With reference to FIG. 6, an exemplary peer-to-peer group is illustrated. In the group, each peer-to-peer node 100 is reachable via a path on the graph of the group. Each peer node 100 in the group has an instance of the replicated store 314. The replicated store 314 is associated with a graph or a group and maintains metadata as to the current state of each node. When a node 100 connects to a group it first synchronizes the replicated store database 314. The nodes 100 maintain this database automatically.
  • The replicated store 314 houses metadata about the peer-to-peer group in the form of records 600 residing in the store 314. Each record can contain a record ID field, a record type field, and an attribute field. In the case of the present invention, the metadata in the store reflects what content has been distributed to nodes 100 of the group. For each piece of content that has been distributed to a node 100 in the group, a record 600 corresponding to that piece of content exists in the replicated store 314. This record 600 possesses a location attribute that enables a node 100 in the group to ascertain if the desired content is available from within the peer group and, if so, from which nodes 100 in the group.
  • Turning to FIG. 7, the method of peer-to-peer content distribution leveraging a peer-to-peer networking infrastructure is illustrated. Beginning with step 700, a content distribution server publishes content for distribution. Continuing with step 702, a client computing device makes a request to the content distribution server for the published content. In step 704, the content distribution server sends the content to the client computing device and, in step 706, the client computing device receives the desired content. Next, in step 708, the client computing device updates the instance of the replicated store located on the client computing device to reflect the content that was obtained in step 706. In step 710, the update to the replicated store is propagated through the peer-to-peer group to the instances of the replicated store on the nodes of the group. Next, in step 712, a node desiring a piece of content can consult the replicated store to determine if the content is obtainable via the peer-to-peer group. Finally, in step 714, a node which has located the content it desires can receive that content from the peer node in the group having the desired content.
  • The above described method can be applied to a variety of content distribution scenarios. One such scenario is illustrated in FIG. 8. FIG. 8 depicts a residential network connected to the Internet 204 via a shared broadband or dial-up connection 208. In a connectivity scheme such as this one, all of the computing devices in the residential network share the bandwidth of the connection 208. In this scenario, leveraging the peer-to-peer networking infrastructure in distributing content would result in a savings of bandwidth of the shared connection 208. Under a server-based content distribution scheme, a home network having five computers desiring content (e.g., applications, patches, product upgrades, virus definitions, etc.) from a central server would require that each computer individually obtain the content. This necessitates five separate requests for content from the central server 206, each request drawing on bandwidth of the connection 208. As illustrated in FIG. 8, the home network can form a peer-to-peer group 404 of computing devices and one client computing device can download the desired content from the external content server 206 via the Internet 204 and connection 208. The other peer computing devices can then simply obtain the content from the node that downloaded it from the external content server 206. The scenario can also be extended for use with applications such as distributed web caches wherein clients can download a web content from another client close to it who may have downloaded that web content recently. Since the speed of the local network connections will typically far rival that of the broadband or dial-up connection, this results in a better overall experience for the user.
  • An additional scenario in which the leveraging of the peer-to-peer network infrastructure results in a more efficient distribution of content is illustrated in FIG. 9. Suppose, for example, the external content server 206 of FIG. 9 is a virus definition server for a large antivirus company. As will be appreciated by one of ordinary skill in the art, the virus definition development life-cycle is typically characterized as a very short “ship cycle.” As soon as a new antivirus definition file is available, it is shipped and/or made available for download to the antivirus subscribers. The frequency of such updates to antivirus programs is quite high. Under a server-based content distribution scenario, these updates would be hosted on the external content server 206. The spikes in downloading of these updates, when posted, could potentially cause scaling issues. By leveraging the peer-to-peer networking infrastructure in distributing content, such as virus updates, load on the external content server 206 can be reduced. As illustrated in FIG. 9, a content distribution group 404 can be created and managed by the external content server 206 and requests for content from computing devices 100 can be redirected from the server 206 to the content distribution group 404. Thus, only a handful of customers would need to connect up to the main anti-virus server 206 and the virus patch would automatically be propagated through the content distribution group. In this scenario, the patch itself would likely be signed by the company to ensure that no customer in the distribution group 404 could spoof the patch as coming from the company.
  • Yet another scenario in which the leveraging of the peer-to-peer network infrastructure can result in a more efficient distribution of content is illustrated in FIG. 10. In a large network such as an enterprise installation, the speed of dissemination of content can be improved when only one or two computing devices 100 download desired content and then, in turn, deliver the content to other computing devices 100. In addition, the computing devices 100 which receive the content from those computing devices 100 that downloaded the content from the content server 206 can advertise the presence of the content such that the load on individual computing devices gets spread out over time. This scenario lends itself well to large enterprise installations where it is not unusual for there to be a need for all computing devices in remote branch offices to download software from a remote server located across a slow wide area network (WAN) link. In much the same respect as the peer-to-peer content distribution solution for a residential network in FIG. 8, the speed of the local network connections will typically be superior to that of the WAN connection and thus result in a more efficient distribution of content. Additionally, in much the same way that the peer-to-peer content distribution solution of FIG. 9 increases the speed at which content can be disseminated over a large area such as the Internet, the peer-to-peer content distribution scenario of FIG. 10 can be particularly useful in situations where the dissemination of the content is time-sensitive, such as a presentation file for an on-line company meeting or a streaming audio file for an on-line concert performance.
  • In view of the many possible embodiments to which the principles of this invention may be applied, it should be recognized that the embodiments described herein with respect to the drawing figures are meant to be illustrative only and should not be taken as limiting the scope of invention. For example, for performance reasons the method of the present invention may be implemented in hardware, rather than in software. Therefore, the invention as described herein contemplates all such embodiments as may come within the scope of the following claims and equivalents thereof.

Claims (20)

    What is claimed is:
  1. 1. A method for distributing, from a first computing device to a second computing device over a network, a software product update from a content server, the method comprising:
    obtaining the software product update, by the first computing device, from the content server via a connection, the first computing device being a client of the content server and a peer in the network;
    communicating, by the first computing device, to one or more peers in the network that the software product update is available to be obtained from the first computing device;
    locating, by the second computing device, a closest peer closest to the second computing device, that comprises the software product update, where more than one peer has obtained the software product update;
    determining, by the second computing device, that the first computing device is the closest peer to the second computing device that comprises the software product update; and
    obtaining the software product update, by the second computing device, from the first computing device via the network, the first computing device connected to the second computing device via a second network, the content server external to the second network.
  2. 2. The method of claim 1, the first computing device and the second computing device connected via a local area connection.
  3. 3. The method of claim 1, the first computing device and the second computing device connected via a wide area connection.
  4. 4. The method of claim 1, the network associated with a spanning tree architecture.
  5. 5. The method of claim 1, the second network comprising a broadband connection.
  6. 6. The method of claim 1, the software product update comprising a patch for a product.
  7. 7. The method of claim 1, the network and the second network comprising a same network.
  8. 8. The method of claim 1, the obtaining the software product update from the content server comprising downloading the software product update from the content server at least partially via a wide area network.
  9. 9. The method of claim 1, the software product update signed by a source of a product that the software product update is configured to update.
  10. 10. A system for distributing, from a first computing device to a second computing device over a network, a software product update from a content server, the system comprising:
    one or more processing units; and
    memory comprising instructions that when executed by at least one of the one or more processing units, perform a method comprising:
    obtaining the software product update, by the first computing device, from the content server via a connection, the first computing device being a client of the content server and a peer in the network;
    communicating, by the first computing device, to one or more peers in the network that the software product update is available to be obtained from the first computing device; and
    providing the software product update, by the first computing device, to the second computing device via the network, based at least in part upon a determination of a closest peer closest to the second computing device that comprises the software product update, where more than one peer has obtained the software product update, where the first computing device is determined to be the closest peer to the second computing device that comprises the software product update, where the first computing device is connected to the second computing device via a second network, and where the content server is external to the second network.
  11. 11. The system of claim 10, the network and the second network comprising a same network.
  12. 12. The system of claim 10, the first computing device comprising a first instance of a replicated store.
  13. 13. The system of claim 12, the replicated store comprising metadata.
  14. 14. The system of claim 13, the metadata associated with the software product update.
  15. 15. A computer-readable storage device comprising instructions that when executed perform a method for receiving, by a second computing device from a first computing device over a peer-to-peer network, a software product update from a content server, the method comprising:
    locating, by the second computing device, a closest peer closest to the second computing device, that comprises the software product update, where more than one peer has obtained the software product update;
    determining, by the second computing device, that the first computing device is the closest peer to the second computing device that comprises the software product update; and
    obtaining the software product update, by the second computing device, from the first computing device via the peer-to-peer network, where the software product update is obtained by the first computing device from the content server via a connection, the first computing device being a client of the content server and a peer in the peer-to-peer network, where one or more peers in the peer-to-peer network are communicated to by the first computing device that the software product update is available to be obtained from the first computing device, where the first computing device is connected to the second computing device via a second network, and where the content server is external to the second network.
  16. 16. The computer-readable storage device of claim 15, the first computing device and the second computing device connected via a local area connection.
  17. 17. The computer-readable storage device of claim 15, the first computing device and the second computing device connected via a wide area connection.
  18. 18. The computer-readable storage device of claim 15, the network associated with a spanning tree architecture.
  19. 19. The computer-readable storage device of claim 15, the network and the second network comprising a same network.
  20. 20. The computer-readable storage device of claim 15, the software product update comprising an upgrade for an application.
US14231693 2004-03-26 2014-03-31 Method for efficient content distribution using a peer-to-peer networking infrastructure Abandoned US20140298314A1 (en)

Priority Applications (2)

Application Number Priority Date Filing Date Title
US10810917 US8688803B2 (en) 2004-03-26 2004-03-26 Method for efficient content distribution using a peer-to-peer networking infrastructure
US14231693 US20140298314A1 (en) 2004-03-26 2014-03-31 Method for efficient content distribution using a peer-to-peer networking infrastructure

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
US14231693 US20140298314A1 (en) 2004-03-26 2014-03-31 Method for efficient content distribution using a peer-to-peer networking infrastructure

Related Parent Applications (1)

Application Number Title Priority Date Filing Date
US10810917 Continuation US8688803B2 (en) 2004-03-26 2004-03-26 Method for efficient content distribution using a peer-to-peer networking infrastructure

Publications (1)

Publication Number Publication Date
US20140298314A1 true true US20140298314A1 (en) 2014-10-02

Family

ID=34991441

Family Applications (2)

Application Number Title Priority Date Filing Date
US10810917 Active 2030-03-20 US8688803B2 (en) 2004-03-26 2004-03-26 Method for efficient content distribution using a peer-to-peer networking infrastructure
US14231693 Abandoned US20140298314A1 (en) 2004-03-26 2014-03-31 Method for efficient content distribution using a peer-to-peer networking infrastructure

Family Applications Before (1)

Application Number Title Priority Date Filing Date
US10810917 Active 2030-03-20 US8688803B2 (en) 2004-03-26 2004-03-26 Method for efficient content distribution using a peer-to-peer networking infrastructure

Country Status (1)

Country Link
US (2) US8688803B2 (en)

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20140137096A1 (en) * 2012-11-15 2014-05-15 Nintendo Co., Ltd. Information processing system, information processing apparatus, non-transitory computer-readable storage medium having stored therein information processing program, and information processing method
US20150178064A1 (en) * 2013-12-23 2015-06-25 Google Inc. Providing a software update to computing devices on the same network

Families Citing this family (42)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20060179129A1 (en) * 2005-02-10 2006-08-10 Clayton Richard M Hotcontent update for a target device
US20060184968A1 (en) * 2005-02-11 2006-08-17 Clayton Richard M Automatic content update for a target device
US7770168B1 (en) * 2005-05-25 2010-08-03 Landesk Software Limited Systems and methods for distributing software using nodes within a network group
US8024477B2 (en) * 2005-06-30 2011-09-20 Intel Corporation System and method to establish a peer-to-peer IT backbone
US20070143446A1 (en) * 2005-12-21 2007-06-21 Morris Robert P Methods, systems, and computer program products for installing an application from one peer to another including application configuration settings and data
US7877353B2 (en) * 2006-03-13 2011-01-25 Ebay Inc. Peer-to-peer trading platform with relative reputation-based item search and buddy rating
US8949338B2 (en) 2006-03-13 2015-02-03 Ebay Inc. Peer-to-peer trading platform
US7958019B2 (en) * 2006-03-13 2011-06-07 Ebay Inc. Peer-to-peer trading platform with roles-based transactions
US8335822B2 (en) * 2006-03-13 2012-12-18 Ebay Inc. Peer-to-peer trading platform with search caching
US7970835B2 (en) * 2006-04-04 2011-06-28 Xerox Corporation Peer-to-peer file sharing system and method using downloadable data segments
US20070258396A1 (en) * 2006-05-02 2007-11-08 Comverse, Inc. Mobile telephone-based peer-to-peer sharing
US20080005226A1 (en) * 2006-07-03 2008-01-03 Srinivasan Subbian A method and system for one-to-one communication through proxy
CN101068155B (en) * 2006-09-20 2010-06-09 腾讯科技(深圳)有限公司 Coordinate connection stream media direct broadcasting system and collection server thereof
EP2080110A4 (en) * 2006-10-05 2014-01-15 Nat Ict Australia Ltd Decentralised multi-user online environment
US20080098123A1 (en) * 2006-10-24 2008-04-24 Microsoft Corporation Hybrid Peer-to-Peer Streaming with Server Assistance
US8756683B2 (en) * 2006-12-13 2014-06-17 Microsoft Corporation Distributed malicious software protection in file sharing environments
US7630370B2 (en) * 2007-02-28 2009-12-08 Sharp Laboratories Of America, Inc. Overlay join latency reduction using preferred peer list
US8996723B2 (en) * 2007-06-04 2015-03-31 Microsoft Technology Licensing, Llc ISP-aware peer-to-peer content exchange
US8560732B2 (en) * 2008-02-19 2013-10-15 Red Hat, Inc. Peer-to-peer object distribution
US8245296B2 (en) * 2008-05-23 2012-08-14 Verizon Patent And Licensing Inc. Malware detection device
US9037657B2 (en) 2008-05-23 2015-05-19 The Trustees Of Columbia University In The City Of New York Systems and methods for peer-to-peer bandwidth allocation
US7996546B2 (en) * 2008-10-02 2011-08-09 Ray-V Technologies, Ltd. Dynamic allocation of a quota of consumer nodes connecting to a resource node of a peer-to-peer network
US8650301B2 (en) 2008-10-02 2014-02-11 Ray-V Technologies, Ltd. Adaptive data rate streaming in a peer-to-peer network delivering video content
DE102009012992B4 (en) * 2009-03-13 2011-03-03 Technische Universität München A method and system for providing media content for a plurality of nodes in a data network
US8375129B2 (en) * 2009-05-27 2013-02-12 Ray-V Technologies, Ltd. Method for dynamically adjusting resource nodes in a peer-to-peer network for delivering time-sensitive content
US8326992B2 (en) * 2009-05-27 2012-12-04 Ray-V Technologies, Ltd. Controlling the provision of resources for streaming of video swarms in a peer-to-peer network
EP2385680B1 (en) * 2010-05-06 2012-10-03 Voddler Sweden AB Content delivery over a peer-to-peer network
US8667172B2 (en) 2011-06-07 2014-03-04 Futurewei Technologies, Inc. Method and apparatus for content identifier based radius constrained cache flooding to enable efficient content routing
KR20130008325A (en) 2011-07-12 2013-01-22 삼성전자주식회사 A communication method of content owner, middle node and content requester in a contents centric network
US9369959B2 (en) 2011-10-31 2016-06-14 Nokia Technologies Oy Wirelessly transferring data to a packaged electronic device
US9307347B2 (en) * 2012-06-01 2016-04-05 Nokia Technologies Oy Wireless programming
US9772832B2 (en) * 2012-01-20 2017-09-26 S-Printing Solution Co., Ltd. Computing system with support for ecosystem mechanism and method of operation thereof
US20130326494A1 (en) * 2012-06-01 2013-12-05 Yonesy F. NUNEZ System and method for distributed patch management
US8819663B2 (en) * 2012-06-18 2014-08-26 Lsi Corporation Acceleration of software modifications in networked devices
US9973418B2 (en) * 2013-11-12 2018-05-15 Software Ag Techniques for change propagation across broker territories
US9742853B2 (en) 2014-05-19 2017-08-22 The Michael Harrison Tretter Auerbach Trust Dynamic computer systems and uses thereof
US9509664B2 (en) 2014-06-16 2016-11-29 Verizon Deutschland Gmbh Data exchange in the internet of things
US9454358B1 (en) * 2015-03-06 2016-09-27 Omnitracs, Llc Distributed over the air programming
US9965262B2 (en) * 2015-05-21 2018-05-08 International Business Machines Corporation Application bundle pulling
US9888057B2 (en) 2015-05-21 2018-02-06 International Business Machines Corporation Application bundle management across mixed file system types
US20160352825A1 (en) * 2015-05-29 2016-12-01 Microsoft Technology Licensing, Llc Dynamic Swarm Segmentation
US9703546B1 (en) * 2015-12-21 2017-07-11 Schneider Electric Software, Llc Monitoring application states for deployment during runtime operations

Citations (23)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6052531A (en) * 1998-03-25 2000-04-18 Symantec Corporation Multi-tiered incremental software updating
US20020091807A1 (en) * 2001-01-05 2002-07-11 International Business Machines Corporation Automatic firmware update of processor nodes
US20020138744A1 (en) * 2001-03-21 2002-09-26 Schleicher Jorg Gregor Method and system for providing a secure peer-to peer file delivery network
US20020152290A1 (en) * 2001-04-16 2002-10-17 Ritche Scott D. Software delivery method with enhanced batch redistribution for use in a distributed computer network
US20030074403A1 (en) * 2001-07-06 2003-04-17 Harrow Ivan P. Methods and apparatus for peer-to-peer services
US20030130862A1 (en) * 2002-01-09 2003-07-10 Stern Edith H. Method and apparatus for establishing a distribution network
US20030204602A1 (en) * 2002-04-26 2003-10-30 Hudson Michael D. Mediated multi-source peer content delivery network architecture
US20030233455A1 (en) * 2002-06-14 2003-12-18 Mike Leber Distributed file sharing system
US20040022221A1 (en) * 2002-05-13 2004-02-05 Chwieseni Edward T. System and method for self propagating information in ad-hoc peer-to peer networks
US20040088348A1 (en) * 2002-10-31 2004-05-06 Yeager William J. Managing distribution of content using mobile agents in peer-topeer networks
US20040123281A1 (en) * 2002-12-20 2004-06-24 Olrik Jakob Christian System, device, method and content package for upgrading a mobile communications terminal
US20050108203A1 (en) * 2003-11-13 2005-05-19 Chunqiang Tang Sample-directed searching in a peer-to-peer system
US20050149481A1 (en) * 1999-12-02 2005-07-07 Lambertus Hesselink Managed peer-to-peer applications, systems and methods for distributed data access and storage
US20050152318A1 (en) * 2004-01-13 2005-07-14 General Motors Corporation. Efficient lightweight information dissemination algorithm for mobile wireless Ad Hoc networks
US20050227683A1 (en) * 2004-03-22 2005-10-13 Motorola, Inc. Apparatus and method for over the air software repair
US20060080284A1 (en) * 2003-11-07 2006-04-13 Masonis John T Viral engine for network deployment
US7480907B1 (en) * 2003-01-09 2009-01-20 Hewlett-Packard Development Company, L.P. Mobile services network for update of firmware/software in mobile handsets
US7533168B1 (en) * 2003-09-11 2009-05-12 Sun Microsystems, Inc. Autonomic grid computing mechanism
US7571227B1 (en) * 2003-09-11 2009-08-04 Sun Microsystems, Inc. Self-updating grid mechanism
US7783777B1 (en) * 2003-09-09 2010-08-24 Oracle America, Inc. Peer-to-peer content sharing/distribution networks
US8041798B1 (en) * 2003-09-11 2011-10-18 Oracle America, Inc. Self-healing grid mechanism
US8060619B1 (en) * 2003-11-07 2011-11-15 Symantec Operating Corporation Direct connections to a plurality of storage object replicas in a computer network
US8201162B2 (en) * 2001-03-19 2012-06-12 Sony Corporation Software updating system, software updating method, and software updating program

Family Cites Families (208)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5386542A (en) * 1991-10-31 1995-01-31 International Business Machines Corporation System for generating a time reference value in the MAC layer of an ISO/OSI communications model among a plurality of nodes
DE59307910D1 (en) * 1992-03-05 1998-02-12 Ciba Geigy Ag Reactive dyes, processes for their preparation and their use
US5369705A (en) * 1992-06-03 1994-11-29 International Business Machines Corporation Multi-party secure session/conference
GB9302903D0 (en) * 1993-02-13 1993-03-31 Univ Strathclyde Detection system
WO1995008809A3 (en) * 1993-09-24 1995-04-13 Oracle Corp Method and apparatus for data replication
US5689641A (en) * 1993-10-01 1997-11-18 Vicor, Inc. Multimedia collaboration system arrangement for routing compressed AV signal through a participant site without decompressing the AV signal
US5371794A (en) * 1993-11-02 1994-12-06 Sun Microsystems, Inc. Method and apparatus for privacy and authentication in wireless networks
US5771354A (en) * 1993-11-04 1998-06-23 Crawford; Christopher M. Internet online backup system provides remote storage for customers using IDs and passwords which were interactively established when signing up for backup services
US5694546A (en) * 1994-05-31 1997-12-02 Reisman; Richard R. System for automatic unattended electronic information transport between a server and a client by a vendor provided transport software with a manifest list
US5586264A (en) * 1994-09-08 1996-12-17 Ibm Corporation Video optimized media streamer with cache management
US5944794A (en) * 1994-09-30 1999-08-31 Kabushiki Kaisha Toshiba User identification data management scheme for networking computer systems using wide area network
US6658568B1 (en) 1995-02-13 2003-12-02 Intertrust Technologies Corporation Trusted infrastructure support system, methods and techniques for secure electronic commerce transaction and rights management
US5854898A (en) * 1995-02-24 1998-12-29 Apple Computer, Inc. System for automatically adding additional data stream to existing media connection between two end points upon exchange of notifying and confirmation messages therebetween
US5754785A (en) * 1995-04-27 1998-05-19 General Datacomm Communications network equipment
US5907685A (en) * 1995-08-04 1999-05-25 Microsoft Corporation System and method for synchronizing clocks in distributed computer nodes
US5712914A (en) * 1995-09-29 1998-01-27 Intel Corporation Digital certificates containing multimedia data extensions
US6097811A (en) * 1995-11-02 2000-08-01 Micali; Silvio Tree-based certificate revocation system
US5790785A (en) 1995-12-11 1998-08-04 Customer Communications Group, Inc. World Wide Web registration information processing system
US6148323A (en) 1995-12-29 2000-11-14 Hewlett-Packard Company System and method for managing the execution of system management
DE69714422T2 (en) 1996-02-09 2002-11-14 Digital Privacy Inc Access control / encryption system
US6016505A (en) * 1996-04-30 2000-01-18 International Business Machines Corporation Program product to effect barrier synchronization in a distributed computing environment
US6085320A (en) * 1996-05-15 2000-07-04 Rsa Security Inc. Client/server protocol for proving authenticity
US5917480A (en) * 1996-06-04 1999-06-29 Microsoft Corporation Method and system for interacting with the content of a slide presentation
US5748736A (en) * 1996-06-14 1998-05-05 Mittra; Suvo System and method for secure group communications via multicast or broadcast
US5901227A (en) * 1996-06-20 1999-05-04 Novell, Inc. Method and apparatus for implementing partial and complete optional key escrow
US5832514A (en) * 1996-06-26 1998-11-03 Microsoft Corporation System and method for discovery based data recovery in a store and forward replication process
US6047280A (en) * 1996-10-25 2000-04-04 Navigation Technologies Corporation Interface layer for navigation system
JP3497338B2 (en) 1997-01-08 2004-02-16 株式会社日立製作所 Distributed log list management capabilities with network system
US5922074A (en) * 1997-02-28 1999-07-13 Xcert Software, Inc. Method of and apparatus for providing secure distributed directory services and public key infrastructure
US5982898A (en) * 1997-03-07 1999-11-09 At&T Corp. Certification process
JP3457493B2 (en) * 1997-03-18 2003-10-20 富士通株式会社 Arp server
US5933849A (en) * 1997-04-10 1999-08-03 At&T Corp Scalable distributed caching system and method
US6134658A (en) * 1997-06-09 2000-10-17 Microsoft Corporation Multi-server location-independent authentication certificate management system
US5987376A (en) 1997-07-16 1999-11-16 Microsoft Corporation System and method for the distribution and synchronization of data and state information between clients in a distributed processing system
US6092201A (en) * 1997-10-24 2000-07-18 Entrust Technologies Method and apparatus for extending secure communication operations via a shared list
US6141760A (en) * 1997-10-31 2000-10-31 Compaq Computer Corporation System and method for generating unique passwords
US6061692A (en) * 1997-11-04 2000-05-09 Microsoft Corporation System and method for administering a meta database as an integral component of an information server
US6128740A (en) * 1997-12-08 2000-10-03 Entrust Technologies Limited Computer security system and method with on demand publishing of certificate revocation lists
US6163809A (en) * 1997-12-08 2000-12-19 Microsoft Corporation System and method for preserving delivery status notification when moving from a native network to a foreign network
US6078948A (en) * 1998-02-03 2000-06-20 Syracuse University Platform-independent collaboration backbone and framework for forming virtual communities having virtual rooms with collaborative sessions
US6088805A (en) * 1998-02-13 2000-07-11 International Business Machines Corporation Systems, methods and computer program products for authenticating client requests with client certificate information
US6216110B1 (en) * 1998-02-27 2001-04-10 Microsoft Corporation System and method for publishing calendar information to a publicly accessible location
US6108687A (en) * 1998-03-02 2000-08-22 Hewlett Packard Company System and method for providing a synchronized display to a plurality of computers over a global computer network
US6205481B1 (en) * 1998-03-17 2001-03-20 Infolibria, Inc. Protocol for distributing fresh content among networked cache servers
US6012096A (en) * 1998-04-23 2000-01-04 Microsoft Corporation Method and system for peer-to-peer network latency measurement
US6167567A (en) * 1998-05-05 2000-12-26 3Com Corporation Technique for automatically updating software stored on a client computer in a networked client-server environment
US6143383A (en) * 1998-05-22 2000-11-07 Hollister Incorporated Multilayer chlorine-free film with barrier layer of a polyamide blend and ostomy pouches formed therefrom
US6532217B1 (en) 1998-06-29 2003-03-11 Ip Dynamics, Inc. System for automatically determining a network address
US6269099B1 (en) * 1998-07-01 2001-07-31 3Com Corporation Protocol and method for peer network device discovery
US6463078B1 (en) 1998-07-22 2002-10-08 Microsoft Corporation Method for switching protocols transparently in multi-user applications
US6155840A (en) * 1998-09-18 2000-12-05 At Home Corporation System and method for distributed learning
US6266420B1 (en) * 1998-10-08 2001-07-24 Entrust Technologies Limited Method and apparatus for secure group communications
JP2000151715A (en) 1998-11-05 2000-05-30 Toyo Commun Equip Co Ltd Network control method
JP2000148012A (en) 1998-11-12 2000-05-26 Fuji Xerox Co Ltd Device and method for authentication
US6363352B1 (en) 1998-11-13 2002-03-26 Microsoft Corporation Automatic scheduling and formation of a virtual meeting over a computer network
US6044350A (en) * 1998-12-24 2000-03-28 Pitney Bowes Inc. Certificate meter with selectable indemnification provisions
US6775782B1 (en) 1999-03-31 2004-08-10 International Business Machines Corporation System and method for suspending and resuming digital certificates in a certificate-based user authentication application system
WO2000070465A1 (en) * 1999-05-14 2000-11-23 Fujitsu Limited Distributed computer system and method of application of maintenance data
US6920455B1 (en) 1999-05-19 2005-07-19 Sun Microsystems, Inc. Mechanism and method for managing service-specified data in a profile service
EP1183816A4 (en) 1999-05-26 2005-09-14 Ascom Hasler Mailing Sys Inc Technique for split knowledge backup and recovery of a cryptographic key
US6636888B1 (en) 1999-06-15 2003-10-21 Microsoft Corporation Scheduling presentation broadcasts in an integrated network environment
US6529950B1 (en) 1999-06-17 2003-03-04 International Business Machines Corporation Policy-based multivariate application-level QoS negotiation for multimedia services
US6990514B1 (en) 1999-09-03 2006-01-24 Cisco Technology, Inc. Unified messaging system using web based application server for management of messages using standardized servers
DE19943453A1 (en) 1999-09-11 2001-03-15 Daimler Chrysler Ag System and method to support the group interaction (GIA) in hypermedia information spaces
US6654796B1 (en) 1999-10-07 2003-11-25 Cisco Technology, Inc. System for managing cluster of network switches using IP address for commander switch and redirecting a managing request via forwarding an HTTP connection to an expansion switch
US6675205B2 (en) 1999-10-14 2004-01-06 Arcessa, Inc. Peer-to-peer automated anonymous asynchronous file sharing
US6683865B1 (en) 1999-10-15 2004-01-27 Nokia Wireless Routers, Inc. System for routing and switching in computer networks
US7073132B1 (en) 1999-11-03 2006-07-04 Sublinks Aps Method, system, and computer readable medium for managing resource links
US6526411B1 (en) 1999-11-15 2003-02-25 Sean Ward System and method for creating dynamic playlists
US6976258B1 (en) 1999-11-30 2005-12-13 Ensim Corporation Providing quality of service guarantees to virtual hosts
EP1107512A1 (en) * 1999-12-03 2001-06-13 Sony International (Europe) GmbH Communication device and software for operating multimedia applications
US6581110B1 (en) 1999-12-07 2003-06-17 International Business Machines Corporation Method and system for reading and propagating authenticated time throughout a worldwide enterprise system
US6754829B1 (en) 1999-12-14 2004-06-22 Intel Corporation Certificate-based authentication system for heterogeneous environments
US6636889B1 (en) 2000-01-04 2003-10-21 International Business Machines Corporation System and method for client replication of collaboration space
US20010035976A1 (en) * 2000-02-15 2001-11-01 Andrew Poon Method and system for online presentations of writings and line drawings
US6745178B1 (en) 2000-04-28 2004-06-01 International Business Machines Corporation Internet based method for facilitating networking among persons with similar interests and for facilitating collaborative searching for information
US7159223B1 (en) 2000-05-12 2007-01-02 Zw Company, Llc Methods and systems for applications to interact with hardware
JP2001326632A (en) 2000-05-17 2001-11-22 Fujitsu Ltd Distribution group management system and method
GB0111141D0 (en) * 2000-05-17 2001-06-27 Ibm Teleconferencing system and method
US6665867B1 (en) * 2000-07-06 2003-12-16 International Business Machines Corporation Self-propagating software objects and applications
US20020027567A1 (en) * 2000-07-18 2002-03-07 Niamir Bern B. Listing network for classified information
US6968179B1 (en) 2000-07-27 2005-11-22 Microsoft Corporation Place specific buddy list services
US6714966B1 (en) 2000-07-31 2004-03-30 The Boeing Company Information delivery service
US6701344B1 (en) 2000-07-31 2004-03-02 The Boeing Company Distributed game environment
US6653933B2 (en) 2000-08-18 2003-11-25 Emware, Inc. Autonomous local area distributed network
US20020174422A1 (en) * 2000-09-28 2002-11-21 The Regents Of The University Of California Software distribution system
US7194649B2 (en) 2000-10-30 2007-03-20 International Business Machines Corporation Clock synchronization for network measurements with clock resets
GB0027845D0 (en) 2000-11-15 2000-12-27 Vhsoft I P Company Ltd Selective distribution of electronic files via a common access platform
GB0028474D0 (en) * 2000-11-22 2001-01-10 Raekanet Ltd Improved computer network architecture and associated method and system
US6490253B1 (en) 2000-11-22 2002-12-03 Seagate Technology Llc Peer to peer interconnect diagnostics
US7072982B2 (en) * 2000-11-22 2006-07-04 Microsoft Corporation Universal naming scheme for peer to peer resources
US7594030B2 (en) * 2000-11-22 2009-09-22 Microsoft Corporation Locator and tracking service for peer to peer resources
US6636854B2 (en) 2000-12-07 2003-10-21 International Business Machines Corporation Method and system for augmenting web-indexed search engine results with peer-to-peer search results
US20020073204A1 (en) 2000-12-07 2002-06-13 Rabindranath Dutta Method and system for exchange of node characteristics for DATA sharing in peer-to-peer DATA networks
US20020078243A1 (en) 2000-12-15 2002-06-20 International Business Machines Corporation Method and apparatus for time synchronization in a network data processing system
US6675261B2 (en) 2000-12-22 2004-01-06 Oblix, Inc. Request based caching of data store data
US7925703B2 (en) 2000-12-26 2011-04-12 Numedeon, Inc. Graphical interactive interface for immersive online communities
US7020686B2 (en) 2000-12-29 2006-03-28 International Business Machines Corporation Method and system for providing synchronous communication and person awareness in a place
US6791582B2 (en) 2000-12-29 2004-09-14 International Business Machines Corporation Method and system for identifying and displaying information that is new or has been updated in a place
US7127676B2 (en) 2000-12-29 2006-10-24 International Business Machines Corporation Method and system for providing a separate browser window with information from the main window in a simpler format
US7275102B2 (en) 2001-01-22 2007-09-25 Sun Microsystems, Inc. Trust mechanisms for a peer-to-peer network computing platform
WO2002057917A3 (en) 2001-01-22 2003-04-24 Sun Microsystems Inc Peer-to-peer network computing platform
US7191438B2 (en) * 2001-02-23 2007-03-13 Lenovo (Singapore) Pte, Ltd. Computer functional architecture and a locked down environment in a client-server architecture
US20040268344A1 (en) * 2001-03-08 2004-12-30 Sridhar Obilisetty Centrally managed and distributed applications
WO2002073926A1 (en) 2001-03-09 2002-09-19 Ascio Technologies, Inc. System and a method for managing digital identities
JP2002281086A (en) 2001-03-19 2002-09-27 Kddi Corp Traffic monitoring method and its system
US7478243B2 (en) 2001-03-21 2009-01-13 Microsoft Corporation On-disk file format for serverless distributed file system with signed manifest of file modifications
US6981043B2 (en) 2001-03-27 2005-12-27 International Business Machines Corporation Apparatus and method for managing multiple user identities on a networked computer system
US7065587B2 (en) 2001-04-02 2006-06-20 Microsoft Corporation Peer-to-peer name resolution protocol (PNRP) and multilevel cache for use therewith
US7085925B2 (en) 2001-04-03 2006-08-01 Sun Microsystems, Inc. Trust ratings in group credentials
US7272636B2 (en) 2001-04-24 2007-09-18 Sun Microsystems, Inc. Peer group name server
US7171415B2 (en) 2001-05-04 2007-01-30 Sun Microsystems, Inc. Distributed information discovery through searching selected registered information providers
US6839769B2 (en) * 2001-05-31 2005-01-04 Intel Corporation Limiting request propagation in a distributed file system
US20020191018A1 (en) 2001-05-31 2002-12-19 International Business Machines Corporation System and method for implementing a graphical user interface across dissimilar platforms yet retaining similar look and feel
GB2378268B (en) 2001-06-04 2005-08-03 Gordon Ross A method of providing an interactive multi dimensional visual user interface to groups of users
US6801604B2 (en) 2001-06-25 2004-10-05 International Business Machines Corporation Universal IP-based and scalable architectures across conversational applications using web services for speech and audio processing resources
US20030009752A1 (en) * 2001-07-03 2003-01-09 Arvind Gupta Automated content and software distribution system
US7421411B2 (en) * 2001-07-06 2008-09-02 Nokia Corporation Digital rights management in a mobile communications environment
US20030009586A1 (en) * 2001-07-06 2003-01-09 Intel Corporation Method and apparatus for peer-to-peer services
US7346658B2 (en) 2001-08-08 2008-03-18 At&T Delaware Intellectual Property, Inc. System and method for notifying an offline global computer network user of an online interaction
US20030036941A1 (en) 2001-08-17 2003-02-20 International Business Machines Corporation System and method for scheduling multiple meetings on an electronic calendar
US7299351B2 (en) 2001-09-19 2007-11-20 Microsoft Corporation Peer-to-peer name resolution protocol (PNRP) security infrastructure and method
US7493363B2 (en) 2001-09-19 2009-02-17 Microsoft Corporation Peer-to-peer group management and method for maintaining peer-to-peer graphs
US7068789B2 (en) 2001-09-19 2006-06-27 Microsoft Corporation Peer-to-peer name resolution protocol (PNRP) group security infrastructure and method
US6674459B2 (en) * 2001-10-24 2004-01-06 Microsoft Corporation Network conference recording system and method including post-conference processing
GB0125895D0 (en) * 2001-10-27 2001-12-19 Hewlett Packard Co Spanning tree in peer to peer networks
US7181620B1 (en) 2001-11-09 2007-02-20 Cisco Technology, Inc. Method and apparatus providing secure initialization of network devices using a cryptographic key distribution approach
JP3967589B2 (en) 2001-12-28 2007-08-29 富士通株式会社 Advertising distribution method and advertisement distribution device
US20030126027A1 (en) 2001-12-31 2003-07-03 Kimberly-Clark Worldwide Integrated web ring site and method for presenting information
US20030140119A1 (en) 2002-01-18 2003-07-24 International Business Machines Corporation Dynamic service discovery
US7194002B2 (en) 2002-02-01 2007-03-20 Microsoft Corporation Peer-to-peer based network performance measurement and analysis system and method for large scale networks
US20040128350A1 (en) 2002-03-25 2004-07-01 Lou Topfl Methods and systems for real-time virtual conferencing
US7130999B2 (en) 2002-03-27 2006-10-31 Intel Corporation Using authentication certificates for authorization
US6938042B2 (en) * 2002-04-03 2005-08-30 Laplink Software Inc. Peer-to-peer file sharing
US20030191753A1 (en) 2002-04-08 2003-10-09 Michael Hoch Filtering contents using a learning mechanism
US6912622B2 (en) 2002-04-15 2005-06-28 Microsoft Corporation Multi-level cache architecture and cache management method for peer-to-peer name resolution protocol
US7213060B2 (en) 2002-04-23 2007-05-01 Canon Kabushiki Kaisha Web based creation of printer instances on a workstation
US20030217073A1 (en) 2002-05-14 2003-11-20 Walther Dan E. Increasing the level of automation when scheduling and managing meetings
US6983400B2 (en) 2002-05-16 2006-01-03 Sun Microsystems Inc. Distributed test harness model
US7146609B2 (en) * 2002-05-17 2006-12-05 Sun Microsystems, Inc. Method, system and article of manufacture for a firmware image
GB2391135B (en) 2002-06-28 2006-01-11 Nokia Corporation User group creation
KR100505221B1 (en) * 2002-07-03 2005-08-03 엘지전자 주식회사 Remote Control System of Home Appliance Network and Its Operating Method for the same
US20040111423A1 (en) 2002-07-13 2004-06-10 John Irving Method and system for secure, community profile generation and access via a communication system
US7484225B2 (en) * 2002-08-08 2009-01-27 Sun Microsystems, Inc. System and method for describing and identifying abstract software modules in peer-to-peer network environments
US20040039781A1 (en) * 2002-08-16 2004-02-26 Lavallee David Anthony Peer-to-peer content sharing method and system
US7216343B2 (en) * 2002-09-20 2007-05-08 International Business Machines Corporation Method and apparatus for automatic updating and testing of software
US7206934B2 (en) * 2002-09-26 2007-04-17 Sun Microsystems, Inc. Distributed indexing of identity information in a peer-to-peer network
CN1322722C (en) 2002-10-11 2007-06-20 诺基亚公司 Connecting method and net system between several net node
US20040078436A1 (en) 2002-10-18 2004-04-22 International Business Machines Corporation Adding meeting information to a meeting notice
US7249123B2 (en) 2002-10-31 2007-07-24 International Business Machines Corporation System and method for building social networks based on activity around shared virtual objects
US8037202B2 (en) 2002-10-31 2011-10-11 Oracle America, Inc. Presence detection using mobile agents in peer-to-peer networks
US20040143603A1 (en) 2002-11-21 2004-07-22 Roy Kaufmann Method and system for synchronous and asynchronous note timing in a system for enhancing collaboration using computers and networking
US20040107242A1 (en) * 2002-12-02 2004-06-03 Microsoft Corporation Peer-to-peer content broadcast transfer mechanism
US7062681B2 (en) 2002-12-03 2006-06-13 Microsoft Corporation Method and system for generically reporting events occurring within a computer system
US7430747B2 (en) 2002-12-04 2008-09-30 Microsoft Corporation Peer-to peer graphing interfaces and methods
US7613812B2 (en) 2002-12-04 2009-11-03 Microsoft Corporation Peer-to-peer identity management interfaces and methods
US8095409B2 (en) 2002-12-06 2012-01-10 Insors Integrated Communications Methods and program products for organizing virtual meetings
US20040111525A1 (en) 2002-12-09 2004-06-10 International Business Machines Corporation Dynamic web service implementation discovery and selection apparatus and method
US7739240B2 (en) * 2002-12-09 2010-06-15 Hewlett-Packard Development Company, L.P. Replication and replica management in a wide area file system
US20040122901A1 (en) 2002-12-20 2004-06-24 Nortel Networks Limited Providing computer presence information to an integrated presence system
US7209948B2 (en) 2002-12-20 2007-04-24 International Business Machines, Corporation Collaborative review of distributed content
US20040120344A1 (en) 2002-12-20 2004-06-24 Sony Corporation And Sony Electronics, Inc. Device discovery application interface
US20040141005A1 (en) 2003-01-22 2004-07-22 International Business Machines Corporation System and method for integrating online meeting materials in a place
US7139760B2 (en) 2003-01-27 2006-11-21 Microsoft Corporation Peer-to-peer record structure and query language for searching and discovery thereof
US7596625B2 (en) 2003-01-27 2009-09-29 Microsoft Corporation Peer-to-peer grouping interfaces and methods
US7437440B2 (en) 2003-01-27 2008-10-14 Microsoft Corporation Peer-to-peer networking framework application programming interfaces
US8308567B2 (en) 2003-03-05 2012-11-13 Wms Gaming Inc. Discovery service in a service-oriented gaming network environment
US20040181487A1 (en) * 2003-03-10 2004-09-16 Microsoft Corporation Digital media clearing house platform
KR20040080663A (en) * 2003-03-12 2004-09-20 삼성전자주식회사 Private network system having a function of ubquitous service and a method processing thereof
US20040184445A1 (en) 2003-03-18 2004-09-23 Burne Jeffrey K. Computer algorithm and method for facilitating the networking of individuals
US7895338B2 (en) 2003-03-18 2011-02-22 Siemens Corporation Meta-search web service-based architecture for peer-to-peer collaboration and voice-over-IP
US20050005270A1 (en) * 2003-04-11 2005-01-06 Tim Bucher Service platform application distribution manager
US7966368B2 (en) 2003-05-02 2011-06-21 Microsoft Corporation Communicating messages over transient connections in a peer-to-peer network
US20030182414A1 (en) * 2003-05-13 2003-09-25 O'neill Patrick J. System and method for updating and distributing information
US20040237081A1 (en) * 2003-05-19 2004-11-25 Homiller Daniel P. Methods and apparatus for generating upgraded software from initial software and software upgrade packages
US7577750B2 (en) * 2003-05-23 2009-08-18 Microsoft Corporation Systems and methods for peer-to-peer collaboration to enhance multimedia streaming
US7539771B2 (en) 2003-06-06 2009-05-26 Microsoft Corporation Organizational locality in prefix-based structured peer-to-peer overlays
US7337213B2 (en) 2003-06-19 2008-02-26 International Business Machines Corporation Method and apparatus for managing messages in a messaging session
US20040261071A1 (en) * 2003-06-23 2004-12-23 Macronix International Co., Ltd. Peer version control system
US7450524B2 (en) 2003-06-30 2008-11-11 Kontiki, Inc. Method and apparatus for determining network topology in a peer-to-peer network
WO2005004368A3 (en) * 2003-07-07 2006-02-16 Lg Electronics Inc Upgrade apparatus and its method for home network system
US20050009537A1 (en) 2003-07-11 2005-01-13 Crocker Ronald T. Method and apparatus for facilitating wireless presence-based services
US20050027805A1 (en) 2003-07-15 2005-02-03 Aoki Norihiro Edwin Instant messaging and enhanced scheduling
US7512653B2 (en) 2003-08-11 2009-03-31 Sony Corporation System and method for dynamically grouping messaging buddies in an electronic network
US7313792B2 (en) * 2003-09-08 2007-12-25 Microsoft Corporation Method and system for servicing software
US20050198493A1 (en) * 2003-09-17 2005-09-08 Bartas John A. Distribution methods and apparatus for promoting distributed digital content on a local network
US7546343B2 (en) 2003-09-23 2009-06-09 Alcatel-Lucent Usa Inc. System and method for supporting virtual conferences
US20050080768A1 (en) 2003-10-10 2005-04-14 International Business Machines Corporation Methods and apparatus for dynamic service discovery from Web services representation chain
US7200638B2 (en) 2003-10-14 2007-04-03 International Business Machines Corporation System and method for automatic population of instant messenger lists
US8260857B2 (en) 2003-10-23 2012-09-04 Microsoft Corporation One to many data projection system and method
US7567987B2 (en) * 2003-10-24 2009-07-28 Microsoft Corporation File sharing in P2P group shared spaces
KR20060107529A (en) 2003-11-06 2006-10-13 코닌클리케 필립스 일렉트로닉스 엔.브이. Bandwidth-saving discovery on dual-stack upnp devices
US20050102245A1 (en) 2003-11-07 2005-05-12 International Business Machines Corporation System, method, and service for negotiating schedules while preserving privacy through a shared representation
US20050114487A1 (en) 2003-11-12 2005-05-26 Jin Peng Notification framework and method of distributing notification
US7720906B2 (en) 2003-11-24 2010-05-18 Microsoft Corporation Web service for remote application discovery
US7475125B2 (en) 2003-11-24 2009-01-06 Microsoft Corporation Seamless discovery of workstation-installed remote applications from an extranet
US7574706B2 (en) * 2003-12-15 2009-08-11 Microsoft Corporation System and method for managing and communicating software updates
US7568195B2 (en) * 2003-12-16 2009-07-28 Microsoft Corporation Determining a maximal set of dependent software updates valid for installation
US7478059B2 (en) * 2003-12-29 2009-01-13 Robert W. Crocitto System and method for content distribution and commerce on a peer-to-peer network
US20050198173A1 (en) 2004-01-02 2005-09-08 Evans Alexander W. System and method for controlling receipt of electronic messages
US7885901B2 (en) 2004-01-29 2011-02-08 Yahoo! Inc. Method and system for seeding online social network contacts
US7603716B2 (en) * 2004-02-13 2009-10-13 Microsoft Corporation Distributed network security service
US8225304B2 (en) * 2004-03-23 2012-07-17 Kabushiki Kaisha Toshiba System and method for remotely securing software updates of computer systems
EP1587239A1 (en) 2004-04-14 2005-10-19 Siemens Mobile Communications S.p.A. Method of and apparatus for server-side management of buddy lists
US20060041882A1 (en) * 2004-08-23 2006-02-23 Mehul Shah Replication of firmware
US8019725B1 (en) * 2004-12-15 2011-09-13 Apple Inc. Software update management
WO2010005869A3 (en) * 2008-07-10 2011-01-06 Heins, Douglas, B. Method and apparatus for utility computing in ad-hoc and configured peer-to peer networks
US8489715B2 (en) * 2011-06-29 2013-07-16 Cisco Technology, Inc. Identifying and downloading an application associated with a service registered in a home network

Patent Citations (23)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6052531A (en) * 1998-03-25 2000-04-18 Symantec Corporation Multi-tiered incremental software updating
US20050149481A1 (en) * 1999-12-02 2005-07-07 Lambertus Hesselink Managed peer-to-peer applications, systems and methods for distributed data access and storage
US20020091807A1 (en) * 2001-01-05 2002-07-11 International Business Machines Corporation Automatic firmware update of processor nodes
US8201162B2 (en) * 2001-03-19 2012-06-12 Sony Corporation Software updating system, software updating method, and software updating program
US20020138744A1 (en) * 2001-03-21 2002-09-26 Schleicher Jorg Gregor Method and system for providing a secure peer-to peer file delivery network
US20020152290A1 (en) * 2001-04-16 2002-10-17 Ritche Scott D. Software delivery method with enhanced batch redistribution for use in a distributed computer network
US20030074403A1 (en) * 2001-07-06 2003-04-17 Harrow Ivan P. Methods and apparatus for peer-to-peer services
US20030130862A1 (en) * 2002-01-09 2003-07-10 Stern Edith H. Method and apparatus for establishing a distribution network
US20030204602A1 (en) * 2002-04-26 2003-10-30 Hudson Michael D. Mediated multi-source peer content delivery network architecture
US20040022221A1 (en) * 2002-05-13 2004-02-05 Chwieseni Edward T. System and method for self propagating information in ad-hoc peer-to peer networks
US20030233455A1 (en) * 2002-06-14 2003-12-18 Mike Leber Distributed file sharing system
US20040088348A1 (en) * 2002-10-31 2004-05-06 Yeager William J. Managing distribution of content using mobile agents in peer-topeer networks
US20040123281A1 (en) * 2002-12-20 2004-06-24 Olrik Jakob Christian System, device, method and content package for upgrading a mobile communications terminal
US7480907B1 (en) * 2003-01-09 2009-01-20 Hewlett-Packard Development Company, L.P. Mobile services network for update of firmware/software in mobile handsets
US7783777B1 (en) * 2003-09-09 2010-08-24 Oracle America, Inc. Peer-to-peer content sharing/distribution networks
US7533168B1 (en) * 2003-09-11 2009-05-12 Sun Microsystems, Inc. Autonomic grid computing mechanism
US7571227B1 (en) * 2003-09-11 2009-08-04 Sun Microsystems, Inc. Self-updating grid mechanism
US8041798B1 (en) * 2003-09-11 2011-10-18 Oracle America, Inc. Self-healing grid mechanism
US20060080284A1 (en) * 2003-11-07 2006-04-13 Masonis John T Viral engine for network deployment
US8060619B1 (en) * 2003-11-07 2011-11-15 Symantec Operating Corporation Direct connections to a plurality of storage object replicas in a computer network
US20050108203A1 (en) * 2003-11-13 2005-05-19 Chunqiang Tang Sample-directed searching in a peer-to-peer system
US20050152318A1 (en) * 2004-01-13 2005-07-14 General Motors Corporation. Efficient lightweight information dissemination algorithm for mobile wireless Ad Hoc networks
US20050227683A1 (en) * 2004-03-22 2005-10-13 Motorola, Inc. Apparatus and method for over the air software repair

Cited By (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20140137096A1 (en) * 2012-11-15 2014-05-15 Nintendo Co., Ltd. Information processing system, information processing apparatus, non-transitory computer-readable storage medium having stored therein information processing program, and information processing method
US9928053B2 (en) * 2012-11-15 2018-03-27 Nintendo Co., Ltd. Joint acquisition of update software for multiple devices
US20150178064A1 (en) * 2013-12-23 2015-06-25 Google Inc. Providing a software update to computing devices on the same network
US9830141B2 (en) * 2013-12-23 2017-11-28 Google Llc Providing a software update to computing devices on the same network

Also Published As

Publication number Publication date Type
US20050216559A1 (en) 2005-09-29 application
US8688803B2 (en) 2014-04-01 grant

Similar Documents

Publication Publication Date Title
Pietzuch Hermes: A scalable event-based middleware
Meshkova et al. A survey on resource discovery mechanisms, peer-to-peer and service discovery frameworks
US7596625B2 (en) Peer-to-peer grouping interfaces and methods
Aberer et al. P-Grid: a self-organizing structured P2P system
Wang et al. Peer-to-peer overlay networks: A survey
US7805518B1 (en) Method and system for reputation management in peer-to-peer networks
US7853643B1 (en) Web services-based computing resource lifecycle management
US7613703B2 (en) Organizing resources into collections to facilitate more efficient and reliable resource access
US7275102B2 (en) Trust mechanisms for a peer-to-peer network computing platform
US7373394B1 (en) Method and apparatus for multicast cloud with integrated multicast and unicast channel routing in a content distribution network
Lua et al. A survey and comparison of peer-to-peer overlay network schemes
US7543020B2 (en) Distributed client services based on execution of service attributes and data attributes by multiple nodes in resource groups
Terpstra et al. A peer-to-peer approach to content-based publish/subscribe
US7571227B1 (en) Self-updating grid mechanism
US20030212710A1 (en) System for tracking activity and delivery of advertising over a file network
US20050086469A1 (en) Scalable, fault tolerant notification method
Menascé et al. Probabilistic scalable P2P resource location services
US7206841B2 (en) Rendezvous for locating peer-to-peer resources
Karp et al. Spurring adoption of DHTs with OpenHash, a public DHT service
Zhao et al. Tapestry: A resilient global-scale overlay for service deployment
US20040179481A1 (en) Overlay network for location-independent communication between computer systems
US20030097425A1 (en) Distributed device discovery framework for a network
Castro et al. One ring to rule them all: Service discovery and binding in structured peer-to-peer overlay networks
US20070050761A1 (en) Distributed caching of files in a network
US20040255027A1 (en) Virtual/real world dynamic intercommunication methods and systems

Legal Events

Date Code Title Description
AS Assignment

Owner name: MICROSOFT TECHNOLOGY LICENSING, LLC, WASHINGTON

Free format text: ASSIGNMENT OF ASSIGNORS INTEREST;ASSIGNOR:MICROSOFT CORPORATION;REEL/FRAME:034747/0417

Effective date: 20141014

Owner name: MICROSOFT TECHNOLOGY LICENSING, LLC, WASHINGTON

Free format text: ASSIGNMENT OF ASSIGNORS INTEREST;ASSIGNOR:MICROSOFT CORPORATION;REEL/FRAME:039025/0454

Effective date: 20141014

AS Assignment

Owner name: MICROSOFT CORPORATION, WASHINGTON

Free format text: ASSIGNMENT OF ASSIGNORS INTEREST;ASSIGNORS:MANION, TODD R;RAO, RAVI T.;SHAPPELL, MICHAEL;REEL/FRAME:036366/0241

Effective date: 20040324