Modified computer architecture for a computer to operate in a multiple computer system
Abstract
A modified computer architecture ( 50, 71, #1, #2, #3 ) which enables applications program ( 50 ) to be run simultaneously on a plurality of computers (M 1 , . . . Mn) and a computer for the multiple computer system are disclosed. Shared memory at each computer is updated with amendments and/or overwrites so memory read requests are satisfied locally. During initial program loading ( 75 ) instructions which result in memory being re-written/manipulated are identified. Instructions are inserted to cause equivalent memory locations at all computers to be updated. Initialization of JAVA language classes and objects is disclosed so memory locations for all computers are initialized in the same manner. Finalization of JAVA language classes and objects is disclosed. Finalization occurs when the last class/object on all machines is no longer required. During initial program loading ( 75 ) instructions which result in the program ( 50 ) acquiring/releasing a lock on an asset (synchronization) are identified. Instructions are inserted to result in a modified synchronization routine with which all computers are updated. A single computer arranged to operate in a multiple computer system is disclosed.
Claims
exact text as granted — not AI-modified1 . A single computer intended to operate in a multiple computer system which comprises a plurality of computers each having a local memory and each being interconnected via a communications network, wherein a different portion of at least one application program each written to execute on only a single computer executes substantially simultaneously on a corresponding one of said plurality of computers, and at least one memory location is replicated in the local memory of each said computer,
said single computer comprising:
a local memory having at least one memory location intended to be updated via said communications network,
a communications port for connection to said communications network, and
updating means to transfer to said communications port any updated content(s) of said replicated local memory location(s) whereby the corresponding replicated memory location of each said computer of said multiple system can be updated via said communicating network and all said replicated memory locations can remain substantially identical.
2 . The computer as claimed in claim 1 wherein each said replicated local memory location is part of an independent local memory accessible only by the corresponding portion of said application program executing on said computer.
3 . The computer as claimed in claim 2 wherein said memory location includes at least one of an asset, object or resource and has a value or content.
4 - 21 . (canceled)
22 . A multiple computer system having at least one application program each written to operate on only a single computer but running simultaneously on a plurality of computers interconnected by a communications network, wherein different portions of said application program(s) execute substantially simultaneously on different ones of said computers, wherein each computer has an independent local memory accessible only by the corresponding portion of said application program(s) and wherein for each said portion a like plurality of substantially identical objects are created, each in the corresponding computer.
23 . The system as claimed in claim 22 wherein each computer has an independent local memory accessible only by the corresponding portion of said application program(s).
24 . The system as claimed in claim 23 wherein each of said plurality of substantially identical objects has a substantially identical name.
25 . The system as claimed in claim 24 wherein each said computer includes a distributed run time means with the distributed run time means of each said computer able to communicate with all other computers whereby if a portion of said application program(s) running on one of said computers changes the contents or value of an object in that computer then the change in content or value for said object is propagated by the distributed run time means of said one computer to all other computers to change the content or value of the corresponding object in each of said other computers.
26 . The system as claimed in claim 25 wherein each said application program is modified before, during, or after loading by inserting an updating propagation routine to modify each instance at which said application program writes to memory, said updating propagation routine propagating every memory write by one computer to said other computers.
27 . The system as claimed in claim 26 wherein the application program is modified in accordance with a procedure selected from the group of procedures consisting of re-compilation at loading, pre-compilation prior to loading, compilation prior to loading, just-in-time compilation, and re-compilation after loading and before execution of the relevant portion of application program.
28 . The system as claimed in claim 27 wherein said modified application program is transferred to all said computers in accordance with a procedure selected from the group consisting of master/slave transfer, branched transfer and cascaded transfer.
29 - 65 . (canceled)
66 . A method of running simultaneously on a plurality of computers at least one application program each written to operate on only a single computer, said computers being interconnected by means of a communications network, said method comprising the step of,
(i) executing different portions of said application program(s) on different ones of said computers and for each said portion creating a like plurality of substantially identical objects each in the corresponding computer and each accessible only by the corresponding portion of said application program.
67 . The method as claimed in claim 66 wherein each computer has an independent local memory which includes the corresponding identical object.
68 . The method as claimed in claim 66 comprising the further step of,
(i) naming each of said plurality of substantially identical objects with a substantially identical global name.
69 . The method as claimed in claim 68 comprising the further step of,
(i) if a portion of said application program running on one of said computers changes the contents or value of an object in that computer, then the change in content or value of said object is propagated to all of the other computers via said communications network to change the content or value of the corresponding object in each of said other computers.
70 . The method as claimed in claim 69 including the further step of:
(i) modifying said application program before, during or after loading by inserting an updating propagation routine to modify each instance at which said application program writes to memory, said updating propagation routine propagating every memory write by one computer to all said other computers.
71 - 72 . (canceled)
73 . A method of loading an application program written to operate only on a single computer onto each of a plurality of computers, the computers being interconnected via a communications link, and different portions of said application program(s) being substantially simultaneously executable on different computers with each computer having an independent local memory accessible only by the corresponding portion of said application program(s), the method comprising the step of modifying the application before, during, or after loading and before execution of the relevant portion of the application program.
74 . (canceled)
75 . The method as claimed in claim 73 wherein said modifying step comprises:—
(i) detecting instructions which share memory records utilizing one of said computers, (ii) listing all such shared memory records and providing a naming tag for each listed memory record, (iii) detecting those instructions which write to, or manipulate the contents of, any of said listed memory records, and (iv) generating an updating propagation routine corresponding to each said detected write or manipulate instruction, said updating propagation routine forwarding the re-written or manipulated contents and name tag of each said re-written or manipulated listed memory record to all of the others of said computers.
76 - 77 . (canceled)
78 . A method of compiling or modifying an application program written to operate on only a single computer but to run simultaneously on a plurality of computers interconnected via a communications link, with different portions of said application program(s) executing substantially simultaneously on different ones of said computers each of which has an independent local memory accessible only by the corresponding portion of said application program, said method comprising the steps of:
(i) detecting instructions which share memory records utilizing one of said computers, (ii) listing all such shared memory records and providing a naming tag for each listed memory record, (iii) detecting those instructions which write to, or manipulate the contents of, any of said listed memory records, and (iv) activating an updating propagation routine following each said detected write or manipulate instruction, said updating propagation routine forwarding the re-written or manipulated contents and name tag of each said re-written or manipulated listed memory record to the remainder of said computers.
79 . The method as claimed in claim 78 and carried out prior to loading the application program onto each said computer, or during loading of the application program onto each said computer, or after loading of the application program onto each said computer and before execution of the relevant portion of the application program.
80 - 139 . (canceled)
140 . The computer as claimed in claim 1 , further comprising:
initialization means which determine the initial content or value of said replicated memory location and which can be disabled.
141 . The computer as claimed in claim 1 , further comprising: finalization means which deletes said replicated memory location when all said computers no longer need to refer thereto, said finalization means being connected to said communications port to receive therefrom data transmitted over said network relating to continued reference of other computers of said multiple computer system to said replicated memory location.
142 . The computer as claimed in claim 1 , further comprising: lock acquisition and relinquishing means to respectively permit said replicated local memory location to be written to, and prevent said replicated local memory being written to, on command.
143 . The computer as claimed in claim 1 , further comprising:
initialization means which determine the initial content or value of said replicated memory location and which can be disabled; finalization means which deletes said replicated memory location when all said computers no longer need to refer thereto, said finalization means being connected to said communications port to receive therefrom data transmitted over said network relating to continued reference of other computers of said multiple computer system to said replicated memory location; and lock acquisition and relinquishing means to respectively permit said replicated local memory location to be written to, and prevent said replicated local memory being written to, on command.Join the waitlist — get patent alerts
Track US2009055603A1 — get alerts on status changes and closely related new filings.
We store only your email — no account needed. See our privacy policy.