System and method for using a data replication service to manage a configuration repository
First Claim
1. A system for using a data replication service to consistently manage server configuration within a domain or cluster, comprising:
- a plurality of servers within the domain or cluster, each server comprising a configuration repository that defines the configuration information of the server as a plurality of configuration elements, and wherein the configuration repository has an updated-to version number associated therewith which is updated each time a change is made to the configuration of the server by adding, removing, or changing attributes of, one or more of the plurality of configuration elements;
a master server within the plurality of servers that contains the configuration information including information about resources to be made available throughout the domain or cluster, said resources defined by the plurality of configuration elements;
a master data replication service layer that recognizes changes made at the master server to one or more of the plurality of configuration elements and that sends from said master server, data replication packets defining the changes in the master server'"'"'s configuration information, said data replication packets including the recognized changed one or more of the plurality of configuration elements, said data replication packets including both an initial-from version number, and an updated-to version number of the master server'"'"'s configuration repository, together with the configuration information that changed between the initial-from version number and the updated-to version number;
a slave data replication service layer that receives, at a slave server within the plurality of servers, the data replication packets from the master data replication service layer, and wherein the slave server determines whether the configuration information currently contained in the configuration repository at the slave server has been updated to correspond to the updated-to version number associated with a latest data replication packet received from the master server, and if the configuration information currently contained in the configuration repository at the slave server does not correspond to the updated-to version number, then the slave server requests a plurality of the data replication packets to be sent from said master server to said slave server, to match the undated-to version number at each server, including any intervening data replication packets, and wherein the slave server uses the data replication packets to update the configuration information at the slave server to match that of the master server, including adding, removing, or changing attributes of, the one or more plurality of configuration elements as necessary;
wherein the system uses a two-phase process that comprisessending the data replication packet from the master server to a plurality of slave servers to prepare the slave servers,waiting for each slave server to prepare to commit the changes, including receiving and preparing class files from the master server for use in providing resources, and then responding to the master server with an acknowledgment,receiving the acknowledgment from each slave server, determining which of the slave servers have returned an acknowledgment, and then sending a commit from the master server to only those slave servers which have returned an acknowledgment, to commit the change to their configuration repository, andupdating a naming directory interface at each of those slave servers advertising the availability of the resources for use within the domain or cluster.
2 Assignments
0 Petitions
Accused Products
Abstract
A mechanism for making changes consistently across an application server domain or a cluster. Server configuration consistency is absolutely necessary for cluster deployments. The invention allows changes to the configuration repository and to the application deployment process to be managed via a Data Replication Service (DRS). The former requires that the configuration repository be version aware, while the latter breaks down the application deployment process into two phases—one for data distribution and processing as far as possible, and the second to expose the changes through the Java Naming and Directory Interface (JNDI).
-
Citations
17 Claims
-
1. A system for using a data replication service to consistently manage server configuration within a domain or cluster, comprising:
-
a plurality of servers within the domain or cluster, each server comprising a configuration repository that defines the configuration information of the server as a plurality of configuration elements, and wherein the configuration repository has an updated-to version number associated therewith which is updated each time a change is made to the configuration of the server by adding, removing, or changing attributes of, one or more of the plurality of configuration elements; a master server within the plurality of servers that contains the configuration information including information about resources to be made available throughout the domain or cluster, said resources defined by the plurality of configuration elements; a master data replication service layer that recognizes changes made at the master server to one or more of the plurality of configuration elements and that sends from said master server, data replication packets defining the changes in the master server'"'"'s configuration information, said data replication packets including the recognized changed one or more of the plurality of configuration elements, said data replication packets including both an initial-from version number, and an updated-to version number of the master server'"'"'s configuration repository, together with the configuration information that changed between the initial-from version number and the updated-to version number; a slave data replication service layer that receives, at a slave server within the plurality of servers, the data replication packets from the master data replication service layer, and wherein the slave server determines whether the configuration information currently contained in the configuration repository at the slave server has been updated to correspond to the updated-to version number associated with a latest data replication packet received from the master server, and if the configuration information currently contained in the configuration repository at the slave server does not correspond to the updated-to version number, then the slave server requests a plurality of the data replication packets to be sent from said master server to said slave server, to match the undated-to version number at each server, including any intervening data replication packets, and wherein the slave server uses the data replication packets to update the configuration information at the slave server to match that of the master server, including adding, removing, or changing attributes of, the one or more plurality of configuration elements as necessary; wherein the system uses a two-phase process that comprises sending the data replication packet from the master server to a plurality of slave servers to prepare the slave servers, waiting for each slave server to prepare to commit the changes, including receiving and preparing class files from the master server for use in providing resources, and then responding to the master server with an acknowledgment, receiving the acknowledgment from each slave server, determining which of the slave servers have returned an acknowledgment, and then sending a commit from the master server to only those slave servers which have returned an acknowledgment, to commit the change to their configuration repository, and updating a naming directory interface at each of those slave servers advertising the availability of the resources for use within the domain or cluster. - View Dependent Claims (2, 3, 4, 5, 6, 7)
-
-
8. A method for using a data replication service to consistently manage server configuration within a domain or cluster, comprising the steps of:
-
providing a plurality of servers within the domain or cluster, each server comprising a configuration repository that defines the configuration information of the server as a plurality of configuration elements, and wherein the configuration repository has an undated-to version number associated therewith which is updated each time a change is made to the configuration of the server by adding, removing, or changing attributes of, one or more of the plurality of configuration elements; maintaining, at a master server within the plurality of servers that contains the configuration information including information about resources to be made available throughout the domain or cluster, said resources defined by the plurality of configuration elements; recognizing changes made at the master server to one or more of the plurality of configuration elements; sending data replication packets from said master server to a slave server, said data replication packets defining changes in the master server'"'"'s configuration information, said data replication packets including the recognized changed one or more of the plurality of configuration elements, said data replication packets further including both an initial-from version number, and an updated-to version number of the master server'"'"'s configuration repository, together with the configuration information that changed between the initial-from version number and the updated-to version number; receiving data replication packets at said slave server; and determining whether the configuration information currently contained in the configuration repository at the slave server has been updated to correspond to the undated-to version number associated with a latest data replication packet received, and if the configuration information currently contained in the configuration repository at the slave server does not correspond to the undated-to version number then requesting a plurality of the data replication packets to be sent from said master server to said slave server, to match the undated-to version numbers at each server, including any intervening data replication packets, and wherein the slave server uses the data replication packets to update the configuration information at the slave server to match that of the master server, including adding, removing, or changing attributes of, the one or more plurality of configuration elements as necessary; wherein the method uses a two-phase process that comprises sending the data replication packet from the master server to a plurality of slave servers to prepare the slave servers, waiting for each slave server to prepare to commit the changes, including receiving and preparing class files from the master server for use in providing resources, and then responding to the master server with an acknowledgment, receiving the acknowledgment from each slave server, determining which of the slave servers have returned an acknowledgment, and then sending a commit from the master server to only those slave servers which have returned an acknowledgment, to commit the change to their configuration repository, and updating a naming directory interface at each of those slave servers advertising the availability of the resources for use within the domain or cluster. - View Dependent Claims (9, 10, 11, 12, 13)
-
-
14. A computer readable medium, including instructions stored thereon which when executed cause the computer to perform the steps of:
-
providing a plurality of servers within the domain or cluster, each server comprising a configuration repository that defines the configuration information of the server as a plurality of configuration elements, and wherein the configuration repository has an undated-to version number associated therewith which is updated each time a change is made to the configuration of the server by adding, removing, or changing attributes of, one or more of the plurality of configuration elements; maintaining, at a master server within the plurality of servers that contains the configuration information including information about resources to be made available throughout the domain or cluster, said resources defined by the plurality of configuration elements; recognizing changes made at the master server to one or more of the plurality of configuration elements; sending data replication packets from said master server to a slave server, said data replication packets defining the changes in the master server'"'"'s configuration information, said data replication packets including the recognized changed one or more of the plurality of configuration elements, said data replication packets further including both an initial-from version number, and an updated-to version number of the master server'"'"'s configuration repository, together with the configuration information that changed between the initial-from version number and the updated-to version number; receiving data replication packets at said slave server; and determining whether the configuration information currently contained in the configuration repository at the slave server has been updated to correspond to the undated-to version number associated with a latest data replication packet received, and if the configuration information currently contained in the configuration repository at the slave server does not correspond to the undated-to version number then requesting a plurality of the data replication packets to be sent from said master server to said slave server, to match the updated-to version numbers at each server, including any intervening data replication packets, and wherein the slave server uses the data replication packets to update the configuration information at the slave server to match that of the master server, including adding, removing, or changing attributes of, the one or more plurality of configuration elements as necessary; wherein the computer readable medium further comprises instructions to perform the steps of sending the data replication packet from the master server to a plurality of slave servers to prepare the slave servers, waiting for each slave server to prepare to commit the changes, including receiving and preparing class files from the master server for use in providing resources, and then responding to the master server with an acknowledgment, receiving the acknowledgment from each slave server, determining which of the slave servers have returned an acknowledgment, and then sending a commit from the master server to only those slave servers which have returned an acknowledgment, to commit the change to their configuration repository, and updating a naming directory interface at each of those slave servers advertising the availability of the resources for use within the domain or cluster. - View Dependent Claims (15, 16, 17)
-
Specification