CN1555530B - Data copying method and system by network - Google Patents

Data copying method and system by network Download PDF

Info

Publication number
CN1555530B
CN1555530B CN028179838A CN02817983A CN1555530B CN 1555530 B CN1555530 B CN 1555530B CN 028179838 A CN028179838 A CN 028179838A CN 02817983 A CN02817983 A CN 02817983A CN 1555530 B CN1555530 B CN 1555530B
Authority
CN
China
Prior art keywords
server
data
dependent
information
version number
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 - Lifetime
Application number
CN028179838A
Other languages
Chinese (zh)
Other versions
CN1555530A (en
Inventor
迪安·B·雅各布斯
雷托·克雷默
阿南萨恩·B·斯里尼瓦桑
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Oracle International Corp
Original Assignee
BEA Systems Inc
Priority date (The priority date 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 date listed.)
Filing date
Publication date
Priority claimed from US09/975,587 external-priority patent/US20030023898A1/en
Priority claimed from US09/975,590 external-priority patent/US7571215B2/en
Application filed by BEA Systems Inc filed Critical BEA Systems Inc
Publication of CN1555530A publication Critical patent/CN1555530A/en
Application granted granted Critical
Publication of CN1555530B publication Critical patent/CN1555530B/en
Anticipated expiration legal-status Critical
Expired - Lifetime legal-status Critical Current

Links

Images

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L67/00Network arrangements or protocols for supporting network services or applications
    • H04L67/01Protocols
    • H04L67/10Protocols in which an application is distributed across nodes in the network
    • H04L67/1095Replication or mirroring of data, e.g. scheduling or transport for data synchronisation between network nodes
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L67/00Network arrangements or protocols for supporting network services or applications
    • H04L67/34Network arrangements or protocols for supporting network services or applications involving the movement of software or configuration parameters 
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L69/00Network arrangements, protocols or services independent of the application payload and not provided for in the other groups of this subclass
    • H04L69/30Definitions, standards or architectural aspects of layered protocol stacks
    • H04L69/32Architecture of open systems interconnection [OSI] 7-layer type protocol stacks, e.g. the interfaces between the data link level and the physical level
    • H04L69/322Intralayer communication protocols among peer entities or protocol data unit [PDU] definitions
    • H04L69/329Intralayer communication protocols among peer entities or protocol data unit [PDU] definitions in the application layer [OSI layer 7]

Landscapes

  • Engineering & Computer Science (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Signal Processing (AREA)
  • Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
  • Computer And Data Communications (AREA)
  • Information Transfer Between Computers (AREA)

Abstract

Data can be replicated over a network using a one or two phase method. For the one phase method, a master server containing an original copy of the data sends a version number for the current state of the data to each slave on the network so that each slave can request a delta from the master. The delta that is requested contains the data necessary to update the slave to the appropriate version of the data. For the two phase method, the master server sends a packet of information to each slave. The packet of information can be committed by the slaves if each slave is able to process the commit.

Description

Method and system by the network copy data
Prioity claim
The present invention requires following right of priority: U.S. Provisional Patent Application 60/305986, and submit to July 16 calendar year 2001, " data replication protocol " by name; U.S. Provisional Patent Application 60/305978, submit to July 16 calendar year 2001, " being used for the layered architecture that data are duplicated " by name; U.S. Patent application 09/975590, submit to October 11 calendar year 2001, " data replication protocol " by name; U.S. Patent application 09/975578, submit to October 11 calendar year 2001, " being used for the layered architecture that data are duplicated " by name, incorporates above file content herein as a reference.
Copyright statement
The disclosed part of this patent file comprises material protected by copyright.The copyright holder does not oppose anyone accurate copy patent document or patent disclosure publication, and it is the same in the patent document of Patent﹠Trademark Office or record, but keeps other all copyright rights whatsoever.
Technical field
Usually, the present invention relates to be used for the system of Data transmission.More particularly, the present invention relates to be used for System and method for by the network copy data.
Background technology
The distributed processing system(DPS) that has several types.Usually, distributed processing system(DPS) comprises a plurality of treatment facilities, such as two computing machines that connect by communication media.A kind of distributed processing system(DPS) is the client/server network.The client/server network comprises at least two treatment facilities, is generally central processing unit and client.Other clients may be connected to this central server, have a plurality of servers, and perhaps this network may include only a plurality of servers that connect by communication media.
In such network environment, often wish to send application program or information to many workstations and/or other servers from central server.This usually may relate to the independently installation on each workstation, perhaps may relate to from this central server pushing new information bank respectively to each single workstation and/or server.These methods may be very consuming time, and the service efficiency of resource is not high.Set up applications has also been introduced other potential error sources respectively on each workstation or server.
Under the ideal state, the transmission of information both should be reliable to fault, also should expand, and effectively used network so that should handle.Existing solution generally can not reach one of these targets or all.A simple method is to allow master server get in touch each subordinate respectively, and by point-to-point link (connecting such as TCP/IP) Data transmission.If one or more subordinate temporarily is unreachable to, if perhaps subordinate mistake occurs when handling renewal, then this method will cause the inconsistent copy of data.Complex distributions formula agreement protocol is that another is extreme, and high-volume conversation is carried out in its requirement between subordinate, to guarantee all copy unanimities of data.
Summary of the invention
The present invention includes a kind of method, be used for from master server at least one subordinate or by the management server copy data, for example this can finish by network. in the method, determine that possibly this duplicates still be that dual stage process is finished with a stage. duplicate if finish this with a stage method, then can send the version number of data current state on the corresponding master server. this version number can be sent to each dependent server on the network, perhaps only be sent to the part dependent server. then, the dependent server of receiving this version number may ask to send increment (delta) from master server. and this increment can comprise and upgrades on this dependent server data with corresponding current version number required data.
Duplicate if finish this, then send packets of information to the subclass of each dependent server or dependent server from master server with dual stage process.Then, these dependent servers can respond to master server, represent whether they can submit this packets of information to.If at least some dependent servers can be submitted these data to, then master server can send signal to these dependent servers, represents that they should handle this submission (commit).Handling after this submits to, these dependent servers can be updated to current version number.If arbitrary dependent server can not be handled this submission, then can end this submission.
Description of drawings
Fig. 1 is the figure of domain structure according to an embodiment of the invention;
Fig. 2 is the figure of layered architecture according to an embodiment of the invention;
Fig. 3 is the figure of the domain structure of trooping according to an embodiment of the invention;
The figure that Fig. 4 handled for a stage that is used for layered architecture according to an embodiment of the invention;
Fig. 5 is the figure that is used for two phase process of layered architecture according to an embodiment of the invention;
Fig. 6 is the process flow diagram of handling in a stage according to an embodiment of the invention;
Fig. 7 is the process flow diagram of two phase process according to an embodiment of the invention;
Embodiment
The present invention supports with data or such as coming other information reproductions since master server or " keeper " server (" management server ") to for example one group of dependent server or " by managing " server.This duplicating can be taken place by any suitable network, for example Chang Gui LAN (Local Area Network) or Ethernet.At an embodiment be, master server has the raw readings of all data on the network, and this raw readings is used in any more new capital.The copy of these data can be sent to each dependent server with renewal (when it takes place).Example application be from management server to one group by management server dispense configurations information.
In a system according to the present invention, may need a kind of service such as data copy services (DRS) come from management server to suitable territory by management server dispense configurations and deployment information.Big data item can connect (for example transmission control protocol (" TCP ")) distribution by point-to-point, and this is because multicast protocol such as User Datagram Protoco (UDP) (" UDP ") do not have current control, and may make system crash.Remote method invocation (RMI) (RMI), HTTP (HTTP) or similar agreement can be used for point-to-point and connect.
Also can be data cached lastingly on local disk by management server.If there is not this buffer memory, may need unacceptable time quantum to transmit necessary data.Buffer memory ability by management server is important to seeing, and this is because this ability has improved toggle speed by reducing the log-on data amount that needs to transmit.If management server is unreachable to, also allow to start and/or restart buffer memory.Restarting may be more attracting selection, and possible situation is: management server indication startup of server.Yet, restart and may be provided at the ability that management server starts the territory when unavailable.
Shown in the domain structure 100 of Fig. 1, it can be to start and the management unit that closes that management server 102 and at least one can be constituted 106. these territories 106, territory by management server 104. in one embodiment, browser 108 or other user applications or device command management server 102 start. then, in management server 102 command field 106 all are started by management server 104, if and send suitable configuration information. a station server is out of order after having been started by management server 104, may wish that then this server restarts automatically, and no matter whether management server 102 is available. data cachedly can be used for this purpose.
The renewal of data on the management server be can be used as increment increment packing between the version.This increment may comprise configuration and/or other information that will change.May wish to upgrade configuration when the operation of this territory, this is because may not wish with system off line.In one embodiment, configuration change dynamically takes place, because these modifications are pushed by management server.Have only the modification to configuration to transmit with increment, this is because may not need all to send whole configurations at every turn, and may cause unnecessary trouble.
Agreement according to the present invention is integrated upgrades two kinds of methods of distributing, although can correspondingly use other proper methods.These distribution methods can be called a stage method and dual stage process, and the balance between consistance and the extensibility is provided.In a stage method, it may be favourable to extensibility, and renewal be obtained and be handled to each dependent server can by rhythm separately.Dependent server may be obtained renewal from master server in the different time, but can submit to after receiving data at once.Dependent server may run into mistake when handling renewal, but this can not stop other dependent servers to handle this renewal in a stage method.
In dual stage process according to the present invention, it may be favourable to consistance, and distribution may be " atom ", i.e. whole dependent servers or do not have any dependent server and successfully handle these data.Have the independently stage (for example preparing and presentation stage), this has considered the possibility of ending.In the preparatory stage, master server can determine whether that each dependent server all may adopt this renewal.If all dependent servers are all represented to accept this renewal, then new data can be sent to dependent server, to submit in presentation stage.If at least one in the dependent server can not adopt this renewal, then can end this renewal, and not have submission.In this case, can notify by management server and should return this preparation, and not make any change.This agreement according to the present invention is reliably, this be because: in arbitrary method, unreachable dependent server finally can obtain this renewal when upgrading submitting to.
Can guarantee also that according to system of the present invention temporary transient disabled server finally can receive all renewals.For example, server may temporarily be isolated from network, returns network then and need not restart.Because server is not restarted, so this server generally will not checked renewal.Can handle the server that returns to network by the following method: allow server make regular check on new renewal, perhaps allow master server check regularly whether these servers have received these renewals.
In one embodiment, master server regularly sends multicast (multicast) " heartbeat (heartbeat) " and gives dependent server.Because multicasting method may be unreliable, so dependent server may miss the heartbeat of arbitrary sequence.For example, because network partition, dependent server may temporarily break from network, and perhaps dependent server may be temporarily unavailable to network, thereby miss heartbeat.Therefore, heartbeat may comprise the messagewindow of relevant recent renewal.Relevant previous updated information like this can be used for reducing network traffic, and is as described below.
In each master server and each dependent server, can have two-layer at least: client layer and system layer (perhaps DRS layer).Client layer can be corresponding to the user of this data copy system.The DRS layer can be corresponding to the realization of this data copy system self.Each side concerned with the layer alternately as shown in Figure 2.
Shown in startup Figure 200 of Fig. 2, in the present embodiment, master server user 202 and 204 layers of dependent server users call master server DRS 206 and 208 layers of dependent server DRS respectively downwards.These call downwards and can adopt following form (for example):
registerMaster(DID,verNum,listener)
registerSlave(DID,verNum,listener)
Wherein DID derives from the identifier of known DID knowledge and points to interested object; VerNum derives from local lasting storage, as this user's current version number; Listener will be for handling the object that upwards calls (upcall) from the DRS layer.This upwards calls the method that can call this listener object.Master server can begin to send heartbeat or periodically increment and current version number then.Shown container floor 210, it can comprise the container that is suitable for the information that obtains from dependent server user 204.Possible container example comprises enterprise version Java beans, WWW interface and J2EE (Java 2 platform, enterprise edition) application program.Other application programs and/or assembly can insert container floor 210 (for example administrative client 212).The example of updating message contact is shown in the dual stage process of the stage method of Fig. 4 and Fig. 5 between user and DRS layer.
Fig. 4 has shown a basic process 400, and it can be used for according to the stage distribution method in the layered architecture of the present invention.In this course, 402 couples of master server DRS of master server client layer layer 406 calls (downcall) 404 downwards, to begin stage distribution.This calls can also can be a subclass at dependent server at all dependent servers in this system.If this calls at subclass, then master server client layer 402 can be determined the scope of this renewal, and perhaps which dependent server should receive this renewal.
Master server DRS layer begins to the 410 multicast heartbeat 408 of dependent server DRS layer, and it has comprised the current version number of data on the master server.Dependent server DRS floor 410 is used for the current version number of this dependent server from dependent server client layer 414 request.Then, dependent server client layer 414 responds 416 dependent server DRS layers 416 with dependent server version number.If this dependent server is synchronous, perhaps be current version number, then no longer do further request, up to upgrade next time.If this dependent server is asynchronous, and this dependent server is at this more in the new range, and then dependent server DRS layer 410 can be from master server DRS layer 406 request increment 420, with the current version that this dependent server is updated to data on the master server number.Master server DRS layer 406 request 422 main client layers 402 are created increment to upgrade dependent server.Master server client layer 402 sends increment 424 to master server DRS layer 406 then, master server DRS floor 406 number is forwarded to dependent server DRS floor 410 with the current version of increment 426 and master server, and dependent server DRS layer 410 sends to the dependent server user in order to submitting to increment 426.Current version number sends with increment, receives heartbeat 408 back master servers and upgrades to prevent dependent server.
Master server DRS layer 406 may continue regularly to send the multicast heartbeat that comprises version number 408 to (a plurality of) dependent server.This just makes any dependent server unavailable or that can not accept and handle increment can determine it not on the current version of data number and ask increment 420 afterwards, for example when this dependent server returns this system.
Fig. 5 has shown a basic process 500, and it can be used for according to two stage distribution methods in the layered architecture of the present invention.In this course, master server client layer 502 calls 504 downwards and enters master server DRS layer 506, to begin the distribution of two stages.Master server client layer 502 also may need to determine the scope of this renewal, and can " overtime " value be set for this renewal process.
It is that this new increment sends preparation request 512. then to dependent server client layer 514 that master server DRS layer 506 sends new increment 508. dependent server DRS layers 510 to dependent server DRS layer 510, if whether dependent server client layer 514 can handle this new increment to these dependent servers of dependent server DRS layer 510 response. dependent server DRS layer will respond 518 and be transmitted to master server DRS layer 506. this dependent server and asynchronously can not handle this request because of it, then 506 pairs of master server client layer 502 of master server DRS layer upwards call 520, thereby to generate the increment that this dependent server will be submitted to synchronously. master server client layer 502 sends synchronous increment 522 to master server DRS layer, if being transmitted to dependent server DRS layer 510. this dependent server with synchronous increment 524, master server DRS layer can handle this synchronous increment, then dependent server DRS layer 510 will send sync response 526 to master server DRS layer 506, can handle this new increment now if represent this dependent server. this dependent server can not be handled this synchronous increment, then dependent server DRS layer 510 will send suitable sync response 526. then to master server DRS layer 506, whether respond it according to dependent server and can handle this new increment, if sending heartbeat submission/abort message 528. all dependent servers to dependent server DRS layer 510, master server DRS layer 506 can both prepare this increment, then for example master server can send heartbeat and submit signal to. otherwise, master server can send the heartbeat abort signal. and heartbeat also can comprise the scope of renewal, whether should pack processing be contained in information in this heartbeat so that dependent server is known it.
Dependent server DRS layer 530 is transmitted to dependent server client layer 514 with this order, and dependent server client layer 514 is for submitting or end renewal to this new increment to then.If do not finish the preparatory stage within overtime (timeout) value set by master server client layer 502, then master server DRS layer 506 can send heartbeats from all dependent servers of trend and end 528.For example, can not get in touch in the dependent server at least one to determine whether this dependent server can be handled when submitting to, and this just may take place when master server DRS layer 506.Can timeout value be set like this, make the one section special time of master server DRS layer 506 before ending renewal attempt this dependent server of contact.
For the renewal in the stage method, these heartbeats may cause the increment that each dependent server request begins from the data current version of this dependent server.This process shows in the process flow diagram of Fig. 6.In this basic process 600, it may use or not use according to layered architecture of the present invention, sends the version number 602 of current data on the master server to dependent server from master server.Dependent server determines oneself whether to be updated to this current version number 604.If dependent server is not on current version, then it will ask to send increment to upgrade this dependent server 606 from master server.When increment is sent to dependent server, this dependent server will be handled this increment so that the dependent server Data Update is arrived current version 608.Then, dependent server is updated to single preceding version number 610 with the version number of oneself.
For the renewal in the dual stage process, master server can start from the preparatory stage, and master server initiatively sends the urgent increment that connects a version to each dependent server in this stage.This process shows in the process flow diagram of Fig. 7.In basic process 700, it may use or not use according to layered architecture of the present invention, sends packets of information 702 from master server to (a plurality of) dependent server.Each receives the dependent server of this bag is determined oneself whether can handle this bag and is updated to this current version 704.Each receives that the dependent server of this bag responds to master server, indicates this dependent server whether can handle this bag.If all dependent servers (having sent increment to them) confirm successfully to have handled increment in certain timeout period, then master server may determine to submit to this renewal.Otherwise master server may determine to end this renewal.In case made this decision, then master server sends message to (a plurality of) dependent server, and this renewal 708 should be submitted or end to expression to.If this decision is to submit to, then each server process submits 710 to.Can further use heartbeat to represent to submit to or end and whether take place, miss this order to prevent one of dependent server.
Can dispose dependent server and data cachedly start immediately and/or restart, and at first not obtain current version number from master server to use.As mentioned above, a kind of agreement according to the present invention allows dependent server data cached lastingly on local disk.This buffer memory has reduced the required time of system start-up, and has strengthened extensibility by reducing the data volume that needs to transmit.By allowing dependent server can to start and/or restart when master server is unreachable to, this agreement can strengthen reliability, and can further allow renewal is packaged as increment between the version.If there is no data in buffer, then dependent server can be waited for master server or can own drop-down data.If dependent server has buffer memory, then it still may not wish to lose synchronously.If dependent server is known wait, then can reduce start-up time.
This agreement can be bilateral, promptly according to environment, master server or dependent server can begin to transmit data. for example, in the territory between the starting period, dependent server can be from the drop-down increment of master server. when dependent server is determined the own version that will upgrade with this increment not simultaneously, this dependent server can be asked the increment from its current version to current system version. during stage distribution, dependent server also can drop-down increment. herein, this system can read heartbeat, determine oneself to have missed renewal, and ask suitable increment.
When needs when exception is recovered, dependent server also can drop-down increment.For example, lose when synchronous situation beyond just may existing when the assembly of this system.When the drop-down increment of dependent server, this increment can be between any version of data.In other words, this increment can be between the current version of the current version of this dependent server and this system (or territory), and no matter have how many generations between these versions.In this embodiment, the function of the availability of heartbeat and reception increment can provide the synchronous of this system.
Except dependent server can drop-down increment, master server also can push increment to dependent server during the distribution of two stages.In one embodiment, these increments are always between the continuous version of data.This two stages distribution method can minimize inconsistent possibility between the parties concerned.As possible, the dependent server user just can handle preparation, and can not disclose this renewal or this renewal can't be return to client.This can comprise such as checking the server task of anti-collision.If any one dependent server sends error signal,, then this renewal unification can be return for example by sending " disk is full " or " inconsistent configuration " information.
Yet, still might occur inconsistent.For example, handling when submitting to and may make mistakes, reason is such as not opening socket.Server also can be submitted to and open the renewal in the different time.Because data can not just arrive the server that each is managed at one time, so have some fluctuation effects.Use multicast can support little time window, to minimize this fluctuation effect.In one embodiment, if missed submission, no matter be to have missed this signal, or the master server collapse or the like, the dependent server of then having prepared can be ended,
The type method as possible of multicast can make dependent server miss the submission signal.If master server collapses in presentation stage midway, then may there be daily record, perhaps there is not the method for recovering.They need to submit to may not have the remaining dependent server of method order for master server.In case end, if version is not correctly return, then some dependent servers may stop submitting to this data.In one embodiment, the residue dependent server can use stage distribution to obtain to upgrade.For example, this can occur in by management server in response to the heartbeat that is received from management server during drop-down increment.This method can keep the system expandability, and if for fear of any submission or version mistake, system constraint (tie down) distribution then may lose extensibility.
Each data item that system managed can be configured to have unique long-life relam identifier (DID), and this relam identifier is known on entire domain.Data item can be large complicated object, comprises many assemblies, and each assembly is all relevant with a certain subclass of server in this territory.Because these objects can be conforming units, so wish to have several large objects, rather than a plurality of small objects, as example, an independent data item or object just can representative system all configuration informations, comprise code file such as config.xml file or application program EAR (application-EAR) file.Give locking assembly in the data item, for example, can be relevant for the number of threads of individual server, relevant for family by deployment services, perhaps relevant for the safety certificate of entire domain.Increment between two versions can comprise the new value of all or some these assemblies.For example, these assemblies can comprise the enterprise version Java Beans that is deployed on the member of territory.Increment can include only the change to the subclass of these Java Beans.
" scope " of increment can refer to have the set of the Servers-all of associated component in this increment.May the intercept configuration change according to management server of the present invention, to determine the scope of this increment.DRS system on the master server may need to know this scope, to send the data to suitable dependent server.When master server may only need subclass of contact server in each the renewal, sending each config update to each server may be waste to time and resource.
In order to control distribution, the master server user can provide the scope of each renewal with the increment between the continuous version.Scope can be expressed as one group of title of pointing to server and/or family, and it can take from the same NameSpace in the territory.In one embodiment, DRS user use parser modules with name map to the address.Praenomen claims to be mapped to the set of the address of the Servers-all in this family.These addresses may be relative, for example with respect to virtual machine.As known in the art and use, fire wall in the middle of this resolver can determine whether to exist, and according to this server whether " in the fire wall the inside " return " the inside " or the address of " outside ".Management server or other servers can be used the corresponding resolver of configuration data initialization.
With unique long-life identifier (DID) of each data item of being managed, each version of data item also can have long-life version number.Each version number can be unique to upgrading attempt, so that server can be because of obscuring of right version upgraded mistakenly or do not upgrade.Similarly, the version number of suspended two stages distribution can not be multiplexing.As long as given version number, master server just can produce two increments between any version.If master server can not produce such increment, then can provide the complete copy of data or application program.
May wish that this data copy services is general as much as possible.Therefore several supposition may be arranged to the user of this system.For example, this system may depend on three main supposition:
This system may comprise the method that increases version number.
This system may be stored in version number on master server and the dependent server lastingly.
The method that this system may comprise comparison version number and determine to equate.
Satisfying these supposition can realize by the DRS interface of user class, for example " VersionNumber " interface.Such interface makes the user that abstract specific concept of version number and realization can be provided, and guarantees that simultaneously this system can visit version number's attribute.For example, in Java the VersionNumber interface can below realize:
package?weblogic.drs;
public?interface?VersionNumber?extends?Serializable{
VersionNumber?increment();
void?persist()throws?Exception;
boolean?equals(VersionNumber?anotherVN);
boolean?strictlyGreaterThan(VersionNumber?anotherVN);
}
The realization of this abstract simplification that the user can provide to system can be big positive integer.This realization can guarantee that also this system can be sent to dependent server by network from master server with increment information, and this is called as " but serializing " in the art.
If use above-mentioned abstractly, it may be useful then carrying out abstract from the detailed content of increment conceptive on user class.System may not need to know the increment information structure, and in fact system not can determine this structure.But the realization of increment also may be serializing, and this has just guaranteed that system can be sent to dependent server with the increment version information from master server by network.
May wish the transcript of master server with suitable DID and version number's each data item of persistent storage. before the distribution of two stages of beginning, master server can persistent storage proposes new version number, to guarantee just in case master server when being out of order, this version number can not be re-used. and dependent server can be with the nearest copy of suitable DID and version number's each contiguous items of persistent storage. and dependent server also can be configured to carry out necessary buffer memory, so that this dependent server may must all be obtained data or agreement each time. this may all not wish all situations, but contingent some situation of handling can be provided.
System according to the present invention may further include concurrent restriction.For example, during the two stages distribution of upgrading,, may not allow some operation for to the given DID on the localization.These operations may comprise the renewal of one or two stages, for example on same DID, scope member identity are modified on the non-NULL intersection range.
In at least one embodiment, regular multicast heartbeat of dependent server DRS or the packets of information on master server each server in the territory.For each DID, heartbeat can comprise: the messagewindow of relevant (a plurality of) recent renewal comprises each upgraded edition this shop; With respect to the scope of the increment of previous version, and whether submit or end this renewal to.The information that also may comprise relevant current version.Can use relevant information than early version, minimizing the portfolio of returning master server, and be not to be used for correctness or fresh and alive property yet.
Comprise in increment under the situation than early version information that dependent server can submit to own that desired when preparing part to upgrade, and the increment that please look for novelty is to handle nearer renewal.At least for the heartbeat of some fixing configurable number, can comprise the information of relevant given version, may make window increase to unacceptable size although upgrade fast.In another embodiment, all received renewal, then can abandon relevant information than early version in case master server is determined all dependent servers.
The heartbeat of multicast can be with respect to a plurality of attributes.These heartbeats can be asynchronous or " unidirectional ".As a result, to the time of dependent server response heartbeat, master server may be upgraded to new state.In addition, be not that all dependent server can be in same time response just.So, master server can suppose that dependent server do not know its state, and can comprise the state that increment will upgrade.These heartbeats also can be insecure, because dependent server may miss the heartbeat of arbitrary sequence.This can cause again comprising in heartbeat than early version information.In one embodiment, dependent server receives heartbeat with the order that heartbeat sends.For example, dependent server can not be regulated version seven, has submitted version six to up to it.Server can wait for up to it and receive six, and perhaps it can abandon six and submit seven to simply.This order can eliminate because version rollback and the possibility of confusion reigned.
As mentioned above, family (cluster) also may be used in the territory, as shown in Figure 3 (multicast heartbeat slip attribute).The general networking topology of this embodiment is the set of multicast island, and these multicast islands are connected to the hub island that comprises master server.Multicast service can be transmitted from the outside point-to-point of hub ground.The little increment that may distribute in a stage method can directly send by multicast.In other cases, can on hub spoke formula multicast structure, add point-to-point forwarding scheme, to reduce the bottleneck at master server place.
In the territory of Fig. 3 Figure 30 0, one or more can be combined in the multicast island by management server 302, be also referred to as family 304.The management server 306 in territory 308 is as the master server on hub island 312, and is the entrance to this territory, for example by browser 310.One in the management server 306 contact families by management server, is also referred to as family's master server.In this embodiment, management server can be to each family's master server multicast increment or message, and each family's master server is transmitted this increment or message by multicast other in this family by management server then.Family's master server can not have any configuration information, but receives this information from management server.Family's master server roll off the production line or the situation of collapsing under, the another one in this territory can be replaced the master server as family by management server.In this case, a kind of mechanism server that prevents to roll off the production line can be set and return this family as the second family master server.This can handle by family or system infrastructure.
Also has territory more than one.In this case, nested domain or " composite field " can be arranged.By contacting directly each territory master server, information can be distributed to the territory master server, this is because each territory master server can have the function of information being shifted onto other territory master servers.Yet, may not wish to carry out multicast to the territory master server.
In stage distribution, the territory master server can call the distribution of upgrading to trigger downwards. and such calling downwards can be adopted following form:
startOnePhase(DID,newVerNum,scope)
Wherein DID is the data item that is updated or the ID of object, and newVerNum is the new version number of this object, and scope is for using the scope of this renewal.Master server DRS can respond in the following manner: be upgraded to new version number, write disk with new number, and comprise this information in heartbeat subsequently.
When dependent server DRS received heartbeat, by analyzing the messagewindow relevant with recent renewal, it is drop-down that it can determine whether oneself needs.If the current version of dependent server is number within this window, and this dependent server is within the scope of any submitted renewal subsequently, then it can be upgraded to nearest version number simply, and not drop-down any data.This process can comprise that dependent server is up-to-date ordinary situation.Otherwise dependent server DRS can carry out point-to-point and call, and requires the increment from master server DRS, and is perhaps another kind of like request, its form may for:
createDelta(DID,curVerNum)
Wherein curVerNum is current number of dependent server, and this will be sent back to territory master server or family's master server.In order to handle this request, master server DRS can upwards call, for example create (curVerNum).This upwards calls and can be undertaken by suitable audiomonitor, obtaining increment and new version number, and these is turned back to dependent server DRS.Should comprise new version number, this is because version number may change after dependent server is received heartbeat for the last time.Increment can only be equivalent to the renewal of submission recently.Any two stages of carrying out upgrade and can handle by mechanism independently.Then, dependent server DRS can upwards call to the dependent server user, and for example (newVerNum delta), is upgraded to new version number to commitOnePhase then.
In order to trigger the distribution of two stages, the master server user can call downwards, for example startTwoPhase (DID, oldVerNum, newVerNum, delta, scope, timeout), wherein DID is data item or an object to be updated, and oldVerNum is previous version number, newVerNum is new version number (apart from one step of previous version number), delta is the increment between the continuous version to be pushed, the scope of scope for upgrading, and timeout is the maximum life span of this task.Because " preparation " is synchronous with " submission ", so may wish for this task specific time restriction to be set.The server on the different editions number can comprise previous versions number, so that can not adopt this increment.
In one embodiment, the Servers-all in the master server DRS traversal scope, and each dependent server DRS is carried out point-to-point call, for example prepareTwoPhase (DID, oldVerNum, newVerNum, delta, timeout).Then, dependent server is obtained suitable timeout value.When increment is big, for example comprise the increment of binary code, can use peer-peer protocol.Smaller renewal (for example, the less important configuration that may include only such as the modification of cache size is changed) can use a stage method to carry out.Can use this method to be because: the big change that increases as application program arrives server in the mode of unanimity may be more important.Replacedly, master server may be sought help from family's master server (if present), and allows family's master server call.Allow master server act on behalf of family's master server and can improve the system expandability.
In one embodiment, at every turn to call one that produces in four responses of dependent server or family's master server, for example " be unreachable to ", " asynchronous ", " unconfirmed " and " affirmation ", they are handled by master server DRS.If response is " being unreachable to ", then current server can not reach, and the retry of may lining up.If response is for " asynchronous ", this server retry of may lining up then.Simultaneously, this server will attempt to make oneself synchronously by using from the drop-down of master server, thereby this server can receive increment when retry.If response is then ended this task for " unconfirmed ".When this server can not be accepted this task, may provide this response.If response is " affirmation ", then hold fire.
In order to prepare dependent server, master server DRS can call the method such as prepareTwoPhase. when receiving " preparation " request from master server DRS, if dependent server DRS can check the current version of oneself earlier and number whether equal early version to be updated number. not etc., then this dependent server can return the response of " asynchronous ". then, this dependent server can be from the drop-down increment of master server DRS, just look like that it has received that just heartbeat is the same. final, master server DRS can retry prepareTwoPhase. with allow master server push increment to compare, this method can be simpler, but need the careful configuration of master server. may need the configuration of master server, because the wait-for-response time, the oversize task that may make was overtime. in addition, the stand-by period deficiency may cause obtaining other requests of " asynchronous " response. and may be better when the drop-down request of finishing from dependent server, the triggering retry.
If dependent server is synchronous, then in dependent server one side, this dependent server can go deep into this server ground as far as possible to client layer and upwards call, for example prepareTwoPhase (newVerNum, delta).Then, the result's " affirmation " or " unconfirmed " that return are delivered to master server DRS.If response is " affirmation ", then dependent server can enter special standby condition.If response is " unconfirmed ", then dependent server can wash out all records of this renewal.If will submit this renewal to for a certain reason later on, then this dependent server can be obtained this renewal with stage distribution, and this may fail then.
If master server DRS has obtained " affirmation " from each server in the overtime phase, then master server DRS can submit to upwards and call, twoPhaseSucceeded (newVerNum) for example, and be upgraded to new version number.If master server DRS receives " unconfirmed " from arbitrary server, if the perhaps overtime phase is expired, then master server DRS can end upwards to call, and for example (newVerNum reason), and does not change version number to twoPhaseFailed.Herein, reason is exception, comprises the accumulation of all " unconfirmed " responses.In both cases, in heartbeat subsequently, all may comprise termination/submission information.
Go up at any time, master server DRS can cancel downwards and calling, for example cancelTwoPhase (newVerNum).Then, master server DRS can handle band in the following manner and call: if this task is not carried out the exception of then dishing out, perhaps equally action of it feels like generation termination.
If the dependent server DRS that has prepared obtains the submitted heartbeat of expression redaction, then dependent server DRS can upwards call, commitTwophase (newVerNum) for example, and be upgraded to new version number.If the dependent server DRS that has prepared obtains the suspended heartbeat of expression redaction, then dependent server DRS can end this task.Surpassed redaction, dependent server and obtain the new prepareTwoPhase on the same data item has been called or dependent server during to the overtime heartbeat of task when dependent server obtains window wherein, dependent server also can aborting task.Under these circumstances, dependent server can upwards call, abortTwophase (newVerNum) for example, and do not change version number.After dependent server was prepared, but before dependent server is submitted under the out of order situation of master server, this was a kind of correct method of handling of guaranteeing for (for example).
The foregoing description that the embodiment of the invention is provided is for the purpose of showing Yu describe.This be not limit neither be used for limiting the invention to disclosed precise forms.To those skilled in the art, obviously can make many modifications and change.The purpose of selecting and describing these embodiment is to explain principle of the present invention and practical use better, makes those skilled in the art can understand the various modifications of all embodiment of the present invention and the special-purpose that is suitable for being considered thus.Scope of the present invention is defined by claim and equivalent thereof.

Claims (28)

1. one kind is used for by network from the method for master server to the dependent server copy data, and this method may further comprise the steps:
Send version number from master server to dependent server, this version number is relevant for the current state that is stored in the data on this master server;
Make this dependent server can determine whether this dependent server has been updated with reaction corresponding to the current state of transmission from these data of the version number of this master server; And
If in the not corresponding version number that is sent by this master server of this dependent server, then ask to send increment from master server to dependent server, this increment comprises the required information of this dependent server of upgrading.
2. the method for claim 1 further comprises:
Send this increment from master server to dependent server.
3. the method for claim 1 further comprises:
Submit this increment to dependent server.
4. the method for claim 1 further comprises:
After submitting this increment to, upgrade the version number of dependent server.
5. the method for claim 1 further comprises:
Periodically send version number from master server to dependent server.
6. the method for claim 1 further comprises:
Send version number to dependent server and acknowledge receipt of this version number up to this dependent server.
7. one kind is used for the method for the network copy data by comprising master server and at least one dependent server, and this method may further comprise the steps:
Send packets of information from master server each dependent server on network, this packets of information is relevant for the change that is stored in the data on this master server, and comprise the current version number that is used for this data current state, this packets of information is further relevant for the previous change of these data and be used for each previous version number of changing;
Make each dependent server can both determine whether this dependent server has been updated with this current version number of correspondence;
If this dependent server does not miss previous change, then allow each dependent server to submit this packets of information to; And
Before this dependent server is submitted this packets of information to, allow each dependent server request of having missed previous change to send previous change to this dependent server from master server.
8. one kind is used for the method for the network copy data by comprising master server and at least one dependent server, and this method may further comprise the steps:
Send packets of information from master server each dependent server on network, this packets of information is relevant for the change that is stored in the data on this master server, and comprise version number formerly that is used for this data states of previous states and the new version number that is used for this data new state, this packets of information is further relevant for the previous change of these data and the version number that is used for each previous change;
Make each dependent server can both determine whether corresponding this version number formerly that is included in this bag of data on this dependent server;
If this data correspondence on this dependent server is included in this version number formerly in this bag, then allow each dependent server to submit this packets of information to, this submits to also version updating with this dependent server to this new version number; And
Before this dependent server is submitted this packets of information to, allow each the dependent server request of version number formerly not to be sent increment from master server, the version updating that this increment comprises this dependent server arrives this required packets of information of version number formerly.
9. one kind is used for the method for the network copy data by comprising master server and at least one dependent server, and this method may further comprise the steps:
Send packets of information from master server each dependent server on network, this packets of information is relevant for the change that is stored in the data on this master server, and the version number that comprises the version number that is used for this data states of previous states and be used for this data new state, this packets of information is further relevant for the previous change of these data and the version number that is used for each previous change;
Make each dependent server can both determine whether corresponding this version number formerly that is included in this bag of data on this dependent server;
If this data correspondence on this dependent server is included in this version number formerly in this bag, then allow each dependent server to submit this packets of information to, this submits to also version updating with this dependent server to this new version number; And
Allow each the dependent server request of version number formerly not to be sent increment from master server, this increment comprises this dependent server is updated to the required packets of information of this new version number.
10. one kind is used for by network from the method for master server at least one dependent server copy data, and this method may further comprise the steps:
Send packets of information from master server to dependent server, this packets of information is relevant for the change that is stored in the data on this master server, and comprises the version number of this data current state;
Receive the packets of information of giving dependent server;
Make this dependent server can determine whether be updated the version number that is included in correspondence in this bag at this dependent server, and further determine to upgrade if desired with correspondence and be included in version number in this bag, whether this dependent server can handle this packets of information;
Send signal from this dependent server to master server, whether this dependent server of this signal indication needs to be updated, and whether this dependent server can handle this renewal; And
Send response signal from master server to dependent server, whether this dependent server of this signal indication should be submitted to the information that is included in this bag; And
Should be like this if this response signal is represented, then submit this packets of information to this dependent server.
11. method as claimed in claim 10 further comprises:
As long as any one can not handle this submission in this at least one dependent server, just end this data.
12. method as claimed in claim 10 further comprises:
Submit this data to those dependent servers that can handle this submission.
13. method as claimed in claim 10 further comprises:
Any one can not handle these data of dependent server multicast of this submission in this at least one dependent server.
14. method as claimed in claim 10 further comprises:
Any one can not handle this new version number of dependent server heartbeat of this submission in this at least one dependent server.
15. method as claimed in claim 10 further comprises:
Request sends increment to the dependent server that can not handle this submission.
16. a method that is used for by the network copy data, this method may further comprise the steps:
(a) determine that this duplicates still be that dual stage process is finished with a stage;
(b) send the information of duplicating by the following method with a stage method:
Send the version number of this data current state to dependent server from master server;
If these data on this dependent server to should version number, then ask to send increment from master server to dependent server; And
(c) send the information of duplicating by the following method with dual stage process:
Send packets of information from master server to dependent server;
Determine whether this dependent server can handle this packets of information; And
If this dependent server can be handled this packets of information, then submit this packets of information to this dependent server.
17. one kind is used on network from the method for main frame to a plurality of subordinate copy datas, this method may further comprise the steps:
(a) determine that this duplicates still be that dual stage process is finished with a stage;
(b) send the information of duplicating by the following method with a stage method:
Send the version number of this data current state to each subordinate from main frame;
Request sends increment from main frame to the subordinate that each comprises not data that should version number;
(c) send the information of duplicating by the following method with dual stage process:
Send packets of information from main frame to subordinate; And
If each in these a plurality of subordinates can both be handled this packets of information, then submit this packets of information to this subordinate.
18. one kind be used for using one and dual stage process on network from the method for main frame to a plurality of subordinate copy datas, this method may further comprise the steps:
(a) send the information of duplicating by the following method: send the version number of this data current state from main frame to each subordinate, thereby each subordinate can be asked from main frame to this subordinate transmission increment to upgrade these data on this subordinate with a stage method; And
(b) send the information of duplicating with dual stage process by the following method: send packets of information from main frame to each subordinate, if each subordinate can both be submitted this packets of information to, then each subordinate is submitted this packets of information to.
19. a system that is used for by the network copy data comprises:
A. the master server that comprises this data original copy, described master server comprises:
I. the master server client layer is used for beginning the data reproduction process by calling start method, and this master server client layer further is used for sending the information relevant for this data original copy;
Ii. master server service layer, comprise start method, and be used for receiving from the master server client layer call and relevant for the information of this data original copy, this master server service layer further is used for producing and sending the data copy package, and this bag comprises at least some information relevant for this data original copy;
B. dependent server is used for storing the copy from the data of this master server, and this dependent server comprises:
I. dependent server service layer is used for receiving the data copy package from master server service layer, and handles this data copy package, and this dependent server service layer further is used for sending the information relevant for this data copy package;
Ii. the dependent server client layer is used for receiving the information relevant for this data copy package from dependent server service layer, and this dependent server client layer further is used for being stored in the information in this data copy package.
20. system as claimed in claim 19, wherein said master server client layer is used for sending information relevant for this data original copy with the form of increment, and this delta package contains relevant for the current state of this data original copy and the information of the change between the original state.
21. system as claimed in claim 19, wherein said master server client layer is used for returning message, and this message is represented that the change to this data original copy should not be on the dependent server and duplicated.
22. system as claimed in claim 19, wherein said master server client layer is used for for this duplicates timeout value being set.
23. system as claimed in claim 19, wherein said master server client layer is used for producing the increment between the states of previous states of the current state of this data original copy and this data original copy.
24. system as claimed in claim 19, wherein said master server client layer is used for producing the increment between the original state of the current state of this data original copy and this data original copy.
25. system as claimed in claim 19, wherein said master server client layer is used for generating unique version number into each state of this data original copy.
26. system as claimed in claim 19, wherein said master server service layer are used for this data copy package of multicast.
27. system as claimed in claim 19, wherein said master server service layer are used for this data copy package of heartbeat.
28. system as claimed in claim 19, wherein said master server service layer is used for comprising version number in this data copy package.
CN028179838A 2001-07-16 2002-07-15 Data copying method and system by network Expired - Lifetime CN1555530B (en)

Applications Claiming Priority (9)

Application Number Priority Date Filing Date Title
US30597801P 2001-07-16 2001-07-16
US30598601P 2001-07-16 2001-07-16
US60/305,986 2001-07-16
US60/305,978 2001-07-16
US09/975,587 US20030023898A1 (en) 2001-07-16 2001-10-11 Layered architecture for data replication
US09/975,587 2001-10-11
US09/975,590 US7571215B2 (en) 2001-07-16 2001-10-11 Data replication protocol
US09/975,590 2001-10-11
PCT/US2002/022366 WO2003009092A2 (en) 2001-07-16 2002-07-15 Data replication protocol

Publications (2)

Publication Number Publication Date
CN1555530A CN1555530A (en) 2004-12-15
CN1555530B true CN1555530B (en) 2010-05-05

Family

ID=27501896

Family Applications (1)

Application Number Title Priority Date Filing Date
CN028179838A Expired - Lifetime CN1555530B (en) 2001-07-16 2002-07-15 Data copying method and system by network

Country Status (5)

Country Link
EP (1) EP1415235B1 (en)
JP (1) JP2005526298A (en)
CN (1) CN1555530B (en)
AU (1) AU2002355086B2 (en)
WO (1) WO2003009092A2 (en)

Families Citing this family (11)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20030093440A1 (en) * 2001-11-06 2003-05-15 John Merrells Replica update vectors
CN100337236C (en) * 2003-08-26 2007-09-12 华为技术有限公司 Method for making data in front and rear databases uniform
US7469274B1 (en) 2003-12-19 2008-12-23 Symantec Operating Corporation System and method for identifying third party copy devices
GB0616022D0 (en) * 2006-08-14 2006-09-20 Roke Manor Research Management system
CN101388759B (en) * 2007-09-10 2011-07-13 中兴通讯股份有限公司 Method and system for implementing from asynchronous copy to synchronous copy by data
JP5213108B2 (en) * 2008-03-18 2013-06-19 株式会社日立製作所 Data replication method and data replication system
JP4981951B2 (en) * 2010-06-02 2012-07-25 株式会社トライテック Distributed computing system
WO2012140701A1 (en) * 2011-04-15 2012-10-18 Hitachi, Ltd. File sharing system and file sharing method
JP5711772B2 (en) * 2013-01-29 2015-05-07 日本電信電話株式会社 Cluster system
CN103560906B (en) * 2013-10-22 2017-01-25 珠海多玩信息技术有限公司 Data replication method and device
WO2015186219A1 (en) * 2014-06-05 2015-12-10 株式会社日立製作所 Distributed processing system and operation method therefor

Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5920867A (en) * 1996-12-06 1999-07-06 International Business Machines Corporation Data management system having data management configuration
US6088694A (en) * 1998-03-31 2000-07-11 International Business Machines Corporation Continuous availability and efficient backup for externally referenced objects

Family Cites Families (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5319773A (en) * 1990-05-16 1994-06-07 International Business Machines Corporation Asynchronous resynchronization of a commit procedure
US5590181A (en) * 1993-10-15 1996-12-31 Link Usa Corporation Call-processing system and method
US5765171A (en) * 1995-12-29 1998-06-09 Lucent Technologies Inc. Maintaining consistency of database replicas
US5987376A (en) 1997-07-16 1999-11-16 Microsoft Corporation System and method for the distribution and synchronization of data and state information between clients in a distributed processing system
CA2212477C (en) * 1997-08-01 2001-02-27 Ibm Canada Limited-Ibm Canada Limitee Method and apparatus for maintaining directory services for a video transmission network
US6233589B1 (en) * 1998-07-31 2001-05-15 Novell, Inc. Method and system for reflecting differences between two files

Patent Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5920867A (en) * 1996-12-06 1999-07-06 International Business Machines Corporation Data management system having data management configuration
US6088694A (en) * 1998-03-31 2000-07-11 International Business Machines Corporation Continuous availability and efficient backup for externally referenced objects

Also Published As

Publication number Publication date
WO2003009092A3 (en) 2003-04-10
EP1415235A4 (en) 2012-07-25
CN1555530A (en) 2004-12-15
EP1415235B1 (en) 2018-10-31
WO2003009092A2 (en) 2003-01-30
AU2002355086A2 (en) 2003-03-03
AU2002355086B2 (en) 2008-10-16
JP2005526298A (en) 2005-09-02
EP1415235A2 (en) 2004-05-06

Similar Documents

Publication Publication Date Title
US6457053B1 (en) Multi-master unique identifier allocation
US7020796B1 (en) High availability communication system
US7571215B2 (en) Data replication protocol
US20030023898A1 (en) Layered architecture for data replication
US5970488A (en) Real-time distributed database system and method
US6324571B1 (en) Floating single master operation
US7089318B2 (en) Multi-protocol communication subsystem controller
US6275843B1 (en) Method and apparatus for processing multiple service requests within a global transaction by a single server application program instance
JP3915797B2 (en) Framework having plug and play function and reconfiguration method thereof
US6845393B1 (en) Lookup discovery service in a distributed system having a plurality of lookup services each with associated characteristics and services
US7512668B2 (en) Message-oriented middleware server instance failover
KR100798504B1 (en) System and method for concentration and load-balancing of requests
CN1555530B (en) Data copying method and system by network
AU2002357731A1 (en) System and methods for asychronous synchronization
WO2002052413A2 (en) Scaleable message system
WO1996007257A2 (en) Scalable distributed computing environment
WO1997025673A9 (en) Replicated resource management system for a distributed application maintaining a relativistic view of state
WO2003094022A1 (en) High availability for event forwarding
US20030220967A1 (en) High availability application view deployment
US20040221007A1 (en) Smart control points
US20030154202A1 (en) Distributed data system with process co-location and out -of -process communication
JP2001265576A (en) Program replacing system, distributed processing system and program replacing method
AU2002355086A1 (en) Data replication protocol
US7356529B1 (en) Mechanism for facilitating subscription in a publish/subscribe communication system
KR100579130B1 (en) Method for duplicate routing entry information for router duplication

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
ASS Succession or assignment of patent right

Owner name: ORACLE INT CORP

Free format text: FORMER OWNER: BEA SYSTEMS CORP.

Effective date: 20110418

C41 Transfer of patent application or patent right or utility model
TR01 Transfer of patent right

Effective date of registration: 20110418

Address after: California, USA

Patentee after: ORACLE INTERNATIONAL Corp.

Address before: California, USA

Patentee before: BEA SYSTEMS, Inc.

CX01 Expiry of patent term

Granted publication date: 20100505

CX01 Expiry of patent term