ebz342 building solutions using the biztalk rules engine scott woodgate jupiter product planner

27
EBZ342 Building Solutions Using the BizTalk Rules Engine Scott Woodgate Jupiter Product Planner

Post on 19-Dec-2015

218 views

Category:

Documents


1 download

TRANSCRIPT

Page 1: EBZ342 Building Solutions Using the BizTalk Rules Engine Scott Woodgate Jupiter Product Planner

EBZ342

Building Solutions Using the BizTalk Rules Engine

Scott Woodgate

Jupiter Product Planner

Page 2: EBZ342 Building Solutions Using the BizTalk Rules Engine Scott Woodgate Jupiter Product Planner

Overview of BizTalk RulesEnabling Agile Processes

Core Concepts & Scenarios

Key Personas

Demo

Rules Engine Architecture

Rules in BizTalk Server 2004Integration with Orchestration

Common Design Patterns

Q & A

Agenda

Page 3: EBZ342 Building Solutions Using the BizTalk Rules Engine Scott Woodgate Jupiter Product Planner

Enabling Agile Processes

Manual

Processes

Automated Process Islands

Connected Processes

Agile Processes

•Connected Automation

•Process externalized; Policies in code; Change is STILL hard

•Formal & Ad-hoc processes still disconnected

•Better Visibility for users; Poor Control

•Process & People connected

•Process & Policies externalized; Change is feasible thru flexible processes

•Formal & Ad-hoc processes unified

•Total visibility & control of process/ policy for business users

•Localized Automation; Process Silos

•Process & Policies in app code/data; Change is hard

•Ad-hoc processes (exceptions/variations) mostly manual

•Poor Visibility for business users

•No Automation & Process Repeatability

•Subjective Policy Enforcements

•Org-silos manifested into process/policy silos

•Business Users are active participants

Mainframes

Data

DataData

Servers

Mainframes

Data

DataData

Servers

Mainframes

Data

DataData

Servers

Policies

Challenges for Agile Processes

•Accessibility

•Flexibility

•Manageability

Agile Business Process Automation

Orchestration Rules

Tracking

Page 4: EBZ342 Building Solutions Using the BizTalk Rules Engine Scott Woodgate Jupiter Product Planner

Rules areDeclarative statements for capturing changing business policies

Represented as: IF <Condition(s)> THEN <Action(s)>

Logically grouped into policies

Complementary to procedural process models

Rules allow business users toDefine & own business policies without coding

Change business policies in real time without rebuilding/redeploying applications

Connect formal & ad-hoc (human-oriented) processes

What are Rules?What are Rules?

Page 5: EBZ342 Building Solutions Using the BizTalk Rules Engine Scott Woodgate Jupiter Product Planner

BAM

OLAP

‘On-Hold Orders’ Rule:When outstanding invoices over allowed credit limit, then suspend all ongoing orders

• KPI Reasoning

•Closed loop analytics

Business Analytics

Message Routing If order is for Product A, send it directly to factory; For all others send it to Corporate

If purchase order amount is more than $1000Then notify sales manager

Service Service Service

• Intelligent Routing

• Intelligent Notification

Custom order needs expediting; Need approval/review.

•Workflow customization

•Policy-based Routing

•Smart-Task Assignments

Ad-hoc Collaborations

If Customer is a Gold CustomerThen Apply 10% discount

A valid credit card number must be provided

•Policy management

•Validations/Constraints

•Decision support

Dynamic Business Processes

Agile Business Process Automation

Orchestration Rules

Tracking

Rules for the Agile Enterprise

Page 6: EBZ342 Building Solutions Using the BizTalk Rules Engine Scott Woodgate Jupiter Product Planner

Lightweight .NET EngineIntegrated with BizTalk Server Host-agnostic for In-proc scenarios

Powerful Tools & FrameworkSupports IW, Developers & IT AdminComplete API for Design & Execution

Rich Modeling CapabilitiesLogical Expressions (AND/OR/NOT/Custom)Data Sources: .NET Objects, XML, DB

Enterprise-ReadySecurity, Performance, Versioning

BizTalk Rules in a Nutshell

Page 7: EBZ342 Building Solutions Using the BizTalk Rules Engine Scott Woodgate Jupiter Product Planner

Rules Personas

Information WorkerDesign & Test Policies

Use business vocabularies

DeveloperIntegrate Policies & Process

Bind vocabularies

IT ProSecurity, Deployment and Migration of policies

Track Policy execution

• Composer : Composer : Stand-alone AppStand-alone App

• Use Policies Use Policies through InfoPaththrough InfoPath

• Inside Visual Inside Visual Studio .NETStudio .NET

• Composer : For Composer : For Policy BindingsPolicy Bindings

• Inside HAT Inside HAT (Health & Activity (Health & Activity Tracking)Tracking)

Page 8: EBZ342 Building Solutions Using the BizTalk Rules Engine Scott Woodgate Jupiter Product Planner

Information Worker Build & Modify

Policies• Using vocabularies or

directly from data source• Test policies

Version Policies Use Policies through

InfoPath

Page 9: EBZ342 Building Solutions Using the BizTalk Rules Engine Scott Woodgate Jupiter Product Planner

Developer Build Vocabularies

• From database, XML, .NET elements

Integrate Policies in Orchestration

• Policy shape in Orchestration Designer

Implement Policies• .NET API • XML-based Meta Data

Format

Page 10: EBZ342 Building Solutions Using the BizTalk Rules Engine Scott Woodgate Jupiter Product Planner

IT Pro Deploy and Migrate

Policies• Deploy published

policy versions• Import / Export

Policies Track Rule execution

• Unified process / rules tracking using HAT

• Monitor Performance Counters for rule activity

Administer and Manage security

Page 11: EBZ342 Building Solutions Using the BizTalk Rules Engine Scott Woodgate Jupiter Product Planner

Loan Processing Demo - Runtime

demodemo

Page 12: EBZ342 Building Solutions Using the BizTalk Rules Engine Scott Woodgate Jupiter Product Planner

Loan Processing PolicyLoan Processing PolicyIncome Status RuleIncome Status RuleIF IF

Basic Salary and Other Income > 0Basic Salary and Other Income > 0

THEN THEN

Set Income Status in the loanSet Income Status in the loan

to be “Valid”to be “Valid”

Commitments Status RuleCommitments Status RuleIF IF

The Loan ID is equal to a Valid IDThe Loan ID is equal to a Valid ID

ANDAND

Credit Card Balance > 500Credit Card Balance > 500

THEN THEN

Set Commitments Status in the loan to Set Commitments Status in the loan to "Compute ""Compute "

Employment Status RuleEmployment Status Rule

Residency Status RuleResidency Status Rule

Negation RulesNegation Rules

Request for a Loan

File receivelocation

Processed Loans

Folder forprocessed

loans

Page 13: EBZ342 Building Solutions Using the BizTalk Rules Engine Scott Woodgate Jupiter Product Planner

Architecture Overview

Page 14: EBZ342 Building Solutions Using the BizTalk Rules Engine Scott Woodgate Jupiter Product Planner

Rule Store OM

LanguageConverter(s)

Rule Store

PolicyDefinitions

VocabularyDefinitions

BRL VML

Policy / Vocabulary Authoring Tools

Vocabulary OM Policy OM

Per DefinitionAuthorizations

DESIGN TIMECOMPONENTS

Policy Class (Application Integration)

Rule Engine Class(Translation / Execution)

User Application(s) Eventing / Messaging

Tracking Monitoring Debugging

Long TermFact Store

FactRetriever

Rule EngineCache

RUN TIMECOMPONENTS

Framework Architecture

Rule EngineUpdate Service

• Policy Updates

• Authorization updates

Page 15: EBZ342 Building Solutions Using the BizTalk Rules Engine Scott Woodgate Jupiter Product Planner

Rules in XML or via API’s

Rich built-in library that includes:Temporal, relational predicates

Support for ranges and regular expressions

Arithmetic operations

Engine execution control functions

Support for complex logical expressions (AND / OR / NOT) and user defined constructs

Multiple rule stores (XML / SQL / OleDB)

Design time features

Page 16: EBZ342 Building Solutions Using the BizTalk Rules Engine Scott Woodgate Jupiter Product Planner

Design time featuresVocabulary elements to associate technical implementation to business terms

IF The Loan ID is equal to a valid ID in customer database

ANDCredit Card Balance is greater than Maximum Limit

THEN Set Commitments Status in the loan to "Compute "

LoanData.CreditBalanceLimit

Page 17: EBZ342 Building Solutions Using the BizTalk Rules Engine Scott Woodgate Jupiter Product Planner

Forward Chaining Inference MechanismFinds all true statements given knowledge base and a new set of facts

Efficient Pattern MatchingEager (tuple oriented) Match

Lazy (collection oriented) Match

Database OptimizationsDelayed Query and Virtual Working Memory

Plug-in components that are extensible and customizable

Application integration via Policy object

Run time features

Page 18: EBZ342 Building Solutions Using the BizTalk Rules Engine Scott Woodgate Jupiter Product Planner

AuthorizationRole based access to the policies/vocabularies via logical Authorization Groups

Versioning‘Latest-Version’ or ‘Specific-Version ’with Roll-back

Rule Engine Update ServiceDynamic Updates with configurable caching

Performance and scalabilityOptimized eager-match algorithm for smaller rule sets & MS algorithm for larger rule sets

Scales to large rule-sets and fact bases

Enterprise Ready Framework

Page 19: EBZ342 Building Solutions Using the BizTalk Rules Engine Scott Woodgate Jupiter Product Planner

Rules and Orchestration

Page 20: EBZ342 Building Solutions Using the BizTalk Rules Engine Scott Woodgate Jupiter Product Planner

Tools integrationVisual Studio .NET-based Orchestration Designer with Policy Object

“Call Rules” Shape

Runtime integrationIn-process execution

Works with orchestration dehydration and re-hydration model

Integrated with HAT (Health & Activity Tracking)

Integration with Orchestration

Page 21: EBZ342 Building Solutions Using the BizTalk Rules Engine Scott Woodgate Jupiter Product Planner

Patterns IllustratedCall Rules Engine to dynamically determine which orchestration to call in the next step

Call Rules Engine and determine path

Call Rules Engine to execute logic, instead of burying it in code

Use the Rules Engine for dynamic or variable delays

Page 22: EBZ342 Building Solutions Using the BizTalk Rules Engine Scott Woodgate Jupiter Product Planner

Rules or Orchestration:Where do I use them?

Use Rules for:Discrete, point-in-time evaluations & calculationsLarge no of permutations to encode in a control flowFact-based inferencing where control flow can not be predefined

Use Orchestration for:Formal workflows that require:

Long-running semantics

Transactions/ Compensations

Messaging

Known control-flow that needs to be rigorously managed for Perf/Scale

Visibility & tracking are critical

Page 23: EBZ342 Building Solutions Using the BizTalk Rules Engine Scott Woodgate Jupiter Product Planner

Gartner says…

“By enabling business users to respond more quickly to change, organizations with rules technologies will have greater agility and improve their time to market and thus their competitive advantage”

“By 2006, 80% of all integration software will include either direct or indirect business-friendly rules capability”

Conclusion

Page 24: EBZ342 Building Solutions Using the BizTalk Rules Engine Scott Woodgate Jupiter Product Planner

BizTalk Rules EngineWhen combined with orchestration technology, enables truly agile process platform TODAY

Enables business users to fully participate in business processes

Increases BPM platform ROI through policy consistency across the organization

Conclusion

Page 25: EBZ342 Building Solutions Using the BizTalk Rules Engine Scott Woodgate Jupiter Product Planner

Community Resources

Community Resourceshttp://www.microsoft.com/communities/default.mspx

Most Valuable Professional (MVP)http://www.mvp.support.microsoft.com/

NewsgroupsConverse online with Microsoft Newsgroups, including Worldwidehttp://www.microsoft.com/communities/newsgroups/default.mspx

User GroupsMeet and learn with your peershttp://www.microsoft.com/communities/usergroups/default.mspx

Page 26: EBZ342 Building Solutions Using the BizTalk Rules Engine Scott Woodgate Jupiter Product Planner

evaluationsevaluations

Page 27: EBZ342 Building Solutions Using the BizTalk Rules Engine Scott Woodgate Jupiter Product Planner

© 2003 Microsoft Corporation. All rights reserved.© 2003 Microsoft Corporation. All rights reserved.This presentation is for informational purposes only. MICROSOFT MAKES NO WARRANTIES, EXPRESS OR IMPLIED, IN THIS SUMMARY.This presentation is for informational purposes only. MICROSOFT MAKES NO WARRANTIES, EXPRESS OR IMPLIED, IN THIS SUMMARY.