This disclosure relates generally to content distribution, and, more particularly, to methods and system to cache content on a vehicle.
In recent years, vehicles such as commercial airliners have been adding network access for voice and data communications during transit. These communication links to the vehicle have been either links to satellite connections or links to wireless ground-based towers. These communication links have limited bandwidth and are able to transfer only a limited amount of data, voice, and/or multimedia content to the vehicle. Moreover, the limited bandwidth available via these communications links must be split between uploading and downloading data. The limited bandwidth issue is further exacerbated for vehicles such as aircraft with a large numbers of passengers vying for use of the same communication links.
Previously, the limited bandwidth of communication links to aircraft has not been an issue because the Federal Communications Commission (“FCC”) prevented users from operating wireless devices on aircraft due to concern that the wireless device may interfere with aircraft instruments. However, after extensive testing, the FCC has determined that some wireless devices do not interfere with the aircraft instruments. Accordingly, the FCC has started to approve use of wireless devices aboard aircraft for in-flight use. One approved device is a wireless network interface card that connects, for example, computers to wireless networks with wireless fidelity (“WiFi”).
As described above, network bandwidth to and from a vehicle during transit is extremely limited, especially when considering the number of passengers a vehicle can carry and the passengers' attendant desire for bandwidth. As explained below, a method and system of caching content on a vehicle is described herein.
In the following examples, methods and apparatus to cache content on a vehicle are disclosed. Although the following focuses on an example of caching content on an aircraft, such as a commercial passenger airplane, the description is not limited to use with aircraft. On the contrary, the disclosure extends to all environments of use in which caching content for consumption during transit is useful. For example, the teachings of this disclosure can be adjusted to cars, trains, watercraft (e.g., cruise ships), military vehicles, buses, and/or any other type of vehicles.
To identify content of interest to a passenger, a content identifier 14 is further provided in the example system 10. The content identifier 14 receives passenger identification information from the passenger identifier 12 and, based on that passenger identification, may locate a passenger's profile in a data source 15. The data source 15 may be of any type of relevant data source, for example, a proprietary database that includes each passenger's content request history. The content identifier 14 may then evaluate each passenger's content request history to identify particular content of interest to at least one passenger. The content of interest to passengers may include both public and private information. In other words, the content of interest may be of interest to all passengers or it may be of interest to a particular passenger. For example, the content of interest may be a movie, it may be a specific passenger's email, or it may be a specific website such as www.gizmodo.com. The data source 15 may include a plurality of sources that may be aggregated for the passenger's content requests. For example, a first data source may be an account associated with the AT&T Yahoo!™ web portal and a second data source may be an account associated with AT&T Cingular™ mobile network.
To transmit the content of interest from an example system 10 to the vehicle, a transceiver 16 may be included. The transceiver 16 may be any type of communications device capable of delivering content to and receiving content from the vehicle. For example, the transceiver 16 may be an 802.11 wireless network, a WiMax base station, a cellular base station (e.g. EV-DO, EDGE/HSDPA, etc.), a satellite, a local Ethernet network link, or any other system using wired or wireless transmission. As illustrated in the example of
For the purpose of prioritizing content for presentation to the passengers, the example system 10 may evaluate additional information in a passenger's historical information. In the example of
The content identifier 14 may also include a content ranker 22 to rank the content of interest based on the evaluation of the passengers' historical data (which, as described above, is found in a passenger profile in the data source 15). For instance, the content identifier 14 may find that one exemplary passenger only requests content when the travel time is greater than two hours, and, therefore, during a trip that lasts one hour, the content identifier 14 will rank that passenger's content requests low because the passenger is unlikely to access that content. In another example, the content identifier 14 may identify patterns of content request. For example, the content identifier 14 may determine that a passenger checks the stock market performance at specific intervals during the day. If one such time period occurs while the vehicle is in transit, the content identifier 14 may rank the passenger's content request for the content high because the passenger is more likely to access the content.
In the example of
In addition to the content of interest, the content identifier 14 may also include baseline content for the passengers. For example, the baseline content may include electronic versions of new sources, movies, television programs, websites, audio programs, games, interactive programs, documents in electronic format (e.g., e-books, PDF versions of print sources, etc), or any other content of interest to the passengers. The baseline content may be associated with a first caching priority and the content of interest identified from passenger profiles may be associated with a second caching priority (e.g., the priority rank is the second caching priority).
In one example, after all content has been identified in the content ranker 22, control proceeds to the content selector 24. The content selector 24, for example, selects the content of interest to cache on the vehicle based on the priority rank (e.g., content with the highest priority score will be selected first). Generally, the example will secure the baseline content of interest for the passengers. While the example transmits updated content to the vehicle, the example will also purge old content and replace it with newer versions of the same content. For instance, the example system 10 may replace an older electronic version of The New York Times with a newer electronic version. The example system 10 may also receive information from the vehicle via the transceiver 16 (e.g., the vehicle may transmit the passenger content request history of the previous flight to the example system 10 for storage in the data source 15).
The external network link 31 may be coupled to a content controller 32 for the purpose of routing network data and caching content. In one example, content is cached in the storage device 33 prior to the departure of the vehicle. For example, content may be cached in a commercial airliner while the vehicle is being prepared for its next trip. To save bandwidth to and from the external network link 31, the cached content is served to passenger devices via the content controller 32. In one example, when a passenger device requests content, the content controller 32 will determine if the requested content is cached in the storage device 33 before requesting content via the external network link 31. For instance, a passenger may request “www.nytimes.com” from his laptop during transit. The content controller 32 receives the request and determines if “www.nytimes.com” is cached in the storage device 33. If “www.nytimes.com” is cached, the content controller 32 retrieves the requested content from the storage device 33 and then serves the requested content to the passenger device. If the storage device 33 has not cached the requested content, the content controller 32 may retrieve the requested content via the external network link 31 and served the requested content to the passenger drive. Alternatively, the content controller 32 may cache the requested content within the storage device 33 retrieved via the external network before serving the requested content to the passenger. Additionally, the content controller 32 may selectively allow access to the cached content and/or the external content via the network link 31. In one example, a passenger may purchase access to the cached content for one price or may purchase access to external content for a second price. In another example, a passenger may be granted access to cached content via the content controller 32 that is supported by advertisements. In other words, the passenger may be presented advertisements while consuming a portion of the cached content.
For the purpose of routing content between devices in the vehicle, the content controller 32 is coupled with an internal network 34. The content controller 32 may selectively route network data between electronic devices in both the internal network 34 and an external network. In other words, the content controller 32 selectively allows access between devices in the internal network 34. In one example, the content controller 32 allows network access to the internal network 34 based on the network credentials, which are determined by the content controller 32. For example, if a passenger using a laptop has not paid for network access, the content controller 32 may prevent the passenger from sending and receiving network data in the internal network 34. However, in the example, if the passenger has paid for access to network services, the content controller 32 may send and receive network requests from the passenger's laptop and route the network request accordingly. As described below,
The passengers may be provided network connectivity by either wireless or wired networking. For example, a wireless network link 35 may be coupled to the internal network 34 to provide network access to passenger devices. In the example of
Access to the internal network 34 may also be provided via direct network connection to the internal network 34. For example, the console 39 is coupled to the internal network 34 via a direct network connection (e.g., an Ethernet connection, etc). Accordingly, a person having ordinary skill in the art will appreciate that network connectivity to any electronic devices in the vehicle may be coupled to the internal network 34 either via wired communication or wireless communication. For example, a passenger using the laptop 36 may connect to the internal network 34 via a direct Ethernet network connection. Alternatively, the same passenger may use the laptop 36 to connect to the internal network via a wireless communication link 35.
In addition, the content controller 32 may support multiple tiers of service. The tiers of service allow for different levels of access to network services and content cached on storage device 33 via the content controller 32. In one example, content controller 32 might have three tiers of service: a first tier offers only basic news and specialized content for the passenger cached in the storage device 33, a second tier offers basic news and access to multimedia (e.g., movies, television programs, video on demand, audio programs, etc) stored in the storage device 33, and a third tier offers access to all cached content in the storage device 33 and network access to the external network. A person having ordinary skill in the art will readily appreciate that the described example is merely illustrative and that any number of services may be configured for the content controller 32. For example, one tier of service may be advertisement supported, which allows passengers free access to content that is presented with advertisements in the content.
To provide updated information to the passengers, the content controller 32 may also support incremental refreshing of cached content. In such an example, the content controller 32 selectively retrieves the content via the external network link 31 at time intervals. Once updated content is retrieved via the external network, the example caches the content in the storage device 33 for access by the passengers. For example, the passengers may be in transit during a popular sporting event and the content controller 32 may refresh selected portions of the content during transit. Depending on the type of content, the content controller 32 may either purge the stale content (e.g., a web page being updated frequently) or may supplement the stale content (e.g., a sporting event which is being downloaded to the vehicle in increments). A person having ordinary skill in the art will readily appreciate example system 10 is exemplary and in addition, any type of content, including multimedia, web pages, or any other type of content, may be incrementally retrieved and cached according to the teachings of the example.
Persons of ordinary skill in the art will readily recognize that methods and apparatus to cache content on a vehicle described herein may be utilized for any distribution facilities implemented using any type(s) and/or any combination(s) of cabling, devices and/or topology. Accordingly, the example system 10 and the vehicle network 30 are merely illustrative examples.
Flowcharts representative of example processes for implementing the example system 10 of
The process 500 of
The unique identifiers extracted at block 503 include, but are not limited to, frequent flyer number, credit card number, email address, passenger name, and/or phone number. Using the unique identifiers extracted at block 503, the example program attempts to identify the passenger by associating the passenger with a passenger profile located in a data source 15, which may be a private data source (block 504). If the passenger is identified at block 504 with at least one of the unique identifiers, the example process 500 associates the passenger profile with the passenger list (block 506).
After the association (block 506) or if no passengers are identified (block 504), the example process 500 determines if there are any more passengers on the passenger list (block 510). If more passengers are in the passenger list (block 510), the next passenger is selected (block 502). Thus, the example process 500 continues a loop that repeats blocks 502 through 510 until all passengers with a passenger profile are associated with their corresponding passenger profile in data source 15. When it is determined that there are no more passengers (block 510), the content identifier 14 is started (block 512).
If the content request is not found in the content list, the example process 600 adds the content request to the content list (block 608). After adding the content request to the content list or if the content request is found in the content list, the example process 600 alters the content's priority score (block 610) based on at least one factor. For example, the example process 600 may alter the priority score based on the passenger's purchase history, data size of the content, popularity of the content, and/or the profit of the content. Persons having ordinary skill in the art will readily appreciate that any number of factors may be used in the computation of the priority score.
After the priority score has been adjusted, the example process 600 determines if the passenger's profile includes additional historical content requests (block 612). If there are additional content requests, the example process 600 returns to block 606. Thus, the example process 600 continues a loop that repeats between block 606 and 612 until all of the passenger's historical content requests have been either added to the list and/or the content's priority score is adjusted. After all of the passenger's content requests have evaluated, the example process 600 determines if there are any more passengers in the passenger list with an associated profile (block 614). If additional passengers have an associated profile (block 614), the example process 600 selects the next passenger with a profile (block 602). Thus, the example process 600 repeats a loop between block 602 and block 614 until all of the passengers with associated profiles have been evaluated for content requests.
After all of the passenger profiles have been evaluated for content requests, the example process 600 ranks the content of interest based on the content's priority score (block 616). In other words, the content is ranked in descending order based on the content's priority score. Control of the example process 600 then calls the download process (block 618).
As the content is downloaded, the example process 700 determines if the cache is full (block 705). If the cache is full, the example process 700 ends. If the cache is not full, the example process 700 may transcode the content for a first device and/or a second device (block 706). For example, a multimedia movie may be transcoded into a format that a laptop will be able to view. However, the transcoded movie for the laptop would not be appropriate for another passenger's smartphone. Accordingly, the example process 700 may transcode the movie for playback on the second passenger device (e.g., a smart phone, a PDA, a mobile phone, etc). Alternatively, to save on storage size in the cache, the transcoding may occur on the vehicle. After any transcoding, the example process 700 transmits the content to the vehicle (block 708). Once the content is on the vehicle, the example process 700 determines if the content is already cached (block 710) and purges the previously cached content (block 712). Once the stale content is purged or if the content was not previously cached, the content is stored in the cache (block 714).
The transmission of data from the example process 700 continues until all of the content have been received, the cache is full, or until the vehicle embarks on the trip. As described above, the transceiver 16 may send and receive network communications via a wired or wireless communication link (e.g., an 802.11(b) or 802.11 (n) wireless network, a WiMax base station, a UMTS base station, a local Ethernet network link, etc).
The process of
If the passenger's device does not have network access credentials to access the network, the example process 800 denies the network request (block 814). In denying the request, the example process 800 may display a form and allow the passenger to obtain network access credentials in order to access the network (e.g., see
If the content is not cached (block 806), the example process 800 determines if there is access to an external network (block 815). If there is no external network, the network request is denied (block 814). When it is determined that there is external network access (i.e., the passenger has purchased network credentials to access the external network), the example process 800 next determines if the passenger device has sufficient network credentials to access the external network (block 816). If the passenger device does not have sufficient network credentials to access the external network, the network request is denied (block 814). In the case the passenger device has sufficient network credentials to access the external network, the example process 800 retrieves the content of the network request via the external network (block 818). Once the content is retrieved, the content is cached (block 820) and then served to the passenger device (block 812).
In the event that a passenger device is denied a network request at block 814, the passenger may be presented the opportunity to upgrade the network credentials of the passenger device (i.e., the passenger device is presented an interface as illustrated in
Once a passenger device has been denied the content (block 814) or the content has been served to the passenger device (block 812), the network request is complete. The example process 800 determines if a shut down command has been issued (block 822), and if not, returns to block 801 to wait for the next network request. If a shutdown command has been issued, the example process 800 ends. Thus, the example process 800 repeats a loop from block 801 through block 822 until a shutdown command has been issued and the example process 800 ends.
The system 900 of the instant example includes a processor 912 such as a general purpose programmable processor. The processor 912 includes a local memory 914, and executes coded instructions 916 present in the local memory 914 and/or in another memory device. The processor 912 may execute, among other things, the example machine readable instructions illustrated in
The processor 912 is in communication with a main memory including a volatile memory 918 and a non-volatile memory 920 via a bus 922. The volatile memory 918 may be implemented by Synchronous Dynamic Random Access Memory (SDRAM), Dynamic Random Access Memory (DRAM), RAMBUS Dynamic Random Access Memory (RDRAM) and/or any other type of random access memory device. The non-volatile memory 920 may be implemented by flash memory and/or any other desired type of memory device. Access to the main memory 918, 920 is typically controlled by a memory controller (not shown) in a conventional manner.
The computer 900 also includes a conventional interface circuit 924. The interface circuit 924 may be implemented by any type of well known interface standard, such as an Ethernet interface, a universal serial bus (USB), and/or a third generation input/output (3GIO) interface.
One or more input devices 926 are connected to the interface circuit 924. The input device(s) 926 permit a user to enter data and commands into the processor 912. The input device(s) can be implemented by, for example, a keyboard, a mouse, a touchscreen, a track-pad, a trackball, isopoint and/or a voice recognition system.
One or more output devices 928 are also connected to the interface circuit 924. The output devices 928 can be implemented, for example, by display devices (e.g., a liquid crystal display, a cathode ray tube display (CRT), a printer and/or speakers). The interface circuit 924, thus, typically includes a graphics driver card.
The interface circuit 924 also includes a communication device (e.g., interface circuits 914) such as a modem or network interface card to facilitate exchange of data with external computers via a network (e.g., an Ethernet connection, a digital subscriber line (DSL), a telephone line, coaxial cable, a cellular telephone system, etc.).
The computer 900 also includes one or more mass storage devices 930 for storing software and data. Examples of such mass storage devices 930 include floppy disk drives, hard drive disks, compact disk drives and digital versatile disk (DVD) drives. The mass storage device 930 may implement the local storage device 720.
At least some of the above described example methods and/or apparatus are implemented by one or more software and/or firmware programs running on a computer processor. However, dedicated hardware implementations including, but not limited to, application specific integrated circuits, programmable logic arrays and other hardware devices can likewise be constructed to implement some or all of the example methods and/or apparatus described herein, either in whole or in part. Furthermore, alternative software implementations including, but not limited to, distributed processing or component/object distributed processing, parallel processing, or virtual machine processing can also be constructed to implement the example methods and/or apparatus described herein.
It should also be noted that the example software and/or firmware implementations described herein are optionally stored on a tangible storage medium, such as: a magnetic medium (e.g., a magnetic disk or tape); a magneto-optical or optical medium such as an optical disk; or a solid state medium such as a memory card or other package that houses one or more read-only (non-volatile) memories, random access memories, or other re-writable (volatile) memories; or a signal containing computer instructions. A digital file attached to e-mail or other information archive or set of archives is considered a distribution medium equivalent to a tangible storage medium. Accordingly, the example software and/or firmware described herein can be stored on a tangible storage medium or distribution medium such as those described above or successor storage media.
To the extent the above specification describes example components and functions with reference to particular standards and protocols, it is understood that the scope of this patent is not limited to such standards and protocols. For instance, each of the standards for Internet and other packet switched network transmission (e.g., Transmission Control Protocol (TCP)/Internet Protocol (IP), User Datagram Protocol (UDP)/IP, HyperText Markup Language (HTML), HyperText Transfer Protocol (HTTP)) represent examples of the current state of the art. Such standards are periodically superseded by faster or more efficient equivalents having the same general functionality. Accordingly, replacement standards and protocols having the same functions are equivalents which are contemplated by this patent and are intended to be included within the scope of the accompanying claims.
This patent contemplate examples wherein a device is associated with one or more machine readable mediums containing instructions, or receives and executes instructions from a propagated signal so that, for example, when connected to a network environment, the device can send or receive voice, video or data, and communicate over the network using the instructions. Such a device can be implemented by any electronic device that provides voice, video and/or data communication, such as a telephone, a cordless telephone, a mobile phone, a cellular telephone, a Personal Digital Assistant (PDA), a set-top box, a computer, and/or a server.
Additionally, although this patent discloses example systems including software or firmware executed on hardware, it should be noted that such systems are merely illustrative and should not be considered as limiting. For example, it is contemplated that any or all of these hardware and software components could be embodied exclusively in hardware, exclusively in software, exclusively in firmware or in some combination of hardware, firmware and/or software. Accordingly, while the above specification described example systems, methods and articles of manufacture, persons of ordinary skill in the art will readily appreciate that the examples are not the only way to implement such systems, methods and articles of manufacture. Therefore, although certain example methods, apparatus and articles of manufacture have been described herein, the scope of coverage of this patent is not limited thereto. On the contrary, this patent covers all methods, apparatus and articles of manufacture fairly falling within the scope of the appended claims either literally or under the doctrine of equivalents.