Abstract:
The present invention comes to simplify and optimize the management of data transmission to set-top boxes for interactive and addressable applications. The result is achieved by abstraction of the transmission process ( 40 ) for the application and addition of meta-data ( 20 ) to each message/stream using the invention, enabling automatic routing of the data ( 50 ) through the most suitable transmission path in real-time ( 70 ).

Description:
FILED OF THE INVENTION  
       [0001]     This invention relates to methods of transmitting data in broadband networks, and more specifically to methods of optimising data transmission paths according to the data context in a broadband television distribution systems.  
       BACKGROUND  
       [0002]     The following example relate to cable television distribution system. However people skilled in the art will recognize that the principle described herein are equally applicable to other broadband television distribution systems.  
         [0003]     Broadband cable networks usually support various ways to transmit data from the head-end to subscriber&#39;s set-top boxes. These include a subset of, or all of: 
        In-Band streaming of Video     In-Band streaming of audio     In-Band Streaming of data     In-Band data carousel     Out-of-Band data carousel (a continuous periodic transmission of data item over out of band channel)     Out-of-Band data messages        
 
         [0010]     In a typical distribution system In-band channels are QAM modulated, while out-of-band and return channels are QPSK modulated.  
         [0011]     In order to receive In-Band transmissions, the set-top box at the subscriber&#39;s premises must be tuned to a specific QAM channel. Out-of-Band (o.o.b.) transmissions are received on the separate QPSK channel.  
         [0012]     Typical broadband cable networks provide relatively narrow out-of-band channels, which are shared by all the applications provided on each cable node. On the other hand, most digital set top boxes deployed only have one QAM tuner, thus they are not able to receive both regular video programs and separate in-band data streams at the same time.  
         [0013]     In order to be able to implement interactive or addressable applications that involve transfer of large amounts of data to the subscriber&#39;s set-top boxes, it is essential to utilize all the available transmission methods efficiently.  
         [0014]     A so-called ‘carousel’ mechanism is used for transmission of common data to the set-top boxes (such as application code, Program Guides, etc.). It is a constant periodic transmission of data items that are received and stored on the set-top boxes according to need. There are in-band carousels, and out-of-band carousels (according to the carrying transmission path). Data items that are put on the carousel are part of the system and application configuration. As a rule of thumb, carousel bandwidth is considered an expensive resource, since all the applications and services share the same carousel bandwidth.  
         [0015]     It is a common to transmit data to a single set-top box or a subset of set-top boxes from the collection of all the set-top boxes in a television distribution plant. The nature of the data type to be transmitted often dictates several constraints that the transmission path has to provide. Considerations such as bandwidth, latency and the like are examples of such constraints. thus for example a voice or video transmission occurring in real time can not sustain significant latency, while a data programming of the set-top boxes may utilize a low bandwidth path as both the data amount and the laxity of time constraints will prove a better utilization of the available paths.  
         [0016]     Presently selection of the transmission path is done manually by the programmer. This causes inefficient use of the bandwidth as oftentimes it is possible to utilize a channel which at the time of transmission is better fitting for the data at hand. Therefore there is a need for better method of selecting the data path by which the data is transmitted to the set-top box.  
         [0017]     It is thus an aim of the invention to provide a mechanism for automatic selection of the data path to by which data is transmitted to the set-top box, based on the context and type of the data.  
       SUMMARY  
       [0018]     The present invention comes to simplify and optimise the management of data transmission to the set-top boxes for interactive and addressable applications, and is applicable to all types of head-end based applications and middleware over broadband cable and wireless networks.  
         [0019]     The result is achieved by abstraction of the transmission process for the application, and addition of meta-data to each message/stream using the invention, enabling automatic routing of the data through the most suitable transmission path in real-time.  
         [0020]     The selection of the transmission path (from the list above) is made based on one or more of the following criteria: 
        Transmission paths available on that context at the moment of selection. (e.g. is the target set-top box tuned to a channel on which streaming data is available? Is the data available on the in-band carousel? and the like)     Type of data audio/video/general data (e.g. can the data be streamed down as video/audio?).     Size of data.     Set-top box capabilities (e.g. does the set-top box have enough resources to handle the data?).     Latency constraints on the message.     Available bandwidth on each path.        
 
         [0027]     The path selection described above and actual data transmission is seamless to the application, which continues to provide the same content, no matter what path was selected. The selection may change according to varied criteria such as changing current load conditions, general status of the network, or data context without any need for the application to become aware of the change.  
         [0028]     Thus in an aspect of the invention there is provided a method for selecting optimized transmission in a television distribution network, the method comprising the steps of: receiving information relating to data to be transmitted to at least one set-top box, said information comprising metadata related to said data to be transmitted, and an identification of said at least one set-top box; building a list of available transmission paths for the said set-top box; and selecting an optimal transmission path based on said list and said metadata.  
         [0029]     Preferably said metadata comprises information selected from a list consisting of type of data to be transmitted, type of application that generated the data, type of application to receive the data, latency constraints of the data, or a combination thereof.  
         [0030]     Also preferably, said step of building further comprises the step of retrieving information related to said set-top box from a database. Said information preferably comprise information on available transmission paths and capabilities of the set-top box.  
         [0031]     More preferably, the method further comprises the step of querying said set-top box to obtain data indicative of available transmission paths thereto. Most preferably, the method includes both querying the set-top box and the database as described above. Optionally, the method also comprise getting information relating to network load and creating the list in accordance with the load data.  
         [0032]     Preferably, the method further comprise the step of transmitting the data to the set-top box using said selected transmission path.  
         [0033]     In another aspect of the invention there is provided an apparatus for selecting optimized transmission in a television distribution network, comprising a list creator, adapted to create a list of available transmission paths from the headend to a specified set-top box, or a group of specified set-top boxes and a data route selector, to automatically select the best applicable transmission path from said list for transmitting based on a policy applied to the combination of at least a data type to be transmitted and said list. 
     
    
     BRIEF DESCRIPTION OF THE DRAWINGS  
       [0034]      FIG. 1  depicts a general flow diagram of a method in accordance with the preferred embodiment of the present invention.  
         [0035]      FIG. 2  depicts flow diagram of an example method for the transmission path selection.  
         [0036]      FIG. 3  illustrates an example of the generation of available transmission path list.  
         [0037]      FIG. 4  depicts a simplified block diagram of an apparatus according to a preferred embodiment of the invention. 
     
    
     DETAILED DESCRIPTION  
       [0038]     The following are acronyms and general term definition that may aid in reading these specifications.  
                                       EPG   Electronic Program Guide       STB   Set-Top Box       o.o.b.   Out-Of-Band       Carousel   A constant periodic transmission of data items that are           received and selectively stored by the set-top boxes           as needed       Application   Software components required for delivering a service           to the end user.           Server side of - the software components that reside on the           server/s in the head-end.           Client Side of - the software components that reside on the           set-top box.                  
 
         [0039]     The method embodiment described below is preferably applied to each messages sent to the set-top box, or to each new stream initiated. The steps are: 
        1. Build list  40  of transmission paths available for that message/stream:     2. Select  50  optimal transmission path from the list according to policy.     3. If no suitable path found—exit  80  (fail). Else, process data  65  to suite the selected transmission path.     4. Send/Stream data  70  to the set-top box-using the selected path.        
 
         [0044]     The above method is preferably applied by a software routine in the headend, but may also be implemented in specialized hardware.  
         [0045]     This method requires that a client capable of handling different transmission paths will be present on the set-top box. (This is may be achieved by a simple middleware client. Such client will enable video/audio streaming and o.o.b data transmission However such capacity may be built into the set-top box as a part of its native capabilities). A more sophisticated client will also enable in-band data streaming and/or carousel access.  
         [0046]     The list of available transmission paths may include additional data such as bandwidth availability for each path.  
         [0047]     Policy rules may be supplied as external data to the selection routine, or be hard-coded into the selection routine logic.  
         [0048]     The following is a more detailed explanation of the various steps of the preferred embodiment of the invention.  
         [0049]     The information attached to new message/stream to be transmitted using this embodiment will preferably include t the following details: 
        Target set-top box     Data type     Application Type     Latency constraints        
 
         [0054]     Based on these details and the configuration and status of the cable network, the selection of the optimal transmission path in this example is done as follows (reference is now made to  FIG. 3 ): 
        1. If the transmission path was specified at message/stream initialization, place the selected path in the list of available paths. Else, build list of available transmission paths for that message/stream 
            a. Identify target set-top box and its attributes. This may be achieved either statically from a database containing such information, by querying the set-top box, or by a combination thereof.     b. Determine whether in-band transmission path is available for the requesting application and the target set-top box at time of transmission. If the path is available, add in-band data streaming to the transmission paths list. If the data is graphic—add video streaming to the transmission paths list, and If the data is audio—add audio streaming to the transmission paths list. Note that all three paths may be present.     c. Determine if the specific data to be sent is available on the in-band or out-of band carousel. If yes—add those paths to the transmission paths list. Note that data that is available on the carousel is usually data that was put there during the network or service configuration process, and not dynamic data generated for specific operations.     d. Determine available o.o.b. data bandwidth.    
            2. Discard transmission paths that are not suitable for the type of data/latency constraints 
            a. If the Data can not be processed by the set-top box (too large, unsupported type, etc.), discard all paths except for video/audio streaming     b. Discard paths with latency that is too large for the message/stream. (By way of example, audio/video streaming has latency of at least 0.5 second, while carousels have typical latencies of more then 10 seconds, and up to a few minutes).    
            3. If list is empty—fail and exit. Otherwise, select optimal transmission path according to a policy. An example set of policy rules may be: 
            a. Prefer in-band if available and appropriate     b. If the data is available on a carousel, prefer using it over transmitting the data via other paths.     c. Do not use out of band data if available bandwidth is below a predetermined threshold, or a threshold defined in the metadata for the data to be transmitted.     d. If the carried data contains security sensitive matter—prefer using out-of band data.    
            4. Process data to suite the selected transmission path: convert format to one that can be handled by the set-top box, MPEG encode video and audio streams, etc.     5. Send/Stream data to the set-top box        
 
         [0070]     Persons skilled in the art will recognize that other sets of rules, or a different data flow may be suitable on different occasions. Each network configuration may require other considerations.  
         [0071]      FIG. 2  represents a simplified diagram of the list generation process in the preferred embodiment. A raw path list is generated  210 , preferably using network configuration data  205 , to generate option list  215 . Preferably, dynamic network data  220  is further used in computing the dynamic parameters of the network to derive desirable data paths  230 . The data type is then used to select or sort  240  available paths that are optimal to the data type. Finally, the application type hat generated the data to be transmitted, and other constraints, are used  250  to filter the desired paths that make up the list of available paths  260 .  
         [0072]      FIG. 3  provides an overview of the process beginning in receiving  315  the transmission request as well as the metadata associated therewith (optionally embedded therein). The network configuration  305  and dynamic data  310  are utilised, together with the list of available paths  325  to compile  320  a list of available paths best suited for the metadata, i.e. data such as data type and/or the generating program, required timeliness, and the like.  
         [0073]     If the list is empty  35  the process fails  340  and an indication of failure is transmitted to the application, as no suitable path was found. If the list is not empty, and the request included a preferred path  350  and the preferred path is not in the list,  345  the operation again fails  340  (assuming the preferred path is marked as the only suitable path. Naturally, more than one preferred path may be specified. If the preferred path is available, the execution continues to step  365  described below.  
         [0074]     If no preferred path was indicated, a set of rules  360  is applied  355  to the list of selected paths to select the most appropriate paths for the data. If the preferred path calls for delivering a stream  365  the stream is generated  370  and the process terminates  385 . If the required path is not a stream, it is processed  360  in another way such as a message and delivered  375  prior to completing the process.  
         [0075]     Preferably, the sending application is notified of the result of the transmission attempt.  
         [0076]     The invention may also be embodied in an apparatus, embodied either in software to be executed on a computer, or by specialized hardware. Naturally a software program that will cause a computer to perform substantially the tasks described above, or a significant portion thereof, also fall within the scope of the invention.  
         [0077]     The apparatus comprises a list creator  415 , adapted to create a list of available transmission paths from the headend to a specified set-top box, or a group of specified set-top boxes. The list creator in this embodiment is adapted to get information either from a database containing about the capabilities of the specific set-top box, from dynamically querying the set-top, box, from general system capabilities information, or from a combination of those and other sources. For simplicity, the list creator may be considered as having a data retriever module  420  for obtaining the necessary data from various sources like databases  450  and network configuration information  445 .  
         [0078]     The apparatus also comprises a data route selector  440 , to select the best applicable route. The route selector utilizes a policy  460 , preferably embedded by a rule base, but which may also be hard coded into the route selector, either by software or hardware. By applying the policy to the combination of available paths list created by the list creator, and the data at hand, the route selector selects the most appropriate path for the data.  
         [0079]     Having thus described a presently preferred embodiments of the present invention, it will be understood by those skilled in the art that many changes in construction and circuitry and widely differing embodiments and applications of the invention will suggest themselves without departing from the scope of the present invention as defined in the claims and the description. The disclosures and the description herein are intended to be illustrative and are not in any sense limiting of the invention, defined in scope by the following claims and the previous description and their equivalents.