Content fetching by mobile device selected based on battery charge level
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, WebSocket or HTTP Proxy. The client only communicates with a super proxy server that manages the content fetching scheme.
1 . A method by a mobile device that is powered by a rechargeable battery, that is configured to be in idle and non-idle states, and that is housed in a hand-held enclosure or a portable enclosure, the method comprising:
connecting, by the mobile device via a wireless network, to the Internet;
initiating, by the mobile device, a communication via the wireless network with a first server over the Internet, upon connecting to the Internet;
executing or using, by the mobile device, a mobile operating system;
periodically measuring, by the mobile device, a charge level of the battery;
sending, by the mobile device via the wireless network to the first server over the Internet, the measured charge level;
comparing, by the mobile device, the measured charge level with a threshold level;
shifting to the idle state in response to being in the non-idle state and to determining that the measured charge level is above the threshold level;
shifting to the non-idle state in response to being in the idle state and to determining that the measured charge level is below the threshold level;
in the idle state, receiving, by the mobile device via the wireless network from a second server over the Internet, a request for content;
obtaining, by the mobile device, the content in response to the receiving of the request; and
sending, by the mobile device via the wireless network to the second server over the Internet, the obtained content,
wherein the measuring comprises measuring or estimating battery State of Health (SoH), total voltage, voltages of one or more individual cells, minimum and maximum cell voltage, voltage of periodic taps, temperature, average temperature, coolant intake temperature, coolant output temperature, or temperatures of one or more individual cells.
2 . The method according to claim 1 , wherein established connection comprises, is based on, or uses, HTTP persistent connection.
3 . The method according to claim 1 , wherein the request comprises HyperText Transfer Protocol (HTTP) request or HTTP Secure (HTTPS) request.
4 . The method according to claim 1 , wherein the mobile device is addressable in the Internet by a first IP address, and wherein the initiating comprises sending, by the mobile device to the first server, the first IP address.
5 . The method according to claim 1 , wherein any communication over the Internet by the mobile device with the first or second server, uses, or is compatible with, HTTP Proxy protocol or connection, wherein the first or second server serves as an HTTP Proxy server and the mobile device serves as an HTTP Proxy client.
6 . The method according to claim 1 , wherein the measuring uses a Battery Management System (BMS).
7 . The method according to claim 1 , wherein the threshold level is above 40%, 50%, 60%, 70%, 80%, or 90% of a battery full charge capacity defined as 100%.
8 . The method according to claim 1 , wherein the mobile device is part of, or comprises, a vehicular device, or is amounted in a vehicle.
9 . The method according to claim 1 , wherein the mobile device comprises, is part of, or 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 or digital camcorder), a Personal Digital Assistant (PDA), a cellular telephone, a digital camera, or a video recorder.
10 . The method according to claim 1 , wherein the mobile device comprises, is part of, or is integrated with, a smartphone.
11 . The method according to claim 1 , wherein the wireless network comprises, or consists of, a Wireless Personal Area Network (WPAN).
12 . The method according to claim 1 , wherein at least part of steps are included in a Software Development Kit (SDK) that is provided as a non-transitory computer readable medium containing computer instructions, and wherein the method further comprising installing the SDK.
13 . The method according to claim 1 , further comprising sending, by the mobile device to the first server, a message that is responsive to, or comprises, the mobile device state.
14 . The method according to claim 1 , further comprising sending, by the mobile device to the first server, a message responsive to the shifting to the idle state.
15 . The method according to claim 1 , further comprising sending, by the mobile device to the first server, a message responsive to shifting to the non-idle state.
16 . The method according to claim 1 , wherein the measuring is at least every 10 milliseconds, 20 milliseconds, 30 milliseconds, 50 milliseconds, 100 milliseconds, 1 second, 2 seconds, 3 seconds, 5 seconds, 10 seconds, 20 seconds, 30 seconds, 50 seconds, or 100 seconds, 1 minute, 2 minutes, 3 minutes, 5 minutes, or 10 minutes.
17 . The method according to claim 1 , wherein the content comprises, a part or whole of a computer file, audio data, voice data, multimedia data, video data, image data, music data, or a computer program.
18 . The method according to claim 1 , wherein the battery comprises a smart battery that includes plus and minus terminals, and a communication interface.
19 . The method according to claim 1 , further comprising establishing a connection between the mobile device and the first server in response to the initiating, and wherein the sending of the measured level by the mobile device to a first server is over the established connection.
20 . The method according to claim 19 , wherein the established connection comprises a TCP connection that uses an ‘Active OPEN’, ‘Passive OPEN’, or TCP keepalive mechanism.
21 . The method according to claim 19 , wherein the established connection uses, or is based on, Virtual Private Network (VPN).
22 . The method according to claim 1 , wherein the content is identified by a content identifier, and wherein the request comprises the content identifier.
23 . The method according to claim 22 , wherein the content is stored in a web server, and wherein the obtaining of the content comprises obtaining the content from the web server.
24 . The method according to claim 23 , wherein the obtaining comprises: sending, by the mobile device to the web server over the Internet, the content identifier; and
receiving, by the mobile device from the web server over the Internet, in response to the sending of the content identifier, the content.
25 . The method according to claim 23 , wherein the content comprises a web page or a web-site, wherein the content identifier comprises an Uniform Resource Identifier (URI) or a Uniform Resource Locator (URL).
26 . The method according to claim 1 , wherein the receiving of the request comprises receiving of a content identifier from the second server.
27 . The method according to claim 26 , wherein the sending of the content comprises sending the content to the second server.
28 . The method according to claim 1 , wherein the initiating uses, or is based on, a Network Address Translator (NAT) traversal scheme.
29 . The method according to claim 28 , wherein the NAT traversal scheme is according to, based on, or uses, Internet Engineering Task Force (IETF) Request for Comments (RFC) 2663, IETF RFC 3715, IETF RFC 3947, IETF RFC 5128, IETF RFC 5245, IETF RFC 5389, or IETF RFC 7350.
30 . The method according to claim 28 , wherein the NAT traversal scheme is according to, based on, or uses, Traversal Using Relays around NAT (TURN), Socket Secure (SOCKS), NAT ‘hole punching’, Session Traversal Utilities for NAT (STUN), Interactive Connectivity Establishment, (ICE), UPnP Internet Gateway Device Protocol (IGDP), or Application-Level Gateway (ALG).
31 . The method according to claim 1 , wherein any communication over the Internet by the mobile device with the first or second server, uses, or is compatible with, Transmission Control Protocol over Internet Protocol (TCP/IP) protocol or connection.
32 . The method according to claim 31 , wherein any communication over the Internet by the mobile device with the first or second server, uses, or is compatible with, HTTP or HTTPS protocol or connection.
33 . The method according to claim 1 , wherein any communication over the Internet by the mobile device with the first or second server, uses, or is compatible with, a Socket Secure (SOCKS) protocol or connection, wherein the respective first or second server serves as a SOCKS server and the mobile device serves as a SOCKS client.
34 . The method according to claim 33 , wherein the SOCKS protocol or connection is according to, based on, or is compatible with, SOCKS4, SOCKS4a, or SOCKS5.
35 . The method according to claim 33 , wherein the SOCKS protocol or connection is according to, based on, or is compatible with, IETF RFC 1928, IETF RFC 1929, IETF RFC 1961, or IETF RFC 3089.
36 . The method according to claim 1 , wherein the sending of the measured charge level is in response to the comparing.
37 . The method according to claim 36 , wherein the sending of the measured charge level is in response to the measured charge level being below the threshold level.
38 . The method according to claim 1 , wherein the wireless network comprises a Wireless Wide Area Network (WWAN).
39 . The method according to claim 38 , wherein the WWAN is a wireless broadband network.
40 . The method according to claim 39 , wherein the wireless network comprises, or consists of, a WiMAX network, and the WiMAX network is according to, compatible with, or based on, IEEE 802.16-2009 standard.
41 . The method according to claim 1 , wherein the wireless network comprises, or consists of, a cellular telephone network.
42 . The method according to claim 41 , wherein the cellular telephone network comprises a Third Generation (3G) network that uses a protocol selected from the group consisting of UMTS W-CDMA, UMTS HSPA, UMTS TDD, CDMA2000 1×RTT, CDMA2000 EV-DO, and GSM EDGE-Evolution, or wherein the cellular telephone network comprises a Fourth Generation (4G) network that uses HSPA+, Mobile WiMAX, LTE, LTE-Advanced, MBWA, or is based on IEEE 802.20-2008 standard.
43 . The method according to claim 1 , wherein the wireless network comprises, or consists of, a Wireless Local Area Network (WLAN).
44 . The method according to claim 43 , wherein the WLAN is according to, compatible with, IEEE 802.11-2012, IEEE 802.11a, IEEE 802.11b, IEEE 802.11g, IEEE 802.11n, or IEEE 802.11ac standard.
45 . The method according to claim 1 , further comprising storing, operating, or using, by the mobile device, a web browser.
46 . The method according to claim 45 , wherein the web browser is a mobile web browser.