For years OpenRules was among the fastest rule engines. When last year we moved from run-time interpretation to design-time code generation, we, like our colleagues at Red Hat Drools, managed to further improve the overall performance and provide support for practical decision microservices. As a result, we dramatically minimized start-up time, went from 50-100 milliseconds per transaction to 5-10 milliseconds, made memory footprint small. These are really good results needed by modern enterprise decision-making systems.
However, I knew that we have multi-year customers that use really big (!) decision tables with 10 and even 30 thousands of rules. How to improve their performance? Continue reading
Last week I created a “Worker Planner” that has a nice GUI deployed on Apache Tomcat and it works in sync with a remote Scheduling Decision Service deployed as AWS Lambda. The scheduling service was implemented with JavaSolver and a constraint solver included into JSR331. My objective was to demonstrate that these days with cloud-based deployment it is not so difficult to create an end-to-end full-scale decision optimization service. I also wanted to show how to apply powerful Linear Solvers to crack traditionally complex production scheduling problems. So, two days ago I took a well-known problem that is described in this example: Continue reading
There are already several good responses to the DMCommunity’s April-2020 Challenge “Doctor Planning”. Below I am describing how I tried to use this challenge to create a complete decision optimization service. I ended up with a working Worker Scheduler that shows a solution for this particular challenge in Fig. 1 (click to open):
OpenRules offers two open source products to support an integrated use of “Business Decision Modeling with Rule Engines and CP/LP Solvers“:
In this post I will describe how you can deploy decision optimization models as AWS Decision Microservices without programming or complex configuration. Continue reading
In these uncertain times, to do our part we want to help US businesses, especially health organizations to quickly make important operational decisions. OpenRules offers immediate assistance in creation and deployment of your decisions services on-cloud or on-premise.
- If you need a quick implementation of optimization decision services, we will help you to define and resolve your problem with the freely available Java Solver.
- If you need to quickly create a rules-based decision service and deploy it to AWS cloud, we will give you 3 months free access to our SaaS Rule Engine.
Contact us at email@example.com and we will setup a call to discuss how we can be in help. As the CTO at OpenRules, I’d allocate my personal time to help you with your urgent decision automation problems for free – email me directly at firstname.lastname@example.org.
This month OpenRules Decision Manager became the first SaaS Rule Engine available in AWS Marketplace. It gives our customers an opportunity to execute OpenRules-based decision services using a “Pay-As-You-Go” pricing model. You may read the Press Release approved by the AWS Marketplace team. Using your AWS account, you can now subscribe to our AWS SaaS Subscription that allows you to pay a minimal fee for only what you actually use with all charges coming from Amazon AWS Marketplace. Continue reading
2019 has brought lots of innovations and positive developments for OpenRules and its customers. This post summarizes all the new capabilities and user experiences that we have introduced in 2019. Continue reading
There are two major types of decision engines utilized by different Business Rules and Decision Management systems to execute business decision models:
1. Traditional rule engines (RETE-based or Sequential).
2. Constraint-based rule engines Continue reading
The DMCommunity Challenge Apr-2019 “Recreational Fee” is based on the following problem provided by Ron Ross:
A city has created a decision table to determine appropriate usage fees for its recreational facilities based on length of usage and when the usage occurs:
Nowadays rules-based business decision models are usually developed and maintained by business analysts or other subject matter experts (not by software developers). And more and more people want to make their business decision models available from cloud as operational decision services. But is it possible for non-technical people to achieve this objective? There are so many new terms and concepts to learn, that it seems doubtful for business people to handle this task. Continue reading
The latest OpenRules Release 8.0.0 comes with a new, very simple Java API for incorporation of business decision models created by business people in Excel into Java applications. It corresponds to the simple view of a decision model as “a Business Glossary surrounded by Decision Tables that specify decision logic for Goals and Sub-Goals“. OpenRules 8.0.0 explicitly introduced Java concepts “DecisionModel” and “Goal” to support the Goal-Oriented Decision Modeling approach described in this book. Continue reading
Traditionally, the majority of decision tables list their rules in the top-to-bottom order when different rules are placed in rows. Here is an example of a typical single-hit decision table created in Excel in accordance with the OpenRules format: Continue reading
We are aggressively making OpenRules-based services available from cloud environments such as Amazon EC2. In particular, we’ve just re-deployed our Decision Model Analyzer from a 3rd party remote Tomcat to Amazon. It was just a very simple reconfiguration, but the effect is really positive: the Analyzer is now much faster and much more reliable. You may try it yourself without any registration or fee: simply click on the button on the right.
The source code of the Analyzer is included in the OpenRules standard release and can be considered as an example of how to deploy OpenRules web applications created using OpenRules Dialog to cloud. Another example is the game “Nim” that you may play now from the cloud by clicking on the image below: Continue reading
DMCommunity Sep-2018 Challenge “Balanced Assignment” gives an example of a complex business problem with a serious optimization component. This problem deals with the assignment of people to different project groups. Usually, such problems require deep knowledge of optimization techniques. My interest was to build a decision model for this problem and to investigate what can be done by business people and where the involvement of optimization experts is necessary. So, I attempted to use a business-friendly approach to represent and to solve this complex problem. It was not a simple journey, and this article describes what I did successfully and where I failed. Link
The latest DMCommunity.org Challenge “Recreational Fee” is very simple, but I still wanted to show how to create the proper decision model using the OpenRules goal-oriented approach. The implementations is described in this PDF document.
Dr. Bob Moore in his DMCommunity.org post “What is a ‘Decision’?” considers different definitions of a “Business Decision” and “Business Decision Logic”, which Bob, Ron Ross, and I have recently been discussing in the context of the March DMC Challenge. Below I will share my point of view.
First of all, it’s important to stress that we are talking not about any ‘decision’ but ‘Operational Business Decision’ which provides a solution for an operational business problem. The majority of such problems can be considered as a special case of the classical Constraint Satisfaction Problem (CSP) defined in the famous book by S.Russell and P.Norvig “Artificial Intelligence: a Modern Approach” . So, I simply applied the Russell/Norvig’s definition to our business problem. Continue reading
Our customers frequently build not one but multiple decision models for their business domains like property and casualty insurance, loan origination, medical guidelines, etc. After building several decision models, they already have a quite rich glossary and various decision tables that essentially cover their business domain. So, it gives them a good foundation to build a library of relatively small decision models which can be used to assemble more complex decision models. Sometimes they even add domain-specific decision tables and supporting Java classes. This PDF document uses well-known loan origination problems (described in the Chapter 11 of the DMN specification) to explain how to build and utilize a library of decision models. Link
During the closing discussion at the DecisionCAMP-2018, I promoted a new “model-based” approach to decision modeling that contrary to the commonly used “method-based” approach allows a human decision modeler to concentrate on “WHAT” instead of “HOW”. This approach gives more power to decision modelers allowing a decision engine to come up not just with one of many possible decisions but to find the optimal decision. I wanted to demonstrate this power using a more complex business problem and to do it before the end of this year. So, I decided to apply the model-based approach to the problem “Rebooking Passengers from Cancelled Flights” that is the most challengeable problem among multiple DMCommunity.org Challenges. Continue reading
I provided two solutions for DMCommunity.org Challenge “Vacation Days Advanced”. So far, all decision models submitted as solutions for the old Jan-2016 Challenge and the new challenge were “method-based” meaning they describe exactly how to assign extra days while avoiding possible conflicts. I tried to apply a new “model-based” approach that concentrates on “what” instead of “how” and finds not just one of many possible solutions but the optimal one. The first decision model consists of clearly separated two parts: 1) Business Part presented in Excel decision tables; 2) Technical Part presented in Java using the JSR-331 standard. The second decision model is an attempt to present both parts completely in DMN-like decision tables using Excel only (the supporting Java code is hidden in new Excel templates). You may analyze both solutions here. I’d appreciate comments and suggestions for improvement.
OpenRules was well presented at the major technical business decision management event DecisionCAMP-2018. Here are the presentations directly related to OpenRules:
I also published a paper “Building and Analyzing Goal-Oriented Decision Models” at the Proceedings of the RuleML+RR 2018 Challenge – it explains our goal-oriented approach to decision modeling using a Credit Card Application decision model. In my closing notes I tried to demonstrate how a smarter decision engine can simplify decision modeling using concrete examples from DMCommunity.org challenges. After considering different decision modeling approaches, we will add these capabilities to standard OpenRules features.
The July’s challenge “Zoo, Buses, and Kids” deals with a very simple optimization problem:
“300 kids need to travel to the London zoo. The school may rent 40 seats and 30 seats buses for 500£ and 400£. How many buses of each to minimize cost?”
Naturally, a constraint solver nicely and easily solves this and more complex constraint satisfaction problems as shown in Philippe Laborie’s solution. When today I saw a pure SQL solution provided by Damir Sudarevic, I thought that it’s time to model this problem as a business decision model. It would not be as compact as provided solutions, but it should be oriented to business users. Continue reading
Prof. Gene Freuder wrote a position paper “Complete Explanations” for The Second Workshop on Progress Towards the Holy Grail that will be held on Aug 27, 2018 during CP 2018 in Lille, France. Gene writes: “As AI becomes more ubiquitous there is a renewed interest in computers being able to provide explanations, and the European GPDR provides special impetus.” Geen’s paper concentrates on constraint satisfaction problems (CSPs), but, as I’d shown in my 2016 paper, we may consider a decision model as a CSP, and everything Gene is talking about directly applies to business decision modeling. Continue reading
The major Release 7.0.0 is making OpenRules even more user-friendly without losing any of the sophistication of already proven decision modeling technology. Our customers don’t have anymore to define an execution sequence of their decision tables in special tables of the type “Decision” – these tables can be automatically generated. Now it is sufficient for a human decision modeler to define only Glossary and Decision Tables that specify business logic for all included goals and subgoals. Then for any selected business goal, OpenRules Engine will execute all related decision tables in an automatically calculated order to determine the goal’s value. You may watch this short video that uses simple examples to explain the goal-oriented approach to decision modeling supported by OpenRules-7. Continue reading
People who started decision modeling standardization years ago were all agreed that the DMN standard is supposed to be oriented to subject matter experts, should be simple, friendly enough while powerful to cover the common denominator in operational decision modeling. It was a good start for DMN in 2013 and an enthusiastic acceptance since then. However, today DMN is full of complex, programmer-oriented features which seem to get even more complex in new releases. There are plenty examples of unnecessary complexity being proudly promoted for their “elegance”. Here are a few examples to compare. Continue reading
The latest June-2018 DMCommunity Challenge”Credit Card Application” gives me a good chance to demonstrate the new upcoming OpenRules Release 7.0.0. I remember that Nick Broom was one of the first who published a real-world decision model right after the DMN introduction. I also remember that at the same day I implemented and published Nick’s model using only Excel and OpenRules available at that time (it was release 6.2.6). It would be interesting to compare this old implementation with a new one below that takes advantages of new OpenRules-7. Continue reading
In this post we will provide a response to the DMCommunity.org Apr-2018 Challenge “Up-Selling Rules“ that deals with two decision tables: 1) up-selling rules that offer new products to a customer based on the customer profile and the products which the customer already has; 2) customer profiling rules. We will use for the first time the latest OpenRules version (not released yet to public) that removes a need for ordering of multiple decision tables. Continue reading
There are two interesting responses to the DMCommunity.org Feb-2018 Challenge provided by Mike Parish and Bob Moore. Mike effectively used Corticon to validate and fix incompleteness, redundancy, and ambiguity problems he found in the following, relatively simple decision table: Continue reading
Last year BBC-2017 organizers gave me 20 minutes to introduce DMN to business analysts at the “Technology Theater”, an open space in the Expo hall. Based on the positive feedback from people who attended my presentation, I decided to share it with more people. You may look at my slides in the PDF format. Below I will describe an example I believe is very useful to introduce major DMN concepts in 15 minutes. Continue reading
DMCommunity.org Jan-2018 Challenge is looking for a decision model that can define promotions for different sales orders. It provides a simple example of promotion: reduce the total cost of the order by $3.50 if it contains at least 5 items 1108 and 4 item 2639. Let’s build the proper decision model. Continue reading
DMCommunity.org offered a new Dec-2017 Challenge called “Reindeer Ordering“. It has a nice Christmas formulation:
Santa always leaves plans for his elves to determine the order in which the reindeer will pull his sleigh. This year, for the European leg of his journey, his elves are working to the following schedule, which will form a single line of nine reindeer. Here are the rules: Continue reading
Recently I helped one of our larger customers to build a set of their business decision models. At the end I said that now they can continue to assemble new decision models themselves. Then one of their business analysts said that our decision modeling approach reminds him of LEGO. I believe this is a really good analogy and I will elaborate on it using specific examples.