A portion of the disclosure of this patent document and its figures contain material subject to copyright protection. The copyright owner has no objection to the facsimile reproduction by anyone of the patent document or the patent disclosure, but otherwise reserves all copyrights whatsoever.
1. Field of the Invention
This invention generally relates to computers and to communications and, more particularly, to processing data in a communications network.
2. Description of the Related Art
Manipulation of electronic data is important in computer networking and in communications. Often times electronic data must be manipulated for presentation at a client communications device. That is, the electronic data must be changed, formatted, or altered to suit the display characteristics, processing abilities, and/or storage capabilities of the client communications device. A handheld personal data assistant, for example, often requires that bandwidth-intensive electronic data, such as on-demand video, be scaled, color corrected, and/or otherwise manipulated for optimum presentation on the small display of the handheld personal data assistant. Heretofore, however, manipulation of electronic data was usually the responsibility of the client communications device—that is, the client communications device stores and utilizes one or more computer programs to manipulate incoming electronic data for presentation on the client communications device.
Locally manipulating electronic data, however, poses problems. As the electronic data is received, the client communications device must store the electronic data, process/manipulate the electronic data, and present the manipulated electronic data to the user. This process of storing, manipulating, and/or presenting the electronic data, however, often taxes the limited processing and storage capabilities of the client communications device. As both those skilled and unskilled recognize, when the processing and/or storage capabilities of the client communications device are overwhelmed, the audio/video presentation may “stumble” and degrade the user experience. Sometimes the client communications device even experiences a fault or failure when the processing and/or storage capabilities are overwhelmed. There is, accordingly, a need in the art for methods and systems of manipulating electronic data that reduce the need for locally-stored computer programs and that reduce the need for local processing requirements.
The aforementioned problems, and other problems, are reduced by a Analysis Module. This Analysis Module comprises methods, computer systems, computer programs, and computer program products that provide communications services to subscribers. The Analysis Module recursively segments a stream of electronic data. The term “recursively segments” means the Analysis Module uses a characteristic of one segment to determine the segmentation of another segment. That is, when the Analysis Module segments the stream of electronic data, the segmentation of at least one segment is at least in part based upon a characteristic of a preceding segment. As this patent will further describe, these characteristics may include mathematical characteristics, content characteristics, timing characteristics, structural characteristics, processing characteristics, and routing characteristics.
Once a segment is created, that segment may be processed. Each individual segment, if required, is routed to one or more devices and/or other software transformation modules, within and without the communications network, for subsequent processing. When the subsequent processing is complete, the Analysis Module aggregates the result of the subsequent processing. The Analysis Module may then assemble that result into another data structure, and/or the Analysis Module may communicate the aggregated result along the communications network. The Analysis Module, for example, may assemble segments and results into a new, formatted data stream, and then communicate that formatted data stream to a client communications device. The client communications device may then view/execute/present the formatted data stream with little or no regard for the original format of the electronic data. That is, the aggregated results have already been substantially formatted, transformed, processed, and/or manipulated to suit the processing, storage, and/or audio/display requirements of the client communications device.
Because this invention utilizes recursive segmentation, this invention is particularly useful for structured streams of data. The technique of recursive segmentation, as described herein, lends itself to fast and efficient data compression, data description, and data prediction. As data content formats become more structured, this invention allows automated segmentation, automated processing, and automated assembly of streams of data. The Analysis Module of this invention creates and assembles formatted data streams for a client communications device. The client communications device may then view/execute/present the formatted data stream with little or no regard for the original format of the requested electronic data. The formatted, data stream has already been substantially formatted, transformed, processed, and/or manipulated to suit the processing, storage, and/or audio/display requirements of the client communications device.
This invention discloses methods, systems, and products for providing communications services. One of the embodiments describes a method for providing communications services. A first data stream is received at a computer, with the first data stream comprising packets of data packetized according to a packet protocol. The first data stream is recursively segmented into segments, and at least one of the segments is dispersed via a network for a subsequent processing service. A result of the processing service is received, and the result is aggregated into a second data stream. The second data stream is then communicated via the network.
Another of the embodiments describes another method for providing communications services. Here data is received at a computer, and the data is received as packets of data packetized according to a packet protocol. The packets of data are recursively segmenting into segments according to a segmentation profile stored in memory. At least one of the segments is dispersing via a network for a subsequent processing service. Results of the subsequent processing service are received and assembled into a data stream. The data stream includes at least one of i) the results of the subsequent processing service and ii) a recursively segmented segment. The assembled data stream may then be communicated via the network to another computer device and/or to a client communications device.
Other embodiments of this invention describe a system for providing communications services. An Analysis Module is stored in a memory device, and a processor communicates with the memory device. The Analysis Module receives data at a computer, with the data received as packets of data packetized according to a packet protocol. The Analysis Module recursively segments the packets of data into segments according to a segmentation profile stored in memory. The Analysis Module disperses at least one of the segments via a network for a subsequent processing service. The Analysis Module receives results of the subsequent processing service and assembles a data stream, with the data stream comprising at least one of i) the results of the subsequent processing service and ii) a recursively segmented segment.
Other embodiments of this invention describe a computer program product. A computer-readable medium stores an Analysis Module. The Analysis Module receives data at a computer, and the data is received as packets of data packetized according to a packet protocol. The Analysis Module recursively segments the packets of data into segments according to a segmentation profile stored in memory. The Analysis Module disperses at least one of the segments via a network for a subsequent processing service. The Analysis Module receives results of the subsequent processing service and assembles a data stream, with the data stream comprising at least one of i) the results of the subsequent processing service and ii) a recursively segmented segment.
Other systems, methods, and/or computer program products according to embodiments will be or become apparent to one with skill in the art upon review of the following drawings and detailed description. It is intended that all such additional systems, methods, and/or computer program products be included within this description, be within the scope of the present invention, and be protected by the accompanying claims.
These and other features, aspects, and advantages of the embodiments of the present invention are better understood when the following Detailed Description of the Invention is read with reference to the accompanying drawings, wherein:
This invention now will be described more fully hereinafter with reference to the accompanying drawings, in which exemplary embodiments are shown. This invention may, however, be embodied in many different forms and should not be construed as limited to the embodiments set forth herein. These embodiments are provided so that this disclosure will be thorough and complete and will fully convey the scope of the invention to those of ordinary skill in the art. Moreover, all statements herein reciting embodiments of the invention, as well as specific examples thereof, are intended to encompass both structural and functional equivalents thereof. Additionally, it is intended that such equivalents include both currently known equivalents as well as equivalents developed in the future (i.e., any elements developed that perform the same function, regardless of structure).
Thus, for example, it will be appreciated by those of ordinary skill in the art that the diagrams, schematics, illustrations, and the like represent conceptual views or processes illustrating systems and methods embodying this invention. The functions of the various elements shown in the figures may be provided through the use of dedicated hardware as well as hardware capable of executing associated software. Similarly, any switches shown in the figures are conceptual only. Their function may be carried out through the operation of program logic, through dedicated logic, through the interaction of program control and dedicated logic, or even manually, the particular technique being selectable by the entity implementing this invention. Those of ordinary skill in the art further understand that the exemplary hardware, software, processes, methods, and/or operating systems described herein are for illustrative purposes and, thus, are not intended to be limited to any particular named manufacturer.
The Analysis Module 20 may subcontract services to different service providers. If a different service provider can provide some requested communications service for a cheaper price, a higher performance, or some other criteria, then the Analysis Module 20 may determine that it's more profitable and/or more advantageous to “subcontract” some or all of the requested communications service. So, when a client communications device request some communications service for the first stream 12 of data, the Analysis Module 20 may interrogate other service providers. The Analysis Module 20 may dynamically, and in real-time, assess an availability of other communications networks operated by other service providers. The Analysis Module 20 may send an interrogation to the other service providers of the other communications networks. The interrogation describes what data is requested, and the interrogation includes any parameters for fulfilling a request for communications. The interrogation also solicits the other service provider's available network routing, available bandwidth, and pricing.
As
Many characteristics may influence the recursive segmentation of a segment 18. The terms “recursively segments,” “recursive segmentation,” “recursively segmenting,” and other similar wording mean that the Analysis Module 20 uses a characteristic of one segment to determine the segmentation of another segment. When the Analysis Module segments the first stream 12 of data, the segmentation of at least one segment 18 is at least in part based upon a characteristic of one or more preceding segments 22. One segment, for example, may be mathematically described from knowing the structure, content, or internal packet sequence of a preceding segment. If, for example, a sequence of packets has a similar structure to a previous sequence, then the corresponding segments may also have a similar structure. If the content of one or more segments resembles some previous segment(s), then the corresponding segments could have similar content. A known chronological characteristic of one segment may be used when segmenting other packets with the same chronological characteristic. As the following paragraphs suggest, any similarities between segments may be exploited for compression, description, and prediction algorithms.
The Analysis Module 20 may be used for data compression. When a segment shares a similar characteristic with a previous segment, the Analysis Module 20 may autonomously decide that the similar segments may be similarly compressed. As those of ordinary skill in the art understand, data compression is commonly used to reduce the size of data files. The Analysis Module 20 may similarly utilize data compression techniques to reduce the size, or length, of segments. The Analysis Module 20, in addition, may identify similar segments and “insert” similar compression results without actually compressing each similar segment. Static “background” scenes in a video, for example, may not change for several seconds or even several minutes. Once the Analysis Module 20 recognizes a repetitive segment, the Analysis Module 20 may substitute the data compression results of a similar, preceding segment. This ability to substitute, or “insert,” compression results from a preceding segment allows the Analysis Module 20 to reduce, or even eliminate, processing of redundant segments. The Analysis Module 20 quickly substitutes compression results for similar segments, thus improving system and processor performance.
The Analysis Module 20 may be used for data description. If a segment shares a similar characteristic with a previous segment, then the Analysis Module 20 may autonomously decide that the similar segments may be similarly described. That is, once a segment is identified, other segments, having the same characteristic, may be similarly identified. Similar segments, in fact, may be abbreviated or referenced using a common descriptor, designation, and/or formula. This similar characteristic would permit similar segments to be replaced with a simpler, and/or shorter, notation. Long segments, and/or complex segments, for example, could be replaced with a short notation or with a shorter segment. If the actual segment is later required, the shorter notation (or shorter segment) may be replaced with the actual segment. The common descriptor, designation, formula, notation, and/or segment, representing similar segments, allows the Analysis Module 20 to reduce long and/or complicated data segments with shorter and simpler representations.
The Analysis Module 20 may also be used for data prediction. If a segment shares a similar characteristic with a previous segment, then the Analysis Module 20 may autonomously predict that the similar segment should have similar processing. The Analysis Module 20, for example, could discard, or “skip,” any processing requirement for a segment having one or more the similar characteristics to a preceding segment. The Analysis Module 20, instead, could simply duplicate the processing results of the preceding segment. These duplicate processing results could then be assembled, or “inserted,” at the appropriate moment or at the appropriate location. This similar characteristic between the segments allows the Analysis Module 20 to conserve, and perhaps eliminate, redundant processing requirements for similar segments.
The Analysis Module 20 may also be used for encryption of segments. Once a segment is encrypted, other segments with a similar characteristic may be similarly encrypted. That is, if a segment shares a similar characteristic with a previous segment, then the Analysis Module 20 may autonomously encrypt the similar segment as the preceding segment. Once the Analysis Module 20 recognizes a repetitive segment, the Analysis Module 20 may substitute the encryption results of a preceding segment. The Analysis Module 20 allows the same, or similar, encryption results from a preceding segment to be substituted for a current segment. The Analysis Module 20 again reduces, or even eliminates, processing of redundant segments. The Analysis Module 20 quickly substitutes encryption results for similar segments, thus improving system and processor performance.
Because there may be many similarities between segments,
The Analysis Module 20 consults the segmentation profile 28. The segmentation profile 28 specifies how certain types of data and/or segments should be processed. The segmentation profile 28 may also specify how that data should be segmented. As the Analysis Module 20 segments data, the Analysis Module 20 consults the segmentation profile 28 for identified characteristics. If a segment contains a recognized characteristic, the Analysis Module 20 applies the rules stored within the segmentation profile 28. As
The Analysis Module 20 may employ a “self-assembly” strategy when assembling the second data stream 26. Because the Analysis Module 20 may identify recognizable characteristics of data, the Analysis Module 20 may use the same characteristics to autonomously assemble a requested stream of data. When, for example, a client communications device requests electronic data, the Analysis Module 20 can retrieve the requested electronic data and autonomously format that data to suit the client communications device. The Analysis Module 20 may also use any recognized characteristic to correctly assemble the requested data into the proper/required sequence. Because the Analysis Module 20 disperses the segments 18 for subsequent processing services (as
Because this invention utilizes recursive segmentation, this invention is particularly useful for structured streams of data. The technique of recursive segmentation, as described herein, lends itself to fast and efficient data compression, data description, and data prediction. As data content formats become more structured, this invention allows automated segmentation, automated processing, and automated assembly of streams of data. The Analysis Module 20 of this invention creates and assembles formatted data streams for a client communications device. The client communications device may then view/execute/present the formatted data stream (such as the second data stream shown in FIGS. 2 and 4-6) with little or no regard for the original format of the requested electronic data. The formatted, second data stream 26 has already been substantially formatted, transformed, processed, and/or manipulated to suit the processing, storage, and/or audio/display requirements of the client communications device.
The flowchart continues with
The Analysis Module (shown as reference numeral 20 in
The Analysis Module may also be physically embodied on or in any addressable (e.g., HTTP, I.E.E.E. 802.11, Wireless Application Protocol (WAP)) wireless device capable of presenting an IP address. Examples could include a computer, a wireless personal digital assistant (PDA), an Internet Protocol mobile phone, or a wireless pager.
While the present invention has been described with respect to various features, aspects, and embodiments, those skilled and unskilled in the art will recognize the invention is not so limited. Other variations, modifications, and alternative embodiments may be made without departing from the spirit and scope of the present invention.
This application is a continuation of U.S. application Ser. No. 10/720,949, filed Nov. 24, 2003, now issued as U.S. Pat. No. 7,467,219, and incorporated herein by reference in its entirety.
Number | Name | Date | Kind |
---|---|---|---|
4788721 | Krishnan et al. | Nov 1988 | A |
4873517 | Baratz et al. | Oct 1989 | A |
5513306 | Mills et al. | Apr 1996 | A |
5752186 | Malackowski et al. | May 1998 | A |
5761429 | Thompson | Jun 1998 | A |
5771282 | Friedes | Jun 1998 | A |
5786770 | Thompson | Jul 1998 | A |
5790176 | Craig | Aug 1998 | A |
5838913 | Lysejko et al. | Nov 1998 | A |
5862325 | Reed et al. | Jan 1999 | A |
5862471 | Tiedemann et al. | Jan 1999 | A |
5941988 | Bhagwat et al. | Aug 1999 | A |
5970121 | Homayoun | Oct 1999 | A |
5978780 | Watson | Nov 1999 | A |
6002689 | Christie | Dec 1999 | A |
6012098 | Bayeh et al. | Jan 2000 | A |
6016307 | Kaplan et al. | Jan 2000 | A |
6018359 | Kermode et al. | Jan 2000 | A |
6032190 | Bremer et al. | Feb 2000 | A |
6058301 | Daniels | May 2000 | A |
6088717 | Reed et al. | Jul 2000 | A |
6104718 | Christie | Aug 2000 | A |
6148290 | Dan et al. | Nov 2000 | A |
6178170 | Duree | Jan 2001 | B1 |
6226291 | Chauvel et al. | May 2001 | B1 |
6236642 | Shaffer et al. | May 2001 | B1 |
6263358 | Lee et al. | Jul 2001 | B1 |
6272343 | Pon et al. | Aug 2001 | B1 |
6278446 | Liou et al. | Aug 2001 | B1 |
6285871 | Daniels | Sep 2001 | B1 |
6363434 | Eytchison | Mar 2002 | B1 |
6385198 | Ofek et al. | May 2002 | B1 |
6405257 | Gersht et al. | Jun 2002 | B1 |
6421714 | Rai et al. | Jul 2002 | B1 |
6442518 | Van Thong et al. | Aug 2002 | B1 |
6456594 | Kaplan | Sep 2002 | B1 |
6487600 | Lynch | Nov 2002 | B1 |
6516194 | Hanson | Feb 2003 | B2 |
6519627 | Dan et al. | Feb 2003 | B1 |
6519693 | Debey | Feb 2003 | B1 |
6522883 | Titmuss et al. | Feb 2003 | B2 |
6535592 | Snelgrove | Mar 2003 | B1 |
6567375 | Balachandran et al. | May 2003 | B2 |
6571016 | Mehrotra et al. | May 2003 | B1 |
6606502 | Chung Kam Chung et al. | Aug 2003 | B1 |
6621801 | Wright et al. | Sep 2003 | B1 |
6697806 | Cook | Feb 2004 | B1 |
6710785 | Asai et al. | Mar 2004 | B1 |
6728267 | Giese et al. | Apr 2004 | B1 |
6738815 | Willis et al. | May 2004 | B1 |
6772413 | Kuznetsov | Aug 2004 | B2 |
6789126 | Saulpaugh et al. | Sep 2004 | B1 |
6836465 | Rajan et al. | Dec 2004 | B2 |
6836652 | Arima et al. | Dec 2004 | B2 |
6856963 | Hurwitz | Feb 2005 | B1 |
6901446 | Chellis et al. | May 2005 | B2 |
6917628 | McKinnin et al. | Jul 2005 | B2 |
6934530 | Engelhart | Aug 2005 | B2 |
6950847 | Harrisville-Wolff et al. | Sep 2005 | B2 |
6957226 | Attias | Oct 2005 | B2 |
6961893 | Mukund et al. | Nov 2005 | B1 |
6978308 | Boden et al. | Dec 2005 | B2 |
6980555 | Mar | Dec 2005 | B2 |
7043225 | Patel et al. | May 2006 | B1 |
7065496 | Subbloie et al. | Jun 2006 | B2 |
7155517 | Koponen | Dec 2006 | B1 |
7184548 | Wee et al. | Feb 2007 | B2 |
7191232 | Rigori et al. | Mar 2007 | B2 |
7191241 | Boucher et al. | Mar 2007 | B2 |
7249055 | Elder | Jul 2007 | B1 |
7289489 | Kung et al. | Oct 2007 | B1 |
7334039 | Majkut et al. | Feb 2008 | B1 |
7343416 | Hodges et al. | Mar 2008 | B2 |
7577582 | Ojha et al. | Aug 2009 | B1 |
8031598 | Beshai et al. | Oct 2011 | B2 |
20010005358 | Shiozawa | Jun 2001 | A1 |
20010014210 | Kang | Aug 2001 | A1 |
20010029544 | Cousins | Oct 2001 | A1 |
20010056504 | Kuznetsov | Dec 2001 | A1 |
20020021669 | Kunito et al. | Feb 2002 | A1 |
20020058532 | Snelgrove et al. | May 2002 | A1 |
20020073182 | Zakurdauv et al. | Jun 2002 | A1 |
20020087674 | Guilford | Jul 2002 | A1 |
20020106019 | Chaddha et al. | Aug 2002 | A1 |
20020112060 | Kato | Aug 2002 | A1 |
20020120744 | Chellis et al. | Aug 2002 | A1 |
20020128948 | Wiesehuegel et al. | Sep 2002 | A1 |
20020138398 | Kalin et al. | Sep 2002 | A1 |
20020138418 | Zarin et al. | Sep 2002 | A1 |
20020146102 | Lang | Oct 2002 | A1 |
20020161908 | Benitez et al. | Oct 2002 | A1 |
20020164018 | Wee et al. | Nov 2002 | A1 |
20020176378 | Hamilton | Nov 2002 | A1 |
20030004855 | Dutta et al. | Jan 2003 | A1 |
20030005103 | Narad et al. | Jan 2003 | A1 |
20030005154 | Thurman | Jan 2003 | A1 |
20030005155 | Carbonell et al. | Jan 2003 | A1 |
20030012136 | Walles | Jan 2003 | A1 |
20030012376 | Wee et al. | Jan 2003 | A1 |
20030033238 | Oskielunas et al. | Feb 2003 | A1 |
20030043815 | Tinsley | Mar 2003 | A1 |
20030051054 | Redllich et al. | Mar 2003 | A1 |
20030055723 | English | Mar 2003 | A1 |
20030088778 | Lindqvist | May 2003 | A1 |
20030093550 | Lebizay et al. | May 2003 | A1 |
20030093790 | Logan et al. | May 2003 | A1 |
20030097462 | Parent et al. | May 2003 | A1 |
20030100315 | Rankin | May 2003 | A1 |
20030105726 | Itoh et al. | Jun 2003 | A1 |
20030126610 | Ando | Jul 2003 | A1 |
20030143978 | Cooper et al. | Jul 2003 | A1 |
20030156543 | Sahinoglu et al. | Aug 2003 | A1 |
20030200336 | Pal et al. | Oct 2003 | A1 |
20030211856 | Zilliacus | Nov 2003 | A1 |
20030225677 | Sandholm et al. | Dec 2003 | A1 |
20030233332 | Keeler et al. | Dec 2003 | A1 |
20040008778 | Yang et al. | Jan 2004 | A1 |
20040019900 | Knightbridge et al. | Jan 2004 | A1 |
20040028049 | Wan | Feb 2004 | A1 |
20040030681 | Shannon et al. | Feb 2004 | A1 |
20040073701 | Huang et al. | Apr 2004 | A1 |
20040132449 | Kowarsch | Jul 2004 | A1 |
20040139208 | Tuli | Jul 2004 | A1 |
20040151382 | Stellenberg et al. | Aug 2004 | A1 |
20040160932 | Yegoshin | Aug 2004 | A1 |
20040205013 | DeLaCruz | Oct 2004 | A1 |
20040218895 | Samadani et al. | Nov 2004 | A1 |
20040220965 | Harville et al. | Nov 2004 | A1 |
20040221053 | Codella et al. | Nov 2004 | A1 |
20040249927 | Pezutti | Dec 2004 | A1 |
20040252681 | Rabipour et al. | Dec 2004 | A1 |
20040267686 | Chayes et al. | Dec 2004 | A1 |
20050025124 | Mitsumori et al. | Feb 2005 | A1 |
20050038637 | Balakrishnan et al. | Feb 2005 | A1 |
20050060420 | Kovacevic | Mar 2005 | A1 |
20050094725 | Hui | May 2005 | A1 |
20050102135 | Goronzy et al. | May 2005 | A1 |
20050183127 | Ngo et al. | Aug 2005 | A1 |
20060031515 | VanGassel et al. | Feb 2006 | A1 |
20060041679 | Feig | Feb 2006 | A1 |
20060058010 | Williams et al. | Mar 2006 | A1 |
20060206619 | Dan et al. | Sep 2006 | A1 |
20070112948 | Uhlik | May 2007 | A1 |
20070192862 | Vermeulen et al. | Aug 2007 | A1 |
20070203844 | Kuhn et al. | Aug 2007 | A1 |
20070226118 | Gill | Sep 2007 | A1 |
20070299771 | Brody et al. | Dec 2007 | A1 |
Number | Date | Country |
---|---|---|
WO 0041426 | Jul 2000 | WO |
Entry |
---|
Greene, William, “Sample selection in credit-scoring models”, Mar. 31, 1998, Dept. of Econ, Stern School of Business, NYU, Elsevier Science, Japan and the World Economy, pp. 299-316. |
O'Connell, Brian, “Around the World With Global Network”, Oct. 1993, DEC Professional, v12, No. 10, p. 38(6). |
Number | Date | Country | |
---|---|---|---|
20090100191 A1 | Apr 2009 | US |
Number | Date | Country | |
---|---|---|---|
Parent | 10720949 | Nov 2003 | US |
Child | 12334578 | US |