Abstract:
The present invention proposes an apparatus and a method for selecting a transport control mechanism to be used between a first device ( 110 ) and a second device ( 120 ). Firstly, a first unit ( 231 ) obtains first information indicating the transport control mechanism supported by the first device ( 210 ) and second information indicating the transport control mechanism supported by second device ( 220 ); then, a second unit ( 232 ) selects the transport control mechanism to be used between the first device ( 210 ) and the second device ( 220 ) on the basis of the first and second information and a preset rule. With the apparatuses and methods provided in the present invention, the problem of how to select the transport control mechanism to be used between the media server and the media client is well solved. Furthermore, by applying the defined messages and the interaction process in IGRS protocols, there is no need for additional messages nor for an additional interaction process.

Description:
TECHNICAL FIELD 
       [0001]    The present invention relates to apparatuses and methods for selecting a transport control mechanism to be used between a first device and a second device, in particular between a media server and a media client. 
       BACKGROUND OF THE INVENTION 
       [0002]      FIG. 1  depicts the overall architecture of an IGRS AV (Intelligent Grouping and Resource Sharing, Audio/Video profile) system, in which  3  logical units are defined, namely the media server  110 , the media client  120  and the controller  130 . The media server  110  is where content is located and managed, the media client  120  is where content is played and can be either a media player or a media recorder, while the controller  130  is the coordination unit between the media server  110  and the media client  120 , and said controller can determine the interaction process of an audio/video application between the media server  110  and the media client  120 . In the IGRS AV system, general device/service discovery, service invocation are governed by an IGRS core protocol, while AV specific control (such as multimedia content playback session setup and control) is governed by an IGRS AV protocol, and actual stream transport between the media server  110  and the media client  120  is fully out of band. For the stream transport control, there are two mechanisms: SOAP (Simple Object Access Protocol) based transport control and BCM (Back-Channel Message) based transport control. If the two stream transport control mechanisms are both supported in the media server  110  and the media client  120 , a problem that needs to be solved relates to how either one of them is chosen to be operative. 
       SUMMARY OF THE INVENTION 
       [0003]    The present invention proposes a technical solution for selecting a transport control mechanism to be used between a first device and a second device. 
         [0004]    According to another embodiment of the present invention, there is provided an apparatus for selecting a transport control mechanism to be used between a first device and a second device, comprising: a first unit for obtaining first information indicating the transport control mechanism supported by the first device and second information indicating the transport control mechanism supported by the second device; and a second unit for selecting the transport control mechanism to be used between the first device and the second device on the basis of the first and second information and a preset rule. 
         [0005]    According to an embodiment of the present invention, there is provided a method of selecting a transport control mechanism to be used between a first device and a second device, comprising: obtaining first information indicating the transport control mechanism supported by the first device and second information indicating the transport control mechanism supported by second device; and selecting the transport control mechanism to be used between the first device and the second device on basis of the first and second information and a preset rule. 
         [0006]    With the apparatuses and methods provided in the present invention, the problem of how to select the transport control mechanism to be used between the media server and the media client is well solved. Furthermore, by applying the defined messages and interaction process in the IGRS protocols, there is no need for additional messages nor for an additional interaction process to make a selection. 
     
    
     
       BRIEF DESCRIPTION OF THE DRAWINGS 
         [0007]    The above and other objects, characteristics and merits of the present invention will become more apparent from the following detailed description considered in connection with the accompanying drawings, in which: 
           [0008]      FIG. 1  illustrates the overall architecture of an IGRS AV system, in which  3  logical units are defined, namely the media server  110 , the media client  120  and the controller  130 ; 
           [0009]      FIG. 2  illustrates a scenario according to an embodiment of the present invention, including a first device  210 , a second device  220  and an apparatus  230  for selecting a transport control mechanism to be used between the first device  210  and the second device  220 ; 
           [0010]      FIG. 3  illustrates a schematic view of a block diagram of the first unit  231  according to an embodiment of the present invention; 
           [0011]      FIG. 4  illustrates a schematic view of a block diagram of the first unit  231  according to another embodiment of the present invention; 
           [0012]      FIG. 5  illustrates a schematic view of a block diagram of the apparatus  230  according to another embodiment of the present invention; 
           [0013]      FIG. 6  illustrates an interaction process of selecting a transport control mechanism for an IGRS AV system in a scenario of SOAP based and BCM based transport control mechanisms co-existing according to an embodiment of the present invention; 
           [0014]      FIG. 7  illustrates a flowchart of selecting a transport control mechanism to be used between a first device  110  and a second device  120  according to another embodiment of the present invention; 
           [0015]      FIG. 8  illustrates a flowchart of the substeps of step S 701  in  FIG. 7  according to an embodiment of the present invention; 
           [0016]      FIG. 9  illustrates a flowchart of the substeps of step S 701  in  FIG. 7  according to an embodiment of the present invention. 
       
    
    
       [0017]    In the drawings, same or analogous reference numerals refer to same or analogous step features/devices (modules) throughout the Figures. 
       DETAILED DESCRIPTION OF THE EMBODIMENTS 
       [0018]    Hereinafter, embodiments of the present invention are described in detail with reference to the accompanying drawings. 
         [0019]      FIG. 2  illustrates a scenario according to an embodiment of the present invention, including a first device  210 , a second device  220  and an apparatus  230  for selecting a transport control mechanism to be used between the first device  210  and the second device  220 . The apparatus  230  includes a first unit  231  and a second unit  232 . 
         [0020]    Firstly, the first unit  231  obtains first information indicating the transport control mechanism supported by the first device  210  and second information indicating the transport control mechanism supported by the second device  220 . 
         [0021]    Secondly, the second unit  232  selects the transport control mechanism to be used between the first device and the second device on the basis of the first and second information and a preset rule. In an embodiment, the preset rule is a user&#39;s preferential configuration setting. In another embodiment, the preset rule is a default setting. 
         [0022]    In an embodiment, the first unit  231  further comprises a first module  2311  and a second module  2312  for obtaining the first information indicating the transport control mechanism supported by the first device  210 , as shown in  FIG. 3 . 
         [0023]    Firstly, the first module  2311  sends a request message requesting at least part of the first information to the first device  210 . 
         [0024]    When the first device  210  receives the request message, it will respond with a response message comprising at least part of the first information. 
         [0025]    Then, the second module  2312  receives a response message comprising at least part of the first information from the first device  210 . 
         [0026]    If the first device  210  supports several kinds of transport control mechanisms, the first information can be obtained through a single signaling interaction or a plurality of signaling interactions; in each of the plurality of interactions, part of the first information is obtained. The specific form of the request message and the response message for the first information can be varied using different transport control mechanisms supported by the first device  210 , which will be illustrated by means of the following examples. 
         [0027]    In an embodiment, the first unit  231  further comprises a third module  2313  and a fourth module  2314  for obtaining the second information indicating the transport control mechanism supported by the second device  220 , as shown in  FIG. 4 . 
         [0028]    Firstly, the third module  2313  sends a request message requesting at least part of the second information to the second device  220 . 
         [0029]    When the second device  220  receives the request message, it will respond with a response message comprising the at least part of the second information. 
         [0030]    Then, the second module  2314  receives a response message comprising the second information from the second device  220 . 
         [0031]    If the second device  220  supports several kinds of transport control mechanisms, the second information can be obtained through a single signaling interaction or a plurality of signaling interaction; in each of the plurality of interactions, part of the second information is obtained. The specific form of the request message and the response message for the second information can be varied using different transport control mechanisms supported by the second device  210 , which will be illustrated by means of the following examples. 
         [0032]    It is to be understood that the modules in  FIG. 3  and  FIG. 4  are just for illustration; the first unit  231  can obtain the first and second information in other ways, such as by just receiving an initiative report from the first and second device, or obtaining the first and second information from another device etc. 
         [0033]    Advantageously, in an embodiment, the apparatus  230  further comprises a third unit  233  and a fourth unit  234 , respectively, for notifying the first device  210  and the second device  220  of the selected transport control mechanism selected by the second unit  232 , as shown in  FIG. 5 . 
         [0034]    In an embodiment, for an IGRS AV system shown in  FIG. 1 , the first device  210  can be the media server  110 , the second device  220  can be the media client  120 . The apparatus  230  can be located in the controller  130 , or the controller  130  can achieve the function implemented by the apparatus  230 . It is to be understood that the first device  210  can be the media client  120 , and the second device  220  can be the media server  110 . 
         [0035]    If media server  110  supports a SOAP based transport control mechanism, then Content Index Service (CIS), Connection Management Service (CMS), and Media Server Transport Management Service (MSTMS) are realized in media server  110  to perform the transport control of the stream between the media server  110  and the media client  120 . 
         [0036]    CIS allows the controller  130  to discover the media content and list it on the media server  110 , so that the controller  130  can retrieve the content information, including the name, creation date, size, format etc. of media content. This information can be used by the controller  130  to determine whether these contents can be played on the media client  120 . 
         [0037]    CMS is used to create and manage the connection between the media server  110  and the media client  120 . The media server  110  can support and manage several active connections at any time by means of CMS. 
         [0038]    The optional MSTMS enables the controller  130  to adjust and control the media stream transport on the media server  110 , such as play, pause, stop, seek etc. If this service exists, it means that the “Push” Mode is supported, which means the media server  110  will initiate the media stream transport. Otherwise, it is not supported. 
         [0039]    If the media client  120  supports a SOAP based transport control mechanism, then Rendering Management Service (RMS), Connection Management Service (CMS), and Media 
         [0040]    Client Transport Management Service (MCTMS) are realized in the media client  120  to perform the transport control of the stream between the media server  110  and the media client  120 . 
         [0041]    RMS allows the controller  130  to control media rendering, such as volume, contrast, brightness etc. Multiple active instances of rendering control can be supported, such as the “picture-in-picture” function in TV. A new RMS instance is created by PrepareForConnection of CMS on the media client  120 . This service is only provided by the media client  120 . 
         [0042]    CMS is used to create and manage the connection between the media server  110  and the media client  120 . The media client  120  can support and manage multiple active connections at any time by means of CMS. CMS implementation is the same on both the media client  120  and the media server  110 . 
         [0043]    The optional MCTMS service enables the controller  130  to adjust and control the transport of a media stream on the media client  120 , such as play, pause, stop, seek etc. If this service exists, it means that the “Pull” Mode is supported, which means the media client  120  will initiate the media stream transport. Otherwise, it is not supported. 
         [0044]    A Back-Channel is a pipe between the media server  110  and the media client  120  set up for out-of-band transport control. A Back-Channel is set up between a BCM (Back-Channel Message) Server and a Client, and commands, notifications and error messages can be transported in this channel. If media server  110  supports the BCM based transport control mechanism, then the Content Index Service (CIS) and BCM Server are realized by the media server  110  to perform the transport control of a stream between the media server  110  and the media client  120 . If media client  120  supports the BCM based transport control, the BCM Client is realized by the media client  120  to perform the transport control of a stream between the media server  110  and the media client  120 . 
         [0045]    In existing IGRS AV systems, only one transport control mechanism is implemented, being either a SOAP based transport control mechanism or a BCM based transport control mechanism; there is no need to choose. But if both SOAP based and BCM based transport control mechanisms are implemented by the IGRS AV system, the issue that needs to be resolved relates to how either one of them is chosen to be operative. 
         [0046]      FIG. 6  shows an interaction process of selecting a transport control mechanism for an IGRS AV system in a scenario of SOAP based and BCM based transport control mechanisms co-existing according to an embodiment of the present invention. 
         [0047]    Firstly, in step S 601 , the controller  130  sends a request message to the media server  110  requesting it to browse the content to be transported and played by the media client  120 , and subsequently gets a response message indicating the content from the media server  110 , which can be implemented by CIS:Browse defined in the IGRS AV profile standard. 
         [0048]    Secondly, in step S 602 , the controller  130  sends a request message to the media server  110  requesting it to search services provided by the media server  110 , and subsequently receives a response message indicating the services provided by the media server  110  from the media server  110 , which can be achieved by the SearchServiceRequestOnDevice message and the SearchServiceResponseOnDevice message defined in the IGRS protocol. The SearchServiceResponseOnDevice message comprises a ServiceInfoList comprising MSTMS if a SOAP based transport control mechanism is supported by the media server  110 . Alternatively, the controller  130  sends a SearchServiceRequest message to a multicast address 239.255.255.250:1900 to search services provided by a group of devices including the media server  110 . The media server  110  responds to the SearchServiceRequest message with a SearchServiceResponse message comprising a ServiceInfoList. The ServiceInfoList will comprise MSTMS if the SOAP based transport control mechanism is supported by the media server  110 . Specifically, the step of sending and receiving can be performed by, respectively, the first module  2311  and the second module  2312  of the first unit  231  of the apparatus  230  in the controller  130 . 
         [0049]    Thirdly, in step S 603 , the controller  130  sends a request message to the media client  120  requesting it to search services provided by the media client  120 , and subsequently receives a response message from the media client  120 , which can be achieved by the SearchServiceRequestOnDevice message and the SearchServiceResponseOnDevice message defined in IGRS protocols. The SearchServiceResponseOnDevice message comprises a 
         [0050]    ServiceInfoList comprising MCTMS if a SOAP based transport control mechanism is supported by the media client  120 . Alternatively, the controller  130  sends a SearchServiceRequest message to a multicast address 239.255.255.250:1900 requesting it to search services provided by a group of devices including the media client  120 . The media client  120  responds to the SearchServiceRequest message with a SearchServiceResponse message comprising a ServiceInfoList. The ServiceInfoList will comprise MCTMS if the SOAP based transport control mechanism is supported by the media client  120 . Specifically, the step of sending and receiving can be performed by, respectively, the third module  2313  and the fourth module  2314  of the first unit  231  of the apparatus  230  in the controller  130 . 
         [0051]    Then, in step S 604 , the controller  130  sends a request message to the media server  110  to get the transport protocol information, transport control protocol and media format supported by the media server  110 . Then the controller  130  receives a response message comprising the transport protocol information, transport control protocol and media format supported by the media server  110  from the media server  110 , which can be achieved by a GetProtocolInfoRequest message and GetProtocolInfoResponse message defined in the IGRS AV profile standard. The GetProtocolInfoResponse message will indicate the transport control protocol is BCM if the BCM based transport control mechanism is supported by the media server  110 . Specifically, the step of sending and receiving can be performed by, respectively, the first module  2311  and the second module  2312  of the first unit  231  of the apparatus  230  in the controller  130 . 
         [0052]    Similarly, in step S 605 , the controller  130  sends a request message to the media client  120  requesting it to get the transport protocol information, transport control protocol and media format supported by the media client  120 . Then, the controller  130  receives a response message comprising the transport protocol information, transport control protocol and media format supported by the media client  120  from media client  120 , which can be achieved by a GetProtocolInfoRequest message and GetProtocolInfoResponse message defined in the IGRS AV profile standard. The GetProtocolInfoResponse message will indicate the transport control protocol is BCM if the BCM based transport control mechanism is supported by the media client  120 . Specifically, the step of sending and receiving can be performed by, respectively, the third module  2313  and the fourth module  2314  of the first unit  231  of the apparatus  230  in the controller  130 . 
         [0053]    It is to be understood that  FIG. 5  is only an illustration. Step S 602  and step S 603  can be performed before step S 601 . Step S 602  and step S 603  do not have to be performed in a fixed sequence, i.e. step S 603  can be performed before step S 602  or together with step S 602 . Step S 604  and step S 605  do not have to be performed in a fixed sequence, i.e. step S 605  can be performed before step S 604  or together with step S 604 . 
         [0054]    After getting the transport protocol information and media format supported by, respectively, the media server  110  and the media client  120 , in step S 606 , the controller  130  selects a transport protocol and media format to be used between the media server  110  and the media client  120 . For the transport protocol, for instance, if the media server  110  only supports the HTTP protocol, then the media client  120  should also support the HTTP protocol to start the transport. Similarly, for the media format, if the media server  110  supports MPEG2 TS, H.264 for a certain content, and the media client  110  supports MPEG2 TS, WMV, then the controller  130  will select MPEG2 TS as the media format for that content. 
         [0055]    For the transport control protocol, i.e. transport control mechanism, in step S 607 , the second unit  232  of the apparatus  230  in the controller  130  selects a transport control mechanism to be used between the media server  110  and the media client  120  on the basis of the first and second information and a preset rule. The first information indicating the transport control mechanism supported by the media server  110  comprises the information indicating whether the media server  110  supports a SOAP based transport control mechanism or not and the information indicating whether the media server  110  supports a BCM based transport control mechanism or not. The former is obtained by the SearchServiceResponseOnDevice message or the SearchServiceResponse message and the latter is obtained by the GetProtocolInfoResponse message. Similarly, the second information indicating the transport control mechanism supported by the media client  120  comprises the information indicating whether the media client  120  supports a SOAP based transport control mechanism or not and the information indicating whether the media client  120  supports a BCM based transport control mechanism or not. The former is obtained by the SearchServiceResponseOnDevice message or the SearchServiceResponse message and the latter is obtained by the GetProtocolInfoResponse message. 
         [0056]    The preset rule can be different, based on different transport control mechanisms supported by the media server  110  and the media client  120 . If both the media server  110  and the media client  120  support the SOAP based and BCM based transport control mechanisms, the preset rule can be a default setting or a user&#39;s preferential configuration setting. For example, the default setting can be a BCM based transport control mechanism. The user&#39;s preferential configuration setting can be also a BCM based transport control mechanism. If both a default setting and a user&#39;s preferential configuration setting exist, the preset rule can be the user&#39;s preferential configuration setting. 
         [0057]    If the media client  120  only supports one kind of transport control mechanism, while the media server  110  supports two kinds of transport control mechanisms, then the preset rule selects the kind of transport control mechanism supported by the media client  120 . The selection is similar when the media server  110  only supports one kind of transport control mechanism while the media client  120  supports two kinds of transport control mechanisms. 
         [0058]    It is to be understood that step S 606  and step S 607  do not have to be performed in a fixed sequence, i.e. step S 607  can be performed before step S 606  or together with step S 606 . 
         [0059]    When the selection is done, the controller  130  can further notify the media server  110  and the media client  120  of the selected transport control mechanism. This can be achieved by an additional signaling interaction process, or by the defined signaling interaction process in the IGRS AV profile standard. For example, if a SOAP based transport control mechanism is selected, then the controller  130  sends a CMS:PrepareForConnnectionRequest message to, respectively, the media server  110  and the media client  120 . When the media server  110  and the media client  120  receive the CMS:PrepareForConnnectionRequest message, they will realize that the SOAP based transport control protocol is selected to control the stream transport between them. Then MCTMS and MSTMS will be invoked by, respectively, the media client  120  and the media server  110  to realize the transport control between the media client  120  and the media server  110 . 
         [0060]    In the case of the controller  130  and the media client  120  being implemented together in a physical device, the interaction process in  FIG. 6  between the controller  130  and the media client  120  can be omitted. In such a situation, if a BCM based transport control mechanism is selected, then the controller  130  sends a BCM:Play message to the media server  110 . When the media server  110  receives the BCM:Play message, it will realize that the BCM based transport control protocol is selected to control the stream transport. Then BCM client and BCM server are invoked to realize the transport control between, respectively, the media client  120  and the media server  110 . 
         [0061]    Similarly, in the case of the controller  130  and the media server  110  being implemented together in a physical device, the interaction process in  FIG. 6  between the controller  130  and the media server  110  can also be omitted. 
         [0062]    From  FIG. 6 , it can be seen that the request message requesting at least part of the first or second information and the response message comprising the at least part of the first or second information can be implemented by the defined messages in the IGRS AV protocols. No additional message type and additional interaction process are needed for the controller  130  to obtain the first and second information and to notify the media client  120  and the media server  110  of the selected transport control protocol. 
         [0063]      FIG. 7  shows a flowchart of selecting a transport control mechanism to be used between a first device  110  and a second device  120 . 
         [0064]    Firstly, in step S 701 , first information is obtained indicating the transport control mechanism supported by the first device  210  and second information is obtained indicating the transport control mechanism supported by the second device  220 . In an embodiment, step S 701  can be performed by the first unit  231  of the apparatus  230 . 
         [0065]    Secondly, in step S 702 , the transport control mechanism is selected that is to be used between the first device and the second device on the basis of the first and second information and a preset rule. In an embodiment, the step S 702  can be performed by the second unit  232  of the apparatus  230 . 
         [0066]    In an embodiment, the preset rule is a user&#39;s preferential configuration setting. In another embodiment, the preset rule is a default setting. 
         [0067]    In an embodiment, the step S 701  can further comprise two substeps for obtaining the first information indicating the transport control mechanism supported by the first device  210 , as shown in  FIG. 8 . 
         [0068]    Firstly, in step S 801 , a request message requesting at least part of the first information is sent to the first device  210 . In one embodiment, the step S 801  can be performed by first module  2311  of the first unit  231  of the apparatus  230 . 
         [0069]    When the first device  210  receives the request message, it will respond with a response message comprising the at least part of the first information. 
         [0070]    Then, in step S 802 , a response message is received comprising at least part of the first information from the first device  210 . In an embodiment, the step S 802  can be performed by second module  2312  of the first unit  231  of the apparatus  230 . 
         [0071]    If the first device  210  supports several kinds of transport control mechanisms, the first information can be obtained through a single signaling interaction or a plurality of signaling interactions, wherein in each of the plurality of interactions, part of the first information is obtained, i.e. the substeps S 801  and S 802  can be performed several times to obtain all of the first information. 
         [0072]    In an embodiment, the step S 701  may further comprise another two substeps for obtaining the second information indicating the transport control mechanism supported by the second device  220 , as shown in  FIG. 9 . 
         [0073]    Firstly, in step S 901 , a request message requesting at least part of the second information is sent to the first device  220 . In an embodiment, the step S 901  can be performed by the third module  2313  of the first unit  231  of the apparatus  230 . 
         [0074]    When the second device  220  receives the request message, it will respond with a response message comprising the at least part of the second information. 
         [0075]    Then, in step S 902 , a response message comprising the second information is received from the second device  220 . In an embodiment, the step S 902  can be performed by fourth module  2314  of the first unit  231  of the apparatus  230 . 
         [0076]    If the second device  220  supports several kinds of transport control mechanisms, the second information can be obtained through a single signaling interaction or a plurality of signaling interactions, wherein in each of the plurality of interactions, part of the second information is obtained, i.e. the substeps S 901  and S 902  can be performed several times to obtain all of the second information. 
         [0077]    It is to be understood that the substeps in  FIG. 8  and  FIG. 9  are just for illustration; the first and second information can be obtained in other ways such as by just receiving an initiative report from the first and second device, or obtaining the first and second information from another device, etc. 
         [0078]    Advantageously, in an embodiment, the flowchart in  FIG. 7  can further comprise a step of notifying, respectively, the first device  210  and the second device  220  of the selected transport control mechanism selected by the second unit  232 , which can be performed by the third unit  233  and the fourth unit  234  of the apparatus  230  in one embodiment. 
         [0079]    The function of the apparatus  230  and the flowcharts in  FIG. 7  to  FIG. 9  are fully described in the above paragraphs. It should be understood that the application of the apparatus  230  and the flowcharts in  FIG. 7  to  FIG. 9  is not limited to an IGRS AV system. For other scenarios of a transport control mechanism to be selected, the apparatus  230  and the flowcharts in  FIG. 7  to  FIG. 9  are also applicable. 
         [0080]    It is further to be understood that the apparatus  230  is described in terms of its function only. The apparatus  230  or each unit therein, such as the first unit  231  and/or the second unit  232  etc., can be implemented by hardware or a combination of software and hardware. For example, they could be implemented by a processor linked to a memory storing the instruction code for implementing the function of the first unit  231  and/or the second unit  232 . Some of the modules and/or the units of the apparatus  230  can share the same physical module upon their implementation. For example, the third module  2313  and the fifth module  2315  can share the same physical module. 
         [0081]    It should be noted that the above-described embodiment is for the purpose of illustration only and not to be construed as a limitation of the invention. All such modifications which do not depart from the spirit of the invention are intended to be included within the scope of the appended claims. In the claims, any reference signs placed between parentheses shall not be construed as limiting the claim. The word “comprising” does not exclude the presence of elements or steps not listed in a claim or in the description. The word “a” or “an” preceding an element does not exclude the presence of a plurality of such elements. In the apparatus claims enumerating several units, several of these units can be embodied by one and the same item of hardware or software. The use of the words first, second and third, et cetera, does not indicate any ordering. These words are to be interpreted as names.