DATA DISTRIBUTION METHOD AND APPARATUS
Field of the invention
The present invention relates to a method of distributing a data entity.
Background
Individual artists and programmers and small publishing companies can easily make copies of the works they own available to the public by making them available for downloading at a web site or by using a file sharing system such as Napster or Gnutella. However, these techniques have the disadvantage that there is no mechanism for ensuring an income stream from people obtaining copies of the works.
Electronic licensing systems, such as that provided by ViaTech, Inc., of Natick, MA, USA, are available. However, these are unsuited to the needs of the individual or small company.
It is an aim of the present invention to provide technical means to make electronic licensing available to individuals and small companies.
Summary of the invention
According to the present invention, there is provided a method of distributing a data entity, for example an audio, image or video file or a computer program, the method comprising: - receiving a data entity by means of a first network communication protocol; receiving metadata relating to said entity by means of a second network communication protocol; creating a communicable, executable entity including data derived from said data entity and said metadata; and transferring the executable entity to a server for downloading therefrom.
Preferably, the executable entity is created automatically in response to the reception of the metadata associated with a data entity.
Preferably, said executable entity includes means defining licensing rules. However, this is not essential and licensing rules may be contained in, for example, a database that can be accessed by the executable entity.
A method according to the present invention may include generating a streaming format file from said data entity and transferring the streaming format file with the executable entity to said server for streaming therefrom.
In embodiments particularly, but not exclusively, adapted for use by an individual, the first network communication protocol is ftp and the second network communication protocol is http. Preferably, the method includes responding to submission of user details in an http request by adding said user details to a database, associate a directory with said user details and send an http response including a username and password allowing write access to said directory by ftp. More preferably, the method includes associating said metadata with user data stored in said database on the basis of cookie data received with said metadata.
A method according to the present invention may include adding an element to a queue, defining an order in which executable entities are to be created, in response to said receipt of metadata. The queue may be defined by a database table comprising at least one record containing received metadata associated with a data entity.
In embodiments particularly, but not exclusively, adapted for use by small companies, the first network communication protocol is ftp and the second network communication protocol is ftp. Preferably, receiving the data entity and the metadata comprises connecting to an ftp server and downloading the data entity and the metadata from the ftp server. More preferably, the method includes adding an element to a queue, defining an order in which executable entities are to be created, for each said data entity downloaded from the ftp server. Preferably, the queue is defined by a file comprising received metadata associated with at least one data entity.
The present invention also extends to apparatus configured to perform a method according to the present invention.
Brief description of the drawings
Embodiments of the present invention will now be described, by way of example, with reference to the accompanying drawings, in which-
Figure 1 shows a network over which a system according to the present invention operates; Figure 2 illustrates the data source of Figure 1;
Figure 3 illustrates the upload server of Figure 1;
Figure 4 is a signalling diagram illustrating registration of a user with the upload server of Figure 1;
Figure 5 is a signalling diagram illustrating a distribution authorising session between the data source and upload server of Figure 1;
Figure 6 is a flowchart illustrating processing of uploaded files by the upload server of Figure 1;
Figure 7 illustrates an alternative data server;
Figure 8 illustrates an alternative upload server; and Figure 9 is a flowchart illustrating a batch upload CGI script.
Detailed Description
Referring to Figure 1, an embodiment of the present invention is implemented in a networked environment comprising the Internet 1, a data source 2, an upload server 3, a download server 4 and a download client 5. The data source 2, the upload server 3, the download server 4 and the download client 5 are all connected to the Internet 1.
Referring to Figure 2, the data source 2 comprises a personal computer supporting a file system 21, an ftp client 22 and a web browser 23. The file system 21 includes a plurality of music files.
Referring to Figure 3, the upload server 3 comprises a powerful computer supporting a file system 31, an ftp server 32, a web server 33, a queue database 34 defining a queue, an electronic licensing system (ELS) process 35 and a user database 36. The ELS process 35 comprises the eLicense Music toolkit from ViaTech, Inc.. However, additional or alternative processes may be employed. The queue database 34 comprises a pending table and a history table.
The download server 4 is a powerful computer supporting a web server configured for serving ViaTech eLicense files and streaming Real Audio format audio data.
The download client is a conventional personal computer supporting a web browser.
The process of making a piece of music available on the download server 4 will now be described.
Referring to Figure 4, a user who wishes to register with the upload server 3 uses the web browser 23 of the data source 2 to request a registration page from the web server 33 at the upload server 3. The registration page comprise a form which the user fills in with his name, address, email address and credit card details. The user submits the completed form to the web server 33 where it is processed by a CGI script. The CGI script validates the data from the form and, if there are any errors, it sends an error page to the web browser 23. If the user-input data is validated successfully, the CGI process sends a registered page to the web browser 23. This page includes the host name to be used for connecting to the ftp server 32, a username and a password. The CGI script also creates a directory 37 in the file system 31 with the username as its name, grants write privileges for the new directory 37 to the user and saves the details entered by the user and the username and password in the user database 36.
When the user wishes to distribute a piece of music, the user produces a compressed audio file, e.g. an MP3 file, containing the music. Uncompressed wave files could be used but the file transfer times would be much larger. The user then
uses the ftp client 22 to connect to the ftp server 32 and logs in using the username and password received from the web server 33. The ftp server 32 then grants the user access to the directory 37 created for the user. The user uploads the compressed audio file to the directory and terminates the ftp session. The user could have uploaded a plurality of files in order to distribute a plurality of pieces of music.
Having uploaded the audio file, the user must instruct the upload server 3 to prepare the music for distribution. Referring to Figure 5, the user uses the web browser 23 to request a login page from the web server 33. The login page includes a form with username and password fields. The user submits the form which is validated by a login CGI script in a conventional manner. Assuming that the username/password pair is correct, the CGI script sends a welcome page and a session id cookie, which is used to identify the user in subsequent requests, to the user's web browser 23.
The welcome page has various links including one to a distribution authorisation page. The user click on this link to request the distribution authorisation page. If the session id cookie is valid, the web server 33 sends the distribution authorisation page to the user's web browser 23. This page includes a metadata input form with input elements so that the user can enter the name of the uploaded compressed audio file and metadata comprising the names of the or each artist, composer and lyric writer, copyright details and distribution rules, e.g. "buy only" or "four tries then buy". The user fills in the form with the filename and metadata and submits the form. This causes the entered data to be sent to the web server 33 with a request referring to a instruction receiving CGI process. The instruction receiving CGI process adds the form data, upload server operator id and a unique id to the pending table of the queue database 34 as a new record. After adding the form data to the pending table of the queue database 34, the instruction receiving CGI process sends an instruction acknowledgement page to the user's web browser 23.
Referring to Figure 6, the ELS process 35 repeatedly checks the pending table of the queue database 34 for records (steps si and s2). For each record in the pending
table of the queue database 34 (step s3), the ELS process 35 tries to find the identified uploaded file (step s4). If the file cannot be found, an error message is sent to the relevant user of the data source 2 and the pending table record is deleted (step s5). If the file is found, the record is moved from the pending table to the history table of the queue database 34 (step s6) and the file is converted it into a wave file, watermarked and then compressed and encrypted (step s7). The ELS process 35 also produces copies of the uploaded file in streaming formats for transmission at different speeds (step s8). The ELS process 35 then generates an executable file, comprising a licensing control program, the watermarked, compressed and encrypted audio and the metadata, (step s9) sends the executable file and the streaming format files to the download server 4 (step slO), where they are made available to download clients 5. It then sends a confirmation to the relevant user (step sl l) and moves the record from the history table to the user database 37 (step si 2) where it forms an entry in a "catalogue" for the user.
The error and confirmation messages are sent by email.
Royalties payable to the user for purchases of downloaded copies of the music are paid to the operator of the upload server 3, on the basis of the upload server id, who then makes a payment to the relevant user's credit card account on the basis of the unique id.
In a second embodiment, the ftp client 22 comprises a signed Java applet embedded in the distribution authorisation page. This avoids the need for the user to become familiar with a general purpose ftp client.
Referring to Figures 7 and 8, in a third embodiment the data source 2 has an ftp server 24 instead of the ftp client 22 of the first embodiment and the upload server has a batch upload CGI script 37, which implements an ftp client instead of the ftp server 32 of the first embodiment.
As will become apparent, the present embodiment is better suited to bulk transfers of music files from the data source 2 to the upload server 3, such as in the case of the data source being operated by a music publishing company.
The operator of the data source 2 registers with the operator of the upload server and receives a password and username. This registration need not use the web- based scheme described above. The operator of the data source 2 also creates a directory 25 for the operator of the upload server 3 in the file system 21 of the data source 2 and allocates a username and password to the operator of the upload server 3.
The operator of the data source 2 creates a batch of files for transfer to the upload server 3. The batch of files comprise compressed audio files, a respective metadata file containing the same data as is input in the first embodiment using the distribution authorisation page , and a file list comprising the identifiers for the audio data and metadata files. Since the audio and metadata files are differentiated by suffixes, the file list file only contains the common filename parts of audio and metadata file pairs. The batch of files is placed in the specially created directory 25.
When the operator of the data source wishes to distribute a batch of music files, the web browser 22 of the data source 2 is used to request the welcome page, after performance of the login process described above. The welcome page has a batch upload link which refers to the batch upload CGI script 37. This link is followed and, referring to Figure 9, the batch upload CGI script 37 immediately sends back an acknowledgement page (step s23) or an error page (step s22), if the cookie is not valid(step s21) and then obtains the username and password required to access the data source 2 from the user database 36 (step s24) using the session id cookie. Once the username and password have been obtained, the batch upload CGI script 37 establishes an ftp connection to the ftp server 24 at the data source 2 (step s25) and gets the file list file (step s26). The batch upload CGI script 37 opens the file list file and reads each entry. For each entry (steps 27), the batch upload CGI script 37 gets the audio data file and stores it in the directory of the upload server 3 allocated to the operator of the data source 2 (step s28). Also, the batch upload
CGI script 37 gets the corresponding metadata file and adds its contents to the pending table of the queue database 34 together with the uploaded server operator's id and a unique id (step s29). When all of the files identified in the file list file have been got, the ftp session is terminated.
The audio files obtained by the batch upload CGI script are then processed as in the first embodiment. However, in this embodiment, the error and confirmation messages are sent as http request to a server identified by the operator of the data source. This server will have a CGI script to process these messages and produce and alert for the operator of the data source.
In each of the embodiments, a message reporting availability of the music at the download server 4 is sent to the user or operator of the data source. This message includes the URI of the executable file.
The executables are stored temporarily at the upload server and may be archived at a dedicated archiving system. The uploaded files may also be archived and deleted. However, it is preferred that users be informed when the space allocated to them has been filled so that they can clear their own directories on upload server 3.
Preferably, each of the processes at the upload server 3 has an associated log file for each registered user or operator of a data source. These files can be obtained by the relevant registered user or data source operator by ftp. Alternative, user and/or process specific log may be processed at the server to provide the relevant person with log information in a convenient and easily comprehensible form.