EP-4742622-A2 - SYSTEM AND METHOD FOR IMPROVING CONTENT FETCHING BY SELECTING TUNNEL DEVICES
Abstract
A method for fetching a content from a web server to a client device is disclosed, using tunnel devices serving as intermediate devices. The tunnel device is selected based on an attribute, such as IP Geolocation. A tunnel bank server stores a list of available tunnels that may be used, associated with values of various attribute types. The tunnel devices initiate communication with the tunnel bank server, and stays connected to it, for allowing a communication session initiated by the tunnel bank server. Upon receiving a request from a client to a content and for specific attribute types and values, a tunnel is selected by the tunnel bank server, and is used as a tunnel for retrieving the required content from the web server, using standard protocol such as SOCKS, Web Socket or HTTP Proxy. The client only communicates with a super proxy server that manages the content fetching scheme.
Inventors
- SHRIBMAN, DERRY
- VILENSKI, OFER
Assignees
- BRIGHT DATA LTD.
Dates
- Publication Date
- 20260513
- Application Date
- 20180816
Claims (20)
- A computer program product comprising instructions to cause a device, that comprises a sensor (18) for sensing a physical phenomenon, to obtain over the Internet (113), using a wireless network (14) and a resource, a content that comprises a web-page or a part thereof, that is identified by a Uniform Resource Locator, URL, and that is stored in a web server (22b), the instructions further cause the device to be in an idle state or in a non-idle state, wherein in the idle state the device is operative to serve an intermediate device between the web server and a server device, and wherein in the non-idle state the device is not operative to serve an intermediate device between the web server and a server device, and the instructions further cause the device to execute the steps of: establishing (173, 223), by the device, a connection with the server device, in response to a detecting of connecting via the wireless network to the Internet; producing, by the sensor, sensor data in response to the physical phenomenon; sending, by an antenna via the wireless network over the Internet, the sensor data; executing, a web browser application (931c); shifting (315d), from the non-idle state to the idle state; sending (314b), to the server device over the established connection, a message indicative of the shifting to the idle state; while in the idle state, receiving (221, 224), via the wireless network from the Internet, the URL; sending (175), via the wireless network over the Internet to the web server, a HyperText Transfer Protocol, HTTP, request that comprises the received URL; receiving (176), via the wireless network over the Internet from the web server, the content, in response to the sent HTTP request; and sending (225), via the wireless network over the Internet, the received content, wherein the device is, in part or entirely, integrated in, or comprises, a consumer operated device.
- A computer-readable medium having stored thereon the computer program of claim 1.
- The computer program product of claim 1, wherein the program is provided as a Software Development Kit, SDK.
- The computer program product of claim 1, further comprising instructions to cause the device to further execute the steps of: estimating (327a), a utilization level value of the resource; and shifting (315d), from the non-idle state to the idle state in response to the estimating of the utilization level value of the resource being under a threshold.
- The computer program product of claim 4, wherein the sensor is coupled to, or part of, the resource, and wherein the estimating uses, or is based on, the sensor data.
- The computer program product of claim 1, wherein the wireless network comprises a Wireless Local Area Network, WLAN, that is according to, compatible with, or is based on, a IEEE 802.11-2012, IEEE 802.11a, IEEE 802.11b, IEEE 802.11g, IEEE 802.11n, or IEEE 802.11ac standard.
- The computer program product of claim 1, wherein the wireless network comprises a cellular telephone network that is a Third Generation, 3G, network that uses a protocol selected from the group consisting of UMTS W-CDMA, UMTS HSPA, UMTS TDD, CDMA2000 1xRTT, CDMA2000 EV-DO, and GSM EDGE-Evolution, or wherein the cellular telephone network uses a protocol selected from the group consisting of a Fourth Generation, 4G, network that uses HSPA+, Mobile WiMAX, LTE, LTE-Advanced, MBWA, or is based on IEEE 802.20-2008.
- The computer program product of claim 1, wherein the wireless network comprises a Wireless Personal Area Network, WPAN, that is according to, compatible with, or based on, Bluetooth ™ , Bluetooth Low Energy, BLE, or IEEE 802.15.1-2005 standards, or wherein the WPAN is a wireless control network that is according to, or based on, Zigbee ™ , IEEE 802.15.4-2003, or Z-Wave ™ standards.
- The computer program product of claim 1, wherein the web browser comprises, or is based on, Microsoft Internet Explorer, Google Chrome, Opera ™ , or Mozilla Firefox ® .
- The computer program product of claim 1, wherein the web browser comprises, or is based on, a mobile web browser that comprises, or is based on, Safari, Opera Mini ™ , or Android web browser.
- The computer program product of claim 1, wherein the sending of the received content comprises sending (131e) of the received content to the server device.
- The computer program product of claim 1, wherein the sending of the received content comprises sending (194) of the received content to an additional server that is different from the server device.
- The computer program product of claim 1, further comprising instructions to cause the device to further execute the steps of: responsive to being in the non-idle states, determining, if an idling condition is met; responsive to the determination that the idling condition is met, shifting to the idle state; responsive to being in the idle state, determining if an idling condition is met; and responsive to the determination that the idling condition is not met, shifting to the non-idle states.
- The computer program product of claim 13, further comprising instructions to cause the device to further execute the steps of: sending, via the wireless network over the Internet to the server device, a first status message in response to shifting to the idle state; and sending, via the wireless network over the Internet to the server device, a second status message in response to shifting to the non-idle state.
- The computer program product of claim 1, further comprising instructions to cause the device to further execute the step of storing, operating, or using, an operating system that comprises a mobile operating system that is based on, or comprises, Android version 2.2, Froyo, Android version 2.3, Gingerbread, Android version 4.0, Ice Cream Sandwich, Android Version 4.2, Jelly Bean, Android version 4.4, KitKat, Apple iOS version 3, Apple iOS version 4, Apple iOS version 5, Apple iOS version 6, Apple iOS version 7, Microsoft Windows ® Phone version 7, Microsoft Windows ® Phone version 8, Microsoft Windows ® Phone version 9, or Blackberry ® operating system.
- The computer program product of claim 1, wherein the consumer operated device comprises an appliance (41-52), wherein a primary functionality of the appliance is associated with food storage, handling, or preparation, wherein a primary function of the appliance is heating food, wherein the appliance comprises a microwave oven, an electric mixer, a stove, an oven, or an induction cooker, wherein the appliance comprises a refrigerator, a freezer, a food processor, a dishwashers, a food blender, a beverage maker, a coffeemaker, or an iced-tea maker, wherein a primary function of the appliance is associated with environmental control, wherein the appliance consists of, or is part of, an HVAC method, wherein the primary function of the appliance is associated with temperature control, or wherein the appliance is an air conditioner or a heater.
- The computer program product of claim 1, wherein the consumer operated device comprises an appliance (41-52), wherein a primary function of the appliance is associated with cleaning, wherein the primary function is associated with clothes cleaning, wherein the appliance is a washing machine or a clothes dryer, wherein the appliance is a vacuum cleaner, wherein the primary function of the appliance is associated with water control or water heating, wherein the appliance is an answering machine, a telephone set, a television set, a home cinema method, a HiFi method, a CD or DVD player, an electric furnace, a trash compactor, a smoke detector, a light fixture, or a dehumidifier, or wherein the appliance is a battery-operated portable electronic device that is a notebook, a laptop computer, a media player, a cellular phone, a Personal Digital Assistant, PDA, an image processing device, a digital camera, a video recorder, or a handheld computing device.
- The computer program product of claim 1, wherein the consumer operated device is housed in a single enclosure that is a hand-held enclosure or a portable enclosure, or wherein the device is integrated with at least one of a notebook computer, a laptop computer, a media player, a Digital Still Camera, DSC, a Digital video Camera, DVC, digital camcorder, a Personal Digital Assistant, PDA, a cellular telephone, a digital camera, a video recorder, or a smartphone.
- The computer program product of claim 1, wherein the HTTP request comprises a HTTP Secure, HTTPS, request, or wherein a communication over the Internet by the device, is based on, uses, or is compatible with, Transmission Control Protocol over Internet Protocol, TCP/IP, protocol or connection.
- The computer program product of claim 1, wherein the consumer operated device comprises, or is part of, a cellular phone or a smartphone, or wherein the consumer operated device comprises, or is part of, a video game console.
Description
RELATED APPLICATION This patent application claims priority from U.S. Provisional Application Ser. No. 62/550,834, which was filed on August 28, 2017, from U.S. Provisional Application Ser. No. 62/563,157, which was filed on September 26, 2017, from U.S. Provisional Application Ser. No. 62/624,208, which was filed on January 31, 2018, and from U.S. Provisional Application Ser. No. 62/684,211, which was filed on June 13, 2018. TECHNICAL FIELD This disclosure relates to a method for improving communication over the Internet by using intermediate nodes, and in particular, for fetching content from a web server using tunnel devices as intermediate nodes, which are selected based on criteria, such as an attribute type and related value, BACKGROUND Unless otherwise indicated herein, the materials described in this section are not prior art to the claims in this application and are not admitted to be prior art by inclusion in this section. FIG. 1 shows a block diagram that illustrates a system 10 including a computer system 11 and an associated Internet 113 connection. Such configuration is typically used for computers (hosts) connected to the Internet 113 and executing a server or a client (or a combination) software. The system 11 may be used as a portable electronic device such as a notebook / laptop computer, a media player (e.g., MP3 based or video player), a desktop computer, a laptop computer, a cellular phone, a Personal Digital Assistant (PDA), an image processing device (e.g., a digital camera or video recorder), and / or any other handheld or fixed location computing devices, or a combination of any of these devices. Note that while FIG. 1 illustrates various components of a computer system, it is not intended to represent any particular architecture or manner of interconnecting the components; as such details are not germane. It will also be appreciated that network computers, handheld computers, cell phones and other data processing systems which have fewer components or perhaps more components may also be used. The computer system of FIG. 1 may, for example, be an Apple Macintosh computer or Power Book, or an IBM compatible PC. The computer system 11 includes a bus 13, an interconnect, or other communication mechanism for communicating information, and the processor 27, commonly in the form of an integrated circuit, coupled to the bus 13 for processing information and for executing the computer executable instructions. Computer system 11 also includes a main memory 25a, such as a Random Access Memory (RAM) or other dynamic storage device, coupled to bus 13 for storing information and instructions to be executed by the processor 27. Main memory 25a also may be used for storing temporary variables or other intermediate information during execution of instructions to be executed by processor 27. The computer system 11 further includes a Read Only Memory (ROM) 25b (or other non-volatile memory) or other static storage device coupled to the bus 13 for storing static information and instructions for the processor 27. A storage device 25c, such as a magnetic disk or optical disk, a hard disk drive (HDD) for reading from and writing to a hard disk, a magnetic disk drive for reading from and writing to a magnetic disk, and/or an optical disk drive (such as DVD) for reading from and writing to a removable optical disk, is coupled to bus 13 for storing information and instructions. The hard disk drive, magnetic disk drive, and optical disk drive may be connected to the system bus by a hard disk drive interface, a magnetic disk drive interface, and an optical disk drive interface, respectively. The drives and their associated computer-readable media provide non-volatile storage of computer readable instructions, data structures, program modules and other data for the general purpose computing devices. Typically, the computer system 11 includes an Operating System (OS) stored in a non-volatile storage for managing the computer resources and provides the applications and programs with an access to the computer resources and interfaces. An operating system commonly processes system data and user input, and responds by allocating and managing tasks and internal system resources, such as controlling and allocating memory, prioritizing system requests, controlling input and output devices, facilitating networking and managing files. Non-limiting examples of operating systems are Microsoft Windows, Mac OS X, and Linux. The term "processor" is used herein to include, but not limited to, any integrated circuit or other electronic device (or collection of devices) capable of performing an operation on at least one instruction, including, without limitation, Reduced Instruction Set Core (RISC) processors, CISC microprocessors, Microcontroller Units (MCUs), CISC-based Central Processing Units (CPUs), and Digital Signal Processors (DSPs). The hardware of such devices may be integrated onto a single substrate (e.g., silicon "