Sunday, March 14, 2010

Blaze advisor tutorial

This is blog about blaze advisor(not blaze ds) tutorial.
Blaze advisor is one of the top rules engines provider similar to ILOGs jrules.

Why Blaze Advisor(or Rules Engines)
a) Blaze Advisor allows normal business users to create rules(if/then) with configurable start and end date.
The rules can be optimized by rete algorithm(which however has lots of complexity/catch - and hence users may opt for sequential mode which is like normal programming in the beginning)
b) SAS users can export their Score model (using data miner license or latent view) to PMML format which can be directly imported by Blaze advisor(or other report tools like Microstrategy)
c) Blaze allows dynamic publishing - allowing
business users to publish their rules anytime.
d) Users can also create your rules using Decision table(like oracle tables)
or Decision tree. If the tree is balanced then users should use decision table.

Disadvantages;
a) The IDE/tool sometimes is complicated for business analyst and hence it requires some technical background. However the IDE is too primitive for java/.net developers
who are used to easy(and reliable) debugging facilities in their environment.
b) The GUI for blaze advisor(created in java/swing ) is primitive and
hard to use.
c) If you use Rete algorithm mode- then it dynamically fires the rules again - if the action statement triggered change of rules.Besides it does not like else statement or any function calls in its condition parts.


How to learn blaze advisor :
Download the tool from fico website. After installing blaze advisor
- chose Help->Blaze Advisor tutorial.
Its good idea to use this tutorial to walk through the tutorial - as
it gives insight to blaze gui - which can be tough to use.


Basic steps in Blaze Advisor;
The first thing you need to know is that blaze advisor stores all
its code/data in repository(there is option to make it version control backed )

Next is you need to decide - how you want to input the data/parameters required - as you can directly use java(or .net/cobol) or use xml. The advantage of using
java is that you can load data on demand(not liked by rete). However java makes
it hard to test/debug/log for normal business users - and hence XML should be
preferred.

Now create your desired folders (like Test, Rules etc) - and create projects/rules
inside it.

Deploy your code in appserver. For java - there is standalone/console version - but
I did not find direct support for "tomcat" - however EJB based appservers like
weblogic, jboss seemed to be supported. It seems that it deploys its code
as EJB(even for webservices)

Ilog Jrules vs blaze advisor:
It may be easier to hire people knowing jrules or get documentation on jrules.
However blaze advisor is a superior product(and costly). But it definitely
requires traning by FICO for develpment as well as deployment.
Both product seem to provide .net support. However for many developers
(not business analyst) - they may find it easier to stick with jboss drools.

NOTE: This is my personal opinion (not employer) and this is a draft version

My main blog can be found at http://www.jroller.com/zahid