Monday 23 June 2014

RM3 Proof Of Concept for connecting C to java RM3 Engine

The Retail Mix & Match Module (RM3) Engine is a promotion rule engine that is specialized  in processing promotions. A promotion can be buy one get one or get 10% discount. To avoid coding these promotions direct in the POS/register system or Webshop, the RM3 is invented. Besides the flexibility the RM3 Engine also very fast in processing promotions. RM3 Engine can be used as java API or as a servlet. The RM3 Engine servlet can run on nearly any application server that is based on java.

To proof that the RM3 Engine could also run on a POS system, that is build on C technology a Proof of Concept is executed.

Proof Of Concept starting point:
  • Connect with a C program to the RM3 Engine
  • A minimum of 2000 promotions should be active
  • A minimum of 100.000 items should be part of the promotions
  • Discount results should be displayed per invoice line.

After a few days, we had the Proof of concept ready. The result was a C program that connected to the RM3 Engine and executed the promotion processing. The results were amazing for the performance. Calculating the promotions for an invoice with about 20 invoice lines took less than 100 milliseconds.

The following steps were executed by the C program:
  • starts a JVM instance,
  • Create RM3 Engine instance.
  • Loading 2000 promotions, which were based on 100.000 items.
  • Validate promotions
  • Push the invoice header information to the RM3 Engine
  • Push the invoice line information to the RM3 Engine
    • After each invoice line the RM3 Engine was started to calculate the promotions
  • At total
    • Start the RM3 Engine again for final calculation
  • Print invoice including discount information on invoice line level.

No comments:

Post a Comment