Source: http://www.google.com/patents/US20030065712?dq=7,546,338
Timestamp: 2017-03-23 17:06:15
Document Index: 245563227

Matched Legal Cases: ['art 500', 'art 500', 'art 500', 'art 500', 'art 500', 'art 500', 'art 500', 'art 500', 'art 500', 'art 500', 'art 500']

Patent US20030065712 - Multimedia stream pre-fetching and redistribution in servers to accommodate ... - Google PatentsSearch Images Maps Play YouTube News Gmail Drive More »Sign inPatentsA method and system for streaming media data to a mobile client device. Using information such as the previous locations of the mobile client device, a prediction is made of a future location of the client device. A server servicing the predicted location, such as the server closest to the predicted...http://www.google.com/patents/US20030065712?utm_source=gb-gplus-sharePatent US20030065712 - Multimedia stream pre-fetching and redistribution in servers to accommodate mobile clientsAdvanced Patent SearchTry the new Google Patents, with machine-classified Google Scholar results, and Japanese and South Korean patents.Publication numberUS20030065712 A1Publication typeApplicationApplication numberUS 09/969,474Publication dateApr 3, 2003Filing dateOct 1, 2001Priority dateOct 1, 2001Also published asUS7451205Publication number09969474, 969474, US 2003/0065712 A1, US 2003/065712 A1, US 20030065712 A1, US 20030065712A1, US 2003065712 A1, US 2003065712A1, US-A1-20030065712, US-A1-2003065712, US2003/0065712A1, US2003/065712A1, US20030065712 A1, US20030065712A1, US2003065712 A1, US2003065712A1InventorsGene Cheung, Tina Wong, Susie WeeOriginal AssigneeGene Cheung, Tina Wong, Wee Susie J.Export CitationBiBTeX, EndNote, RefManPatent Citations (10), Referenced by (91), Classifications (18), Legal Events (5) External Links: USPTO, USPTO Assignment, EspacenetMultimedia stream pre-fetching and redistribution in servers to accommodate mobile clients
CROSS REFERENCE TO RELATED APPLICATION [0001] This Application is a Continuation-in-Part of the co-pending, commonly-owned U.S. patent application, Attorney Docket No. HP10012167, Ser. No.______, filed Jul. 3, 2001, by J. G. Apostolopoulos et al., and entitled “Method for Handing Off Multiple Description Streaming Media Sessions Between Servers in Fixed and Mobile Streaming Media Systems.”
TECHNICAL FIELD [0002] The present claimed invention relates to the field of streaming media. More specifically, the present claimed invention relates to delivering streamed data to mobile clients. BACKGROUND ART [0003] Networks such as the Internet are primarily designed for delivering static, non-real-time data to fixed clients such as desktop and laptop computers. In comparison, networks such as wireless networks face unique challenges because they need to provide services to clients with greater mobility that may be anywhere within any of the different regions of coverage. [0004] In the case of streaming media services, these challenges are intensified due to the richness of the streamed media data. The volume of streamed media data to be delivered to each client is large and sensitive to delays. The streamed data need to be delivered without interruption and within certain time constraints while the client roams freely among the regions of coverage. Moreover, as the mobile client migrates from one region (cell) to another, the data source (e.g., a server or some other such content provider) and the data delivery path also need to change correspondingly so that the delivery of data to the client is maintained at a satisfactory level. [0005] The challenges faced with streaming media services to mobile clients are further intensified when considering issues like system scalability, which extends service to a larger number of users, and quality-of-service and fault tolerance, which provide mobile users with continuous, uninterrupted streaming media sessions. Other considerations include the load on the data source, network conditions such as congestion along the data delivery path, and the loads at the various nodes (e.g., servers and routers) in the network. [0006] In response to these challenges, a method was developed for distributing multimedia data to servers closest to regions in which high concentrations of interested clients are expected. This method is described in the co-pending, commonly-owned US Patent Application, Attorney Docket No. HP10012165, Ser. No.______, filed Jul. 3, 2001, by J. G. Apostolopoulos et al., and entitled “Method for Assigning a Streaming Media Session to a Server in Fixed and Mobile Streaming Media Systems,” hereby incorporated by reference. [0007] According to the referenced method, content (e.g., multimedia data) is placed at servers with anticipated high demand (“hot spots”). These hot spots are identified based on a variety of factors including user statistics. The hot spot evaluation can be repeated to update the list of hot spots as user statistics change. [0008] Generally speaking, the referenced method accomplishes its objectives based on an evaluation of historical information. However, there may be instances not anticipated by the historical information. Accordingly, what is needed is a method and/or system that does not rely solely on historical information to guide the distribution of multimedia data to a mobile client. The present invention provides a novel solution to this need. DISCLOSURE OF THE INVENTION [0009] The present invention provides a method and system for streaming multimedia data to a mobile client. In particular, the present invention provides a method and system for streaming multimedia data to a mobile client by predicting a future location of the client and placing the multimedia data on the server(s) that service that location ahead of the client's arrival at that location. [0010] In its various embodiments, the present invention provides a method (and system thereof) for proactively predicting client mobility, and for distributing multimedia data to servers in response to the prediction. In accordance with the present invention, a fairly accurate estimate of the client's future position is determined using any of a variety of different means. In one embodiment, using previous position information, the client's rate and direction of travel can be determined, and a projected position at a future time (or as a function of time) can be estimated from this information. Similarly, information regarding which servers were previously in communication with the client device can be used to predict a position at a future time or as a function of time. Alternatively, using an application interface on the client device, the client can identify an ultimate destination, a planned course of travel, and the mode of travel. There are many other ways that can be used to predict the client's future position(s) at different time intervals. [0011] Having determined a future position of the client (in particular, the next position of the client), a server closest to that position can be identified. Because there may be an error associated with the predicted position, a neighborhood of servers essentially centered around the server closest to the predicted position can also be identified. The number of servers included in the neighborhood is a function of the confidence in the prediction as well as other factors such as quality of service and the current loads across the servers, the characteristics of the server (e.g., the amount of memory available), and the network conditions (e.g., network loads, available bandwidth, and data packet loss rate). There is a fundamental tradeoff between efficiency and redundancy: with fewer servers in the neighborhood, the overall efficiency of the system is greater, but the level of redundancy is reduced, potentially affecting the quality of the data delivered to the client. The number of servers included in the neighborhood is a design parameter that can be adjusted based on, for example, the service-level agreement in place between the client and the service provider. [0012] After identifying the server(s) that can service the future (e.g., next) position of the client, the data stream(s) requested by the client can be prefetched and distributed to those servers ahead of the arrival of the client. In one embodiment, once the server(s) are identified, they are alerted to the potential arrival of the client, either by the server currently in communication with the client or by a central source. The server(s) can then pull the requested data stream(s) prior to the client's arrival, either from a content source or from another server (such as the server currently servicing the client). Alternatively, with or without an alert, the requested data stream(s) can be pushed to the server(s) from either the content source or another server. [0013] In one embodiment, the data stream comprises complementary multiple description bitstreams. However, the present invention addresses the general placement and migration of media streams and is independent of the media coding method. [0014] These and other technical advantages of the present invention will no doubt become obvious to those of ordinary skill in the art after having read the following detailed description of the preferred embodiments which are illustrated in the various drawing figures. BRIEF DESCRIPTION OF THE DRAWINGS [0015] The accompanying drawings, which are incorporated in and form a part of this specification, illustrate embodiments of the invention and, together with the description, serve to explain the principles of the invention: [0016] [0016]FIG. 1 is a block diagram of an exemplary computer system used to perform steps of the present method in accordance with various embodiments of the present claimed invention. [0017] [0017]FIG. 2 is a block diagram illustrating multiple description coding of media data as employed in accordance with various embodiments of the present claimed invention. [0018] [0018]FIG. 3 illustrates a mobile client system employed in accordance with various embodiments of the present claimed invention. [0019] [0019]FIG. 4 illustrates prefetching and distribution of media data in a mobile client system in accordance with various embodiments of the present claimed invention. [0020] [0020]FIG. 5 is a flowchart of the steps in a process for prefetching and distributing media data in accordance with various embodiments of the present claimed invention.
[0021] The drawings referred to in this description should be understood as not being drawn to scale except if specifically noted. BEST MODES FOR CARRYING OUT THE INVENTION [0022] Reference will now be made in detail to the preferred embodiments of the invention, examples of which are illustrated in the accompanying drawings. While the invention will be described in conjunction with the preferred embodiments, it will be understood that they are not intended to limit the invention to these embodiments. On the contrary, the invention is intended to cover alternatives, modifications and equivalents, which may be included within the spirit and scope of the invention as defined by the appended claims. Furthermore, in the following detailed description of the present invention, numerous specific details are set forth in order to provide a thorough understanding of the present invention. However, it will be obvious to one of ordinary skill in the art that the present invention may be practiced without these specific details. In other instances, well known methods, procedures, components, and circuits have not been described in detail as not to unnecessarily obscure aspects of the present invention. [0023] It should be borne in mind, however, that all of these and similar terms are to be associated with the appropriate physical quantities and are merely convenient labels applied to these quantities. Unless specifically stated otherwise as apparent from the following discussions, it is appreciated that throughout the present application, discussions utilizing terms such as “receiving,” “determining,” “identifying,” “alerting,” “directing,” “predicting,” “informing” or the like, refer to the actions and processes of a computer system or similar electronic computing device. The computer system or similar electronic computing device manipulates and transforms data represented as physical (electronic) quantities within the computer system's registers and memories into other data similarly represented as physical quantities within the computer system memories or registers or other such information storage, transmission, or display devices. The present invention is also well suited to the use of other computer systems such as, for example, optical and mechanical computers. Computer System Environment of the Present Invention [0024] With reference now to FIG. 1, portions of the present method and system are comprised of computer-readable and computer-executable instructions which reside, for example, in computer-usable media of a computer system. FIG. 1 illustrates an exemplary computer system 100 used in accordance with one embodiment of the present invention. It is appreciated that system 100 of FIG. 1 is exemplary only and that the present invention can operate on or within a number of different computer systems including general purpose networked computer systems, embedded computer systems, routers, switches, server devices, client devices, various intermediate devices/nodes, stand alone computer systems, and the like. Additionally, computer system 100 of FIG. 1 is well adapted having computer readable media such as, for example, a floppy disk, a compact disc, and the like coupled thereto. Such computer readable media is not shown coupled to computer system 100 in FIG. 1 for purposes of clarity. Additionally, portions of the present embodiment are well suited to operating in conjunction with various mobile clients such as, for example, a cell phone, personal digital assistant (PDA), laptop computer, pager, and the like. [0025] System 100 of FIG. 1 includes an address/data bus 102 for communicating information, and a central processor unit 104 coupled to bus 102 for processing information and instructions. System 100 also includes data storage features such as a computer usable volatile memory 106, e.g. random access memory (RAM), coupled to bus 102 for storing information and instructions for central processor unit 104, computer usable non-volatile memory 108, e.g. read only memory (ROM), coupled to bus 102 for storing static information and instructions for the central processor unit 104, and a data storage unit 110 (e.g., a magnetic or optical disk and disk drive) coupled to bus 102 for storing information and instructions. System 100 of the present invention also includes an optional alphanumeric input device 112 including alphanumeric and function keys coupled to bus 102 for communicating information and command selections to central processor unit 104. System 100 also optionally includes an optional cursor control device 114 coupled to bus 102 for communicating user input information and command selections to central processor unit 104. System 100 of the present embodiment also includes an optional display device 116 coupled to bus 102 for displaying information. [0026] Referring still to FIG. 1, optional display device 116 of FIG. 1 may be a liquid crystal device, cathode ray tube, or other display device suitable for creating graphic images and alphanumeric characters recognizable to a user. Optional cursor control device 114 allows the computer user to dynamically signal the two dimensional movement of a visible symbol (cursor) on a display screen of display device 116. Many implementations of cursor control device 114 are known in the art including a trackball, mouse, touch pad, joystick or special keys on alphanumeric input device 112 capable of signaling movement of a given direction or manner of displacement. Alternatively, it will be appreciated that a cursor can be directed and/or activated via input from alphanumeric input device 112 using special keys and key sequence commands. The present invention is also well suited to directing a cursor by other means such as, for example, voice commands. Multiple Description Coding of Media Data [0027] In general, the present invention provides a method and system for streaming multimedia data to a mobile client. In particular, the present invention provides a method and system for streaming multimedia data to a mobile client by predicting a future location of the client and placing the multimedia data on the server(s) that service that location ahead of the client's arrival at that location. [0028] With reference to FIG. 2, in one embodiment, the multimedia data comprise complementary multiple description bitstreams. However, it is understood that the present invention covers the general placement and migration of media data on servers and is independent of the method of coding or delivery such data. Of course, buffering and downloading are allowed, and various degrees of buffering can be accommodated in this system; thus, this system supports both live and buffered media streams. [0029] [0029]FIG. 2 illustrates complementary multiple description coding of media data as employed with various embodiments of the present invention. Complementary multiple description bitstreams are further described in commonly-owned, co-pending U.S. patent application Attorney Docket No. HP10012162, entitled “Method and System for Delivering Streaming Media to Fixed Clients or Mobile Clients with Multiple Description Bitstreams,” filed Jul. 3, 2001, to J. G. Apostolopoulos et al., and hereby incorporated by reference. [0030] For purposes of clarity and brevity, the following discussion and examples are described in the context of video data. However, it is understood that the present invention is well suited to use with video-based data, audio-based data, speech-based data, image-based data, web page-based data, graphic data and the like. [0031] Multiple description coding (MDC) refers to one form of compression where the goal is to code an incoming signal into a number of separate bitstreams, where the multiple bitstreams are often referred to as multiple descriptions. These separate bitstreams have the property that they are all independently decodable from one another. Specifically, if a decoder receives any single bitstream, it can decode that bitstream to produce a useful signal (without requiring access to any of the other bitstreams). [0032] MDC has the additional property that the quality of the decoded signal improves as more bitstreams are accurately received. For example, assume that a video is coded with MDC into a total of N streams. As long as a decoder receives any one of these N streams it can decode a useful version of the video. If the decoder receives two streams it can decode an improved version of the video as compared to the case of only receiving one of the streams. This improvement in quality continues until the receiver receives all N of the streams, in which case it can reconstruct the maximum quality. [0033] As shown in FIG. 2, a multiple description encoder 202 codes an original signal into two streams, referred to as stream 1 and stream 2. In the example of FIG. 2, there are three decoders 204, 206, and 208. Each of the decoders 204, 206, and 208 receives different bitstreams. Decoder 1 204 receives only stream 1 and decodes that stream to produce usable video. Decoder 2 206 receives only stream 2 and decodes that stream to produce usable video. Decoder 3 208 receives both stream 1 and stream 2 and decodes both streams to produce higher quality video than either decoder 1 204 or decoder 2 206. Mobile Streaming Media System [0034] With reference now to FIG. 3, a system 300 that delivers streaming media to mobile clients over wired and/or wireless networks in accordance with one embodiment of the present invention is shown. In one embodiment, system 300 consists of one or more servers (304 a-304 e), one or more wireless base stations (306 a and 306 b), and one or more mobile clients (e.g., cell phone 302 and/or PDAs 308 a and 308 b) as shown in FIG. 3. A content server 310 (content source) may also form a portion of system 300. The system of the present invention may include a greater or lesser number of components than are specifically illustrated in the embodiment of FIG. 3. For example, a number of routers may be employed to distribute information from content server 310 to the various servers 304 a-304 e. [0035] The term “server” is intended to encompass a device functionally resembling a computer (e.g., having computation ability, memory, and/or connectivity capability). A typical server according to the definition as used in the present application may include, but is not limited to, any computer (e.g., mainframe, corporate server, personal computer, laptop, PDA, and the like). In various other embodiments of the present invention, the term “server” is intended to encompass a device not typically considered a computer but having similar capabilities. In such an embodiment, the server is comprised, for example, of an advanced cell phone. [0036] Furthermore, it should be noted the present invention is well suited to use in any of a variety of wired and/or wireless networks serving mobile clients, and also in the various combinations thereof. For example, embodiments of the present invention are well suited to use in: wired and wired networks (e.g., a wired network infrastructure also having a wired connection to the mobile client); wired and wireless networks (e.g., a wired network infrastructure having a wireless connection to the mobile client); wireless and wired networks (e.g., a wireless network infrastructure having a wired connection to the mobile client); and wireless and wireless networks (e.g., a wireless network infrastructure also having a wireless connection to the mobile client). In addition, the methods of the present invention are also applicable if all of the links are wireless, as in the case of an ad-hoc wireless network where some of the nodes are acting as servers and others as clients. Note that a node may act as both a server (source of information) and a client (sink of information) at the same time. Multimedia Stream Pre-fetching and Redistribution in Servers [0037] [0037]FIG. 4 illustrates prefetching and distribution of media data in a mobile client system 300 in accordance with various embodiments of the present invention. As described above, the present invention is well suited to use in any of a variety of wired and/or wireless networks serving mobile clients, and also in the various combinations thereof. [0038] In the embodiment of FIG. 4, system 300 includes a content source 310 (content server) and a number of servers 304 a-304 f. Content source 310 can communicate with (e.g., provide data to and receive data from) the servers using either a wired or wireless network infrastructure. For example, content source 310 can provide multimedia data to servers (e.g., servers 304 b and 304 e) via the wired infrastructure 450 including routers 405 a and 405 b according to means known in the art. Similarly, content source 310 can provide multimedia data to servers (e.g., servers 304 d and 304 f) via wireless infrastructure 451 and 452 according to means known in the art. Alternatively, one server can communicate the data to another server, either directly or through the network. That is, for example, a previous server 304 b can forward the multimedia data to the current server 304 d via a wired or wireless link 440, or via routers 405 a and 405 b. [0039] System 300 also comprises a number of wireless cells exemplified by cells 410, 412 and 414. The mobile client device 308 a is free to roam within the cells and from cell to cell. An exemplary path taken by mobile client device 308 a is illustrated as migration path 420. The cell in which the mobile client device 308 a is currently positioned is identified as cell 412. [0040] Client device 308 a receives streamed multimedia data from different servers as it moves along migration path 420. Initially, client device receives the data stream from a previous server 304 b and then from current server 304 d. Typically, the multimedia data are delivered to client device 308 a wirelessly (e.g., via the wireless signal 453); however, the present invention is well suited for wired delivery of data to mobile client 308 a. [0041] In accordance with the present invention, as client device 308 a moves from one wireless cell to the next (e.g., from cell 410 to cell 412), its future position (e.g., cell 414) is predicted and the requested content (multimedia data) is prefetched to the server (e.g., server 304 f) that can service the predicted position. If the future position of client device 308 a can be fairly accurately predicted, it may be possible to prefetch data only to a single server. If, however, the prediction of the future position of client device 308 a is subject to significant error, then the data are prefetched to a number of servers (a neighborhood of servers) so that a larger area, encompassing the potential position of client device 308 a, can be serviced. For example, multimedia data are also prefetched to server 304 e in the neighborhood 430 c of server 304 f if there is some uncertainty with regard to whether client device 308 a will be in cell 414 or an adjacent cell. [0042] Note that neighborhoods can overlap such that a server may be considered a member of more than one neighborhood. For example, server 304 e may be in neighborhood 430 b and in neighborhood 430 c. Of course, if a server already contains the requested content (multimedia data), then there is no need to prefetch the data to that server. For instance, server 304 e may have received the data stream in a prefetch that occurred prior to the movement of client device 308 a into cell 412, and therefore server 304 e may not need to prefetch data in anticipation of the movement of client device 308 a into cell 414. Thus, unnecessary or duplicate data transfers are avoided. [0043] In one embodiment, the server 304 f selected to service the predicted position of client device 308 a is the server that is closest to the predicted position (cell 414). Generally, the server selected is the server topologically closest to the base station(s) of cell 414. However, in the present invention, “closeness” can also be weighted by the current network conditions so that a server with congested links may appear “far” from cell 414 even though it may be topologically close. [0044] When client device 308 a moves during a streaming session, it is necessary to hand off the session between base stations (e.g., between base stations 306 a and 306 b of FIG. 3) and between servers (e.g., between servers 304 b and 304 d of FIG. 4). As used herein, a “session” is viewed from the client's perspective and thus refers to the continuous streaming of media data to the client, although different base stations or servers may be needed to accomplish this. Different approaches for handing off sessions between base stations and between servers can be used in accordance with the present invention. Various approaches for accomplishing handoffs are described in the co-pending, commonly-owned U.S. patent application, Attorney Docket No. HP10012168, Ser. No. ________, filed Jul. 3, 2001, by J. G. Apostolopoulos et al., and entitled “System and Method for Receiving Multiple Description Media Streams Between Servers in Fixed and Mobile Streaming Media Systems,” hereby incorporated by reference. [0045] [0045]FIG. 5 is a flowchart 500 of the steps in a process for prefetching and distributing media data in accordance with various embodiments of the present invention. Flowchart 500 includes processes of the present invention which, in one embodiment, are carried out by a processor (e.g., processor 104 of FIG. 1) under the control of computer-readable and computer-executable instructions. The computer-readable and computer-executable instructions reside, for example, in data storage features such as computer usable volatile memory 106, computer usable non-volatile memory 108, and/or data storage device 110 of FIG. 1. [0046] Although specific steps are disclosed in flowchart 500 of FIG. 5, such steps are exemplary. That is, the present invention is well suited to performing various other steps or variations of the steps recited in flowchart 500. It is appreciated that the steps in flowchart 500 may be performed in an order different than presented, and that not all of the steps in flowchart 500 may be performed. [0047] With reference to both FIG. 4 and FIG. 5, the exemplary steps in flowchart 500 are described. It is anticipated that the steps in flowchart 500 will be performed for each client device on a client-by-client basis. In step 510, the multimedia data stream are loaded to a first server (e.g., server 304 d) from a source such as previous server 304 b or content source 310. Content source 310 may be the original source of the data. [0048] Server 304 d may pull the data from a source or the data may be pushed to server 304 d. The multimedia data stream loaded into server 304 d may comprise the entire set of streaming data requested by client device 308 a or it may comprise some portion of that data. Server 304 d may be the first server in communication with client device 308 a at the beginning of a streaming session, or server 304 d may have been handed the streaming session by another server (e.g., previous server 304 b). [0049] In step 520, multimedia data are streamed from current server 304 d to client 308 a. [0050] In step 530, the next (future) position (e.g., cell 414) of client device 308 a is predicted. The prediction may be executed by current server 304 d, content source 310, or virtually any of the other intelligent devices in system 300. A displacement vector can be determined based on the predicted location (cell 414) relative to the current location (cell 412). [0051] In one embodiment, using previous position information, the rate and direction of travel of client 308 a can be determined, and a projected position at a future time (or as a function of time) can be estimated from this information. Similarly, information regarding which servers were previously in communication with client device 308 a can be used to predict a position at a future time or as a function of time. Alternatively, using an application interface on client device 308 a, the user can identify an ultimate destination, a planned course of travel, and the mode of travel, as well as other information that might aid in the prediction of projected position. There are many other ways that can be used to predict the client's next or future position(s). [0052] In step 535, based on the amount of uncertainty in the prediction, a single server can be selected to receive prefetched multimedia data, or a neighborhood comprising multiple servers can be selected to receive the prefetched data. The number of servers included in the neighborhood is a function of the confidence in the prediction as well as other factors such as quality of service and the current loads across the servers. Other factors that can be considered include server characteristics such as the amount of storage space (e.g., memory) available, and network conditions such as the load on the network, the available bandwidth, and the data packet loss rate. There is a fundamental tradeoff between efficiency and redundancy: with fewer servers in the neighborhood, the overall efficiency of the system is greater, but the level of redundancy is reduced, potentially affecting the quality of the data delivered to the client. The number of servers included in the neighborhood is a design parameter that can be adjusted based on, for example, the service-level agreement in place between the client and the service provider. [0053] It is appreciated that other factors can be considered in the decision whether to select a single server or multiple servers. For example, if a single server is selected but that server is or may be experiencing a high load, then one or more additional servers may be also selected in order to provide a backup to the selected server should it be too busy when needed by client device 308 a. [0054] If a single server is selected, then flowchart 500 proceeds to step 540. If multiple servers are selected, then flowchart 500 proceeds to step 550. [0055] In step 540, a server (e.g., server 304 f) that has the capability to service cell 414 is identified and selected. In one embodiment, server 304 f is the server located topologically closest to cell 414. However, as described above, a different server may be selected based on network conditions such as the loads already placed on server 304 f. [0056] In step 542, in one embodiment, prefetch information (e.g., an alert) is sent to server 304 f to alert that server to the anticipated arrival of client device 308 a. The source of the alert can be content source 310, current server 304 d, or any of the other intelligent devices in the system 300. [0057] In step 544, the multimedia data stream requested by client device 308 a, or a portion of that data stream, is obtained by server 304 f. If the data are already present on server 304 f, as explained above, then there is no need to prefetch the data to server 304 f, thus avoiding unnecessary data transfers. In one embodiment, the server 304 f is queried to determine whether the server has the media data. In one embodiment, the data are pushed to server 304 f from a source. In another embodiment, the data are pulled from a source by server 304 f, perhaps in response to the alert of step 542. The data can be obtained from the original source of the data, which may be content source 310, or from current server 304 d. [0058] In step 550, multiple servers (e.g., servers 304 e and 304 f) in a neighborhood of servers (e.g., neighborhood 430 c) that have the capability to service cell 414 and adjacent cells are identified and selected based, for example, on the uncertainty in the predicted position of client device 308 a or other factors as explained above. In step 552, in one embodiment, the selected servers are alerted to the anticipated arrival of client device 308 a in a manner like that described in step 542. In step 554, the multimedia data stream requested by client device 308 a, or a portion of that data stream, is obtained by the multiple servers (e.g., servers 304 e and 304 f) in a manner like that described in step 544. Note that servers in the predicted neighborhood do not each need to receive the same quality of data. Servers in the predicted neighborhood can prefetch data of varying quality depending on the optimization of factors such as storage and quality. For example, servers that have a lesser probability of contacting client device 308 a can prefetch content of lower quality. [0059] In step 560, client device 308 a accesses server 304 f or another server in neighborhood 430 c depending on its actual position. Flowchart 500 then returns to step 530 to predict the next position of client device 308 a, and the process is repeated until client device 308 a has received the requested multimedia data stream in entirety or until the session is terminated for some other reason. [0060] Thus, the present invention provides a method and system for streaming multimedia data to a mobile client. In particular, the present invention provides a method and system for streaming multimedia data to a mobile client by predicting a future location of the client and placing the multimedia data on the server(s) that service that location ahead of the client's arrival at that location. [0061] Note that the method of the present invention includes the following base cases. When the prediction of the future (next) position of a client device is perfect, the size of a neighborhood is zero and no redundancy of data across multiple servers is needed. When the mobility of a client device cannot be predicted, or when the client device is stationary or essentially stationary, the displacement vector is zero and the data streams are simply distributed to the current server, or to the current server and its neighborhood. [0062] When the size of the neighborhood is zero and the displacement vector is zero, the method of the present invention defaults to the case described in the above-referenced U.S. patent application, Attorney Docket No. HP10012165, Ser. No. _______, filed Jul. 3, 2001, by J. G. Apostolopoulos et al., and entitled “Method for Assigning a Streaming Media Session to a Server in Fixed and Mobile Streaming Media Systems.” That is, the method of the present invention can be used both proactively and reactively. [0063] The foregoing descriptions of specific embodiments of the present invention have been presented for purposes of illustration and description. They are not intended to be exhaustive or to limit the invention to the precise forms disclosed, and obviously many modifications and variations are possible in light of the above teaching. The embodiments were chosen and described in order to best explain the principles of the invention and its practical application, to thereby enable others skilled in the art to best utilize the invention and various embodiments with various modifications as are suited to the particular use contemplated. It is intended that the scope of the invention be defined by the Claims appended hereto and their equivalents. Patent CitationsCited PatentFiling datePublication dateApplicantTitleUS5572221 *Oct 26, 1994Nov 5, 1996Telefonaktiebolaget Lm EricssonMethod and apparatus for detecting and predicting motion of mobile terminalsUS6215441 *Apr 28, 1998Apr 10, 2001Snaptrack, Inc.Satellite positioning reference system and methodUS6311065 *Feb 12, 1998Oct 30, 2001Fujitsu LimitedMobile communication system for predicting a transfer location of a mobile stationUS6377805 *Aug 4, 1999Apr 23, 2002International Business Machines CorporationMaintaining data communication through neighboring mobile units during handoffUS6397065 *Feb 17, 1998May 28, 2002Nokia Telecommunications OyCellular radio access network and location updating in a cordless communications systemUS6449484 *Jan 14, 1998Sep 10, 2002Telefonaktiebolaget Lm Ericsson (Publ)Method and arrangement in a radio communications systemUS6651105 *Nov 12, 1999Nov 18, 2003International Business Machines CorporationMethod for seamless networking support for mobile devices using serial communicationsUS6845398 *Aug 2, 1999Jan 18, 2005Lucent Technologies Inc.Wireless multimedia playerUS20020085719 *Oct 22, 2001Jul 4, 2002Bluesocket, Inc.Method and system for enabling centralized control of wireless local area networksUS20050132049 *Jan 21, 2005Jun 16, 2005Kabushiki Kaisha ToshibaScheme for information delivery to mobile computers using cache servers* Cited by examinerReferenced byCiting PatentFiling datePublication dateApplicantTitleUS7085576 *Dec 30, 2002Aug 1, 2006Motorola, Inc.Method and apparatus for providing streaming information to a wireless mobile wireless deviceUS7366185Feb 3, 2004Apr 29, 2008Lockheed Martin CorporationSystem for evolutionary service migrationUS7519683 *Apr 26, 2004Apr 14, 2009International Business Machines CorporationDynamic media content for collaborators with client locations in dynamic client contextsUS7653400Jun 28, 2005Jan 26, 2010Research In Motion LimitedProbabilistic location prediction for a mobile stationUS7697449Nov 12, 2004Apr 13, 2010Marvell International Ltd.Adaptively determining a data rate of packetized information transmission over a wireless channelUS7774693Jul 11, 2008Aug 10, 2010International Business Machines CorporationDifferential dynamic content delivery with device controlling actionUS7827239 *Apr 26, 2004Nov 2, 2010International Business Machines CorporationDynamic media content for collaborators with client environment information in dynamic client contextsUS7836511Jun 14, 2006Nov 16, 2010Microsoft CorporationEnforcing advertisement playback for downloaded media contentUS7864678 *Dec 11, 2003Jan 4, 2011Marvell International Ltd.Rate adaptation in wireless systemsUS7890848Jan 13, 2004Feb 15, 2011International Business Machines CorporationDifferential dynamic content delivery with alternative content presentationUS7962156Sep 21, 2009Jun 14, 2011Research In Motion LimitedProbabilistic location prediction for a mobile stationUS7975310Jun 14, 2006Jul 5, 2011Microsoft CorporationOffline playback of advertising supported mediaUS8005025Jul 9, 2008Aug 23, 2011International Business Machines CorporationDynamic media content for collaborators with VOIP support for client communicationsUS8010885Sep 29, 2008Aug 30, 2011International Business Machines CorporationDifferential dynamic content delivery with a presenter-alterable session copy of a user profileUS8107974May 5, 2011Jan 31, 2012Research In Motion LimitedProbabilistic location prediction for a mobile stationUS8149810Jul 14, 2003Apr 3, 2012Marvell International Ltd.Data rate adaptation in multiple-in-multiple-out systemsUS8161112Mar 29, 2008Apr 17, 2012International Business Machines CorporationDynamic media content for collaborators with client environment information in dynamic client contextsUS8161131Mar 29, 2008Apr 17, 2012International Business Machines CorporationDynamic media content for collaborators with client locations in dynamic client contextsUS8180832Dec 10, 2008May 15, 2012International Business Machines CorporationDifferential dynamic content delivery to alternate display device locationsUS8185814Jul 8, 2004May 22, 2012International Business Machines CorporationDifferential dynamic delivery of content according to user expressions of interestUS8214432Mar 28, 2008Jul 3, 2012International Business Machines CorporationDifferential dynamic content delivery to alternate display device locationsUS8265638 *Mar 27, 2008Sep 11, 2012Broadcom CorporationChannel frequency reuse for narrow beam video streaming based upon mobile terminal location informationUS8499232Jan 13, 2004Jul 30, 2013International Business Machines CorporationDifferential dynamic content delivery with a participant alterable session copy of a user profileUS8532081Mar 20, 2012Sep 10, 2013Marvell International Ltd.Data rate adaptation in multiple-in-multiple-out systemsUS8578263Jun 22, 2007Nov 5, 2013International Business Machines CorporationDifferential dynamic content delivery with a presenter-alterable session copy of a user profileUS8621067 *Sep 10, 2009Dec 31, 2013At&T Intellectual Property I, LpApparatus and method for managing communicationsUS8644154 *Feb 20, 2009Feb 4, 2014Clearwire Ip Holdings LlcPredictive throughput managementUS8687510Mar 30, 2010Apr 1, 2014Marvell International Ltd.Adaptively determining a data rate of packetized information transmission over a wireless channelUS8688852 *Jun 27, 2006Apr 1, 2014Thomson LicensingSupport for interactive playback devices for performance aware peer-to-peer content-on-demandUS8693331Jan 3, 2011Apr 8, 2014Marvell International Ltd.Rate adaptation in wireless systemsUS8861499Sep 9, 2013Oct 14, 2014Marvell International Ltd.Data rate adaptation in multiple-in-multiple-out systemsUS8924503Dec 7, 2011Dec 30, 2014International Business Machines CorporationData services using location patterns and intelligent cachingUS8943162Dec 11, 2012Jan 27, 2015International Business Machines CorporationData services using location patterns and intelligent cachingUS8972550 *Sep 10, 2009Mar 3, 2015At&T Intellectual Property I, L.P.Apparatus and method for establishing communicationsUS9001662 *Jun 2, 2014Apr 7, 2015Fujitsu LimitedControl method, control device, and communication systemUS9037700Apr 29, 2011May 19, 2015International Business Machines CorporationPredictive placement of content through network analysisUS9167087 *Jul 13, 2004Oct 20, 2015International Business Machines CorporationDynamic media content for collaborators including disparate location representationsUS9170851 *Oct 26, 2011Oct 27, 2015International Business Machines CorporationConnection distribution for load balancing in a distributed databaseUS9178632Sep 2, 2008Nov 3, 2015Qualcomm IncorporatedMethods and apparatus for an enhanced media content rating systemUS9271192Apr 3, 2014Feb 23, 2016Marvell International Ltd.Rate adaptation in wireless systemsUS9369914Mar 24, 2014Jun 14, 2016Marvell International Ltd.Adaptively determining a data rate of packetized information transmission over a wireless channelUS9378187Dec 11, 2003Jun 28, 2016International Business Machines CorporationCreating a presentation documentUS9531799 *Jun 19, 2014Dec 27, 2016Vmware, Inc.Reducing restoration time for virtual machinesUS9537971 *Jan 29, 2015Jan 3, 2017Huawei Technologies Co., Ltd.Systems, devices and methods for distributed content pre-fetching in mobile communication networksUS20040156333 *Feb 3, 2004Aug 12, 2004General Electric CompanySystem for evolutionary service migrationUS20040192342 *Dec 30, 2002Sep 30, 2004Sowmyan RanganathanMethod and apparatus for providing streaming information to a wireless mobile wireless deviceUS20050132271 *Dec 11, 2003Jun 16, 2005International Business Machines CorporationCreating a session document from a presentation documentUS20050132273 *Dec 11, 2003Jun 16, 2005International Business Machines CorporationAmending a session document during a presentationUS20050132274 *Dec 11, 2003Jun 16, 2005International Business Machine CorporationCreating a presentation documentUS20050132275 *Dec 11, 2003Jun 16, 2005International Business Machines CorporationCreating a presentation documentUS20050165900 *Jan 13, 2004Jul 28, 2005International Business Machines CorporationDifferential dynamic content delivery with a participant alterable session copy of a user profileUS20050240602 *Apr 26, 2004Oct 27, 2005International Business Machines CorporationDynamic media content for collaborators with client locations in dynamic client contextsUS20050240603 *Apr 26, 2004Oct 27, 2005International Business Machines CorporationDynamic media content for collaborators with client environment information in dynamic client contextsUS20060010365 *Jul 8, 2004Jan 12, 2006International Business Machines CorporationDifferential dynamic delivery of content according to user expressions of interestUS20060010370 *Jul 8, 2004Jan 12, 2006International Business Machines CorporationDifferential dynamic delivery of presentation previewsUS20060014546 *Jul 13, 2004Jan 19, 2006International Business Machines CorporationDynamic media content for collaborators including disparate location representationsUS20060293064 *Jun 28, 2005Dec 28, 2006Research In Motion LimitedProbabilistic location prediction for a mobile stationUS20070250602 *Jun 22, 2007Oct 25, 2007Bodin William KDifferential Dynamic Content Delivery With A Presenter-Alterable Session Copy Of A User ProfileUS20070294292 *Jun 14, 2006Dec 20, 2007Microsoft CorporationAdvertising transfer and playback on portable devicesUS20070294772 *Jun 14, 2006Dec 20, 2007Microsoft CorporationEnforcing advertisement playback for downloaded media contentUS20070294773 *Jun 14, 2006Dec 20, 2007Microsoft CorporationOffline playback of advertising supported mediaUS20080140840 *Dec 11, 2006Jun 12, 2008International Business Machines CorporationCaching Data at Network Processing Nodes Based on Device LocationUS20080177837 *Mar 29, 2008Jul 24, 2008International Business Machines CorporationDynamic Media Content For Collaborators With Client Locations In Dynamic Client ContextsUS20080177838 *Mar 29, 2008Jul 24, 2008Intrernational Business Machines CorporationDynamic Media Content For Collaborators With Client Environment Information In Dynamic Client ContextsUS20080177866 *Mar 27, 2008Jul 24, 2008International Business Machines CorporationDifferential Dynamic Delivery Of Content To Users Not In Attendance At A PresentationUS20090037820 *Sep 29, 2008Feb 5, 2009International Business Machines CorporationDifferential Dynamic Content Delivery With A Presenter-Alterable Session Copy Of A User ProfileUS20090046678 *Aug 17, 2007Feb 19, 2009Industry-Academic Cooperation Foundation Of Kyung Hee UniversityMethod for predicting the mobility in mobile ad hoc networksUS20090089659 *Dec 10, 2008Apr 2, 2009International Business Machines CorporationDifferential Dynamic Content Delivery To Alternate Display Device LocationsUS20090202221 *Jun 27, 2006Aug 13, 2009Thomson LicensingSupport for Interactive Playback Devices for Performance Aware Peer-to-Peer Content-on Demand ServiceUS20090247173 *Mar 27, 2008Oct 1, 2009Broadcom CorporationChannel frequency reuse for narrow beam video streaming based upon mobile terminal location informationUS20100014499 *Sep 21, 2009Jan 21, 2010Research In Motion LimitedProbabilistic Location Prediction for a Mobile StationUS20100057924 *Sep 2, 2008Mar 4, 2010Qualcomm IncorporatedAccess point for improved content delivery systemUS20100058377 *Sep 2, 2008Mar 4, 2010Qualcomm IncorporatedMethods and apparatus for an enhanced media context rating systemUS20100214923 *Feb 20, 2009Aug 26, 2010Clear Wireless LlcPredictive throughput managementUS20110029670 *Jul 31, 2009Feb 3, 2011Microsoft CorporationAdapting pushed content delivery based on predictivenessUS20110060822 *Sep 10, 2009Mar 10, 2011At&T Intellectual Property I, LpApparatus and method for managing communicationsUS20110066875 *Sep 10, 2009Mar 17, 2011At&T Intellectual Property I, LpApparatus and method for establishing communicationsUS20110207486 *May 5, 2011Aug 25, 2011Research In Motion LimitedProbabilistic Location Prediction for a Mobile StationUS20120131093 *Oct 26, 2011May 24, 2012International Business Machines CorporationConnection distribution for load balancing in a distributed databaseUS20130301415 *Mar 28, 2013Nov 14, 2013Avvasi Inc.Methods and systems for managing media traffic based on network conditionsUS20140362823 *Jun 2, 2014Dec 11, 2014Fujitsu LimitedControl method, control device, and communication systemUS20150207889 *Feb 25, 2015Jul 23, 2015Internet Promise Group Inc.Systems and methods for faster download of digital content in mobile wireless devicesUS20150373096 *Jun 19, 2014Dec 24, 2015Vmware, Inc.Reducing Restoration Time for Virtual MachinesUS20160227464 *Jan 30, 2015Aug 4, 2016Gamini SenarathSystems, devices and methods for distributed content pre-fetching to a user deviceEP1739879A1 *Jun 28, 2005Jan 3, 2007Research In Motion LimitedProbabilistic location prediction for a mobile stationEP2045744A1 *Aug 2, 2004Apr 8, 2009Panasonic CorporationMethod, server, and client for reducing processing time in synchronous communication in a client-server distributed systemEP2590451A4 *Oct 22, 2010Jan 4, 2017Alcatel LucentFile transmission method based on distributed storage in wireless communication systemEP2950247A1 *May 26, 2014Dec 2, 2015Alcatel LucentA system and method for scheduling background synchronization of application dataWO2004062122A2 *Dec 23, 2003Jul 22, 2004Motorola, Inc.Method and apparatus for providing streaming information to a wireless mobile wireless deviceWO2004062122A3 *Dec 23, 2003Oct 14, 2004Motorola IncMethod and apparatus for providing streaming information to a wireless mobile wireless deviceWO2016120694A1 *Nov 13, 2015Aug 4, 2016Huawei Technologies Co., Ltd.Systems, devices and methods for distributed content pre-fetching in mobile communication networks* Cited by examinerClassifications U.S. Classification709/203, 709/231International ClassificationH04L29/06, H04L29/08, G01S5/00, H04L12/56Cooperative ClassificationH04W64/00, H04W4/00, G01S5/0009, H04L29/06027, H04W40/00, H04L67/18, H04L29/06, H04L65/607European ClassificationH04L29/08N17, H04L29/06C2, H04L29/06, H04L29/06M6ELegal EventsDateCodeEventDescriptionFeb 20, 2002ASAssignmentOwner name: HEWLETT-PACKARD COMPANY, COLORADOFree format text: ASSIGNMENT OF ASSIGNORS INTEREST;ASSIGNORS:CHEUNG, GENE;WONG, TINA;WEE, SUSIE;REEL/FRAME:012632/0996;SIGNING DATES FROM 20010922 TO 20010925Sep 30, 2003ASAssignmentOwner name: HEWLETT-PACKARD DEVELOPMENT COMPANY L.P., TEXASFree format text: ASSIGNMENT OF ASSIGNORS INTEREST;ASSIGNOR:HEWLETT-PACKARD COMPANY;REEL/FRAME:014061/0492Effective date: 20030926Owner name: HEWLETT-PACKARD DEVELOPMENT COMPANY L.P.,TEXASFree format text: ASSIGNMENT OF ASSIGNORS INTEREST;ASSIGNOR:HEWLETT-PACKARD COMPANY;REEL/FRAME:014061/0492Effective date: 20030926Aug 4, 2009CCCertificate of correctionMay 11, 2012FPAYFee paymentYear of fee payment: 4Apr 27, 2016FPAYFee paymentYear of fee payment: 8RotateOriginal ImageGoogle Home - Sitemap - USPTO Bulk Downloads - Privacy Policy - Terms of Service - About Google Patents - Send FeedbackData provided by IFI CLAIMS Patent Services