The present invention relates to the field of accessing, over a network, an audio file available from a download server or an audio stream available from a streaming server, and of playing back this file or stream by a user terminal.
The document U.S. Pat. No. 6,678,215 describes, from a very general point of view, an audio terminal, such as a radio alarm clock, connected to the Internet network to receive audio data. The audio data received by the terminal, which are compressed into standard formats, are decompressed by software means and played back by sound-reproducing means included in the radio alarm clock.
The digital audio contents currently available on the Internet come either from so-called “Internet radios” that broadcast their programs directly over the Internet network for them to be listened to in live; or from FM/AM radios that convert their programs into audio files that are accessible via the Internet site of the FM/AM radio; or else from any other content provider offering free or paying access to an audio file such as a publicity, a recorded program (for example of the “Podcast” type), a newspaper or magazine read by a person or a speech synthesis engine, a read book that is also called an “audio book”, one or more music tracks bought on the site of a record company, etc.
The servers that store or allow access to these files or data streams are designed either for a full download of the file on the user terminal, in the purpose of playing back this audio file with a delay; or for a partial continuous download of an audio stream to be played back with a slight delay, the size of the downloaded file portion being limited by the memory of the user equipment; or for a streaming of the file to be played back immediately or with very slight delay (storing of a buffer-volume of data to prevent any interruption of the sound reproduction in case of congestion of the network). The first method of data transfer between the content server and the user terminal is called “download”, the second method is called “progressive download”, and the third method is called “streaming”. The present invention relates exclusively to the last two methods. Hereinafter, the term “data streaming” will preferably be used, that combines together the two playback methods called “streaming” and “progressive download”.
There is a need for a user terminal that allows to listen to audio files from different sources and in different formats, via the Internet, but that is at the same time light-weight, portable and mobile, while having a reduced cost and numerous functionalities in keeping with the users' expectations.
It is an object of the present invention to provide a user terminal comprising:
storage means and calculation means;
a man-machine interface having display means and input means;
means for connection to a TCP/IP network, for accessing audio files available from audio streaming server, each audio file being located by an URL;
means for decoding the data stream transmitted by said server; and
means for reproducing sound from said decoded data stream,
characterized in that said storage means comprise a cache memory to store the terminal use history, said cache memory being a volatile memory and being of reduced size, and in that said terminal further comprises means for communicating with a services platform, said communication means being capable of emitting HTTP GET requests toward the platform and of receiving requests in the XML-Phoenix format from the platform.
It is also an object of the present invention to provide an architecture for accessing audio files available from audio streaming servers, each audio file being located by an URL, characterized in that it comprises a terminal according to the preceding and a services platform capable of collecting from third-party servers heterogeneous resources-related data and converting them into the Phoenix format, and in that, when receiving a response in the XML-Phoenix format from the platform, the terminal is capable of connecting to the streaming server whose URL is contained in said response.
The present invention also relates to a communication method using the TCP/IP protocol between a user terminal and a services platform, said user terminal being capable of accessing an audio file available from an audio streaming server, said audio file being located by an URL,
characterized in that said method consists in:
authenticating the user terminal with the services platform;
updating the cache memory of the user terminal based on the information saved on said platform;
the terminal user emitting a request in the HTTP GET format toward the platform, said request comprising, among other things, the alias of an audio file;
the platform emitting a response in the XML-Phoenix format toward the user terminal, said response containing, among other things, the URL corresponding to said audio file, said terminal then connecting to the corresponding streaming server to access the audio file associated with said URL.
That is thanks to a network architecture comprising an additional services platform as well as a particular communication protocol between the platform and the user terminal that the present invention can provide a user terminal allowing reproduction of audio files from various sources, while having very few memory resources, and in particular very few read-only memory, which is known to be very costly.
The invention will be better understood and other purposes, details, features and advantages of the invention will become more clearly apparent from the description of a particular embodiment of the invention, which is given merely by way of illustrative and non-limitative example, with reference to the appended drawing, in which:
The architecture of the audio stream broadcasting system according to the invention will now be described by means of the presently contemplated embodiment, with reference to
From a hardware point of view, the Radio IP 1 comprises a processor and a memory for storing the value of some parameters and the instructions for programs adapted to be run by the processor. The Radio IP 1 comprises electronic boards and the input/output interfaces allowing, for some of them, display, use of buttons, loudspeakers management, etc., and, for the other ones, communication with a network 3.
From a software point of view, the Radio IP 1 comprises digital music decoders for transforming the data in standard formats such as WMA, MP3, WAV or the like, received from the network 3, into an input electric signal suited for the loudspeakers. These decoders are preferably in the form of software, but they could be in the form of electronic boards.
In the described embodiment, the Radio IP has three modes of use: “Time” mode, for everything that relates to the functions linked to what the user expects from an alarm clock (date and time display, alarm selection, etc.); “Audio” mode, for everything that relates to audio file playback (audio file selection, playback of this file, etc.); and “Configuration” mode, for everything that relates to the setting of the Radio IP 1 (sound level adjustment, screen adjustment, language selection, WIFI connection setting, etc.)
The network 3 is a network supporting the communication exchanges according to the HTTP protocol based on the TCP/IP protocol. For example, the network 3 is the Internet network or a corporate network (“Intranet”) or the like.
Communications between the Radio IP 1 and the network 3 can be performed directly though a wireline connection from the Radio IP 1 to a server of an access provider, but the connection to the network 3 is preferably made through a residential gateway 2, which is connected to the server through an ADSL link, for example. Communications between the Radio IP 1 and the residential gateway 2 are then performed by means of a wireless link of the WIFI or BLUETOOTH type, or the like (for example, powerline communication, WIMAX, but also 3G-type WCDMA system). Of course, the Radio IP 1 comprises those corresponding hardware and software means that make such communications possible. The use of a wireless local connection has the advantage of allowing the Radio IP 1 to be moved inside the area covered by the residential gateway 2.
The system according to the invention also comprises a services platform 4 connected to the network 3. The platform 4 will now be described in detail. The essential function of such platform is to collect the resources-related information from third-party servers. This information being in very heterogeneous proprietary formats, the matter is to transform it into a common format, in this case the PHOENIX format, in order to provide this information to the user via the Radio IP 1.
The platform 4 is divided into an in-line part 41 and an off-line part 42. The in-line part 41 (“front office”) will now be described in detail. It comprises a first interface 43 forming a virtual storefront supporting all the transactions with the user, whether the latter uses the Radio IP or a personal computer to connect to the services platform 4 over the Internet network. The virtual storefront 43 allows the requests emitted by the user to be responded, thanks to information retrieved in a database 45. For more complex tasks, the virtual storefront 43 communicates with a module called transaction engine 46.
The transaction engine 46 associates an identifier with the task required by the virtual storefront 43. It performs this complex task by applying the different adapted requests to the database 45. It stocks the result of this process until the virtual storefront 43 reemits a result request with the associated identifier. The transaction engine then responds by transmitting the result. The virtual storefront 43 also communicates with a payment module 44. The payment module 44, which is actually an engine similar to the transaction engine 46, communicates with a third-party server 50 for every exchange of confidential payment information. It is interesting to execute the payment-related transactions on a separate module because the communications with the third-party servers 50 are often slow, and it is advisable to have a dedicated module to distribute the load between the different modules of the in-line part 41. Finally, the platform 4 comprises an application module called supply module 47. The supply module 47 is an application that receives messages from the transaction engine 46 and that performs the data transfer between a content database and a supply database. The supply module 47 further contains a HTTP server capable of receiving requests from the user device for the data transfer. The supply module 47 directly interrogates the supply database to extract that information allowing this user request to be responded.
The database 45 of the in-line part 41 will now be described in detail. This database comprises several volumes assigned to different applications. The database 45 comprises a transaction database 45a that gathers the information about the complex operations that are being executed or that have been recently executed by the transaction engine 46; a user database 45b gathering the information about the user account, this information being basic information, notably user identification, and possibly identifying information allowing the connection to third-party servers, in the name of the user, in order to load specific contents to which the user is subscribed; an device profile database 45c gathering, for example, the MAC address of the Radio IP, the software version that is ran on this radio, etc.; a master database 45d or general catalogue containing the references of all the accessible resources; a database composed of the user catalogues 45e, each corresponding to an extraction from the general catalogue. The in-line part 41 is also equipped with modules 40, the function of which will be described hereinafter; and the above-described supply base 45f.
The off-line part 42 of the platform 4 will now be described in detail. It comprises a database 45′ which is a copy of the database 45 of the in-line part 41. This copy, which has been made at a previous instant of time T, is next enriched with contents and information, either by automated processes or directly by the administrator of the platform, etc. Then, at a frequency of about one hour, a synchronization step allows the database 45 to be updated, the data of the database 45′ replacing those of the database 45.
Several modules are executed on the off-line part and operate with the mirror database 45′. For example, just before the contents of the databases 45 and 45′ are synchronized, a test module 48 allows to perform a set of tests to ensure the content of the base 45′ is coherent. It is a quality procedure regarding the functioning of the installation. A statistic module 49 allows the making of any kind of calculation, such as noting the most wanted audio sources, monitoring the use made of a particular Radio IP, etc. Control module 39 comprises, for example, logs storing information about the errors of operation of the platform 4, and alert mechanisms enabling an alarm to be emitted in case of severe failure.
But the off-line part 42 of the platform 4 especially comprises a content management module 38 which allows to create and to update the general catalogue, and thus the particular catalogues, of the database 45′, by adding new references to contents, by enriching the meta-data associated with these contents (price of a disc), etc.
For this purpose, the content management module 38 periodically connects to third-party servers 51 comprising proprietary catalogues. These third-party servers 51 transmit the information about a particular source in an associated proprietary format, which is automatically converted into the PHOENIX format by the module 38, to be stored into the general catalogue of the database 45′. The content of this database is then synchronized with that of the database 45, to make these new contents available to the user.
The information supplied by the third-party servers 51′, which is intended to have a lifetime shorter than the synchronization period, for example one hour, are extracted and directly converted into the PHOENIX format in the in-line part 41, by the module 38′. For example, information about weather forecast and news-in-brief, available from a third-party server 51′ in a proprietary XML format (equivalent to the RSS format), are converted and then stored into the database 45 so as to by directly available.
Finally, the architecture according to the invention comprises audio content servers 6 capable of streaming data over the Internet network 3. Preferably, these servers are Internet servers making it possible to perform a dynamic “streaming” according to the nature of the receiver terminal. The resource's URL (the “Universal Resource Locator” is a pointer to a unique audio file) contained in the database 45 corresponds to the IP address of the server and to the access path to the corresponding audio file from the site of this machine. There is generally only one URL for each accessible audio file. It is possible to have several URLs to address a streaming server. In case of failure with the first URL, the user equipment decides to connect by means of the 2nd URL, and so on.
Generally, when the user of the Radio IP 1 desires to listen to a radio, he/she selects the “AUDIO” mode. He/she then travels, by means of a selector of the control-pad type, through an arborescence displayed to him/her. At each hierarchical level, different menus are accessible. The lowermost level menu proposes a list of aliases of available audio resources.
When the user selects the alias “RADIO”, by pressing for example a “PLAY” button, a request in HTTP format, having the alias “RADIO” as a parameter, is emitted toward the platform 4 over the Internet network 3.
After extraction from the database 45 of the “RADIO_URL” corresponding to the alias “RADIO”, the services platform 4 responds by sending a response in XML format to the Radio IP 1. The XML file of the response comprises, among other things, as will be described in detail hereinafter, the “RADIO_URL” of the selected radio. When receiving this response, the Radio IP 1 connects to the “RADIO_URL” which as been indicated to it and which corresponds to an audio file located on the server 6. Thus, a request is emitted toward the server 6 for delivery of a content corresponding to that of the “RADIO_URL”. Finally, in response, the server 6 streams the content of the required file toward the Radio IP 1, over the Internet network 3.
Advantageously, in addition to the audio data stream, the server 6 can send additional data or “META_DATA” to the user terminal, so that the latter displays on the screen information about the track that is played. This information can be the title, the duration, the author or any other information directly related to the audio file.
During the use thereof, the Radio IP 1 offers a series of functionalities.
The functionality of choosing the source makes it possible, at a first hierarchical level, to choose for example among three possible audio data sources: live Radios, Radios on demand, or playback of the content of a USB key. It will be noticed that the Radio IP 1 detects insertion of a USB key and automatically displays the content of this key. Only the files of the USB key having the extension WMA, MP3 or WAV are proposed in the menu “My USB key”. The user chooses the source by browsing the menus and submenus. For example, the live radios are displayed by genre and the user can choose to display them by country. This functionality is accessible during the playback of a source. The user can then scroll the sources of the previously displayed list and choose a new source.
When the user places the Radio IP in “Audio” mode, the source previously heard is played again.
The source continues to be played until the user decides to stop or pause the playback, chooses another source, or switches to “Configuration” mode. As for a playback from a USB key, when a track is finished, the following one is played. At the end of the directory, the playback loops to the beginning. This loop is applied on the current directory and not on the whole files of the USB key.
The functionality of playing back a source, which besides can be activated when the Radio IP is in “Audio” mode, but also in “Time” mode, when an alarm triggers, intervene when the user, after having used the up and down arrows of the browsing pad to switch from one audio source to another, selects the source that is in the selection zone, for example by pressing the “Play” key. Of course, the Radio IP must be in communication with the services platform 4 via the WIFI gateway when the user selects one source and when the server for accessing this source next delivers the data stream.
When activated, the functionality of presetting allows the user, as soon as a source is played, to assign the source to a “Preset” key. A graphical or audio message confirms the success of the function to the user. The services platform is informed of the new preset. In this way, the source is assigned to the selected “Preset” button.
With the functionality of playing back a preset, the user can listen to this source directly by pressing the “Preset” button, when the Radio IP is in Time mode or Audio mode, without having to browse the menus and submenus of the interface. It will be noticed that the user can not assign a file of his/her USB key to a “Preset” key. It will also be noticed that, if the source is on the USB key, the latter has to be connected to the Radio IP, and if the source is an Internet source, the Radio IP has to be in communication with the services platform, via the WIFI gateway.
In the presently contemplated embodiment, the Radio IP also comprises a functionality of volume setting which is activated by the user whatever the mode in which the Radio IP operates. The user modifies the sound volume of the Radio IP from 0 to 100% by means of the corresponding button(s).
An equalizer functionality allows the user, when an audio source is played, to modify the bass and/or treble levels. The user can validate or cancel the modifications that have been done. Consequently, the treble and/or bass levels are immediately set in accordance with the settings chosen by the user. The treble and bass levels are saved in the user base when the Radio IP is powered off, and they can be specific to each audio source.
The user can choose to add the title currently played into a list of “favourites”. If the number of favourites of the list has reached a maximum number, for example 100, the older favourite is deleted. A message displayed during 5 seconds confirms to the user that the title has been added to the favourites. The title is thus added to the favourites list, and the following pieces of information are recorded in the Radio IP and transmitted to the services platform: meta-data; name of the radio; date and time of the recording as a favourite; music bought: yes/no (by default: no); buying code (by default: no code). For this functionality, the Radio IP has to be in communication with the services platform.
The user can also choose to delete a favourite. To this end, the user activates this functionality after having selected a favourite in the favourites list while in “Audio” mode. The corresponding title is deleted from the list. The services platform is informed of this favourites list updating, and the mirroring of the favourites list in the user database is synchronized. The Radio IP has to be in communication with the services platform via the WIFI gateway.
As a variant, the user can choose to delete all the favourites of the list.
A user that powers on his/her radio-set or that selects a new radio expects for a content to be immediately broadcasted. The user has the feeling of dysfunctioning beyond a one-second wait. Advantageously, the Radio IP implements one or more of the following strategies to immediately broadcast the content.
When the user browses the menu, the Radio IP connects to the X best sources, i.e. for example the X sources the most often listened to by this particular user. In background, the Radio IP plays back the corresponding sources. When the user actually selects a radio x, the playback of the corresponding source goes on with the broadcasting of the corresponding program, whereas the X−1 other data stream playback tasks are suspended. According to the bandwidth available at the considered instant of time and to the compression rate of the data played back from the various sources, the number X is recalculated every time and can thus vary. As a variant, the first seconds of the X sources are recorded on the services platform. When a particular source is selected, this few-seconds file is transferred from the platform toward the Radio IP for immediate playback. These few seconds give the Radio IP the time to access the server of the resource and give this server the time to start broadcasting the audio content. As soon as it receives the first data from the server, the Radio IP switches from the playback of the initial file to that of the stream. The switch can be the cause of a micro-interruption in the hearing of the content. In this embodiment variant, the bandwidth from the server must be wide, and the server must be capable of supporting a greater load.
The Radio IP can also make in possible to redirect the audio stream toward, for example, a portable phone. Each Radio IP is identified by a VoIP phone number. This portable phone makes a call toward this number and receives the steam played on the Radio IP at the time it connects, the Radio IP redirecting the data stream in real time in a coded format complying with the Voice-over-IP protocol. The Radio IP can decode key actuations on the portable phone (DTMF) so that the user of the phone can remotely browse the menu of the Radio IP to modify, for example, the played back audio source.
The Radio IP can also be equipped with a microphone. The audio signal picked-up by this microphone is transmitted over the Internet network (Voice over IP) to the services platform. The latter redirects the information stream toward the adapted application or service. For example, a voice server integrating a speech-recognition engine constructs, based on information extracted from the catalogue database, a response giving the address of an audio resource required by the user.
The general catalogue and the personal catalogue of a user contain so-called “editorial classification” information associated with each accessed source. For example, a popularity index of a source of the general catalogue can be determined by calculating the ratio of the total playing time of this source to the total playing time of all the sources of the same category or the same type, during one month, for example. Another example of a general indicator can be a technical score about the content server quality. Each time a user fails to read content from a server, the Radio IP sends a notification to the services platform. The platform then determines a technical score by counting the number of notifications regarding a same server during a given period of time. A too low technical score will allow the administrator of the platform to delete the corresponding sources from the database and to inform the administrator of the defaulting third-party server.
Personal indicators can also be determined, such as a score of satisfaction given by the user during the playback of a source, or information about the access frequency of a particular source with respect to the different resources of the user personal catalogue that are accessed during a predetermined period of time. This personal information about the behaviour of the user permits an automatic management of the personal catalogue, this automatic management being added to the direct management of the personal catalogue by the user via an Internet interface. Thus, if the sources of a same category are well scored, similar sources having received a good score from other users can be proposed to the user. If a source has a too low score during a period of time longer than three months, the corresponding source can be automatically deleted. It is possibly replaced by the source of the general catalogue having a good score according to the same criteria. If need be, when all the sources of a category have a bad score, the whole category can be automatically deleted from the personal catalogue of the user. It will then be no longer presented in the menu of the Radio IP. This functionality is for example interesting for upgrading the menu and in particular for upgrading the initial menu presented on the Radio IP just after a new user has identified. As the use of the Radio IP goes along, categories this user does not appreciate will be deleted to simplify the menu browsing. As a variant, the menu can be dynamically modified by presenting in first position the best-scored categories or resources.
The formats of the communication exchanges between the Radio IP 1 and the services platform 4 will now be described in detail. The DNS address of the platform 4 is RadioIP.phoenix.net. This address is an example and has to be replaced by the real DNS address of the platform used.
HTTP Header
All the requests emitted by the Radio IP 1 toward the platform 4 are of the HTTP GET type, with the systematic presence of a HTTP header which is detailed in the Table 1 below.
Information Requests
The format of the GET parameters depends on the type of request that is made.
Automatic Updating of Date and Time:
The platform 4 sends in response an XML document according to the grammar Phoenix 1.0.0 (XML-P) containing the element <DateTime>, as detailed hereinafter.
Retrieving Content of One Menu:
The platform 4 sends in response an XML-P document containing the element <Menu MenuID=“_M_”>, where _M_is replaced in the request and the response by the unique identifier of the desired menu. The value _M—=0 is used to indicate the main menu, which is the starting node of all the menus.
Retrieving the Presets List of the Radio IP:
The platform 4 sends in response an XML-P document containing the element <Presets>.
Retrieving the Favourites List of the Radio IP:
The platform 4 sends in response an XML-P document containing the element <Favourites>.
Retrieving the List from the Information Stream:
The platform 4 sends in response an XML-P document containing the element <Infos>.
Refreshing the Cache of the Radio IP:
The platform 4 sends in response an XML-P document containing the element <Cache>. This request allows the Radio IP to ask the platform 4 for the N last menus accessed, in order to refresh the cache memory of the Radio IP after a restart of the latter. In the preferred embodiment, N is equal to 100.
Modifying the Customized Data of the Radio IP
Modifying One Preset of the Radio IP
_B_ and _M_ represent the identifier of the button (1-8) of the Radio IP and the unique identifier of the menu (defined by the services platform), respectively. The platform 4 sends in response an XML-P document containing the element <Presets>.
Adding One Favourite of the Radio IP
_M_ and _TEXT_ represent the unique identifier of the menu in which the radio selected as a favourite has been presented to the user and the content of the meta-data associated with the favourite, respectively. The platform 4 sends in response an XML-P document containing the element <Favourites>.
Deleting One Favourite of the Radio IP
_F_ represents the unique identifier of the radio favourite to be deleted. The platform 4 sends in response an XML-P document containing the element <Favourites>.
Deleting all the Favourites of the Radio IP
The platform 4 sends in response an XML-P document containing the element <Favourites>.
Receiving the HTTP Response in XML Format
If the HTTP response is the code 200, any response made by the platform 4 to the Radio IP 1 is in the XML-P format described in the present document. Otherwise, only the HTTP error code is transmitted according to the usual HTTP protocol.
The XML Grammar Phoenix 1.0.0
The XML grammar Phoenix XML-P will now be described in detail.
Main Element <Phoenix>
Example in XML Format
Functions
It is the main element of Phoenix grammar. The presence thereof is systematic whatever the type of request made by the Radio IP.
In case of success, it must contain the authentication of an element of the type Cache, and possibly an element of the type Menu or Presets or Favourites or Infos or DateTime.
In case of error, it must contain a unique element Authentication.
Description of the Content
Element <Authentication>
Examples in XML Format
Functions
This element is returned following an authentication error or a request for resynchronization from the platform, whatever the request made by the Radio IP.
Description of the Content
Element <Cache>
Examples in XML Format
Functions
This element is returned whatever the request made by the Radio IP, from the moment the authentication is a success. It allows to keep the Radio IP cache optimally updated. The validity time-period count of each type of element (attributes ValidityMenus, ValidityPresets and ValidityFavourites) is reset as soon as an XML response containing an element <Cache> is received.
The list of MenuIDs returned for updating is the list of identifiers of the menus modified on the platform 4 between the last request of the Radio IP and the current request. The Radio IP has the task to check if these MenuIDs are defined in its cache and to make the request for retrieving the menus, in background, so as to update these menus.
Description of the Content
Element <Menu>
Examples in XML Format
Functions
This element is returned for a request for information about content of one menu, whether it is at the time of first access to this menu or at the time of updating of the cache.
A menu is identified in a unique manner by an attribute MenuID defined on the services platform.
Description of the Content
Element <Presets>
Examples in XML Format
Functions
This element is returned for a request for information about content of the presets list or for modifying of a preset.
A MenuID corresponding to the description of an audio stream is associated with each preset of the Radio IP.
Description of the Content
Element <Favourites>
Examples in XML Format
Functions
This element is returned for a request for:
A unique identifier FavouriteID is associated with each favourite of the Radio IP.
Description of the Content
Element <Infos>
Examples in XML Format
Functions
This element is returned for a request for content of the information stream.
The field Infos.GMTTimeOfNextRequest indicates the time (with an accuracy of one second) of the next request the Radio IP has to make. This enables the platform 4 to optimize the load induced by the HTTP requests of all the Radio IP to retrieve the next information stream.
Description of the Content
Element <DateTime>
Examples in XML Format
Functions
This element is returned for a request for automatic updating of time and date.
Description of the Content
Managing the Cache of the Radio IP
The cache or cache memory is a limited-size memory volume for storing in the Radio IP 1 elements about the history of use thereof. It has for purpose to reduce the latency time when browsing the menus of the Radio IP 1, to allow operation even if the platform is not available (for example by ensuring a minimum service toward the radios servers the address of which are cached), and to reduce the load of the services platform by limiting the number of connections.
Cache Dimensioning
The SDRAM memory size reserved to the cache of the Radio IP 1 is of 500 Ko, which must allow, with an estimated average of 5 Ko by cached element, to save 100 elements in memory. It will exist far more than 100 possible elements to cache; however, after a phase of discovery of the Radio IP, it can be assessed that the user will always listen to the same type of audio content and will daily browse less than 100 menus.
The cache is not saved in the FLASH memory of the Radio IP 1, which allows to optimize the necessary size of the FLASH memory and to increase the lifetime of this memory, which is known to have a number of writing operations limited to about 100000.
Element Cache
The cache of the Radio IP according to the invention comprises three types of elements:
On the other hand, the XML element <Infos GMTTimeOfNextRequest=“_TIME_”> that describes the information stream is not considered in the management of the Radio IP cache because the updating thereof is systematic and set on a periodical basis according to the attribute _TIME—
Cache Updating Information
The XML element <Cache> is systematically returned by the services platform, whatever the request made by the Radio IP, from the moment the authentication is a success. It allows to keep the Radio IP cache optimally updated. As mentioned above, the XML element <Cache> comprises the attributes ValidityMenus, ValidityPresets or ValidityFavourites, which indicates the validity time-period of each type of element of the cache. The validity time-period is reset as soon as an XML response containing a type of element to be updated is received.
As mentioned above, the cache is not saved when the Radio IP is powered off. The services platform saves each menu access from the Radio IP. At each new power on, the Radio IP emits a request for refreshing the cache to know the list of elements to be restored in its cache. The platform responds by giving, for example, the list of MenuIDs necessary to refresh the cache. The Radio IP then emits the necessary number of requests toward the services platform to retrieve each element.
In the particular case of the first power on of the Radio IP coming from the factory, the cache of the Radio IP is empty. After registration of the Radio IP with the services platform, and after the first HTTP GET request for refreshing the cache, the XML element <Cache> is returned to indicate the updating of the favourites list, the presets list as well as the menu whose MenuID is equal to 0: it is the base or root menu of the audio browsing. It enables the Radio IP to immediately retrieve customized data, the initial values of which correspond to a default profile.
Request for Retrieving One Element
During a normal operation, if the Radio IP tries to access an element that is not present in the cache, the Radio IP waits for the response of the services platform to display the result on the screen, and then caches this response.
If the Radio IP tries to access an element that is present in the cache, two cases are possible.
If the validity time-period of the corresponding type of element has expired, a request is emitted toward the platform for retrieving the corresponding element. The HTTP headers of this request contain the list of the menus accessed by the Radio IP directly from the cache as long as the validity time-period has not expired. If the response is obtained within less than one second (a waiting time considered as acceptable by the user), the result is displayed on the screen and the cache is updated if need be. The response possibly contains an element <Cache> which indicates that other elements have to be updated in background without the user has to worry. If the response is obtained within more that one second, the result is displayed on the screen from the cache. When the response arrives in background, it is normally handled for the cache updating, but the display on the screen is not modified so as not to disturb the user. If a new request is emitted before the response arrives in background, the latter will follow the principle of the expired time-period.
On the other hand, if the validity time-period of the type of element has not expired, the result is displayed on the screen from the cache. No request is emitted toward the platform. The cache manager saves the information according to which this or that menu has been accessed, in order to inform the platform of it during the next request with an expired time-period.
The validity time-period is a parameter whose value is decided on the platform and assigned on the type-of-element basis: menus, presets and favourites. If the Radio IP uses a default profile, this validity time-period can be increased from one minute to tens of minutes, or event one hour, because only the administrator of the platform can modify content of the menus. The Radio IP is necessarily at the origin of the presets and favourites modifications: it can thus take these latter into account without making additional request. If the Radio IP uses a user profile liable to be modified by the user on the platform (by accessing the platform via a personal computer connected to the user site of the platform), even with keeping a short time-period, the principle stays interesting as regards the platform load. Moreover, when the user is connected via a personal computer to the user site of the platform, in order to modify his/her Radio IP profile, the platform can assign a validity time-period equal to zero to the next requests, until the user has closed his/her session on the user site. It allows to ensure that any modification made by the user on his/her Radio IP profile is immediately taken into account in his/her Radio IP.
Modifications Made on the Platform
It might be that the administrator of the platform would modify the menus. In this case, a list of the identifiers MenuID of the menus modified on the services platform between the last request of the Radio IP and the current request is returned by the platform in the purpose of updating. The Radio IP will ignore the updating information for the menus it does not accessed and will emit requests for retrieving menu-content for only the menus that were in its cache. To correctly fill up this list of identifiers MenuID of the modified menus, the services platform has to save the date and time of the last modification of each menu and the date and time of the last request made by the Radio IP. Thus, the platform returns only one time the list of modified elements to the Radio IP.
Management of the Menu Access Statistics
If some elements of the cache have to be updated following the reception of an element <Cache> in an XML response, the cache manager of the Radio IP emits requests in background, without informing the user of it. In this particular case, the HTTP_RADIO IP_MENUIDS header is not emitted.
In all the other cases, the HTTP_RADIO IP_MENUIDS header is emitted with the list of menus accessed from the cache since the last HTTP request emitted by the Radio IP. If the emitted request is for menu retrieval, the MenuID of this menu is included as the last element of the list of the HTTP_RADIO IP_MENUIDS header.
The Radio IP is thus used as follows: the user that desires to listen to a radio places the Radio IP in Audio mode. The user directly launches a preset or browses the preferred menus to select a radio. The duration of this selecting step can be assessed to a few dozen of seconds. The user tries some radios and then decides to listen to one during a few minutes or more.
Even with a short validity time-period, for example of about 90 s, the load of the services platform is reduced because only the first access (possibly unnecessary) is made, followed by some useful accesses to refresh the cache of the Radio IP.
Assuming that the user periodically browses 10 genres and tests at most 20 radios during the selection process, the cache system allows the Radio IP to make only one request to the services platform instead of the 30 systematic ones.
As a result of this particular management of the cache memory, the load of the services platform is advantageously highly reduced.
Besides, whatever the request made by the Radio IP with the services platform, the XML response can contain an element <Cache>. This allows a fast updating of the elements present in the cache of the Radio IP, even if the user did not yet access these elements. Further, this mechanism makes it possible to do without systematic periodic connections, but to take advantage of the useful connections to manage the content of the cache.
In conclusion, the request for refreshing the Radio IP cache makes it possible, on the one hand, to optimize the necessary size of memory on the Radio IP as well as the lifetime of this memory if the latter is of the FLASH type, and, on the other hand, to loose not any user information if the Radio IP is reset to the default factory settings.
Example of Use
The following steps chronologically follow on.
Cache Refreshing at the Power on of the Radio IP
The user browses the menus 0, 1, 10, 101 and 102 with his/her Radio IP 1 before the validity time-period expires (here: less than 90 s after the power on).
The user browses the menus 10, 102, 10, 101, 10 and 100 with his/her Radio IP 1 after the validity time-period has expired (here: more than 90 s after the last request).
The administrator modifies the URL of “Radio 1”. The user browses the menus 10, 102 with his/her Radio IP 1 after the validity time-period has expired (here: more than 90 s after the last request).
In the meantime, in background on the Radio IP:
The user connects to the user sites of the platform to modify his/her Radio IP 1 profile. He/she accesses the menu 10 on his/her Radio IP after the validity time-period has expired (here: more than 90 s after the last request).
The user disconnects from the user site of the services platform. He/she accesses the menu 1 on his/her Radio IP after the validity time-period has expired (here: immediately because 0 s after the last request).
Password Synchronization
A minimum authentication mechanism has to be ensured between the Radio IP and the services platform to avoid, among other things, that any terminal or software other than the Radio IP connects to the platform 4 and retrieves information reserved to the Radios IP, or information about a particular Radio IP and thus the user thereof. But it is however necessary that any Radio IP coming from the factory can register with the services platform.
Of course, the process that is chosen must be simple and not very computation-intensive and allow a very large-scale integration. A resynchronization of the Radio IP password must also be possible at any moment, either on the initiative of the user (via his/her Radio IP profile) or on that of the administrator.
A non-encrypted transmission of the information being chosen, a mechanism forbidding the replay of the password has thus to be ensured so that an authentication password of the Radio IP can be used only one time. A protection against sniffers is thus provided.
Principle of Operation of the Password Synchronization
The cryptographic algorithm that is used consists only of the MD5 hash algorithm. The latter makes it possible to hash variable-size content and to output 16-bytes binary data that will be transformed into a result string of 32 hexadecimal characters (format “String(32)[0-9][A-F]”).
The result string forms the password. Any password will thus be formed of 32 hexadecimal characters. No symmetrical or asymmetrical encryption algorithm is used in the implemented solution.
The password is calculated from the elements described in the table below:
The password associated with the Radio IP is the result of applying the MD5 algorithm to the concatenation of the character strings MAC address, shared secret, Radio IPToken and Radio IPSalt.
Factory-Set Initial State
The initial password of the Radio IP coming from the factory is calculated from default values defined in the preceding paragraph. The MAC address is different for each Radio IP, the initial password resulting from the MD5 algorithm is completely different from one Radio IP to another.
Registration of the Radio IP
At the time of the first HTTP request transmitted by the Radio IP to the services platform, which can be either a time setting request or a cache refreshing, the factory-set initial password is sent in the HTTP header as the value of the parameter “HTTP_RADIO IP_PASSWORD”. The header parameter “HTTP_RADIO_IP_SALT” is set to 0. The header parameter “HTTP_MAC_ADDRESS” contains the MAC address of the Radio IP.
The platform 4 checks the validity of this initial password and transmits, in its XML response, an element <Authentication> with an error code set to 1 and a sub-element <Synchronization> for assigning to the Radio IP a new token “Radio IP Token”, which will be used in the next communication exchanges.
Below are given an example of response in case of success:
and an example of response in case of invalid password:
Requests of the Radio IP
For each HTTP request transmitted by the Radio IP toward the services platform, the password calculated with the token received at the time of registration of the Radio IP is transmitted as the value of the header parameter “HTTP_RADIO IP_PASSWORD”. The header parameter “HTTP_RADIO_IP_SALT” is set to the value used in the preceding request, incremented by one unit, or to the value 0 if a password resynchronization message has just been received by the Radio IP. The header parameter “HTTP_MAC_ADDRESS” always contains the MAC address of the Radio IP.
The platform has all the information necessary to check this password and thus to accept or not the request. Below is shown an example of response in case of valid password but with a value of the header parameter “HTTP_RADIO_IP_SALT” already used (the matter is to implement a protection against replay):
Password Resynchronization
If the Radio IP is reset with the factory settings, the password of the Radio IP becomes again the factory-set initial password. The token associated with the Radio IP is then no longer the same on the platform and on the Radio IP. In this case, the authentication result will be negative whatever the HTTP request emitted by the Radio IP.
To handle this problem, the platform must offer either the administrator or, possibly, the user via customization of his/her Radio IP profile, the possibility to reset the token associated with the Radio IP.
If a password resynchronization is initiated by the services platform then, whatever the nature or the next HTTP request emitted by the Radio IP, the password sent by the Radio IP will be accepted by the platform. Consequently, the XML response of the platform will contain an element <Authentication> with an error code set to 1 and a sub-element <Synchronization>. The process is similar to the registration of the Radio IP coming from the factory.
The field “DefaultRadio IPPassword” must correspond to the factory-set initial password of the Radio IP. To be capable of performing this checking, the Radio IP saves the initial value of the token, which is common to all the Radio IP. If this field does not correspond, the Radio IP does not accept the new token.
Following a password resynchronization, the next value of “Radio_IP_Salt” transmitted by the Radio IP will be equal to 0.
Below is given an example of response to a password resynchronization request:
It will be noticed that a response with an authentication failure is impossible if a password resynchronization request has been initiated on the platform for the Radio IP.
Although the invention has been described with reference to a particular embodiment, it is not limited to this embodiment. It includes all technical equivalents to the described means as well as the combinations thereof that are within the scope of the invention.
Number | Date | Country | Kind |
---|---|---|---|
0653568 | Sep 2006 | FR | national |
Filing Document | Filing Date | Country | Kind | 371c Date |
---|---|---|---|---|
PCT/FR2007/051870 | 9/4/2007 | WO | 00 | 9/16/2009 |