SlideShare a Scribd company logo
THE INTERSECTION
OF BUSINESS RULES
MANAGEMENT AND BIG DATA
Anurag Saran, Sal Elrahal, Murph
Red Hat
June 30, 2016
#redhat #rhsummit
1
AGENDA
BECAUSE AGEN DAS ARE AWESOME
INTRODUCTIONS
BACKGROUND: AML
THREE TIERED ANALYTICS SOLUTION
CUSTOMER SUCCESS STORY
Q&A
1
2
3
Sanitize and Organize the Data
Analyze the Data
Post Classification Tasks
2
BACKGROUND: AML
#redhat #rhsummit
3.1
AML is practice of integrating the proceeds of crime into the legitimate
mainstream of the financial community by concealing its origin.
Team Good Guy:
Financial institutions,
Regulators and
law enforcement
In 1920;s, Gangsters had money in small denominations. They started
business of slot machines and laundromats. Thus the term laundering.
AML AND HISTORY
3.2
REGUL ATO RY
EN VIR ONMENT
OFFICE OF
FO REI GN AS SETS
CO NTROL (OFAC)
3.3
PILL ARS OF AML
3.4
KEY INGREDIENTS
3.5
WEB BASED AUTHORING – PROCESS
3.6
CONTINUED – DECISION TABLE
3.7
DATA
JB OSS DATA GRID & DATA V IR TU AL I Z ATION
JB OSS DATA GRID
In-Memory Distributed Caching
Distributed Caching and Compute
Embedded or Service
Transactional and Persistent
Peer-to-Peer Linear Scaling
JB OSS DATA
VI RT UAL I Z AT I O N
Provide Virtual Data Layer
Consume Databases, Services, Files,
NoSQL
Expose JDBC, ODBC, REST, SOAP, ODATA
Transactions, Caching, Advanced Joins
3.8
THREE TIERED SOLUTION
#redhat #rhsummit
4 .1
REFERENCE ARCHITE CTURE
4 .2
BUILD AN ADAPTIVE SYSTEM
4 .3
USE RULE S IN MAP AND REDUCE. USE
PIG SCRIP T TO GENER ATE RULE S
4 .4
BUILD SM ARTER RULE S USING STATIC,
LINEA R REGRE SSION AND SOCI AL
GRAPH INPUT S
4 .5
BUILD A UI THAT YOUR
USERS WILL LOVE
4 .6
4 .7
BUILD COMP ONENT BASED L AYOUT
4 .8
SANITIZE AND ORGANIZE THE DATA
#redhat #rhsummit
5.1
5.2
KNOW YOUR CUSTOMER-USE FREE DATA
5.3
ANALYZE THE DATA
#redhat #rhsummit
6.1
HAN D WRITTEN RULES I N MAP REDUCE
GENERATED RULE S FR OM DATA
ANA LYSIS
TRANSACTION ENGINE USAGE
6.2
HAN D WRI TTEN RUL ES I N MAP REDUCE
MapReduce with Transaction Profile
Java Code
Rules
6.3
TRANSACTION PROFILE
CC # Amount State Profession
1234123412341234 $105.67 NC Gas Station
5678567856785678 $33.97 MD Ice Cream Parlor
1234123412341234 $822.97 NC Gas Station
1029102910291029 $610.20 TX Artist
..... ...... ..... .....
State Profession Avg Std Dev ....
NC Gas Station $321.23 $22.13 .....
NC Writer $22.67 $59.08 .....
MD Ice Cream Parlor $523.73 $30.23 .....
TX Artist $987.42 $303.76 .....
..... ...... ..... ..... .....
MAP REDUCE
6.4
public void map(Object lineNumber, Text line, Context output) {
Transaction transaction = new Transaction(value.toString());
String state = transaction.getState();
String profession = transaction.getProfession();
String key = state + “-” + profession;
output.write(new Text(key), new Text(transaction.toString()));
}
public void reduce(Text key, Iterable<Text> values, Context output) {
TransactionProfile transactionProfile = new TransactionProfile();
for(Text value: values) {
Transaction transaction = new Transaction(value.toString());
addTransaction(transactionProfile, transaction);
}
output.write(key, new Text(transactionProfile.toString()));
}
public void addTransaction(TransactionProfile transactionProfile, Transaction transaction) {
transactionProfile.updateTotal(transaction.getAmount());
}
MAP PHASE
REDUCE
PHASE
6.5
when
$transaction : Transaction()
then
mapTo($transaction.state + $transaction.profession, $transaction)
end
when
$transaction : Transaction()
$transactionProfile : TransactionProfile()
then
$transactionProfile.updateTotal($transaction.amount)
end
MAP PHASE
REDUCE
PHASE
6.6
GENERATED RULES FROM BIG DATA
Joining Data Types with Pig
Linear Regression
6.7
JOINING DATA TYPE S
A# Name State City Zip Age Sex Type ...
5532 Sal NC Charlotte 28206 65 M Chk ...
2341 Murph NY New York 24439 82 M Sav ...
7424 Anurag NJ Edison 29945 81 M Sav ...
1643 Derik MD Bowie 44293 75 M Bus ...
T# A# Amount Type From Zip ToZip IP Country ...
00004213 7424 NC CC 28206 28202 96.12.23.3 US ...
00000213 2341 NY DR 24439 28826 8.7.6.5 US ...
00053322 7424 NJ CC 29945 34435 1.2.3.4 US ...
00008843 2341 MD MT 44293 29846 34.34.34.2 US ...
ACCOUNT DATA
TRANSACTION DATA
6.8
transaction = load '/user/aml-demo/trans.txt/' using PigStorage(',') as …..
account = load '/user/aml-demo/account.txt' using PigStorage(',') as …..
C = foreach account generate AccountNo as id, ZipCode,Occupation;
jnd = join transaction by AccountNo, C by id;
D = group jnd by (C::ZipCode,transaction::TransactionType,C::Occupation);
E = foreach D generate flatten(group) as (zip,Tranaction,occupation),SUM($1.Amount) as tota
STORE E into 'idout' USING PigStorage(',');
6.9
TR ANS AC TION ENGINE USAGE
Actionable - Leverage all generated rules
Adaptive - Historically & Parameter Tuning
6.10
AC TIONABL E
6.11
ADAP TIVE - HISTO RICAL LY
6.12
ADAP TIVE - PAR AM ETER TUNING
6.13
POST CLASSIFICATION TASKS
#redhat #rhsummit
7.1
BX MS DESI GN PAT TERNS
7.2
MODEL
DOCUMENT BASED GENERATION
GUIDED EDITING ...
7.3
GUIDED EDITING
DYNAMI C SUB PROCESSES
7.5
VE RS I ON, BUI L D, STO RE, DEPLOY
7.6
VE RS I ON, BUI L D, STO RE, DEPLOY
7.7
package example;
import org.kie.api.runtime.KieSession;
import org.kie.api.runtime.manager.RuntimeEngine;
import org.kie.remote.client.api.RemoteRestRuntimeEngineBuilder;
import org.kie.remote.client.api.RemoteRuntimeEngineFactory;
public class Client {
public static void main(String[] args) {
RemoteRestRuntimeEngineBuilder builder = RemoteRuntimeEngineFactory.newRestBuilder()
.addDeploymentId(deployment)
.addUrl(url)
.addUserName(username)
.addPassword(password)
.addTimeout(timeout);
RuntimeEngine runtimeEngine = builder.build();
KieSession session = runtimeEngine.getKieSession();
session.startProcess(process, parameters);
}
}
EXECUTE
7.8
EXECUTE
7.9
var url = util.getKieServerUrl()
+ "/kie-server/services/rest/server/queries/tasks/instances/pot-owners"
+ "?page=" + page;
$http.defaults.headers.common.Authorization = 'Bearer ' + $scope.token;
$http.defaults.headers.common['Accept'] = "application/json";
$http.get(url)
.success(function (data) {
$scope.data.result = data['task-summary'];
})
.error(function (error) {
$scope.data.error = {};
$scope.data.error.code = 'getMyTasks';
$scope.data.error.message = 'The task list could not be retrieved.'
});
EXECUTE!
7.10
EXECUTE
7.11
SUMMARY
#redhat #rhsummit
8.1
SANITIZE AND ORGANIZE THE DATA
#redhat #rhsummit
8.2
ANALYZE THE DATA
#redhat #rhsummit
8.3
POST CLASSIFICATION TASKS
#redhat #rhsummit
8.4
System Architecture – Transaction/BIG Data Phase
Data Grid
JBOSS EAP
BPMS
Happy Path
New Transaction
Check Rules
No Rules Applied
Pass Through Transactions
System Architecture – Transaction Phase
Data Grid
JBOSS EAP
BPMS
Suspicious Path
New Transaction
Apply Rules
Score incoming transaction
Task Created for analyst to work On.
Retrieve Historical Trasaction and store
in cache for analysis.
System Architecture – Insight Phase
Data Grid
JBOSS EAP
BPMS
Fraud Transaction
Customer Insight Rules Insight
Rule Insight – Know exact rules that
were applied.
Data Insight - Slice/Dice data
System Architecture – Task Phase
Data Grid
JBOSS EAP
BPMS
Fraud Transaction
Customer Insight Rules Insight
Work On Task.
Invoke relevant sub process
System Architecture – Update Phase
Data Grid
JBOSS EAP
BPMS
Customer Insight Rules Insight
With transaction insights,
modify/update rules.
With rules insights, modify/update
rules.
Run PIG jobs to update rules
CUSTOMER SUCCESS
STORY
#redhat #rhsummit
9.1
9.2
9.3
9.4
9.5
9.6
9.7
9.8
9.9
9.10
QUESTIONS
?
#redhat #rhsummit
10
LEARN. NETWORK.
EXPERIENCE OPEN
SOURCE.
#redhat #rhsummit
11

More Related Content

Similar to The intersection of business rules and big data.

Dangerous on ClickHouse in 30 minutes, by Robert Hodges, Altinity CEO
Dangerous on ClickHouse in 30 minutes, by Robert Hodges, Altinity CEODangerous on ClickHouse in 30 minutes, by Robert Hodges, Altinity CEO
Dangerous on ClickHouse in 30 minutes, by Robert Hodges, Altinity CEO
Altinity Ltd
 
Mongo db world 2014 billrun
Mongo db world 2014   billrunMongo db world 2014   billrun
Mongo db world 2014 billrunMongoDB
 
GraphTalk Helsinki - Fraud Analysis with Neo4j
GraphTalk Helsinki - Fraud Analysis with Neo4jGraphTalk Helsinki - Fraud Analysis with Neo4j
GraphTalk Helsinki - Fraud Analysis with Neo4j
Neo4j
 
Data Time Travel by Delta Time Machine
Data Time Travel by Delta Time MachineData Time Travel by Delta Time Machine
Data Time Travel by Delta Time Machine
Databricks
 
Data Time Travel by Delta Time Machine
Data Time Travel by Delta Time MachineData Time Travel by Delta Time Machine
Data Time Travel by Delta Time Machine
Databricks
 
Measurements in Cryptocurrency Networks
Measurements in Cryptocurrency NetworksMeasurements in Cryptocurrency Networks
Measurements in Cryptocurrency Networks
Bernhard Haslhofer
 
Large GIS Data Reprojection With FME Workbench - UTM Zone Fanout Solution
Large GIS Data Reprojection With FME Workbench - UTM Zone Fanout SolutionLarge GIS Data Reprojection With FME Workbench - UTM Zone Fanout Solution
Large GIS Data Reprojection With FME Workbench - UTM Zone Fanout Solution
Safe Software
 
Hailey_Database_Performance_Made_Easy_through_Graphics.pdf
Hailey_Database_Performance_Made_Easy_through_Graphics.pdfHailey_Database_Performance_Made_Easy_through_Graphics.pdf
Hailey_Database_Performance_Made_Easy_through_Graphics.pdf
cookie1969
 
RCEC Email 3.5.03
RCEC Email 3.5.03RCEC Email 3.5.03
RCEC Email 3.5.03
Obama White House
 
MongoDB for Time Series Data Part 2: Analyzing Time Series Data Using the Agg...
MongoDB for Time Series Data Part 2: Analyzing Time Series Data Using the Agg...MongoDB for Time Series Data Part 2: Analyzing Time Series Data Using the Agg...
MongoDB for Time Series Data Part 2: Analyzing Time Series Data Using the Agg...
MongoDB
 
Nyc open data project ii -- predict where to get and return my citibike
Nyc open data project ii -- predict where to get and return my citibikeNyc open data project ii -- predict where to get and return my citibike
Nyc open data project ii -- predict where to get and return my citibike
Vivian S. Zhang
 
Samantha Wang [InfluxData] | Best Practices on How to Transform Your Data Usi...
Samantha Wang [InfluxData] | Best Practices on How to Transform Your Data Usi...Samantha Wang [InfluxData] | Best Practices on How to Transform Your Data Usi...
Samantha Wang [InfluxData] | Best Practices on How to Transform Your Data Usi...
InfluxData
 
Scylla Summit 2018: From SAP to Scylla - Tracking the Fleet at GPS Insight
Scylla Summit 2018: From SAP to Scylla - Tracking the Fleet at GPS InsightScylla Summit 2018: From SAP to Scylla - Tracking the Fleet at GPS Insight
Scylla Summit 2018: From SAP to Scylla - Tracking the Fleet at GPS Insight
ScyllaDB
 
The Ring programming language version 1.7 book - Part 10 of 196
The Ring programming language version 1.7 book - Part 10 of 196The Ring programming language version 1.7 book - Part 10 of 196
The Ring programming language version 1.7 book - Part 10 of 196
Mahmoud Samir Fayed
 
Beyond PHP - It's not (just) about the code
Beyond PHP - It's not (just) about the codeBeyond PHP - It's not (just) about the code
Beyond PHP - It's not (just) about the code
Wim Godden
 
第7回 大規模データを用いたデータフレーム操作実習(1)
第7回 大規模データを用いたデータフレーム操作実習(1)第7回 大規模データを用いたデータフレーム操作実習(1)
第7回 大規模データを用いたデータフレーム操作実習(1)
Wataru Shito
 
R getting spatial
R getting spatialR getting spatial
R getting spatial
FAO
 
Timeli: Believing Cassandra: Our Big-Data Journey To Enlightenment under the ...
Timeli: Believing Cassandra: Our Big-Data Journey To Enlightenment under the ...Timeli: Believing Cassandra: Our Big-Data Journey To Enlightenment under the ...
Timeli: Believing Cassandra: Our Big-Data Journey To Enlightenment under the ...
DataStax Academy
 

Similar to The intersection of business rules and big data. (20)

Dangerous on ClickHouse in 30 minutes, by Robert Hodges, Altinity CEO
Dangerous on ClickHouse in 30 minutes, by Robert Hodges, Altinity CEODangerous on ClickHouse in 30 minutes, by Robert Hodges, Altinity CEO
Dangerous on ClickHouse in 30 minutes, by Robert Hodges, Altinity CEO
 
Mongo db world 2014 billrun
Mongo db world 2014   billrunMongo db world 2014   billrun
Mongo db world 2014 billrun
 
GraphTalk Helsinki - Fraud Analysis with Neo4j
GraphTalk Helsinki - Fraud Analysis with Neo4jGraphTalk Helsinki - Fraud Analysis with Neo4j
GraphTalk Helsinki - Fraud Analysis with Neo4j
 
Data Time Travel by Delta Time Machine
Data Time Travel by Delta Time MachineData Time Travel by Delta Time Machine
Data Time Travel by Delta Time Machine
 
Data Time Travel by Delta Time Machine
Data Time Travel by Delta Time MachineData Time Travel by Delta Time Machine
Data Time Travel by Delta Time Machine
 
Measurements in Cryptocurrency Networks
Measurements in Cryptocurrency NetworksMeasurements in Cryptocurrency Networks
Measurements in Cryptocurrency Networks
 
Large GIS Data Reprojection With FME Workbench - UTM Zone Fanout Solution
Large GIS Data Reprojection With FME Workbench - UTM Zone Fanout SolutionLarge GIS Data Reprojection With FME Workbench - UTM Zone Fanout Solution
Large GIS Data Reprojection With FME Workbench - UTM Zone Fanout Solution
 
Hailey_Database_Performance_Made_Easy_through_Graphics.pdf
Hailey_Database_Performance_Made_Easy_through_Graphics.pdfHailey_Database_Performance_Made_Easy_through_Graphics.pdf
Hailey_Database_Performance_Made_Easy_through_Graphics.pdf
 
Suprfull
SuprfullSuprfull
Suprfull
 
RCEC Email 3.5.03
RCEC Email 3.5.03RCEC Email 3.5.03
RCEC Email 3.5.03
 
MongoDB for Time Series Data Part 2: Analyzing Time Series Data Using the Agg...
MongoDB for Time Series Data Part 2: Analyzing Time Series Data Using the Agg...MongoDB for Time Series Data Part 2: Analyzing Time Series Data Using the Agg...
MongoDB for Time Series Data Part 2: Analyzing Time Series Data Using the Agg...
 
Nyc open data project ii -- predict where to get and return my citibike
Nyc open data project ii -- predict where to get and return my citibikeNyc open data project ii -- predict where to get and return my citibike
Nyc open data project ii -- predict where to get and return my citibike
 
Samantha Wang [InfluxData] | Best Practices on How to Transform Your Data Usi...
Samantha Wang [InfluxData] | Best Practices on How to Transform Your Data Usi...Samantha Wang [InfluxData] | Best Practices on How to Transform Your Data Usi...
Samantha Wang [InfluxData] | Best Practices on How to Transform Your Data Usi...
 
Scylla Summit 2018: From SAP to Scylla - Tracking the Fleet at GPS Insight
Scylla Summit 2018: From SAP to Scylla - Tracking the Fleet at GPS InsightScylla Summit 2018: From SAP to Scylla - Tracking the Fleet at GPS Insight
Scylla Summit 2018: From SAP to Scylla - Tracking the Fleet at GPS Insight
 
The Ring programming language version 1.7 book - Part 10 of 196
The Ring programming language version 1.7 book - Part 10 of 196The Ring programming language version 1.7 book - Part 10 of 196
The Ring programming language version 1.7 book - Part 10 of 196
 
Beyond PHP - It's not (just) about the code
Beyond PHP - It's not (just) about the codeBeyond PHP - It's not (just) about the code
Beyond PHP - It's not (just) about the code
 
RegressionProjectReport
RegressionProjectReportRegressionProjectReport
RegressionProjectReport
 
第7回 大規模データを用いたデータフレーム操作実習(1)
第7回 大規模データを用いたデータフレーム操作実習(1)第7回 大規模データを用いたデータフレーム操作実習(1)
第7回 大規模データを用いたデータフレーム操作実習(1)
 
R getting spatial
R getting spatialR getting spatial
R getting spatial
 
Timeli: Believing Cassandra: Our Big-Data Journey To Enlightenment under the ...
Timeli: Believing Cassandra: Our Big-Data Journey To Enlightenment under the ...Timeli: Believing Cassandra: Our Big-Data Journey To Enlightenment under the ...
Timeli: Believing Cassandra: Our Big-Data Journey To Enlightenment under the ...
 

Recently uploaded

Software Delivery At the Speed of AI: Inflectra Invests In AI-Powered Quality
Software Delivery At the Speed of AI: Inflectra Invests In AI-Powered QualitySoftware Delivery At the Speed of AI: Inflectra Invests In AI-Powered Quality
Software Delivery At the Speed of AI: Inflectra Invests In AI-Powered Quality
Inflectra
 
Empowering NextGen Mobility via Large Action Model Infrastructure (LAMI): pav...
Empowering NextGen Mobility via Large Action Model Infrastructure (LAMI): pav...Empowering NextGen Mobility via Large Action Model Infrastructure (LAMI): pav...
Empowering NextGen Mobility via Large Action Model Infrastructure (LAMI): pav...
Thierry Lestable
 
FIDO Alliance Osaka Seminar: Passkeys at Amazon.pdf
FIDO Alliance Osaka Seminar: Passkeys at Amazon.pdfFIDO Alliance Osaka Seminar: Passkeys at Amazon.pdf
FIDO Alliance Osaka Seminar: Passkeys at Amazon.pdf
FIDO Alliance
 
Securing your Kubernetes cluster_ a step-by-step guide to success !
Securing your Kubernetes cluster_ a step-by-step guide to success !Securing your Kubernetes cluster_ a step-by-step guide to success !
Securing your Kubernetes cluster_ a step-by-step guide to success !
KatiaHIMEUR1
 
When stars align: studies in data quality, knowledge graphs, and machine lear...
When stars align: studies in data quality, knowledge graphs, and machine lear...When stars align: studies in data quality, knowledge graphs, and machine lear...
When stars align: studies in data quality, knowledge graphs, and machine lear...
Elena Simperl
 
DevOps and Testing slides at DASA Connect
DevOps and Testing slides at DASA ConnectDevOps and Testing slides at DASA Connect
DevOps and Testing slides at DASA Connect
Kari Kakkonen
 
Unsubscribed: Combat Subscription Fatigue With a Membership Mentality by Head...
Unsubscribed: Combat Subscription Fatigue With a Membership Mentality by Head...Unsubscribed: Combat Subscription Fatigue With a Membership Mentality by Head...
Unsubscribed: Combat Subscription Fatigue With a Membership Mentality by Head...
Product School
 
Connector Corner: Automate dynamic content and events by pushing a button
Connector Corner: Automate dynamic content and events by pushing a buttonConnector Corner: Automate dynamic content and events by pushing a button
Connector Corner: Automate dynamic content and events by pushing a button
DianaGray10
 
FIDO Alliance Osaka Seminar: Overview.pdf
FIDO Alliance Osaka Seminar: Overview.pdfFIDO Alliance Osaka Seminar: Overview.pdf
FIDO Alliance Osaka Seminar: Overview.pdf
FIDO Alliance
 
Encryption in Microsoft 365 - ExpertsLive Netherlands 2024
Encryption in Microsoft 365 - ExpertsLive Netherlands 2024Encryption in Microsoft 365 - ExpertsLive Netherlands 2024
Encryption in Microsoft 365 - ExpertsLive Netherlands 2024
Albert Hoitingh
 
Assuring Contact Center Experiences for Your Customers With ThousandEyes
Assuring Contact Center Experiences for Your Customers With ThousandEyesAssuring Contact Center Experiences for Your Customers With ThousandEyes
Assuring Contact Center Experiences for Your Customers With ThousandEyes
ThousandEyes
 
JMeter webinar - integration with InfluxDB and Grafana
JMeter webinar - integration with InfluxDB and GrafanaJMeter webinar - integration with InfluxDB and Grafana
JMeter webinar - integration with InfluxDB and Grafana
RTTS
 
UiPath Test Automation using UiPath Test Suite series, part 3
UiPath Test Automation using UiPath Test Suite series, part 3UiPath Test Automation using UiPath Test Suite series, part 3
UiPath Test Automation using UiPath Test Suite series, part 3
DianaGray10
 
Knowledge engineering: from people to machines and back
Knowledge engineering: from people to machines and backKnowledge engineering: from people to machines and back
Knowledge engineering: from people to machines and back
Elena Simperl
 
De-mystifying Zero to One: Design Informed Techniques for Greenfield Innovati...
De-mystifying Zero to One: Design Informed Techniques for Greenfield Innovati...De-mystifying Zero to One: Design Informed Techniques for Greenfield Innovati...
De-mystifying Zero to One: Design Informed Techniques for Greenfield Innovati...
Product School
 
Epistemic Interaction - tuning interfaces to provide information for AI support
Epistemic Interaction - tuning interfaces to provide information for AI supportEpistemic Interaction - tuning interfaces to provide information for AI support
Epistemic Interaction - tuning interfaces to provide information for AI support
Alan Dix
 
Dev Dives: Train smarter, not harder – active learning and UiPath LLMs for do...
Dev Dives: Train smarter, not harder – active learning and UiPath LLMs for do...Dev Dives: Train smarter, not harder – active learning and UiPath LLMs for do...
Dev Dives: Train smarter, not harder – active learning and UiPath LLMs for do...
UiPathCommunity
 
Elevating Tactical DDD Patterns Through Object Calisthenics
Elevating Tactical DDD Patterns Through Object CalisthenicsElevating Tactical DDD Patterns Through Object Calisthenics
Elevating Tactical DDD Patterns Through Object Calisthenics
Dorra BARTAGUIZ
 
The Art of the Pitch: WordPress Relationships and Sales
The Art of the Pitch: WordPress Relationships and SalesThe Art of the Pitch: WordPress Relationships and Sales
The Art of the Pitch: WordPress Relationships and Sales
Laura Byrne
 
Designing Great Products: The Power of Design and Leadership by Chief Designe...
Designing Great Products: The Power of Design and Leadership by Chief Designe...Designing Great Products: The Power of Design and Leadership by Chief Designe...
Designing Great Products: The Power of Design and Leadership by Chief Designe...
Product School
 

Recently uploaded (20)

Software Delivery At the Speed of AI: Inflectra Invests In AI-Powered Quality
Software Delivery At the Speed of AI: Inflectra Invests In AI-Powered QualitySoftware Delivery At the Speed of AI: Inflectra Invests In AI-Powered Quality
Software Delivery At the Speed of AI: Inflectra Invests In AI-Powered Quality
 
Empowering NextGen Mobility via Large Action Model Infrastructure (LAMI): pav...
Empowering NextGen Mobility via Large Action Model Infrastructure (LAMI): pav...Empowering NextGen Mobility via Large Action Model Infrastructure (LAMI): pav...
Empowering NextGen Mobility via Large Action Model Infrastructure (LAMI): pav...
 
FIDO Alliance Osaka Seminar: Passkeys at Amazon.pdf
FIDO Alliance Osaka Seminar: Passkeys at Amazon.pdfFIDO Alliance Osaka Seminar: Passkeys at Amazon.pdf
FIDO Alliance Osaka Seminar: Passkeys at Amazon.pdf
 
Securing your Kubernetes cluster_ a step-by-step guide to success !
Securing your Kubernetes cluster_ a step-by-step guide to success !Securing your Kubernetes cluster_ a step-by-step guide to success !
Securing your Kubernetes cluster_ a step-by-step guide to success !
 
When stars align: studies in data quality, knowledge graphs, and machine lear...
When stars align: studies in data quality, knowledge graphs, and machine lear...When stars align: studies in data quality, knowledge graphs, and machine lear...
When stars align: studies in data quality, knowledge graphs, and machine lear...
 
DevOps and Testing slides at DASA Connect
DevOps and Testing slides at DASA ConnectDevOps and Testing slides at DASA Connect
DevOps and Testing slides at DASA Connect
 
Unsubscribed: Combat Subscription Fatigue With a Membership Mentality by Head...
Unsubscribed: Combat Subscription Fatigue With a Membership Mentality by Head...Unsubscribed: Combat Subscription Fatigue With a Membership Mentality by Head...
Unsubscribed: Combat Subscription Fatigue With a Membership Mentality by Head...
 
Connector Corner: Automate dynamic content and events by pushing a button
Connector Corner: Automate dynamic content and events by pushing a buttonConnector Corner: Automate dynamic content and events by pushing a button
Connector Corner: Automate dynamic content and events by pushing a button
 
FIDO Alliance Osaka Seminar: Overview.pdf
FIDO Alliance Osaka Seminar: Overview.pdfFIDO Alliance Osaka Seminar: Overview.pdf
FIDO Alliance Osaka Seminar: Overview.pdf
 
Encryption in Microsoft 365 - ExpertsLive Netherlands 2024
Encryption in Microsoft 365 - ExpertsLive Netherlands 2024Encryption in Microsoft 365 - ExpertsLive Netherlands 2024
Encryption in Microsoft 365 - ExpertsLive Netherlands 2024
 
Assuring Contact Center Experiences for Your Customers With ThousandEyes
Assuring Contact Center Experiences for Your Customers With ThousandEyesAssuring Contact Center Experiences for Your Customers With ThousandEyes
Assuring Contact Center Experiences for Your Customers With ThousandEyes
 
JMeter webinar - integration with InfluxDB and Grafana
JMeter webinar - integration with InfluxDB and GrafanaJMeter webinar - integration with InfluxDB and Grafana
JMeter webinar - integration with InfluxDB and Grafana
 
UiPath Test Automation using UiPath Test Suite series, part 3
UiPath Test Automation using UiPath Test Suite series, part 3UiPath Test Automation using UiPath Test Suite series, part 3
UiPath Test Automation using UiPath Test Suite series, part 3
 
Knowledge engineering: from people to machines and back
Knowledge engineering: from people to machines and backKnowledge engineering: from people to machines and back
Knowledge engineering: from people to machines and back
 
De-mystifying Zero to One: Design Informed Techniques for Greenfield Innovati...
De-mystifying Zero to One: Design Informed Techniques for Greenfield Innovati...De-mystifying Zero to One: Design Informed Techniques for Greenfield Innovati...
De-mystifying Zero to One: Design Informed Techniques for Greenfield Innovati...
 
Epistemic Interaction - tuning interfaces to provide information for AI support
Epistemic Interaction - tuning interfaces to provide information for AI supportEpistemic Interaction - tuning interfaces to provide information for AI support
Epistemic Interaction - tuning interfaces to provide information for AI support
 
Dev Dives: Train smarter, not harder – active learning and UiPath LLMs for do...
Dev Dives: Train smarter, not harder – active learning and UiPath LLMs for do...Dev Dives: Train smarter, not harder – active learning and UiPath LLMs for do...
Dev Dives: Train smarter, not harder – active learning and UiPath LLMs for do...
 
Elevating Tactical DDD Patterns Through Object Calisthenics
Elevating Tactical DDD Patterns Through Object CalisthenicsElevating Tactical DDD Patterns Through Object Calisthenics
Elevating Tactical DDD Patterns Through Object Calisthenics
 
The Art of the Pitch: WordPress Relationships and Sales
The Art of the Pitch: WordPress Relationships and SalesThe Art of the Pitch: WordPress Relationships and Sales
The Art of the Pitch: WordPress Relationships and Sales
 
Designing Great Products: The Power of Design and Leadership by Chief Designe...
Designing Great Products: The Power of Design and Leadership by Chief Designe...Designing Great Products: The Power of Design and Leadership by Chief Designe...
Designing Great Products: The Power of Design and Leadership by Chief Designe...
 

The intersection of business rules and big data.

  • 1. THE INTERSECTION OF BUSINESS RULES MANAGEMENT AND BIG DATA Anurag Saran, Sal Elrahal, Murph Red Hat June 30, 2016 #redhat #rhsummit 1
  • 2. AGENDA BECAUSE AGEN DAS ARE AWESOME INTRODUCTIONS BACKGROUND: AML THREE TIERED ANALYTICS SOLUTION CUSTOMER SUCCESS STORY Q&A 1 2 3 Sanitize and Organize the Data Analyze the Data Post Classification Tasks 2
  • 4. AML is practice of integrating the proceeds of crime into the legitimate mainstream of the financial community by concealing its origin. Team Good Guy: Financial institutions, Regulators and law enforcement In 1920;s, Gangsters had money in small denominations. They started business of slot machines and laundromats. Thus the term laundering. AML AND HISTORY 3.2
  • 5. REGUL ATO RY EN VIR ONMENT OFFICE OF FO REI GN AS SETS CO NTROL (OFAC) 3.3
  • 6. PILL ARS OF AML 3.4
  • 8. WEB BASED AUTHORING – PROCESS 3.6
  • 10. DATA JB OSS DATA GRID & DATA V IR TU AL I Z ATION JB OSS DATA GRID In-Memory Distributed Caching Distributed Caching and Compute Embedded or Service Transactional and Persistent Peer-to-Peer Linear Scaling JB OSS DATA VI RT UAL I Z AT I O N Provide Virtual Data Layer Consume Databases, Services, Files, NoSQL Expose JDBC, ODBC, REST, SOAP, ODATA Transactions, Caching, Advanced Joins 3.8
  • 13. BUILD AN ADAPTIVE SYSTEM 4 .3
  • 14. USE RULE S IN MAP AND REDUCE. USE PIG SCRIP T TO GENER ATE RULE S 4 .4
  • 15. BUILD SM ARTER RULE S USING STATIC, LINEA R REGRE SSION AND SOCI AL GRAPH INPUT S 4 .5
  • 16. BUILD A UI THAT YOUR USERS WILL LOVE 4 .6
  • 17. 4 .7
  • 18. BUILD COMP ONENT BASED L AYOUT 4 .8
  • 19. SANITIZE AND ORGANIZE THE DATA #redhat #rhsummit 5.1
  • 20. 5.2
  • 21. KNOW YOUR CUSTOMER-USE FREE DATA 5.3
  • 22. ANALYZE THE DATA #redhat #rhsummit 6.1
  • 23. HAN D WRITTEN RULES I N MAP REDUCE GENERATED RULE S FR OM DATA ANA LYSIS TRANSACTION ENGINE USAGE 6.2
  • 24. HAN D WRI TTEN RUL ES I N MAP REDUCE MapReduce with Transaction Profile Java Code Rules 6.3
  • 25. TRANSACTION PROFILE CC # Amount State Profession 1234123412341234 $105.67 NC Gas Station 5678567856785678 $33.97 MD Ice Cream Parlor 1234123412341234 $822.97 NC Gas Station 1029102910291029 $610.20 TX Artist ..... ...... ..... ..... State Profession Avg Std Dev .... NC Gas Station $321.23 $22.13 ..... NC Writer $22.67 $59.08 ..... MD Ice Cream Parlor $523.73 $30.23 ..... TX Artist $987.42 $303.76 ..... ..... ...... ..... ..... ..... MAP REDUCE 6.4
  • 26. public void map(Object lineNumber, Text line, Context output) { Transaction transaction = new Transaction(value.toString()); String state = transaction.getState(); String profession = transaction.getProfession(); String key = state + “-” + profession; output.write(new Text(key), new Text(transaction.toString())); } public void reduce(Text key, Iterable<Text> values, Context output) { TransactionProfile transactionProfile = new TransactionProfile(); for(Text value: values) { Transaction transaction = new Transaction(value.toString()); addTransaction(transactionProfile, transaction); } output.write(key, new Text(transactionProfile.toString())); } public void addTransaction(TransactionProfile transactionProfile, Transaction transaction) { transactionProfile.updateTotal(transaction.getAmount()); } MAP PHASE REDUCE PHASE 6.5
  • 27. when $transaction : Transaction() then mapTo($transaction.state + $transaction.profession, $transaction) end when $transaction : Transaction() $transactionProfile : TransactionProfile() then $transactionProfile.updateTotal($transaction.amount) end MAP PHASE REDUCE PHASE 6.6
  • 28. GENERATED RULES FROM BIG DATA Joining Data Types with Pig Linear Regression 6.7
  • 29. JOINING DATA TYPE S A# Name State City Zip Age Sex Type ... 5532 Sal NC Charlotte 28206 65 M Chk ... 2341 Murph NY New York 24439 82 M Sav ... 7424 Anurag NJ Edison 29945 81 M Sav ... 1643 Derik MD Bowie 44293 75 M Bus ... T# A# Amount Type From Zip ToZip IP Country ... 00004213 7424 NC CC 28206 28202 96.12.23.3 US ... 00000213 2341 NY DR 24439 28826 8.7.6.5 US ... 00053322 7424 NJ CC 29945 34435 1.2.3.4 US ... 00008843 2341 MD MT 44293 29846 34.34.34.2 US ... ACCOUNT DATA TRANSACTION DATA 6.8
  • 30. transaction = load '/user/aml-demo/trans.txt/' using PigStorage(',') as ….. account = load '/user/aml-demo/account.txt' using PigStorage(',') as ….. C = foreach account generate AccountNo as id, ZipCode,Occupation; jnd = join transaction by AccountNo, C by id; D = group jnd by (C::ZipCode,transaction::TransactionType,C::Occupation); E = foreach D generate flatten(group) as (zip,Tranaction,occupation),SUM($1.Amount) as tota STORE E into 'idout' USING PigStorage(','); 6.9
  • 31. TR ANS AC TION ENGINE USAGE Actionable - Leverage all generated rules Adaptive - Historically & Parameter Tuning 6.10
  • 33. ADAP TIVE - HISTO RICAL LY 6.12
  • 34. ADAP TIVE - PAR AM ETER TUNING 6.13
  • 36. BX MS DESI GN PAT TERNS 7.2
  • 39. DYNAMI C SUB PROCESSES 7.5
  • 40. VE RS I ON, BUI L D, STO RE, DEPLOY 7.6
  • 41. VE RS I ON, BUI L D, STO RE, DEPLOY 7.7
  • 42. package example; import org.kie.api.runtime.KieSession; import org.kie.api.runtime.manager.RuntimeEngine; import org.kie.remote.client.api.RemoteRestRuntimeEngineBuilder; import org.kie.remote.client.api.RemoteRuntimeEngineFactory; public class Client { public static void main(String[] args) { RemoteRestRuntimeEngineBuilder builder = RemoteRuntimeEngineFactory.newRestBuilder() .addDeploymentId(deployment) .addUrl(url) .addUserName(username) .addPassword(password) .addTimeout(timeout); RuntimeEngine runtimeEngine = builder.build(); KieSession session = runtimeEngine.getKieSession(); session.startProcess(process, parameters); } } EXECUTE 7.8
  • 44. var url = util.getKieServerUrl() + "/kie-server/services/rest/server/queries/tasks/instances/pot-owners" + "?page=" + page; $http.defaults.headers.common.Authorization = 'Bearer ' + $scope.token; $http.defaults.headers.common['Accept'] = "application/json"; $http.get(url) .success(function (data) { $scope.data.result = data['task-summary']; }) .error(function (error) { $scope.data.error = {}; $scope.data.error.code = 'getMyTasks'; $scope.data.error.message = 'The task list could not be retrieved.' }); EXECUTE! 7.10
  • 47. SANITIZE AND ORGANIZE THE DATA #redhat #rhsummit 8.2
  • 48. ANALYZE THE DATA #redhat #rhsummit 8.3
  • 50. System Architecture – Transaction/BIG Data Phase Data Grid JBOSS EAP BPMS Happy Path New Transaction Check Rules No Rules Applied Pass Through Transactions
  • 51. System Architecture – Transaction Phase Data Grid JBOSS EAP BPMS Suspicious Path New Transaction Apply Rules Score incoming transaction Task Created for analyst to work On. Retrieve Historical Trasaction and store in cache for analysis.
  • 52. System Architecture – Insight Phase Data Grid JBOSS EAP BPMS Fraud Transaction Customer Insight Rules Insight Rule Insight – Know exact rules that were applied. Data Insight - Slice/Dice data
  • 53. System Architecture – Task Phase Data Grid JBOSS EAP BPMS Fraud Transaction Customer Insight Rules Insight Work On Task. Invoke relevant sub process
  • 54. System Architecture – Update Phase Data Grid JBOSS EAP BPMS Customer Insight Rules Insight With transaction insights, modify/update rules. With rules insights, modify/update rules. Run PIG jobs to update rules
  • 56. 9.2
  • 57. 9.3
  • 58. 9.4
  • 59. 9.5
  • 60. 9.6
  • 61. 9.7
  • 62. 9.8
  • 63. 9.9
  • 64. 9.10