Release 8.4.0

June 25, 2021. Release 8.4.0 of OpenRules Decision Manager essentially advances deployment capabilities including:

    • Deploying decision models as MS Azure Functions
    • Building RESTful web services with OpenRules REST: the resulting decision services require minimal configurations, small memory footprints, and are highly efficient
    • Building custom AWS Lambda functions to support AWS Pipelines: along with a simple “one-click” deployment using “deployLambda.bat”, customers can use “buildLambda.bat” to package a decision models as a zip file that can be uploaded to their AWS environment to use existing CI/CD pipelines configured by their IT department.
    • Automatic generation of JSON test cases: OpenRules automatically converts test cases defined in Excel into JSON files placed into the folder “jsons”.

Properties

    • A new property “deployment” in the file “”project.properties” can take the following values:
        • aws-lambda – for AWS Lambda functions
        • azure-function – for MS Azure functions
        • rest – for RESTful services using OpenRules REST
        • spring-boot – for RESTful services using SpringBoot
        • java (default) – for Java API.
    • The major decision model properties such as “model.name“, “model.goal“, and “model.package” are now located in the table “Environment” of the file “DecisionModel.xls”. The file “project.properties” usually contains only execution and deployment properties such as “model.file” (mandatory), “test.file” and “deployment” (optional). “project.properties” always override “Environment” properties.

Sample Projects

Examples of new deployment capabilities are presented in the Vacation Days sample projects included into the standard installation “openrules.install”.  All Vacation Days projects refer to the same rules repository “VacationDays/rules” and demonstrate different deployment options.

    • Project “VacationDays” – a basic decision project that contains mainly  an Excel-based  decision model in the rule repository “rules”.  The major decision model properties are now located in the table “Environment” of the file “DecisionModel.xls”: VacationDaysEnvironmentThe file “project.properties” contains only execution properties properties:VacationDaysProperties1
    • Project “VacationDaysJava” – a basic decision project that demonstrates Java integration. It uses “Employee.java” in src/main/java instead of automatically generated Java class in eth folder “target”. Its “project.properties” file looks as follows:VacationDaysProperties2It includes many well-commented examples of Java programs such as “SamplesJsonEmployees” which demonstrate OpenRules Java API.
    • Project “VacationDaysLambda” – a decision project that demonstrates how to deploy the decision model “VacationDays” as an AWS Lambda function. Its “project.properties” file looks as follows: VacationDaysProperties3
      • Note that the “model.package” defined in the “project.properties” overrides the one in the Environment table.
      • Look at the automatically generated test cases in the JSON format in the folder “jsons“. You may use them in POSTMAN after you call “deployLambda.bat”.
      • There is a new batch file “buildLambda.bat” that packages the decision model as one zip-file “target/VacationDaysLambda-1.0.0.jar” to be used for custom AWS Lambda deployment.
    • Project “VacationDaysAzure” – a decision project that demonstrates how to deploy the decision model “VacationDays” as an MS Azure function. Its “project.properties” file looks as follows: VacationDaysProperties4All Azure configuration information is specified in the file “pom.xml”.
    • Project “VacationDaysRest” – a decision project that demonstrates how to deploy the decision model “VacationDays” as a RESTful web service using OpenRules REST that currently utilizes Undertow.  It requires only a minimal configuration, and produces decision services with small memory footprints and high efficiency.  Its “project.properties” file looks as follows: VacationDaysProperties5
    • Project “VacationDaysSpringBoot” – a decision project that demonstrates how to deploy the decision model “VacationDays” as a RESTful web service using SpringBoot. Its “project.properties” file looks as follows:
    • VacationDaysProperties6Project “VacationDaysOptimization” – a decision project that demonstrate how to use together a Rule engine and Rule Solver.

Other changes

Please note that now the name of the generated endpoint is based on the property “model.name” (not “model.goal“) that is defined in the Environment table or “project.properties”.

The release 8.4.0 provides better support for lifecycle of business objects defined in Glossary by automatically creating output objects if they don’t exist. It fixes several bugs found in previous releases and updates user manuals.  

You may find more details how these projects work in the updated User Manual for Developers.

As usual, after you install a new release of OpenRules Decision Manager, the only change you need to make in your decision projects is to change OpenRules version in your pom.xml file.

If you have any questions, comments or suggestions, please post them at the Google Discussion Group or send directly to support@openrules.com.