related to a discussion on LinkedIn group: Enterprise Search Engine Professionals
Topic SlideShare "Business Rules for Search“ (13/03/21)
source: http://slidesha.re/160saNi
Slides in response to Grant Ingersoll comment regarding Business Rules in LucidWorks Search through Drools
Cloud Frontiers: A Deep Dive into Serverless Spatial Data and FME
A comparison of UIA/Rules Business Rules and LucidWorks Drools
1. Business Rules
Comparison
LucidWorks Search versus UIA/Rules
2. Background
Discussion on LinkedIn group
Enterprise Search Engine Professionals
Topic SlideShare "Business Rules for Search“ (13/03/21)
source: http://slidesha.re/160saNi
Slides in response to Grant Ingersoll comment regarding
Business Rules in LucidWorks Search through Drools
3. LucidWorks Drools based approach
Externalization of application logic into rules
Three hooks available per default:
1) Indexing time to transform a doc
2) Search query time to transform the query
3) Search response time to transform a doc
Stateless and document / query centric approach
4. UIA/Rules XACML based approach
Externalization of information filter logic into rules
– Use case for this comparison is to decide
● If a user is allowed (or denied)
● to see a document
● under dynamic context constraints
Rules are multi dimensional parameterized (in XACML naming) as:
– Subject
– Action (will be assumed static as ‘read’ for this comparison)
– Resource
– Environment (dynamic like time, geo, age, …)
Early binding of vectorized rules
No query post processing needed!
5. How to solve UIA/Rules use case with Drools?
Given is a set of rules with three dimensions:
R(Sub,Res,Env)
Real-time Rule Enforcement needs execution
at search time
Mapping given one Rx(Sub,Res,Env) to available
Drools hooks
2) Rx(Sub,Env) Search query time to transform the query
3) Rx(Res,Env) Search response time to transform each doc
6. Suspected Drools approach drawbacks
(which need step by step review!)
– No exposed Drools hooks can consume Subject and Resource
and Environment at the same time
– Execution of rules during search response to decide visibility per
document is comparable to late-binding (or last-minute) access
control, this means
– Iteration over a huge collection of response documents and
repeated rules evaluation is a time consuming post processing
– Critical search engine feature of deep facets will be lost
– Needed split of given Rx(Sub,Res,Env) into two
independent steps 2+3, will break the rule context, which
evaluation of Rx(step2) is related to Rx(step3)
7. How UIA/Rules aims to solve it
Given is same set of rules with three dimensions:
R(Sub,Res,Env)
Mapping given one Rx(Sub,Res,Env) to
1) Rx(*,Res,Env) Indexing time: Annotation of document with decision
vector
2) Rx(Sub,*,Env) Search query time: Evaluating decision vector as &fq=
– Decision Vectorization:
● UIA/Rules as a central service computes list of matching rules and decision
● This service will be called from a ‘Rule Enforcement’ stage during indexing and
search query time
● Unknown dimension will be skipped ‘*’ from evaluation
● The rules context will be reconstructed real-time through a high performing match
over the ‘decision vector’ multi-value field
8. Benefits of UIA/Rules approach
– Execution of rules during indexing time is comparable to
early-binding access control pattern
– Critical search engine feature of deep facets is available
– XACML infrastructure components trimmed for
performance will be reused
– XACML rules (aka policies) are application code
independent but only business object centric
9. Summary
LucidWorks Drools and UIA/Rules aim for different scenarios
with different design and architectures
• Drools externalizes application logic
• UIA/Rules externalizes information logic, supported by
established OASIS Standards and products
UIA/Rules fits a gap which cannot be covered by Drools
Good news:
Both solutions can be run side by side to address an
additional customer use case
Catapults old FAST SAM pattern to new era of dynamic
real time rules
10. Are you interested?
Please join our discussion on LinkedIn
and contribute with more interesting
customer use cases!
Or contact us:
Dr. Krusche & Partner PartG
+49 (0) 89 898 27733
team@dr-kruscheundpartner.de
http://www.linkedin.com/company/dr-krusche-&-partner-partg
www.dr-kruscheundpartner.de