IP Library Patent Application 12044775
Patent Application
App. No. 12/044,775

DISTRIBUTED SERVER ARCHITECTURE

Loading inventors, assignments & file history…
Monitor This Case
Get email alerts when status or documents change.
Order Certified Copies
Most orders are placed with the USPTO same day — all within 24 business hours.
Order via The Patent Place →
Pre-filled with this patent's details
Quick Facts
Patent No.
US None
App. No.
12/044,775
Abstract

A method and apparatus for synchronizing network element state when a network connection between a plurality of servers is restored after a network failure includes a plurality of objects that exist within the network. Each object exists in a plurality of different versions, in which each said different object version results from modifications to an object made by different servers during the network failure when the servers are unable to communicate with each other but otherwise continue to function. Each object comprises a vector including a separate version number for each server, in which each server increments its version number in the vector when it modifies the object. An automatic conflict resolution mechanism provides, at each server, a most up to date view of all objects across all of said plurality of servers upon restoration of the network connection between said plurality of servers after said network failure. The conflict resolution mechanism reconciles the existence of said plurality of different versions of an object to determine which object version should take precedence over other object versions. Conflict resolution is performed when there are multiple versions of a same object at a server. The conflict resolution mechanism also comprises at least one tie breaking rule that is applied to decide which servers take precedence over other servers when determining which object version should take precedence over other object versions.

Claims (70)

1 . An apparatus for synchronizing network element state when a network connection is restored between a plurality of servers after a network failure, comprising:

a plurality of objects, each object existing in a plurality of different versions, wherein each said different object version results from modifications to an object made by different servers during said network failure when said servers are unable to communicate with each other but otherwise continue to function;

each said object comprising a vector including a separate version number for each server, wherein each server increments its version number in said vector when it modifies said object;

an automatic conflict resolution mechanism for providing, at each server, a most up to date view of all objects across all of said plurality of servers upon restoration of said network connection between said plurality of servers after said network failure, said conflict resolution mechanism reconciling the existence of said plurality of different versions of an object to determine which object version should take precedence over other object versions, wherein conflict resolution is performed when there are multiple versions of a same object at a server, said conflict resolution mechanism further comprising at least one tie breaking rule that is applied to decide which servers take precedence over other servers when determining which object version should take precedence over other object versions.

2 . The apparatus of claim 1 , sources of said objects comprising any of the following network elements:

clients, relays, servers, and consoles.

3 . The apparatus of claim 1 , at least one of said servers comprising any of:

a policy collection and a state collection.

4 . The apparatus of claim 1 , said automatic conflict resolution mechanism, further comprising:

a mechanism that stamps every object with information about the object's origin.

5 . The apparatus of claim 4 , said information comprising:

what server said object originated from.

6 . The apparatus of claim 4 , said information comprising:

what version the object is.

7 . The apparatus of claim 1 , wherein an object can be modified over time and a new version can be time stamped into said object.

8 . The apparatus of claim 1 , wherein said object's total version number comprises:

both of the server that modified the object and the version number of the object itself.

9 . The apparatus of claim 1 , said automatic conflict resolution mechanism comprising:

means for maintaining an object version number, wherein when any server replaces an object or updates an object, it changes the object's version number for that server.

10 . The apparatus of claim 1 said automatic conflict resolution mechanism comprising:

a vector of version number per server, wherein a first element of the vector is associated with a first server number, and each subsequent element of the vector is associated with corresponding subsequent server numbers.

11 . The apparatus of claim 1 , each said server comprising:

a processor programmed to execute instructions by which, whenever said server updates an object, said server takes an existing version of the object that it has and the server finds its position in an array of vectors, said server then increments the object's version number in the vector, said server then applies a rule for comparison that allows the server to decide which version of the object takes precedence.

12 . The apparatus of claim 1 , wherein the object version having a lower number server takes precedence.

13 . The apparatus of claim 1 , further comprising:

a plurality of vector versions of an object, where each server has a position in said vector, wherein when an object is changed, each server takes a previous version of the object, increments the version numbers for that particular server's portion of the vector, and puts the vector into a new object, wherein the new object is then propagated into the network, and wherein if a conflict is encountered, version number resolution tie breaking rules are applied to decide which version of said object should be used by each server.

14 . The apparatus of claim 1 , further comprising:

means for serializing each said object in a signed directory listing comprising a directory of all objects and their version number, wherein a signed directory listing is created at each server, wherein if said conflict resolution mechanism indicates that a server has a definitive list, it publishes its version of the object, wherein if said server can not do so because there is another version of that object that exists in a newer state than that that the server has, then the server also has a directory listing from a different server that contains the object number identifier and its version, wherein the server combines these directory listings to create a super set directory listing that contains all of the information needed for conflict resolution with regard to the object in question.

15 . The apparatus of claim 1 , further comprising:

means for maintaining consistency among a plurality of different servers in a distributed system by stamping said objects based upon an object version number.

16 . The apparatus of claim 15 , wherein a time stamp is appended to said object.

17 . The apparatus of claim 1 , wherein a client determines if is has a proper set by verifying a digital signature on a signed directory listing.

18 . The apparatus of claim 1 , wherein said object comprises any of the following different forms:

a database form; and

a serialized form.

19 . The apparatus of claim 1 , further comprising:

an object definition table comprising a column that defines a body with relevance and a manyversion, wherein each one of these elements is a version number of a particular server that represents a portion of the vector manipulated by the server, wherein each index is implemented independently of the others by a respective server, and wherein any software that is confronted with a new version number can perform a comparison and decide which server did what to the object.

20 . The apparatus of claim 1 , further comprising:

at least one inspector automatically determining relevance in connection with an associated network element in response to presentation of an object to said associated network element, said relevance determination based on any of:

hardware attributes;

configuration attributes;

database attributes;

environmental attributes;

computed attributes;

remote attributes;

timeliness;

personal attributes;

randomization; and

advice attributes.

21 . The apparatus of claim 1 , further comprising:

at least one inspector automatically evaluating management and/or remediation information from said management console function based upon a determination of relevance in connection with an associated network element in response to presentation of an object to said associated network element and, as a result of a determination of said object's relevance to said network element, automatically performing any of:

mathematico-logical calculations;

executing computational algorithms;

returning results of system calls;

accessing contents of said associated network element;

querying said associated network element to evaluate any of:

said properties of said associated network element;

said associated network element configuration;

contents of storage devices associated with said associated network element;

peripherals associated with said associated network element; and

said associated network element environment.

22 . The apparatus of claim 1 , The apparatus of claim 1 , further comprising:

at least one inspector automatically evaluating management and/or remediation information based upon a determination of relevance in connection with an associated network element in response to presentation of an object to said associated network element and, as a result of a determination of said object's relevance to said network element, providing at least one notification based upon said relevance determination result.

23 . A computer implemented method for synchronizing network element state when a network connection is restored between a plurality of servers after a network failure, comprising the steps of:

providing a plurality of objects, each object existing in a plurality of different versions, wherein each said different object version results from modifications to an object made by different servers during said network failure when said servers are unable to communicate with each other but otherwise continue to function;

wherein each said object comprises a vector including a separate version number for each server, wherein each server increments its version number in said vector when it modifies said object;

providing, at each server, via an automatic conflict resolution mechanism, a most up to date view of all objects across all of said plurality of servers upon restoration of said network connection between said plurality of servers after said network failure;

said conflict resolution mechanism reconciling the existence of said plurality of different versions of an object to determine which object version should take precedence over other object versions;

wherein conflict resolution is performed when there are multiple versions of a same object at a server;

said conflict resolution mechanism applying at least one tie breaking rule to decide which servers take precedence over other servers when determining which object version should take precedence over other object versions.

Assignments (2)
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Apr 13, 2011
From: BIGFIX, INC.
To: INTERNATIONAL BUSINESS MACHINES CORPORATION
Reel/Frame 026115/0369 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Mar 10, 2008
From: LIPPINCOTT, LISA ELLEN; LINCROFT, PETER JAMES; LOER, PETER BENJAMIN; GOODROW, DENNIS SIDNEY; FIREBAUGH, JOHN EDWARD
To: BIGFIX, INC.
Reel/Frame 020625/0763 →