Introducing Rule Execution Server
Rule Execution Server has an execution and management model, Java™ EE and Java SE execution components, the Execution Unit (XU), a persistence layer.
Architects, administrators, developers, and testers work together to create, deploy, tune, and administer RuleApps and client applications that run on Rule Execution Server instances on a production enterprise cell.
To use Rule Execution Server, follow the task flow to complete the steps that are applicable to you. The order in which tasks are done depends on your environment, but there is always a minimum set of tasks and you choose the order based on logical dependency.
The following figure shows the task flow to create a Rule Execution Server, and the infrastructure used at each step.

- Create: Design and create a RuleApp.
A RuleApp is a deployment and management unit for Rule Execution Server. A RuleApp contains one or more rulesets. You deploy your RuleApps to Rule Execution Server in order to make the ruleset available to a client application. RuleApps can be deployed from a decision service deployment configuration.
Rule Designer does not explicitly show RuleApps. You use the decision service deployment configuration to hold information to make a RuleApp.
- Develop: Design and create a client application that uses the
appropriate rule session.
To call a deployed ruleset that is contained in a RuleApp on Rule Execution Server, you must create a client application with the proper execution code. From your client application, use the public API to start a rule session.
Rule Designer provides predefined projects for Eclipse to help you create a client application. When you work with decision services, you can choose a wizard from the Client Project for Decision Service category:
- Java Project for Rule Execution Server on Java SE
- JUnit Project for Rule Execution Server on Java SE
- Set up your test server: Set up and configure your test Rule Execution Server on an application server.
By default, Rule Execution Server is installed on the sample server, which is used to run the provided samples. You can also use this server to test your installation of Rule Execution Server. If you want to use a test server that matches your production server, see the documentation on how to install Rule Execution Server.
From a decision service that is ready for deployment, you can deploy one or more RuleApps. You deploy the rulesets that you defined in a decision operation to one or more installed Rule Execution Server instances that you defined in a deployment configuration. See Deploying decision services.
- Test: Run your client application and correct any errors that you find.
Before you deploy your RuleApp and client application to a production server, you must ensure, by testing with sufficient data, that the applications are stable and that the results are correct. You can use testing and simulation to verify that your RuleApps return valid results.
You can also set up Decision Warehouse to store execution traces. For more information about Decision Warehouse, see Decision Warehouse.
Client applications are standard Java applications that you test and debug by using Rule Designer. Use the JUnit framework for formalized testing and performance monitoring.
- Set up the production server: Set up and configure Rule Execution Server and Decision Warehouse on a production
application server cluster. You then redeploy your validated RuleApps and client applications.
A production server involves two or more application servers in a cluster installed on two or more computers.
For more information about Decision Warehouse, see Decision Warehouse.
- Tune and improve the performance of the production server: Set up
your production configuration to give the most efficient performance possible.
The goal of performance tuning is to decrease the amount of time and resources that your application server requires to process requests.
You configure the following server settings in your cluster to achieve the best performance:- Log
- Trace level
- Thread pool
- Garbage collection
You can also look at the rulesets that are executed by your decision services. You can improve performance by reducing the ruleset size and using mutually exclusive rule tasks.
- Administer: Maintain and monitor your Rule Execution Server and decision services to provide stability and
performance.You can use the Rule Execution Server console to do the following administrative tasks:
- Monitor execution traces that are stored in Decision Warehouse.
- Ensure that the server is installed correctly by using the diagnostics feature.
- Manage decision services.
- View relevant server information.