System and method for providing network-based services to users with high availability
AssigneeComputer Associates Think, Inc.
InventorsHailin Peng, Zhenghua Xu, Xiaowei Yuan, Dongzhu Shi
Life of this patent
Estimating the term…
Abstract
A suite of network-based services, such as the services corresponding to Microsoft® SharePoint™, are provided to users with high availability. To maintain the availability of the services, the configuration parameters of a first server are updated on an ongoing basis, and the updated configuration parameters are used to configure a second, backup server. In the event of switchover or failover, the backup server is prepared to provide the serving functionality of the first server.
Claims20
A system configured to provide a server application with high availability, the system comprising:
- a first server;
- and
- a second server,
- wherein the first server comprises one or more processors configured to execute a first set of computer program modules, the first set of computer program modules comprising:
- a first server application module configured to facilitate access and interaction of users with content and functionality served by the first server application module, wherein the first server application module provides at least a first web server, a first application server, and a first database server, and wherein the first server application module provides application programming interfaces through which the first server application module communicates with other computer program modules included in the first set of computer program modules;
- and
- a query module configured (i) to generate queries to the application programming interfaces of the first server application module requesting configuration parameters of the first web server, the first application server, and the first database server, (ii) to receive responses to the queries from the application programming interfaces of the first server application module, and (iii) to transmit information related to the received responses to the second server;
- and
- wherein the second server comprises one or more processors configured to execute a second set of computer program modules, wherein the second set of computer program modules comprises:
- a second server application module configured to facilitate access and interaction of users with content and functionality served by the second server application module, wherein the second server application module provides at least a second web server, a second application server, and a second database server, and wherein the second server application module provides application programming interfaces through which the second server application module communicates with other computer program modules in the second set of computer program modules;
- and
- a synchronization module configured (i) to receive the information transmitted to the second server by the query module, and (ii) to generate commands to the second server application module, via the application programming interfaces of the second server application module, that cause the configuration parameters of the second server application module to correspond to the configuration parameters of the first server application module.
A method of providing a server application with high availability, wherein the method is implemented in a computer system comprising a first server and a second server, wherein the first server comprises one or more processors configured to execute a first set of computer program modules, and wherein the second server comprises one or more processors configured to execute a second set of computer program modules, the method comprising:
- (a) executing, on the first server, a first instance of a server application that provides a first web server, a first application server, and a first database server, in order to facilitate access and interaction of users with content and functionality served by the first server, wherein the first instance of the server application includes application programming interfaces through which the first instance of the server application communicates with one or more computer program modules that are unassociated with the first instance of the server application;
- (b) generating, on the first server, queries to the application programming interfaces requesting configuration parameters of the first web server, the first application server, and the first database server;
- (c) receiving, on the first server, responses to the queries from the application programming interfaces;
- (d) transmitting information related to the received responses from the first server to the second server;
- (e) executing, on the second server, a second instance of the server application that provides a second web server, a second application server, and a second database server, in order to facilitate access and interaction of users with content and functionality served by the second server;
- (f) receiving, at the second server, the information transmitted to the second server from the first server;
- and
- (g) responsive to the information received from the first server, generating, on the second server, commands to the second instance of the server application, that cause the configuration parameters of the second web server, the second application server, and the second database server to correspond to the configuration parameters of the first web server, the first application server, and the first database server, respectively.
A method of providing a server application with high availability, wherein the method is implemented in a computer system comprising a first server and a second server, wherein the first server comprises one or more processors configured to execute a first set of computer program modules, and wherein the second server comprises one or more processors configured to execute a second set of computer program modules, the method comprising:
- initializing, on the first server, a query module, wherein initializing the query module comprises:
- compiling, on the first server, programming code defining the query module by converting such programming code into an intermediate language;
- and
- converting the intermediate language programming code associated with the query module from the intermediate language into native code that is executable by the one or more processors of the first server;
- executing, on the first server, a first instance of a server application that provides a first web server, a first application server, and a first database server, in order to facilitate access and interaction of users with content and functionality served by the first server, wherein the first instance of the server application includes application programming interfaces through which the first instance of the server application communicates with one or more computer program modules that are unassociated with the first instance of the server application;
- executing the query module on the first server to (i) generate, on the first server, queries to the application programming interfaces requesting configuration parameters of the first web server, the first application server, and the first database server, (ii) receive, on the first server, responses to the queries from the application programming interfaces, and (iii) transmit information related to the received responses from the first server to the second server,
- wherein execution of the query module is accomplished using the previously generated intermediate language code without re-compiling the query module between queries.
Dependencies are inferred from the claim text.