You are on page 1of 39

Building the Kuali Student BRMS (Business Rules Management System)

Cathy Dew & Leo Fernig Kuali Days :: Chicago May 13-14, 2008

Agenda
1. Harvesting and Structuring Rules (Cathy)
Industry Best Thinking and Practices Kuali Student Analysis

2. Setting Up the Technical BRMS Environment (Leo)


KS Business Rules Environment Work to Date

3. Integrating the BRMS and SOA (Cathy)


The Rule Entity Model Fitting It All Together

Kuali Days :: Chicago May 13-14

Getting to Functional Business Rules

RESEARCH
Theory Concepts Best Practices

DATA COLLECTION
Partner Institutions Focus on Learning Unit
Service Definitions Actors & Scenarios Entity Diagrams & Message Structures

Service Modeling Use Case Collection Data Concepts

Classification & Categorization Terminology & Definitions Strawman BRMS Strategy

Kuali Days :: Chicago May 13-14

Essential Reading
Business Rules and Information Systems: Aligning IT with Business Goal -- Tony Morgan

The Business Rule Book: Classifying, Defining and Modeling Rules -- Ronald G. Ross
Business Rules Management and Service Oriented Architecture: A Pattern Language -- Ian Graham Enterprise Patterns and MDA: Building Better Software with Archetype Patterns and UML -- Jim Arlow and Ila Neustadt Principles of the Business Rules Approach -- Ronald G. Ross Smart (Enough) Systems -- James Taylor and Neil Raden What Not How: The Business Rules Approach to Application Development -- C. J. Date Business Rules Applied: Building Better Systems Using the Business Rules Approach -- Barbara von Halle

Kuali Days :: Chicago May 13-14

Everyone Agrees
A business rule should define what should be the case It should not prescribe ::
Who invokes the rule (use case) When the rule is executed (business event or process description) Where the rule executes (design) How the rule is to be implemented (design)

In fact, Kuali Student has to do all of this as part of the BRMS

Kuali Days :: Chicago May 13-14

Ross RuleSpeak Templates


A Sentence Pattern is a basic structure (Template) used to express a Rule in a consistent, well-organized manner Every rule has a functional category ::
Rejector a constraint, any rule that disallows an event Producer neither rejects for projects, simply computes Projector stimulus/response rule, causes some new event

Some Rejector Rules


A non-major student must have permission from instructor A pre-registration slate must not contain more than 20 credit hours A student may enroll only if the student is in good standing

Kuali Days :: Chicago May 13-14

Rulespeak Terminology
Establish the anchor of the rule
The thing being constrained Rule must have one and only one anchor

Establish the correspondent(s) of the rule, a.k.a. facts


The thing doing the constraining Rule must have at least one correspondent With agreed upon terms and definitions, we could start to analyze business logic and discover rules.
Kuali Days :: Chicago May 13-14 7

Discovering Rules

Kuali Days :: Chicago May 13-14

Collecting Examples

Academic Evaluation Admissions

Transfer Articulation
Degree Composition Grades, GPA, etc. Enrollment Transfer Credit Articulation
Kuali Days :: Chicago May 13-14 9

Focus on Enrollment Rules


General Eligibility
Description Rule Facts

Kuali Days :: Chicago May 13-14

10

Focus on Enrollment Rules


FSU
Course Prereq / Coreq Rule Facts

Kuali Days :: Chicago May 13-14

11

Focus on Enrollment Rules


MIT
Course Prereq / Coreq Rule Facts

Kuali Days :: Chicago May 13-14

12

Focus on Enrollment Rules


UBC
Course Prereq / Coreq Rule Facts

Kuali Days :: Chicago May 13-14

13

Patterns Start to Emerge


Count (set of courses, criteria) >= numeric value
Credits Courses Subjects Unit Hours

Grade/GPA (criteria) >= numeric value


Course grade GPA for term, for year, overall, within major

Student is/is not value


Status is eligible, no holds, has permission Admitted to institution, college, major

Kuali Days :: Chicago May 13-14

14

Ownership vs. Execution


Ownership of rules is a function of the process (and people) responsible for authoring, maintaining and publishing a set of rules Execution of rules is the process responsible for executing a rule may be different from the processes responsible for creating/authoring the rule. Scheduling Rules, e.g., course has 200 seats
Owned by Central Scheduling Office Created during the process of scheduling Executed during registration

Kuali Days :: Chicago May 13-14

15

The Technical BRMS Environment

KS Business Rules Environment


A Business Rules Management Service (BRMS) A Rules Engine (Drools was selected for KS) Business Rules User Interfaces (that allow business analysts to create and modify business rules) Business services that execute rules
Placing the rules execution inside the service that needs it.
The enrolment service would execute pre-requisite rules, degree rules etc The student financial service would execute fee calculation rules

Business Rules Data Warehouse


Rules are extracted from the BRMS (using the standard BRMS service definitions) and loaded into the data warehouse. Business Intelligence tools (such as Jasper) can be used to write reports against this data warehouse.

Workflow
Business Rules that are managed in the BRMS can be moved through workflow processes for various levels of approval, just like any other object.

Kuali Days :: Chicago May 13-14

17

KS Business Rules Environment


Business Service Business Service Business Service

Execute Rules Drools


Executable Rules Rule Execution Engine
Exported to executable format

Get Agenda BRMS


Rules Metadata Rules

Metadata is used to produce the users palette to create and edit rules

Rules User Interface

Data Warehouse

Rule data extracted to data warehouse

Rules are created, saved and updated through the user interface

Kuali Days :: Chicago May 13-14

18

Phase 1
Business Service Business Service Business Service

Aug Dec 2007 Selection of Rules Engine Technology

Drools
Executable Rules Rule Execution Engine Rules

BRMS
Rules Metadata

Rules User Interface

Data Warehouse

Kuali Days :: Chicago May 13-14

19

Phase 2
Business Service Business Service Business Service

1) 2)

Jan May 2008 Creation of BRMS BRMS_Drools interface

Drools
Executable Rules Rule Execution Engine Rules

BRMS
Rules Metadata

Rules User Interface

Data Warehouse

Kuali Days :: Chicago May 13-14

20

Phase 3
Business Service Business Service Business Service

May June 2008 Integration of BRMS and service stack

Drools
Executable Rules Rule Execution Engine Rules

BRMS
Rules Metadata

Rules User Interface

Data Warehouse

Kuali Days :: Chicago May 13-14

21

Phase 4
Business Service Business Service Business Service

Development of User Interfaces

Drools
Executable Rules Rule Execution Engine Rules

BRMS
Rules Metadata

Rules User Interface

Data Warehouse

Kuali Days :: Chicago May 13-14

22

A Business Rule
A rule consists of a condition and action(s)
When proposition 1 proposition 2 Then action 1 and
Condition

Action

Kuali Days :: Chicago May 13-14

23

A Business Rule
Example rule:
Total credits > grade point average > 30 3.5 and

Boolean Operator Right Hand Side Comparison Operator Left Hand Side

Proposition

Kuali Days :: Chicago May 13-14

24

UML for a Business Rule

Kuali Days :: Chicago May 13-14

25

How do we get rules into the system? The Rules User Interface There are 3 stereotypical ways of presenting rules:

1. A decision table
2. A flowchart 3. A procedural rule (ifthen)

Kuali Days :: Chicago May 13-14

26

Visual Stereotype #1: Decision Table


Program
Arts Arts Science, Applied Science Science, Applied Science

Visa status
Canadian Student visa, Visitor Canadian Student visa, Visitor

Cost per credit


200 400 300 600

This is not a look-up table. Not only can you change data but you can change the structure of the table without any programming changes. For example, two new columns can be added with no changes to the code:
Program
Arts Arts Arts Arts Science, Applied Science Science, Applied Science

Min credits
0 0 15 15 0 0

Max credits
15 15 30 30 30 30

Visa status
Canadian Student visa, Visitor Canadian Student visa, Visitor Canadian Student visa, Visitor

Cost per credit


50 100 75 200 300 400

Kuali Days :: Chicago May 13-14

27

Visual Stereotype #3: Flowchart

No

Are the grades complete ?

Yes
Apply Evaluation Rule

No

Is the result a PASS?

Yes

Create Registration Record

Kuali Days :: Chicago May 13-14

28

Visual Stereotype #3: Procedural Rule

Pre-requisites for CHEM 415


Both courses
Total credits 1 course

CHEM120, CHEM130
>12 CHEM 230

AND OR AND

Average

>80%

Kuali Days :: Chicago May 13-14

29

Example of a User Interface

Kuali Days :: Chicago May 13-14

30

Rules and Business Intelligence


Traditionally Business Intelligence only deals with facts in the Enterprise Systems. Now we can apply Business Intelligence to business rules. For example:
Is there any correlation between student success and pre-requisite rules? Which courses are referenced most frequently in curriculum rules? Are there any rules that inhibit student success (in the sense of causing students to take more than 4 years to finish their program)?

Kuali Days :: Chicago May 13-14

31

How does a business services know which rules to invoke?


Business Service Business Service Business Service

Drools
Executable Rules Rule Execution Engine Rules

BRMS
Rules Metadata

Rules User Interface

Data Warehouse

Kuali Days :: Chicago May 13-14

32

Integrating the BRMS and SOA

Rules Entity Diagram


Agenda Determination Structure 1. Agenda Determination Structure :: information needed to determine the specific Agenda 2. Agenda :: set of Business Rules that apply to a business process needing a decision Agenda 3. Output :: for each Agenda, the expected output 4. Business Rule :: individual business rule 5. Anchor :: for each Rule, the entity type instance to which the rule is attached

Output

Anchor

Business Rule

Fact

6. Fact :: data (facts) needed to execute the rule

Kuali Days :: Chicago May 13-14

34

Agenda Determination Decision Table


Relation State Agenda Name

Type

Agenda Description >> Rules

Output

course enrolled/ Student enrollment reqs (student, admitted, no registered Enrolls in holds) Course academic reqts (min GPA, good standing) course reqts (pre/co/anti-reqs, w/grade) program reqts (GPA, major match) financial reqts (enr fees paid, lui fees paid) course planned Student Plans Course course reqts (pre/co/anti-reqs, w/grade) program reqts (GPA, major match)

OK / Not OK with Explanation

Status and Recommend ations

Kuali Days :: Chicago May 13-14

35

Example Business Rule


Validate Relationship Enroll in Course

1. Agenda Determination :: Validate relationship of type Enroll for Course


Student Enrolls in MATH 301

OK / Not OK

2. Agenda :: Student Enrolls in MATH 301 3. Output :: OK / Not OK 4. Business Rule :: Student has met pre-reqs of

MATH 301

Met MATH 301 Prerequisites

2 of (static list) 6 credits of (dynamic list) overall GPA >= 3.0

5. Anchor :: MATH 301


MATH 101, MATH 102, MATH 103 200-level MATH courses Academic Record

6. Facts :: course sets (static and dynamic), students academic record


36

Kuali Days :: Chicago May 13-14

Fitting It Together KS BRMS

Harvested a bunch of rules Developed a strategy for collecting and classifying rules Agreed on terminology and a business rule entity model Completed a Proof of Concept for a representative prerequisite rule Built the Core BRMS Defined and stored a business rule Translated it to a Drools Executed the rule from our Enrollment business service

Kuali Days :: Chicago May 13-14

37

Fitting It Together KS BRMS

We are in the process of modeling ::


How a business process determines which rules to execute
What is the link to the Agenda Smallest footprint possible

Who is responsible for getting the facts needed to execute the rule
Without violating SOA (who knows what) Without requiring BRMS to know about domains

Kuali Days :: Chicago May 13-14

38

Thank You

Coming Soon, to a university near you...

Kuali Days :: Chicago May 13-14

39

You might also like