際際滷

際際滷Share a Scribd company logo
Business Rules
       Comparison
LucidWorks Search versus UIA/Rules
Background
Discussion on LinkedIn group
   Enterprise Search Engine Professionals


Topic 際際滷Share "Business Rules for Search (13/03/21)
      source: http://slidesha.re/160saNi


際際滷s in response to Grant Ingersoll comment regarding
    Business Rules in LucidWorks Search through Drools
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
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!
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
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)
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
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
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
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

More Related Content

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 際際滷Share "Business Rules for Search (13/03/21) source: http://slidesha.re/160saNi 際際滷s 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