SYSTEMS AND METHODS FOR MULTI-PERSPECTIVE OPTIMIZATION OF DATA TRANSFERS IN HETEROGENEOUS NETWORKS SUCH AS THE INTERNET
First Claim
1. A system for optimizing the utilization of heterogeneous network resources in which data sets are divided into a plurality of multiple subsets that are stored in multiple parts of the system which includes:
- (a) a plurality of end-user client computers capable of requesting data from multiple resources on a network and reassembling pieces of data received in response to the requested data into a complete data set;
(b) a plurality of classes of network resources to service data transfers to said end-user client computers;
(c) one or more network coordination servers that coordinate access of end-user client computers to said plurality of classes of network resources;
(d) one or more sources of network information which is accessible to one or more network coordination servers by making requests for information to the source that are formatted to be compatible with the source;
(e) wherein said plurality of classes of network resources include;
(i) source servers controlled by the service provider on which data is stored for transmission to end users; and
(ii) peer resources which are storage, or network transfer, or computational resources, or a combination thereof, provided by said end-user client computers.
1 Assignment
0 Petitions

Accused Products

Abstract
Systems and methods are described for optimizing network data transfers using multiple classes of network resources and network intelligence gathered and integrated by a multi-perspective network optimizer so as to maximize the performance, scalability and commercial controllability and minimize the cost of network data transfers in heterogeneous networks such as the internet.
205 Citations
DISTRIBUTED ROUTING ARCHITECTURE | ||
Patent #
US 20110149965A1
Filed 12/17/2009
|
Current Assignee
Amazon Technologies
|
Original Assignee
Amazon Technologies
|
Content processing apparatus and content processing method | ||
Patent #
US 7,937,509 B2
Filed 11/25/2009
|
Current Assignee
Hisense Visual Technology Co. Ltd.
|
Original Assignee
Toshiba Corporation
|
DISTRIBUTED ROUTING ARCHITECTURE | ||
Patent #
US 20110149964A1
Filed 12/17/2009
|
Current Assignee
Amazon Technologies
|
Original Assignee
Amazon Technologies
|
Virtual video on demand using multiple encrypted video segments | ||
Patent #
US 7,926,078 B2
Filed 01/19/2004
|
Current Assignee
The DIRECTV Group Inc.
|
Original Assignee
The DIRECTV Group Inc.
|
COMMUNICATION SYSTEMS, METHODS, AND COMPUTER PROGRAM PRODUCTS FOR EFFICIENT PEER-TO-PEER TRANSMISSION | ||
Patent #
US 20110119334A1
Filed 11/03/2010
|
Current Assignee
Arik Eizikovich
|
Original Assignee
Arik Eizikovich
|
Methods for Collecting and Analyzing Network Performance Data | ||
Patent #
US 20110145405A1
Filed 02/23/2011
|
Current Assignee
Oath Inc.
|
Original Assignee
Oath Inc.
|
MONITORING WEB SITE CONTENT | ||
Patent #
US 20110109643A1
Filed 01/13/2011
|
Current Assignee
Amazon Technologies
|
Original Assignee
Amazon Technologies
|
CONTENT PROCESSING APPARATUS AND CONTENT PROCESSING METHOD | ||
Patent #
US 20100138570A1
Filed 11/25/2009
|
Current Assignee
Hisense Visual Technology Co. Ltd.
|
Original Assignee
Toshiba Corporation
|
Video on demand in a broadcast network | ||
Patent #
US 7,801,303 B2
Filed 03/01/2004
|
Current Assignee
Hughes Electronics Corporation
|
Original Assignee
The DIRECTV Group Inc.
|
DISTRIBUTING CUSTOMER LOCATION ACCESS LINKS ACROSS NETWORK PROVIDER NODES DURING NETWORK PLANNING | ||
Patent #
US 20100150028A1
Filed 12/12/2008
|
Current Assignee
Verizon Patent and Licensing Incorporated
|
Original Assignee
Verizon Business Network Services Inc.
|
Distributing customer location access links across network provider nodes during network planning | ||
Patent #
US 7,839,801 B2
Filed 12/12/2008
|
Current Assignee
Verizon Patent and Licensing Incorporated
|
Original Assignee
Verizon Patent and Licensing Incorporated
|
SERVER, SYSTEM AND METHOD THAT PROVIDING ADDITIONAL CONTENTS | ||
Patent #
US 20100278170A1
Filed 08/18/2008
|
Current Assignee
SK Telecom Co. Ltd.
|
Original Assignee
SK Telecom Co. Ltd.
|
INTELLIGENT ESTABLISHMENT OF PEER-TO-PEER COMMUNICATION | ||
Patent #
US 20090240758A1
Filed 03/19/2008
|
Current Assignee
Verizon Patent and Licensing Incorporated
|
Original Assignee
Verizon Services Organization Incorporated
|
Security-Based Presentation in Client Application Software | ||
Patent #
US 20090287833A1
Filed 05/16/2008
|
Current Assignee
Steven Mark Paris
|
Original Assignee
Steven Mark Paris
|
METHODS AND SYSTEMS FOR PEER-TO-PEER APP-LEVEL PERFORMANCE ENHANCING PROTOCOL (PEP) | ||
Patent #
US 20090327412A1
Filed 06/25/2009
|
Current Assignee
Viasat Inc.
|
Original Assignee
Viasat Inc.
|
Distributed media-aggregation systems and methods to operate the same | ||
Patent #
US 20080034276A1
Filed 08/04/2006
|
Current Assignee
The DIRECTV Group Inc.
|
Original Assignee
The DIRECTV Group Inc.
|
Distributed media-protection systems and methods to operate the same | ||
Patent #
US 20080033881A1
Filed 08/04/2006
|
Current Assignee
The DIRECTV Group Inc.
|
Original Assignee
The DIRECTV Group Inc.
|
Dynamic network load balancing using roundtrip heuristic | ||
Patent #
US 20080066073A1
Filed 09/11/2006
|
Current Assignee
Microsoft Technology Licensing LLC
|
Original Assignee
Microsoft Corporation
|
Peer-to-Peer Streaming Of Non-Live Content | ||
Patent #
US 20080140853A1
Filed 10/05/2007
|
Current Assignee
Bittorrent Incorporated
|
Original Assignee
Bittorrent Incorporated
|
User load balancing systems and methods thereof | ||
Patent #
US 20070260732A1
Filed 05/03/2006
|
Current Assignee
BlueTie Inc.
|
Original Assignee
BlueTie Inc.
|
System and method for communicating data utilizing multiple types of data connections | ||
Patent #
US 20070291774A1
Filed 06/16/2006
|
Current Assignee
WI-GUI LLC
|
Original Assignee
NVIDIA Corporation
|
Intelligent establishment of peer-to-peer communication | ||
Patent #
US 8,082,290 B2
Filed 03/19/2008
|
Current Assignee
Verizon Patent and Licensing Incorporated
|
Original Assignee
Verizon Patent and Licensing Incorporated
|
Optimizing content management | ||
Patent #
US 8,117,306 B1
Filed 09/29/2008
|
Current Assignee
Amazon Technologies
|
Original Assignee
Amazon Technologies
|
Monitoring performance and operation of data exchanges | ||
Patent #
US 8,122,124 B1
Filed 09/29/2008
|
Current Assignee
Amazon Technologies
|
Original Assignee
Amazon Technologies
|
Application and network-based long poll request detection and cacheability assessment therefor | ||
Patent #
US 8,166,164 B1
Filed 10/14/2011
|
Current Assignee
Seven Networks LLC
|
Original Assignee
Seven Networks Inc
|
Estimating User-Perceived TCP Throughput | ||
Patent #
US 20120110012A1
Filed 06/25/2009
|
Current Assignee
Telefonaktiebolaget LM Ericsson
|
Original Assignee
Telefonaktiebolaget LM Ericsson
|
CACHING ADAPTED FOR MOBILE APPLICATION BEHAVIOR AND NETWORK CONDITIONS | ||
Patent #
US 20120110109A1
Filed 10/14/2011
|
Current Assignee
Seven Networks Inc
|
Original Assignee
Seven Networks Inc
|
Cache defeat detection and caching of content addressed by identifiers intended to defeat cache | ||
Patent #
US 8,190,701 B2
Filed 11/01/2011
|
Current Assignee
Seven Networks LLC
|
Original Assignee
Seven Networks Inc
|
User load balancing systems and methods thereof | ||
Patent #
US 8,260,924 B2
Filed 05/03/2006
|
Current Assignee
BlueTie Inc.
|
Original Assignee
BlueTie Inc.
|
System and method for communicating data utilizing multiple types of data connections | ||
Patent #
US 8,279,893 B2
Filed 06/16/2006
|
Current Assignee
WI-GUI LLC
|
Original Assignee
NVIDIA Corporation
|
Optimizing resource configurations | ||
Patent #
US 8,286,176 B1
Filed 09/29/2008
|
Current Assignee
Amazon Technologies
|
Original Assignee
Amazon Technologies
|
Application and network-based long poll request detection and cacheability assessment therefor | ||
Patent #
US 8,291,076 B2
Filed 03/05/2012
|
Current Assignee
Seven Networks LLC
|
Original Assignee
Seven Networks Inc
|
Optimizing content management | ||
Patent #
US 8,296,429 B2
Filed 02/13/2012
|
Current Assignee
Amazon Technologies
|
Original Assignee
Amazon Technologies
|
Service provider optimization of content management | ||
Patent #
US 8,307,078 B2
Filed 08/15/2011
|
Current Assignee
Amazon Technologies
|
Original Assignee
Amazon Technologies
|
Managing network data display | ||
Patent #
US 8,316,124 B1
Filed 09/29/2008
|
Current Assignee
Amazon Technologies
|
Original Assignee
Amazon Technologies
|
Social caching for device resource sharing and management | ||
Patent #
US 8,316,098 B2
Filed 04/19/2012
|
Current Assignee
Seven Networks Inc
|
Original Assignee
Seven Networks Inc
|
Distributed routing architecture | ||
Patent #
US 8,325,730 B2
Filed 12/17/2009
|
Current Assignee
Amazon Technologies
|
Original Assignee
Amazon Technologies
|
Distributed management of keep-alive message signaling for mobile network resource conservation and optimization | ||
Patent #
US 8,326,985 B2
Filed 11/01/2011
|
Current Assignee
Seven Networks LLC
|
Original Assignee
Seven Networks Inc
|
Distributed routing architecture | ||
Patent #
US 8,331,370 B2
Filed 12/17/2009
|
Current Assignee
Amazon Technologies
|
Original Assignee
Amazon Technologies
|
Distributed routing architecture | ||
Patent #
US 8,331,371 B2
Filed 12/17/2009
|
Current Assignee
Amazon Technologies
|
Original Assignee
Amazon Technologies
|
System and method for a mobile device to use physical storage of another device for caching | ||
Patent #
US 8,356,080 B2
Filed 07/20/2012
|
Current Assignee
Seven Networks Inc
|
Original Assignee
Seven Networks Inc
|
Electronic-mail filtering for mobile devices | ||
Patent #
US 8,364,181 B2
Filed 12/10/2007
|
Current Assignee
Seven Networks Inc
|
Original Assignee
Seven Networks Inc
|
Context aware data presentation | ||
Patent #
US 8,412,675 B2
Filed 02/24/2006
|
Current Assignee
Seven Networks Inc
|
Original Assignee
Seven Networks Inc
|
Methods and systems for peer-to-peer app-level performance enhancing protocol (PEP) | ||
Patent #
US 8,417,766 B2
Filed 06/25/2009
|
Current Assignee
Viasat Inc.
|
Original Assignee
Viasat Inc.
|
Aligning data transfer to optimize connections established for transmission over a wireless network | ||
Patent #
US 8,417,823 B2
Filed 11/18/2011
|
Current Assignee
Seven Networks Inc
|
Original Assignee
Seven Networks LLC
|
Managing resource consolidation configurations | ||
Patent #
US 8,429,265 B2
Filed 05/21/2012
|
Current Assignee
Amazon Technologies
|
Original Assignee
Amazon Technologies
|
Flexible real-time inbox access | ||
Patent #
US 8,438,633 B1
Filed 12/18/2006
|
Current Assignee
Seven Networks Inc
|
Original Assignee
Seven Networks Inc
|
Monitoring domain allocation performance | ||
Patent #
US 8,452,870 B2
Filed 11/08/2010
|
Current Assignee
Amazon Technologies
|
Original Assignee
Amazon Technologies
|
Publishing data in an information community | ||
Patent #
US 8,468,126 B2
Filed 12/14/2005
|
Current Assignee
Seven Networks Inc
|
Original Assignee
Seven Networks Inc
|
Distributed caching in a wireless network of content delivered for a mobile application over a long-held request | ||
Patent #
US 8,484,314 B2
Filed 10/14/2011
|
Current Assignee
Seven Networks Inc
|
Original Assignee
Seven Networks Inc
|
Monitoring performance and operation of data exchanges | ||
Patent #
US 8,489,737 B2
Filed 02/14/2012
|
Current Assignee
Amazon Technologies
|
Original Assignee
Amazon Technologies
|
Provisioning applications for a mobile device | ||
Patent #
US 8,494,510 B2
Filed 12/06/2011
|
Current Assignee
Seven Networks Inc
|
Original Assignee
Seven Networks Inc
|
DNS query processing using resource identifiers specifying an application broker | ||
Patent #
US 8,521,851 B1
Filed 03/27/2009
|
Current Assignee
Amazon Technologies
|
Original Assignee
Amazon Technologies
|
METHOD AND SYSTEM FOR LOAD BALANCING CONTENT DELIVERY SERVERS | ||
Patent #
US 20130227100A1
Filed 02/27/2012
|
Current Assignee
Red Hat Inc.
|
Original Assignee
Todd Brian Sanders, Jason Edward Dobies
|
Mobile network background traffic data management with optimized polling intervals | ||
Patent #
US 8,539,040 B2
Filed 02/28/2012
|
Current Assignee
Seven Networks Inc
|
Original Assignee
Seven Networks Inc
|
Optimizing resource configurations | ||
Patent #
US 8,549,531 B2
Filed 09/13/2012
|
Current Assignee
Amazon Technologies
|
Original Assignee
Amazon Technologies
|
Secure end-to-end transport through intermediary nodes | ||
Patent #
US 8,549,587 B2
Filed 02/14/2012
|
Current Assignee
Seven Networks Inc
|
Original Assignee
Seven Networks Inc
|
System and method for executing commands that are non-native to the native environment of a mobile device | ||
Patent #
US 8,561,086 B2
Filed 05/17/2012
|
Current Assignee
Seven Networks Inc
|
Original Assignee
Seven Networks Inc
|
Communication systems, methods, and computer program products for efficient peer-to-peer transmission | ||
Patent #
US 8,595,298 B2
Filed 11/03/2010
|
Current Assignee
Allot Communications Limited
|
Original Assignee
Allot Communications Limited
|
Detecting and preserving state for satisfying application requests in a distributed proxy and cache system | ||
Patent #
US 8,621,075 B2
Filed 04/27/2012
|
Current Assignee
Seven Networks Inc
|
Original Assignee
Seven Networks LLC
|
Service provider optimization of content management | ||
Patent #
US 8,631,129 B2
Filed 09/15/2012
|
Current Assignee
Amazon Technologies
|
Original Assignee
Amazon Technologies
|
METHODS FOR HANDLING URLS TO TRIGGER FUNCTIONALITIES | ||
Patent #
US 20140019836A1
Filed 07/12/2012
|
Current Assignee
Sony Corporation
|
Original Assignee
Sony Corporation
|
Cache state management on a mobile device to preserve user experience | ||
Patent #
US 8,635,339 B2
Filed 08/22/2012
|
Current Assignee
Seven Networks Inc
|
Original Assignee
Seven Networks Inc
|
Monitoring web site content | ||
Patent #
US 8,667,127 B2
Filed 01/13/2011
|
Current Assignee
Amazon Technologies
|
Original Assignee
Amazon Technologies
|
Polling | ||
Patent #
US 8,693,494 B2
Filed 03/31/2008
|
Current Assignee
Seven Networks Inc
|
Original Assignee
Seven Networks Inc
|
Server, system and method that providing additional contents | ||
Patent #
US 8,699,479 B2
Filed 08/18/2008
|
Current Assignee
SK Telecom Co. Ltd.
|
Original Assignee
SK Telecom Co. Ltd.
|
Cache defeat detection and caching of content addressed by identifiers intended to defeat cache | ||
Patent #
US 8,700,728 B2
Filed 05/17/2012
|
Current Assignee
Seven Networks Inc
|
Original Assignee
Seven Networks Inc
|
Cross-platform event engine | ||
Patent #
US 8,209,709 B2
Filed 07/05/2010
|
Current Assignee
Seven Networks Inc
|
Original Assignee
Seven Networks Inc
|
Distributed system for cache defeat detection and caching of content addressed by identifiers intended to defeat cache | ||
Patent #
US 8,204,953 B2
Filed 11/01/2011
|
Current Assignee
Seven Networks LLC
|
Original Assignee
Seven Networks Inc
|
Electronic-mail filtering for mobile devices | ||
Patent #
US 8,738,050 B2
Filed 01/07/2013
|
Current Assignee
Seven Networks Inc
|
Original Assignee
Seven Networks Inc
|
Mobile device equipped with mobile network congestion recognition to make intelligent decisions regarding connecting to an operator network | ||
Patent #
US 8,750,123 B1
Filed 07/31/2013
|
Current Assignee
Seven Networks LLC
|
Original Assignee
Seven Networks Inc
|
PEER-TO-PEER DOWNLOAD THROUGHPUT | ||
Patent #
US 20140172968A1
Filed 12/13/2012
|
Current Assignee
Microsoft Technology Licensing LLC
|
Original Assignee
Microsoft Corporation
|
Maintaining an IP connection in a mobile network | ||
Patent #
US 8,761,756 B2
Filed 09/13/2012
|
Current Assignee
Seven Networks Inc
|
Original Assignee
Seven Networks International Oy
|
Optimizing content management | ||
Patent #
US 8,762,526 B2
Filed 09/15/2012
|
Current Assignee
Amazon Technologies
|
Original Assignee
Amazon Technologies
|
Integrated messaging | ||
Patent #
US 8,774,844 B2
Filed 04/08/2011
|
Current Assignee
Seven Networks Inc
|
Original Assignee
Seven Networks Inc
|
Dynamic bandwidth adjustment for browsing or streaming activity in a wireless network based on prediction of user behavior when interacting with mobile applications | ||
Patent #
US 8,775,631 B2
Filed 02/25/2013
|
Current Assignee
Seven Networks Inc
|
Original Assignee
Seven Networks Inc
|
Timing of keep-alive messages used in a system for mobile network resource conservation and optimization | ||
Patent #
US 8,782,222 B2
Filed 09/05/2012
|
Current Assignee
Seven Networks Inc
|
Original Assignee
Seven Networks LLC
|
Application discovery on mobile devices | ||
Patent #
US 8,787,947 B2
Filed 06/18/2008
|
Current Assignee
Seven Networks LLC
|
Original Assignee
Seven Networks Inc
|
Managing content delivery network service providers by a content broker | ||
Patent #
US 8,788,671 B2
Filed 01/25/2012
|
Current Assignee
Amazon Technologies
|
Original Assignee
Amazon Technologies
|
Content delivery to a mobile device from a content service | ||
Patent #
US 8,793,305 B2
Filed 12/13/2007
|
Current Assignee
Seven Networks LLC
|
Original Assignee
Seven Networks Inc
|
System and method of a relay server for managing communications and notification between a mobile device and a web access server | ||
Patent #
US 8,799,410 B2
Filed 04/13/2011
|
Current Assignee
Seven Networks Inc
|
Original Assignee
Seven Networks Inc
|
Dynamic network load balancing using roundtrip heuristic | ||
Patent #
US 8,799,918 B2
Filed 09/11/2006
|
Current Assignee
Microsoft Technology Licensing LLC
|
Original Assignee
Microsoft Corporation
|
Maintaining mobile terminal information for secure communications | ||
Patent #
US 8,805,334 B2
Filed 09/05/2008
|
Current Assignee
Seven Networks Inc
|
Original Assignee
Seven Networks Inc
|
Integrated messaging | ||
Patent #
US 8,805,425 B2
Filed 01/28/2009
|
Current Assignee
Seven Networks Inc
|
Original Assignee
Seven Networks Inc
|
Mobile device power management in data synchronization over a mobile network with or without a trigger notification | ||
Patent #
US 8,811,952 B2
Filed 05/05/2011
|
Current Assignee
Seven Networks Inc
|
Original Assignee
Seven Networks Inc
|
Method and system for management of a virtual network connection without heartbeat messages | ||
Patent #
US 8,812,695 B2
Filed 04/03/2013
|
Current Assignee
Seven Networks LLC
|
Original Assignee
Seven Networks Inc
|
System and method for tracking billing events in a mobile wireless network for a network operator | ||
Patent #
US 8,831,561 B2
Filed 04/28/2011
|
Current Assignee
Seven Networks Inc
|
Original Assignee
Seven Networks Inc
|
System and method for making requests on behalf of a mobile device based on atomic processes for mobile network traffic relief | ||
Patent #
US 8,832,228 B2
Filed 04/26/2012
|
Current Assignee
Seven Networks LLC
|
Original Assignee
Seven Networks Inc
|
Distributed caching for resource and mobile network traffic management | ||
Patent #
US 8,838,783 B2
Filed 07/05/2011
|
Current Assignee
Seven Networks LLC
|
Original Assignee
Seven Networks Inc
|
Flexible real-time inbox access | ||
Patent #
US 8,839,412 B1
Filed 09/13/2012
|
Current Assignee
Seven Networks Inc
|
Original Assignee
Seven Networks Inc
|
Web-based access to data objects | ||
Patent #
US 8,838,744 B2
Filed 01/28/2009
|
Current Assignee
Seven Networks Inc
|
Original Assignee
Seven Networks Inc
|
Mobile traffic categorization and policy for network use optimization while preserving user experience | ||
Patent #
US 8,843,153 B2
Filed 11/01/2011
|
Current Assignee
Seven Networks Inc
|
Original Assignee
Seven Networks Inc
|
System for providing policy based content service in a mobile network | ||
Patent #
US 8,849,902 B2
Filed 06/24/2011
|
Current Assignee
Seven Networks Inc
|
Original Assignee
Seven Networks Inc
|
Managing network data display | ||
Patent #
US 8,843,625 B2
Filed 09/15/2012
|
Current Assignee
Amazon Technologies
|
Original Assignee
Amazon Technologies
|
Hierarchies and categories for management and deployment of policies for distributed wireless traffic optimization | ||
Patent #
US 8,861,354 B2
Filed 12/14/2012
|
Current Assignee
Seven Networks LLC
|
Original Assignee
Seven Networks Inc
|
Policy based content service | ||
Patent #
US 8,862,657 B2
Filed 01/25/2008
|
Current Assignee
Seven Networks Inc
|
Original Assignee
Seven Networks Inc
|
System of redundantly clustered machines to provide failover mechanisms for mobile traffic management and network resource conservation | ||
Patent #
US 8,868,753 B2
Filed 12/06/2012
|
Current Assignee
Seven Networks Inc
|
Original Assignee
Seven Networks Inc
|
Provisioning of e-mail settings for a mobile terminal | ||
Patent #
US 8,873,411 B2
Filed 01/12/2012
|
Current Assignee
Seven Networks Inc
|
Original Assignee
Seven Networks Inc
|
Signaling optimization in a wireless network for traffic utilizing proprietary and non-proprietary protocols | ||
Patent #
US 8,874,761 B2
Filed 03/15/2013
|
Current Assignee
Seven Networks Inc
|
Original Assignee
Seven Networks Inc
|
ENHANCED COMMAND SELECTION IN A NETWORKED COMPUTING ENVIRONMENT | ||
Patent #
US 20140330975A1
Filed 05/02/2013
|
Current Assignee
International Business Machines Corporation
|
Original Assignee
International Business Machines Corporation
|
Mobile application traffic optimization | ||
Patent #
US 8,886,176 B2
Filed 07/22/2011
|
Current Assignee
Seven Networks Inc
|
Original Assignee
Seven Networks Inc
|
Distributed routing architecture | ||
Patent #
US 8,902,897 B2
Filed 09/14/2012
|
Current Assignee
Amazon Technologies
|
Original Assignee
Amazon Technologies
|
Optimization of resource polling intervals to satisfy mobile device requests | ||
Patent #
US 8,903,954 B2
Filed 11/22/2011
|
Current Assignee
Seven Networks Inc
|
Original Assignee
Seven Networks Inc
|
Mobile virtual network operator | ||
Patent #
US 8,909,192 B2
Filed 08/11/2011
|
Current Assignee
Seven Networks Inc
|
Original Assignee
Seven Networks Inc
|
Bandwidth measurement | ||
Patent #
US 8,909,759 B2
Filed 10/12/2009
|
Current Assignee
Seven Networks Inc
|
Original Assignee
Seven Networks Inc
|
Detection and management of user interactions with foreground applications on a mobile device in distributed caching | ||
Patent #
US 8,909,202 B2
Filed 01/07/2013
|
Current Assignee
Seven Networks Inc
|
Original Assignee
Seven Networks Inc
|
System and method for providing a network service in a distributed fashion to a mobile device | ||
Patent #
US 8,914,002 B2
Filed 08/11/2011
|
Current Assignee
Seven Networks Inc
|
Original Assignee
Seven Networks Inc
|
Optimization of mobile traffic directed to private networks and operator configurability thereof | ||
Patent #
US 8,918,503 B2
Filed 08/28/2012
|
Current Assignee
Seven Networks Inc
|
Original Assignee
Seven Networks Inc
|
Method and apparatus for intercepting events in a communication system | ||
Patent #
US RE45,348 E1
Filed 03/16/2012
|
Current Assignee
Seven Networks Inc
|
Original Assignee
Seven Networks Inc
|
Peer-to-peer communication to increase download throughput | ||
Patent #
US 8,959,152 B2
Filed 12/13/2012
|
Current Assignee
Microsoft Technology Licensing LLC
|
Original Assignee
Microsoft Corporation
|
Application and network-based long poll request detection and cacheability assessment therefor | ||
Patent #
US 8,966,066 B2
Filed 10/12/2012
|
Current Assignee
Seven Networks LLC
|
Original Assignee
Seven Networks Inc
|
Distributed routing architecture | ||
Patent #
US 8,971,328 B2
Filed 09/14/2012
|
Current Assignee
Amazon Technologies
|
Original Assignee
Amazon Technologies
|
Mobile device and method to utilize the failover mechanism for fault tolerance provided for mobile traffic management and network/device resource conservation | ||
Patent #
US 8,977,755 B2
Filed 12/06/2012
|
Current Assignee
Seven Networks Inc
|
Original Assignee
Seven Networks Inc
|
Monitoring mobile application activities for malicious traffic on a mobile device | ||
Patent #
US 8,984,581 B2
Filed 07/11/2012
|
Current Assignee
Seven Networks LLC
|
Original Assignee
Seven Networks Inc
|
Connection architecture for a mobile network | ||
Patent #
US 8,989,728 B2
Filed 09/07/2006
|
Current Assignee
Seven Networks Inc
|
Original Assignee
Seven Networks Inc
|
Predictive content delivery | ||
Patent #
US 9,002,828 B2
Filed 01/02/2009
|
Current Assignee
Seven Networks Inc
|
Original Assignee
Seven Networks Inc
|
Flexible and dynamic integration schemas of a traffic management system with various network operators for network traffic alleviation | ||
Patent #
US 9,009,250 B2
Filed 12/07/2012
|
Current Assignee
Seven Networks LLC
|
Original Assignee
Seven Networks Inc
|
Caching adapted for mobile application behavior and network conditions | ||
Patent #
US 9,021,048 B2
Filed 10/14/2011
|
Current Assignee
Seven Networks Inc
|
Original Assignee
Seven Networks Inc
|
Mobile network reporting and usage analytics system and method aggregated using a distributed traffic optimization system | ||
Patent #
US 9,021,021 B2
Filed 12/10/2012
|
Current Assignee
Seven Networks Inc
|
Original Assignee
Seven Networks Inc
|
Intelligent establishment of peer-to-peer communication | ||
Patent #
US 9,037,628 B2
Filed 11/30/2011
|
Current Assignee
Verizon Patent and Licensing Incorporated
|
Original Assignee
Verizon Patent and Licensing Incorporated
|
PARTIAL WEBSITE OPTIMIZATION FOR A WEB PUBLISHER | ||
Patent #
US 20150143224A1
Filed 11/15/2013
|
Current Assignee
Akamai Technologies Inc.
|
Original Assignee
Instart Logic Incorporated
|
PEER-TO-PEER COMMUNICATION TO INCREASE DOWNLOAD THROUGHPUT | ||
Patent #
US 20150142893A1
Filed 01/28/2015
|
Current Assignee
Microsoft Technology Licensing LLC
|
Original Assignee
Microsoft Corporation
|
Mobile network traffic coordination across multiple applications | ||
Patent #
US 9,043,433 B2
Filed 05/25/2011
|
Current Assignee
Seven Networks Inc
|
Original Assignee
Seven Networks Inc
|
Intelligent rendering of information in a limited display environment | ||
Patent #
US 9,047,142 B2
Filed 12/16/2010
|
Current Assignee
Seven Networks Inc
|
Original Assignee
Seven Networks Inc
|
Mobile network traffic coordination across multiple applications | ||
Patent #
US 9,049,179 B2
Filed 01/20/2012
|
Current Assignee
Seven Networks Inc
|
Original Assignee
Seven Networks Inc
|
Location-based operations and messaging | ||
Patent #
US 9,055,102 B2
Filed 08/02/2010
|
Current Assignee
Seven Networks Inc
|
Original Assignee
Seven Networks Inc
|
Selective data compression by a distributed traffic management system to reduce mobile data traffic and signaling traffic | ||
Patent #
US 9,060,032 B2
Filed 05/09/2012
|
Current Assignee
Seven Networks Inc
|
Original Assignee
Seven Networks Inc
|
Proxy server associated with a mobile carrier for enhancing mobile traffic management in a mobile network | ||
Patent #
US 9,065,765 B2
Filed 10/08/2013
|
Current Assignee
Seven Networks LLC
|
Original Assignee
Seven Networks Inc
|
Service provider optimization of content management | ||
Patent #
US 9,071,502 B2
Filed 01/10/2014
|
Current Assignee
Amazon Technologies
|
Original Assignee
Amazon Technologies
|
Distributed implementation of dynamic wireless traffic policy | ||
Patent #
US 9,077,630 B2
Filed 07/08/2011
|
Current Assignee
Seven Networks Inc
|
Original Assignee
Seven Networks Inc
|
Device resources sharing for network resource conservation | ||
Patent #
US 9,084,105 B2
Filed 04/19/2012
|
Current Assignee
Seven Networks Inc
|
Original Assignee
Seven Networks Inc
|
Managing resource consolidation configurations | ||
Patent #
US 9,088,460 B2
Filed 03/15/2013
|
Current Assignee
Amazon Technologies
|
Original Assignee
Amazon Technologies
|
Mobile network background traffic data management | ||
Patent #
US 9,100,873 B2
Filed 09/14/2012
|
Current Assignee
Seven Networks Inc
|
Original Assignee
Seven Networks Inc
|
Managing network data display | ||
Patent #
US 9,118,543 B2
Filed 09/19/2014
|
Current Assignee
Amazon Technologies
|
Original Assignee
Amazon Technologies
|
Managing cache to prevent overloading of a wireless network due to user activity | ||
Patent #
US 9,131,397 B2
Filed 06/06/2013
|
Current Assignee
Seven Networks Inc
|
Original Assignee
Seven Networks Inc
|
Monitoring domain allocation performance | ||
Patent #
US 9,160,641 B2
Filed 05/24/2013
|
Current Assignee
Amazon Technologies
|
Original Assignee
Amazon Technologies
|
Optimized and selective management of policy deployment to mobile clients in a congested network to prevent further aggravation of network congestion | ||
Patent #
US 9,161,258 B2
Filed 03/15/2013
|
Current Assignee
Seven Networks LLC
|
Original Assignee
Seven Networks LLC
|
Radio-awareness of mobile device for sending server-side control signals using a wireless network optimized transport protocol | ||
Patent #
US 9,173,128 B2
Filed 03/06/2013
|
Current Assignee
Seven Networks Inc
|
Original Assignee
Seven Networks LLC
|
Distributed media-protection systems and methods to operate the same | ||
Patent #
US 9,178,693 B2
Filed 08/04/2006
|
Current Assignee
The DIRECTV Group Inc.
|
Original Assignee
The DIRECTV Group Inc.
|
Dynamic categorization of applications for network access in a mobile network | ||
Patent #
US 9,203,864 B2
Filed 02/04/2013
|
Current Assignee
Seven Networks LLC
|
Original Assignee
Seven Networks LLC
|
Optimizing resource configurations | ||
Patent #
US 9,210,099 B2
Filed 09/30/2013
|
Current Assignee
Amazon Technologies
|
Original Assignee
Amazon Technologies
|
Mobile device having content caching mechanisms integrated with a network operator for traffic alleviation in a wireless network and methods therefor | ||
Patent #
US 9,208,123 B2
Filed 12/07/2012
|
Current Assignee
Seven Networks LLC
|
Original Assignee
Seven Networks LLC
|
Peer-to-peer streaming of non-live content | ||
Patent #
US 9,210,085 B2
Filed 10/05/2007
|
Current Assignee
Bittorrent Incorporated
|
Original Assignee
Bittorrent Incorporated
|
Enhanced command selection in a networked computing environment | ||
Patent #
US 9,210,098 B2
Filed 05/02/2013
|
Current Assignee
International Business Machines Corporation
|
Original Assignee
International Business Machines Corporation
|
Command management in a networked computing environment | ||
Patent #
US 9,225,662 B2
Filed 07/14/2014
|
Current Assignee
International Business Machines Corporation
|
Original Assignee
International Business Machines Corporation
|
Distributed media-aggregation systems and methods to operate the same | ||
Patent #
US 9,225,761 B2
Filed 08/04/2006
|
Current Assignee
The DIRECTV Group Inc.
|
Original Assignee
The DIRECTV Group Inc.
|
Method and system for enabling secure one-time password authentication | ||
Patent #
US 9,230,084 B2
Filed 10/23/2012
|
Current Assignee
Verizon Patent and Licensing Incorporated
|
Original Assignee
Verizon Patent and Licensing Incorporated
|
Mobile device with application or context aware fast dormancy | ||
Patent #
US 9,241,314 B2
Filed 03/15/2013
|
Current Assignee
Seven Networks LLC
|
Original Assignee
Seven Networks LLC
|
Automatic generation and distribution of policy information regarding malicious mobile traffic in a wireless network | ||
Patent #
US 9,239,800 B2
Filed 07/11/2012
|
Current Assignee
Seven Networks LLC
|
Original Assignee
Seven Networks LLC
|
Extending user relationships | ||
Patent #
US 9,251,193 B2
Filed 10/28/2007
|
Current Assignee
Seven Networks Inc
|
Original Assignee
Seven Networks LLC
|
Data replication framework | ||
Patent #
US 9,268,835 B2
Filed 06/17/2013
|
Current Assignee
Amazon Technologies
|
Original Assignee
Amazon Technologies
|
Application or context aware fast dormancy | ||
Patent #
US 9,271,238 B2
Filed 03/15/2013
|
Current Assignee
Seven Networks LLC
|
Original Assignee
Seven Networks LLC
|
Request and response characteristics based adaptation of distributed caching in a mobile network | ||
Patent #
US 9,275,163 B2
Filed 10/17/2011
|
Current Assignee
Seven Networks Inc
|
Original Assignee
Seven Networks LLC
|
Radio-awareness of mobile device for sending server-side control signals using a wireless network optimized transport protocol | ||
Patent #
US 9,277,443 B2
Filed 12/07/2012
|
Current Assignee
Seven Networks Inc
|
Original Assignee
Seven Networks LLC
|
Distributed routing architecture | ||
Patent #
US 9,282,032 B2
Filed 02/26/2015
|
Current Assignee
Amazon Technologies
|
Original Assignee
Amazon Technologies
|
System and method for a mobile device to use physical storage of another device for caching | ||
Patent #
US 9,300,719 B2
Filed 01/14/2013
|
Current Assignee
Seven Networks Inc
|
Original Assignee
Seven Networks Inc
|
Systems and methods for application management of mobile device radio state promotion and demotion | ||
Patent #
US 9,307,493 B2
Filed 03/15/2013
|
Current Assignee
Seven Networks Inc
|
Original Assignee
Seven Networks LLC
|
System and method for reduction of mobile network traffic used for domain name system (DNS) queries | ||
Patent #
US 9,325,662 B2
Filed 01/09/2012
|
Current Assignee
Seven Networks Inc
|
Original Assignee
Seven Networks LLC
|
User as an end point for profiling and optimizing the delivery of content and data in a wireless network | ||
Patent #
US 9,326,189 B2
Filed 02/04/2013
|
Current Assignee
Seven Networks LLC
|
Original Assignee
Seven Networks LLC
|
Wireless traffic management system cache optimization using http headers | ||
Patent #
US 9,330,196 B2
Filed 06/14/2012
|
Current Assignee
Seven Networks LLC
|
Original Assignee
Seven Networks LLC
|
Peer-to-peer communication to increase download throughput | ||
Patent #
US 9,350,804 B2
Filed 01/28/2015
|
Current Assignee
Microsoft Technology Licensing LLC
|
Original Assignee
Microsoft Technology Licensing LLC
|
Monitoring web site content | ||
Patent #
US 9,367,929 B2
Filed 01/27/2014
|
Current Assignee
Amazon Technologies
|
Original Assignee
Amazon Technologies
|
Mobile application traffic optimization | ||
Patent #
US 9,407,713 B2
Filed 01/16/2012
|
Current Assignee
Seven Networks Inc
|
Original Assignee
Seven Networks LLC
|
Selective data compression by a distributed traffic management system to reduce mobile data traffic and signaling traffic | ||
Patent #
US 9,432,486 B2
Filed 05/16/2015
|
Current Assignee
Seven Networks Inc
|
Original Assignee
Seven Networks LLC
|
Data replication framework | ||
Patent #
US 9,449,065 B1
Filed 12/28/2010
|
Current Assignee
Amazon Technologies
|
Original Assignee
Amazon Technologies
|
Enhanced command selection in a networked computing environment | ||
Patent #
US 9,451,033 B2
Filed 10/20/2015
|
Current Assignee
International Business Machines Corporation
|
Original Assignee
International Business Machines Corporation
|
PERFORMANCE EVALUATION SYSTEM | ||
Patent #
US 20160300190A1
Filed 04/08/2015
|
Current Assignee
Chequed.com Inc.
|
Original Assignee
Chequed.com Inc.
|
Monitoring domain allocation performance | ||
Patent #
US 9,491,073 B2
Filed 09/29/2015
|
Current Assignee
Amazon Technologies
|
Original Assignee
Amazon Technologies
|
Managing resource consolidation configurations | ||
Patent #
US 9,503,389 B2
Filed 07/20/2015
|
Current Assignee
Amazon Technologies
|
Original Assignee
Amazon Technologies
|
Managing network data display | ||
Patent #
US 9,628,403 B2
Filed 08/21/2015
|
Current Assignee
Amazon Technologies
|
Original Assignee
Amazon Technologies
|
Service provider optimization of content management | ||
Patent #
US 9,660,890 B2
Filed 06/01/2015
|
Current Assignee
Amazon Technologies
|
Original Assignee
Amazon Technologies
|
Partial website optimization for a web publisher | ||
Patent #
US 9,697,189 B2
Filed 11/15/2013
|
Current Assignee
Akamai Technologies Inc.
|
Original Assignee
Instart Logic Incorporated
|
Mobile device configured for communicating with another mobile device associated with an associated user | ||
Patent #
US 9,712,986 B2
Filed 03/22/2012
|
Current Assignee
Seven Networks Inc
|
Original Assignee
Seven Networks LLC
|
Data replication framework | ||
Patent #
US 9,734,199 B1
Filed 10/04/2013
|
Current Assignee
Amazon Technologies
|
Original Assignee
Amazon Technologies
|
Performance-based content delivery | ||
Patent #
US 9,769,248 B1
Filed 12/16/2014
|
Current Assignee
Amazon Technologies
|
Original Assignee
Amazon Technologies
|
Monitoring domain allocation performance | ||
Patent #
US 9,825,831 B2
Filed 11/03/2016
|
Current Assignee
Amazon Technologies
|
Original Assignee
Amazon Technologies
|
Operation modes for mobile traffic optimization and concurrent management of optimized and non-optimized traffic | ||
Patent #
US 9,832,095 B2
Filed 12/14/2012
|
Current Assignee
Seven Networks LLC
|
Original Assignee
Seven Networks LLC
|
Managing content delivery network service providers by a content broker | ||
Patent #
US 9,985,927 B2
Filed 07/21/2014
|
Current Assignee
Amazon Technologies
|
Original Assignee
Amazon Technologies
|
Enhanced command selection in a networked computing environment | ||
Patent #
US 10,019,293 B2
Filed 07/01/2016
|
Current Assignee
International Business Machines Corporation
|
Original Assignee
International Business Machines Corporation
|
Performance-based content delivery | ||
Patent #
US 10,027,739 B1
Filed 12/16/2014
|
Current Assignee
Amazon Technologies
|
Original Assignee
Amazon Technologies
|
Distributed routing architecture | ||
Patent #
US 10,063,459 B2
Filed 03/07/2016
|
Current Assignee
Amazon Technologies
|
Original Assignee
Amazon Technologies
|
Network and video/audio system and method for gaming and virtual reality | ||
Patent #
US 10,075,563 B2
Filed 02/05/2016
|
Current Assignee
GridRaster Inc.
|
Original Assignee
GridRaster Inc.
|
Managing resource consolidation configurations | ||
Patent #
US 10,104,009 B2
Filed 11/17/2016
|
Current Assignee
Amazon Technologies
|
Original Assignee
Amazon Technologies
|
Monitoring domain allocation performance | ||
Patent #
US 10,148,542 B2
Filed 10/31/2017
|
Current Assignee
Amazon Technologies
|
Original Assignee
Amazon Technologies
|
Data replication framework | ||
Patent #
US 10,198,492 B1
Filed 12/28/2010
|
Current Assignee
Amazon Technologies
|
Original Assignee
Amazon Technologies
|
Quality of experience reporting for combined unicast-multicast/broadcast streaming of media content | ||
Patent #
US 10,200,668 B2
Filed 07/26/2016
|
Current Assignee
Apple Inc.
|
Original Assignee
Intel Corporation
|
Source-dependent address resolution | ||
Patent #
US 10,205,698 B1
Filed 11/26/2013
|
Current Assignee
Amazon Technologies
|
Original Assignee
Amazon Technologies
|
Managing network data display | ||
Patent #
US 10,205,644 B2
Filed 03/14/2017
|
Current Assignee
Amazon Technologies
|
Original Assignee
Amazon Technologies
|
Partial website optimization for a web publisher | ||
Patent #
US 10,210,145 B2
Filed 06/07/2017
|
Current Assignee
Instart Logic Incorporated
|
Original Assignee
Instart Logic Incorporated
|
Machine learning based content delivery | ||
Patent #
US 10,225,365 B1
Filed 12/19/2014
|
Current Assignee
Amazon Technologies
|
Original Assignee
Amazon Technologies
|
Point of presence based data uploading | ||
Patent #
US 10,225,326 B1
Filed 03/23/2015
|
Current Assignee
Amazon Technologies
|
Original Assignee
Amazon Technologies
|
Enhanced customer service for mobile carriers using real-time and historical mobile application and traffic or optimization data associated with mobile devices in a mobile network | ||
Patent #
US 10,263,899 B2
Filed 04/10/2013
|
Current Assignee
Seven Networks Inc
|
Original Assignee
Seven Networks LLC
|
Optimizing content management | ||
Patent #
US 10,284,446 B2
Filed 06/23/2014
|
Current Assignee
Amazon Technologies
|
Original Assignee
Amazon Technologies
|
Allocating computing resources | ||
Patent #
US 10,289,453 B1
Filed 12/07/2010
|
Current Assignee
Amazon Technologies
|
Original Assignee
Amazon Technologies
|
Machine learning based content delivery | ||
Patent #
US 10,311,372 B1
Filed 12/19/2014
|
Current Assignee
Amazon Technologies
|
Original Assignee
Amazon Technologies
|
Machine learning based content delivery | ||
Patent #
US 10,311,371 B1
Filed 12/19/2014
|
Current Assignee
Amazon Technologies
|
Original Assignee
Amazon Technologies
|
Monitoring web site content | ||
Patent #
US 10,410,085 B2
Filed 05/25/2016
|
Current Assignee
Amazon Technologies
|
Original Assignee
Amazon Technologies
|
Monitoring performance and operation of data exchanges | ||
Patent #
US 10,462,025 B2
Filed 07/15/2013
|
Current Assignee
Amazon Technologies
|
Original Assignee
Amazon Technologies
|
DNS query processing based on application information | ||
Patent #
US 10,601,767 B2
Filed 08/22/2013
|
Current Assignee
Amazon Technologies
|
Original Assignee
Amazon Technologies
|
Selective routing of domain name system (DNS) requests | ||
Patent #
US 10,616,179 B1
Filed 06/25/2015
|
Current Assignee
Amazon Technologies
|
Original Assignee
Amazon Technologies
|
Load balancing content delivery servers | ||
Patent #
US 10,637,918 B2
Filed 02/27/2012
|
Current Assignee
Red Hat Inc.
|
Original Assignee
Red Hat Inc.
|
Source-dependent address resolution | ||
Patent #
US 10,645,056 B2
Filed 02/08/2019
|
Current Assignee
Amazon Technologies
|
Original Assignee
Amazon Technologies
|
System for sending digital requests for resource transfers | ||
Patent #
US 10,805,424 B2
Filed 09/11/2017
|
Current Assignee
Bank of America Corp.
|
Original Assignee
Bank of America Corp.
|
Performance-based content delivery | ||
Patent #
US 10,812,358 B2
Filed 09/12/2017
|
Current Assignee
Amazon Technologies
|
Original Assignee
Amazon Technologies
|
Processing method for preventing copy attack, and server and client | ||
Patent #
US 10,887,343 B2
Filed 12/20/2019
|
Current Assignee
Advanced Absorbent Technologies LLC
|
Original Assignee
Advanced Absorbent Technologies LLC
|
No References
61 Claims
-
1. A system for optimizing the utilization of heterogeneous network resources in which data sets are divided into a plurality of multiple subsets that are stored in multiple parts of the system which includes:
-
(a) a plurality of end-user client computers capable of requesting data from multiple resources on a network and reassembling pieces of data received in response to the requested data into a complete data set;
(b) a plurality of classes of network resources to service data transfers to said end-user client computers;
(c) one or more network coordination servers that coordinate access of end-user client computers to said plurality of classes of network resources;
(d) one or more sources of network information which is accessible to one or more network coordination servers by making requests for information to the source that are formatted to be compatible with the source;
(e) wherein said plurality of classes of network resources include;
(i) source servers controlled by the service provider on which data is stored for transmission to end users; and
(ii) peer resources which are storage, or network transfer, or computational resources, or a combination thereof, provided by said end-user client computers. - View Dependent Claims (3, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 23, 24, 25, 26, 57, 58, 59, 60, 61)
-
-
2. A system for optimizing the utilization of heterogeneous network resources in which data sets are divided into a plurality of subsets that are stored in multiple parts of the system infrastructure which includes:
-
(a) a plurality of end-user client computers capable of requesting data from multiple resources on a network and reassembling subsets of data received in response to a data request into a complete data set;
(b) a plurality of classes of network resources to service data transfers to end-user client computers;
(c) one or more network coordination servers that coordinate access of end-user client computers to said plurality of classes of network resources;
(d) one or more source of network information which is accessible to one or more network coordination servers by making requests for information to the source that are formatted to be compatible with the source;
wherein said plurality of classes of network resources include;
(i) source servers controlled by a service provider on which data is stored for transmission to end users (ii) peer resources which are storage, or network transfer, or computational resources, or a combination thereof, provided by end-users'"'"' client computers;
(iii) network infrastructure servers which are not controlled by the service provider, but which may be utilized to optimize the overall network by servicing storage and retrieval requests, where such requests are constrained to abide by rules, interfaces and protocols of the network infrastructure servers. - View Dependent Claims (4, 27, 28, 29, 30)
-
-
31. A method for optimizing the utilization of heterogeneous network resources in the transmission of data sets to end-user client computers whereby,
(a) dividing a data set into a plurality of subsets that are stored on a plurality of classes of network resources, including, at least, a class of one or more source servers under the control of a service provider and a class consisting of a plurality of end-user client computers, (b) generating a metadata description of the relation of the subsets to a complete data set and storing said metadata description on a coordination server, including the addresses for retrieval of the subsets and an address for the metadata description, (c) providing to an outside application such as a browser or media player or other application running on an end-user client computer that wishes to retrieve the data set, the address for the metadata description, such that, when the address is invoked by the outside application, client software running on the end-user client computer directs the request to the coordination server, which returns the metadata description and a set of recommended addresses for retrieval of subsets of the data set to the requesting client computer, (d) requesting data subsets by the client computer according to the protocol type of the resource to which the request is made to a plurality of classes of network resources, and retrieving the data subsets to the end-user client computer, (e) re-assembling the data subsets and transferring them to the media player or other application according to the protocol and/or data format required by the receiving media player or other player or other application, upon request from a media player or other application running on the end-user client computer, (e) storing the data sub-sets in persistent storage on the end-user client computer, and (g) upon request from another resource in the network, including another end-user client computer, retrieving and transmitting requested data sub-sets to the requesting resource, including another end-user client computer, according to the protocol of the request.
-
32. A method for optimizing the utilization of heterogeneous network resources in the transmission of data sets to end-user client computers, comprising:
-
(a) dividing a data set into a plurality of subsets that are stored on a plurality of source server resources, (b) generating a metadata description of the relation of the sub sets to the complete data set and storing said metadata description on a coordination server, including addresses for retrieval of the subsets and an address for the metadata description, (c) providing the address for the metadata description to an outside application such as a browser or media player or other application running on a end-user client computer that wishes to retrieve the data set, (d) directing the request to the coordination server, by means of client software running on the end-user computer, when the address is invoked by the outside application, wherein said coordination server returns the metadata description and a set of recommended addresses for retrieval of subsets of the data set to the requesting client computer, (e) forming requests to a plurality of source servers for the data subsets according to the protocol type of the source server to which the request is made through the requesting client computer'"'"'s client software, and retrieving the data subsets to the end-user client computer, (f) re-assembling the data-subsets and transferring them to the media player or other application according to the protocol and/or data format required by the receiving media player or other application. - View Dependent Claims (35, 36, 38, 45)
-
-
50. The method of claim 50, wherein the cacheing proxy server is an HTTP cache proxy server, and said coordination server shapes all suggested resource requests so that the request:
-
(a) will include and properly set all HTTP directives necessary for allowing cacheing of a data set or data sub-set, including, for example, but not limited to, a Date or ETag header and Expires header, and, (b) does not include directives that would prevent cacheing of a data set or subset, including, for example but not limited to, no cache, no store, private, max-age=0, s-maxage-0, and (c) does not, include strings in the request URI that would indicate dynamic content or other class of content that would typically be blocked from cacheing by the proxy cache, including, for example, but not limited to the strings ?, &
, cgi-bin, php, pl, isp, jsp, py(d) limits the size of data subsets to a size that typical HTTP proxy caches will not reject as too large for cache efficiency and reject for cacheing, - View Dependent Claims (51, 52, 53, 54, 55, 56)
-
1 Specification
This invention pertains to the transfer of data across heterogeneous networks such as the internet. More specifically, it describes systems and methods for optimizing the utilization of network infrastructure so as to maximize the performance, scalability and commercial controllability and to minimize the cost of network data transfers.
The World Wide Web on the Internet has become the predominant network through which people organize, find and consume textual and graphic information The base protocol of the Web, the Hypertext Transfer Protocol (HTTP) has proved to be an efficient and robust mechanism to manage the transfer of such textual and graphics files from servers to client computers where they are assembled and rendered as composite pages in browsers.
Increasingly, efforts are being made to use the internet and the Web as a delivery and presentation network for rich media such as video, audio and animation. Two basic approaches have emerged to deliver such new content.
The first, server-centric approach has either file-download or streaming server alternatives File download users request a simple download of the media file from a file server, which, after the whole file has been transferred, may be loaded and played in a media player. This approach has become very widespread with regard to audio files and increasingly common with video files The file transfers may utilize one of several standard internet protocols—HTTP, FTP, SMPT.
An alternative server-centric method called media streaming has been developed to circumvent the limitations of the file download approach. In this approach, a specialized streaming server organizes the media data into a format that allows the media to be played immediately as soon as data has begun to be received from the server by the client rather than waiting until the whole file has been received. Typically, there is a short buffering delay before the media starts playing.
Such server-centric systems are simple and robust under stable conditions; they can, to a degree, support one of the key network optimization goals, that of commercial controllability, since all data requests pass through a single point of control However, the characteristics of the other three key optimization variables, performance, scalability, and cost are less than ideal, all because of the concentration of service demand at a single point in the server. Each client request must be handled as a separate session between the server and the client on a one-to-one basis. Server 101 must provide the data for every request from all of the clients, Client 301A to Client 301N. Typically, the whole system is based on a single protocol, which may not be optimal under all circumstances. Scalability and performance can be stable as long as the capacity of Server 101 exceeds the total of all requests. At the point that total client demand exceeds the capacity of Server 101 then any increase in scaling must introduce a decrease in performance. Responding to such over-capacity demand is not smooth. New server resources must be introduced, either by increasing the capacity of Server 101, or by introducing a more complex server architecture as shown below in
The second client-centric approach, transfers files using proprietary peer-to-peer protocols (P2P) which reduce transfer costs by exploiting the distributed data storage and computing resources of client computers rather than centralized servers. A user requests a file from one or more peer client computers which deliver the data. When the data transfer is complete, the user may load and play the media in a media player.
However, such point-to-point file transfers are limited by the availability and the upload bandwidth of the client providing the data. Most internet client connections have limited upload bandwidth relative to download bandwidth so that performance is severely limited from the perspective of the requesting client which has much greater reception bandwidth than a single transmitting client can provide. Hence, most client-centric systems exploit parallel requests to multiple supplying clients and rather than sending whole files, break the file down into some sort of subunits so that different supply clients can send different parts of the file to a requesting client in parallel. Receiving clients then must have the capability of reassembling the file parts into a whole file. In this case, Client 321A would request file parts from a selection of clients via Peer Data Requests 324A, say Client 321B and Client 321N, which would reply with Peer Data 325B and Peer Data 325N, which then would be reassembled into the desired file by the requesting client Client 321A. There is a theoretical possibility that such systems could be redesigned to support multiple protocols, however this has not been implemented in practice.
Such client-centric systems have quite different optimization characteristics than server-centric systems. Scalability and cost are extremely favorable. In the extreme, no server resources may be required, the system relying totally on resources provided by the clients themselves and even when external trackers are used, the burden can be minimal in cost. Scalability is achieved with no need to pre-install resources to meet peak demands and each new requesting source adds potential supply resource. There is, however, a hard limit to scalability in client-centric systems imposed by the ratio of client download bandwidth to client upload bandwidth. Most internet client connections provided by ISPs are asymmetrical, delivering from 5 to 10 times less upload bandwidth than download bandwidth This means that each consuming client needs 5 to 10 supplying clients for the bandwidth supply to match demand. Thus, as clients request more bandwidth and the number of clients grows, the systems will reach severe limits on further scalability and available performance.
The key optimization variables of performance and commercial control are not so positive. Commercial control is completely circumvented since there is no point of control. This is not merely incidental, since most of the design energy that has gone into client-centric systems has been to create architectures that circumvent central control, recognizing that one of the primary motivations for the use of the system was file transfers that contravene copyright and other intellectual property rights. A concealed aspect of lack of commercial control and cost relates to the question of what the true cost of client resources is and who should pay for the bandwidth used by client-centric systems. Although the costs of client-centric systems appear low to the end-user client, the architecture of the system forces increased costs on ISPs who must pay internetworking data transfer costs on the traffic in and out of their network. This leads to a motivation for ISPs to limit the bandwidth and Quality of Service (QOS) available to client-centric data distribution systems, negatively impacting performance and potentially scalability.
Performance can be good under certain circumstances where large numbers of supply clients are available for a smaller number of requesting clients However, there is no control on the availability of clients to upload and external factors such as ISP controls and client firewall adoption are beginning to impact performance. Much of the prior art relative to client-centric systems is focused on performance, since cost tends to be regarded as negligible, scalability infinite and commercial control not a goal. Balancing the selection of the best sources against the need not to overload particular sources is a particular concern.
Overall, the approach to network optimization differs between server-centric and client centric systems. Not only are the strengths and weakness of the two systems different, but the resources available to optimize a network from a client perspective is strongly contrasted to the resources available from a server perspective. The information that is available to a server is different than that available to a client. A client can directly access its own configuration data and indirectly learn some of the characteristics of the network sector of which it is a part and information about the limited number of clients that it shares data with, but it cannot access data concerning other clients with which it does not share any transactions. A server can consolidate information from transactions across multiple clients throughout the network, but it does not have direct access to the local resources and characteristics of any particular client.
All current systems represent a tradeoff between negative side-effects One may achieve simplicity and moderate cost in file transfer systems at the cost of sacrificing the immediacy of the users'"'"' media experience. The streaming server approach more closely satisfies users'"'"' desires for an immediate media experience, at the cost of complexities of network integration and high server and bandwidth costs. It is very difficult to scale streaming servers to large numbers of simultaneous users since they must provide a continuous stream of data to the user over the length of the media experience; and streaming servers typically require more complex interactions between client and server than can be accommodated in the standard Web protocols such as HTTP, FTP and SMTP, necessitating the use of proprietary protocols which in turn introduce difficulties of interaction with user firewalls and other internet infrastructure.
Peer-to-peer systems have significantly lower costs, but share the problems of file transfer systems with regard to user experience deficiencies and the problems of streaming server proprietary protocols with regard to difficulties of interaction with user firewalls and other internet infrastructure. A dominant problem of peer-to-peer systems lies in their lack of any commercial control mechanism which is deeply embedded in their architecture, stemming from their history as anonymous (and often illegal) file sharing networks.
Efforts to optimize networks have differed depending on whether the starting point was server-centric, file transfer or streaming oriented; or was client-centric peer-to-peer oriented. Each optimization approach concentrates on the network component that is accessible and controllable.
Attempts at optimizing server-centric networks have concentrated on solving interlinked problems of scalability and performance. For instance, Akamai Networks has attempted to create a more scalable and high performance network by distributing its serving infrastructure in multiple cache servers distributed throughout the internet. This approach is effective in increasing scalability and performance, but is ineffective at addressing cost, since the network proprietor must still purchase, operate and maintain the distributed cache servers.
The costs of client-centric peer-to-peer systems are very low, since they utilize the computing power, storage and bandwidth of the participating clients. There has been extensive academic and open source activity associated with improving the performance of peer-to-peer systems which has focused necessarily on improved client algorithms. Scalability tends to be high, since each new client adds some storage and bandwidth. However, since the bandwidth currently available to client computers on the internet is asymmetrical (approximately 10 times more download than upload bandwidth) there is a strong scalability limit on peer-to-peer systems in the case of widespread use of large media files. The simple boundary case requires 10 uploading peers for every downloading consumer.
No existing system addresses optimization of all the key variables: scalability, performance, cost, and commercial control. An optimal solution with great utility would be an approach that could offer the scalability and low cost of peer-to-peer client systems with the performance and commercial control characteristics of server-centric systems.
The current invention describes systems and methods for circumventing key network optimization deficiencies of both server-centric and client-centric networks by introducing a new optimization architecture based on two principals: distributed heterogeneous network intelligence with parallel data transfer from multiple sources, and co-option of non-client-or-server network infrastructure.
Systems and methods for optimizing the utilization of heterogeneous network infrastructure so as to maximize the performance, scalability, commercial control and minimize the cost of network data transfers are described. The invention describes systems and methods for gathering network information to create distributed optimization intelligence to control the relationships of the different classes or categories of network infrastructure that are involved in a particular data transfer and systems and methods of co-opting elements of network infrastructure that are not directly under the control of the party initiating or terminating the data transfer. As well as allowing simultaneous optimization of the four key variables, the invention allows dynamic biasing of the network optimization to prioritize one or more of the key variables relative to the others.
According to the invention there is provided a system for optimizing the utilization of heterogeneous network resources in which data sets are divided into a plurality of subsets that are stored in multiple parts of the system. A plurality of end-user client computers are provided which are capable of requesting data from multiple resources on a network and reassembling pieces of data received in response to the requested data into a complete data set. A plurality of classes of network resources operate to service data transfers to the end-user client computers and one or more network coordination servers called Multi-perspective Network Optimizers coordinate access of end-user client computers to the plurality of classes of network resources. One or more sources of network information are accessible to one or more network coordination servers by making requests for information to the source that are formatted to be compatible with the source. The plurality of classes of network resources include source servers called Bound Server Resources controlled by the service provider on which data is stored for transmission to end users and peer resources called Bound Client Resources which are storage, or network transfer, or computational resources, or a combination thereof provided by said end-user client computers.
The plurality of classes of network resources further include network infrastructure servers called Unbound Network Resources which are not controlled by the service provider, but which may be utilized to optimize the overall network by servicing storage and retrieval requests, where such requests are constrained to abide by rules, interfaces and protocols of the network infrastructure servers.
A method for optimizing the utilization of heterogeneous network resources in the transmission of data sets to end-user client computers, including dividing a data set into a plurality of subsets that are stored on a plurality of classes of network resources, including, at least, a class of one or more Bound Server Resources, source servers under the control of a service provider and a class consisting of Bound Client Resources, a plurality of end-user client computers, generating a metadata description of the relation of the subsets to a complete data set and storing said metadata description on a Multi-perspective Network Optimizer coordination server, including the addresses for retrieval of the subsets and an address for the metadata description, providing to an outside application such as a browser or media player or other application running on an end-user client computer that wishes to retrieve the data set, the address for the metadata description, such that, when the address is invoked by the outside application, client software running on the end-user client computer directs the request to the coordination server, which returns the metadata description and a set of recommended addresses for retrieval of subsets of the data set to the requesting client computer, Data subsets are requested by the client computer according to the protocol type of the resource to which the request is made to a plurality of classes of network resources, and retrieving the data subsets to the end-user client computer. The data subsets are re-assembled and transferred to the media player or other application according to the protocol and/or data format required by the receiving media player or other player or other application. Upon request from a media player or other application running on the end-user client computer storing the data sub-sets in persistent storage on the end-user client computer, and upon request from another resource in the network, including another end-user client computer, retrieving and transmitting requested data sub-sets to the requesting resource, including another end-user client computer, according to the protocol of the request.
The invention itself both as to organization and method of operation, as well as additional objects and advantages thereof, will become readily apparent from the following detailed description when read in connection with the accompanying drawings:
The present invention describes a system architecture that allows exploitation of the strengths of both server-centric and client-centric systems without the deficiencies associated with either. As well, it introduces system elements and methods to co-opt network resources that are not part of either server-centric or client-centric systems. It allows optimization of scalability, performance, cost and commercial control and as well allowing a dynamic control over which of the four key variables to emphasize at the expense of others for applications with specific key requirements.
In operation, as shown in
The types of network intelligence gathered are diverse and potentially extremely extensive Bound Service Resources 130, for example, can provide full details of server capabilities and dynamic capacities as well as a cumulative log of all data transfers, the cost of data transfers and their characteristics as well as details of the protocols that the server supports and the encodings and characteristics of the data that it supplies Servers do not need to all service only a common protocol or data encoding.
Bound Client Resources 330 can provide, for example, data concerning clients'"'"' upload and download bandwidth relative to particular servers and clients, firewalls, proxy servers, storage capacity, available stored content, configuration, upload and download logs. Manual Intelligence Data Entry 407 allows for manual entry of intelligence data into the Network Intelligence Repository 405 in cases where useful data cannot be accessed on-line.
Accessible Network Intelligence Servers 221, can provide details of network characteristics that cannot be directly accessed from single servers or clients. For example the Border Gateway Protocol (BGP) is a protocol that describes the peering relationships of Internet Service Providers (ISPs) BGP Servers are accessible to properly formatted network queries. The Network Interface can be configured to query such BGP servers and gather intelligence that is very valuable in optimizing the performance and cost of client data requests. Other accessible network intelligence includes ISP address blocks, geographical address associations, and network bottleneck reporting.
All network intelligence data is passed from the Client Interface 401 and the Network Interface 406 to the Network Intelligence Repository 405 where it is analysed and stored so that it may be retrieved to optimize network clients and servers data transfers when data is requested by a client.
The overall function of the network coordination server Multi-perspective Network Optimizer 400 is to provide the network-wide intelligence and the resources to optimize each separate client'"'"'s data requests.
To request data, a client, for example, Client 331N, communicates its request to Client Interface 401 through Client Request/Intelligence 332N. The request and any associated client intelligence are passed to Network Intelligence Repository 405 through Client Request/Intelligence 402. Network Intelligence Repository 405 retrieves the multiple sources of network intelligence available relative to the request and returns a list of optimal sources and procedures to the client through. Preferred Data Sources/Resources/Protocols 403 to Client Interface 401 where it is passed on to the client, Client 331N through Preferred Data Sources/Resources/Protocols 404N. The data sent from the Network Intelligence Repository 405 is not limited to lists of source addresses and client parameters, but can include, for example, data source addresses, source protocol, content encoding, client optimal configuration, algorithm for handling parallel requests, number of requests per resource, codec for content decoding, etc. Moreover, the resources need not be only passive data, but may include active executable code for codecs, protocol handlers, etc., so that each client is potentially a custom data retrieval program.
Client 331N uses the data, configuration, protocols, algorithms and optionally code to make data requests with the proper protocol formats to the recommended resources via Piece Request 333, Piece Request 334 and Piece Request 335. For clarity, the individual piece requests to different resources Server 101N and Server 101A and Client 331A can each be according to a different protocol and the exact number of resources addressed may vary according to the optimization goal for the particular data and requesting client. Server 101N, Client 331A and Server 101A return data pieces via Server Data Piece 336, Client Data Piece 338 and Server Data Piece 337 to Client 331N.
Client 331N, using the protocol, data encoding and optionally executable code provided by the Preferred Data/Sources/Resources/Protocols 404N communication, extracts the data pieces and assembles them in the proper order and passes the data to the media player or other application.
Even a subset of the network configuration described in
Client 331N, using the protocol, data encoding and optionally executable code provided by the Preferred Data/Sources/Resources/Protocols 404N communication, extracts the data pieces and assembles them in the proper order and passes the data to the media player or other application.
Management Console 410 provides a control point to configure the functions of the Multi-perspective Network Optimizer 400, including configuration of Bound Server Resources 130, setup of Accessible Network Intelligence Servers 221, and loading of any executable code which is loaded on the system. A central function of the Management Console 410 is to configure the Network Intelligence Repository 405 to bias the Preferred Data Sources/Resources/Protocols 403 data to allow the client to make and optimal transfer of the requested data. It may give priority to one of performance, cost, scalability or commercial control according to the agreed class of service and quality of service for the particular resource being distributed. Thus, the range of optimization includes not just optimizing the client for all data transfers, but adjusting the optimization of the client for each separate piece of requested data.
Practitioners skilled in the art will recognize that the network coordination server, Multi-perspective Network Optimizer 400 can be implemented in a number of ways without changing its essential characteristics. It could be implemented as a set of functions within a single server or even incorporated into one of the servers of Bound Service Resources 130. It could be separated into a number of separate physical or logical servers which could optionally be distributed throughout a network. Equally, it will be recognized that communication paths such as, for example, Preferred Data Sources/Protocols 404A, Client Request/Intelligence 332A, have been simplified for clarity of description and might be implemented as more complex sets of messages governed by protocol rules without changing their essential functions and methods.
As well, it will be understood that the representation of Client 331A to 331N is simplified for purposes of description of the invention and may be assumed to be a typical end-user personal computer which includes, a network interface and storage system a CPU, RAM, Display, User-interaction devices such as a keyboard and pointing device, operating system software and, in the case that the network is the internet, web browser software and that the end-user client computer is capable of installing and running application programs Equally, the ends of the invention might be served by embodying the functions of Client 331A to 331N in other types of computing devices with equivalent computing power, RAM, storage and user interaction devices and operating software capable of executing the functions of the invention. Examples of such alternate devices, among many others that will be evident to a practitioner skilled in the art will be television set-top boxes, intelligent entertainment devices, home network routers and switches and storage nodes and so on.
Equally, it will be understood that the representation of Servers 101A to 101N is simplified for purposes of description of the invention and may be assumed to be typical network server computers which include, a network interface, a CPU, RAM, Storage System, operating system software and, in the case that the network is the internet, protocol server software and commerce software adequate to support the described processes. Equally, the ends of the invention might be served by embodying the functions of Servers 101A to 101N in other types of computing devices with equivalent computing power, RAM, storage and user interaction devices and operating software capable of executing the functions of the invention. Examples of such alternate devices, among many others that will be evident to a practitioner skilled in the art will be network server appliances, routers and switches, storage systems and so on.
The data distributed in the described embodiments may be any digital data, including for example, executable application programs, utilities or operating software, source code, interpreted codes and byte-codes that execute via a virtual machine, add-on functions or data for any form of program, and data for execution on any program whether in a standardized or proprietary form, including, for example, music and/or audio data, digital photography data, graphics data and 3D model data, video and/or motion picture data, multi-media content.
Besides access control for publishing, Publishing 409 may perform other publishing-related functions, for example dividing the data into pieces for distributed parallel transmission, scanning the data for security risks such as viruses and creating the descriptive metadata which will be transmitted along with the data.
Although the contractual relationship on which publishing authentication is based may be established by separate, non-automated methods, Publishing 409 may contain interactive functions whereby a prospective publisher may establish a contractual agreement for network data distribution online. While a commercial contractual relationship may typically imply that the publishing customer would pay for data distribution services, this invention envisages a broader sense of contractual relationship that includes free distribution services, supported by advertising revenues and which may include key issues of responsibility for legal requirements of copyright and meeting legal constraints on abusive or obscene content so that the network provider is not exposed to legal risks relating to data content.
As well as allowing publication of data into the network, Publishing 409 provides functions to allow the publisher to unpublish data, that is, to prevent users from accessing the data. Such a function is essential to publishers'"'"' commercial control of their intellectual property, or simply to allow control over versions of the data. It is a function that is significantly absent from client-centric systems that have no centralized point from which to control of the network.
Costing/Payment 408 is a function that allows further optimization of commercial control over the network It extracts cost and related service data from the various categories of network resources Bound Service Resources 130, Bound Client Resources 330 and Unbound Network Resources 220, which are communicated to the network coordination server Multi-perspective Network Optimizer 400 via the respective network intelligence messages Server Status/Configuration/Logs/Upload 408, Client Request/Intelligence 332A to 332N, Unbound Network Intelligence 222 and Unbound Server Status/Configuration/Logs/Upload 411. The extracted information is stored in Network Intelligence Repository 405.
The cost and related service information is used for two primary purposes. The first function is to optimize network transfers for different classes of service and quality of service. In previous network architectures, the classes and quality of service have been relatively fixed in that all data transmissions use the same resources in the network This invention allows data distributors to establish different classes and qualities of service and then optimize the network to provide a cost and performance appropriate to each class and quality of service. For instance, a data service that offers real time streaming of High Definition cinema is substantially more demanding than overnight file delivery of standard television resolution video. The costs associated with the various resources of the overall network vary over a wide range as do the transmission characteristics associated with each resource. For example, Bound Service Resources 130 have a relatively high cost and potentially a high quality of service if the loads are kept below peak capacity of the servers. Bound Client Resources 330 have a low relative cost and, individually, a low quality of service, which may, however, be mitigated by mobilization of large numbers of clients in parallel. Unbound Network Resources 220 vary widely in both cost and quality of service. Gathering cost and performance data for all resources allows optimization for each desired class and quality of service delivered to a customer to either achieve the desired quality of service at the lowest price, or alternatively, to achieve the greatest profit margin to the network for a fixed price.
The second function of the Costing/Payment 408 subsystem is to keep track of the actual classes and qualities of service and aggregate services performed by the network so that clients may be billed on the basis of service delivered. The other side of billing for service is paying for the constituents of the services rendered. It is clear that the network operator must pay directly for the costs of the Bound Service Resources 130 and the Multi-perspective Network Optimizer 400. What is not so clear is that from a multi-perspective viewpoint, the same costs may be perceived differently depending on from which role or position in the network one looks. For example, the cost of client upload bandwidth from the client'"'"'s perspective may be essentially zero if we assume that the client pays a monthly fixed charge, so that not using bandwidth already paid for generates no savings and using it generates no extra cost. However, from the ISP'"'"'s viewpoint, using the paid-for but latent bandwidth generates extra costs. The costs may be minimal if the data traffic stays within the ISP'"'"'s network, or substantial if the traffic passes outside the ISP'"'"'s network. The true cost of bandwidth is usually multi-perspective. This invention allows the assignment of cost to all network transfers in order to implement the ultimate commercial control where all suppliers of bandwidth, including ISPs and end-user clients are compensated for their contribution with a payment system that parallels the billing for services delivered to the data distributor customer. Management Console 410 and Manual Intelligence Data Entry 407 are the functional units that allow setting of cost against class and quality of service and distributing payment credits to the various suppliers of network resources.
As in other embodiments of the invention, one or more network coordination servers represented by Multi-perspective Network Optimizer 400 consolidates network information about the locations, characteristics and encodings of data on resources throughout the network, Resources 500, which consists of Server Sources 501, Client Sources 502 and Unbound Network Sources 503. A data transfer is initiated by a Client 331A requesting data from the network through Client Request/Intelligence 332A to Client Interface 401 and passed on by Client Request/Intelligence 402 to Network Intelligence Repository 405, which as well as details of the locations and characteristics of all data in the network contains details of the permissions allowed to clients and encryption key information generated by DRM 420. Network Intelligence Repository 405 replies to the data request with Preferred Data Sources/Protocols 403 and DRM Key Exchange 421 to Client Interface 401 which passes the information on to Client 331A as Preferred Data Sources/Protocols 404A and DRM Key Exchange 422 passed to Encryption/Decryption 508. Client 331A requests the data pieces from the network resources as designated by Preferred Data Sources/Protocols 404 with Piece Requests 511, 512 and 513. The requested pieces are transmitted to Client 331A as Server Pieces 514, Client Pieces 515 and Unbound Pieces 516 where they are placed into a receiving RAM buffer Receipt Order 504, one of the pieces being Metadata 521 which is an index of the order of the data pieces encrypted with the request key. The order of the data is not important at this time. The data is passed to Encryption/Decryption 508 where one of two order transformations is performed. The first is Output Order 505 which transforms the data into its natural order for display output Display Output 509. The second is to another scrambled order, Storage Order 507 governed by a local encryption key which generates an Encrypted Local Index 522, this data is then written to disk. The data from disk may be returned to natural Display Output 509 for redisplay However, this natural order cannot be copied since it is only passed to the display system Copying the Storage Order 507 to another client computer will not allow access unless a local encryption key is provided by the DRM system.
One other access to Storage Order 507 is required. Client 331A may be requested by another client to respond to piece requests similar to Piece Requests 512 to Client Sources 502. Such requests are retrieved from Storage Order 507 through Encryption/Decryption 508 decoding of Encrypted Local Index 522 and output through Output Order 505 not in natural display order, but in the arbitrary order imposed on the Piece Requests by the DRM encryption system Piece Request Output 510.
It will be clear to a skilled practitioner that such an arrangement is not totally secure The actual content data is not hard encrypted, but is transformed into arbitrary order of parts. The data probably could be reordered by brute force analysis, but the process would be complex and hard to generalize to different data instances. The described embodiment is useful in that it places a barrier before the average user that prevents simple copying and forces the skilled transgressor into means which are clearly illegal, which simplifies the process of enforcing the rights holders rights through legal as opposed to technical channels and contributes to commercial control of the network.
It will be noted that ISP Proxy Server 214 is not addressed in this embodiment This is because the ISP Proxy Server 214 is one of a special class of unbound network resource that provides a service to users of a network, but is largely invisible to those users and cannot be directly accessed and co-opted as a data resource by the Multi-perspective Network Optimizer 400 through the Network Interface 406. This is an important class of unbound network resources and will be dealt with separately in
In this embodiment, the network coordination server, Multi-perspective Network Optimizer 400 first arranges the storage of all or part of the data that is to be distributed on the target resource, for example FTP Server 211, using the native protocol and data encoding, if any, of the server. Often manual intervention may be required, which will be achieved through Management Console 410, Manual Intelligence Data Entry 407 and Publishing 409. For example, it may be required to set up access and authentication passwords. All the details of the resource are stored on Network Intelligence Repository 405 including, for example capacities and costs. While there are many freely accessible resources available on the internet, there is no barrier to using the same setup procedures to create service accounts on resources that offer service for payment, with the corollary that Multi-perspective Network Optimizer 400 will only encourage use of such resources when the service agreement with a data distributor customer is able to absorb the cost.
After a resource is recruited into the overall distribution network, if Client 331A makes a data request for a data resource stored in part or whole on that resource through Client Request Intelligence 332A and subsequently Client Request Intelligence 402, Network Intelligence Repository 405 may include that resource in Preferred Data Sources/Protocols 403 and 404A as long as the cost, performance and other optimization parameters set through Management Console 410 suggest that it is an appropriate resource for the class of service and quality of service associated with the data resource. In
As the data pieces are delivered to Client 331A, each piece must be received in the protocol of the sending resource, the data payload extracted, possibly transformed into another encoding and the pieces reassembled in the order of the requested file or stream and then communicated to the application(s) which will interpret, display or further process the data. Clearly, this requires a polymorphic adaptable client that can interleave transactions in multiple protocols and data encodings. Thus, it is a function of this invention that Clients 331A to 331N be able to be configured or updated in response to Preferred Data Sources/Protocols 404A to 404N instructions and that optionally such instructions even include executable code modules for protocols or codecs or data encryption/decryption or other processing functions so that they may request and consume or supply data in any format that the network coordination server Multi-perspective Network Optimizer 400 supports Such polymorphism assures that any accessible resource in the network can be mobilized to provide a service that is optimal in regard to cost, performance, scalability and commercial control in ways that are inaccessible to single perspective network architectures relying solely on bound resources of a single class.
This is the primary reason that proxy servers are deployed extensively by ISPs If the same data is retrieved repeatedly by many of the ISPs customers, use of a proxy allows the ISP to provide a higher quality of service to more customers for less cost. Data served from the proxy cache is typically of higher quality of service than data from the original source because it is “closer” to the customer with fewer intervening nodes to traverse from the proxy than from the original source. It is less costly to the ISP because the ISP need not pay internetwork transit charges for data delivered to its customers from a proxy inside its own network, whereas multiple transfers of large data from outside sources generate significant charges.
This is a root reason that extensive P2P data traffic is seen as negative by ISPs. It raises their internetwork transit costs by transferring data between clients inside and outside their network.
Notionally, proxy caches could be used for data traffic on any protocol. However, historically, ISPs have only implemented proxy caches for well-understood standard protocols that represent the majority of their traffic In practice, that means that the only widely deployed proxy caches in ISP networks are HTTP proxy servers, represented in
In the practice of this invention, to co-opt ISP HTTP Proxy Servers 214 requires coordination of a number of resources that the network coordination server Multi-perspective Network Optimizer 400 controls, in order to harvest high performance and low cost bandwidth from the proxy server which it does not directly control. In this case there is no overt setup and upload of data to the resource Instead, requests from Bound Client Resources 330 for data pieces on the servers and clients in both Bound Service Resources 130 and Bound Client Resources 330 must be made to meet strict rules for content cacheability. And the data pieces returned from the source resources to the proxy server must be configured to meet the criteria that the proxy uses to decide if content is suitable for caching.
However, simply requesting the data with a valid HTTP command is not adequate to ensure cacheability. There are a numerous valid HTTP requests which will produce responses that will not be retained in the ISP proxy cache.
HTTP contains a number of directives that prevent an HTTP response from being cached:
- no-cache: The cache cannot serve a cached response without revalidating with the origin server
- no-store: The cache must not cache the response for servicing subsequent requests. The cache must make every effort to remove the response from both volatile and permanent storage.
- private: will prevent all caching in public caches
- max-age=0, s-maxage=0. This will force an immediate revalidation of the HTTP response for every subsequent request.
- HTTP/1.0 used a “Pragma: no-cache” header directive to prevent caching of HTTP/1.0 requests/responses. HTTP/1.1 must treat this header the same way as it treats “Cache-Control: no-cache”.
- If the cache contains no validator (such as a Date or ETag header), or does not provide and expiry time (Expires header), then it should not be cached. However, it is acknowledged that some caches violate this rule It would probably be safe to assume that professional cache products will conform to this rule.
Additionally, HTTP Proxy Cache Servers implement rules outside the basic HTTP directives that block cacheing for various reasons. For example, caches will attempt to detect application-server activity by looking for specific strings on a request URI in order to disallow caching of a response that is programmatically generated. This is done because the data returned by such requests is typically different for each request and hence cacheing and returning the same data is counterproductive. As well, a number of security problems may ensue from cacheing such data. The common Squid proxy, for example, is packaged with a default to not cache any responses to requests containing “cgi-bin” or “?”. More modern caches would additionally look for “cgi”, “php”, “pl”, “asp”, “jsp”, “py” and other scripting language extensions that would indicate a dynamic response generation mechanism.
Some P2P systems use HTTP as a convenient transport protocol, but cannot take advantage of ISP proxy caches because of one or more classes of either missing or malformed directives or extra disallowed content in the HTTP request.
This embodiment of the current invention introduces a number of methods to recruiting ISP proxy caches as resources in a data distribution network:
- 1. The first and simplest approach is to create HTTP requests from the client that as well as implementing all of the proper HTTP cacheability directives, do not contain any extra application server or dynamic content typical characters that might trigger anti-cacheing rules in the ISP Proxy Servers 214. The request could simply address the resource by its IP address followed by a path to the data, for example:
- GET http://192.168.1.1/content/part
- This would work adequately in systems that exploited only one source for the data, but in a distributed system making parallel requests to a large number of sources it would be ineffective because, although the ISP proxy server would cache the content, it would only give the content back to a client requesting the exact same resource address, which defeats the purpose of making diverse parallel requests in the first place. Ideally, we want the data to stay in the cache and to be returned to any requesting client no matter where they think the data source is.
- 2. This deficiency in directly addressing the host resource can be remedied by changing the resource software so that it behaves in a non-standard way to HTTP requests.
- A P2P system that wanted to take advantage of caching would simply need to fix the host IP address in its HTTP requests so that any cache receiving or intercepting the request would be directed at a specified server with all the content. However, other nodes in the P2P system would ignore the host information encoded in the HTTP request. The request URI could look like:
- GET http://192.168.99.99/content/piece
- If this request is sent to a cache, it would connect to the server at 192.168.99.99. However, if the request message is sent to a client with the special client rules software present on either end of the link, it can ignore the host resource information One P2P client (client 1) could connect to another P2P client (client 2) on an IP address like 10.1.2.3, and send the above URI, and the other client would simply ignore the server IP address and return the requested data ignoring the host field.
- If an interception cache was present, or the request was sent to an explicit cache, the cache, lacking the code directives to ignore the host field, would behave in the correct HTTP protocol fashion and would connect to the source specified by the IP address and retrieve and cache the data. All subsequent requests for that same resource from other clients to the cache will receive cached data.
- The disadvantage of this approach is that a single designated server would have to contain all of the data and service all cache requests.
- 3. The problem of resolving all cache requests to a single address can be remedied by using a DNS name in the request rather than an IP address in the host field of the request URI. This will have the same result as using an IP address, except it allows for more flexibility in that multiple servers in multiple locations could be used to satisfy the proxy requests, resulting in increased scalability. In this case, the request could look like:
- GET http://www.itiva.com/content/piece
- Again, the DNS name of the server is ignored by other clients that contain code directives to not follow standard HTTP rules, however if an ISP proxy, lacking such special code, receives this request, it would resolve the host name www.itiva.com, which would then through DNS return the IP address of a server which would return the requested data.
- 4. A preferred embodiment of the invention further eliminates the problem of associating the requested data with a particular host The disadvantage to the both methods 2. and 3. above is that the designated server(s) would have to contain all the data that is available on the network in order to take advantage of caches. An alternative preferred embodiment that would remedy the concentration of data requests on specifically designated server or servers is to modify the software of the server that is the designated host, in example 2. 192.168.99.99 and example 3 www.itiva.com, so that it is a modification of a standard HTTP server which would parse out the content part of the request, content/piece, and pass that as a request to a resource designated by the Network Intelligence Repository 405. Thus, the designated host would serve as a HTTP load balancer rather than the direct supplier of the content. And the storage and transmission of the content can be decentralized to any appropriate resource known by the Network Intelligence Repository 405.
- 5. Another preferred embodiment achieves the same result. This preferred embodiment assigns a DNS name to the actual data instead of naming the server resource A DNS service in the Client Interface 401 in cooperation with the Network Intelligence Repository 405 can resolve the request to be served by any resource in the network. Thus potential bottlenecks in serving proxy requests are eliminated and the network servers need not contain all or any of the content.
- For example, a request using this method of the invention might take the following form:
- GET http://server.p0.testmovie.itiva.net:25111/64/HTTP/11
- Connection: close
- User-Agent: Qmesh
- Host: server.p0.testmovie.itiva.net:25111
- The response is:
- HTTP/1.1 200 OK
- Connection: close
- Date: Tue, 15 Nov. 2005 08:12:31 GMT
- Server: QMesh Server
- Transfer-Encoding: chunked
- The response will be fully cacheable in any HTTP cache such as ISP Proxy Server'"'"'s 214.
- 1. The first and simplest approach is to create HTTP requests from the client that as well as implementing all of the proper HTTP cacheability directives, do not contain any extra application server or dynamic content typical characters that might trigger anti-cacheing rules in the ISP Proxy Servers 214. The request could simply address the resource by its IP address followed by a path to the data, for example:
The ability to co-opt the resources of ISP proxy servers in the distribution of data and avoiding the necessity of centralizing data on particular servers as described in the various methods of this embodiment of the invention provide substantial benefits in optimizing performance, cost and scalability of data distribution networks. It addresses performance optimization by using high performance infrastructure that is very close to the requesting client. It addresses scalability limitations of P2P architectures by adding high performance bandwidth that makes up in part for the asymmetry of download and upload bandwidth that limits scalability. It addresses cost in two senses First, the proxy bandwidth is essentially free from the perspective of the end user and the data distributor. Second, it actually reduces the cost of the ISP by using the ISP proxy infrastructure to keep data transfers within their networks, avoiding internetworking transfer fees for repeated data transfers. This benefit to the ISP in lowering their cost eliminates the primary motivation that ISPs have to limit the performance of P2P systems, thereby undermining their cost/performance ratios. The provision of a preferred method involving data content naming rather than resource naming enhances the scalability and flexibility of the system.
While the particular embodiments of systems and methods for optimizing the utilization of network infrastructure so as to maximize the performance, scalability and commercial control and to minimize the cost of network data transfers as herein shown and described in detail are fully capable of attaining the above-described objects of the invention, it is to be understood that they are the presently preferred embodiments of the present invention and are thus representative of the subject matter which is broadly contemplated by the present invention, that the scope of the present invention fully encompasses other embodiments which may become obvious to those skilled in the art, and that the scope of the present invention is accordingly to be limited by nothing other than the appended claims, in which reference to an element in the singular is not intended to mean “one and only one” unless explicitly so stated, but rather “one or more”. All structural and functional equivalents to the elements of the above-described preferred embodiments that are known or later come to be known to those of ordinary skill in the art are expressly incorporated herein by reference and are intended to be encompassed by the present claims. Moreover, it is not necessary for a device or method to address each and every problem sought to be solved by the present invention, for it to be encompassed by the present claims. Furthermore, no element, component, or method step in the present disclosure is intended to be dedicated to the public regardless of whether the element, component, or method step is explicitly recited in the claims.