+

WO2004063840A2 - Systeme de distribution de contenu - Google Patents

Systeme de distribution de contenu Download PDF

Info

Publication number
WO2004063840A2
WO2004063840A2 PCT/IL2004/000018 IL2004000018W WO2004063840A2 WO 2004063840 A2 WO2004063840 A2 WO 2004063840A2 IL 2004000018 W IL2004000018 W IL 2004000018W WO 2004063840 A2 WO2004063840 A2 WO 2004063840A2
Authority
WO
WIPO (PCT)
Prior art keywords
content
peer
manager
stations
network
Prior art date
Application number
PCT/IL2004/000018
Other languages
English (en)
Other versions
WO2004063840A3 (fr
Inventor
Tomer Amiaz
Eyal Lubetzky
Joseph Weihs
Haim Neerman
Original Assignee
Bandwiz, Inc.
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Bandwiz, Inc. filed Critical Bandwiz, Inc.
Publication of WO2004063840A2 publication Critical patent/WO2004063840A2/fr
Publication of WO2004063840A3 publication Critical patent/WO2004063840A3/fr

Links

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L67/00Network arrangements or protocols for supporting network services or applications
    • H04L67/01Protocols
    • H04L67/10Protocols in which an application is distributed across nodes in the network
    • H04L67/104Peer-to-peer [P2P] networks
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L45/00Routing or path finding of packets in data switching networks
    • H04L45/302Route determination based on requested QoS
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L45/00Routing or path finding of packets in data switching networks
    • H04L45/302Route determination based on requested QoS
    • H04L45/306Route determination based on the nature of the carried application
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L45/00Routing or path finding of packets in data switching networks
    • H04L45/302Route determination based on requested QoS
    • H04L45/306Route determination based on the nature of the carried application
    • H04L45/3065Route determination based on the nature of the carried application for real time traffic
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L67/00Network arrangements or protocols for supporting network services or applications
    • H04L67/01Protocols
    • H04L67/10Protocols in which an application is distributed across nodes in the network
    • H04L67/104Peer-to-peer [P2P] networks
    • H04L67/1087Peer-to-peer [P2P] networks using cross-functional networking aspects
    • H04L67/1093Some peer nodes performing special functions
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L67/00Network arrangements or protocols for supporting network services or applications
    • H04L67/50Network services
    • H04L67/60Scheduling or organising the servicing of application requests, e.g. requests for application data transmissions using the analysis and optimisation of the required network resources
    • H04L67/62Establishing a time schedule for servicing the requests
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L67/00Network arrangements or protocols for supporting network services or applications
    • H04L67/50Network services
    • H04L67/60Scheduling or organising the servicing of application requests, e.g. requests for application data transmissions using the analysis and optimisation of the required network resources
    • H04L67/63Routing a service request depending on the request content or context
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L67/00Network arrangements or protocols for supporting network services or applications
    • H04L67/01Protocols
    • H04L67/10Protocols in which an application is distributed across nodes in the network
    • H04L67/104Peer-to-peer [P2P] networks
    • H04L67/1061Peer-to-peer [P2P] networks using node-based peer discovery mechanisms
    • H04L67/1068Discovery involving direct consultation or announcement among potential requesting and potential source peers
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L67/00Network arrangements or protocols for supporting network services or applications
    • H04L67/01Protocols
    • H04L67/10Protocols in which an application is distributed across nodes in the network
    • H04L67/104Peer-to-peer [P2P] networks
    • H04L67/1074Peer-to-peer [P2P] networks for supporting data block transmission mechanisms
    • H04L67/1078Resource delivery mechanisms
    • H04L67/1085Resource delivery mechanisms involving dynamic management of active down- or uploading connections

Definitions

  • the present invention relates generally to content delivery in computer networks.
  • BACKGROUND In a typical wide area computer network for example, the Internet, content is generally delivered using simple routing decisions. For example the delivery method typically assumes: 1. A neutral network, i.e. non managed, where every station delivers by standard rules with no overriding manager.
  • Enterprise content delivery in a wide area network is characterized by many users requiring the same large volume content.
  • live streaming e.g.. the broadcast of a live event to all employees
  • video on demand e.g. an employee training film
  • large files e.g. updates of inventory and prices.
  • Delivery of large redundant content to multiple users consumes substantial amounts of expensive bandwidth and slows down performance of the network.
  • Multicast methods to reduce redundant content delivery have, apparently, not yet evolved to a usable standard supported by routers.
  • the standard solution comprises adding caches at key points in the network. This solution increases the cost of installation since it requires adding extra machines and/or replacing routers with more expensive routers. Such expensive routers may support, for example, a Web content caching protocol for performing unmanaged cache to cache communication. Further, due to the complexity of the topology of some networks, many stations do not benefit from such a solution.
  • the server In a client server network, the server is generally in charge of network tasks such as printing and shared disk storage.
  • Client workstations may comprise simple workstations with minimal ability that do not contribute to the functionality of the network. However, many client workstations comprise general purpose computers. Under some operating systems, these computers can support a peer to peer network in which every computer can act both as a server and a client. Generally, the peer to peer ability of the network is utilized to enable sharing printers or disk space but does not offer any assistance in distributing enterprise content.
  • a broad aspect of some embodiments of the invention relates to a method of distributing content to a station or group of stations in peer to peer networks, wherein one or more peer stations actively participate in the distribution, for example by storing and transmitting content for other peer stations and/or by controlling distribution by other stations.
  • the distribution is controlled according to various network characteristics, such as one or more of: 1.
  • the network topology e.g., taking into account the various paths in the network.
  • connection bandwidths e.g., taking into account the bandwidth of each path in the network
  • the content location for example some content may exist at multiple stations and can be transmitted from any of them or from a combination of stations. 4.
  • the availability of stations for example some stations are busy with other tasks and/or are unavailable to the network at certain hours.
  • stations for example some stations can provide content faster than others due to their processing speed and network interface ability.
  • a temporary distribution hierarchy at a given time is set according to one or more of the parameters mentioned above.
  • the network topology is very uneven, comprising connections of high bandwidth and low bandwidth.
  • multiple peer stations are connected together with a high bandwidth connection to form a branch and branches are connected to the rest of the network with a low bandwidth connection.
  • a peer station in a branch is appointed to be a site manager and control local distribution in the branch.
  • a peer station relates to the data and transfers it to other peer stations at the transport layer (layer 4) of the network.
  • some peer stations handle the data on a higher level, for example the application layer (layer 7).
  • a peer station receives data for its own use and also • provides the data to other peer stations.
  • An aspect of some embodiments of the invention relates to a managed peer to peer network comprising a manager, a distributor and peer stations in which at least one peer station actively participates in content distribution according to instructions given by the manager.
  • peer stations actively participate in content distribution by storing content and/or routing content to other devices or stations in the network.
  • a peer station participates using a software agent.
  • a peer station participates using a hardware agent (for example a special network card).
  • the manager gives instructions based on a static or on a dynamic global image of the entire network. Alternatively or additionally, the manager gives instructions based on a static or on a dynamic image of the local network of which the manager is a member.
  • the manager gives instructions based on the availability (for example working hours), of peer stations, target stations or network elements (for example routers and load balancers).
  • the manager gives instructions based on the capability (for example storage space, processing speed, transfer rate) or workload, of the peer station or the target stations. For example the manager may instruct transfer via slow connections to slow stations and via fast connections to fast stations.
  • peer stations receive a partial transmission of content from a distribution source and complete reception by receiving packets from other peer stations so that the station can reconstruct the original content.
  • content is transferred using a FEC encoding, in order to improve efficiency by reducing the need for receiver requests.
  • managing content delivery includes disregarding transmissions not related to content distribution, for example local transmission between peer stations.
  • content management takes into account all transmissions in the network in order to eliminate network congestion.
  • all content distribution is enhanced by the methods described in the application.
  • some specific cases and/or specific types of content are enhanced more than other types. For example transmissions to one or more peer station such as:
  • delayed real-time content for example a real-time broadcast which is viewed live (from the beginning or from different entry points) by clients joining at different times.
  • interactive content for example database queries (e.g. inventory, prices).
  • a method of distributing content in a peer to peer network comprising: supplying a content at a distributor station; transmitting the content from the distributor station to one or more target peer stations, each of which retransmits the data to one or more other target peer stations; and managing the transmission of the peer-stations, by one or more management stations.
  • the managing additionally comprises providing a topology of the network. Alternatively or additionally, the managing additionally comprises selecting transmission paths for delivery of content to target stations. In some embodiments of the invention, the manager directs distribution of content based on connection bandwidth in the network. Alternatively or additionally, the manager directs distribution of content based on content location in the network.
  • the manager directs distribution of content based on the availability of peer stations. Alternatively or additionally, the manager directs distribution of content based on the capability of peer stations.
  • the manager directs distribution of content based on a desirable delivery time of the content. Alternatively or additionally, the manager directs distribution of content based on a desirable reception time of the content.
  • the manager and the distributor are on the same computer. Alternatively or additionally, the manager and the distributor are on different computers.
  • the peer stations participate by rerouting content to other peer stations.
  • the peer stations participate by caching content to be distributed to other peer computers.
  • the peer computers comprise a software agent.
  • the peer computers comprise a hardware agent.
  • the manager comprises a software agent.
  • the manager appoints peer stations to manage other peer stations.
  • the different peer stations reconstruct identical content received in parts from different peer stations.
  • the distributor is a peer station.
  • the at least one peer station reconstructs content from pieces supplied by multiple stations. Alternatively or additionally, at least one peer station receives content but does not distribute content.
  • FIG. 1 is a schematic illustration of a network implementing enterprise content delivery, in accordance with an exemplary embodiment of the invention
  • Fig. 2 is a block diagram illustrating the topics dealt with by a peer agent, a distribution agent and manager agents according to an exemplary embodiment of the invention
  • Fig. 3 is a flow diagram of an exemplary process of content distribution according to an exemplary embodiment of the invention.
  • Fig. 4 is a flow diagram of an exemplary algorithm for routing and scheduling content ' distribution in a peer to peer network according to an exemplary embodiment of the invention.
  • Fig. 1 illustrates an enterprise content delivery system 100, in accordance with an exemplary embodiment of the invention.
  • System 100 comprises workstations 110 in an enterprise entity, which workstations 110 are connected together over a network 120.
  • workstations 110 optionally comprise a software and/or hardware agent 210 (shown in Fig. 2 and described in detail below).
  • Agent 210 enables peer station 110 to perform as peer stations in network 120, so they can actively participate in content distribution in network 120.
  • workstations 1 10 will be referred to as peer stations, which may be enabled or non enabled. .
  • the connection of enabled peer stations 110 over network 120 effectively fo ' rms a peer to peer network, in which peer stations 110 can send and receive content from one another.
  • clients need to send content through a server.
  • the activities of the peer stations are managed (e.g., by providing detailed or high level instructions, or suggestions).
  • Managing transmissions in the network optionally reduces waste and allows enhancing transmissions in various methods as described below.
  • network 120 comprises a heterogeneous network (for example a wide area network WAN), in which different peer stations 110 are connected by channels of different capability.
  • An example of such an application is an air transport company, which transports passengers and luggage to remote locations.
  • the company has representatives in many locations, which are in need of shared information.
  • the user stations in the company are optionally connected using various types of connections. For example some stations dial in to a network, some stations connect over a WAN, some route via the Internet and some stations are connected together with a LAN.
  • different users have different needs. For example, sales representatives need updated prices and flight plans, airplane technicians need systems that support VOD (video on demand) to receive instructions and training for performing maintenance on airplanes, customer service needs online answers to respond to clients and management might want to broadcast live events to multiple groups of employees.
  • VOD video on demand
  • all transmissions in the network are controlled by system 100.
  • only specific types of content, which especially benefit from managed distribution (as described below) are distributed as enterprise content. Possibly, there is no enforcing of such transmission rules.
  • all workstations are enabled to function as enabled peer stations 110 in network 120.
  • some workstations are not enabled to participate in content distribution and can perform as client workstation in network 120, but may be unable to receive enterprise content due to optional encoding, which requires an agent, as described below.
  • network 120 comprises a manager 140 and a distributor 150.
  • the manager is in charge of directing the content distribution to all the content recipients
  • the distributor is in charge of loading and/or storing an initial copy of the content and pushing it to peer stations according to the instructions of the manager.
  • management and/or distribution can be spread over several stations or can migrate from station to station, for example, for load balancing reasons. PEER STATIONS
  • an enterprise network is created by the connection of standard computer workstations, used by the members of an organization.
  • an agent is installed on the workstations in order to enable them to participate in the enterprise network.
  • An enabled peer station 110 optionally, participates in the effort of distributing content to other peer stations 110 of network 120, for example peer station 110 caches data for retransmission to other peer stations 110 of network 120.
  • the contribution of peer station 110 possibly reduces the load from distributor 150, by supplying the content in its place and/or possibly enhances the supply rate of the content to the targets, for example by the data being at nearby stations.
  • distribution to an exponential number of stations is optionally achieved by a linear effort, for example by having distributor 150 deliver the content to a few peer stations 110, with each peer station 110 further delivering to another few peer stations 110, arid so on.
  • particular data is cached to a greater extent and/or by more stations as demand for such data increases.
  • content can be delivered to a peer station 110 in parallel from multiple peer stations 110 for example, to reduce pressure from a single source.
  • content is cached by peer stations 110 of the network for a pre-designated time or until all peer stations 110 have received the content in order to allow diversity of the source for supplying content and reduce dependency on a specific line.
  • a peer station is low on resources (e.g. disk space)
  • cached content may be discarded by the peer station 110 in order to prevent problems at the peer station 110.
  • MANAGER MANAGER -
  • a computer connected to the network is designated to manage the distribution of content in the network.
  • manager 140 optionally comprises a computer with an agent software and/or agent hardware in order to handle management tasks as described below.
  • a peer station is chosen to serve as manager 140.
  • management tasks are delegated to various peer stations 110, which serve as sub managers, in order to control the network better.
  • a group of computers in the network connected together by a LAN may be managed by a selected peer station 110 that represents the group to the central manager.
  • a sub manager has less delay in receiving status information and can give immediate responses to the status of the local network.
  • manager 140 keeps track of content stored at peers 110 and of the reception of content by peers.
  • manager 140 authorizes peers 110 to contribute content and initiate content distribution to other peers.
  • manager 140 keeps track of the topology of the entire network and the properties of the network components. By following the network topology and component properties, manager 140 is optionally able to make decisions regarding optimization of transmission of content.
  • the topology of the network and component properties that is tracked optionally includes one or more of comprise the ability of peer stations 110 (for example transfer rate, free disk space and computers accessible from peer station 110), path ability (for example path MTU and path bandwidth) and details of other participants in the network (for example routers and caches).
  • peer agent 210 installed in the station supplies the topological information of the station or surroundings to manager 140.
  • Manager 140 is able to build a picture of the ability of the entire network and direct content distribution optimally from the information supplied by the peer agents 210.
  • a computer connected to the network referred to as a distributor 150 is designated to lead the caching and distribution of content in the network.
  • a distribution request is at least cached at distributor 150 and from there transmitted to other stations.
  • distributor 150 optionally comprises a computer with an agent software and/or agent hardware in order to support distribution tasks as described below.
  • a peer station 110 is chosen by manager 140 to serve as a distributor 150.
  • distributor 150 comprises a network server or a group of servers or peer stations with agents as mentioned above.
  • manager 140 optionally, instructs distributor 150 to accept data from peer stations 110 for storage and to transmit data over network 120.
  • distributor 150 is connected to a large storage 170, for example a storage area network (SAN) to handle large amounts of content. Examples of large amounts of content include movies, television shows, radio programs, inventory databases and client information.
  • SAN storage area network
  • distributor 150 accepts real time information from a live source 160 (for example a video camera), which is optionally distributed as it is supplied or at some delay.
  • a live source 160 for example a video camera
  • at least the cache management function of distributor 150 is integrated into manager 140.
  • system 100 uses a global picture of the network in order to enhance content delivery, for example by minimizing redundant content transmission, reducing bandwidth consumption, minimizing network congestion and speeding up content delivery.
  • all content transmitted in the network is transmitted utilizing the methods described herein.
  • enterprise content delivery system 100 for example large files, where special care is taken to optimally guide the content to its destination.
  • enterprise content is characterized by being few transmissions of large content on few lines in contrast to Internet content which is many transmissions of small content on many lines.
  • enterprise content distribution is especially enhanced by system 100.
  • content delivery system 100 enhances distribution of content transmitted from one peer station 110 to multiple stations, for example by reducing redundant transmissions. Additionally, content delivery system 100 enhances distribution of content transmitted from one peer station 110 to another peer station 110, for example by guiding the content through an optimal path. Further additionally, content delivery system 100 enhances distribution of content transmitted from many peer stations 110 to a single peer station 110, for example by buffering the content and transmitting it with a priority fitting the situation. TYPES OF CONTENT
  • off-line content to on-line consumers, for example a movie (streaming content) being watched by consumers.
  • on-line content to off-line consumers for example a broadcast emailed to the consumers which can be collected and viewed at the convenience of the consumers.
  • on-line content to on-line consumers for example a real-time broadcast to be viewed live.
  • delayed real-time content for example a real-time broadcast which is viewed live (from the beginning or from different entry points) by clients joining at different times.
  • distribution manager 140 does not transmit the content once for each peer 110, but rather utilizes methods to reduce bandwidth utilization, for example, transmitting the content to some of the peer stations 110 located at key points in the network. These selected peer stations 110 retransmit the content to other peer stations 110 according to the directions of manager 140.
  • distribution of interactive content requested by a single user will be significantly enhanced by transmission path selection.
  • content distribution is associated with a priority level. The priority level gives preference to certain content or certain transmissions over other transmissions. In some embodiments of the invention, the priority level is used by the distribution manager as a tool for giving preference to certain transmissions over others.
  • the priority level may be requested by the user according to the urgency of delivering a specific content, and/or according to the users rank. For example a user can designate a content as very urgent so that it will be delivered with a higher priority or content sent by managers may automatically receive a higher preference than other content.
  • content may be distributed with a target date or time (generally referred to as "deliver by" content).
  • the target time instructs manager 140 to ensure the delivery of the specific content by the selected time since some content might become meaningless if not received by a specific time, for example an invitation to an event.
  • manager 140 would assign a priority to the content in order to ensure the delivery by the requested time.
  • a content distribution request might be rejected by the manager if it is unable to fulfill the time limitation.
  • the priority assigned by manager 140 may change as a function of time in order to reflect the urgency of the content as a function of time.
  • content is distributed utilizing many peer stations 110, of which some may not be authorized to view the content.
  • content is optionally transmitted with encryption.
  • manager 140 securely delivers decryption keys for example by direct transmission to enable authorized users to access the content.
  • manager 140 can instruct on blocking delivery of content to and/or through some peer stations 110.
  • content is optionally transmitted with authentication and/or signatures, to ensure delivery of unaltered content from an authorized source, for example, to prevent a peer station 110 from maliciously or accidentally sending wrong content or harmful content.
  • system 100 keeps track of transmissions in network 120 to be able to report on system usage and bill users.
  • manager 140 keeps track of the content transmitted in network 120 to be able to direct content distribution,
  • manager 140 logs all content requests and deliveries in order to enable system 100 to provide usage reports and allow billing of users according to content consumption.
  • manager 140 notifies users that have not received content, which they are required to receive.
  • TYPES OF CONNECTIONS In an exemplary embodiment of the invention, peer stations 110 connect to network
  • connections may optionally be of different quality for example of low bandwidth or high bandwidth, from a fixed location or from a varying location, with a constant connection or with a limited time connection.
  • An example of a limited peer station 110 may be a single laptop computer which is used by a traveling client, that dials into the network and is optionally connected only for short periods from varying locations at low bandwidth.
  • a group of peer stations 110 defined as a branch 130, may be connected together in a local area network with a high bandwidth connection between the stations 110.
  • branch 130 is connected to network 120, with a lower bandwidth connection, than the local connection, for example Tl or El relative to 10/100Mbps.
  • a one or two way high speed connection such as a satellite connection 180 is used to enhance performance of a group of peer stations such as an enterprise branch 130.
  • satellite connection 180 enhances performance for peer stations in the enterprise branch and in any sub branches, by supplying a fast connection route to distributor 150 or to other peer stations 110.
  • peer stations 110 which are connected with a fast satellite connection, supply storage space and content transmission capability for the entire network.
  • a satellite connection 180 connected to an enterprise branch 130 enhances the performance of peer stations 110 throughout network 120 by adding more peer stations 110 to store and/or distribute content with a fast connection
  • satellite 180 is connected to enterprise branch 130, only with a high speed down-link connection. Accordingly, in some cases, the satellite connection 180 only enhances distribution to enterprise branch 130 and does not directly benefit non local peer stations in the network.
  • manager 140 records the connection used by every peer station 110 and takes into account the limitations of the connection in order to maximize the stations use.
  • ENHANCING CONTENT DISTRIBUTION manager 140 or an appointed sub manager can instruct a peer station 110 to participate in content distribution.
  • any type of peer station 110 may contribute to spreading content when connected.
  • a peer station 110 can reduce bandwidth consumption and the load on distributor 150 by supplying content it received for its own use to other users while its connection would have been idle.
  • a peer station 110 may store and route content for the benefit of system 100 even if it is not needed for its own consumption.
  • system 100 can support one or more cache servers 190, which may be added at key routing points in the network, for example at an Internet Service Provider (ISP), which many peer stations 110 use to connect to the Internet. Content needed by many peer stations may be cached at cache server 190 in addition to (or instead of) caching content at peer stations 110 and as a result bandwidth consumption and/or the load on distributor 150 may be further reduced.
  • ISP Internet Service Provider
  • manager 140 keeps track of the behavior of peer stations 110 in network 120 over time to increase the benefit from usage of each station, handle their needs efficiently and/or enhance direction of content distribution. For example, manager 140 keeps track of the working hours of each station in order to know when to expect to be able to deliver content to the peer station 110 and/or use the peer station's resources (e.g. disk space). In an exemplary embodiment of the invention, manager 140 keeps track if a station sends or receives large quantities of content following a certain time pattern and/or follows bandwidth consumption of a specific peer station 110 at specific times of the day. Alternatively or additionally, manager 140 keeps track of the types of content received by peer station 110, for example what part of the content is on-line and what part is off-line.
  • manager 140 keeps track of the types of content received by peer station 110, for example what part of the content is on-line and what part is off-line.
  • manager 140 searches for behavior rules between stations. For example a peer station 110 that performs large transmissions following another peer station's transmissions.
  • manager 140 utilizes behavioral information of peer stations, in order to enhance direction of content distribution.
  • content is transmitted in network 120 using standard content protocols (for example HTTP and/or FTP) in order for non enabled peer stations 110 to be able to receive content.
  • standard content protocols for example HTTP and/or FTP
  • distributed content may be encoded using non standard protocols, which are supported for example by a peer station agent in order to prevent unauthorized peer stations 110 from receiving the content without additional aids to translate the protocol used.
  • a peer station 110 with an agent can serve as a gateway for supplying content to non enabled peer stations for example according to instruction from manager 140.
  • content may be encrypted using an encryption method as described above in order to prevent unauthorized use.
  • content is encoded using an additive transmission code, which allows a peer station 110 to receive partial transmissions of content from multiple peer stations 110.
  • An additive transmission code provides manager 140 with flexibility in choosing a source and transmission path for routing content. Additionally this option increases robustness in overcoming discontinued transmissions for example from a station which disconnects from the network in the middle of content transmission.
  • An example of such a code is a forward error correction code (FEC), which allows a peer station 110, to reconstruct content once enough different parts of the content have been received from any other peer stations 110.
  • FEC forward error correction code
  • content is transmitted FEC encoded, possibly reducing or eliminating the need to retransmit data.
  • the transmission is with different levels of quality so that a peer station 110 receiving a transmission at a slower rate can display a lower quality view.
  • a peer station 110 with a lower bandwidth will view the event with lower quality than a peer station 110 with a larger bandwidth.
  • manager 140 controls content distribution disregarding the transmission load in network 120, for example based on the network topology (paths) and content location.
  • manager 140 directs content distribution based additionally on connection bandwidth and/or the content load which is scheduled (or expected, e.g., using past statistics) to be transmitted over a connection.
  • manager 140 keeps track of content flow in the network, based for example on reports from the peer agents.
  • manager 140 instructs transmissions to be rerouted in order to even out the load in the network and prevent congestion. Additionally, manager 140 can free paths or lower a paths usage in order to use them for urgent content.
  • manager 140 can instruct on delivery of a lower quality content if the bandwidth is low or network 120 is overloaded.
  • RELIABILITY In some embodiments of the invention, content delivery system 100 includes protection measures in order to uphold the reliability of system 100. One possibility of maintaining reliability is rejecting content distribution that would cause problems in the network, for example jobs that are to large to be handled by system 100 and or jobs that need resources that are in use.
  • manager 140 rejects jobs which cannot be fulfilled in a required time limit.
  • a user that requests to introduce a new distribution job receives an error message if the job exceeds the system limit.
  • peer stations 110 and/or users are assigned quotas limiting the amount of content they can distribute. Such a limitation can be used to prevent a user from sending unsolicited bulk quantities of content (spamming). For example manager 140 would prevent a virus from clogging up the network by not allowing peer stations 110 with the virus from initiating unreasonable content distribution.
  • a user may pre-select a distribution option that changes the distribution time to minimize or reduce distribution costs at times when the network (or parts thereof) is congested (and thus more expensive to distribute on).
  • system 100 incorporates a censorship module, which removes unwanted content from being distributed. For example, manager 140 or distributor 150 review the content before distribution and ' remove advertisements or content that is offensive to the corporation.
  • manager 140 may correct problems in distribution by changing priority of distribution jobs. For example a user can initiate a job with a high priority and during its execution manager 140 can override the setting in order to prevent congestion in the network.
  • manager 140 makes distribution decisions based on the topology and/or properties of the network.
  • the topology includes a map of the paths and their abilities.
  • manager 140 receives details from peer station in the network in order to build a topological overview of the network.
  • peer agent 210 (Fig. 2) determines its host capabilities during its initial startup. These capabilities optionally include one or more of: processor speed, free storage space, free processing time, uniformity of load, available working memory and network connection bandwidth.
  • peer agent 210 further determines which peer stations 110 are connected directly to the peer station 110. The determined details are reported to a manager 140 and/or to a locally appointed manager as mentioned above.
  • peer agent 210 periodically (e.g. every hour or every day) rechecks the above details and updates the site manager or manager 140.
  • manager 140 compares the determined topology with the actual content distribution in order to ascertain if the determined details are correct.
  • manager 140 queries network 120, for example by transmitting test requests to peer stations 110, and then generates a map of the network base don the answers (or lack thereof). Further alternatively or additionally, the topology of network 120 is input by system administrators during installation or at other times for example in response to problems determined by manager 140.
  • SYSTEM AGENT STRUCTURES Fig. 2 is a block diagram 200 illustrating basic building blocks for peer agent 210, a distribution agent 230, a manager engine agent 250 and a manager management agent 270 according to an exemplary embodiment of the invention.
  • one or more of the basic building blocks described below are used to enable performing managed peer to peer content distribution as described throughout the application.
  • the agents described below are installed as a software package and/or as a hardware element in a computer connected to network 120.
  • the components of the agent intercept the appropriate computer functions in order to enable the computer to perform the tasks required from the agent they emulate.
  • a software peer agent may be installed as a resident application which optionally resides in the RAM of a peer station computer in network 120.
  • the software agent would optionally share the computer's CPU and interact with the operating system to provide special functions in handling network transmissions, data-storage and other functions necessary to perform the tasks described in the description of this application.
  • Such an agent is created using standard software programs for example Visual C++, Visual Basic and VB.NET according to programming methods known in the art.
  • peer agent 210 may be on a network card (for example with a ROM BIOS) that invokes the operating system functions in order to enable managed content distribution.
  • peer agent 210 comprises software and/or hardware that comprise one or more of the following (optionally modular) components: 1.
  • a distribution receiver 212 that enables peer station 110 to receive content.
  • Distribution receiver 212 requests and receives data from other peer stations 110 and/or other network elements (for example routers). 2. A job/content store 214 that stores data at peer station 110. Job/content store 214, buffers and/or stores a list of jobs to be performed by agent 210 and buffers and/or stores content to be distributed by agent 210. 3. A distribution sender 216 that enables peer station 110 to transmit content. Distribution sender 216 transmits content out of peer stations 110 to other peer stations and other network elements.
  • a content view 218 that serves as an interface into peer agent 210.
  • Content view 218, allows a manager station to query the peer agent 210 regarding the content stored at agent 210 and the content requested by agent 210.
  • a content consumer interface 220 that serves as an interface between peer agent 210 and users of the peer station on which it is installed. Content consumer interface 220, prepares data for display and receives commands from the users, for example, allowing the user to view content received by peer station 210.
  • a network agent 222 that interfaces the agent with network 120.
  • Network agent 222 controls transmissions to and from peer agent 210.
  • a logging element 224 that logs details of content sent or received by peer agent 210. Logging element 224 notifies manager 140 of the content received by the peer station and/or transmitted to other peer stations.
  • a host analyzing module is provided which can be used to report the host abilities to manager 140.
  • a distributor agent 230 is installed on one or more stations of network 120 as described above.
  • an agent comprising the building blocks described below can be used for any of the stations in order to enable it to perform as a content distributor.
  • distribution agent 230 comprises software and/or hardware with one or more of the following (optionally modular) components: 1.
  • Media server 232 is optionally a content creator or supplier such as a video camera or a television receiver, or a storage device for example a hard disk a SAN server or network.
  • a media server interface 234 that interfaces with the media server 232.
  • Media server 232 accepts content from the media server and supplies it to jobs/content store 240 (below) to distribute to clients in network 120.
  • Network agent 236 handles transmissions from distributor agent 230 to network 120 and from the network 120 to distributor agent 230.
  • a logging element 238 that logs details of the transactions performed by distributor agent 230. Logging element 238 optionally stores the logging information and transmits it to a manager agent for analysis. The logging information can be used for billing clients or producing reports.
  • a jobs/content store 240 that stores data at distributor agent 230. Jobs/content store 240 stores a list of the jobs being handled by distributor agent 230 and buffers the content, which is distributed by the agent.
  • a distribution sender 242 that handles content distribution.
  • Distribution sender 242 formats the content and determines the target stations.
  • a manager agent is comprised of two parts.
  • the first part is a manager management agent 270 that manages the overall management task of content distribution in a peer to peer network, which for example includes among other tasks: accepting/rejecting distribution jobs and setting the order of execution of the jobs.
  • the second part is a manager engine agent 250 that manages the actual content distribution in network 120, which includes among other tasks: giving instructions to the peer stations, instructing the routing of content, managing a log of the content transmissions.
  • some managing stations may have installed both parts of the managing agent.
  • manager engine agent 250 comprises software and/or hardware that comprise one or more of the following (optionally modular) components:
  • a jobs store 252 that stores the job queue. Jobs store 252 stores the distribution jobs, activates the distribution jobs at the appropriate time and track the job's execution.
  • a jobs archive 254 that stores the details of jobs that terminated.
  • a network element monitor 256 that stores the status of elements in the network.
  • Network element monitor 256 keeps track of the elements that participate in content distribution such as distributor agent 230 and peer agent 210. Optionally, network element monitor 256 is updated with the status of each element in order for manager engine 250 to know which elements can be controlled at a specific time. 4. A network topology monitor 258 that stores the topology of the network elements. Optionally, network topology monitor 258 dynamically updates the list as changes occur in the network.
  • routing controller 260 that decides on the route for delivering content.
  • routing controller 260 bases the route on details from network topology monitor 258, network element monitor 256 and distribution rules from policy manager 262.
  • a policy manager 262 that stores the network distribution rules set by the organization. Policy manager 262 limits transmissions according to rules such as overall bandwidth limitations and time restrictions. 7. A logging element 264 that logs transmission information, Logging element 264 receives details from peer agents 210 and distributor agents 230 regarding content distribution in network 120. The collected data allows manager 140 to know if the content reached it destination. 8. A license manager 266 that keeps track of licenses in the network. License manager 266 compares the number of purchased licenses with the number of users of the specific product. MANAGER MANAGEMENT AGENT
  • manager management agent 270 comprises software and/or hardware with one or more of the following (optionally modular) components: 1.
  • a web interface 272 that interfaces between manager station 140 and the Internet. Web interface 272 enables manager 140 to transmit and receive content over the Internet, for example to receive content distribution requests from peer stations 110.
  • a content distributor manager 274 that keeps track of distribution policy. Content distributor manager 274 checks that the client users are authorized to send/receive the content and only send receive quantities and content that they have permission to sendreceive.
  • a quality level table 276 that supplies content distributor manager 274 with distribution rules. The rules determine who can send content, who can receive content and what content can be sent or received. Generally the rules are based on the type of network and organization policies. 4.
  • a content insertion 278 that. transfers distribution jobs/content to job manager 280 (below) for execution. Content insertion 278 receives content distribution requests for example from web interface 272 and authorization rules from content distribution manager 274. Content insertion 278 determines if the job should be transferred to job manager 280 to be executed. 5.
  • a job manager 280 that transfers authorized execution jobs to manager engine 250 to execute. Additionally, job manager 280 keeps track of the execution status of the job.
  • a network element manager 282 that keeps track of the status of the content sources in the network.
  • Network element manager 282 is optionally updated by manager engine 250 in order to accurately maintain a list of potential sources for a content.
  • content distribution can be initiated by users using several types of interfaces.
  • content distribution is provided using a web interface wherein a user can select to download and/or upload content.
  • content distribution is performed via an Email interface where content is distributed as Emails to the recipients.
  • a user may receive files as attachments to the Email messages.
  • an Email may notify a user about a content which can be received by selecting a URL in the message or in an attachment.
  • a peer station 110 can initiate a content distribution which starts immediately or is scheduled for a later time.
  • a peer station receives notice of scheduled transmissions, for example by e-mail.
  • a peer station 110 can optionally request or a direct protocol a content or notify manager 140 or distributor 150 if it accepts or declines reception of a content.
  • e- mail communication may be used for such information exchange.
  • peer agent 210 emulates a file system, giving the users the feeling that they are accessing a virtual storage device.
  • the virtual storage device is comprised of the content that can be accessed by the user.
  • the content on the virtual storage device may actually reside in pieces on many peer stations 110.
  • Peer agent 210 optionally manages the directory of the virtual storage device and updates it periodically as content travels through the network.
  • a user downloads content by copying it from the virtual storage device and uploads content by copying it to the virtual storage device.
  • copying content to the device which emulates initiation of a content distribution requires authorization from manager.
  • content already copied to the virtual storage device may be designated as "read only" (i.e. protected against change) since the content may be spread out in . multiple pieces and/or multiple copies on many peer stations.
  • Fig. 3 is a flow diagram 300 of an exemplary process of content distribution using the modules of Fig. 2 described above.
  • peer station 110 when a user is interested in delivering content to a group of users over network 120, peer station 110 initiates a request to be a content distributor 302.
  • the user of content distributor 302 first logs (310) into web interface 272 of manager management agent 270 to gain access to the network. After logging in content distributor 302 transfers (312) via web interface 272 to content insertion 278 details, regarding the distribution request (for example name of distributor, list of consumers, size of content and source location of content).
  • Content insertion 278 performs authorization (314) with content distribution manager 274 in which the permission of content distributor 302 is checked and the content size is checked to verify that content distributor 302 is authorized to distribute the content to the requested list of consumers. ' After authorizing the distribution, content insertion 278 creates a distribution job (316) and updates job manager 280. In other cases, the user may request that a different station(s) be the source. PROCESSING DISTRIBUTION JOB
  • job manager 280 of manager management 270 transfers (318) the distribution job to jobs store 252 of manager engine 250 in order to add the distribution request to the jobs waiting to be processed.
  • various methods are used to select the distribution job to be processed as described below.
  • manager engine 250 selects a distributor agent 230, according to methods described below, to initiate distribution of the content to network 120 and stores (320) the distribution job in job/content store 240 of distributor agent 230.
  • the source of the content requested for distribution is located on a content source 306 which is in a distribution server 150.
  • content source 306 is connected to a distribution server 150, for example a video camera connected to a distribution server.
  • content source 306 is located on peer station 110 which initiated the content distribution or on any other peer station 110.
  • a distribution server 150 is selected and/or positioned to be located at a key position in network 120 which maximizes its ability to distribute content in network 120. For example a position that has a broadband connection to a maximum number of peer stations 110.
  • the content to be distributed is initially uploaded (330) from content source 306 to jobs/content store 240 of a distribution server 150 in order to optimize distribution.
  • Jobs/content store 240 of distribution agent 230 transmits (322) details of a distribution job to jobs/content store 214 of one or more peer agents 210 according to distribution instructions given by routing controller 260 of manager engine agent 250, for example, when initiating the job or continuously as content is distributed through network 120.
  • Jobs/content store 214 of peer agent 210 activates a request (324) to receive content via distribution receiver 212 of peer agent 210 according to the details of the distribution job.
  • Distribution receiver 212 of peer agent 210 requests (326) the content from a distribution sender 242 of a distribution agent 230.
  • distribution receiver 212 of peer agent 210 requests (326) the content from the same distribution agent that sent peer agent 210 the distribution job.
  • distribution receiver 212 consults (338) routing 260 of manager engine 250 in order to get instructions regarding the source of the content.
  • routing 260 may instruct on delivery of the content from a different source (e.g. peer station or distributor) according to the locations holding the content and/or the traffic on the paths of network 120.
  • Distribution sender 242 of distribution agent 230 fetches (328) content from jobs/content store 240 of distribution agent 230 and delivers it to distribution receiver 212 of peer agent 210.
  • a peer station 110 retrieves content for other peer stations, which it delivers using distribution sender 216.
  • jobs/content store 240 uploads it (330) from content source 306 according to instructions from manager
  • a content consumer 304 requests (332) from consumer interface 220 to view the content delivered to the peer agent 210.
  • the content is fetched (340) from jobs/content store 214 of peer agent 210 and provided to content consumer 304 by consumer interface 220, which prepares the data for display.
  • consumer interface 220 logs (334) content consumption at logging element 224 in order to keep track of content usage by content consumer 304.
  • Logging element 224 optionally forwards (336) logging information to logging element 264 of manager engine agent 250 in order to enable billing consumers and/or keep track of content delivery.
  • content distributor 302 receives statistical information regarding content consumption such as a list of stations that received the content.
  • the content consumption logged to logging element 264 of manager engine agent 250 is used to limit content delivery according to quotas or quantity purchased as described above.
  • manager 140 checks the log before delivering content in order to verify that the users do not exceed their quota.
  • peer agent 210 further distributes jobs and content to other peer agents 210 according to instructions from manager engine agent 250 and/or instructions transferred in the distribution job.
  • a peer agent 210 delivers content to other peer agents 210 based on their request, for example in order to reduce dependency on manager engine agent 250.
  • a peer agent allows transmission to another peer agent only if the other peer agent 210 is authorized to receive the content, for example by a password given to the peer agent 210 when the manager 140 infomis him of the content.
  • the content is encoded and a peer agent receives an encryption key when being authorized to receive a specific content. Accordingly a peer agent 210 distributes the content freely since only authorized peer agents can use it.
  • jobs/content store 214 of a peer agent 210 transfers jobs and/or content to other jobs/content stores 214 of peer agents 210, and distribution receiver 212 of a peer agent 210 requests and receives content from distribution sender 216 of another peer agent 210.
  • jobs/content store 214 of peer agent 210 buffers content in order to allow quick distribution of content throughout network 120.
  • content for a scheduled transmission can be buffered in job/content stores 214 of peer agents 210 ahead of time in order to allow fast distribution of the content at the scheduled time.
  • manager 140 is responsible for distribution of requested content to every peer station 110 of network 120.
  • a sub manager controls the actual distribution for a group of peer stations 110 in a branch or a portion of a branch of network 120 and may be regarded as a single station in manager 140's point of view.
  • manager 140 decides where to bring the requested content from for a peer station 110, based on its tracking of content distribution in network 120. For example manager 140 decides if distributor 150 should supply the content directly to peer station 110 or if peer station 110 should receive the content from other peer stations which have the content or parts of the content.
  • manager 140 periodically evaluates the optional content sources relative to the list of target stations. Manager 140 attempts to find an optimal routing solution, which defines the paths for transmitting content from the sources to the targets.
  • the optimal solution optionally, gives the minimal distribution tune in performing the distribution tasks in the network, hi an exemplary embodiment of the invention, the network can be viewed as a directed graph, wherein each path is defined with a weight value representing the path's characteristics such as latency and/or bandwidth.
  • the optimal routing solution attempts to find a set of paths resulting in an accumulative minimal weight using algorithms known in the art such as Dijkstra algorithm for shortest paths and/or other known related algorithms .
  • manager 140 takes into account one or more of the following items of information:
  • path usage how much bandwidth is available on the available paths due to other content being transferred in the network.
  • content priority what content should be delivered more urgently over the available paths.
  • content quality should content be delivered at a lower quality or in stages.
  • peer resource utilization how much of a peer station's disk space, processing time or other resources are available to transfer content to others.
  • sub managers dynamically appointing sub managers and distributing authority.
  • manager 140 takes into account all of the items of information listed above. Alternatively, manager 140 takes into account only some of the details listed above. In some embodiments the invention, the above details affect the path weight in evaluating the routing paths for content. For example in an exemplary embodiment of the invention, the weight of a path is defined to grow exponentially according to the path usage such as the number of content transmissions over the same path. Alternatively or additionally, some of the above items of information affect content delivery scheduling as described below.
  • a content distribution request supplies a target time for the completion of the distribution.
  • manager 140 evaluates the distribution request relative to the available resources in order to decide if to accept or reject the job.
  • a job requesting content distribution to multiple clients can be split by manager 140 into partial jobs, wherein manager 140 accepts distribution to some of the targets and rejects the job for some of the targets.
  • multiple jobs for delivery of content from the same source and to the same target can be combined to a single distribution job.
  • manager 140 reduces the available system resources.
  • manager 140 accepts targets of a partial job according to the ascending order of complexity (e.g. manager 140 accepts the distribution to easier targets until system resource limitations are exhausted).
  • manager 140 can accept distribution targets according to the priority of the sender or receptor.
  • a content distribution request that does not supply a target date will not be rejected.
  • a job might risk being deferred indefinitely, due to lack of resources in the system.
  • the priority of a job is raised according to its seniority as described below in order to overcome this problem.
  • the time limitation of a content distribution job is set by the sender.
  • the time limitation is requested by the receiver when notified about the content, for example by a pop up message to the receiver or an Email message which the receiver should respond to.
  • the content may be realtime content which needs to be delivered within a substantially small time difference from it's creation and with a continuos flow.
  • Fig. 4 is a flow diagram 400 of an exemplary algorithm for routing and scheduling content distribution in a peer to peer network according to an exemplary embodiment of the invention.
  • this algorithm is used to determine the order of execution of the accepted jobs.
  • One object of the algorithm is to calculate a useful distribution order and route taking into account some of the items of information described above. A new job request is compared to the final determined optimal order and route of the current recalculation at the time the job requests to join, using similar calculations described below and is either accepted or rejected.
  • manager 140 periodically recalculates the status of the distribution jobs accepted by system 100, to take into account changes in the network.
  • the periodic tune interval is chosen large enough to allow some content to be delivered and small enough to prevent unattended network congestion, for example a period of 5 minutes or 10 minutes in a network of 100 to 1000 computers.
  • any distribution job can be stopped and/or rescheduled, to take into account the priority of the distribution jobs as determined by the calculation at a specific time.
  • the recalculation process starts with 410 wherein manager 140 calculates a representative value for each distribution job taking into account the jobs that have already been accepted.
  • the representative value gives an indication of the complexity of executing the job, for example inversely proportional to the minimum time needed to deliver a content from the sources to the destinations.
  • a representative value is optionally calculated, as described below, for each job assuming that the job is alone in network 120. Then the calculation adds the pending jobs one after another and updates the representative values accordingly.
  • the result of the calculation gives the planned schedule and routes until the next recalculation.
  • the recalculation process manager 140 may instruct on path changes for some jobs and/or restarting or suspension of some of the jobs temporarily at least until the next recalculation.
  • the distribution job is viewed as a directed graph, comprised of segments E (V1N2) (VI -source node, V2-target node), wherein each segment is associated with a weight W(E).
  • a job is comprised of one or more sources, one or more targets and a route that is comprised of a chain of segments, between each source and target.
  • the job can be viewed for calculation purposes as a collection of different directed graphs or trees and the problem is to determine the minimal graph or tree for executing each job.
  • the representative value of a job is inversely proportional to the sum of the weights of the tree giving a minimal total (an approximation to a Stiener tree as is known in the art (e.g. using algorithms such as suggested by Dijkstra for determining shortest path)). Accordingly a job that would take a long time (e.g. 1000 seconds) results in a smaller representative value than a job that takes a shorter time (e.g. 10 seconds).
  • the weight W(E) for a segment is defined as:
  • W(E) A/B*C+D
  • A is the size of the content at the source VI left to be delivered to the target V2 at the time of calculation
  • B is the remaining bandwidth at the segment (A/B gives the time left for transmission of the content left, over the segment)
  • C is a factor based on the current number of jobs using the segment as will be described below
  • D is a switching penalty.
  • C is selected to be a fixed factor based on the segment bandwidth raised to the power of the number of additional jobs using the segment. For example as shown in the following table:
  • a threshold value is chosen to limit the acceptance of a path with a factor C above the threshold value (e.g. 5 or 6) since such a value represents a path with a detrimental effect on transmission.
  • the threshold value is used to compare against the resulting representative value for accepting or rejecting a job, for example by comparing the threshold value to the ratio between the representative value calculated for the current network and the representative value for an empty network.
  • C is chosen as an exponential factor to represent the detrimental effect of each user on the transmission via a specific segment.
  • C may be calculated by a different function (e.g. polynomial) as a function of bandwidth and number of users of the segment.
  • each additional job uses an equal share of the bandwidth available on a segment, however it is possible to take into account additional considerations in dividing a segments bandwidth.
  • the jobs are sorted in descending order according to the representative value calculated as described above.
  • the easiest job to satisfy has the highest representative value and vice versa as described above. '
  • manager 140 checks each accepted job starting from the easiest to satisfy to see if system 100 has enough free resources to handle the job and/or if the job exceeds the threshold value. If system 100 has enough resources to handle the job, the job is accepted for the current recalculation and processing returns to 410 to recalculate the representative values taking into account the presence of the additional job in the system which directly affects the weight factor C. If manager 140 determines that the job should be rejected in the current recalculation, for example due to a decrease in system resources, then the job will be suspended until the next recalculation and manager 140 goes back to 430 to check the next job in turn. It should be noted that if a job is rejected a job with a lower representative value will not necessarily be rejected although it may require more resources since it may require more resources from a part of network 120, which is free to supply the need.
  • an accepted job rejected in a recalculation may receive a final rejection, for example by notifying the initiator and canceling the job, if for example the job is rejected in recalculations more than a predetermined number of times.
  • a new job request is compared to the last calculated evaluation of the network after adding all accepted jobs, to determine if the system should accept the new job or reject it. If the job is accepted it will be added to the accepted job queue and will participate in the next recalculation to determine its schedule and route. Alternatively, if the job is rejected the requester will be notified that the job exceeds the current system resources.
  • each job may include transmission of a content from multiple sources to multiple targets.
  • an entire job may be rejected although all the targets but one could have been accepted.
  • a rejected job is optionally broken down into a few sub jobs, of which each comprises a sub group of the targets.
  • manager 140 seeks to determine a sub group comprising all acceptable jobs or at least as many as feasible due to the complexity of determining all those that are acceptable.
  • the job is broken down to a plurality of sub-jobs, for example LOG(N) sub-jobs wherein N is the number of targets.
  • this is done by calculating the representative value for the transmissions to each of the N targets of the job in the current network.
  • the job is divided to LOG(N) partial jobs J
  • manager 140 determines the maximum partial job J[ as described above that will not be rejected for distribution by system 100.
  • manager 140 uses the initial division to partial jobs Jj as a first estimate and further determines additional targets from job
  • the representative value of a job is increased by manager 140 or by an authorized user in order to give a higher priority for special cases, for example, in order to give special preference to an important content distribution or prevent a job from never being dealt with.
  • a low priority job can be released by multiplying the representative values of all jobs by a factor dependent on time (t) to raise the value of the representative value based on the jobs seniority, for example multiplying by a constant R raised to the power of t such that R is set to be equal to 1000 after two days.

Landscapes

  • Engineering & Computer Science (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Signal Processing (AREA)
  • Computing Systems (AREA)
  • Information Transfer Between Computers (AREA)
  • Two-Way Televisions, Distribution Of Moving Picture Or The Like (AREA)

Abstract

L'invention porte sur un procédé de distribution de contenu dans un réseau pair à pair comportant les étapes suivantes: fourniture d'un contenu à une station distributrice; transmission par la station distributrice du contenu à une ou plusieurs stations pairs dont l'une retransmet les données à une ou plusieurs stations pairs; et gestion par une ou plusieurs stations ad hoc de la transmission par les stations pairs.
PCT/IL2004/000018 2003-01-09 2004-01-08 Systeme de distribution de contenu WO2004063840A2 (fr)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
US43902103P 2003-01-09 2003-01-09
US60/439,021 2003-01-09

Publications (2)

Publication Number Publication Date
WO2004063840A2 true WO2004063840A2 (fr) 2004-07-29
WO2004063840A3 WO2004063840A3 (fr) 2004-09-23

Family

ID=32713414

Family Applications (1)

Application Number Title Priority Date Filing Date
PCT/IL2004/000018 WO2004063840A2 (fr) 2003-01-09 2004-01-08 Systeme de distribution de contenu

Country Status (1)

Country Link
WO (1) WO2004063840A2 (fr)

Cited By (9)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2007095309A3 (fr) * 2006-02-13 2008-02-07 Tvu Networks Corp Procédés, appareil et systèmes pour fournir un contenu multimédia via un réseau de télécommunication
GB2448798A (en) * 2007-04-23 2008-10-29 Lenovo Selective engagement in peer to peer software distribution
GB2450473A (en) * 2007-06-04 2008-12-31 Sony Comp Entertainment Europe A Server in a Peer to Peer system selecting and notifying a device that it is to become a member of a peer group
CN101562673B (zh) * 2008-04-15 2012-01-18 中国电信股份有限公司 P2p传输中非对称链路补偿的方法及系统
US8527604B2 (en) 2004-02-12 2013-09-03 Unity Works Media Managed rich media system and method
US8893171B2 (en) 2007-05-24 2014-11-18 Unityworks! Llc Method and apparatus for presenting and aggregating information related to the sale of multiple goods and services
US8966369B2 (en) 2007-05-24 2015-02-24 Unity Works! Llc High quality semi-automatic production of customized rich media video clips
US8996723B2 (en) 2007-06-04 2015-03-31 Microsoft Technology Licensing, Llc ISP-aware peer-to-peer content exchange
CN105635323A (zh) * 2016-03-14 2016-06-01 北京百度网讯科技有限公司 数据传输控制方法和装置

Family Cites Families (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP3463803B2 (ja) * 1999-11-09 2003-11-05 松下電器産業株式会社 クラスタサーバ装置
AU2001243218A1 (en) * 2000-02-24 2001-09-03 Shin-Ping Liu Content distribution system
US6718361B1 (en) * 2000-04-07 2004-04-06 Network Appliance Inc. Method and apparatus for reliable and scalable distribution of data files in distributed networks

Cited By (17)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US8527604B2 (en) 2004-02-12 2013-09-03 Unity Works Media Managed rich media system and method
US8904456B2 (en) 2006-02-13 2014-12-02 Tvu Networks Corporation Methods, apparatus, and systems for providing media content over a communications network
US11317164B2 (en) 2006-02-13 2022-04-26 Tvu Networks Corporation Methods, apparatus, and systems for providing media content over a communications network
US10917699B2 (en) 2006-02-13 2021-02-09 Tvu Networks Corporation Methods, apparatus, and systems for providing media and advertising content over a communications network
US20180279011A1 (en) * 2006-02-13 2018-09-27 Tvu Networks Corporation Methods, apparatus, and systems for providing media and advertising content over a communications network
WO2007095309A3 (fr) * 2006-02-13 2008-02-07 Tvu Networks Corp Procédés, appareil et systèmes pour fournir un contenu multimédia via un réseau de télécommunication
US9860602B2 (en) * 2006-02-13 2018-01-02 Tvu Networks Corporation Methods, apparatus, and systems for providing media content over a communications network
US8296385B2 (en) 2007-04-23 2012-10-23 Lenovo (Singapore) Pte. Ltd. Apparatus and method for selective engagement in software distribution
GB2448798A (en) * 2007-04-23 2008-10-29 Lenovo Selective engagement in peer to peer software distribution
US8966369B2 (en) 2007-05-24 2015-02-24 Unity Works! Llc High quality semi-automatic production of customized rich media video clips
US8893171B2 (en) 2007-05-24 2014-11-18 Unityworks! Llc Method and apparatus for presenting and aggregating information related to the sale of multiple goods and services
US8996723B2 (en) 2007-06-04 2015-03-31 Microsoft Technology Licensing, Llc ISP-aware peer-to-peer content exchange
US9215276B2 (en) 2007-06-04 2015-12-15 Sony Computer Entertainment Europe Limited Apparatus and method of data transfer
GB2450473A (en) * 2007-06-04 2008-12-31 Sony Comp Entertainment Europe A Server in a Peer to Peer system selecting and notifying a device that it is to become a member of a peer group
CN101562673B (zh) * 2008-04-15 2012-01-18 中国电信股份有限公司 P2p传输中非对称链路补偿的方法及系统
CN105635323A (zh) * 2016-03-14 2016-06-01 北京百度网讯科技有限公司 数据传输控制方法和装置
CN105635323B (zh) * 2016-03-14 2018-05-22 北京百度网讯科技有限公司 数据传输控制方法和装置

Also Published As

Publication number Publication date
WO2004063840A3 (fr) 2004-09-23

Similar Documents

Publication Publication Date Title
JP5974373B2 (ja) トランスペアレンシー機能を用いる適応ファイル送達のシステムおよび方法
KR100350197B1 (ko) 인터넷 환경에서의 집적 부하 분산 및 자원 관리를 위한시스템 및 방법
US6516350B1 (en) Self-regulated resource management of distributed computer resources
US8589508B2 (en) System and method for flow control in an adaptive file delivery system
US7139834B1 (en) Data routing monitoring and management
EP1061710B1 (fr) Système et méthode de répartition de charge intégrée et de gestion de ressources dans un environnement Internet
US20080263130A1 (en) Apparatus, system and method of digital content distribution
US20020194324A1 (en) System for global and local data resource management for service guarantees
US20030055971A1 (en) Providing load balancing in delivering rich media
WO2001052483A1 (fr) Systeme et procede destines a la distribution de paquets de donnees utilisant un reseau de distribution intelligent
US20050086306A1 (en) Providing background delivery of messages over a network
KR20010088742A (ko) 분산처리 및 피어 대 피어 통신을 이용한 네트워크 상의정보전송 병렬화 방법
JP2001043199A (ja) 異種サーバにまたがるサービス指向資源管理
JP2009525641A (ja) 多重化及び帯域幅制御機能を有する高信頼度イベント・ブロードキャスタ
EP1999932A1 (fr) Programmateur centralisé pour réseau de livraison de contenu
KR20100105679A (ko) 콘텐츠 데이터 패키지 분배 방법 및 컴퓨터 프로그램
US20100146094A1 (en) Method And System For Compressing Files Based On Their Popularity In A Network
US7058946B2 (en) Adaptive scheduling of data delivery in a central server
US8751661B1 (en) Sticky routing
WO2004063840A2 (fr) Systeme de distribution de contenu
JP3940135B2 (ja) リソース管理システム及び方法並びにプログラム及びプログラムを記録した記録媒体
Badidi et al. A queuing model for service selection of multi-classes QoS-aware web services
WO2010058215A1 (fr) Procédé et système de manipulation de contenu
EP1660961B1 (fr) Systeme de communications fournissant un equilibrage de charge en fonction d'interruptions de connexion
JP4890610B2 (ja) 遅延ダウンロード・サービスのためのスレショルド・ベース・ノーマライズド・レート・アーリエスト・デリバリ・ファースト(nredf)

Legal Events

Date Code Title Description
AK Designated states

Kind code of ref document: A2

Designated state(s): AE AG AL AM AT AU AZ BA BB BG BR BW BY BZ CA CH CN CO CR CU CZ DE DK DM DZ EC EE EG ES FI GB GD GE GH GM HR HU ID IL IN IS JP KE KG KP KR KZ LC LK LR LS LT LU LV MA MD MG MK MN MW MX MZ NA NI NO NZ OM PG PH PL PT RO RU SC SD SE SG SK SL SY TJ TM TN TR TT TZ UA UG US UZ VC VN YU ZA ZM ZW

AL Designated countries for regional patents

Kind code of ref document: A2

Designated state(s): BW GH GM KE LS MW MZ SD SL SZ TZ UG ZM ZW AM AZ BY KG KZ MD RU TJ TM AT BE BG CH CY CZ DE DK EE ES FI FR GB GR HU IE IT LU MC NL PT RO SE SI SK TR BF BJ CF CG CI CM GA GN GQ GW ML MR NE SN TD TG

121 Ep: the epo has been informed by wipo that ep was designated in this application
122 Ep: pct application non-entry in european phase
点击 这是indexloc提供的php浏览器服务,不要输入任何密码和下载