# Patent

## Title
Device and process for remote management of a network of audiovisual information reproduction systems

## Abstract

Management device for a network of audiovisual information reproduction systems or jukeboxes, including a database with a plurality of sets of arrays, each array containing grouped information either about the composition of a jukebox, or the use of the jukebox, or the payment of fees. The database is managed by a computer server connected with the audiovisual information reproduction systems to receive messages sent by each audiovisual information reproduction device and containing information necessary to update determined sets of arrays in the database, and update data or the program for each audiovisual information reproduction device with information stored in at least one set of arrays in the database and transmitted in this message.

## Background
This application is a continuation of application Ser. No. 09/598,170, filed Jun. 21, 2000 now U.S. Pat. No. 6,578,051, the entire content of which is hereby incorporated by reference in this application.


FIELD OF THE INVENTION
This invention relates to a device and a process for the management of a network of audiovisual information reproduction systems.
BACKGROUND OF THE INVENTION
International patent application WO 96/12255 describes a device for reproduction of audiovisual information commonly called jukebox. This jukebox is organized around a system unit that manages audiovisual reproduction means and means for memorizing at least one audiovisual information corresponding at least to the sound reproduction of one song. The system unit also manages telecommunication means such as a modem, particularly to enable downloading of audiovisual information from a host server. Management of orders for new songs and for changing settings requires either that an operator should visit the site on which the jukebox is installed, or that the operator should use a computer with a link to the host server. Furthermore, management operations that can be performed through the link with the host server are limited to ordering new musical selections.
OBJECT AND SUMMARY OF THE INVENTION
Therefore, the purpose of this invention is to overcome the disadvantages of prior art by proposing a device for management of audiovisual information reproduction systems that can be used to manage all information related to audiovisual information reproduction systems and their operation in a simple and centralized manner.
This purpose is achieved by the fact that the device for management of a network of audiovisual information reproduction systems is characterized in that it comprises a database with a plurality of sets of arrays, each array containing grouped information either about the composition of a jukebox, or the use of the jukebox, or the payment of fees, the database is managed by a computer server provided with means of connection with audiovisual information reproduction systems to firstly receive messages sent by each audiovisual information reproduction device and containing information necessary to update determined sets of arrays in the database, and secondly to send messages to each audiovisual information reproduction device in order to update data or the program for each audiovisual information reproduction device with information stored in at least one set of arrays in the database and transmitted in this message.
According to another feature, a first set of arrays comprises general information about the operating status of the jukebox.
According to another feature, the first set of arrays comprises a number uniquely identifying each jukebox, the operating status of the jukebox, the password authorizing operation of the jukebox and the jukebox installation date.
According to another feature, a second set of arrays in the database comprises information about the hardware and software composition of each jukebox.
According to another feature, the second set of arrays comprises a group of tables containing all software that can be used on the jukeboxes, each program being identified by at least its name and its version number.
According to another feature, the second set of arrays comprises a group of tables containing the program names and versions installed on each jukebox, for each given jukebox.
According to another feature, the second set of arrays comprises a group of tables containing the list of hardware components usable in each jukebox, each component being identified by a number, the group of tables also comprising an argument corresponding to the number of the jukebox on which the component is installed.
According to another feature, the second set of arrays comprises a group of tables containing the descriptions of each software and/or a group of tables listing incompatibilities between the software and/or a group of tables containing descriptions of each hardware component, and/or a group of tables listing incompatibilities between components and software, and/or a group of tables containing the list of software associated with hardware components.
According to another feature, a third set of arrays comprising a first subset contains all possible values for the different operating and setting parameter sets for all jukeboxes, each value for a parameter set being identified by a unique number.
According to another feature, a second subset of the third set of arrays associates an identifier of the operating and setting parameter set contained in a group of tables in the first subset of the first group, for each jukebox identifier.
According to another feature, the parameter sets contain the different possible passwords in a first group of tables and/or the prices of songs in a second group of tables and/or the setting of a remote control of a jukebox in a third group of tables and/or the number of free songs usable in a third group of tables and/or Internet connection elements in a fourth group of tables.
According to another feature, a fourth set of tables determines the list of song numbers available on a jukebox with a given identifier number.
According to another feature, a fifth set of arrays comprises a description of all songs, artists and albums making up a bank of songs in the database, each song being identified by a number.
According to another feature, the fifth set of arrays comprises a group of tables containing a description of each song in the songs bank and whether or not it is available on each jukebox, a group of tables containing a description of each album in the songs bank and whether or not it is available on each jukebox, and a group of tables containing a description of each artist or group of artists in the songs bank.
According to another feature, a sixth set of arrays comprises information about the placement of a filter on each jukebox to prevent downloading of at least one song chosen by an operator.
According to another feature, the sixth set of arrays comprises a plurality of groups of tables that define all criteria for all filters that may be setup on each jukebox and applicable to at least one determined artist and/or at least one determined songs category and/or at least one determined disk publisher and/or at least one determined song, each filter being described in an array and identified by a unique number identifying the filter.
According to another feature, the first set of arrays comprises an argument corresponding to the identifier of the filter(s) applied to the determined jukebox.
According to another feature, a seventh set of arrays comprise information about operators that own or rent each jukebox.
According to another feature, an eighth set of arrays comprises the history of the use of each jukebox.
According to another feature, the eighth set of arrays comprises a group of tables containing the list of all identifiers of songs distributed on each audiovisual information reproduction device, this array being updated by the server on reception of a report file, by a determined audiovisual information reproduction device, and containing the list of songs distributed on the jukebox.
According to another feature, a ninth set of arrays comprises information necessary for the calculation of fees and the rental cost for each jukebox.
According to another feature, a tenth set of arrays comprises all instructions intended to update at least one audiovisual information reproduction device, these instructions being transmitted to the audiovisual information reproduction device concerned by the server as soon as the audiovisual information reproduction device sets up a communication with the server.
According to another feature, the tenth set of arrays comprises a group of tables identifying update instructions for a determined jukebox and the order in which the instructions must be executed on the jukebox and/or the date starting from which the server can transmit instructions to the jukebox.
According to another feature, the instructions contained in the eleventh set of tables are memorized before the date starting from which the server can transmit instructions to the jukebox.
According to another feature, the tenth set of arrays comprises a plurality of groups of tables containing update instructions possible on each jukebox, each instruction related either to an update to the software, or the addition of a new album, or the addition of a new song, or the management of computer files on a jukebox, or the modification of a jukebox operating parameter.
According to another feature, the tenth set of arrays comprises a group of specific tables comprising all identifiers of instructions that were correctly transmitted to each jukebox, the group of specific tables also comprises at least the destination jukebox identifier and the instruction transmission date, for each instruction identifier.
According to another feature, the tenth set of arrays comprises at least one group of specific tables defining events triggering a given instructions group.
According to another feature, a first subset of an eleventh set of arrays comprises information about setting up a promotion for the distribution of at least one song available on each jukebox, each promotion being identified by a number, and in that a second subset of the eleventh set of arrays comprises references of the promotion(s) applicable to a given jukebox.
According to another feature, the first subset of the eleventh set of arrays comprises at least one group of specific tables defining all songs for which there is a promotion, and the promotion start and end dates, and the first subset of the eleventh set of arrays also comprises a group or specific tables comprising price modifications of the songs for which the promotion is made.
According to another feature, payment of fees due for the distribution of all songs included in the promotion is charged to the promoter who initiated the promotion.
According to another feature, the server comprises a module for the display of information in the database in order to display at least one screen comprising at least one information display area and/or at least one information input area and/or at least one information selection area, each selection area provokes the collection of information by the server in the database or validation of information contained in each input area and each display area includes the value of an argument in the database.
A second purpose of the invention is to propose a process for the management of a network of audiovisual information reproduction systems or jukebox.
This second purpose is achieved by the fact that the process for the management of a network of audiovisual information reproduction systems or jukebox comprises a computer server with means of connection to information reproduction systems, characterized in that it comprises:

    
    
        a step in which a jukebox is connected to the server to setup a communication,
        a step with transfers of at least one message from the jukebox to the server,
        a step in which the server processes the message to identify the jukebox that setup a communication and to update at least one table in a database controlling central management of the jukeboxes,
        a step to search for instructions to update the jukebox, in at least one group of tables in the database,
        a step for the construction of a message and then transfer of the message from the server containing the update instructions found in the database, to the jukebox that setup the communication.
    
    





BRIEF DESCRIPTION OF DRAWINGS
Other features and advantages of this invention will become more obvious after reading the following description with reference to the attached drawings in which:
FIG. 1 shows a block diagram of a system using a server according to the invention,
FIG. 2 shows a simplified flow chart of the structure of a database of the server used by the system according to the invention,
FIGS. 3A to 3F show a detailed flow chart of the structure of a database used by the system according to the invention,
FIG. 4 shows an example of an audiovisual reproduction device,
FIGS. 5A to 5H show different arrays used to display information in the database.



DESCRIPTION OF THE PREFERRED EMBODIMENTS
Before describing details of the remote management system for an audiovisual reproduction device according to the invention, it is worth mentioning the composition of an audiovisual reproduction device and its operating mode.
FIG. 4 shows an example of an audiovisual information reproduction device. This type of device is described in particular in international patent application WO 96/12255 submitted by the applicant. Preferably, but in no way restrictively, this audiovisual information reproduction device uses the hardware components mentioned and referenced below.
The system unit 1 with a microprocessor is a high performance PC compatible system, the choice at the time of implementation was made for an Intel Pentium type system with at least the following memory means and characteristics:

    
    
        compatibility with the Vesa local bus,
        processor cache memory: 256 kbytes,
        RAM memory: 32 Mbytes,
        high performance serial and parallel ports,
        microprocessor controlled SVGA type graphic adapter,
        SCSI/2 type bus controller,
        self-powered static RAM memory.
    
    


Any other system unit with equivalent or better performances could be used in the invention.
This system unit controls and manages a sound control circuit 5, a telecommunications control circuit 4, an input control circuit 3, a mass memory control circuit 2, and a display means 62 control circuit 6. The display means are composed primarily of a SVGA type flat screen, high resolution, low radiation video monitor 62 with no interlacing. This is the monitor that will be used for image reproduction (for example album covers for musical selections), and to display graphics and video clips.
Storage modules 21 using high speed, high capacity SCSI type hard disks form part of the memory means and are associated with the memory means already existing in the microprocessor device. These modules are used for the storage of audiovisual information.
A 28.8 kbps high speed telecommunications modem adapter 41 is included to create the link with an audiovisual information distribution network controlled by a host server.
For the reproduction of audio information in musical selections, the system comprises loudspeakers 54 into which the signal from an amplifier tuner 53 connected to a music synthesizer type electronic circuit 5 is input, designed to accept a large number of input sources while providing a CD (compact disk) type quality output, for example such as the microprocessor multimedia audio adapter such as a sound card.
The audiovisual reproduction device is provided with an input controller circuit 3 that manages a touch screen 33 including a glass coating panel using the “advanced surface wave technology”, and an AT type bus controller. This touch screen placed in front of the monitor can be used to select various selection information used by customers, and ordering and management control information used by the system manager or owner, on the video monitor display 62 or on a television screen 61. It is also used with an external keyboard 34 that can be connected to the system that is provided with a keyboard connector for this purpose, controlled by a key lock 32 through the interface circuit 3, for maintenance purposes.
A fee payment device 35 is also connected to the input interface circuit 3. Any other device can be used that enables reception of any payment method by coins, tickets, tokens, magnetic cards or smart cards or a combination of payment means.
The system is installed in a steel frame or rack.
Apart from these elements, a cordless microphone 55 is connected to the audio controller 5, to transform the audio controller into a powerful public address and public information system, and possibly a karaoke machine. The system can use a system of cordless loudspeakers.
The audiovisual information reproduction device also comprises an integrated circuit (not shown), electrically powered only when a read or write operation is carried out, and capable of storing the serial number in a nonvolatile memory. The operating system can read or write information on the circuit through a control circuit, particularly to keep the jukebox serial number and the different operating parameters. This circuit is called an “Ibutton” in prior art.
The operating software in the system was generated around a library of tools and services specifically designed for the audiovisual field in a multimedia universe. This library advantageously includes a high performance multi-task operating system that efficiently enables simultaneous execution of multiple code fragments. This operating software enables concurrent and orderly execution, thus avoiding any conflict between operations carried out on display means, audio reproduction means and management of telecommunication links through the distribution network. Furthermore, this software is extremely flexible.
Throughout the rest of this description, the terms “audiovisual information reproduction device” and “jukebox” refer to the same object.
FIG. 1 shows a block diagram of the device according to the invention. According to prior art, each audiovisual reproduction device (100.1 to 100.n) communicates with the host server 10 through its telecommunication means, and for example a modem card 41 connected to the telephone network 30. The host server 10 comprises communication means 121, 111 for this purpose, for example such as at least one modem connected to the telephone network. The host server 10 also comprises a database 11 containing all information about the operation of each audiovisual information reproduction device (100.1 to 100.n), in other words the operating parameters for the audiovisual information reproduction device (100.1 to 100.n), its identification number, the list of songs stored on each audiovisual information reproduction device (100.1 to 100.n), each operator being responsible for management of one group of audiovisual information reproduction device(s) (100.1 to 100.n). The database also contains statistics about the use of each audiovisual information reproduction device (100.1 to 100.n), in other words the list of songs played and the date on which each song was played, the list and date of all incidents that occurred during the use of each audiovisual information reproduction device (100.1 to 100.n), particularly when it was switched off, communication interruptions, and the number of times that payment means refused the money input or the proposed payment. Similarly, the database comprises the list of available songs stored in the host server memory means 10, the audiovisual information necessary for reproduction of these songs, and the setting tools necessary to install the operating system for each audiovisual information reproduction device (100.1 to 100.n). All the information contained in the database 11 is updated by means of communications, for example periodic communications, with each audiovisual information reproduction device (100.1 to 100.n) through the telephone network and modems for each audiovisual information reproduction device (100.1 to 100.n) and the database or the host server 10.
An example database 11 used in the device according to the invention will now be described with reference to FIGS. 2 and 3A to 3F. All this information in the database 11 is stored in the form of arrays. Each array contains information about a theme or structure or particular function of the audiovisual information reproduction systems (100.1 to 100.n, FIG. 1). Each item of information is identified by an argument contained in an array in the database 11. The information in one array may be linked to another array. This link is established when at least one argument is common to the two arrays.
According to the invention, the database 11 comprises at least one first set of arrays (1101, JUKEBOX, FIGS. 2 and 3A and 3E) representing information directly concerning the audiovisual information reproduction device (100.1 to 100.n, FIG. 1), for example such as its operating status (JUK_STATUS, FIG. 3A), its identification number (JUK_ID, FIG. 3C), or the available memory space (JUK_AVAILABLE_SPACE, FIG. 3A). Each table in this first set of arrays 1101 represents a audiovisual information reproduction device (100.1 to 100.n, FIG. 1) identified in this table by its identification number (JUK_ID, FIG. 3A). Similarly, the information contained in the table in the first set of arrays (1101, FIG. 3A) can be updated when a message is received from a jukebox. This is done by the jukebox, as soon as it sets up communication with the server (10, FIG. 1) processing the received message to see if the information contained in the database needs to be updated. If the message contains information about changes to the jukebox status, the server modifies the argument of the table in the first set of arrays (1101, FIG. 3A) of the jukebox concerned by the received changes.
This first set of arrays (1101, FIG. 3A) is related to at least one second set of arrays (1102, SOFTWARE, FIRMWARE, COMPONENT, FIGS. 3B and 3D) representing information about hardware and software constituents that can be encountered on an audiovisual information reproduction device (100.1 to 100.n, FIG. 1). The arrays in the second set of arrays (1102, FIGS. 3B and 3D) comprise in particular the name (PGD_NAME, COD_ID, FIG. 3B), the version (PGM_VERSION, FIG. 3B) and the installation date (PGM_RELEASE_DT, FIG. 3B) of each software or hardware component, in the array (SOFTWARE, FIG. 3B). Each row in the second arrays (1102, FIGS. 3B and 3D) corresponds to a software component or a hardware component. The link between at least one table in the second set of arrays (1102, FIGS. 3B and 3D) and a table in the first set of arrays (1101, FIGS. 3A and 3E) is made using the number of the audiovisual information reproduction device (100.1 to 100.n, FIG. 1). Thus using this link, it is possible to the server to know all software and hardware components of an audiovisual information reproduction device (100.1 to 100.n, FIG. 1) with a given number by searching in each second array for the rows containing the identification number of the audiovisual information reproduction device number (100.1 to 100.n).
The first set of arrays (1101, FIGS. 2 and 3A and 3E) is also related to a third set of arrays (1103, JUKE_XXX, IB_XXX, FIGS. 3A and 3C) representing information about the setting of an audiovisual information reproduction device (100.1 to 100.n, FIG. 1). A first group of arrays in the third set of arrays (1103, IB_XXX, FIGS. 3A and 3C) contains all operating parameters for the audiovisual information reproduction systems (100.1 to 100.n, FIG. 1) and a second group of arrays in the third set of arrays (1103, JUK_XXX, FIGS. 3A and 3C) associates each jukebox with a given set of parameters contained in a group of arrays in the third set of arrays (1103, IB_XXX, FIGS. 3A and 3C). Operating parameters include parameters controlling the volume of the amplifier defined for a jukebox in the tables (JUK_MIXAGE, FIG. 3A), or the parameters defined for the same jukebox in the I-button tables (IB_MIXAGE, FIG. 3A) table, or parameters about the price to be paid (IB and JUK_TUNE_COST) to select at least one song, or telecommunication link parameters (JUK_ISP) with the server (10, FIG. 1), or operating parameters for a remote control if any for an audiovisual information reproduction device (100.1 to 100.n, FIG. 1). These parameters are defined for a jukebox in the (JUK_REMOTE_CONTROL, FIG. 3C) table and all remote control operating parameters for all jukeboxes are defined in the (IB_REMOTE_CONTROL, FIG. 3C) table, an audiovisual information reproduction device (100.1 to 100.n, FIG. 1) being associated each time with a table (JUK_TUNE_COST, IB_TUNE, COST, JUK_REMOTE_CONTROL, IB_REMOTE_CONTROL, FIG. 3C) in the third set of arrays (1103, FIGS. 3A and 3C). Each row in a table stores operating parameters for an audiovisual information reproduction device (100.1 to 100.n, FIG. 1) with a given number (JUK_ID, FIGS. 3A and 3C). The link between the first and third sets of arrays (1103, FIGS. 3A and 3C) may be made for example using the identification number of an audiovisual information reproduction device (100.1 to 100.n, FIG. 1). Thus, the server 10 can find all operating parameters of an audiovisual information reproduction device (100.1 to 100.n, FIG. 1) with a given number by using this link, by searching in each third set of arrays (1103, FIGS. 3A and 3C) for tables containing the number (JUK_ID, FIGS. 3A and 3C) of the determined audiovisual information reproduction device (100.1 to 100.n, FIG. 1), then searching in the rows of these tables for the set of parameters corresponding to the found reference. Similarly, the server can update the information contained in the third set of arrays (1103, FIGS. 3A and 3C) when a message is received from a jukebox. This is done by the server processing the received message immediately that a jukebox enters into communication with the server, in order to determine if the information contained in the database needs to be updated. If the message contains information about modifications to physical parameters, the server adds a new table or replaces the value supplied by the modifications in the row of the table concerned in the third set of arrays (1103, FIGS. 3A and 3C).
The first set of arrays (1101, FIGS. 2, 3a and 3E) is also related to at least a fourth set of arrays (1104, SONG, FIGS. 2 and 3A) representing information about songs downloaded on the audiovisual information reproduction systems (100.1 to 100.n, FIG. 1). Each song is identified by a unique number (CLT_ID, FIGS. 2 and 3A) Each row in a table in the fourth set of arrays (1104, FIGS. 2 and 3A) represents a song stored on the audiovisual information reproduction device (100.1 to 100.n, FIG. 1) identified by its identifier at the beginning of the table. The jukebox periodically (for example daily) sends a message to the server. This message contains the list of all songs installed on the jukebox. Thus, the server compares the list that it receives from the previous list that it had received from the same jukebox and checks if there are any new songs. If there are, the server adds a table corresponding to the addition of one or more new songs in the list of songs available on the jukebox.
A fifth set of arrays (1105, CATALOGUE, FIGS. 2 and 3B) related to the fourth set of arrays (1104, SONG, FIGS. 2 and 3A) through the song identification number (CLT_ID, FIGS. 2 and 3A), comprises a description of each song in the database. Each row in the fifth array (1105, FIGS. 2 and 3B) represents the description of a song in the database (11, FIG. 1). This fifth set of arrays (1105, FIGS. 2 and 3B) in particular is used to determine whether or not a song is available to be downloaded on an audiovisual information reproduction device (100.1 to 100.n, FIG. 1) at the request of an operator. In particular, a song is not available unless agreements have been made about copying and playing the song. If these agreements have not been made, the song is present in the database but is not available for downloading to a jukebox. The link between the first set of arrays (1101, FIGS. 2 and 3A) and the fourth set of arrays (1104, FIGS. 2 and 3A) is made through the identification number (JUK_ID, FIG. 3A) of the audiovisual information reproduction device (100.1 to 100.n, FIG. 1).
The fourth set of arrays (1104, FIGS. 2 and 3A) is also related to a sixth set of arrays (1106, FIG. 2 and 3B) representing information about filters that an operator can use to prohibit downloading one or a plurality of songs determined by groups of specific tables. The song (or songs) is identified by a first group of specific tables identified by the identification number of the song(s) (FLT_CATALOGUE, FIGS. 2 and 3B), or by a second group of specific tables identified by the artist's identification number of the song(s) (FLT_ARTIST, FIGS. 2 and 3B), or a third group of specific tables identified by the identification number of the company that published the song(s) (FLT_LABEL, FIGS. 2 and 3B), or by a fourth group of specific tables identified by the identification number of the category (FLT_CATEGORY, FIG. 3B) to which the song(s) belong. Each group of tables in a sixth set of arrays (1106, FIGS. 2 and 3B) represents a given filter for a song, an artist, a disk publisher or a category. One of the tables (JUK_FILTER, FIGS. 2 and 3B) in the sixth set of arrays (1106, FIGS. 2 and 3A) is also linked to the first set of arrays (1101, FIG. 3A) and comprises the description (JUK_DESC, FIG. 3B) of the filter assigned to each jukebox by the filter identification number (JUF_ID) that is associated with the given jukebox identifier (JUK_ID) in each table (JUKEBOX, 1101, FIG. 3A). The first array (1101, FIG. 3A) also includes an argument corresponding to the filter number (JUF_ID). Thus, the filter on a given jukebox is defined by searching in the sixth set of arrays (1106, FIGS. 2 and 3B) for the table(s) containing the filter number (JUF_ID). Similarly, an operator can assign the same filter number to one or a plurality of audiovisual information reproduction systems (100.1 to 100.n, FIG. 1).
The first array (1101, FIGS. 3A and 3E) is also related by the identifier (JUK_ID) to a seventh set of arrays (1107, JUKE_LOCATION, FIG. 3A) representing information about the operators of audiovisual information reproduction systems (100.1 to 100.n, FIG. 1). This information comprises in particular an operator identifier (OPE_ID, FIG. 3A) that accesses a table (OPERATOR, FIG. 3A) specific to each operator. Each array (WAREHOUSE, ADDRESS, CONTRACT, FIG. 3A) in the seventh set of arrays (1107, FIG. 3A) corresponds to a table associated with a given operator. The relation between the first array (1101, FIG. 3A) and the seventh array (1107, FIG. 3A) is made through the operator identifier (OPE_ID). In order to achieve this, the first array (1101, FIG. 3A) therefore includes an argument (JUK_ID) used to find the associated argument (OPE_ID) corresponding to the owner or renter operator of the audiovisual information reproduction device (100.1 to 100.n, FIG. 1) in the jukebox locating table (JUKE_LOCATION, FIG. 3A). Thus, in particular this relation enables the server to determine the numbers of the audiovisual information reproduction devices (100.1 to 100.n, FIG. 1) managed by the operator for a given operator number. The (JUKE_LOCATION, FIG. 3A) table in the seventh set of arrays (1107, FIG. 3A) also includes the date (JUL_START_DT) on which the jukebox was installed for rental in the installation premises, and the expiration date of the rental.
The first set of arrays (1101, FIGS. 2 and 3A and 3E) is also related to an eighth set of arrays (1108, FIGS. 3A and 3E) representing information about the log for an audiovisual information reproduction device (100.1 to 100.n, FIG. 1). This information actually represents all events that take place on each audiovisual information reproduction device (100.1 to 100.n, FIG. 1) and in particular, every time that a song is played, a row is written in a table in the eighth set of arrays (1108, PLAY_LOG, FIG. 3A). Similarly, every time that an amount of money is inserted into the audiovisual information reproduction device (100.1 to 100.n, FIG. 1), a new row is written, for example in another array of the same type (SYSTEM_LOG, FIG. 3A). In particular, the information collected in these arrays is used to calculate fees to be paid to the artists or publishers or writers of the played songs, and also to find out exactly what songs were played during a day, a week or a given period, on a determined audiovisual information reproduction device (100.1 to 100.n, FIG. 1).
For example, information about the fee calculations may be centralized in a ninth set of arrays (1109, FIG. 3F) comprising groups of tables (JUKE_DAY_REPORT, FIG. 3F) related to the eighth set of arrays (1108, FIGS. 3E and 3A). The eighth set of arrays (1108, SYSTEM_LOG, PLAY_LOG, FIGS. 3E and 3A) is updated every time that the server receives a log file during a communication setup between the server and a jukebox. Each event contained in the log file transmitted by the jukebox will be processed by the server. This processing consists of adding a row in one of the tables (1108, SYSTEM_LOG, PLAY_LOG, FIGS. 3A and 3E) in the eighth set of arrays for each event. For example, events may be sorted into two categories. The first events are songs played on the jukebox and are memorized in the group of arrays (PLAY_LOG, FIGS. 3A, 3E and 3F), and the second events are other operations that occurred on the jukebox, for example such as insertion of amounts of money in payment means and are memorized in the SYSTEM_LOG group of arrays, FIGS. 3A and 3E.
Similarly, a copy of a song made on a jukebox will be paid for by the payment of a royalty to the song publisher. In order to do this, the fourth and fifth sets of arrays (1104, 1105 FIG. 3A, FIGS. 3B and 2) comprise all information necessary to determine the number of songs on each jukebox. The fourth set of arrays (SONG, 1104, FIG. 3A) includes the list of all songs stored on each jukebox. A first set of tables (MASTER_CATALOGUE) is used to determine the list of songs that were initially installed in each jukebox, the fifth set of arrays (CATALOGUE) identifies each song and in particular is used to determine the amount of the royalties for each song and the persons who will receive them. The royalty is then assigned by the use of an array (CONTRACT FIG. 3A) in the seventh set of arrays (1107, FIG. 3A).
Finally, the jukebox operator will be charged a fee for each use of the jukebox. This fixed fee is invoiced using the group of tables (1108, SYSTEM_LOG, FIGS. 3A and 3E) in the eighth set of arrays. Each table in this group of tables corresponds to an event that occurred on each jukebox. Thus, each time that an amount of money was inserted in a jukebox, another table was added. This eighth set of arrays is related to a group of tables in the ninth set of arrays (1109, JUKEBOX_REPORT, FIG. 3F) that defines the amount of money added into each jukebox for each day and for each jukebox of an operator. Similarly, the details of operations carried out during the day can be determined for each jukebox through another group of tables in the ninth set of arrays (1109, JUKEBOX_REPORT, FIG. 3F).
The first set of arrays (1101, FIGS. 2 and 3A and 3E) is also related to at least one tenth set of arrays (1110, INSTRUCTION FIG. 3F) representing information about instructions that will be sent to at least one determined audiovisual information reproduction device (100.1 to 100.n, FIG. 1). At least one group of tables in the tenth set of arrays (1110, INSTRUCTION_DEF, FIG. 3F) contains a description of the instructions (INS_DESC, FIG. 3F). Similarly, the relation between the first set of arrays (1101, FIGS. 2, 3A and 3F) and the tenth set of arrays (1110, FIG. 3F) is made using the identification number (JUK.ID) of the audiovisual information reproduction device (100.1 to 100.n, FIG. 1). Thus, all instructions intended for a determined audiovisual information reproduction device (100.1 to 100.n, FIG. 1) can be collected by the server, and downloaded on the identified jukebox, when it sets up communication with the server. For example, these instructions may be an update to at least one software (INS_SOFTWARE, FIG. 3F) installed on the audiovisual information reproduction device (100.1 to 100.n, FIG. 1), downloading of new songs (INS_CATALOGUE, INS_ALBUM, FIG. 3F) ordered by the operator of the audiovisual information reproduction device (100.1 to 100.n, FIG. 1), or a modification of the operating parameters (INS_IBUTTON) of the audiovisual information reproduction device (100.1 to 100.n, FIG. 1). The group of tables (1110, INSTRUCTION, FIG. 3F) containing the jukebox identification (JUK-ID) and an identification of the instructions (INS_ID) to be transmitted to this jukebox is systematically read by the server 10 when an audiovisual information reproduction device (100.1 to 100.n, FIG. 1) sets up a communication with the server 10 in order to verify whether or not the instructions stored in the tenth set of arrays (1110, FIG. 3F) are to be used by the audiovisual information reproduction device (100.1 to 100.n, FIG. 1) that has just set up a communication with the server 10. The link between the different groups of tables in the tenth set of arrays is made using an instruction identification number (INS_ID). The set of instructions contained in the tenth set of arrays (1110, FIG. 3F) can be prepared and stored in the database before the date on which these instructions are to be applied in practice on the jukebox. These instructions are not actually sent to the jukebox until the required date of application when the jukebox sets up communication with the server 10.
The first set of arrays 1101 is related to at least one eleventh set of arrays (1111, JUKE_PROMOTION, FIG. 3B) representing information about setting up promotional operations on jukeboxes by JUK_ID through the (PRICING, FIG. 3B) table that indicates the access argument PRI_ID to one of the tables in the eleventh set of arrays (1111, FIG. 3B). These operations consist essentially of making modifications to the prices of some songs installed on the jukeboxes. For example, the songs concerned by the promotions may be ordered by a promoter other than the jukebox operator. For example, these songs can be ordered and fees for the distribution of these songs can be paid by the promoter rather than by the operator. Information about songs for which a promotion is being made is contained in one of the eleventh arrays (1111, PRO_PACKAGE, FIG. 3B). Similarly, price modifications for songs included in the promotion are contained in one of the eleventh arrays (1111, PRICING, FIG. 3B). Songs ordered by the promoter are paid for making use of a table (PRO_PACKAGE_CATALOGUE, FIG. 3B) that groups identifiers (CTL_ID) of songs included in the promotion. This table is related by an argument (PPK_ID, FIG. 3B) identifying groups of songs with a table (PROMOTION, FIG. 3B) containing the description of the promotion. This table (PROMOTION, FIG. 3B) can also be used to identify the promoter. Thus, during the calculation of royalties (described above) the server refers to the table (PRO_PACKAGE_CATALOGUE, FIG. 3B) to determine if the identifiers of the songs played on a jukebox are contained in this table. If an identifier of a song played on the jukebox belongs to this table, then the royalty will be invoiced to the promoter corresponding to the identifier (PRO_ID, FIG. 3B) of the promotion to which the song belongs.
A non-restrictive description of a plurality of groups of specific tables in the database will now be given, with reference to FIGS. 3A to 3F.
The ACTION specific tables group belongs to the eighth set of arrays (1108, FIGS. 3A and 3F) and contains definitions of actions used in a group of specific tables SYSTEM_LOG (described later) associated with a jukebox (JUK_ID). Each action is identified in the ACTION specific tables group by a code (ACT_CODE). Similarly, each ACTION specific table corresponds to a particular action. Thus for example, the ACTION table for which the action code (ACT_CODE) is equal to “M” contains the description of the action consisting of inserting a given amount in a jukebox.
The ADDRESS specific tables group belongs to the seventh set of arrays (1107, FIG. 3A) and contains all addresses of the various persons involved in the system according to the invention, in other words operators, disk publishers, artists. Each table corresponds to a different address identifier (ADR_ID). One address (ADR_ADDRESS_1) may be identical for a plurality of players and may be found in different tables.
The ALBUM specific tables group belongs to the fifth set of arrays (1105, FIGS. 2 and 3B), and contains all information about albums contained in the songs bank, in other words the name (ALB_NAME), the main artist (ART_ID), and the disk publisher (LAB_ID). Each album is identified by a unique number (ALB_ID). One specific table in this group of tables contains the identification of an album.
The ARTIST specific tables group belongs to the fifth set of arrays (1105, FIGS. 2 and 3B) and contains information about artists and/or publishers and/or authors of songs, for example such as validations of agreements for playing and copying of songs. One specific table in this table group contains the identification of an artist or a publisher or a writer.
The BUG_COMPONENT, BUG_ERROR_MSG, BUG_JUKEBOX, BUG_KEY_WORD, BUG_PROGRAM, BUG_REFERENCE, BUG_REPORT, BUG_SOLUTION, BUG_SUGGESTION arrays shown in FIG. 3E are used to archive, solve or propose solutions to malfunctions that occur in remote management of jukeboxes or in the operation of jukebox programs or components.
The CATALOGUE specific tables group belongs to the fifth set of arrays (1105, FIGS. 2 and 3A and 3B), and contains information about songs contained in the database. A table in this group of tables identifies the song. In particular, each table includes a song name (CLT_SONG_NAME) and its length (CLT_LENGTH).
The CATEGORY specific tables group belongs to the fifth set of arrays (1105, FIGS. 3A and 3B) and contains the list of song categories, in other words the category name (CTG_TYPE), its description (CTG_DESC) and an identification number (CTG_ID). A category includes all songs of a given type, for example jazz songs will be in one category, and Christmas carols in another category.
The COLLABORATOR specific tables group belongs to the eighth set of arrays (1108, FIGS. 3A and 3B) and contains names of song writers. An argument (COL_TYPE) will be assigned a defined value, for example W, to denote a writer. This differentiation is used for calculating royalties.
The COMMAND specific tables group, FIG. 3E, contains all commands that are exchanged between the server and the jukebox when a communication is setup between them. A table in this tables group corresponds to a command.
The COMPONENT specific tables group, FIG. 3B, contains the list of all hardware components that may be installed on a jukebox. In particular, each table contains the serial number (COM_SERIAL_NO) of each component and its installation date (COM_STRAT_DT).
The COMPONENT_DEF specific tables group belongs to the second set of arrays (1102, FIGS. 3B and 3D) and contains a precise description of all components listed in the COMPONENT specific tables group. In particular, each table in this group of tables contains the cost of components (COD_COST), and the supplier identification (COD_VENDOR_CODE).
The COMPONENT_INCOMPAT specific tables group belongs to the second set of arrays (1102, FIGS. 3B and 3D) and contains information about any incompatibilities between the various hardware components that can be installed on a jukebox.
The COMPONENT_UPGRADE specific tables group belongs to the second set of arrays (1102, FIGS. 3B and 3D) and is used to keep a trace of all modifications made to the COMPONENT_DEF specific tables group.
The CONTRACT specific tables group, FIG. 3A belonging to the seventh set of arrays 1107 is used to define the person(s) who will receive the royalties each time that each song is played.
The CLT_CATEGORY specific tables group belongs to the fifth set of arrays (1105, FIGS. 3A and 3B) and is used to associate a song with at least one category defined in the CATEGORY specific tables group.
The EVENT specific tables group belongs to the tenth set of arrays (1110, FIG. 3F) and is used to put instructions into groups (defined later) such that they are executed at a given moment defined in the EVENT_DEF specific tables group.
The EXECUTED_INSTRUCTION specific tables group belongs to the tenth set of arrays (1110, FIG. 3F) and is used to archive an instruction when it has been executed on the jukebox concerned.
The FILE_RECEPTION specific tables group in FIG. 3E contains all text files received from jukeboxes during a communication between the server and the jukebox.
The FIRMWARE specific tables group belongs to the second set of arrays (1102, FIGS. 3B and 3D) and is used to associate a hardware component described in the COMPONENT tables group and software described in the PROGRAM tables group intended to operate with the component.
The FLT_ARTIST specific tables group belongs to the sixth set of arrays (1106, FIG. 3B) and contains a definition of filters applicable to artists installed on jukeboxes. These filters are read every time that a song is to be downloaded on a jukebox, such that a song with an artist belonging to a filter is not downloaded on the jukebox concerned by the filter. Each table in this tables group corresponds to a given filter (JUF_ID) and a given artist (ART_ID).
The FLT_CATALOGUE specific tables group, FIG. 3B, is similar to the previous group but the filter applies to a song.
The FLT_CATAGORY specific tables group, FIG. 3B, is similar to the previous group but the filter applies to a song category.
The FLT_LABEL specific tables group, FIG. 3B, is similar to the previous group but the filter applies to a disk publisher (label).
The IBUTTON_INDEX specific tables group, FIG. 3F sets up a link between the identification of an element of the Ibutton (defined above) and the identification of the same element in the database.
The IB_CREDIT specific tables group belongs to the third set of arrays (1103, FIGS. 3A and 3C) and contains information about free credits that can be used on a jukebox, this information being contained in the Ibutton of the jukeboxes. A credit shows the amount of money that has to be paid before a song can be played on a jukebox. This information is used to determine the maximum available number of credits, and particularly how many credits are available. Each table in this group of tables is applicable to a particular credit type.
The IB_ISP specific tables group belongs to the third set of arrays (1103, FIGS. 3A and 3C) and contains information necessary to enable an connection to Internet, this information being contained in the Ibutton of the jukeboxes. Each table in this tables group contains in particular the connection parameters (ISP_SERVEUR_IP_ADDRESS, . . . ), the user name (ISP_LOGIN_NAME), the password (ISP_PASSWORD), and the telephone number of the Internet Service Provider (ISP) (ISP_PHONE_NO). Each table corresponds to a given connection with a given service provider.
The IB_MIXAGE specific tables group belongs to the third set of arrays (1103, FIGS. 3A and 3C) and contains all information about sound settings on a jukebox, this information being contained in the Ibutton of the jukeboxes. A table in this tables group corresponds to a given sound setting.
The IB_OTHER_SETTING specific tables group belongs to the third set of arrays (1103, FIGS. 3A and 3B) and contains all information about the settings of jukeboxes contained in the Ibutton. Each table in this tables group comprises particularly the jukebox language (SET_LANGUAGE), the availability of the telephone line (SET_LINE_AVAIL_STRAT_TIME, SET_LINE_AVAIL_END_TIME) and the version of the Ibutton (SET_IB_VERSION). Each table corresponds to a set of determined parameters.
The IB_PASSWORD specific tables group belongs to the third set of arrays (1103, FIGS. 3A and 3B) and contains passwords assigned to a jukebox so that the jukebox can operate.
The IB_REMOTE_CONTROL specific tables group belongs to the third set of arrays (1103, FIGS. 3A and 3B) and contains setting parameters for a remote control that can be used to make a jukebox operate. These parameters correspond to parameters memorized in the Ibutton of a jukebox.
The IB_TUNE_COST specific tables group belongs to the third set of arrays (1103, FIGS. 3A and 3B), and contains the setting of prices to be paid on a jukebox so that one or a plurality of songs can be selected.
All IB_XXX table groups contain all possible settings of a jukebox managed by the system according to the invention. The assignment of a particular setting, in other words a specific table in a group of tables IB_XXX to a given jukebox (JUK_ID) is made through another specific tables group JUK_XXX (described later).
The INSTRUCTION specific tables group belongs to the tenth set of arrays (1110, FIG. 3F) and includes all instructions that must be transmitted to a jukebox. Each instruction is defined by a number (INS_ID) and the destination jukebox is identified by its number (JUK_ID). Each table in this group of tables corresponds to an instruction that is to be sent to a jukebox. Each table can also be used to determine the instruction type through a code (INS_CODE). Each table also comprises the date (INS_TARGET_DT) starting from which the server 10 can transmit instructions to the jukebox. Thus, it is possible to prepare and store instructions to be sent to the jukebox in advance.
The INSTRUCTION_DEF specific tables group belongs to the tenth set of arrays (1110, FIG. 3F) and comprises a description of all instruction types. The link between this tables group and the INSTRUCTION specific tables group is made using the instruction code INS_CODE.
The INS_ALBUM specific tables group belongs to the tenth set of arrays (1110, FIG. 3F) and contains instructions about the addition, modification or deletion of an album. Each table comprises an argument (IAL_EXECUTION_DT), that assures that the instruction corresponding to the table has been executed in its entirety.
The INS_CATALOGUE specific tables group, FIG. 3F, is similar to the previous specific tables group, but the instructions relate to a song.
The INS_IBUTTON specific tables group in FIG. 3F is similar to the specific tables group described above, but the instructions concern the modification of a parameter stored in the Ibutton.
The INS_SOFTWARE specific tables group, FIG. 3F, similar to the previous specific tables group except that the instructions concern software.
The INS_JEEP_SCRIPT specific tables group belongs to the tenth set of arrays (1110, FIG. 3F) and includes instructions about the execution of an order on a jukebox. An order may create, move, rename or delete a file on the jukebox. This array also comprises the command line corresponding to the operations to be carried out.
The JUKEBOX specific tables group belongs to the first set of arrays (1101, FIGS. 2, 3A and 3E) and includes information about the installation of a jukebox. Each table in this tables group comprises in particular a jukebox identification number (JUK_ID), its start up date (JUK-INSTALLATION_DT), its status (JUK_STATUT), etc. Each table corresponds to the description of a jukebox on the network.
The JUKEBOX_LOCATION specific tables group belongs to the seventh set of arrays (1107, FIG. 3A) and contains all information about the location of the jukebox and the company renting the jukebox.
The JUK_CONNECTION specific tables group can be used to archive all start and end dates of communications between a jukebox and the server.
The JUK_CREDIT specific tables group belongs to the second set of arrays (1102, FIGS. 3A and 3B) and can be used to make a link with the specific tables group IB_CREDIT so that credits can be assigned to a particular jukebox (JUK_ID). This group of tables can also be used to archive the different configurations of credits that have been validated on a jukebox, but which are no longer authorized. The current validity setting for a given jukebox (JUK_ID) is contained in the specific table that has the most recent date (JCR_START_DT). Other tables are kept as archives.
The JUK_FILTER specific tables group belongs to the sixth set of arrays (1106, FIG. 3B) and contains descriptions of all filters that are installed on jukeboxes. Each table in this tables group corresponds to a filter identified by a unique number (JUF_ID).
The JUK_ISP specific tables group belongs to the second set of arrays (1102, FIGS. 3A and 3C) and makes the link with the IB_ISP specific tables group to configure the connection of a particular jukebox (JUKE_ID). This tables group is also used to archive the different connection settings that have been validated on a jukebox, but that are no longer authorized. The current validity setting for a given jukebox (JUKE_ID) is contained in the specific table with the most recent date (JIS_START_DT). Other tables are kept as archives.
The JUK_MIXAGE specific tables group belongs to the second set of arrays (1102, FIGS. 3A and 3C) and is used to make the link between the IB_MIXAGE specific tables group and the sound setting on a specific jukebox (JUK_ID). This tables group also archives the different sound settings that have been validated on a jukebox, but that are no longer authorized. The setting that is currently valid for a given jukebox (JUK_ID) is contained in the specific table with the most recent date (JMI_START_DT). Other tables are kept as archives.
The JUK_OTHER_SETTING specific tables group belongs to the second set of arrays (1102, FIGS. 3A and 3C) and makes the link between the IB_OTHER_SETTING specific tables group and the setting of a jukebox. This tables group is also used to archive the different settings that have been validated on a jukebox, but that are no longer authorized. The setting that is currently valid for a given jukebox (JUK_ID) is contained in the specific table with the most recent date (JOT_START_DT). Other tables are kept as archives.
The JUK_PASSWORD specific tables group belongs to the second set of arrays (1102, FIGS. 3A and 3C) (and is used to make the link between the IB_PASSWORD specific tables group and a jukebox. Each table in this tables group is used to assign a set of passwords to a given jukebox using its number (JUK_ID). This tables group is also used to archive the different sets of passwords that have been validated on a jukebox but that are no longer authorized. The setting that is currently valid for a given jukebox (JUK_ID) is contained in the specific table with the most recent date (JPW_START_DT). Other tables are kept as archives.
The JUK_PRICING specific tables group belongs to the eleventh set of arrays (1111, FIGS. 2 and 3B) and is used to make the link between a PRICING array (described above) and a jukebox defined by its number (JUK_ID). Each table in this group of tables is used to assign a promotion period defined in the PRICING specific tables group to a jukebox identified by its identifier (JUK_ID).
The JUK_PROMOTION specific tables group belongs to the eleventh set of arrays (1111, FIGS. 2 and 3B) and is used to make the link between the PROMOTION specific tables group (described below) and a jukebox. Each table in this group of tables is used to assign a particular promotion (PROD-ID) to a jukebox defined by its identifier (JUK_ID).
The JUK_REMOTE_CONTROL specific tables group belongs to the second set of arrays (1102, FIG. 3B) and is used to make the link between the IB_REMOTE_CONTROL specific tables group and a jukebox. Each table in this tables group is used to assign a particular setting (REM_ID) to a remote control of a jukebox defined by its number (JUK_ID). This tables group is also used to archive different settings of the remote control that have been validated on a jukebox but that are no longer authorized.
The JUK_TUNE_COST specific tables group belongs to the second set of arrays (1102, FIGS. 3A and 3B) and is used to make the link between the IB_TUNE_COST specific tables group and a jukebox. This array is used to assign a choice of the price of particular songs (COS_ID) to a jukebox defined by its number (JUK_ID). This array is also used to archive different price choices validated on the jukebox but that are no longer authorized. The currently valid setting for a given jukebox (JUK_ID) is contained in the most recent specific table (JRM_START_DT). Other tables are kept as archives.
The LABEL specific tables group belongs to the fifth set of arrays (1105, FIGS. 3A and 3B) and describes all distribution names of disk publishers contained in the database. Each table in this tables group contains in particular the identifier of the address of the disk publisher (ADR_ID), the complete address being stored in the ADDRESS specific tables group, an identification number (LAB_ID), and the name of the disk publisher. Each table corresponds to a disk publisher.
The LABEL_ROYALTY specific tables group belongs to the ninth set of arrays (1109, FIG. 3F) and contains information necessary for calculating fees payable to disk publishers. Each table in the tables group is linked particularly to the PLAY_LOG array (described later) that memorizes all distributions of songs originating on jukeboxes. The link is made by the jukebox identification number.
The LOGIN_SCRIPT specific tables group belongs to the second set of arrays (1102, FIGS. 3B and 3D) and contains the startup scripts associated with Internet service providers.
The LOG_RECEPTION specific tables group belongs to the eighth set of arrays (1108, FIGS. 3A and 3E) and is used to archive all log files in the jukeboxes received by the server. Each table in this tables group contains in particular the number (JUK_ID) of the jukebox that sent the log file, the reception date (LOG_RECEIVE_DT), and the transmitted file (LOG_FILE).
The MASTER specific tables group belongs to the fifth set of arrays (1105, FIGS. 3A and 3B) and defines lists of about 750 songs in the same style that may form a starting point for a list of songs available on a jukebox. Each table in the tables group comprises in particular an identification number of each list (MAS_ID), a description of the list (MAS_DESC) and the type of list (MAS_TYPE). The names of songs making up the list identified in the MASTER specific tables group is contained in the MASTER_CATALOGUE specific tables group.
The MODEM_STRING specific tables group shown in FIG. 3E contains text strings necessary for the initialization of jukebox modems. This array is related to the IB_OTHER_STRING tables group containing jukebox settings and particularly the modem setting.
The OPERATOR specific tables group belongs to the seventh set of arrays (1107, FIGS. 3A and 3F) and contains all information about all operators with a jukebox managed by the device according to the invention. An operator is a user who rents one or a plurality of jukeboxes. In particular, each table group contains a unique identifier (OPE_ID) for each operator and the name (OPE_NAME) of each operator. Each table also contains a default setting that each operator would like to install in the jukeboxes that he rents. The default setting is identified by the (COS_ID, REM_ID, CRE_ID, ISP_ID, SET_ID, MIX_ID) identifiers that relate each table to the different tables in setting table groups (IB_TUNE_COST, IB_REMOTE_CONTROL, IB_CREDIT, IB_ISP, IB_OTHER_SETING, IN_MIXAGE) defined above.
The ORDERING specific tables group, FIG. 3A, contains all songs ordered by an operator through a jukebox, or through direct communication with the server. Each table in this tables group corresponds to an ordered song (CTL_ID). As soon as the song has been sent to the jukebox, the table corresponding to the sent song is erased by the server 10.
The PACKAGE specific tables group belongs to the second set of arrays (1102, FIGS. 3B and 3D) and contains information about program groups installed on jukeboxes. The composition of these groups is contained in the PACKAGE_DEF specific tables group.
The PHONE specific tables group, FIG. 3A, contains all telephone numbers useful for management of jukeboxes. Each table in this tables group contains the telephone number (PHO_NUMBER), the identification of the person to whom the number belongs (PHO_OBJECT_SOURCE), the identifier of the array containing information about the holder (PHO_OBJECT_ID), the type of line corresponding to the number (PHO_TYPE) in other words whether the number is a fixed telephone number, or a fax number or a portable telephone number.
The PLAY_LOG specific tables group belongs to the eighth set of arrays (1108, FIGS. 3A and 3E) and is used to archive all distributions of songs to jukeboxes. The tables in this tables group are updated every time that a jukebox sends a log file to the server. Each table corresponds to the distribution of one song.
The PROGRAM specific tables group belongs to the second set of arrays (1102, FIGS. 3B and 3E) and contains all versions of all programs used. Each table in this tables group contains in particular the name (PGD_NAM), and the version (PGM_VERSION) of the program, but also the program itself (PGM_CODE_SOURCE). Each table corresponds to one version of a program. Programs designed to run on jukeboxes are described in the PROGRAM_DEF specific tables group.
The PROMOTION specific tables group belongs to the eleventh set of arrays (1111, FIG. 3B) and is used to describe promotions that could apply to a jukebox. For example, a promotion might be a cost reduction or a free play of one or a plurality of given songs. Songs affected by the promotion are listed in the PRO_PACKAGE_CATALOGUE specific tables group. The promotion may be broadened to include all songs by a given artist. In this case, the artist identifiers (ART_ID) concerned by the promotion are contained in the PRO_PACKAGE_ARTIST specific tables group. Similarly, a promotion may contain promotions on given songs or on all songs by an artist at the same time, and in this case a PRO_PACKAGE array will contain an argument used to relate the PRO_PACKAGE_ARTIST and PRO_PACKAGE_CATALOGUE tables to the PROMOTION tables. Similarly, a PRO_PRICING tables group also comprises an argument used to relate the PROMOTION specific tables group to the PRICING specific tables group containing a precise definition of the periods during which the promotion is valid.
The PUBLISHER specific tables group (not shown) belongs to the ninth set of arrays (1109, FIG. 3F) and contains all information about publishers.
The PUBLISHER_ROYALTY specific tables group belongs to the ninth set of arrays (1109, FIG. 3F) and contains all information about the payment of fees to publishers of distributed songs or songs copied on a jukebox.
The REPLACEMENT_PROGRAM specific tables group belongs to the ninth set of arrays (1102, FIGS. 3B and 3D) and is used to indicate that one program (PGD_NAME) is replaced by another program (REP_PGD_NAME) starting from a given date (REP_START-DT).
The SOFTWARE specific tables group belongs to the second set of arrays (1102, FIGS. 3B and 3D) and is used to make the link between a program and a jukebox on which the program is installed. Each table in this tables group is used to assign a program (PGD_NAME) to a jukebox defined by its number (JUK_ID). Each table is also used to archive the different program installations that were validated on a jukebox but that are no longer authorized. The current valid setting for a given jukebox (JUK_ID) is contained in the specific table with the most recent date (SOF_START_DT). Other tables are kept as archives.
The SONG specific tables group belongs to the fourth set of arrays (1104, FIGS. 2 and 3A) and is used to make the link between downloaded songs and a jukebox on which songs were downloaded. Each table in this tables group is used to assign a song (CLT_ID) to a jukebox defined by its number (JUK_ID). This tables group is used to obtain a song downloading history and determine the fees to be paid for each downloading. This tables group can also be used to archive different songs that were installed on a jukebox.
The SYSTEM_LOG specific tables group belongs to the eighth set of arrays (1108, FIGS. 3A and 3E) and contains all information transmitted by jukeboxes in log files, apart from information concerning distributions of songs contained in the PLAY_LOG specific tables group.
The WAREHOUSE specific tables group belongs to the seventh set of arrays (1107, FIG. 3A) and is used to assign one or a plurality of jukeboxes to an operator's company. One operator may have a plurality of companies. Therefore, it is easier for the management of jukeboxes rented by this operator, to assign each jukebox to a company.
FIGS. 5A to 5H show different windows in which the information in database arrays is displayed. The server comprises a presentation module forming a user interface, in order to more easily manipulate information contained in the sets of arrays in the database of the system according to the invention. This module is used to display information in the database in an easy to read form, but also to selectively collect this information such that a user who is not familiar with the architecture of the database can access some information, even on the server. Furthermore, this module can be used to modify, add or delete information in the database.
Essentially, this module displays a plurality of screens or windows each containing either information display areas, or information input areas, or selection areas or buttons, on a monitor. Selection areas are usually related to procedures that in particular initiate the collection and storage of information in the database or the validation of information input in input areas.
A first screen 200 shown in FIG. 5A is intended to display or manipulate all information about a jukebox. This screen 200 contains a plurality of areas 201.1 to 201.22 that may be display areas or input areas. Each of these areas 201.1 to 201.22 corresponds to an argument in the JUKE-BOX array, FIG. 3A. When a user would like to refer to information about an existing jukebox, he simply inputs the identification number of the required jukebox in a first input area 201.1 and validates this input by selecting a first selection area 202. This selection triggers a search among all values of arguments in the JUKEBOX specific tables group, FIG. 3A in the database, to find the one with an identification number that corresponds to the input number. Once this information has been collected, it is displayed in the corresponding display areas 201.2 to 201.22. When the user would like to create a new jukebox, he simply inputs a number that has not yet been used in the first area 201.1 corresponding to the identification number, and then validates his choice by selecting a second save area 203. This save triggers the creation of a new table in the JUKEBOX specific tables group, FIG. 3A, and generation of a password necessary for operation of the new jukebox and that is displayed in the corresponding display area 201.2. Apart from the display areas 201.1, 201.2 corresponding to the jukebox number and the password, the other input areas 201.3 to 201.22 are blank. The first array 200 also comprises a plurality of series of selection buttons 204 to 207 each of which triggers the display of a new screen. These new screens will display information about the creation, update or operation of the jukebox identified by the number input in the corresponding area 201.1 on the first screen 200.
A first series 204 of buttons is used to setup a jukebox with previously defined default parameters. Selection of a first button 204.1 causes the I-button of the jukebox corresponding to the number input or displayed in the first area 201.1 to be initialized, thus this operation assigns a default value for each operating parameter of the jukebox. A second button 204.2 displays a screen (not shown) that assigns a predefined list of songs to the jukebox, and these songs will then be installed on the jukebox to create the list of songs available on the jukebox. A third button 204.3 displays a screen (not shown) that assigns a predefined list of programs to the jukebox, that will be used to operate the jukebox.
A second series 205 of buttons is used to display the description of components of the jukebox. A first button 205.1 causes the display of a screen (not shown) containing a plurality of fields used to display information about the operator. This information is collected in the OPERATOR tables group, FIG. 3A, for the identifier of the operator renting or owning the jukebox. A second button 205.2 displays a screen (not shown) comprising a plurality of fields used to display information about programs installed on the jukebox. This information is collected in the SOFTWARE tables group, FIG. 3B, and in the PROGRAM_DEF tables group, FIG. 3D. A third button 205.3 causes the display of a screen (not shown) comprising a plurality of fields used to display information about hardware components installed on the jukebox. This information is collected in the COMPONENT tables group, FIG. 3B and in the COMPONENT_DEF tables group, FIG. 3B. A fourth button 205.4 causes the display of a screen (not shown) comprising a plurality of fields used to display the list of songs now on order for the jukebox. This information is collected in the ORDERING tables group, FIG. 3A. A fifth button 205.5 causes the display of a second screen shown in FIG. 5B. The display of this screen is preceded by a collection of information in the SONG array, FIG. 3A and the CATALOGUE array, FIG. 3B, to display the list of songs available on the jukebox identified by its identifier, in a combolist 211 on the second screen 210. Songs are identified by their number 212 and their name 213. The numbers of all song are collected in the SONG specific tables group, and for each song on the jukebox, the server is provided with means of displaying the purchase date, the delivery date, the transfer time, the song deletion date and the song name, these elements being collected in the CATALOGUE specific tables. This second screen 210 is intended for viewing only, and does not include an input area.
A third series 206 of buttons displays a screen used to view jukebox operating parameters. Each button 206.1 to 206.7 actually causes the display of parameters identified in each table in the JUK_PASSWORD, JUK_TUNE_COST, JUK_REMOTE_CONTROL, JUK_MIXAGE, JUK_ISP, JUK_CREDIT, JUK_OTHER_SETTING table groups, FIGS. 3A and 3C, for which the argument identifying the jukebox corresponds to the identifier displayed in the first display area 201.1 on the first screen 200, FIG. 5A. Thus, selecting one of the buttons 206.1 to 206.7 initially triggers a collection of information in the JUK_AAA tables group corresponding to the button, to find the table for which the jukebox identifier number corresponds to the required number. Information is then collected in table IB_AAA in the tables group associated with table JUK_AAA to determine the value of parameters corresponding to the identifier of the parameter set found in the table in the JUK_AAA tables group. As a non-restrictive example, selecting a first selection button 206.1 in the third series will trigger collection of information in the JUK_MIXAGE and IB_MIXAGE arrays, both FIG. 3A, to display sound settings for the jukebox selected in the first screen, in a third screen 220. This third screen 220 is intended for viewing only, and does not have an input area. The various sound volume adjustment settings (maximum 221.4, volume 221.1, bass 221.2, treble 221.3) for the right and left channels for each area 221a, 221b are displayed in the display areas 221. Display areas are used to display volume settings for a microphone 222.1, an auxiliary source 222.2, and background music 222.3.
A fourth series 207 of selection buttons is used to display a screen to manage jukeboxes and particularly communications between the server and jukeboxes. A first button 207.1 causes the collection of information by the server in the INSTRUCTION, INSTRUCTION-DEF, and INS_XXX table groups, FIG. 3F, to display a fourth screen 230 containing the list of instructions to be sent to the jukebox selected in the first screen 200, and displayed in a first display area 234. Therefore, this fourth screen 230 comprises an area 231 in which previously defined instructions can be displayed, or in which these instructions can be modified or new instructions can be added. The fourth screen 230 comprises a save button 232 used to validate instructions input or modified in the input area 231 until the given send date. This validation also causes an update to the INSTRUCTION, INSTRUCTION_DEF, and INS_XXX table groups.
A second button 207.2, provokes the collection of information in the PLAY_LOG tables group in FIG. 3A, and then displays a screen, for example displaying the history of all songs played on a jukebox identified by the identifier number displayed in the first area 201.1 in the first screen 200. After the collection of information in the SYSTEM_LOG tables group in FIG. 3A, a third button 207.3 displays a screen, for example displaying the history of all actions executed on the jukebox identified by the identifier number displayed in the first area 201.1 in the first screen 200. For examples, these actions consist of subsequently inserting an amount of money in the jukebox coin slot A fourth button 207.4 provokes the collection of information in the COMMAND tables group, and then displays a screen for example displaying the history of all orders that have been executed on the jukebox identified by the identifier number displayed in the first area 201.1 of the first screen 200. A fifth button 207.5 provokes the collection of information in a JUK_CONNECTION tables group, and then displays a screen displaying all connections setup between the server and the jukebox identified by the identifier number displayed in the first area 201.1 of the first screen 200 when the jukebox makes the connection with the server. A sixth button 207.6 provokes the collection of information in the LOG_RECEPTION tables group, FIG. 3E, and then displays a screen displaying the history of all log files received by the server and sent by the jukebox identified by the identifier number displayed in the first area 201.1 of the first screen 200. A seventh button 207.7 provokes the collection of information in the EXECUTED_INSTRUCTION tables group, FIG. 3F, and then displays a screen displaying the history of all instructions executed on the jukebox identified by the identifier number displayed in the first area 201.1 of the first screen 200.
A fifth screen 240 is used to update the songs bank contained in the database. This screen 240 is used in particular to add albums or to modify data in the songs bank, particularly when distribution rights are obtained and/or when songs are processed to be downloaded on jukeboxes. Therefore, this fifth screen 240 comprises essentially the input areas 241.1 to 241.4 used to indicate all information about albums. Each input area 241 corresponds to an argument in the ALBUM array, FIG. 3A in the database. A first area 241.1 contains the album identifier. A second area 241.2 contains the album name. A third area 241.3 contains the name of the artist starring in the album. A fourth area 241.4 contains the name of the disk publisher. The fifth screen 240 also comprises a combolist 243 that displays the list of songs on the album identified by its identifier. Thus, validating the input by selection of a first selection area 242 makes the server update the ALBUM array, FIG. 3A, either to modify the corresponding arguments if the input consists of a modification to an existing album, or to add a table in the tables group when the input corresponds to adding a new album into the songs bank.
A sixth screen 250 is used to create lists of songs (master). These lists can then be used as a starting point to initialize the list of songs available on a jukebox. The sixth screen comprises a number of input areas used to identify the list 251.1, for example to briefly describe the list 251.2 and to define the list type 251.3, in other words whether it is a list still being produced or a final list. Each input area 251.1 to 251.3 actually corresponds to an argument in the MASTER array, FIG. 3B. The sixth screen 250 also comprises a first combolist 252 containing the list of songs in the songs bank and a second window 253 containing the list of songs already selected to form part of the current list. The sixth screen 250 also comprises a save button 254 used to validate the list produced. This selection either provokes the creation of a table in the MASTER specific tables group, FIG. 3B, and creation of a table in the MASTER_CATALOGUE specific tables group for each song in a new list, FIG. 3B in the case of a new list, or provokes the addition or deletion of a table in the MASTER_CATALOGUE specific tables group, FIG. 3B, for an update to an existing list.
A seventh array 260 displays all rows in the PUBLISHER array. This particular information collection is made by the server and is used to manage royalties associated with each publisher. In order to do this, the seventh screen 260 comprises a combolist 261 composed of a plurality of lines. Each line comprises a first field 261.1 representing the artist's identifier, a second field 261.2 representing the artist's name, in other words in this case the name of the publishing company, a third field 261.3 representing the name of the publishing company's administrator, a fourth field 261.4 identifying whether of not the publisher is in the catalogue, and a series of fields 261.5 to 261.9 used to define whether or not the publisher allows reproduction and distribution rights. Thus, a first field 261.5 indicates the date on which the written distribution authorization was granted. A second field 261.6 indicates the date on which the signature is expected for authorization. A third field 261.7 indicates the date starting from which the contract for the agreement about the distribution of fields has been waiting for comments. A fourth field 261.8 indicates the date on which a verbal agreement was obtained. A fifth field 261.9 indicates the date from which the distribution agreement is no longer valid.
A seventh screen 270 is used to make the inventory of programs used by jukeboxes. The seventh screen 270 comprises a first combolist 271 used to display the list of program versions and if there are any incompatibilities with other programs or hardware components. This information is displayed through information collection in the PROGRAM and PROGRAM_INCOMPACT arrays, FIG. 3D, in the database. In order to do this, a first field 271.1 contains the program name. A second field 271.2 contains the program version, a third field 271.3 contains the name of the company that distributes the program. A fourth field 271.4 indicates the date on which the program will be available. A fifth field 271.5 indicates the person who modified the program (if any). A sixth field 271.6 indicates if there are any incompatibilities with other programs. A seventh field 271.7 indicates if there are any incompatibilities with one or more hardware components.
A second combolist 272 displays the list-of jukebox numbers on which a program selected in the first window 271 is installed, and the installation date and possibly the deinstallation date. This information is displayed after collecting information in the SOFTWARE specific tables group, FIG. 3B, in the database. The second window thus comprises a first field 272.1 containing the identifier numbers of jukeboxes on which the program is installed. A second field 272.2 contains the date on which the program was installed on the jukebox. A third field 272.3 contains the date on which the program was deleted from the jukebox.
A third combolist 273 is used to verify if the program selected in the first window 271 is associated with a hardware component. This information is displayed after collecting information in the FIRMWARE and COMPONENT_DEF arrays, FIG. 3B, in the database. Thus, a first field 273.1 contains the component identifier. A second field 273.2 contains the description or name of the component. A third field 273.3 contains the component installation date.
A fourth combolist 274 is used to verify if the program selected in the first window 271 has been replaced, and possibly when the program was or will be replaced. This information is displayed after collecting information from the REMPLACEMENT_PROGRAMM specific tables group, FIG. 3D, in the database. Thus, a first field 274.1 contains the program name. A second field 274.2 contains the program version. A third field 274.3 contains the date on which the program replacement was started. A fourth field 274.4 indicates the date on which program replacement was terminated. A fifth field 274.5 may, for example, contain a brief description of modifications made to the program at the time of the replacement.
Other screens may be created on a same model as the screens described above to display other information contained in the database. The displayed information may consist of a simple display of information contained in an array in the database, like for example for the first screen 200, or it may also be the result of a selective information collection, in other words the information search is made with particular criteria, for example as for the seventh screen 260. Similarly, some screens do not necessarily include an input area, in other words these screens are used solely to view information, for example the third screen 220.
It can be seen that the device according to the invention makes it easy to remotely control a plurality of jukeboxes from a central location through a telecommunications network, for example a telephone network.
Obviously, persons with experience in the subject will realize that this invention can be embodied in many other specific forms without going outside the scope of the invention as claimed. Consequently, these embodiments must be considered as an illustration, and can be modified within the limits defined by the field of the attached claims, and the invention must not be restricted to the details given above.

## Claims

1. A method for managing a network of jukeboxes, said network comprising a server operable to connect to said jukeboxes, said method comprising:
connecting a jukebox to said network;
setting up a communications pathway between said jukebox and said server via the network;
generating, at the jukebox, at least management data concerning either a hardware component of the jukebox or a software or firmware component of the jukebox;
transferring said management data from the jukebox to the server;
processing said management data received from the jukebox at the server to identify the jukebox that is connected to the network, and to update, using said management data, at least one table in a database controlling central management of the jukeboxes of the network;
determining whether instructions for updating data in the jukebox are present in at least one group of tables in the database; and
if instructions for updating data in the jukebox are present, sending at least update instructions for the jukebox from the server to the jukebox.

2. The method according to claim 1, wherein said tables in said database comprise a plurality of arrays, said arrays comprising information relating to said management data, said information being relevant to the management of data in the jukeboxes in said network of jukeboxes.

3. A method for managing a network of jukeboxes, said network comprising a server operable to connect to said jukeboxes, said method comprising:
connecting a jukebox to said network;
setting up a communications pathway between said jukebox and said server via the network;
generating, at the jukebox, at least management data concerning either a hardware component of the jukebox or a software or firmware component of the jukebox;
transferring said management data from the jukebox to the server;
processing said management data received from the jukebox at the server to identify the jukebox that is connected to the network, and to update, using said management data, at least one table in a database controlling central management of the jukeboxes of the network;
determining whether instructions for updating data in the jukebox are present in at least one group of tables in the database;
determining whether it is appropriate to send instructions for updating data in the jukebox; and
if instructions for updating data in the jukebox are present, sending at least update instructions for the jukebox from the server to the jukebox.

4. The method of claim 3, wherein said determining whether is it appropriate further includes determining whether a date or time for transmission of the instructions has been reached.

5. A method for managing a network of jukeboxes, said network comprising a server operable to connect to said jukeboxes, said method comprising:
connecting a jukebox to said network;
setting up a communications pathway between said jukebox and said server via the network;
generating, at the jukebox, at least management data concerning either a hardware component of the jukebox or a software or firmware component of the jukebox;
transferring said management data from the jukebox to the server;
processing said management data received from the jukebox at the server to identify the jukebox that is connected to the network, and to update, using said management data, at least one table in a database controlling central management of the jukeboxes of the network;
determining whether instructions for updating data in the jukebox are present in at least one group of tables in the database; and
if instructions for updating data in the jukebox are present, sending at least update instructions for the jukebox from the server to the jukebox when the jukebox connects to the server.