The OpenRulesTM Tutorials         Home  TOC PREV TOP NEXT Installation Guide
Divider

OpenRules Installation Structure

You may download OpenRules from http://www.openrules.com/download.htm.  The standard OpenRules installation contains several projects that you may need (or not) based on your development needs.  There are several OpenRules configuration projects and several sample projects.

OpenRules Configurations Projects 

Configuration Project Required or Optional  Description
openrules.config Required This project is a simple placeholder for all OpenRules jar-files and related 3rd party jar-files.  They are located in the subdirectory "lib".  For simplicity, all sample projects depend on this project.  It also contains build.xml file with a few targets used to compile, validate and run standard projects.  All standard sample projects depend on openrules.config project.  However, you do not need this project if you copy all needed jars to you own directory and properly adjust your build-files.

The jar-file  openrules.config/lib/openrules.all.java contains all necessary OpenRules classes.  All other jars are standard 3rd party jar-files that you may or may not need.  Besides openrules.all.java a minimal OpenRules configuration includes the following jars:

  • poi-3.6-20091214.jar
  • commons-logging-1.1.jar
  • log4j-1.2.15.jar
  • commons-lang-2.3.jar

You may use different versions of these commonly used 3rd party tools.

com.openrules.tools Optional com.openrules.tools.jar  is an additional library with optional convenience classes. I t contains Java classes with predefined methods shared by different OpenRules-based projects.  It includes common printing methods, operators, a simple DB interface, and is a place where OpenRules and its customers contribute commonly used classes and methods.  The library comes with all sources included so that it may be easily understood, modified or extended by customers.
openrules.forms.lib Optional This is an optional library to support Web applications that use OpenRules Forms.  It provide Excel files that supports typical interaction constructions, layouts and layout elements, and predefined data types.

To work with Web-based applications, you will need web containers or application servers such as Apache Tomcat, IBM WebSphere or BEA WebLogic.  While earlier versions of OpenRules included pre-installed Tomcat, starting from the Release 3.* OpenRules relies on the Tomcat or other servers installed by customers.  All standard OpenRules examples that deal with Web Applications expect that you have Apache Tomcat already installed.  To deploy your rules projects as Web Services you will also need to install Apache Axis 1.4.

OpenRules Sample Projects  ►top

OpenRules provides multiple sample projects to support the "Learn By Examples" approach. There are three groups of sample projects:

A family of "Hello"-examples covers different types of applications from basic rules projects to presentation-oriented Web applications and Web Services. It also includes a few client applications for the "Hello" rules deployed as a Web Service. Other projects provide more complex examples of OpenRules applications. You may run all sample projects right "out-of-the-box".  You have the ability to concentrate on what is essential – your business logic, presentation layouts and/or processing flows.

Hello Projects  ►top

Sample Project Project Type  Description
HelloRules rules only This is an example of a basic project that contain business rules for generating a greeting based on the current time of day and a customer's gender, age, marital status. All data types are defined directly in Excel.
HelloJava rules only This is an example of a basic rule project that works with a Java class named Customer.
HelloXMLCustomer rules only This is an example of a basic rule project that works with a class named Customer defined in an XML file.
HelloJsp rules integrated in a JSP-based web application This project adds a JSP-based GUI to the rules from the HelloRules project. The project is deployed on Apache Tomcat as a web application with business logic in OpenRules
HelloForms rules and forms deployed as WAR This project adds a Web-based GUI to the rules from the HelloRules project. The project is deployed on Tomcat as a presentation-oriented web application
HelloWS rules and forms deployed as WS This project includes all components for an automatic deployment of the rules from the HelloRules project as a Web Service on Tomcat.
HelloWSExcelClient Excel client for WS This project contains an Excel table that launches the HelloWS service deployed on Apache Tomcat or other web server.  From your Excel, open Visual Basic Editor to see the proper VB classes automatically generated based on the WSDL published by the Web Service HelloWS. 
HelloWSJavaClient Java client for WS This project contains an example of the Java class HelloWSServiceClientMain that launches the HelloWS service deployed on Apache Tomcat or other web server. This class uses  Java classes from the directory "gen" automatically generated based on the WSDL published by the Web Service HelloWS.
HelloWebSphere rules integrated in IBM WebSphere-based web application This project adds a JSP-based GUI to the rules from the HelloRules project. The project is deployed on IBM WebSphere as a web application with business logic in OpenRules
HelloWebLogic rules integrated in BEA WebLogic-based web application This project adds a JSP-based GUI to the rules from the HelloRules project. The project is deployed on BEA WebLogic as a web application with business logic in OpenRules
HelloJavaDB rules located in a database Demonstrates how rules repository can be moved to a relational database
HelloJavatTemplates rules only This is an example demonstrates how to use Rules Templates

JSR94 Projects  ►top

OpenRules includes a reference implementation of the JSR94 standard known as Java Rule Engine API.

Sample Project Project Type  Description
lib.jsr94 rules only This project contains the standard JSR94 library
com.openrules.jsr94 rules only This is OpenRules's reference implementation for the JSR94 standard
HelloJsr94 rules only This example shows how to use JSR94 interface (created based on a simple HelloJava example)
HelloJsr94Multi rules only This JSR94 project demonstrates how to invoke different rules and methods from the same RuleExecutionSet
HelloJspJsr94 rules and Jsp HelloJspJsr94 is similar to HelloJsp but uses OpenRules JSR-94 Interface to
create and run OpenRulesEngine for a web application.

Other Sample Projects  ►top

Sample Project Project Type  Description
Vacation rules only A basic project that contains one decision table to define vacation days based on the age and length of service.
Loan rules only This is an example of a basic project that contains business rules for loan pre-qualification.  It is an implementation of a typical business rules use case described by KPI, Inc.
LoanWeb rules and forms This project adds a Web-based GUI to the rules from the Loan project.  The project is deployed on Tomcat as a presentation-oriented web application
LoanDynamics rules and forms This is a presentation-oriented web application that supports
a dynamic loan approval process. Demonstrates an ability to dynamically add/delete/modify different securities related to an initial loan application.  See details at http://openrules.com/LoanDynamics.htm
LoanStudent rules and forms This is a dynamic web application that supports an interactive
product selection with rules and forms defined in OpenRules. Demonstrates how to create OpenRules tables with dynamic content.
HealthCare rules only This is an example of a basic project that contains business rules for clinical guidelines described in detail in the use case study.
HealhCareWeb rules and forms This project adds a Web-based GUI to the rules from the HealthCare project. The project is deployed on Tomcat as a presentation-oriented web application.
UpSellRules rules only This basic rule project provides an example how to define up-cell rules for some banking products.
OverdraftProtection rules only This basic project provides an example of problem resolution rules to assists a customer service representative during her phone conversation with a customer.
RulesRepository rules only This rule project demonstrates how a business rules repository can be organized
AutoInsurance rules only This rule project demonstrates complex data models.
NumberGuess rules and forms This is an example of a Web Application that implements a number guessing
game that is frequently used as a sample application for different Web
development techniques. To see a detailed description, click here.
SeasonRules rules only Demonstrates how to parameterize OpenRules repository. The same rules project supports rules for different years and seasons
DataArrays rules only Demonstrates how to use predefined data types
RulesRepositoryDB rules only This rule project demonstrates how a business rules repository can be organized in a simple database
RulesRepositoryDBV rules only This rule project demonstrates how a business rules repository can be organized in a database with a built-in version control

►top

Divider