[ 0016 ] fig1 is a block diagram illustration of a preferred embodiment of the system according to the present invention . information for an in - flight entertainment ( ife ) server 15 located on an international aircraft 13 located at an airport may be loaded into the server 15 by a technician 17 carrying data on a disk for insertion into the ife server . likewise , data may be downloaded from the server 15 by a technician 19 by inserting an empty data disk into the server 15 and downloading the desired information from the server 15 onto the disk . the disk is then carried by technician 19 to an airline maintenance facility 21 for example , at the airport which would have an airline pc workstation 23 capable of reading the downloaded information on the data disk . this airline workstation through its browser software would , over telephone network 47 , the internet 25 and lines 51 upload the information downloaded , ife server 15 to a remotely located data warehousing center 29 . the warehousing center 29 contains a structure firewall 39 from the webserver 41 , and a plurality of database servers and storage 43 . the authorized user is typically an airline company 45 like american or united , for example , which would have other pc workstations at other airline facilities 27 throughout the country that are connected to the internet 25 , perhaps over a high speed data line 53 . this workstation 45 could access by way of the internet and another high speed data line 51 , the facilities of the systems &# 39 ; data warehousing center 29 . access to the database server and back - up storage 43 for the airline authorized user is through a web - based server 41 which is behind the security requirements of a firewall structure 39 . a network operation center 31 is operated by the company providing the data gathering and presentation services to the authorized user airline . the data warehouse facility 29 is also established and maintained by the company providing the contract to the airline . user network operations center 31 contains a firewall structure 33 that prevents unauthorized entry to the operations center 31 but which allows connection over a high speed network 49 to the internet 25 and to the data warehousing facility 29 . the network operations center 31 includes a tape back - up unit 35 for storing any data retrieved from data warehousing facility 29 as needed and a network monitor 37 for accessing the web server 41 , and the data server and back - up storage modules 43 in the data warehouse center . the services provided to the airline authorized user for example , is provided to the user through a web - based user interface ( ui ). referring now to fig2 the ui 69 is built in html / dhtml and javascript . that may , for example , be internet explorer 4 . 0 + and netscape 4 . 7 + ( on windows 98 + platform ) compatible . active server pages ( asp ) 73 , 83 , 77 , 79 , 81 scripts on a microsoft windows 2000 advanced server machine running internet information server 5 . 0 processes the form data submitted from the html user interface 69 . the user interface allows the user to log in ( asp 73 ), upload data files ( asp 83 ), generate and export a report ( asp 81 ), create or edit ad hoc reports ( asp 79 ) and administer the account ( asp 77 ). the data warehouse 55 illustrated in fig2 includes a collection of microsoft sql server 2000 databases . a separate database or data mart 57 is created for each subscriber to the service , such as an airline , for example , who then designates a plurality of individual authorized users of the system that are authorized to access data storage . a separate metadata database 59 is used to store information about the authorized user , information about how to extract information from the uploaded data files , information about how to insert the extracted data into the user &# 39 ; s data mart 57 and information about how to generate the reports requested against the user &# 39 ; s data mart 57 . each authorized user &# 39 ; s data mart 57 is a microsoft sql server 2000 database schema that houses the information uploaded by a specific user . all references to the data mart necessary to create a connection with the database , perform a query and generate a report by that authorized user stored in the metadata database 59 . the database schema for an authorized user &# 39 ; s data mart is designed and implemented based upon data definitions and relationships provided by the authorized user . stored procedures are used for populating the data mart of the authorized user from uploaded data file information . the appropriate references to the data mart are added to the metadata database 59 . the data mart 57 is created by sql script and are reused if another subscribing authorized user entity requires storage of similar data . even though the schema is reused , a separate database is created for each separate authorized user entity . the metadata database 59 is a microsoft sql server 2000 database that stores all the information pertaining to a user of the data warehouse functions such as user log - in , password , available reports , and dispatching information for the data extractor . it contains all references to the user data mart 57 required to perform a query or generate a report . the metadata database 59 also contains any information necessary for data mart management . in addition , the metadata database contains the user interface customization information such as the user &# 39 ; s color scheme and the user &# 39 ; s custom logo . an authorized user inserts data into his specific data mart 57 uploading data files from an html form . sa - fileup 75 , a third party internet server application programmer interfaced dynamically linked library ( isapi dll ) accepts the data file submitted and stores it on the server . sa - fileup 75 provides progress indication on the status of an uploaded file by firing status to a progress asp script 83 . information such as total file size , the file name and the percent loaded so far is provided by the fire status which allows a display of a progress bar by an html page in a pop - up window that refreshes after each status is fired . once the entire file is loaded the progress bar window waits five seconds and then closes . a data extractor 85 is preferably a component asp object model ( com ) dll combination that prepares and performs the parsing of the uploaded data file . if the uploaded data file must be extracted from a zip file , or any other preparation must be done to the file to bring it to a state where it can be parsed , the data extractor 85 performs these operations . the data extractor 85 is also responsible for parsing the file and inserting it into the appropriate data mart 57 . insertion into the data mart 57 are performed by ms sql server stored procedures . the authorized user defines the format of the data file that is used to insert data into its data mart 57 . the necessary data extraction , parsing , an database insertion routines are then written into the data extractor 85 , if the routines do not already exist . database insertions are done by stored procedures . the data extractor 85 is called from an asp script 83 as the result of a data file upload . references are added to the metadata database 59 so that the systems knows which data extraction routine to use for that particular data file . if the uploaded data file is a set of data files compressed into a zipped file , the infozip function and application programs interface are used to unzip the files . the reporting engine 61 of the system is crystal reports 8 . 5 developer edition 65 . crystal report &# 39 ; s wizards are used to predefine the reports that authorized users can run against their data . references to the available predefined reports are stored in the metadata database 59 . an asp script drives the process of running the crystal reports reporting engine 61 and displaying the report in the appropriate location in the user interface 69 . the reports may include statistical information , charts , graphs , and tables . a set of predefined crystal reports , created with crystal reports 8 . 5 developer edition 65 , exists for each type of data housed in the data warehouse 55 . an authorized user can request that additional predefined reports , designed by the authorized user , created by a service representative for the system be added for his use . references exist in the metadata database 59 for defining the access each user has to a particular report . these reports are reused if another authorized user requires storage and reports on a similar data . a crystal reports activex viewer 71 component is used in the system to view reports as well as export the reports to a variety of formats . the crystal reports activex viewer 71 can export a report to a microsoft word document , microsoft excel document , or an adobe pdf document , for example . it also has the ability to print and report straight from the user interface 69 . a report creator through asp 79 allows the customization of a set of report types into a user defined report . from an implementation perspective , a report type is a superset of data returned by the report exporter 63 in response to a database query . examples of report types are digital video usage report , passenger survey report , and analog audio usage reports . the report creator uses the crystal reports report designer component 67 to create crystal reports report files based on user specifications set in the “ create a report ” user interface 69 . this feature allows the authorized user to add a graph to a report , discriminate against the data return by the report , set the fields to be displayed in the report , set the format of the report , and create a crystal reports report file ( rpt ). an account administrator through asp 77 allows the authorized user to create and administer the system for his company . access can be set , granted , or removed for the main menu , data upload , generate a report , or create a report functions for each authorized user . access to individual reports can also be set by the account administrator . user access levels are stored in the metadata database 59 . before loading any screen that has possible access restrictions , the metadata database 59 is queried to verify the user &# 39 ; s access . any functionality that the user does not have access to is not displayed on the screen . by default , when the authorized user creates a user , the user does not have right to view any reports or perform any functionality . the account administrator can also set effectivity dates for its data and monitor the amount of data stored . data stored in the authorized user &# 39 ; s data mart 57 with an expired effectivity date will be moved to a temporary data mart archive upon insertion of new data . this temporary data mart archive is a separate sql server database that is created for each authorized user that subscribes to the service . the migration of the data with expired effectivity is accomplished by the stored procedures that are used to insert new data . this temporary data mart archive is backed up to tape at the end of each month in the native sql server backup format and purged from the database . an upload reminder 87 e - mails the account administrator if data is missing from the brand account &# 39 ; s data mart . for example , if a set of data is missing from the authorized user &# 39 ; s data mart , the upload reminder 87 e - mails the address specified by the authorized user and identifies the set of data that is missing . the upload reminder 87 is a windows service that runs on the web server . every night at midnight , for example , the upload reminder 87 queries all data mart 57 for missing data , e - mailing the brand administrator if missing data is discovered parameters can be set by the account administrator specifying the e - mail address the upload reminder 87 is to use , length of time that can pass with missing data before sending an e - mail , and the frequency of the reminder . these set parameters are stored in the metadata database 59 . the reminders can be set to e - mail each day until the data is uploaded or once every n days , where n is a number specified by the authorized user account administrator . the code that parses uploaded data files and inserts the data into the database 55 is compiled into a com dll , extractorpdj . dll that exposes one interface , iextractor which contains the modules : initiate , extract , parse files and insert into database . the web - based user interface ( ui ) 69 encompasses all of the html scripts that are accessible to the users . it also contains portions of the user database and asp scripts used to customize the color scheme of the ui for each authorized user and add in the branded user logo banner . a variety of screens may be seen by the authorized user of the system : a login screen , which provides fields for the authorized user to enter a login name and password . a main menu screen , that appears when the authorized user logs into the system . this screen also provides a listing of the menu options available to the authorized user . a data upload screen which provides a field and a file system dialog for the authorized user to select the data file he wishes to upload . the user interface also allows the authorized user to select between the different types of file formats that can be used to upload the data . an upload progress screen which is merely a pop - up window that displays a progress bar indicating the percentage of the data file that is uploaded so far . a report generation screen that lists all reports that the authorized user has access to as well as the parameters that can be set on the data to discriminate against the data returned by the report . examples of parameters that can be set for uploaded in - flight entertainment data are : flight number , flight date , or tail number . these parameters can be set to generate a report for a specific flight , or a specific tail number , or both . the parameter values selected by the authorized user are passed to the crystal reports 65 as a selection formula . the selection formula narrows down the data displayed in the selected report . by selecting the desired values of available parameters , the selection criteria of the data that is represented in the report is tailored to only the data the authorized user wishes to see in the report . a report display screen is an html page with the crystal reports activex viewer embedded into it . the crystal reports activex viewer 71 directly communicates with the crystal reports web components to generate the reports . the activex viewer 71 provides the functionality to display reports , export reports to the client machine , refresh the data in the report , magnify the view of the report , or print the report . an administrator accounts screen allows the user to change their login password , as well as set administration options . an ad - hoc report creation screen allows the authorized user to define a report that they wish to run against their data mart . a flight information modification screen allows the authorized user the ability to modify invalid flight data uploaded to the data mart . [ 0040 ] fig3 diagramatically illustrates the user interface screen flow for the web server . each box represents an asp script that resides on the server . the user interface pages have asp script and html and the processing pages are pure asp . a user interface page does processing on the server and returns an html document to the client browser . the processing pages perform a function and redirect to a user interface page . once the authorized user is logged in , a generic toolbar is displayed on each of the user interface pages depicted in fig3 to allow immediate navigation to all of the core functionalities of the web - based data warehousing site . the login script asp 91 validates the authorized user &# 39 ; s login and password against the metadata database and initializes session information such as the user &# 39 ; s color scheme , location of the user &# 39 ; s corporate logo banner , the user &# 39 ; s id , and the user &# 39 ; s name , for example . if the submitted user login and / or password are invalid , the login script 91 redirects the user back to the home page 89 and a message is displayed . if the user name and password are valid , the login script 91 allows the user in and redirects to the main menu 95 . from the main menu 95 , the user can go to administrator account 107 , date file upload 111 , report generation 99 , report creation 97 , or log - out 93 . an upload and data extraction script 117 receives the uploaded data file and initiates the extractor com dll to unzip the file ( if necessary ), parse the files , and insert the data into the user &# 39 ; s data mart . a report generation processing script 103 displays the generated report created by the crystal report report generation engine 61 ( fig2 ) and displays it using the client side crystal reports report viewer activex component . the report creation script 101 once a report has been designed , stores the design aspects of the report in the metadata database 59 and an rpt file is created and saved on the web server for report viewing 105 on the user interface . the log out script 93 clears all session variables for the authorized user &# 39 ; s session to free up the resources . the other user interface screens of fig3 like the upload program 115 , administrative account processing 109 , data modification 113 and data modification processing 119 perform the functions states in fig3 . referring now to fig4 a detailed description of the metadata database schema for that portion of the metadata database storage that supports report creation is illustrated . the user &# 39 ; s table 121 stores information on the individual authorized users . the company that subscribes to the service is allotted a maximum number of users . each user has personal information stored in the database such as login , password , name , address and so on . logins for each authorized user must be unique and passwords must be at least eight digits in length . the company id field references the company the user belongs to . the system has two levels of users , administrative and non - administrative users . administrative authorized users are denoted by a 1 in the user level field . non - administrative authorized users are denoted by a 0 . an entry in the cr user access table 123 indicates that a user represented by a user id has been granted the right to create the report represented by crid which is the creatable report id . the company table 125 stores information about the company which is subscribing to the service . each company has its own set of authorized users and own branded version the website . the company table 125 stores the company name , address , banner logo to display within the website , and the company &# 39 ; s user interface color scheme . the company creatable reports table 127 allows entry only to users that belong to the branded version of the service represented by the company id as having the ability to create a report represented by crid . individual user &# 39 ; s access to the functionality of creating the report depends on whether the administrator for the authorized user has granted access to create that report . entry into the cr parameters table 139 indicates that a creatable report represented by crid supports the parameter selection of the parameter in the parameters table represented by the parameter id . both creatable ( ad - hoc ) and static reports share the parameters table . entry into the cr user access table 123 indicates that the user represented by the user id has been granted the right to create the report represented by crid . the user reports table 135 stores information about reports that individual users have created from the creatable reports 129 . created reports are viewable only by the user who created that report as indicated by his user id . when a user creates a report , the crystal reports rpt file is created on the server . information that is difficult to retrieve from the rpt file using the cr - rdc object model is stored in the metadata database . the creatable reports table 129 stores data on all the reports that the system is capable of creating at that time . a creatable report is simply a report type that can be customized to user specifications . a report type from an implementation standpoint is a predefined query that returns a superset of data that can be filtered down to return only a subset of data and has the capability of having the presentation modified . the sqlstring field stores the query that returns the superset of data to the report . the graph x and graph y fields represent the table and the column name of the x and y access of the bar chart ( or the on change of , and values fields if a pie chart is chosen ) associated with the report . creatable reports have a predetermined chart associated with preset x and y axis in which the type of chart is customizable . if the graph x axis and the graph y axis are null , the report does not support a graph . the graph types table 133 stores all the graph types supported by the system . the most common graph types are 2d bar charts , 3d bar charts , 2d pie charts and 3d pie charts . entry into the cr graph type table 131 indicates that a creatable report represented by crid supports the inclusion of a graph type represented by graph type id . entry in the cr parameter table 139 indicates that the creatable report represented by crid supports the parameter selection of the parameter in the parameter table 141 represented by the parameter id . both creatable and static reports share the parameters table 141 . [ 0055 ] fig5 illustrates the in - flight entertainment use statistics database schema . this schema is utilized to store the data that can be uploaded from an in - flight entertainment system server to track the system usage statistics . the flights table 151 stores flight specific information such as flight number , flight time , departure airport , arrival airport , and aircraft tail number . the flight key is the primary key on this table . the vod table 143 stores video on demand title viewing by seat per flight . the view time field represents the number of minutes the user at a seat on the aircraft spent viewing the title . the entries field represents the number of times the user selected the given title for viewing . the nvod table 145 stores near video on demand title viewing by seat per flight . the view time field represents the number of minutes the user at a seat on the aircraft spent viewing the title , the entries field represents the number of times the user selected the given title for viewing . the menus table 147 stores menu viewing by seat per flight . the view time field represents the number of minutes the user at a seat on the aircraft spent viewing the menu . the entries field represents the number of times the user selected the given menu item . the aod table 149 stores audio on demand type listening by seat per flight . the view time field represents the number of minutes the user at a seat on the aircraft spent listening to the title . the entries field represents the number of times the user selected the given title for listening . the analog vid table 153 stores analog video title viewing by seat per flight . the view time field represents the number of minutes the user at a seat on the aircraft spent viewing the title . the entries field represents the number of times the user selected the given title for viewing . the analog aud table 161 stores analog audio title listening by seat per flight . the view time field represents the number of minutes the user at a seat on the aircraft spent listening to the title . the entries field represents the number of times the user selected the given title for listening . the dig aud bd table 159 stores broadcast digital audio title listening by seat per flight . the view time field represents the number of minutes the user at a seat on the aircraft spent listening to the title . the entries field represents the number of times the user selected the given title for listening . the dig vid bd table 157 stores broadcasted digital videotape viewing by seat per flight . the view time field represents the number of minutes the user at a seat on the aircraft spent viewing the title . the entries field represents the number of times the user selected the given title for viewing . the games table 155 stores video game title playing per seat per flight . the view time field represents the number of minutes the user at a seat on the aircraft spent playing the title . the entries field represents the number of times the user selected the given title for playing . [ 0066 ] fig6 represents a passenger survey database schema which stores survey questions , answers and passenger responses by seat per flight . the survey names table 163 stores the name for each survey stored at an authorized user &# 39 ; s data mart and the surveys table 169 maps questions to surveys . for each questions in a survey , the surveys table has an entry tying the question represented by a question id to the survey represented by the survey id . the survey questions table 171 stores each survey question . the question number field represents the order in which the question is presented to the user and the question text field stores the actual question . a survey can have any number of questions . the survey answers table 173 stores all of the possible answers to a given question . a survey can have between 2 and 6 possible answers . the answer text field is the question , answer and the answer number is the order number in which the answer is presented to the user . the survey responses table 167 records the answer represented by answer number for the question represented by question id selected by the passenger in the seat number represented by seat id for the flight represented by the flight id . [ 0071 ] fig7 is an illustration of a database schema for storing information obtained from the in - flight information system graphic user interface error log . the gui log 175 stores errors that were logged by the in - flight information system to the graphic user interfacer log . the gui error types table 176 stores the type of errors that can appear in the graphic user interfacer log 175 . those skilled in the art will appreciate that various adaptations and modifications of the just - described preferred embodiment ( s ) can be configured without departing from the scope and spirit of the invention . therefore , it is to be understood that , within the scope of the appended claims , the invention may be practiced other than as specifically described herein .