guvnor presentation jervis liu

Post on 11-Nov-2014

1.870 Views

Category:

Education

3 Downloads

Preview:

Click to see full reader

DESCRIPTION

 

TRANSCRIPT

Guvnor

Jervis Liu

What is Guvnor?

● Business Knowledge Management System● Application to manage business knowledge

○ Business Rules (BRMS)○ Business Workflows (BWMS)

● Accessible through○ Browser○ REST webservice

Why would I need a BRMSlike Guvnor?

Use case: mortgage

● Mortgage approval● Mortgage rate calculation

Programmers are not domain experts

DiplomaComputer science

+Economics

+Medicine

John Unfindable Smith

Domain experts define rules

● Mortgage manager == domain expert○ defines rules○ wants to edit rules

Invalid: must be a number

Too complexNot flexible enough

Business rules change often

when house near Fukushimathen ...

when guarantor invested in Lehman Brothers stockthen ...

Only works for data changes

Too slow for business rules changes

Possible through Guvnor

How do I define my data model?

●POJO modelUpload a Java JAR file into Guvnor

●Declarative modelDeclare a model within Guvnor

●Enumerations

Business Model

Business ModelPOJO Model

Uploading a POJO model

Business ModelDeclarative model

Declarative model editor

● Add CEP support to your classes1. @role(event) annotation2. Add to POJOs or declared types

● Example types:

1. Loan Application2. Applicant3. ...

● Example fields:1. LoanApplication.amount2. LoanApplication.approved

Business ModelDeclarative model

Declarative model editor

Business ModelDeclarative model

Adding a new Type● Types can extend Java classes● Types can extend other declared types

Adding a field to a Fact

Business ModelEnumerations

●Java enumerationsDefined in POJO model

●Guvnor enumerationsDefined declaratively in Guvnor

Business ModelEnumerations

Guvnor enumeration editor:

Business ModelEnumerations

Guvnor enumerations:

● Restrict any domain field● Dependent enumerations

● Pull content from external source

How do I define my business rules?

Authoring rules

●Web-based editor

●Web-based templates

●Web-based decision tables

●Domain Specific Language

●Free-form DRL

Authoring rules

Authoring rulesWeb-based editor

Web-based editor:

● Visually define individual rules quickly and easily

● Supports a wide sub-set of Drools Expert DRL features1. all of the following are true2. any of the following are true3. nested model accessors4. from5. accumulate6. collect7. CEP8. etc

Authoring rulesWeb-based editor

Web-based editor

Authoring rulesWeb-based templates

Web-based templates:

● Visually define multiple rules quickly and easily

● Extension of Web-based editor

● Define parameters in rules

● Backed by a table of data to build individual rules

Authoring rulesWeb-based templates

Web-based templates (editor)

Authoring rulesWeb-based templates

Web-based templates (data)

Authoring rulesWeb-based templates

Resultant rules

Authoring rulesWeb-based decision tables

Web-based decision tables:

● Visually define multiple rules quickly and easily

● Rapid construction using Wizard

● Extended entryValues are held in the decision table

● Limited entry Values are held in the column definition

● Expanded form

● Mergable cells

● Grouping of rows

Authoring rulesWeb-based decision tables

Using a Wizard

Authoring rulesWeb-based decision tables

Extended Entry

Authoring rulesWeb-based decision tables

Limited Entry

Authoring rulesWeb-based decision tables

Expanded form● One row for each combination of conditions● Condition 1 with 3 values (25, 30, 35)● Condition 2 with 3 values ("AA", "OK", "Sub prime")● 3 x 3 = 9 rules

Authoring rulesWeb-based decision tables

Merging cells

Grouping cells

Decision table analysis

● Impossible matches○ 1 row can never match

● Conflict detection○ 2 rows match at same time for certain ranges○ and contradict each other

Authoring rulesWeb-based decision tables

Resultant rules

Authoring rulesDomain Specific Language

Domain Specific Language:

● Define domain specific sentences for use in rules

● Include DSL sentences in rules

Authoring rulesFree-form DRL

Free-form DRL:

● Cutting edge Drools Expert syntax 1. Backwards chaining2. Declarative agenda3. Traits

● Some people (developers) just prefer it

How do I check the quality of my rules?

Test Scenarios

● Validates your decisions ● Guards your knowledge

● Rules specify what decisions to make with the given data○ When the data exists. Then do the following

● Test scenarios validate that the knowledge base does what is expected

○ Given we have this data. Expect the following to be true

Overall report of test statuses and coverage

Single ScenarioA 17-year-old should never get a loan, even if he has an income source.

Failing ScenarioIf a change in the future will break the knowledge base. Allowing loans for underages. This test scenario will pick it up.

Rule Analysis

● Looks for errors in the rule logic and mistakes made by the rule authors

○ Redundant and subsumptant rules○ Missing ranges○ Rules that can never fire○ Rules that always fire○ Rule optimization

Rule Analysis Report

Example report warning about missing ranges and missing rule conditions.

How do I define workflows?

Web-based BPMN2 authoring● Guvnor integration with jBPM5 Web Designer allows:

○ editing/creation of fully-executable jBPM5 processes○ viewing the source of the process in different formats (png, pdf, json, bpmn2, svg)○ automatic creation of human-task forms (fully executable in jBPM console) ○ creation of jBPM workitem definition configurations (via custom editor, similar to

sprint context editor)○ visual process validation○ automatic installation of assets from the jBPM Service Repository○ ability to convert jBPM3.2-based process definitions to BPMN2

Where does Guvnor fit into my infrastructure?

Jackrabbit Repository Configuration

● All assets are stored in a content repository (JCR 2.0 compliant)

● Configuring different repositories is possible● Default repository implementation is Apache Jackrabbit

● Jackrabbit allows repository to be stored ○ File System (default)○ External Database (Oracle, MySQL, etc)

● Configuring Jackrabbit is often tedious mainly because of limited or not-existing documentation

● Guvnor Admin section includes a repository configuration widget that helps with configuration creation.

Jackrabbit Repo. Configuration (2)

● BRMS 5.2 repository configuration widget:

Jackrabbit Repo. Configuration (3)

● Guvnor repository configuration widget:

Jackrabbit Repo. Configuration (4)

● Guvnor repository configuration widget:

How do I release the knowledge?

Releasing the knowledgePackaging

Assemble required assets into a single deployable unit

Releasing the knowledgeVersioning

Both assets and packages are "versioned" in the Guvnor

Releasing the knowledgeLifecycle management

Change the status:

Create status (life cycles):

How do I use the knowledge?

Using the knowledgeThe Knowledge Agent

Using the knowledgeThe REST Interface

The Guvnor repository back end can be accessed via Rest and WebDav. REST Examples:

URL Mode Produces Mime-

TypeConsumes MIME-Type

Description

/packages/{packageName}

GET application/atom+xml none Returns the metadata of the package {packageName} as an Atom Entry.

/packages/{packageName}

GET application/jsonapplication/xml

none Returns the metadata of the package {packageName} as Json or XML

/packages/{packageName}/binary

GET application/octet-stream

none Returns the compiled binary of the package {packageName} as a binary stream

/packages/{packageName}

PUT application/atom+xml none Updates the metadata of package {packageName} with a given Atom Entry.

/packages POST application/atom+xml application/atom+xml Creates a package from an Atom Entry. Returns the newly created package in Atom Entry format

Spring Context Editor● Allows to create and manage Spring Context files:

● Spring contexts have own asset type:

● Retrievable via REST API by clients.● Easy to create custom editors for integration with other

technologies.

Embeddable Asset Editors● Guvnor provides a set of Editors to author assets● Asset format determines the Editor used● Some existing editors:

○ Guided Rule Editor○ DRL Editor○ DSL Editor○ Decision Table Editor○ Spring Context Editor○ jBPM5 Workitem Definition Editor○ ...

● Guvnor also has the ability to embed asset editors in client applications

Embeddable Asset Editors (2)● Embedding enabled via StandaloneEditorServlet● Client applications must perform request to

/standaloneEditorServlet and can interact with the embedded editor(s) via JavaScript.

○ Restriction – since JavaScript is used, client application must run on the same server as Guvnor (cross-domain interaction only)

● 100% community contribution● Three interaction modes available:

○ Guided Rule editing mode (new or existing assets)

○ Asset Editor (existing assets only)○ New asset mode

Questions

http://www.jboss.org/drools

top related