CN101283342B - Replication of object graphs - Google Patents
Replication of object graphs Download PDFInfo
- Publication number
- CN101283342B CN101283342B CN2006800374427A CN200680037442A CN101283342B CN 101283342 B CN101283342 B CN 101283342B CN 2006800374427 A CN2006800374427 A CN 2006800374427A CN 200680037442 A CN200680037442 A CN 200680037442A CN 101283342 B CN101283342 B CN 101283342B
- Authority
- CN
- China
- Prior art keywords
- machine
- computing machine
- computing
- original field
- create
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Expired - Fee Related
Links
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
- G06F9/46—Multiprogramming arrangements
- G06F9/52—Program synchronisation; Mutual exclusion, e.g. by means of semaphores
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
- G06F9/44—Arrangements for executing specific programs
- G06F9/448—Execution paradigms, e.g. implementations of programming paradigms
- G06F9/4488—Object-oriented
- G06F9/4493—Object persistence
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
- G06F9/46—Multiprogramming arrangements
- G06F9/465—Distributed object oriented systems
Landscapes
- Engineering & Computer Science (AREA)
- Software Systems (AREA)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Multi Processors (AREA)
- Stored Programmes (AREA)
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
Abstract
The updating of only some memory locations in a multiple computer environment in which at least one applications program (50) executes simultaneously on a plurality of computers Ml, M2 .... Mn each of which has a local memory, is disclosed. Objects A and B in each local memory are disclosed which each include primitive fields (11). However, the simultaneous operation of the application program (50) can result in a ''non-primitive'' reference field (10) in one machine which must then be replicated in all other machines. However, the reference field (10) references another object (H) in the onemachine's local memory so corresponding objects (T, K) must be created in the local memory of each other machine and be referenced by the corresponding non- primitive field (10).
Description
Technical field
The present invention relates to calculate operation when relating in particular to a plurality of computing machine via interconnection of telecommunication network.
Background technology
Announce with the applicant's name, publication No. is that International Patent Application PCT/AU2005/000580 (acting on behalf of institute's reel number is 5027F-WO) (publication No. is that the U.S. Patent application 11/111,946 of 2005-0262313 is corresponding with it) of WO 2005/103926 discloses only to be written as and how can substantially side by side operate on the corresponding various computing machine at a plurality of computing machines in the different piece of the application program of carrying out on the unicomputer.This is operated till the application's the priority date simultaneously as yet not in commercial use.Exercise question is the U.S. Patent application 11/259885 pairing International Patent Application PCT/AU2005/001641 (acting on behalf of institute's reel number is 5027F-D1-WO) of " Computer Architecture Method of Operation forMulti-Computer Distributed Processing and Co-ordinated Memory andAsset Handling ", and under the applicant's name, also disclosed more details by the unpub International Patent Application PCT/AU2006/000532 of the application's priority date (acting on behalf of institute's reel number is 5027F-D2-WO).Above-mentioned each in the description of first to file by cross reference all in conjunction with in this manual.
In brief, above-mentioned patent specification discloses and only has been written as at least one application program of operating on the unicomputer and can be simultaneously operated on each all has some computing machines of local storage independently.The required memory location of the operation of this program is replicated in the independently local storage of each computing machine.At every turn when application program is write new data arbitrary memory location of duplicating, transmit this new data, and it is stored in each corresponding memory location of each computing machine.Therefore, do not consider possible transmission delay, the content of the local storage of each computing machine and the local storage of each other computing machine is basic identical, and is updated to keep like this.Because it is much frequent that the common reading of data of all application programs produces new data to be written than them, so such scheme makes it possible to realize bigger advantage aspect computing velocity.Especially, this strategy makes can be operated simultaneously by two or more business computers of business network interconnection, thereby moves under the application program of carrying out on the unicomputer only being written as.
The higher level lanquage that comprises JAVA and MICROSOFT.NET has two kinds of memory locations or field.First kind in these two kinds is so-called " original " field, and it comprises alphanumeric data, as numeral or alphabetical.This content only can easily be replicated by being copied into another original field.Second kind of field is commonly referred to as " non-original " field of reference field, and it comprises " pointer " that points to another memory location or another object in fact.Programming language uses one or more pointers that the operation of computing machine is redirected to the address of being quoted.If pointer is copied utterly, then they will point to memory location identical in other machine, but these positions may have identical memory content, or may not have identical memory content.
The objective of the invention is to wish in multicomputer system, to make duplicating of non-original field easier, thereby allow as far as possible near the substantially the same memory construction and the expectation target of content.
Summary of the invention
According to a first aspect of the invention, a kind of method of in the multicomputer environment the non-original field that is replicated object being duplicated is disclosed, in described multicomputer environment, the different piece of at least one application program is carried out on the various computing machine of a plurality of computing machines that pass through interconnection of telecommunication network simultaneously, and described method comprises step:
(i) create corresponding tables, and each object that exists in any computing machine at described a plurality of computing machines, make in the described corresponding tables list item with quote corresponding to each of described object;
(ii) in each computing machine, duplicate described corresponding tables, perhaps allow each computer access to be present in the counterpart at the single corresponding tables of whole machines in the server computer, the described list item of each in described corresponding tables comprises the local pointer of the local storage object that sensing quoted by the object of a described machine; And
(iii) make each described other machine specify corresponding non-original field and native object, and in described table, import the corresponding local pointer of respective local memories object.
According to a second aspect of the invention, a kind of multicomputer system of carrying out the different piece of at least one application program on the various computing machine of a plurality of computing machines by interconnection of telecommunication network is simultaneously disclosed, wherein, at each non-original field of creating in any computing machine in described computing machine, whole described computer-accessible or each described computing machine in have corresponding list item in the corresponding tables of being duplicated, described list item comprises the local pointer of the local storage object that sensing quoted by the described non-original field of a described computing machine, and each other described computing machine is specified corresponding non-original field and native object, and imports the corresponding local pointer of corresponding local storage object in described corresponding tables.
According to a third aspect of the invention we, open by interconnection of telecommunication network and be used to guarantee to carry out a plurality of computing machines of said method.
According to a forth aspect of the invention, disclose a kind of computer program, it comprises the program instruction set that is stored in the storage medium and is used to make a plurality of computing machines execution said methods.
According to a fifth aspect of the invention, disclosed a kind of being used for and at least one other computing machine cooperation, so that carry out the single computing machine of said method or formation aforementioned calculation machine system.
Description of drawings
Thereby Figure 1A schematically shows and is arranged to move the prior art computing machine that the JAVA code constitutes single JAVA virtual machine;
Figure 1B is the figure that is similar to Figure 1A, but illustrates the original upload of code;
Fig. 1 C illustrates the interconnection that each a plurality of computing machine that are the JAVA virtual machine forms multicomputer system;
The computing machine that the individual operation of Fig. 2 schematic illustrations " n " is used, at least one additional server machine X is connected with these computing machines as server;
Fig. 3 is the synoptic diagram of the memory location in a plurality of machines, and it illustrates the memory location that comprises object and field;
Fig. 4 is the memory diagram similar to Fig. 3, but shows the establishment of the reference field of quoting new object;
Fig. 5 illustrates the memory diagram that newly-built reference field is duplicated in success;
Fig. 6 is a table of listing corresponding reference field;
Fig. 7 is the memory diagram that the establishment of another reference field is shown;
Fig. 8 illustrates the memory diagram that another reference field is duplicated in success;
Fig. 9 is the process flow diagram of the process followed during same application domain being carried in the network on each machine;
Figure 10 is the process flow diagram through modification process that illustrates with the similar process of Fig. 9;
Figure 11 is first embodiment that utilizes memory updating, the indicative icon that the multithreading of carrying out on the machine of Fig. 8 is handled;
Figure 12 is the indicative icon similar to Figure 11, but but show alternative embodiment; And
Figure 13 illustrates the multithreading memory updating of the computing machine that is used for Fig. 8.
Embodiment
Each embodiment is described with reference to the JAVA language, yet, those skilled in the art are to be understood that, the present invention is not limited to this language, especially, can be used for other Languages (comprising process language, declarative language and object oriented language), comprise MICROSOFT.NET platform and architecture (Visual Basic, Visual C and Visual C++, and Visual C#), FORTRAN, C, C++, COBOL, BASIC or the like.
Well known in the prior art providing by setting up the virtual machine shown in Figure 1A utilized the unicomputer of application program of language-specific or machine (produced by in each manufacturer any one, and have operating system (perhaps being equal to Control Software or other mechanism) with any language manipulation in the various different languages).
The form of the application code 50 that the code of Figure 1A and data and virtual machine dispose or scheme takes to use the JAVA language compilation and carry out in JAVA virtual machine 61.Thereby be under the situation of JAVA language at the expectation language of using, use the JAVA virtual machine, wherein the JAVA virtual machine can move the code of JAVA form, no matter and the interior details of machine builder and computing machine or machine how.Relevant more details, referring to " the The JAVA Virtual Machine Specification " second edition that T.Lindholm and F.Yellin showed by U.S. Sun Microsystems company, it is incorporated herein by reference.
According to embodiments of the invention, the optional equipment of " during distributed the operation " or " distributed runtime system " DRT 71 is provided easily by providing shown in Figure 1B, improve the routine techniques scheme of Figure 1A.
Among Figure 1B and the 1C, by by the loading procedure shown in arrow 75 or 75A or the 75B, application code 50 be loaded into JAVA virtual machine M1, the M2 of distributed runtime system 71 cooperations ..., on the Mn.As used herein, term when operation " distributed " and " distributed runtime system " come down to synonym, and comprise bank code and the process that is supported in the software that moves on the particular platform, write with language-specific by setting forth rather than restriction, being understood as that usually.In addition, distributed runtime system can also comprise bank code and the process that is supported in software operation in the specific distribution formula computing environment, that write with language-specific.The details of the interface between common handling procedure of runtime system (no matter whether being distributed runtime system) and the operating system, for example system call, program start and termination and memory management.Be the explanation background, conventional distributed computing environment (DCE) (when it does not provide employed distributed operation of the present invention in the preferred embodiment of the present invention or the ability of distributed runtime system 71) can obtain from Open Software Foundation.This distributed computing environment (DCE) is carried out the communication form of a kind of computing machine at the software that moves to computing machine on machine, still except that its many restrictions, it can not realize desired modification or traffic operation.Except that its function and operation, preferred DRT 71 coordinate a plurality of machine M1, M2 ..., the specific communications between the Mn.In addition, preferred distributed when operation 71 JAVA use 50 by shown in arrow 75A or the 75B each JAVA virtual machine 72 of Fig. 1 C or machine JVM# 1, JVM# 2 ..., bring into operation during the loading procedure on the JVM#n.Be to be understood that according to description mentioned herein, though many examples are provided as relevant with the JAVA virtual machine with the JAVA language with description, so that the reader can understand the benefit of object lesson, but the present invention is not limited to JAVA language or JAVA virtual machine, perhaps any other language, virtual machine, machine or operating environment.
Fig. 1 C shows the scheme of each JAVA virtual machine shown in Figure 1B with improved form.Obviously, identical application code 50 is loaded on each machine M1, M2...Mn.Yet the communication between each machine M1, M2...Mn is by arrow 83 expression, though and physically transmit by machine hardware, advantageously controlled by the 71/1...71/n of DRT separately in each machine.Thereby in fact this can be from conceptive be understood as via network or other communication link 53 and the DRT 71/1 of intercommunication mutually ... 71/n, rather than machine M1, the M2...Mn of self or direct communication each other.Contemplated and what comprise is this direct communication between machine M1, M2...Mn or DRT 71/1, the 71/2...71/n, the combination of perhaps such communication.Preferred DRT 71 provides and is independent of communicating by letter of transmission, agreement and link.
Common application or application code 50, and can carry out version (may have modification) on a plurality of computing machines or machine M1, M2...Mn simultaneously or concurrent execution.Application program 50 is written as is carrying out (perhaps operating) on the multicomputer system of the above-mentioned patented claim that the simulation unicomputer is operated on unit device or the computing machine.In fact, improved structure is to duplicate identical memory construction and content on each independent machine.
Term " common application " should be understood to mean to be written as and operate on the unit device, and the application program or the application code that in a plurality of computing machines or machine M1, M2...Mn each or alternatively load whole or in part and/or carry out on each of certain subclass of described a plurality of computing machines or machine M1, M2...Mn.In other words, has the common application of representing with application code 50.It is single copy, or each is all revised separately to generate application program or the modification copy of program code or a plurality of identical copies of version.So each copy or example are prepared to carry out on the machine of correspondence.After they are modified, to carry out on similar operation and the meaning consistent each other and operation consistently from them, they are public.Should be appreciated that a plurality of computing machines of realizing embodiments of the invention, machine, information equipment etc. can randomly be connected to or be coupled to be unrealized other computing machine, machine, information equipment etc. of embodiments of the invention.
The identical application program 50 (for example parallel sequencing by merging, computational fluid dynamics application or data mining are used) of operation on each machine, but the executable code of this application program is revised at each machine as required, make on each machine each carry out the operational coordination that example (copy or duplicate) makes its respective instance (copying or duplicate) on the local operation on this particular machine and other machine, make them work together, and look like an overall example (i.e. " unit uses ") of application with consistent, coherent and coordinated mode.
Each copy or duplicate of identical or essentially identical application code, each is loaded on one corresponding in interoperability and machine that is connected or the computing machine.Because the characteristic of each machine or computing machine may be different, so application code 50 can be modified before loading, is being modified or is being modified (though some shortcomings are arranged) during the loading procedure after loading procedure, so that the customization or the modification of application code to be provided on each machine.Program on the different machines or some differences between the application code can allow, as long as can keep other requirement to interoperability, consistance and continuity as herein described.Will be appreciated that hereinafter, each machine among machine M1, the M2...Mn, thereby all machine M1, M2...Mn have identical or essentially identical application code 50, it has usually can be modification specific to machine.
Before the loading of the application code 50 on each machine M1, M2...Mn (or its relevant portion), loading duration or carry out before whenever, each application code 50 is revised according to identical rule (or essentially identical rule, because allow little optimization to change in each modifier 51/1,51/2...51/n) by modifier (modifier) 51 of correspondence.
Each machine among machine M1, the M2...Mn and identical (basic identical or similar) modifier 51 are (when being implemented as distributed operation in certain embodiments or DRT71, and be implemented as the annex of application code and data 50 in other embodiments, and also can in JAVA virtual machine self, realize) operation together.Thereby all machine M1, M2...Mn have identical (the basic identical or similar) modifier 51 at required each modification.For example, for memory management with duplicate, initialization, end and/or may need different modification (although may not all embodiment all need all such modifications type) synchronously.
But 71 alternative realizes when having modifier 51 and distributed operation.For example, shown in dotted line among Fig. 1 C, modifier 51 may be implemented as the parts in distributed when operation 71, or the parts of 71 inside during distributed operation, so DRT 71 can realize the function and the operation of modifier 51.Alternatively, the function of modifier 51 and operation can realize outside the structure that is used to realize DRT 71, software, firmware or other device, for example in code and data 50, perhaps in JAVA virtual machine self.In one embodiment, modifier 51 and DRT 71 boths realize with the single hop computer program code of function that DRT and modifier are provided or write.In this case, modifier function and structure are in fact involved in DRT.With its realization irrespectively, modifier function and structure are responsible for revising the executable code of application code program, and distributed when operation function and structure be responsible for realizing each computing machine or machine and both communication between above.In one embodiment, communication function is realized by the intermediate protocol layer in the computer program code of the DRT on each machine.For example, DRT can realize communication stack with the JAVA language, and use TCP (TCP/IP) provides communication or dialogue between the machine.These functions or operation can in all sorts of ways and realize, and be to be understood that according to description provided herein, how these functions or operation are implemented definitely, and perhaps how definitely being divided between structure and/or process element or between computer program code or data structure is not important or vital for purposes of the invention.
Yet, in the scheme shown in Fig. 1 C, provide a plurality of independent computing machines or machine M1, M2...Mn, wherein each is all via communication network 53 or the interconnection of other communication link.Each independent computing machine or machine all are provided with corresponding modifier 51.Each independent computing machine also is provided with the communication port that is connected to communication network.Communication network 53 or path can be any electronics signaling, data or digital communications network or path, and be preferably at a slow speed, thereby the low communication path of cost, any common networking structure for example on the Internet or that comprise ETHERNET or INFINIBAND and expansion thereof are connected with network in the improvement.Preferably, computer installation has the one or more known communication port (for example CISCO Power Connect 5224 switches) that is connected with communication network 53.
Because such scheme, if machine M1, M2 ..., each machine among the Mn all has for example inside or the local storage capacity of 10MB, then the available on the whole total memory space of application code 50 is not as desiredly to multiply by machine quantity for 10MB.The additivity combination of internal storage capacity that neither all n machine.But on the contrary, it is 10MB, perhaps greater than 10MB less than certain number of n * 10MB.Under the situation of the internal storage capacity difference of each machine (this is to allow), so under the situation of the internal storage in a machine less than the internal storage capacity of at least one other machine, when such storer (or its part) is used as " public " storer (being the similar storer that is equal on each machine of machine M1...Mn), or when being used on the contrary carry out the common application code, the size of the minimized memory of any one machine can be used as the maximum memory capacity of each machine.
Yet, may look like may retraining of performance at first although treat the mode of the internal storage of each machine,, will be understood that hereinafter how this causes operating the raising with performance.Certainly, each machine M1, M2...Mn have special-purpose (being non-public) internal storage capacity.Each machine M1, M2 ... the common approximately equal of special inside memory span of Mn, but also not necessarily like this.For example, when multicomputer system be to utilize by active computer, machine or information equipment that different entities had or operated to realize or when forming, the internal storage capacity may be significantly different.On the other hand, if realizing a new multicomputer system, then each machine or computerized optimization have identical internal storage capacity for selecting, but not necessarily like this.
The independent local storage that should be appreciated that each machine is only represented that part of storer that is assigned to the part of moving of application program in this machine total memory on this machine.Thereby other storer will be by the operating system of this machine and shared with irrelevant other calculation task of application program 50.
The operation of the non-commercial of prototype multicomputer system shows, is not that each machine or computing machine all use and maybe need to quote (the local duplicate that for example, has each possible memory location) each possible memory location in this system.As a result, as long as the local storage of each machine is enough for the operation of this machine, other machine of local storage and each that then need not each machine is identical, just can operate multicomputer system.That is to say that if particular machine does not need to quote (the local duplicate that for example has some specific memory location) some specific memory location, then not to be replicated be inessential to those specific memory location in this particular machine.
The amount of selecting internal storage in each machine with in each machine and a plurality of machines, computing machine or information equipment M1, the M2 that connect or be coupled of institute ..., to reach the expected performance grade on the constellation of Mn or the network also be favourable.After having described these inner and common storage Considerations, should be appreciated that between the machine it can is that the amount of public storer is not to limit according to description provided herein.
In certain embodiments, some or all of a plurality of independent computing machines or machine can be contained in single shell or frame (for example by Hewlett-Packard Development company, Intel Company, the what is called " blade server " that IBM Corporation etc. make), in the multiprocessor (for example symmetric multiprocessor SMP) or polycaryon processor (for example dual core processor and chip multiline procedure processor) made by Intel, AMD or other company, perhaps be implemented on the single printed circuit board or even in single chip or chipset.Similarly, also comprise and have multinuclear, many CPU's or other processing logic computing machine or machines.
When realizing with non-JAVA language or application code environment, the language that general-purpose platform and/or virtual machine and/or machine and/or runtime system can be operated this platform and/or virtual machine and/or machine and/or runtime system environment (for example, may be including but not limited to language source code, the intermediate code language, the object code language, in machine code language and any other code language any one or a plurality of) application code 50, no matter and the interior details of machine or processor manufacturer and machine how, utilizes this platform and/or virtual machine and/or machine and/or runtime system and/or communications language architecture.It is also understood that platform and/or runtime system can comprise virtual machine and non-software virtual machine and/or firmware architecture, and hardware and the directly application and the realization of hardware encoding.
For more generally virtual machine or abstract machine environment, and for present and computing machine and/or computing machine and/or information equipment or the disposal system in the future that can not use or require to use class and/or object, structure of the present invention, method and computer program and computer program stand good.Do not use the example of the computing machine of class and/or object and/or computing machine for example to comprise the x86 Computer Architecture of making by Intel Company etc., SPARC Computer Architecture by manufacturings such as Sun Microsystems companies, the Power PC Computer Architecture of making by IBM Corporation etc., and the personal computer product of making by Apple Computer company etc.
Computing machine for these types of the notion of not using class or object, computing machine, information equipment and virtual machine or the virtual computation environmental realized thereon, can be summarized as and for example comprise basic data type (integer data type for example, floating type, the long data type, the double precision datum type, the string data type, character data type and Boolean data type), structured data type (for example array and record), the type that derives from, perhaps other code or the data structure of process language or other Languages or environment are as function, pointer, assembly, module, structure, quote and unite.When these structures and process on demand during applied in any combination, their maintenance calculations environment, wherein under this computing environment, the memory location of computing machine or computing environment, address realm, object, class, assets, resource or any other process or configuration aspects are produced, are safeguarded, are operated on demand and deactivation or deletion with consistent mode with that coordinate, that link up on a plurality of independent machine M1, M2...Mn.
This analysis of application code 50 or go through can occur in before the load application code 50, perhaps during application code 50 loading procedures, perhaps even after application code 50 loading procedures (perhaps certain combination of these situations).This can be compared to rewriting (instrumentation), program conversion, translation or compilation process, because application code can be write with additional instruction, and/or revise by the programed control that keeps implication, and/or translate into different code language (for example, from language source code or intermediate code language conversion to object code language or machine code language) from the input code language alternatively.About this point, should be appreciated that term " compiling " relates to code or linguistic change usually or routinely, for example from the source code to the object code, perhaps from a kind of language to another kind of language.Yet in this case, term " compiling " (and phraseological equivalents) is not so limited, and can contain or comprise the modification in same code or the language yet.For example, will compile and equivalents is understood to include general compiled (for example, but being not limited to from the source code to the object code) and the compiling from the source code to the source code, and the compiling from the object code to the object code, and any change combination wherein.Also comprise so-called " intermediate code language ", its be a kind of " pseudo-object code ".
For example, but without limitation, in one embodiment, the analysis of application code 50 or go through the loading duration that occurs in application code, the loading of application code is for example to read application code 50 by operating system from hard disk or other memory device, medium or source, and it is copied in the storer, and prepare to begin to carry out this application code and realize.In another embodiment, in the JAVA virtual machine, analyze or go through during the class loading procedure of the java.lang.ClassLoader.loadClass method that can occur in (for example " java.lang.ClassLoader.loadClass () ").
Alternatively, perhaps in addition, the analysis of application code 50 (or part of application code) or go through even can occur in after the application code loading procedure, for example after operating system is loaded into application code in the storer, perhaps randomly, even after the execution of the relevant counterpart of application code has begun, for example after the JAVA virtual machine has been loaded into application code in the virtual machine by " java.lang.Classloader.loadClass () " method and has randomly begun to carry out.
The those of ordinary skill in calculating field can know that various possible technology can be used to revise computer code, and these technology include but not limited to rewriting, program conversion, translation or compilation device and/or method.
A kind of such technology is, under the situation of the language that need not to change formerly or afterwards application code, application code is made amendment.Another kind of such technology is to convert source code (for example, the JAVA language source code) to intermediate representation (or intermediate code language, or pseudo-code), for example JAVA syllabified code.In case should conversion take place, just syllabified code is made amendment, conversion can be reversed then.This provides the desired result who is modified the JAVA code.
Another possible technology is directly from source code or by above-mentioned intermediate language or by some other intermediate meanses, and application program is transformed into machine code.Then, revise machine code in loading with before carrying out machine code.Another such technology is to convert source code to intermediate representation, thereby this intermediate representation is modified and is converted into subsequently machine code.
The present invention includes all such modification approach, and the combination of two, three even how such approach.
When these structures and process on demand during applied in any combination, their maintenance calculations environment, wherein under this computing environment, the memory location of computing machine or computing environment, address realm, object, class, assets, resource or any other process or configuration aspects are produced, are safeguarded, are operated on demand and deactivation or deletion with consistent mode with that coordinate, that link up on a plurality of independent machine M1, M2...Mn.
Therefore, term " one ", " list " and " public " application code or program comprise following situation, in this case, all machine M1, M2...Mn operation or carry out identical program or code rather than different (with irrelevant) program, in other words, the copy of identical or essentially identical application code or duplicate are loaded in interoperability and machine that is connected or the computing machine each.
In using the conventional scheme of distributed software, undertaken by the network of each machine that interconnects usually to the memory access that is physically located at the storer on another machine from the software of a machine.Thereby the local storage of each machine can both be visited by any other machine, therefore can not say so independently.Yet, because to be physically located at storer on another computing machine read and/or the memory write visit needs to utilize the slow speed network of each computing machine of interconnection, so in these configurations, the substance that such memory access can cause memory read/write to be handled in the operation postpones, and may be approximately the cycle (being assumed to processor speed of the same period) of 106-107 machine CPU (central processing unit).Finally, a plurality of factors are depended in this delay, for example the speed of communication network, bandwidth and/or time delay.This has illustrated the low performance of a plurality of interconnected machine in the prior art scheme to a great extent.
Yet, in this programme, because the currency of all memory locations (or certain subclass of all memory locations) is stored on the performed machine of the processing that produces the memory read demand, be met in this locality so all of memory location or data are read all.
Similarly, because the currency of all memory locations (or certain subclass of all memory locations) is stored on the performed machine of the processing of generation memory write demand,, all of memory location or data are met in this locality so writing all.
Such local storage read and write is handled operation usually 10
2-10
3Satisfy in the individual CPU (central processing unit) cycle.Thereby in fact, relate to and/or the wait of the memory access write less basically.In addition, therefore the local storage of each machine can not can be b referred to as independently by any other machine access.
The present invention is independent of transmission, network and communication path, and how the communication that does not rely between each machine or each DRT is carried out.In one embodiment, in addition the Email between machine or the DRT (email) also can satisfy alternately the needs of communication.
In conjunction with the above, as can be seen from Figure 2, have some machine M1, M2 ... Mn, " n " are the integer more than or equal to 2, the application program 50 of Fig. 1 machine M1, M2 ... on the Mn basically simultaneously the operation.These machines by hierarchical sequence be assigned with the numeral 1,2,3 ... or the like.This order is round-robin or closed normally, makes that machine " n " and machine 1 also are like this when machine 2 and machine 3 are adjacent on level.Preferably, have another machine X, it is provided to make various internal affairs processing capacities (housekeeping functions) to be performed, and for example serves as the lock server.Especially, described another machine X can be the low price machine, and cheaply more a lot of than other machine that may have gratifying attribute such as Processor's speed.In addition, an additional low price machine (X+1) preferably is used in and provides redundant when machine X breaks down.When two such server machine X and X+1 were provided, for simply, they were operated preferably as the two-shipper device of cluster topology.According to the present invention, in case of necessity, machine X and X+1 can operate as multicomputer system.Yet this generally can cause the complexity do not expected.If machine X is not provided, then its function (for example internal affairs processing capacity) is provided by one in other machine, some or all machines.
With reference now to Fig. 3,, this illustrates any three machine Mn-1, Mn in a plurality of machines of forming computer system and the memory diagram of Mn+1.Before the operation of application program begins, carried out the initialization process described in the patent specification that above is merged in, therefore, the memory content in each machine is identical in fact.Shown in specific examples in, each machine has two object A and B, and each object have can the storage alphanumeric data two original fields 11.In the specific examples that provides, two fields of object A comprise numeral 7 and 9, and two fields of object B comprise numeral 3 and 5 simultaneously.
Each computing machine in the individual computers after being initialised as mentioned above, the different piece of executive utility 5.Imagine each machine and will only generate the data that will be stored in the modification in the two of original field and non-original field.In such field is only to comprise under the situation of original field of alphanumeric data, and these fields can easily be copied, thereby duplicate on each other machine.Yet, as shown in Figure 4, the situation that machine Mn for example has reference field 10 may appear, and reference field 10 is because different with original field 11, so represent with the two-wire border.
The inside of object A in machine Mn is field 10,11 and 12, has corresponding field 30,31 and 32 among their object A in machine Mn-1, and has corresponding field 20,21 and 22 among the object A in machine Mn+1.
In this specific example, new reference field 10 comprises the quoting of extra objects H, and wherein object H self comprises two original fields 11.In Fig. 4, in reference field 10, show the title H and the arrow of the object that is cited, make program redirect to move on to object H with the content of pointing out reference field 10 from object A.Therefore, produce following problem: how the storer variation that takes place among the machine Mn is all being duplicated in other machines, so that computer system keeps consistent basically storer.
As shown in Figure 4,, may have reference field 30 in the object A, yet this is inadequate, because the object H that the reference field 10 of machine Mn is quoted does not exist in machine Mn-1 about machine Mn-1.Alternatively, as at shown in the machine Mn+1, may in object A, have reference field 20, in this machine, create new object simultaneously, yet, the machine tissue is different usually, and therefore the pointer (or address) of the new object of creating in machine Mn+1 is different with the pointer (or address) of the object H that creates in machine Mn.
The net result of expectation has been shown among Fig. 5.Here, has the machine Mn of reference field 10 and extra objects H with identical in the past.Yet for machine Mn+1, object A is provided with reference field 20, and the content quotation of this reference field 20 is created in the local storage of machine Mn+1 and the new object T corresponding with the object H of machine N.Similarly, at object A, machine Mn-1 has reference field 30, and this reference field 30 is corresponding to field 10, and its content quotation is created in the local storage of machine Mn-1 and the new object K corresponding with the object H of machine Mn.
Utilize for example result of the expectation shown in the establishment of the corresponding tables shown in Fig. 6 Fig. 5.Such corresponding tables preferably and easily is stored in the server machine X, therefore can be by whole other machine access.In the corresponding tables of Fig. 6, being cited, (it is for this example for the establishment of object H, can be assumed to be relevant easily with the aspect about human head of application program 50) be assigned with global name C (represent easily in Latin the meaning be the cranium of head), should be appreciated that the local pointer (or address) of H is general different with global name C.
For each machine in other machine in the multicomputer system, be necessary to create the local pointer (or address) of new object, then this pointer is input to Fig. 6 with the corresponding corresponding tables of global name C in.For machine Mn-1, the local address of new object is called K (representing looks like in the German is the Kopf of head) easily, and simultaneously, for machine Mn+1, local address is called as T (represent French to like thinking is the t ê te of head) easily.
Because all links of the corresponding tables by Fig. 6 of object H, T and K, so the content of each original field can easily be copied to corresponding original field among object K and the T respectively among the object H.
With reference now to Fig. 7,, Fig. 7 shows different slightly examples.Here, the processing of the application program of being carried out by machine Mn 50 generates in object B and quotes the new reference field 46 that has object H now.Therefore, be necessary to create among the corresponding objects B in being included in machine Mn-1 and machine Mn+1 the local copy of reference field 46.
Net result wherein, has been created new reference field 56 and 66 respectively as shown in Figure 8 in machine Mn-1 and Mn+1.In addition, the content of each reference field in these new reference field be respectively to the quoting of corresponding object K of the object H of machine Mn and object T.This establishment can be undertaken by the corresponding tables of consulting Fig. 6, makes that for example machine Mn+1 knows in its local storage corresponding to liking object T with the object H of machine Mn.
With reference now to Fig. 9,, during the original upload program, is loaded the program 50 of creating each JAVA virtual machine 72 and is modified.This is modified in step 90 beginning among Fig. 9, and relates to and be loaded the initial essence step 91 that detects whole memory locations (be called field-but use equivalent terms in other Languages) in the application program 50 in JAVA.Need for step 92 and 93 with the such memory location of aftertreatment sign.During loading procedure, DRT 71 creates so tabulation of whole memory locations of sign, and wherein the JAVA field is listed by object and class.Variable field and synchronization field all are listed.
The next stage of modification process (step 92 of the appointment among Fig. 9) is a search executable application programs code, thus each the processing behavior that changes in the value of corresponding stored device position so that the corresponding field value of tabulation that generates in positioning action or change and the step 91 writes each field.When detecting the such operation (in the JAVA language, being typically putstatic or putfield) that changes field value, so in program, insert " update propagation routine " by step 93 herein, change has taken place with the content that guarantees whole other machine fields of notice.After this, described in the instructions of above-mentioned merging and shown in the step 94 among Fig. 9, continue loading procedure in due form.
But the initial alternative form of revising of loading duration has been shown among Figure 10.Here, beginning and listings step 90 with 91 and search step 92 and Fig. 9 in identical.Yet, insert " warning routine " in step 103, rather than as inserting " update propagation routine " in step 93, wherein processing threads is carried out and is upgraded.The thread of DRT or the propagation of a plurality of thread execution necessity are not used and are distributed in " warning routine " indication in processing.But this step 103 is modes of alternative faster of step 93 among Fig. 9, and it causes lower expense.
In case take place as the initial modification of Fig. 9 or loading duration shown in Figure 10, the multithreading shown in Figure 11 and Figure 12 then take place handle any operation in operating.Find out that from the embodiment of Figure 11 the multithreading that comprises thread 111/1...111/4 that is carrying out on the machine M1 handles 110, and the processing of (in this example) second thread 111/2 causes thread 111/2 to learn the change of field value in step 113.In this stage, interrupt the normal process of this thread 111/2 in step 114, and same thread 111/2 is by network 53 the notices all sign that is changed field that takes place in step 113 of other machine M2...Mn and the content of change.In communication process end, thread 111/2 recovers to handle in step 115, up to the next example that exists field contents to change.
But in alternative scheme shown in Figure 12, in case the thread 111/2 on the machine M1 is learnt the change of field value in the step 113, just indicate DRT to handle 120 (shown in step 125 and arrows 127): distribute to DRT handle another thread 121/1 of 120 will be according to step 128, will be by network 53 at the content propagation of detected sign that is changed field of step 113 and change to whole other machine M2...Mn.This is the operation that can carry out fast, therefore before the processing in thread 111/2 recovering step 115, the processing of initial thread 111/2 only as shown in step 125 instantaneous interruption only.Other thread 121/1 of then, notified change (shown in arrow 127) conveys to each machine among other machine M2...Mn by network 153 with this change as shown in the step 128.
The alternative plan of Figure 12 has utilized the processing power of each thread 111/1...111/3 and 121/1 (not doing to be equal to requirement usually) better, and provide better calibration (n is the integer more than or equal to 2, and representative is connected to the network 53 and the sum of the machine of the different piece of executive utility 50 simultaneously separately) with cumulative size " n ".No matter use which scheme, be transmitted to whole other machine M2 on the network in the field of the detected change of step 113 and sign and content ... Mn.
This as shown in Figure 13, wherein the thread 121/1 among DRT 71/1 and Figure 12 thereof (in Figure 13 by step 128 representative) is via network 53, sending to each machine among other machine M2...Mn by the processing among the machine M1 in the content of the sign of the listed memory location of step 113 generation of Figure 12 and change.
Each machine among other machine M2...Mn is right by the sign and the content of receive automatic network 53, and new content is write local corresponding stored device position, thus execution by among Figure 13 at the step 135 of machine Mn, 136 and 137 indicated actions.
The technician in calculating field should be understood that the corresponding tables of Fig. 6 needn't be positioned at server machine X, but can safeguard the local copy of this table in each machine of each machine Mn-1, Mn, Mn+1 etc.In addition, in these cases because each machine can by the table of consulting oneself determine with the corresponding local storage of quoting by any other machine of object in object, so need not there be global name.For example, if machine Mn receives the message that update package is contained in the content of the original field 11 the object T from machine Mn+1, then machine Mn consults the corresponding tables of Fig. 6, and determines the object T of its object H corresponding to machine Mn+1 so its object for being updated.That is, the corresponding tables of Fig. 6 does not need to comprise the row of the title in left side for " overall situation ".For this reason, the table shown in Fig. 6 has the left part that with dashed lines separates, and to show if there is no server machine X, does not then need this part.
Preamble has only illustrated some embodiments of the present invention and modification, and obviously, the technician who calculates the field obviously can make other embodiment and modification under the situation of not leaving scope of the present invention.
For example, such scheme imagination " n " individual computing machine, wherein each computing machine is shared the sub-fraction (1/n) of application program.In this case, all " n " individual computing machine has identical local storage structure.Yet, can operate the system that the subclass of wherein having only computing machine has identical local storage structure.In this case, the member's of this subclass maximum number will be used as " n " in the above explanation.
Be also to be understood that memory location can comprise data and code section.Therefore, the new value of memory location or change can comprise new numerical data and code section new or that revise.Similarly, quoting of JAVA comprised the JAVA language, and JAVA platform and architecture.
In the modification example of all descriptions, wherein application code 50 before loading, loading duration or even loading after but before the execution of unmodified application code begins, be modified, be to be understood that, the application code that is modified replaces unmodified application code and is loaded after the modification of carrying out, and replaces unmodified application code and be performed.
Alternatively, modification occur in load after and under the situation after the execution of unmodified application code begins, should be appreciated that unmodified application code can by corresponding to the modification of carrying out, the application code revised the integral body replacement; Perhaps, alternatively, along with the unmodified application code of carrying out is incrementally made amendment, unmodified application code can be by part or is incrementally replaced.No matter use in such modification approach which kind of, the modification after being carried out all replaces unmodified application code and carries out.
At all the similar forms that are equal to native object (class, assets or resource etc.) use global identifier conduct " first name " or " unit's sign " on each machine among a plurality of machine M1, the M2...Mn is favourable.For example, needn't follow the tracks of a plurality of similar each similar each unique local name or sign that are equal to native object that is equal to object on each machine, replace, can define or use corresponding to a plurality of similar global namespace (for example " globalname7787 ") that is equal to object on each machine, each machine connects global namespace and specific local name or object that (for example " globalname7787 " is corresponding to the object on the machine M1 " localobject456 " in the case, " globalname7787 " is corresponding to the object on the machine M2 " localobject885 ", and " globalname7787 " is corresponding to object on the machine M3 " localobject111 " or the like).
According to the detailed description that this paper provided, those skilled in the art also can understand, in the table of when writing down or creating the tabulation of whole or certain subclass in all objects at first, creating by each DRT 71, tabulation or other data structure (for example memory location or field), for the object of each the such record on each machine M1, the M2...Mn, exist in public or similar name or sign on each machine among machine M1, the M2...Mn.Yet; in each machine; because each machine may, and can store the memory value or the content of different memory position usually, so will or may time to time change corresponding to the native object of the name of appointment or sign according to the inter-process of himself.Thereby, table among each DRT, tabulation or other data structure generally can have the different local storage location corresponding to single memory name or sign, but " the storer name " of each overall situation or sign can have identical " memory value or the content " that is stored in the different local storage location.So, for each global namespace, can there be the corresponding independent local storage location of gang, a member of family is wherein arranged in each computing machine.Though the local storage name may be different, assets, object, position etc. have identical content or value basically.So family links up.
Term as used herein " table " or " form " intention comprise any tabulation or organized, at all events plant form and can storing in an orderly way and the data structure of sense data within it.
According to explanation provided herein, those of ordinary skill in the art should be understood that also application code 50 can realize with several different methods or by various devices in the above-mentioned modification of loading duration.These methods or device comprise including but not limited to following at least five kinds of methods and this five kinds modification or combination:
Compiling again when (i) loading;
Precompile process before (ii) loading;
Compiling before (iii) loading;
(iv) " instant (just-in-time) " compiling, or
(the compiling again after v) loading (still, for example before in distributed environment, carrying out relevant or corresponding application code).
Usually, term " compiling " means the change of code or language aspect, for example from the source code to the object code, or from a kind of language to another kind of language.Obviously, in this manual, the use of term " compiling " (and phraseological equivalents) is not so limited, and can contain or comprise the modification in same code or the language yet.
The operation of given modification memory processes with coordinate a plurality of machine M1, M2...Mn between the two and the key concept of the operation between more than both, have some different modes or embodiment, can carry out or realize being coordinated, that link up with consistent memory state with handle operating concept, method and process.
In first embodiment, particular machine (for example machine M2) loads the assets (for example class or object) that comprise the memory processes operation, it is made amendment, make each machine among other machine M1, the M3...Mn (sequentially, side by side or according to any other order, routine or process) load the object of modification (or class or other assets or resource) of the memory processes operation that comprises new modification then.Note, may exist with application code in only corresponding one or more memory processes operations of object, perhaps exist with application code in the corresponding a plurality of memory processes operations of a plurality of objects.Notice that in one embodiment, the memory processes operation that is loaded is executable intermediate code.
Can be called as in the scheme of " master/slave " at this, from (or auxilliary) machine M1, M3...Mn each loads modified object (or class), and comprise the memory processes operation of new modification, the memory processes operation of the modification that this is new sends to each from machine by master's (or main) machine (for example machine M2) or other machine (for example machine X) by computer communication network or other communication link or path.In the minor change of this " master/slave " or " main/auxiliary " configuration, computer communication network can replace with sharing and storing device (for example shared-file system) or shared document/library (as shared data bank).
Be appreciated that the modification each machine or computing machine on carried out not needs and often can not identical or identical according to the detailed description that provides here.Needed be them by with enough similar, make each machine in a plurality of machines with respect to other machine consistent and mode operation consistently revise.In addition, be appreciated that to exist countless ways to realize revising that this may for example depend on different factors such as specific hardware, architecture, operating system, application code.Be further appreciated that can be in operating system, outside any operating system or without any need for operating system, in virtual machine, in EPROM, in software, in hardware, in firmware or above any combination realize.
In another embodiment, each machine M1, M2...Mn receive the unmodified assets (for example class or object) that comprise one or more memory processes operations, but revise each operation, load the assets (for example class or object) that comprise the operation of now having revised then.Although a machine (for example master machine or main machine) can customize or carry out different modifications to the memory processes operation that sends to each machine, this embodiment is easier to make the performed modification of each machine different slightly.Thereby it can be similar with whole other similar modifications based on its particular machines architecture, hardware processor, storer, configuration, operating system or other and other machine, link up and consistent factor and be enhanced, customization and/or optimization.
In all described examples or embodiment, to machine M1, M2...Mn and randomly comprise the coding of assets (for example category code or object identification code) that machine X provides or passes on, can be by with the mode of any combination or displacement branch, distribution or reception and registration between more than the different machines both and both; For example the communication by direct machine to machine is provided (for example, M2 directly supplies with each among M1, M3, the M4 etc.), or by (for example providing or use cascade or continuous communiction, M2 supplies with M1, and M1 supplies with M3, and M3 supplies with M4 etc.), the perhaps combination of direct communication and cascaded communication and/or sequenced communications.
Under revising the situation relevant with the removing routine of only being carried out by a computing machine in a plurality of computing machines, end etc., such scheme needs to revise.In this modification of this " master/slave " or " main/auxiliary " scheme, machine M2 will comprise that with unmodified form the assets (for example class or object) of removing routine are carried on the machine M2, then, (for example, M2 or each local machine) from assets (for example class or object), delete the unmodified removing routine that has been present on the machine in whole or in part, and by computer communication network being carried on other machine through revising code (having the removing routine of now having revised or having deleted) assets.Therefore, in this example, revising is not conversion, rewriting, translation or the compiling that assets are removed routine, but the removing routine on whole machines of deletion bar one.In one embodiment, deletion finishes or removes the actual code piece of routine on whole machines of bar one, therefore, because all other machine has been deleted the end routine, so this last machine is to carry out the unique machine that finishes routine.A benefit of this method is, because have only a machine that the end routine is arranged, so do not clash between a plurality of machines of carrying out identical end routine.
The processing of deletion removing routine can be carried out by " master " machine (for example machine M2, perhaps other machine such as machine X) fully, is perhaps carried out when receiving unmodified assets by each other machine M1, M3...Mn alternatively.The other variation of being somebody's turn to do " master/slave " or " main/auxiliary " scheme is to use sharing and storing device, shared-file system for example, perhaps shared document/library, as shared data bank, as the means that between machine M1, M2...Mn and optional server machine X, exchange the code of assets, class or object.
In another scheme, particular machine (for example machine M1) loads the unmodified assets (for example class or object) that comprise end or remove routine, and all the version that also loads modification with the removing routine of deletion assets (for example class or object) is revised in other machine M2, M3...Mn execution.
In another scheme, machine M1, M2...Mn can send some or all load request to Additional servers machine X, this server machine X (comprises assets and/or class and/or object, perhaps is made up of assets and/or class and/or object by any method application programs code 50 in the said method; And comprise end or remove routine) carry out and revise, and will comprise that end of now having revised or the modified application code of removing routine return to each machine among the machine M1 to Mn, and the local again modified application code that loads the routine that comprises modification of these machines.In this scheme, machine M1 to Mn transmits whole load request to machine X, and machine X returns the end that comprises modification or the modified application code of removing routine given each machine.The modification of being carried out by machine X can comprise any modification in the described modification.Certainly, this scheme can be applied to only some machines, and simultaneously, other scheme described here is applied to other machine.
The technician in computing machine and/or programming technique field will be appreciated that, when additional code or instruction are inserted in existing code or the instruction set so that it is revised, existing code or instruction set need further modification (for example by the numbering again to continual command) probably, make to be offset that branch, attribute, mark (mark up) etc. are correctly handled or satisfied.
Similarly, in the JAVA language, memory location for example comprises two types of fields and array.The above relates to field, and the required change of array type is identical necessity change basically.And, the present invention is equally applicable to and the similar programming language of JAVA (comprising process, declarative and object-oriented language), comprise Microsoft.NET platform and architecture (VisualBasic, Visual C/C++, and C#), FORTRAN, C/C++, COBOL, BASIC etc.
Term as used herein " object " and " class " are derived from the JAVA environment, and intention comprises and is derived from varying environment such as dynamic link library (DLL), object code bag, the similar terms of functional unit or memory location.
About embodiments of the invention various devices have been described, device, modifier or modifier etc. during for example including but not limited to locking device, distributed operation.In at least one embodiment of the present invention, in these various devices any one or each can realize by computer program code statement or the instruction of in computer logic circuit, processor, ASIC, logical OR electronic circuit hardware, microprocessor, microcontroller or other logic, carrying out (may comprise) by a plurality of computer program code statements or instruction, realize described operation or function with the operation of revising such logical OR circuit.In another embodiment, in these various devices any one or each can realize that and in other embodiments, it can be realized with hardware with firmware.In addition, at least one embodiment of the present invention, in these various devices any one or each can realize by the combination of computer software, firmware and/or hardware.
In said method, process and/or the routine any one and each can advantageously be implemented as computer program and/or the computer program that is stored on any tangible medium or exists with electronics, signal or digital form.Such computer program or computer program comprise instruction respectively, and/or be organized into module, program, subroutine, perhaps with any alternate manner tissue, so that in the processor of processing logic such as computing machine, computing machine or information equipment or microprocessor, carry out; Computer program or computer program are revised the operation of its computing machine of carrying out in the above, perhaps revise to be coupled, to be connected with computing machine this computer program or computer program place or execution in the above or with the operation on the computing machine of signal communication.Such computer program or computer program are revised the operation of computing machine, computing machine and/or information equipment and the structure of architectural structure, with the technical operation of change computing machine, and realize the techniques described herein effect.
Therefore, the present invention can comprise a kind of computer program, it comprises the batch processing instruction, wherein this group programmed instruction is stored in the storage medium, perhaps exist electronically in any form, and can be used for making a plurality of computing machines to carry out as in the described method of this paper (comprising in arbitrary claim), process, the routine etc. any one.
In addition, the present invention comprises (but being not limited to) a plurality of computing machines, perhaps with can be used for simultaneously basic via communication network or other communication link or path interconnection and each or carry out the single computing machine that only is written as in the identical or different part of the application code of corresponding different calculating hands-operation on the single computing machine or in each computing machine concurrently.Described computing machine is programmed to when being loaded computer program or according to subsequent instructions, carry out describe in the instructions or arbitrary claims in any method, process or the routine that propose.Similarly, the present invention in its scope, also comprise be arranged to similarly or basic similarly computing machine cooperation to form the single computing machine of multicomputer system.
Generally speaking, a kind of method of in the multicomputer environment the non-original field that is replicated object being duplicated is disclosed, in described multicomputer environment, carry out the different piece of at least one application program on the various computing machine of a plurality of computing machines by interconnection of telecommunication network simultaneously, the method comprising the steps of:
(i) create corresponding tables, and each object that exists in any computing machine at a plurality of computing machines, make in the corresponding tables each list item with quote corresponding to each of described object;
(ii) in each computing machine, duplicate corresponding tables, perhaps allow each computer access to be present in the counterpart of the single corresponding tables that is used for whole machines in the server computer, each list item in corresponding tables comprises the local pointer of the local storage object that sensing quoted by the object of a machine; And
(iii) make each other machine specify corresponding non-original field and native object, and in table, import the corresponding local pointer of corresponding local storage object.
Preferably, also comprise step:
(iv) use in the table the corresponding global name of all local pointers with corresponding non-original field or corresponding objects.
Preferably, also comprise step:
(v) create in the machine of the processing of a part in application program part indication in described machine second or the situation of the non-original field that is cited subsequently under, create corresponding second or the non-original field that is cited subsequently in other machine of each in described machine.
Preferably, also comprise step:
(vi) utilize a thread in a plurality of threads in each computing machine come executive utility different piece and
(vii) make the thread of indication establishment second or the non-original field that is cited subsequently indicate each other computing machine in the described computing machine to create corresponding second or the non-original field that is cited subsequently.
Preferably, also comprise step:
(viii) utilize a thread in a plurality of threads in each computing machine come executive utility different piece and
(ix) make the thread different indicate each other computing machine in the described computing machine to create corresponding second or the non-original field that is cited subsequently with the thread of indicating establishment second or the non-original field that is cited subsequently.
In addition, a kind of multicomputer system of carrying out the different piece of at least one application program on the various computing machine of a plurality of computing machines by interconnection of telecommunication network is simultaneously disclosed, wherein, at each non-original field of creating in any computing machine in described computing machine, there is corresponding list item in the corresponding tables of in whole computer-accessible or each computing machine, being duplicated, list item comprises the local pointer of the local storage object that sensing quoted by the non-original field of a computing machine, wherein, each other computing machine is specified corresponding non-original field and native object, and imports the corresponding local pointer of corresponding local storage object in corresponding tables.
Preferably, the corresponding global name of whole local pointer of described table utilization and corresponding non-original field or corresponding object.
Preferably, in a computing machine of described computing machine each second or subsequently the non-original field that is cited, in described computing machine, create corresponding second or the non-original field that is cited subsequently in each other computing machine.
Preferably, in each described computing machine, utilize multithreading to handle the different piece of executive utility, and the thread of indication establishment second or the non-original field that is cited is subsequently indicated each other computing machine establishment second or the non-original field that is cited of arriving soon after in the described computing machine.
Alternatively, in each computing machine, utilize multithreading to handle the different piece of executive utility, and by with indication create second or the different thread instruct computer of the thread of subsequently the non-original field that is cited in each other computing machine create corresponding second or subsequently the non-original field that is cited.
Also provide by interconnection of telecommunication network and be used for guaranteeing carrying out a plurality of computing machines of any method of above method.
A kind of computer program also is provided, and it comprises and is stored in the storage medium and is used for making a plurality of computing machines to carry out the program instruction set of any method of above method.
A kind of being used for and at least one other computing machine cooperation also disclosed, so that carry out any method in the above method or form the single computing machine of aforementioned calculation machine system.
Term as used herein " comprises " that (and grammatical variants) is used for the comprising property implication of expression " having " or " comprising ", rather than be used for expression " only by ... form " the exclusiveness implication.
Claims (10)
1. method of in the multicomputer environment, the non-original field that is replicated object being duplicated, in described multicomputer environment, carry out the different piece of at least one application program on the various computing machine of a plurality of computing machines by interconnection of telecommunication network simultaneously, described method comprises step:
(i) create corresponding tables, and at each object that exists in any of described a plurality of computing machines, make in the described corresponding tables list item with quote corresponding to each of described object;
(ii) in each computing machine, duplicate described corresponding tables, perhaps allow each computer access to be present in the counterpart at the single corresponding tables of whole computing machines in the server computer, the described list item of each in described corresponding tables comprises the local pointer of the local storage object that sensing quoted by the object of a computing machine; And
(iii) make each other computing machine specify corresponding non-original field and native object, and in described table, import the corresponding local pointer of corresponding local storage object.
2. method according to claim 1 also comprises step:
(iv) use in the described table the corresponding global name of whole local pointer with corresponding non-original field or corresponding objects.
3. method according to claim 1 and 2 also comprises step:
(v) create in the computing machine of processing indication in described a plurality of computing machines of a part in described application program part second or the situation of the non-original field that is cited subsequently under, in described a plurality of computing machines, create corresponding second or the non-original field that is cited subsequently in each other computing machine.
4. method according to claim 3 also comprises step:
(vi) utilize a thread in a plurality of threads in each described computing machine carry out described application program described different piece and
(vii) make indication create described second or the thread of the non-original field that is cited subsequently indicate each other computing machine in described a plurality of computing machine to create second or the non-original field that is cited subsequently of described correspondence.
5. method according to claim 3 also comprises step:
(viii) utilize a thread in a plurality of threads in each described computing machine carry out described application program described different piece and
(ix) make with indicate create described second or the different thread of the thread of subsequently the non-original field that is cited indicate each other computing machine in described a plurality of computing machine to create described corresponding second or subsequently the non-original field that is cited.
6. device that in the multicomputer environment, the non-original field that is replicated object is duplicated, in described multicomputer environment, carry out the different piece of at least one application program on the various computing machine of a plurality of computing machines by interconnection of telecommunication network simultaneously, described device comprises:
Be suitable for creating corresponding tables and at each object that exists in any of described a plurality of computing machines make in the described corresponding tables list item with quote corresponding device to each of described object;
Be suitable for duplicating described corresponding tables in each computing machine or allow each computer access to be present in the device at the counterpart of the single corresponding tables of whole computing machines in the server computer, the described list item of each in described corresponding tables comprises the local pointer of the local storage object that sensing quoted by the object of a computing machine; And
The device that is suitable for making corresponding non-original field of each other computing machine appointment and native object and in described table, imports the corresponding local pointer of corresponding local storage object.
7. device according to claim 6 also comprises, is suitable for using in the described table device with the corresponding global name of whole local pointer of corresponding non-original field or corresponding objects.
8. according to claim 6 or 7 described devices, also comprise, be suitable for creating in the computing machine of processing indication in described a plurality of computing machines of a part in described application program part second or the situation of the non-original field that is cited subsequently under in described a plurality of computing machines, create the device of corresponding second or the non-original field that is cited subsequently in each other computing machine.
9. device according to claim 8 also comprises:
Be suitable for utilizing a thread in a plurality of threads in each described computing machine to carry out the device of the described different piece of described application program; And
Be suitable for making indication create described second or the thread of the non-original field that is cited subsequently indicate each other computing machine in described a plurality of computing machine to create the device of second or the non-original field that is cited subsequently of described correspondence.
10. device according to claim 8 also comprises:
Be suitable for utilizing a thread in a plurality of threads in each described computing machine to carry out the device of the described different piece of described application program; And
Be suitable for making with indicate create described second or the different thread of the thread of subsequently the non-original field that is cited indicate each other computing machine in described a plurality of computing machine to create described corresponding second or the device of subsequently the non-original field that is cited.
Applications Claiming Priority (3)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
AU2005905580 | 2005-10-10 | ||
AU2005905580A AU2005905580A0 (en) | 2005-10-10 | Replication of Object Graphs | |
PCT/AU2006/001450 WO2007041765A1 (en) | 2005-10-10 | 2006-10-05 | Replication of object graphs |
Publications (2)
Publication Number | Publication Date |
---|---|
CN101283342A CN101283342A (en) | 2008-10-08 |
CN101283342B true CN101283342B (en) | 2010-09-08 |
Family
ID=37942203
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN2006800374427A Expired - Fee Related CN101283342B (en) | 2005-10-10 | 2006-10-05 | Replication of object graphs |
Country Status (4)
Country | Link |
---|---|
EP (1) | EP1934776A4 (en) |
JP (1) | JP2009512030A (en) |
CN (1) | CN101283342B (en) |
WO (1) | WO2007041765A1 (en) |
Families Citing this family (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US8859794B2 (en) | 2005-04-26 | 2014-10-14 | Battelle Memorial Institute | Use of fatty acids as feed material in polyol process |
US10394531B2 (en) * | 2017-04-29 | 2019-08-27 | Cisco Technology, Inc. | Hyper dynamic Java management extension |
Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US5787442A (en) * | 1996-07-11 | 1998-07-28 | Microsoft Corporation | Creating interobject reference links in the directory service of a store and forward replication computer network |
US5799306A (en) * | 1996-06-21 | 1998-08-25 | Oracle Corporation | Method and apparatus for facilitating data replication using object groups |
CN1330828A (en) * | 1998-12-15 | 2002-01-09 | 艾利森电话股份有限公司 | Method and arrangement in distributed system |
Family Cites Families (7)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
GB2297181B (en) * | 1993-09-24 | 1997-11-05 | Oracle Corp | Method and apparatus for data replication |
JPH0863382A (en) * | 1994-08-19 | 1996-03-08 | Fujitsu Ltd | Method and device for confirming data compatibility in distributed system |
US5829001A (en) * | 1997-01-21 | 1998-10-27 | Netiq Corporation | Database updates over a network |
JPH11272534A (en) * | 1998-01-20 | 1999-10-08 | Fujitsu Ltd | Document distribution processing method, server management method for the same and recording medium for server program |
JP2001188763A (en) * | 1999-12-28 | 2001-07-10 | Toshiba Corp | Distributed object system |
US7231554B2 (en) * | 2002-03-25 | 2007-06-12 | Availigent, Inc. | Transparent consistent active replication of multithreaded application programs |
EP2341430A1 (en) * | 2004-04-22 | 2011-07-06 | Waratek Pty Limited | Multiple computer architecture with synchronization |
-
2006
- 2006-10-05 CN CN2006800374427A patent/CN101283342B/en not_active Expired - Fee Related
- 2006-10-05 WO PCT/AU2006/001450 patent/WO2007041765A1/en active Application Filing
- 2006-10-05 EP EP06790320A patent/EP1934776A4/en not_active Withdrawn
- 2006-10-05 JP JP2008534815A patent/JP2009512030A/en active Pending
Patent Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US5799306A (en) * | 1996-06-21 | 1998-08-25 | Oracle Corporation | Method and apparatus for facilitating data replication using object groups |
US5787442A (en) * | 1996-07-11 | 1998-07-28 | Microsoft Corporation | Creating interobject reference links in the directory service of a store and forward replication computer network |
CN1330828A (en) * | 1998-12-15 | 2002-01-09 | 艾利森电话股份有限公司 | Method and arrangement in distributed system |
Also Published As
Publication number | Publication date |
---|---|
CN101283342A (en) | 2008-10-08 |
EP1934776A4 (en) | 2009-05-06 |
EP1934776A1 (en) | 2008-06-25 |
WO2007041765A1 (en) | 2007-04-19 |
JP2009512030A (en) | 2009-03-19 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
Northcutt | Mechanisms for reliable distributed real-time operating systems: The Alpha Kernel | |
Bal et al. | Distributed programming with shared data | |
CN101548268B (en) | Advanced contention detection | |
US20100106684A1 (en) | Synchronization of a conceptual model via model extensions | |
Tichy | A catalogue of general-purpose software design patterns | |
US7996627B2 (en) | Replication of object graphs | |
Ceri et al. | Chimera: A model and language for active DOOD systems | |
Rashid | Aspect-oriented database systems | |
US7581069B2 (en) | Multiple computer system with enhanced memory clean up | |
CN101283342B (en) | Replication of object graphs | |
CN101903869A (en) | Hierarchical block-identified data communication for unified handling of structured data and data compression | |
Grö\e-Rhode | Algebra transformation systems and their composition | |
Salzman et al. | Prototypes with multiple dispatch: An expressive and dynamic object model | |
CN101283343B (en) | Modified machine architecture with partial memory updating | |
CN101283344B (en) | Multiple computer system with enhanced memory clean up | |
US8122198B2 (en) | Modified machine architecture with partial memory updating | |
Chechina et al. | The design of scalable distributed erlang | |
Vree et al. | Design considerations for a parallel reduction machine | |
CN101288062B (en) | Multiple machine architecture with overhead reduction | |
Bocchi et al. | A perspective on multiagent coordination models | |
Siegel et al. | Implementing distributed Linda in standard ML | |
US8209393B2 (en) | Multiple machine architecture with overhead reduction | |
Petre et al. | A topological approach to distributed computing | |
Tajgardan et al. | Critical Review of the Bunch: A Well-Known Tool for the Recovery and Maintenance of Software System Structures | |
Pizka | Distributed virtual address space management in the modis-os |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
C06 | Publication | ||
PB01 | Publication | ||
C10 | Entry into substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
C14 | Grant of patent or utility model | ||
GR01 | Patent grant | ||
CF01 | Termination of patent right due to non-payment of annual fee |
Granted publication date: 20100908 Termination date: 20151005 |
|
EXPY | Termination of patent right or utility model |