Introducing Rule Execution Server

Rule Execution Server architecture is based on a number of independent, but cooperating, software modules. It 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.

Task flow and infrastructure to create a Rule Execution Server

The following steps provide the ordered flow of tasks to execute a ruleset using Rule Execution Server:

  1. Create: Design and create a RuleApp from a rule project.

    A RuleApp is a deployment and management unit for Rule Execution Server. A RuleApp contains one or more rulesets. You deploy your RuleApps to the application server in order to make the ruleset available to a client application.

  2. Develop: Design and create a client application that uses the appropriate rule session.

    To call a deployed ruleset, you must use the public API to start a rule session from your client application. You can create a client application in Rule Designer using a Client project for RuleApps. A Client project for RuleApps is a predefined project for Eclipse that contains execution code to call a ruleset contained in a RuleApp on Rule Execution Server.

  3. 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.

    After you have created a RuleApp project and configured a connector to an installed Rule Execution Server in Rule Designer , you use the deployment wizard to deploy a RuleApp to one or more Rule Execution Servers. See Deploying and exporting RuleApps.

  4. 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 test with sufficient data that the applications are stable and that the results are correct. You can also use Decision Validation Services to verify that your RuleApps return valid results and set up Decision Warehouse to store execution traces.

    Client applications are standard Java applications that you test and debug using Rule Designer. Use the JUnit framework for formalized testing and performance monitoring.

  5. 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.

  6. 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.

  7. Administer: Maintain and monitor your Rule Execution Server and decision services to provide stability and performance.

    You perform administration tasks using the Rule Execution Server Console. You use the interface to sign in, monitor execution traces stored in Decision Warehouse, ensure the server is installed correctly using the diagnostics, manage decision services, and consult various server information.