# Patent

## Title
Highly efficient and parallel data transfer and display

## Abstract

A method for highly efficient and parallel data transfer and display includes employing an aggregation server to receive and filter multiple Internet data feeds, streaming each Internet data feed to a touch screen device as a streamed data segment, displaying each data segment in an interactive stacked ticker display on the remote computing device, and enabling gesture-based interaction with the stacked ticker display.

## Background
CROSS-REFERENCE TO RELATED APPLICATION
This application claims the benefit of U.S. Provisional Application No. 61/920,348, which was filed on Dec. 23, 2013 and which is hereby incorporated herein by reference in its entirety.


TECHNICAL FIELD
The disclosed technology relates generally to Internet data aggregation, and more particularly, some embodiments relate to methods or systems for highly efficient and parallel data transfer and display.
DESCRIPTION OF THE RELATED ART
The amount of Internet content available to users has grown exponentially over the last decade, as has the number of Internet content viewers available to users. This dramatic increase has been driven by increases in popularity of social media repositories and users, and the general acceptance of the Internet as a viable alternative information delivery facility. However, the increase in Internet content also creates data monitoring challenges for users. In particular, parsing through the large pool of data for information that is relevant, interesting, and/or necessary to deliver to a particular user has become impractical.
For the purposes of this disclosure, Internet content may include social media, news, advertising, or other Internet content sources as would be generally known in the art. Most content viewing tools and applications display a static snapshot of a singular Internet content source to a user, and enable the user to selectively, but manually, interact with the static snapshot to view detailed information on a particular topic. These viewers tend to only update displayed data over preset intervals. Some viewers do enable compilation of multiple data feeds into a single view, but still only provide static snapshots of content and require manual interaction from a user to view detailed stories. Alternatively, some viewers do enable a ticker style display of data, but only display data from singular sources and only update data within the feed on preset intervals. None of these available viewers, nor their underlying data transfer protocols, are capable of streaming live data feeds from multiple Internet data sources to a singular application residing on a wireless mobile device and displaying those data feeds in an organized and understandable fashion. Accordingly, none of the currently available technologies solve the problem of efficiently parsing the multitude of Internet data sources and delivering multiple parallel data streams to a mobile device display in real time.
BRIEF SUMMARY OF EMBODIMENTS
According to various embodiments of the disclosed technology, a method for highly efficient and parallel data transfer and display enables compiling of multiple data streams from multiple Internet data sources onto a central server, parsing each individual data stream to extract relevant data chunks consistent with predefined user preferences, compressing the data chunks, asynchronously streaming the compressed data chunks over a wireless network to a mobile device, and decompressing the data chunks into data streams on the mobile device. Some embodiments of the disclosure include displaying each individual data stream in a moving ticker display with data updating in real time.
Some examples include accepting user input, wherein the input may include rewind commands, pause commands, fast forward commands, or open detail commands, such that a user may interact with each individual ticker display. If rewind is selected, the mobile device may request previously transferred data streams from the central server, causing the central server to re-transmit the compressed data streams, and causing the mobile device to decompress the data streams and display them in the ticker. If fast forward is selected, the mobile device may request data streams that have yet to be transferred, causing the central server to compress new data chunks into data streams and transfer the data streams to the mobile device, and causing the mobile device to decompress the data streams and display the data in a ticker display. If pause is selected, the ticker display may freeze the data display into a static representation of the data stream state that existed at the time the pause was selected. If open detail is selected, a full Internet data feed to the particular related data stream will display in a viewer window (e.g. a web page from the original Internet web page may display inside a viewer window).
Other features and aspects of the disclosed technology will become apparent from the following detailed description, taken in conjunction with the accompanying drawings, which illustrate, by way of example, the features in accordance with embodiments of the disclosed technology. The summary is not intended to limit the scope of any inventions described herein, which are defined solely by the claims attached hereto.



BRIEF DESCRIPTION OF THE DRAWINGS
The technology disclosed herein, in accordance with one or more various embodiments, is described in detail with reference to the following figures. The drawings are provided for purposes of illustration only and merely depict typical or example embodiments of the disclosed technology. These drawings are provided to facilitate the reader's understanding of the disclosed technology and shall not be considered limiting of the breadth, scope, or applicability thereof. It should be noted that for clarity and ease of illustration these drawings are not necessarily made to scale.
FIG. 1 illustrates a system for highly efficient parallel data transfer in accordance with embodiments of the technology described herein.
FIG. 2 illustrates a system for compressing and decompressing data streams in accordance with embodiments of the technology described herein.
FIG. 3 illustrates a system for highly efficient parallel data transfer in accordance with embodiments of the technology described herein.
FIG. 4 illustrates a system for displaying parallel data streams in accordance with embodiments of the technology described herein.
FIG. 5 illustrates a method for highly efficient parallel data transfer in accordance with embodiments of the technology described herein.
FIG. 6 illustrates data compression and decompression methods in accordance with embodiments of the technology described herein.
FIG. 7 illustrates methods for precise interactive ticker control and display in accordance with embodiments of the technology described herein.
FIG. 8 illustrates an user interaction with parallel data stream display in accordance with embodiments of the technology described herein.
FIG. 9 illustrates an user interaction with a parallel data stream display in accordance with embodiments of the technology described herein.
FIG. 10 illustrates an user interaction with a data stream detail display from a parallel data stream display system in accordance with embodiments of the technology described herein.
FIG. 11 illustrates a data stream detail display from a parallel data stream display system in accordance with embodiments of the technology described herein.
FIG. 12 illustrates configuration display from a parallel data stream display system in accordance with embodiments of the technology described herein.
FIG. 13 illustrates an example computing module that may be used in implementing various features of embodiments of the disclosed technology.



The figures are not intended to be exhaustive or to limit the invention to the precise form disclosed. It should be understood that the invention can be practiced with modification and alteration, and that the disclosed technology be limited only by the claims and the equivalents thereof.
DETAILED DESCRIPTION OF THE EMBODIMENTS
The technology disclosed herein is directed toward a system and method for highly efficient and parallel data transfer and display. In one embodiment, a method for highly efficient and parallel data transfer and display includes using a computer processor with a to perform the steps of: receiving a plurality of Internet data feeds; receiving a plurality of user preferences; parsing the Internet data feeds according to user preferences; applying a streaming compression algorithm to each Internet data feed to form a data stream; and transmitting one or more of the data streams to a mobile device.
In some examples of the method, the Internet data feeds include data feeds from news media websites, social media websites, marketing and advertising websites or servers, and/or other Internet based websites. The receiving of the data feeds may be accomplished using Rich Site Summary (RSS), Simple Mail Transfer Protocol (SMTP), Hypertext Markup Language (HTTP), File Transfer Protocol (FTP), Extensible Markup Language (XML), or other Transmission Control Protocol (TCP) or User Datagram Protocol (UDP) data transmission protocols as known in the art.
In some examples of the method, the transmitting of the data streams to a mobile device is performed using Real-Time Transport Protocol (RTP), Secure Real-Time Transport Protocol (SRTP), Real-Time Control Protocol (RTCP), Secure Real-Time Control Protocol (SRTCP), Real-Time Streaming Protocol (RTSP), or other asynchronous data streaming protocols as known in the art.
In another embodiment, a system for highly efficient and parallel data transfer and display includes an Internet data stream consolidation system and a remote processing system. In some embodiments, an Internet data feed consolidation system may include a server module, a compression engine module, a data store module, and/or a streaming engine module wherein the server module may be configured to receive and process a plurality of Internet data feeds, and further configured to receive and process user preferences. The compression engine module may be configured to receive parsed data from the server, compress the data, and send the data back to the server module and/or to the data store module. The data store module may be configured to receive and store data from either the server module or compression engine module. The streaming engine module may be configured to receive parsed and/or compressed data feeds from the server module, compression engine, and/or server modules and convert the data to data streams, and further configured to transfer the data to the remote data processing system.
In some embodiments, the remote data processing system may be a mobile/smart phone device, a tablet PC, a laptop, or other mobile devices known in the art. The device may include a user interface module, a cache module, a display controller module, and/or a decompression engine module wherein the cache module may receive one or more data streams from the data feed consolidation system and the decompression engine module may receive each data stream from the cache module, decompress the data stream into a live data feed, and send the live data feed to the display controller. The display controller may then display each live data feed in an independent interactive ticker tape display such that a user may pause the ticker, rewind the ticker, fast forward the ticker, or select the ticker to open a detail display from the original Internet data source related to the ticker. The display controller may display one or more tickers on a single graphical user interface.
FIG. 1 illustrates an example system for highly efficient parallel data transfer. In one embodiment, a system for highly efficient parallel data transfer includes an Application Programming Interface (API) server 120, a database 126, and a mobile device 130. API server 120 receives a plurality of Internet data feeds from multiple Internet data sources 110. API server 120 may store d complete or partial data feeds in database 126, retrieve user preferences from database 126, parse the plurality of data feeds according to user preferences, and compress each parsed data feed into a data stream. The API server may also push one or more data streams through a cloud network to individual mobile devices 130 according to user preferences. Each mobile device 130 may be a laptop, tablet PC, smart phone, or other mobile device as known in the art.
FIG. 2 illustrates an example system for compressing and decompressing data streams. Referring to FIG. 2, a secure data aggregation server 222 may aggregate plurality of Internet data feeds 210 and forward them to API server 220. API server 220 may then compress the data using compression module 224 and store the data in data store 226. Data feeds may be transferred between each of the described modules using data streaming protocols such as SRTP, for example. Compression module 224 may use Transport Layer Security (TLS) or Secure Socket Layer (SSL) compression, or may be use other compression techniques as disclosed herein, and/or as would be known in the art. In some embodiments, a decompression module 225 may also receive compressed data streams from the data store 226 and decompress them into streaming data content. In other embodiments, compressed data streams are sent to mobile devices 230 and decompressed therein. Data feeds and data streams may each be streamed to mobile device 230 using SRTP streaming protocol. Data feeds and data streams may also be streamed from API server 220 to mobile device 230 using RTP, RTCP, SRTCP, RTSP, or other data streaming protocols known in the art.
FIG. 3 illustrates an example system for highly efficient parallel data transfer. Referring to FIG. 3, data aggregation system 320 electronically couples to Internet data sources 310, and also electronically couples to remote data processing module 330. Data aggregation system 320 may include a server module 322, a compression engine module 324, a data store module 326, and a streaming engine module 328. In some embodiments, server module 322 may receive user configuration data 355 from a user interface module 336, and may receive data feeds 351 from Internet data sources 310.
Still referring to FIG. 3, server module 322 may interface with compression engine module 324, data store module 326, and streaming engine module 328, such that server module 322 parses data feeds 351 and sends the parsed data feed to compression engine module 324. Server module 322 may parse the data feed by, for example, filtering the data content based on the content source, content meta data, text filter criteria, temporal currency, and/or other filtering criteria known in the art. For example, in some embodiments, the server module 322 may determine a preselected subset of available Internet data sources 310 based on user selections, and may sub-filter data from particular sub-set of social media websites by filtering for pre-determined or dynamically determined hash tags. Dynamic filtering criteria may be determined through trend analysis (e.g. determining the most popular hash tags over the last 24 hours) performed by the server module 322, or imported from external systems.
Still referring to FIG. 3, compression engine module 324 may compress parsed data from server module 322 in real time and store compressed data in data store module 326. Data compression may be accomplished using lossy or lossless compression algorithms disclosed herein to optimize particular parsed data sets for streaming over wireless networks. Streaming engine module 328 may then pull compressed data stream data from data store module 326, or directly from compression engine module 324, and transmit data over data streaming protocol 353 to remote data processing module 330. Data transmission may be facilitated over wired networks using TCP/IP and/or HTTP protocols, for example, and may additionally be transmitted over 3G, 4G, or other known wireless network protocols.
Still referring to FIG. 3, remote data processing module 330 may include cache module 332, decompression engine module 334, user interface module 336, and display controller module 337. Remote data processing module 330 further includes an input device 340. For example, input device 340 may be a touch screen display, a voice recognition device, motion sensing device such as a hand held wand with accelerometers contained therein, or other electronic input devices as known in the art. Remote data processing module 330 may be a smart phone, a tablet computer, a personal computer, a smart television, a big screen or oversized display, a car's dashboard display, or other computing device coupled with a display and input device as known in the art.
User interface module 336 may be configured to accept various user input from input device 340, such as configuration settings, and/or live interaction with data streams (e.g. user input commands to rewind data streams, fast forward data streams, pause data streams, or open detailed displays of data from the original Internet data source related to a particular data stream). Decompression engine module 334, user interface module 336, and display controller module 337 may generally interface with cache module 332 through a standard mobile device operating system (e.g. iOS, OSX, Android, Windows, or other known operating systems). Decompression engine module 334 may receive and decompress real-time data streams from data aggregation system 320, and may push the compressed data streams to display controller module 337. Display controller module 337 may process decompressed data streams into a real-time crawling ticker 338, displaying an individual ticker for each individual data feed in parallel. Individual tickers may be independently manipulated by user input through user interface module 336, as disclosed herein, through standard user input through input device 340 (e.g. by using swipe gestures on a mobile device touch screen display, by inputting a voice command to a voice recognition system, or by sensing movement of a motion sensing wand device).
FIG. 4 illustrates an example system for displaying parallel data streams. In some examples, a system for displaying parallel data streams may include a computer processor with a computer program embedded thereon, the computer program configured to run a splash screen routine, a ticker display routine 420, and a management routine 430. When interacted with, splash screen routine 410 may progress to an interstitial screen routine 412, an intro screen routine 414, and to ticker display routine 420. Ticker display routine 420 may display one or more tickers and allow user interaction with the tickers. For example, each ticker display routine 420 may be independently selected to rewind, fast forward, or pause the data stream display, and/or to open a detail window display 422 and/or 423 with linked material 424 from an original data source. Users may configure ticker parameters and create links to particular desired Internet data sources using management routine 430.
FIG. 5 illustrates an example method for highly efficient parallel data transfer 500. An example method includes receiving a plurality of Internet data sets on a server at step 510, receiving user preferences at step 520, and filtering each of the Internet data sets based on user preferences at step 530. For example, the Internet data sets may include RSS, HTTP, SMTP, FTP, XML, or other available Internet data formats from data sources such as news websites, social media websites, or advertising data. The user preferences may be compiled from a user login to an account hosted by the server, or input into a mobile device and transmitted to the server at step 520. The filtering of the Internet data sets at step 530 may invoke static filtering criteria as input by a user, or dynamic criteria based on popularity of each data feed, relevance to a particular user (e.g. because the user frequently visits the data source web site, has members of a social media network related to the story, has a social media profile that is relevant to the story, and/or other available user profile data).
Still referring to FIG. 5, the method for parallel Internet data transfer 500 may further include compressing each filtered data set into a data stream at step 540, transmitting the data stream to a mobile device at step 550, decompressing the data stream at step 560, and displaying each data stream in an independent interactive ticker display at step 570.
FIG. 6 illustrates an example data compression and decompression method. Referring to FIG. 6, a data compression method includes receiving a plurality of data sets, from Internet-based data sources, on a server at step 610, selecting data sets of interest with a filter 620, and encoding the data sets of interest at step 630. The encoded data sets may then be securely streamed to a remote device at step 640. Remote device 640 may be a smart phone, a tablet computer, a personal computer, a smart television, a big screen or oversized display, a car's dashboard display, or other computing device coupled with a display and input device as known in the art. The encoded data may be streamed to the remote device using a secure streaming protocol such as SRTP, or other secure data streaming protocols as known in the art. A method for decompressing data on a remote device may include decoding data sets with a decoder module at step 650 and caching the decoded data sets at step 660.
FIG. 7 illustrates an example method for precise interactive ticker control and display. Referring to FIG. 7, the method may include displaying a most recent data stream segment in a first color within a ticker on a remote device display at step 710 and determining whether a first input command is received on an input device at step 720. For example, the data stream may be a text-based representation of one of the Internet data sets, as disclosed with respect to FIG. 5, and the data stream segment may include enough text characters to stretch across the graphical display device within a ticker display. The first color may be white, or any other color or color shade as known in the art. The input device may be a touch screen, a voice recognition device, a motion detecting device (e.g. a motion detecting wand device), or other input device as known in the art. The first input command may be a swipe gesture on a touch screen device. For example, a user may make a swipe gesture from right to left within the ticker, right over the streaming data segment. In other embodiments, a user may issue a first voice command, such as “slashback” or “rewind.” In other embodiments, a user may swipe a motion sensing device from right to left. Other commands, as input into a variety of input devices, may be used as would be known in the art.
Still referring to FIG. 7, the method for precise interactive ticker control and display may further include redisplaying a previous data stream segment at step 725 if the first input command is received by the input device. For example, the previous data stream segment may be a data stream segment from just seconds earlier, from minutes earlier, or hours earlier as determined by user configuration settings. The previous data stream segment may be displayed in a second color or shade.
The method for precise interactive ticker control and display may further include determining whether a second input command is received on an input device at step 730. For example, a user may make a swipe gesture from left to right within the ticker, right over the streaming data segment. In other embodiments, a user may issue a second voice command, such as “skip ahead” or “fast forward.” In other embodiments, a user may swipe a motion sensing device from left to right. Other commands, as input into a variety of input devices, may be used as would be known in the art.
Still referring to FIG. 7, the method may further include displaying a new data stream segment if the second input command is received by the input device at step 735. For example, the new data stream segment may be a data stream segment seconds ahead of the current segment, minutes ahead of the current segment, or hours ahead of the current segment as determined by user configuration settings. The new data stream segment may be displayed in a third color or shade.
The method for precise interactive ticker control and display may further include determining whether a third input command is received on an input device at step 740. For example, a user may make a tapping gesture within the ticker, right over the streaming data segment. In other embodiments, a user may issue a third voice command, such as “pause” or “freeze.” In other embodiments, a user may a predetermined gesture on a motion sensing device. Other commands, as input into a variety of input devices, may be used as would be known in the art.
Still referring to FIG. 7, the method may further include freezing the current data stream segment in place at step 745 if the third input command is received by the input device. For example, the frozen data stream segment may be displayed within the ticker until a subsequent user input command is received. The frozen data stream segment may be displayed in a fourth color or shade.
The method for precise interactive ticker control and display may further include determining whether a fourth input command is received on an input device at step 747, the fourth input command only being applicable if received immediately subsequent to the third input command. For example, a user may make a subsequent tapping gesture within the ticker, right over the frozen data segment. In other embodiments, a user may issue a fourth voice command, such as “play” or “go.” In other embodiments, a user may a predetermined gesture on a motion sensing device. Other commands, as input into a variety of input devices, may be used as would be known in the art.
Still referring to FIG. 7, the method may further include advancing the current data stream segment to an immediately subsequent data stream segment at step 750. The method may also include advancing the current data stream segment to the immediately subsequent data stream segment if a fourth input command is received by the input device immediately subsequent to having received the third input command. The method may also include advancing the current data stream segment to the immediately subsequent data stream segment after redisplaying the previous data stream segment at step 725 or after displaying the new data stream segment at step 735.
FIG. 8 illustrates an example method of interacting with a parallel data stream display. Referring to FIG. 8, a plurality of tickers may be displayed on a graphical user interface. Each ticker may display an independent data stream from a disparate Internet data source. The display may enable a user to interact individually with each ticker using standard mobile device operating system commands, such as through gesture commands on a touch screen. In addition, to the extent that the list of tickers does not fit within the window frame, a user may use swipe gestures to scroll the list of ticker displays up or down.
FIG. 9 illustrates another example method of interacting with a parallel data stream display. Referring to FIG. 9, individual tickers may be rearranged using a touch, hold, and swipe gesture sequence as shown. For example, the user interactions in FIG. 9 may be enabled using a touch screen input device, a voice recognition input device, a motion detecting input device, or other input devices as known in the art.
FIG. 10 illustrates an example interaction with a parallel data stream display wherein a detail window frame can be opened by selecting an individual ticker. The detail window frame may include data from the original Internet data source associated with the ticker. For example, the detail window frame may display a complete or mobile version of a particular website. For example, the user interactions in FIG. 10 may be enabled using a touch screen input device, a voice recognition input device, a motion detecting input device, or other input devices as known in the art.
Similarly, FIG. 11 illustrates another example interaction with a parallel data stream display wherein a detail window frame can be opened by selecting an individual ticker. Referring to FIG. 11, a detail window frame may display summary data and enable a user interaction to display further detail from the Internet data source. For example, the user interactions in FIG. 11 may be enabled using a touch screen input device, a voice recognition input device, a motion detecting input device, or other input devices as known in the art.
FIG. 12 illustrates an example of a configuration display window from a parallel data stream display system. Referring to FIG. 12, a configuration display window may enable user interaction to configure and categorize tickers. For example, all social media tickers may be placed into a particular category, enabling a user to select the social media category before being presented with the list of social media tickers. For example, the user interactions in FIG. 12 may be enabled using a touch screen input device, a voice recognition input device, a motion detecting input device, or other input devices as known in the art.
As used herein, the term module might describe a given unit of functionality that can be performed in accordance with one or more embodiments of the technology disclosed herein. As used herein, a module might be implemented utilizing any form of hardware, software, or a combination thereof. For example, one or more processors, controllers, ASICs, PLAs, PALs, CPLDs, FPGAs, logical components, software routines or other mechanisms might be implemented to make up a module. In implementation, the various modules described herein might be implemented as discrete modules or the functions and features described can be shared in part or in total among one or more modules. In other words, as would be apparent to one of ordinary skill in the art after reading this description, the various features and functionality described herein may be implemented in any given application and can be implemented in one or more separate or shared modules in various combinations and permutations. Even though various features or elements of functionality may be individually described or claimed as separate modules, one of ordinary skill in the art will understand that these features and functionality can be shared among one or more common software and hardware elements, and such description shall not require or imply that separate hardware or software components are used to implement such features or functionality.
Where components or modules of the technology are implemented in whole or in part using software, in one embodiment, these software elements can be implemented to operate with a computing or processing module capable of carrying out the functionality described with respect thereto. One such example computing module is shown in FIG. 13. Various embodiments are described in terms of this example computing module 1300. After reading this description, it will become apparent to a person skilled in the relevant art how to implement the technology using other computing modules or architectures.
Referring now to FIG. 13, computing module 1300 may represent, for example, computing or processing capabilities found within desktop, laptop and notebook computers; hand-held computing devices (PDA's, smart phones, cell phones, palmtops, etc.); mainframes, supercomputers, workstations or servers; or any other type of special-purpose or general-purpose computing devices as may be desirable or appropriate for a given application or environment. Computing module 1300 might also represent computing capabilities embedded within or otherwise available to a given device. For example, a computing module might be found in other electronic devices such as, for example, digital cameras, navigation systems, cellular telephones, portable computing devices, modems, routers, WAPs, terminals and other electronic devices that might include some form of processing capability.
Computing module 1300 might include, for example, one or more processors, controllers, control modules, or other processing devices, such as a processor 1304. Processor 1304 might be implemented using a general-purpose or special-purpose processing engine such as, for example, a microprocessor, controller, or other control logic. In the illustrated example, processor 1304 is connected to a bus 1302, although any communication medium can be used to facilitate interaction with other components of computing module 1300 or to communicate externally.
Computing module 1300 might also include one or more memory modules, simply referred to herein as memory 1308. For example, preferably Random Access Memory (RAM) or other dynamic memory, might be used for storing information and instructions to be executed by processor 1304. Memory 1308 might also be used for storing temporary variables or other intermediate information during execution of instructions to be executed by processor 1304. Computing module 1300 might likewise include a read only memory (“ROM”) or other static storage device coupled to bus 1302 for storing static information and instructions for processor 1304.
The computing module 1300 might also include one or more various forms of information storage mechanism 1310, which might include, for example, a media drive 1312 and a storage unit interface 1320. The media drive 1312 might include a drive or other mechanism to support fixed or removable storage media 1314. For example, a hard disk drive, a floppy disk drive, a magnetic tape drive, an optical disk drive, a CD or DVD drive (R or RW), or other removable or fixed media drive might be provided. Accordingly, removable storage media 1314 might include, for example, a hard disk, a floppy disk, magnetic tape, cartridge, optical disk, a CD or DVD, or other fixed or removable medium that is read by, written to or accessed by media drive 1312. As these examples illustrate, the removable storage media 1314 can include a computer usable storage medium having stored therein computer software or data.
In alternative embodiments, information storage mechanism 1310 might include other similar instrumentalities for allowing computer programs or other instructions or data to be loaded into computing module 1300. Such instrumentalities might include, for example, a fixed or removable storage unit 1322 and a storage unit interface 1320. Examples of such removable storage units 1322 and storage unit interfaces 1320 can include a program cartridge and cartridge interface, a removable memory (for example, a flash memory or other removable memory module) and memory slot, a PCMCIA slot and card, and other fixed or removable storage units 1322 and storage unit interfaces 1320 that allow software and data to be transferred from the removable storage unit 1322 to computing module 1300.
Computing module 1300 might also include a communications interface 1324. Communications interface 1324 might be used to allow software and data to be transferred between computing module 1300 and external devices. Examples of communications interface 1324 might include a modem or softmodem, a network interface (such as an Ethernet, network interface card, WiMedia, IEEE 802.XX or other interface), a communications port (such as for example, a Universal Serial Bus (USB) port, Infrared (IR) port, RS232 port Bluetooth® interface, or other port), or other communications interface. Software and data transferred via communications interface 1324 might typically be carried on signals, which can be electronic, electromagnetic (which includes optical) or other signals capable of being exchanged by a given communications interface 1324. These signals might be provided to communications interface 1324 via a channel 1328. This channel 1328 might carry signals and might be implemented using a wired or wireless communication medium. Some examples of a channel might include a phone line, a cellular link, a Radio Frequency (RF) link, an optical link, a network interface, a local or wide area network, and other wired or wireless communications channels.
In this document, the terms “computer program medium” and “computer usable medium” are used to generally refer to media such as, for example, memory 1308, storage unit interface 1320, storage media 1314, and channel 1328. These and other various forms of computer program media or computer usable media may be involved in carrying one or more sequences of one or more instructions to a processing device for execution. Such instructions embodied on the medium, are generally referred to as “computer program code” or a “computer program product” (which may be grouped in the form of computer programs or other groupings). When executed, such instructions might enable the computing module 1300 to perform features or functions of the disclosed technology as discussed herein.
While various embodiments of the disclosed technology have been described above, it should be understood that they have been presented by way of example only, and not of limitation. Likewise, the various diagrams may depict an example architectural or other configuration for the disclosed technology, which is done to aid in understanding the features and functionality that can be included in the disclosed technology. The disclosed technology is not restricted to the illustrated example architectures or configurations, but the desired features can be implemented using a variety of alternative architectures and configurations. Indeed, it will be apparent to one of skill in the art how alternative functional, logical or physical partitioning and configurations can be implemented to implement the desired features of the technology disclosed herein. Also, a multitude of different constituent module names other than those depicted herein can be applied to the various partitions. Additionally, with regard to flow diagrams, operational descriptions and method claims, the order in which the steps are presented herein shall not mandate that various embodiments be implemented to perform the recited functionality in the same order unless the context dictates otherwise.
Although the disclosed technology is described above in terms of various exemplary embodiments and implementations, it should be understood that the various features, aspects and functionality described in one or more of the individual embodiments are not limited in their applicability to the particular embodiment with which they are described, but instead can be applied, alone or in various combinations, to one or more of the other embodiments of the disclosed technology, whether or not such embodiments are described and whether or not such features are presented as being a part of a described embodiment. Thus, the breadth and scope of the technology disclosed herein should not be limited by any of the above-described exemplary embodiments.
Terms and phrases used in this document, and variations thereof, unless otherwise expressly stated, should be construed as open ended as opposed to limiting. As examples of the foregoing: the term “including” should be read as meaning “including, without limitation” or the like; the term “example” is used to provide exemplary instances of the item in discussion, not an exhaustive or limiting list thereof; the terms “a” or “an” should be read as meaning “at least one,” “one or more” or the like; and adjectives such as “conventional,” “traditional,” “normal,” “standard,” “known” and terms of similar meaning should not be construed as limiting the item described to a given time period or to an item available as of a given time, but instead should be read to encompass conventional, traditional, normal, or standard technologies that may be available or known now or at any time in the future. Likewise, where this document refers to technologies that would be apparent or known to one of ordinary skill in the art, such technologies encompass those apparent or known to the skilled artisan now or at any time in the future.
The presence of broadening words and phrases such as “one or more,” “at least,” “but not limited to” or other like phrases in some instances shall not be read to mean that the narrower case is intended or required in instances where such broadening phrases may be absent. The use of the term “module” does not imply that the components or functionality described or claimed as part of the module are all configured in a common package. Indeed, any or all of the various components of a module, whether control logic or other components, can be combined in a single package or separately maintained and can further be distributed in multiple groupings or packages or across multiple locations.
Additionally, the various embodiments set forth herein are described in terms of exemplary block diagrams, flow charts and other illustrations. As will become apparent to one of ordinary skill in the art after reading this document, the illustrated embodiments and their various alternatives can be implemented without confinement to the illustrated examples. For example, block diagrams and their accompanying description should not be construed as mandating a particular architecture or configuration.

## Claims

1. A method for highly efficient and parallel data transfer and display comprising:
receiving, with an aggregation server, a plurality of Internet data feeds;
receiving, with the aggregation server, a set of user preferences;
filtering, with a computer processor, each Internet data feed according to the set of user preferences;
streaming each Internet data feed to a remote computing device as a data segment;
displaying each data segment in an interactive stacked ticker display on the remote computing device;
enabling one or more user interactions through an input device;
redisplaying a previous data segment if a first input command is received;
displaying a new data segment if a second input command is received; and
freezing a current data segment within the interactive stacked ticker display if a third input command is received.

2. The method of claim 1, wherein the one or more user interactions comprise gesture-based interactions and the input device comprises a touch screen display.

3. The method of claim 1, further comprising:
compressing, with a computer processor located on the aggregation server, one or more of the Internet data feeds; and
decompressing, with a computer processor located on the remote computing device, the Internet data feeds.

4. The method of claim 1, wherein the streaming is performed using Secure Real-Time Transport Protocol (SRTP).

5. The method of claim 1, wherein the first input command comprises a first swipe gesture from right to left received by a touch screen display, the second input command comprises a second swipe gesture from left to right received by the touch screen display, and the third input command comprises a tapping gesture received by the touch screen display.

6. The method of claim 1, wherein a current data segment is displayed in a first color, the previous data segment is displayed in a second color, and the new data segment is displayed in a third color.

7. The method of claim 1, wherein the one or more user interactions comprise voice commands and the input device comprises a voice recognition device.

8. The method of claim 1, wherein the one or more user interactions comprise gesture-based commands and the input device comprises a motion detection device.

9. A system for highly efficient and parallel data transfer and display comprising:
a server and a remote processing module;
wherein the server is configured to receive a plurality of Internet data feeds, receive a set of user preferences, filter each Internet data feed according to the set of user preferences, and stream the Internet data feed to the remote processing module as a data segment; and
the remote processing module comprises an input device, and a display device, wherein the server is configured to receive the data segment and the display device is configured to display the data segment within an interactive stacked ticker display, and the input device is configured to enable user interactions with the interactive stacked ticker display;
wherein the input device is configured to redisplay a previous data segment if a first gesture-based command is received, display a new data segment if a second gesture-based command is received, and freeze a current data segment within the interactive stacked ticker display if a third gesture-based command is received.

10. The system of claim 9, wherein the user interactions comprise gesture-based interactions and the input device comprises a touch screen display.

11. The system of claim 9, wherein the user interactions comprise voice commands and the input device comprises a voice recognition device.

12. The system of claim 9, wherein the user interactions comprise gesture-based interactions and the input device comprises a motion detection device.

13. The system of claim 9, wherein the server is configured to receive the plurality of Internet data feeds, receive the set of user preferences, filter each Internet data feed according to the set of user preferences, and stream the Internet data feed to the remote processing module.

14. The system of claim 9, wherein the remote processing module is a smart phone with a touch screen display.

15. The system of claim 9, wherein the remote processing module comprises a cache sub-module, and a display controller sub-module;
wherein the cache sub-module is configured to receive each data segment from a streaming engine sub-module; and
the display controller sub-module is configured to display each data segment in an interactive ticker display and stack each ticker display into the stacked ticker display.

16. The system of claim 9, wherein the server further comprises a compression sub-module and the remote processing module further comprises a decompression sub-module, wherein the compression sub-module is configured to compress each Internet data feed in real-time and the decompression sub-module is configured to decompress each Internet data feed in real-time.

17. A system for interactive display of stacked tickers comprising:
an Internet data stream consolidation server and a touch screen device;
wherein the Internet data stream consolidation server is configured to receive a plurality of Internet data feeds, process the Internet data feeds into streamable data segments, and stream the data segments to the touch screen device; and
the touch screen device is configured to receive the data segments, display the data segments within a stacked ticker display, and enable gesture-based interactions with the stacked ticker display through a touch screen display;
wherein the touch screen device is configured to redisplay a previous data segment if a first gesture-based command is received, display a new data segment if a second gesture-based command is received, and freeze a current data segment within the stacked ticker display if a third gesture-based command is received.