Home
Patent Search
IMT Blog
REGISTER
|
SIGN IN
United States Patent
7210141
Nathan , ; et al.
April 24, 2007
Title
System for remote loading of objects or files in order to update software
Abstract
A system for remote loading of objects or files in order to update software includes operating system architecture that calls for different tasks to be broken down into software modules that are connected to one another by dynamic links or are composed of executable subroutines that have main dependence links to other parts of the operating system. Each of the modules is composed of object files or libraries that are represented by dynamic link libraries among themselves according to a number of dependence levels that are described in their respective attributes.
Inventors:
Nathan; Guy
(Yerres,
FR
)
, Dion; Dominique
(Laval,
CA
)
Assignee:
TouchTunes Music Corporation
(Las Vegas,
NV
)
Appl. No.:
09/689,726
Filed:
October 13, 2000
PCT Pub Date:
May 2, 2007
Foreign Application Priority Data
Jul 21, 1998 [FR] 98 09296
Current U.S. Class:
717/168
717/169
717/177
Current International Class:
G06F 9/45 (20060101)
Field of Search:
717/168-178,120,217-219
U.S. Patent Documents
3982620
September 1976
Kortenhaus
4186438
January 1980
Benson et al.
4232295
November 1980
McConnell
4335809
June 1982
Wain
4335908
June 1982
Burge
4412292
October 1983
Sedam et al.
4521014
June 1985
Sitrick
4528643
July 1985
Freeny, Jr.
4558413
December 1985
Schmidt et al.
4572509
February 1986
Sitrick
4582324
April 1986
Koza et al.
4593904
June 1986
Graves
4597058
June 1986
Izumi et al.
4636951
January 1987
Harlick
4652998
March 1987
Koza et al.
4654799
March 1987
Ogaki et al.
4658093
April 1987
Hellman
4667802
May 1987
Verduin et al.
4675538
June 1987
Epstein
4677311
June 1987
Morita
4677565
June 1987
Ogaki
4703465
October 1987
Parker
4707804
November 1987
Leal
4722053
January 1988
Dubno
4761684
August 1988
Clark et al.
4766581
August 1988
Korn et al.
4787050
November 1988
Suzuki
4792849
December 1988
McCalley
4811325
March 1989
Sharples, Jr. et al.
4825054
April 1989
Rust
4829570
May 1989
Schotz
4868832
September 1989
Marrington
4920432
April 1990
Eggers
4922420
May 1990
Nakagawa et al.
4924378
May 1990
Hershey
4926485
May 1990
Yamashita
4937807
June 1990
Weitz et al.
4949187
August 1990
Cohen
4956768
September 1990
Sidi et al.
4958835
September 1990
Tashiro et al.
4999806
March 1991
Chernow
5012121
April 1991
Hammond
5041921
August 1991
Scheffler
5058089
October 1991
Yoshimaru et al.
5138712
August 1992
Corbin
5155847
October 1992
Kirouac
5163131
November 1992
Row
5166886
November 1992
Molnar
5191573
March 1993
Hair
5191611
March 1993
Lang
5192999
March 1993
Graczyk
5197094
March 1993
Tillery
5203028
April 1993
Shiraishi
5237157
August 1993
Kaplan
5237322
August 1993
Heberle
5239480
August 1993
Huegel
5250747
October 1993
Tsumura
5252775
October 1993
Urano
5260999
November 1993
Wyman
5262875
November 1993
Mincer et al.
5276866
January 1994
Paolini
5315161
May 1994
Robinson
5339413
August 1994
Koval
5341350
August 1994
Frank et al.
5355302
October 1994
Martin et al.
5357276
October 1994
Banker
5369778
November 1994
SanSoucie
5375206
December 1994
Hunter
5418713
May 1995
Allen
5420923
May 1995
Beyers
5428252
June 1995
Walker
5431492
July 1995
Rothschild
5445295
August 1995
Brown
5455926
October 1995
Keele
5457305
October 1995
Akel
5465213
November 1995
Ross
5475835
December 1995
Hickey
5481509
January 1996
Knowles
5495610
February 1996
Shing
5496178
March 1996
Back
5499921
March 1996
Sone
5511000
April 1996
Kaloi
5513117
April 1996
Small
5548729
August 1996
Akiyoshi
5550577
August 1996
Verbiest
5555244
September 1996
Gupta
5557541
September 1996
Schulhof
5559505
September 1996
McNair
5559549
September 1996
Hendricks
5561709
October 1996
Remillard
5566237
October 1996
Dobbs
5570363
October 1996
Holm
5583994
December 1996
Rangan
5592551
January 1997
Lett
5594509
January 1997
Florin
5612581
March 1997
Kageyama
5613909
March 1997
Stelovsky
5619247
April 1997
Russo
5619698
April 1997
Lillich et al.
5623666
April 1997
Pike
5642337
June 1997
Oskay
5644714
July 1997
Kikinis
5644766
July 1997
Coy
5668592
September 1997
Spaulding
5668788
September 1997
Allison
5684716
November 1997
Freeman
5691778
November 1997
Song
5697844
December 1997
Von Kohorn
5703795
December 1997
Mankowitz
5708811
January 1998
Arendt et al.
5712976
January 1998
Falcon
5726909
March 1998
Krikorian
5734719
March 1998
Tsevdos
5734961
March 1998
Castille
5758340
May 1998
Nail
5761655
June 1998
Hoffman
5762552
June 1998
Vuong
5774668
June 1998
Choquier et al.
5774672
June 1998
Funahashi
5781889
July 1998
Martin et al.
5790172
August 1998
Imanaka
5790671
August 1998
Cooper
5790856
August 1998
Lillich
5793980
August 1998
Glaser
5798785
August 1998
Hendricks
5802599
September 1998
Cabrera
5808224
September 1998
Kato
5809246
September 1998
Goldman
5832287
November 1998
Atalla
5835843
November 1998
Haddad
5845104
December 1998
Rao
5848398
December 1998
Martin
5854887
December 1998
Kindell
5862324
January 1999
Collins
5864870
January 1999
Guck
5867714
February 1999
Todd et al.
5884028
March 1999
Kindell
5884298
March 1999
Smith
5887193
March 1999
Takahashi
5913040
June 1999
Rakavy et al.
5915094
June 1999
Kouloheris
5915238
June 1999
Tjaden
5917537
June 1999
Lightfoot
5917835
June 1999
Barrett
5923885
July 1999
Johnson et al.
5930765
July 1999
Martin
5931908
August 1999
Gerba
5949688
September 1999
Montoya
5959869
September 1999
Miller et al.
5959945
September 1999
Kleiman
5966495
October 1999
Takahashi
5978855
November 1999
Metz
6002720
December 1999
Yurt
6009274
December 1999
Fletcher et al.
6018337
January 2000
Peters
6018726
January 2000
Tsumura
6072982
June 2000
Haddad
6151634
November 2000
Glaser
6256773
July 2001
Bowman-Amuah
6425125
July 2002
Fries et al.
6470496
October 2002
Kato et al.
6658090
December 2003
Harjunen et al.
6728956
April 2004
Ono
6751794
June 2004
McCaleb et al.
6789215
September 2004
Rupp et al.
6904592
June 2005
Johnson
Foreign Patent Documents
0 309 298
Mar., 1989
EP
0 425 168
May., 1991
EP
0 498 130
Aug., 1992
EP
0 507 110
Oct., 1992
EP
0 632 371
Jan., 1995
EP
0 974896
Jan., 2000
EP
0140593
May., 1985
EP
0256921
Feb., 1988
EP
0283304
Sep., 1988
EP
0340787
Nov., 1989
EP
0363186
Apr., 1990
EP
0464562
Jan., 1992
EP
0480558
Apr., 1992
EP
0498130
Aug., 1992
EP
0538319
Apr., 1993
EP
07281682
Oct., 1995
JP
0786122
Jul., 1997
EP
08-279235
Oct., 1996
JP
0817103
Jan., 1998
EP
0841616
May., 1998
EP
0919964
Jun., 1999
EP
0959570
Nov., 1999
EP
0982695
Mar., 2000
EP
10-098344
Apr., 1998
JP
19610739
Sep., 1997
DE
199954012
Apr., 2000
AU
2 238680
Jun., 1991
GB
2-153665
Jun., 1990
JP
2166328
Apr., 1986
GB
2170943
Aug., 1986
GB
2193420
Feb., 1988
GB
2259398
Mar., 1993
GB
2262170
Jun., 1993
GB
3723737
Jan., 1988
DE
3820835
Jan., 1989
DE
4 244 198
Jun., 1994
DE
5-74078
Oct., 1993
JP
57-173207
Oct., 1982
JP
58-179892
Oct., 1983
JP
60-253082
Dec., 1985
JP
62-192849
Aug., 1987
JP
62-284496
Dec., 1987
JP
63-60634
Mar., 1988
JP
A 0283350
Sep., 1988
EP
A 0313359
Apr., 1989
EP
A 0631283
Dec., 1994
EP
A 2122799
Jan., 1984
GB
A 2602352
Feb., 1988
FR
A 3820835
Jan., 1989
DE
A0082077
Jun., 1983
EP
WO 86 01326
Feb., 1986
WO
WO 91/08542
Jun., 1991
WO
WO 93/16557
Aug., 1993
WO
WO 94 15416
Jul., 1994
WO
WO 94/14273
Jun., 1994
WO
WO 94/15306
Jul., 1994
WO
WO 95 03609
Feb., 1995
WO
WO 95/29537
Nov., 1995
WO
WO 96 12258
Apr., 1996
WO
WO 96/12255
Apr., 1996
WO
WO 96/12256
Apr., 1996
WO
WO 96/12257
Apr., 1996
WO
WO 98/45835
Oct., 1998
WO
WO A 90 07843
Jul., 1990
WO
WO A 91 20082
Dec., 1991
WO
WO A 93 18465
Sep., 1993
WO
WO A 94 03894
Feb., 1994
WO
Other References
Hicks et al, "Dyanmic software updating", ACM PLDI, pp. 13-23, 2001. cited by examiner .
Melnik et al, "A mediation infrastructure for digial library services", ACM DL, pp. 123-132, 2000. cited by examiner .
Liang et al, "Dynamic class loading in the Java virtual machine", ACM OOPSLA, pp. 36-44, 1998. cited by examiner .
Newsome et al, "Proxy compilation of syanmic loaded java classes with MoJo", ACM LCTES, pp. 204-212, 2002. cited by examiner .
Bonczek, Robert H. et al, "The DSS Development System", 1983 National Computer Conference, Anaheim, California, May 16-19, 1983, pp. 441-455. cited by other .
IBM Technical Disclosure Bulletin, vol. 30, No. 5, Oct. 1987, "Method for Automated Assembly of Software Versions", pp. 353-355. cited by other .
"Robotic Wafer Handling System for Class 10 Environments" IBM Technical Disclosure Bulletin, vol. 32, No. 9A, Feb. 1990, pp. 141-143. cited by other .
Bonczck, Robert H. et al, "The DSS Development System", 1983 National Computer Conference, Anaheim, California, May 16-19, 1983, pp. 441-455. cited by other .
"High-speed Opens and Shorts Substrate Tester", IBM Technical Disclosure Bulletin, vol. 33, No. 12, May 1991, pp. 251-259. cited by other .
"Darts Revolution Again", Replay Magazine, Mar. 1991, pp. 146-148. cited by other .
Galen A. Grimes, "Chapter 18, Taking Advantage or Web-based Audio." cited by other .
Petri Koskelainem "Report on Streamworks.TM.". cited by other .
W. Richard Stevens, "TCP/IP Illustrated: vol. 1, the Protocols". cited by other .
Nowell Outlaw "Virtual Servers Offer Performance benefits for Networks Imaging". cited by other.~
Primary Examiner:
Khatri; Anil
Attorney, Agent or Firm:
Nixon & Vanderhye P.C.
Parent Case Text
This is a continuation of application Ser. No. 09/144,440, filed Sep. 1, 1998, now pending, the entire content of which is hereby incorporated by reference in this application.
Claims
The invention claimed is:
1. A system for remote loading of objects or files in order to update software, comprising operating system architecture that includes a breakdown of various tasks into software modules that are interconnected by dynamic links or made up of executable subroutines that have primary dependence links to other parts of the operating system, wherein each of the software modules is composed of object files or library files that are represented by dynamic link libraries that are organized between them according to a number of levels of dependence that are described in their respective attributes, the attributes of an object or a library indicating a version number and dependencies of the object with respect to other objects, the various tasks including a main task that includes a module (JUKECORE) that is designed to load a library loading module (WDLL), said library loading module (WDLL) including means for managing new software modules and verifying that remotely loaded software modules have no missing dependencies and that they have been loaded with the necessary versions.
2. A system for remote loading of objects or files in order to update software according to claim 1, wherein the attributes indicate the lever attributed to the software modules.
Description
BACKGROUND OF THE INVENTION
This invention pertains to a system for remote loading of objects or files in order to update software, particularly for audiovisual reproduction systems that are triggered by the payment of fees, such as jukeboxes or other devices.
In the prior art, devices for remote loading of an operating system through a network are known such as, for example, from British Patent No. 2 231 180. The teaching of this patent application calls for loading a first computer, which is connected to a second computer via a network, by loading a subset of the operating system into the memory of the first computer, whereby the subset contains the commands that make it possible to copy files, create a directory, and format a disk, as well as allowing a connection to operate through the network so that this subset can then be used to transfer all of the operating system files from the second computer to the disk of the first computer.
In this type of remote loading, the purpose is to load the entire operating system and all of the operating system files. This thus limits remote loading either to tying up, for relatively long periods of time, telecommunications systems that are to carry out remote loading in the case of the operating system, or causes the relevant files to have to be updated frequently.
From U.S. Pat. No. 4,958,278 a system is also known for remote loading to a terminal that is not equipped with a disk player.
From French Patent No. 2 682 786 another process is known for remote loading to a terminal that is not equipped with a hard disk.
Finally, European Patent No. 0 358 992 teaches a method for remote loading, via a network, of an operating system or of executable files to a computer that does not include a boot device or other devices that hold the executable program. A first minimum boot program is transferred initially, and then this minimum boot program executes itself, establishes a logical link to a disk of the server, and allows the querying computer to treat the server disk as a local boot device.
SUMMARY OF THE INVENTION
The object of the invention is to avoid the necessity, on the one hand, of rebooting the terminal to which downloading is done and, on the other, to make it possible to transfer operating files or parts of an executable program without having to reinitialize the machine, and doing so while making sure that the operation of the system is not degraded by the remotely loaded version.
This object is achieved by virtue of the fact that the architecture of the operating system provides for breaking the different tasks down into software modules that are interconnected by means of dynamic links or are composed of executable subroutines that have main dependence links to other parts of the operating system, whereby each of the modules is composed of object files or libraries that are represented by dynamic link libraries, which are organized among themselves according to a number of dependence levels, as described in their respective attributes.
According to another feature, the attributes of an object or a library indicate the version number and the dependencies of the object with respect to other objects.
According to another feature, the attributes indicate the levels attributed to the modules.
According to another feature, the different tasks include a main task that includes a module (JUKECORE), which is designed to load the dynamic link libraries (DLLs), to initialize the nucleus of the program, to initialize the graphics management module (GFX), to initialize the library loading module (WDLL), to load the Telecom module of the telecommunications tasks (TELECOM.DLL), and to launch the screen interpreter program as a main task.
According to another feature, the program is subdivided into a certain number of modules that define a task that is specific to the terminal.
According to another feature, this specific task is that which corresponds to a jukebox and includes a specific main task, a certain number of modules that define the "Windows" functions of the display, which are the following:
a module for running the mouse signals or the touch screen;
a module for running the messages that are exchanged among the objects;
a "FIL.DJL" module for managing the files on disk;
a "FIL.DJL" module for reading and writing files to and from disk;
a "FILIO.DJL" module for monitoring all of the events that are generated by the hardware, such as the touch screen, the sound card, and the money hardware processing interface.
According to another feature, the main task of the jukebox application includes a "SILOAD.DLL" module, which contains the library of the loader program, whereby the library is intended to verify the versions of the dynamic link libraries that are requested, to load them, and to call the Telecom task modules in order to transfer files.
According to another feature, the SILOAD module includes the list in a file (DLL.DEFAULT) of the minimum versions that are required for operation, as well as the list of all of the functions that are represented either by the libraries (DJL) (DATA JUKEBOX LIBRARY) or by the object files (DJO DATA JUKEBOX OBJECT).
According to another feature, the object or library contains the list of all of the functions that the library or object needs, as well as the version numbers and dependencies.
According to another feature, WDLL ensures the management of all of the new modules and verifies that the remotely loaded modules do not have any missing dependencies and that they have been loaded with the necessary versions.
According to another feature, SILOAD manages the loading of the modules that are specific to the task of the terminal, i.e., all of the "DJL" modules already listed above, as well as the jukebox library modules constituted by WOBJECT manage the object, the mixer, and the purchases; the "WCURSOR" module manages the movements of the cursor; the DBMAPI module manages the database; the "WFONTS" module manages all of the font types; and "PARSER" module analyzes and generates the screens from the script and verifies the grammar with the aid of the "GRAMMAR.DJL" module and the lexical module "LEXY.DJL."
According to another feature, the library loading module SILOAD includes a "WINDEF" module that contains the list of the files that have to be included in order to manage the windows of a Windows display that is supplied on the monitor of the jukebox-type terminal.
According to another feature, this list of objects consists of:
an "OBJET WPSCREEN.DJO" module, which makes it possible to define the main page on the monitor;
a "WSCREEN.DJO" object module, which makes it possible to determine in this main page the number of screens that are available and thus to allow multiple windows or screens to be displayed;
a "WIMAGE.DJO" module, which makes it possible to determine and define on the screen the image that it will use;
a "WANIM.DJO" module, which makes it possible to define the animation when the image is animated;
a "WBUTTON.DJO" module, which makes it possible to define and manage the buttons that are used on the screen of the main page;
a "WLABEL.DJO" module, which makes it possible to create the labels that make it possible to write on top of an object; and
a "WSCROLLER.DJO" module, which makes it possible to design the scroll display zones, between two points for example, horizontal, diagonal, vertical.
According to another feature, all of these object modules, which are managed by the main task, use a "JHANDLER" library, which makes it possible to define the fixed uses of the screens and thus to determine which are the interfaces that ensure the link to the different objects that are defined by the preceding modules.
According to another feature, the SILOAD task launches or loads the "XCP" module, makes it possible to manage payment tasks such as those handled by ticket receiving systems or coin or card payment units, and also makes it possible to save the basic information in the IBUTTON.
BRIEF DESCRIPTION OF THE DRAWINGS
Other features and advantages of this invention will be made clearer by reading the description given below, with reference to the attached drawings, where:
FIG. 1 shows a schematic of the electrical diagrams of the hardware that constitutes the invention; and
FIG. 2 shows a flow chart of the relationships between the library modules and the object modules.
DETAILED DESCRIPTION OF PREFERRED EMBODIMENTS
Preferably, but without being limited hereto, the audiovisual reproduction system uses the hardware elements listed and referenced below.
Referring to FIG. 1, a microprocessor central unit 1 is a high-performance PC compatible system, whereby during implementation a Pentium-type system was chosen that has the following memory resources and specifications:
compatibility with the local VESA bus;
processor cache: 256 KB minimum;
RAM memory: 32 MB;
high-performance serial ports;
SVGA microprocessor graphics adapter;
SCSI/2 type bus controller;
self-powered static RAM memory.
Any other central processing unit that has the equivalent or better performance can be used in the invention.
This central processing unit controls and manages a sound control circuit (5), a telecommunications control circuit (4), an input control circuit (3), a bulk storage control circuit (2), and a display control circuit (6). The display consists primarily of a flat-screen non-interlaced SVGA high-resolution and low-radiation video monitor (62), i.e., this is the monitor that is used to reproduce images (for example, the album covers of musical selections), graphics, or video clips.
A bulk storage (21), which uses hard disks of the high-speed and high-capacity SCSI type, is associated with the storage that is already present in the microprocessor device. This storage serves to store digitized and compressed audiovisual information.
A high-speed telecommunications modem adapter (41), which is built in in order to enable the link to an audiovisual information distribution network that is controlled by a central server.
In order to reproduce the sound information of the musical selections, the system includes loudspeakers (54) that receive the signal from a tuner-amplifier (53), which is connected to electronic circuit (5) that incorporates two memory buffers (56, 57) of the music synthesizer type that are supplied to support a large number of input sources while providing CD (compact disc) type output quality.
Likewise, the display control circuit 6 also has two buffer memories (66, 67) for the purpose explained above.
A 240-watt thermally regulated and ventilated power supply feeds power to the system. This power supply is protected against overcurrents and overdriving.
By means of its input controller circuit (3), the audiovisual reproduction system manages a touch screen (33), which includes a glass coating panel that uses the "advanced surface-wave technology", as well as an AT-type bus controller. This touch screen is able to display on video monitor (62) or the screen of a television set (61) various selection data that are used by the customers, as well as management command and control data that are used by the manager or owner of the system. This touch screen is also used for maintenance purposes in combination with an external keyboard (34) that can be connected to the system which, for this purpose, has a keyboard connector that is controlled by a key lock (32) via interface circuit (3).
Input circuit (3) also interfaces the system with a remote control assembly (31) that consists of, for example, a radio frequency RF remote control.
A fee payment device (35) is also connected to input interface circuit (3). It is also possible to use any other device that makes it possible to receive any kind of payment using coins, tickets, tokens, magnetic or microchip cards, or any combination of these means of payment.
To allow the system to be installed, it is equipped with a chassis or is built with customizable external fittings.
In addition to these elements, a wireless microphone (55) is connected to sound controller (5); this makes it possible to convert the sound controller into a powerful public-address and information system or optionally into a karaoke machine. Likewise, the system can also use a wireless loudspeaker system.
Remote control assembly (31) allows the manager from, e.g., behind the bar, to access and control various commands such as:
the microphone on-off control;
the loudspeaker muting control;
the control for canceling the musical selection that is currently being played.
Two buffers (56, 57) are associated with sound controller circuit (5) in order to make it possible to store, each alternately, a data item corresponding to at least approximately a quarter of a second of sound. Likewise, two buffers (66, 67) are associated with video controller circuit (6), whereby each buffer is able, either by itself or alternatively, to store at least approximately one-tenth of a second of an image. Finally, a respective buffer (46, 36, 26) is associated with each of communications controller circuit (4), input interface circuit (3), and storage circuit (2).
The system operating software was developed around a library of tools and services that were very largely oriented toward the audiovisual domain in a multimedia universe. This library advantageously includes a high-performance multitask operating system that effectively allows the simultaneous execution of multiple fragments of code. This operating software also allows the concurrent execution, in an orderly and completely conflict-free way, of operations that are carried out on the display and the sound reproduction structure, as well as the managing of the telecommunications links through the distribution network. Moreover, this software is highly flexible.
The operating system is divided into modules, which include a first boot module (7), which in turn is subdivided into a first main program module (70) "JUK.EXE", which checks the memory and verifies whether the minimum number of objects is available to ensure the operation of the jukebox; a second module (71), which is dynamically linked and is dependent thereon, is represented by the "JUKECORE.DLL" module. The function of the second module (71) is to hold the libraries in C and to ensure the execution of the main task.
The architecture of the operating system calls for the different tasks to be broken down into software modules that are connected to one another by dynamic links or consist of executable subroutines that have main dependence links to other parts of the operating system. Each of the modules is composed of object files or dynamic link library files that are organized according to a number of dependence levels described in the attributes. The attributes of an object or a library indicate the version number and the dependencies of the object or library file with respect to other object files, as described below for the PARSER module. Each attribute indicates the level attribute to the module. Thus, the JUK.EXE module (70) is of a higher level than the modules JUKECORE (71), TLS (72), CRDE (73), GFX (74), WDLL (75), JEEP (9) and TELECOM (10), but TELECOM module (10) is dependent on JEEP module (9) (see link 910), and is thus lower in level than JEEP (9).
Likewise, JEEP (9) (see link 759) is of a lower level than WDLL module (75), because it is dependent on it and TLS (725), of a higher level than WDLL (75). However, TLS and GFX may be on the same level. The main task includes a module (JUKECORE) whose purpose is to initialize or load module (73), the nucleus of program "CRDE.DLL", to initialize or load module (74) for managing graphics (GFX), to initialize or load module (75) for loading libraries (WDLL.DLL), to load Telecom module (10) for the task of telecommunications (DLL), to load TLS.DLL module (72), which contains all the uses required for the jukebox, for telecommunications, time, decryption, etc., . . . , to initialize or load the library of JEEP (Juke Execution Exchange Protocol) programs, which handle the tasks of an integrity server, load request and dialogue with the server, and to launch program (80, SILOAD.DLL) as a main task. The main task of the jukebox application includes a module (SILOAD.DLL) that contains the library of the loader program whose purpose is to verify the dynamic link library versions required in (WDLL), to load them or to call the tasks, using the Telecom module in order to transfer files. The WDLL.DLL module includes the list in a file (DLL.DEFAULT) of the versions that are required for operation, as well as the list of all of the functions that are represented by libraries (LIBRARY) (DLL, DJL) or by object files (DJO). Each object or library contains the list of all of the functions that the library or object needs, as well as the version members and dependencies. The WDLL module manages all of the new modules, checks to verify the interdependencies, and verifies that the remotely loaded modules have no dependence and have been loaded with the required versions. Application part (8) that is inherent in a jukebox includes a certain number of modules that are loaded and launched by SILOAD and that define the "Windows" functions of the display, which include the following:
a module (81) for running the mouse or touch-screen signals;
a module (82) for running the messages that are exchanged between the objects and the various other modules;
a FIL.DLL module (83) for managing the files on disk;
a read-write module (84) FILO.DJL for files on disk;
a JSTRUCT.DJL module (85) for monitoring all of the events produced by the hardware, such as the touch screen, the sound card, and the interface for processing fee hardware.
SILOAD manages the loading of the modules that are specific to the task of the terminal, i.e., all of the DJL modules already listed above, as well as jukebox library modules (87), consisting of WOBJECT (870), which manages the objects such as the mixer and purchases; WCURSOR module (871), which manages the movements of the cursor; DBMAPI module (872), which manages the database; WFONTS module (873), which manages all of the types of fonts; PARSER (syntactic analysis program) module (874), which analyzes and generates the screens from the script and verifies grammar with the aid of module "GRAMMAR.DJL" (876) and module "LEXY.DJL" (875), which is the lexical module that assigns the functions of the words within the language. PARSER module (874) contains in its file header the following information:
TABLE-US-00001 -char*parser_version_info = "DLL_INFO.DJL," "DLL-NAME PARSER.DJL" "VERSION 1;" "CREATOR KENDALF;" "REQUIRES lexyy. djl; 4" "REQUIRES grammar-djl; 5";
All of the modules and all of the libraries (DJO, DLL, DJL) contain information similar to that of the PARSER module, and this information determines the needs in terms of versions and dependence.
Thus, the PARSER module needs LEXY module version 4 and GRAMMAR module version 5 in order to allow it to be executed by the system. The double arrows in FIG. 2, which connect the various modules to one another, indicate the order in which the different files are loaded. Thus, as indicated previously, it will be necessary to start by loading JUKE.EXE, then loading JUKECORE.DLL, and being able, from JUKECORE.DLL, to load GFX.DLL, TLS.DLL, WDLL.DLL, JEEP.DLL, TELECOM.DLL, CRDE.DLL, and SILOAD.DLL.
The single arrows represent the dependencies between files. Thus, arrow (91) indicates that the DJL and, in particular, DBMAPI modules are dependent on CRDE.DLL. Arrow (93) indicates that the DJO files are dependent on the WOBJECT.DJL module. The WOBJECT.DJL module is itself dependent on the FILIO.DJL module. Arrow (92a) indicates that DBMAPI.DJL is dependent on JSTRUCT.DJL, and arrow (92b) indicates that DBMAPI.DJL is dependent on WMESSAGE.DJL. Arrow (98) indicates that JSTRUCT.DJL is dependent on the WMESSAGE.DJL file. WMESSAGE is dependent on the MOUSE.DJL file and, since FILIO.DJL is dependent on the FIL.DJL file, the file XCP.DJL is dependent, as indicated by arrow (856), on JSTRUCT.DJL and, as indicated by arrow (826), on WMESSAGE.DJL. The JHANDLER file is dependent, as indicated by arrow (97), on WMESSAGE.DJL and, as shown by arrow (96), on JSTRUCT.DJL. The SILOOP.DJL file is dependent, as indicated by arrow (95), on JSTRUCT.DJL and, as indicated by arrow (94), on WMESSAGE.DJL. The TELECOM.DLL file is dependent, as indicated by arrow (910), on JEEP.DLL, which in turn is dependent, as shown by arrow (959), on WDLL.DLL. The WDLL.DLL file is dependent, as indicated by arrow (725), on TLS.DLL. Likewise, arrow (89c) shows that GRAMMAR.DJL is dependent on LEXY.DLL and, as indicated by arrow (99b), that LEXY.DJL is dependent on PARSER.DJL. Thus, as was seen previously, PARSER requires LEXY and GRAMMAR to execute itself, and version 1 of PARSER calls version 4 of LEXY.DJL and version 5 of GRAMMAR.DJL. Likewise, WOBJECT.DJL is dependent, as indicated by arrow (99a), on PARSER.DJL. Thus, all of the .DJO, .DLL, and .DJL modules and libraries contain information similar to that of the PARSER module, which determines the version requirements of the various modules on which a given module is dependent. This information also indicates the dependencies of the modules with respect to the other modules, as indicated by the arrows in FIG. 2.
Library loading module SILOAD also loads or launches a module SILOOP.DLL (90), with an event wait tape. A set of modules (88) contains a list of the files that have to be included there to manage the windows of a Windows display that is provided on the monitor of the jukebox-type terminal.
This list of objects consist of:
an object file (883) "WPSCREEN.DJO", which makes it possible to define the main page on the monitor;
an object file (881) "WSCREEN", which makes it possible to determine on this main page the number of screens available and thus to make it possible to display multiple windows or screens;
an object file (880) "WIMAGE.DJO", which makes it possible to determine and define on the screen the image that the screen will use;
an object file (882) "WANIM.DJO", which makes it possible to define the animation when the image is animated;
an object file (885) "WBUTTON.DJO", which makes it possible to define and manage the buttons that will be used on the screen of the main page, such as the actuation buttons used in the graphical interface that is defined in patent application PCT WO 96/12258;
an object file (884) "WLABEL.DJO", which makes it possible to create labels that make it possible to write on top of an object; and
an object file (886) "WSCROLLER.DJO", which makes it possible to define the vertical-scroll display zones.
A "JHANDLER" library makes it possible to define the fixed uses of the screens and thus to determine which are the interfaces that ensure the links to the different objects that are defined by the previous modules.
Library module "XCP" (86) makes it possible to manage the payment tasks such as those of ticket receiving systems or coin or card payment units and also makes it possible to back up basic information in the IBUTTON, which is an integrated circuit for storing secret codes for the user.
Thus, when a new file is sent by remote loading to the system, the file contains information on its level, which depends on the type of file. The files of the graphical images, for example WIMAGE.DJO, have the highest levels, and the hardware management files, for example XCP.DJL, have the lowest levels. The JEEP module verifies the dependence logic by starting with the lowest-level files and moving up toward the higher files, all the while ensuring that the necessary dependencies between the files or libraries are respected. In this way, a modification in WOBJECT.DJL will cause JEEP to verify that the version information required by WOJBECT.DJL for the DJO files that are dependent and are required for its execution corresponds to the minimum versions required by the information recorded in the WOBJECT.DJO file. Thus, if WOBJECT.DJL requires a certain version of WPSCREEN.DJO, it will verify that this version is at least present and that, if there is only a version of an inadequate level, it will report a problem. Then JEEP will go up the dependence links toward FILIO.DJL and FIL.DJL.
The hard disk of the jukebox is organized in such a way as to comprise a directory C:\NEWJUKE, which contains the new jukebox files when new modules are remotely loaded. Another file, C:\OLDJUKE, contains a backup of the stable versions of the files and modules that are required for the operation of the jukebox. The JEEP (JUKE EXECUTION EXCHANGE PROTOCOL) module contains an automatic file manager that keeps track of the modules and files that are updated by backing up the old files for a certain period of time and by moving their files into the NEWJUKE directory. This task also copies the files on the tracks of the disk in the event that there is a sudden incident during the remote loading operation. The JEEP module also contains a reboot manager that is responsible for changing the execution level of the files of the jukebox once the automatic file manager has determined that an update of the jukebox has been accomplished. The JEEP.DLL module also generates a MISDEPS.DAT file when a missing dependence has been detected. This file contains lines in the form NEEDPARSER.DLL arrow version 2: NEEDLEXY.DLL .fwdarw. version 2.0, etc. . . . This file allows the server, by reading this MISDEPS.DAT file, to determine the modules on the jukebox and to reload them.
Other modifications within the grasp of one skilled in the art are also part of the spirit of the invention.
* * * * *
Quick Search
patentmonkey
UpgradeAccount
IMTBlog
BestLegalBids