Mechanism and method for continuous operation of a rule server
View Patent ↗An improved method and mechanism is disclosed for updating rules used by a rule server. An embodiment is directed to a method and mechanism for connecting one or more rule service agents to a rule server, in which rules may be changed and put into operation without taking the rule server offline.
1. A method for updating rules at a rule server, said rule server comprising a first rule engine connected to a first rulebase and one or more agents to handle service requests on behalf of clients, the method comprising:
said rule server receiving a request to update rules in said first rulebase by any of: changing, deleting, and adding to one or more rules contained in said first rulebase, wherein said request comprises information usable to identify a new set of rules;
responsive to said rule server receiving a said request to update rules in said first rulebase, creating a second rulebase comprising said new set of rules at said rule server, said second rulebase concurrently existing with said first rulebase;
servicing new service requests with said second rulebase; and
removing said first rulebase when no further service requests from said one or more agents are being serviced by said first rulebase.
2. The method of claim 1 , wherein second rulebase is comprised of a different set of rules than said first rulebase.
3. The method of claim 1 further comprising:
initiating a second rule engine at said rule server.
4. The method of claim 3 , wherein said step of servicing new service requests with said second rule engine further comprises:
said rule server determining a particular rule engine to service said service requests.
5. The method of claim 3 further comprising:
removing said first rule engine when said first rule engine is no longer servicing work requests from said one or more agents.
6. The method of claim 1 , wherein said rule server is not taken offline and restarted.
7. The method of claim 1 , wherein at least one of said first rule engine and said second rule engine is designed using a programming language that can operate on different machine platforms.
8. A computer-readable medium having thereon instructions for performing a process for updating rules at a rule server, said rule server comprising a first rule engine connected to a first rulebase and one or more agents to handle service requests on behalf of clients, said process comprising:
said rule server receiving a request to update rules in said first rulebase by any of: changing, deleting, and adding to one or more rules contained in said first rulebase, wherein said request comprises information usable to identify a new set of rules;
responsive to said rule server receiving said request to update rules in said first rulebase, creating a second rulebase comprising said new set of rules at said rule server, said second rulebase concurrently existing with said first rulebase;
servicing new service requests with said second; and
removing said first rulebase when no further service requests from said one or more agents are being serviced by said first rulebase.
9. The computer-readable medium of claim 8 , wherein second rulebase is comprised of a different set of rules than said first rulebase.
10. The computer-readable medium of claim 8 further comprising:
initiating a second rule engine at said rule server.
11. The computer-readable medium of claim 10 , wherein said step of servicing new service requests with said second rule engine further comprises:
said rule server determining a particular rule engine to service said service requests.
12. The computer-readable medium of claim 10 further comprising:
removing said first rule engine when said first rule engine is no longer servicing work requests from said one or more agents.
13. The computer-readable medium of claim 8 , wherein said rule server is not taken offline and restarted.
14. The computer-readable medium of claim 8 , wherein at least one of said first rule engine and said second rule engine is designed using a programming language that can operate on different machine platforms.