SlideShare a Scribd company logo
 
                               
Drools5 Community Training
      Sponsored by Plugtree
Module 5: Drools BLiP
Architectural Overview
   Drools5 Community Training
      version: 1.0-SNAPSHOT
     Release Date: 03/16/2011
Under The Creative Common License
Module 5: Drools BLiP
 Architectural Overview
 Drools5 Community Training Course
  by Mauricio "Salaboy" Salatino and
  Esteban Aliverti is licensed under a
  Creative Commons Attribution 3.0
            Unported License.
Based on a work at salaboy.wordpress.
                  com.
 Permissions beyond the scope of this
   license may be available at http:
       //salaboy.wordpress.com/.
Agenda


● Drools Overview
● Core Components
   ○ Drools Main Modules
● Possible Architectures
● Demos
Drools Overview


● It was born as an Inference Engine
● More functionality was added on top of it
● A Platform was created to create applications
● The declarative approach provided helps us to share the
  knowledge with non technical roles
● A Knowledge Driven Development Approach was proposed
  to build applications on top of the platform
The Drools Project


● Open Source
● Apache Licensed
● Free to use
● Innovative approach
● Community Support
Drools Overview

● Drools Expert (Rule Engine)

● Drools Flow == jBPM5

● Drools Fusion

● Drools Guvnor
Drools Overview
Drools Expert


● Drools Expert
   ○ Contains the Inference Engine
   ○ Pure Java
   ○ Provides a language to write declarative rules
   ○ Provides the APIs to interact with it
   ○ Environmental Agnostic (JSE, JEE, Spring)
   ○ Lightweight
jBPM5 == Drools Flow


● jBPM5 == Drools Flow
    ○ Provides Business Process Management features
    ○ Runs on top of the Rule Engine
    ○ Enable us with dynamic and declarative capabilities to
      create smarter processes
Drools Fusion


● Drools Fusion
   ○ Enables the notion of time to the Rule Engine
   ○ Let us define our meaningful events in our domain
   ○ Defines 13 temporal operators to correlate and aggregate
     stream of events
   ○ It operates in near real-time allowing us to react on
     immediately to an ongoing situation
   ○ Takes advantage of the inference capabilities of the Rule
     Engine
Drools Guvnor


● Drools Guvnor
   ○ Its a centralized Knowledge Repository
   ○ Allow us to store and manage our business knowledge
   ○ Tag, Categorize and Version our knowledge assets
   ○ Provides some UIs to manage our knowledge assets
Drools Artifacts


● Drools Artifacts
   ○ Lightweight Java Library
   ○ Gives us the flexibility to use it no matter the
     environment
   ○ Allows us to define the best architecture for each specific
     situation
Drools Architectural Goals


● Drools was designed and conceived for:
   ○ Express business knowledge declaratively
   ○ Integrate different solutions/applications using a
     declarative approach
   ○ To provide an unified and knowledge driven
     development approach
   ○ To provide a link of communication between business
     people and technical people
   ○ To be non-intrusive
Alternative Architectures


● Drools Alternative Architectures
   ○ Embedded
   ○ As a Service
Embedded


● Drools Embedded Architecture
Embedded -> Centralized Knowledge


● Drools Embedded Architecture, centralized Knowledge
As A Service (Centralized)


● Drools As A Service (Centralized) Architecture
As A Service (Centralized)


● Drools As A Service (Centralized) Architecture
Stateful vs Stateless Services


● Stateful vs Stateless Services
   ○ You need to define the nature of your problems
   ○ Stateless situations are easy to manage
       ■ Replicate services in different nodes becomes trivial
       ■ Caches for data access can be used
   ○ Stateful situations give us more rich set of features
       ■ Require session data replication in different nodes
       ■ We need to analyze what happen if a session breaks
         and how it affects to the overall application
Stateful Knowledge Services


● Stateful Knowledge Services
   ○ Enable us to have long running execution
   ○ We will be able to maintain contextual information to
     work on
   ○ The inference process will much more richer
   ○ Business Processes can run without any problem
   ○ Events require a stateful environment to work
   ○ We need to use some kind of persistence mechanism if
     we want to have fault tolerance
Stateful Knowledge Services with Events


● Stateful Knowledge Services with Events
Demos


● Demos
   ○ Emergency Service Application
   ○ Dynamic Content Selection PoC
Emergency Service Application


● Emergency Service Application
   ○ Simulate a real world situation
   ○ Demonstrate the advantages of using business processes,
     business rules and event processing all together
   ○ Download and Play:
      ■ https://github.com/Salaboy/emergency-service-
        drools-app
Emergency Service Application
Dynamic Content Selection


● Dynamic Content Selection Application
   ○ Proof of Concept to show Drools features
   ○ Demonstrate the information that we can capture from
     the user interaction with different visual components
   ○ Demonstrate how we can create a simple to enable non
     technical roles to define/validate what the application
     needs to do in different situations
   ○ Demonstrate how we can react on different identified
     situations
   ○ Download and Test:
       ■ https://github.com/Salaboy/smart-content-selection
Dynamic Content Selection
Dynamic Content Selection


● Dynamic Content Selection Application
   ○ Drools will keep track of the status of our visual
     components for each use
   ○ Drools will be listening events that will be generated
     during the user interaction
   ○ Temporal rules will be defined to correlate the streams of
     events generated by one or multiple users
Dynamic Content Selection



● Events Correlation for a Single User
   ○ Behavioral Event Stream
      ■ Navigation Events
      ■ Browsing Events
      ■ Component Interaction Events
   ○ Shopping Cart Event Stream
Dynamic Content Selection



● Events Correlation for a Multiple Users
   ○ Trends Analysis
      ■ More than X users selecting interacting with a
        Product in the last 2 minutes
      ■ More than X users with similar products in their
        shopping carts
      ■ More than X searches for a specific topic
Dynamic Content Selection


● Behavioral Event Stream
   ○ Page Navigation Events
      ■ Links Clicks, Search Events
   ○ Browsing Information Events
      ■ Analyzing a component information (Focus,
        Scrolling, Resizing, etc)
      ■ Multi Focus Analysis (selection patterns)
   ○ Component Interaction Events
      ■ Changing the component state (submitting a form,
        select a value that changes the state of the
        component)
Dynamic Content Selection


● Shopping Cart Event Stream
   ○ Add Product To Cart
   ○ Remove Product From Cart
   ○ Checkout Products
   ○ Empty Cart
Dynamic Content Selection


● Use Cases for Single User
   ○ Single Focus Interest Period
      ■ Offer Discount
   ○ Multi Focus / Pattern Selection
      ■ Related Product Suggestion
   ○ Abandoned Shopping Cart
      ■ Warning
   ○ Checkout Shopping Cart Quickly
      ■ Related Product Offer
Dynamic Content Selection


● Single Focus Interest Period
   ○ Offer Discount
Dynamic Content Selection


● Multi Focus / Pattern Selection
   ○ Related Product Suggestion
Dynamic Content Selection


● Abandoned Shopping Cart
   ○ Warning
Dynamic Content Selection


● Checkout Shopping Cart Quickly
   ○ 10% Discount Voucher for future shops
Related Links


● You can find more information, examples, tutorials and
  more in:
   ○ Salaboy Blog
      ■ http://salaboy.wordpress.com
   ○ Esteban Blog
      ■ http://ilesteban.wordpress.com
   ○ Plug Tree Blog
      ■ http://www.plugtree.com
 
              
Questions?
Enjoy! Questions and Feedback are
always appreciated!
 
                     
    Contact us at
www.plugtree.com

More Related Content

PDF
JBoss Drools - Open-Source Business Logic Platform
PDF
Drools Workshop 2015 - LATAM
PDF
Drools
PDF
Cork JUG - Drools basics & pitfalls
PDF
Getting Started With #Drools 6 Slides - JBUG Denmark
PPTX
Rule Engine & Drools
PPT
NCV 3 Project Management Hands-On Support Slide Show - Module 5
PPT
Introduction to Drools
JBoss Drools - Open-Source Business Logic Platform
Drools Workshop 2015 - LATAM
Drools
Cork JUG - Drools basics & pitfalls
Getting Started With #Drools 6 Slides - JBUG Denmark
Rule Engine & Drools
NCV 3 Project Management Hands-On Support Slide Show - Module 5
Introduction to Drools

Viewers also liked (20)

ODP
Open source and business rules
PDF
FOSS in the Enterprise
PPTX
Jboss drools 4 scope - benefits, shortfalls
PDF
Drools & jBPM Workshop London 2013
ODP
Drools BeJUG 2010
PPTX
Apache Beam (incubating)
PDF
The Next Generation of Data Processing and Open Source
ODP
Drools & jBPM Info Sheet
PDF
Intro to Drools - St Louis Gateway JUG
PDF
Rules Programming tutorial
PDF
Scio - A Scala API for Google Cloud Dataflow & Apache Beam
PDF
Apache Beam @ GCPUG.TW Flink.TW 20161006
PDF
Introduction to Apache Beam (incubating) - DataCamp Salzburg - 7 dec 2016
PDF
Introduction to Apache Beam & No Shard Left Behind: APIs for Massive Parallel...
PPTX
Extending the Yahoo Streaming Benchmark + MapR Benchmarks
PPTX
Stream data from Apache Kafka for processing with Apache Apex
PPTX
JBoss Drools - Pure Java Rule Engine
PDF
Drools and jBPM 6 Overview
ODP
Drools 6 deep dive
Open source and business rules
FOSS in the Enterprise
Jboss drools 4 scope - benefits, shortfalls
Drools & jBPM Workshop London 2013
Drools BeJUG 2010
Apache Beam (incubating)
The Next Generation of Data Processing and Open Source
Drools & jBPM Info Sheet
Intro to Drools - St Louis Gateway JUG
Rules Programming tutorial
Scio - A Scala API for Google Cloud Dataflow & Apache Beam
Apache Beam @ GCPUG.TW Flink.TW 20161006
Introduction to Apache Beam (incubating) - DataCamp Salzburg - 7 dec 2016
Introduction to Apache Beam & No Shard Left Behind: APIs for Massive Parallel...
Extending the Yahoo Streaming Benchmark + MapR Benchmarks
Stream data from Apache Kafka for processing with Apache Apex
JBoss Drools - Pure Java Rule Engine
Drools and jBPM 6 Overview
Drools 6 deep dive
Ad

Similar to Drools5 Community Training Module 5 Drools BLIP Architectural Overview + Demos (20)

PDF
Data Con LA 2018 - Enabling real-time exploration and analytics at scale at H...
PDF
Blockade.io : One Click Browser Defense
PDF
Prototyping Workshop - Wireframes, Mockups, Prototypes
PDF
Easy Microservices with JHipster - Devoxx BE 2017
PDF
Devoxx Belgium 2017 - easy microservices with JHipster
PDF
The Final Frontier, Automating Dynamic Security Testing
PDF
Data Science in Production: Technologies That Drive Adoption of Data Science ...
PDF
How to Write a Winning Session Submission
PDF
Tenants for Going at DevSecOps Speed - LASCON 2023
PDF
Agile Development Practices May 2017
PDF
Recommendation engines
PDF
Umbraco development across large and distributed teams
PPTX
Log4j2 - A deep dive into the logging services in Mulesoft with On-Prem deplo...
PDF
Symantec - From Early Drupal Adoption to the Latest Drupal Innovations
PDF
The future of CMS @T3UNI 2013 Annecy France
PDF
(Greach 2015) Decathlon Sport Meeting
PDF
Agile Gurugram 2016 | Conference | Demystifying DevOps | Uday Kumar
PDF
Starting a Drupal 8 Project? Let’s do a Technical Discovery - DrupalConAsia 2...
PDF
Multiplier Effect: Case Studies in Distributions for Publishers
PDF
DevOps for TYPO3 Teams and Projects
Data Con LA 2018 - Enabling real-time exploration and analytics at scale at H...
Blockade.io : One Click Browser Defense
Prototyping Workshop - Wireframes, Mockups, Prototypes
Easy Microservices with JHipster - Devoxx BE 2017
Devoxx Belgium 2017 - easy microservices with JHipster
The Final Frontier, Automating Dynamic Security Testing
Data Science in Production: Technologies That Drive Adoption of Data Science ...
How to Write a Winning Session Submission
Tenants for Going at DevSecOps Speed - LASCON 2023
Agile Development Practices May 2017
Recommendation engines
Umbraco development across large and distributed teams
Log4j2 - A deep dive into the logging services in Mulesoft with On-Prem deplo...
Symantec - From Early Drupal Adoption to the Latest Drupal Innovations
The future of CMS @T3UNI 2013 Annecy France
(Greach 2015) Decathlon Sport Meeting
Agile Gurugram 2016 | Conference | Demystifying DevOps | Uday Kumar
Starting a Drupal 8 Project? Let’s do a Technical Discovery - DrupalConAsia 2...
Multiplier Effect: Case Studies in Distributions for Publishers
DevOps for TYPO3 Teams and Projects
Ad

More from Mauricio (Salaboy) Salatino (20)

PDF
Devoxx UK - Platforms on top of K8s
PDF
WTF_is_SRE_DeveloperEnabledPlatforms.pdf
PDF
Lessons Learnt from creating platforms on Kubernetes @ Rejekts
PDF
Building Developer Experiences for the Cloud .pdf
PDF
KUBEDAY - JAPAN 2022 - Building FaaS Platforms.pdf
PDF
The Challenges of building Cloud Native Platforms
PDF
Functions Working Group Update - August 2022.pdf
PDF
JBCNConf 2022: Go vs Java (Kubernetes)
PDF
Expanding Interoperability in the CD ecosystem - CDCon - Austin, TX - 2022
PDF
Spring I/O 2022: Knative and Spring - Bringing back the `func`
PDF
KnativeCon 2022 - Knative Functions
PDF
Knative Maintainers KubeConEU 22 Knative Overview and Update
PDF
CDEventsCon Expanding Interoperability in the CD ecosystem
PDF
A Polyglot Developer Experience on Kubernetes - KubeCon EU Valencia
PDF
Pave the Golden Path On Your Internal Platform
PDF
Knative and Spring - Bringing back the func.pdf
PDF
KCD Guatemala - Abstracciones sobre Abstracciones
PDF
KubeCon NA - 2021 Tools That I Wish Existed 3 Years Ago To Build a SaaS Offering
PDF
Cloud Native Islamabad - Getting Closer to Continuous Delivery with Knative
PDF
Intro to the Cloud with Knative (Spanish)
Devoxx UK - Platforms on top of K8s
WTF_is_SRE_DeveloperEnabledPlatforms.pdf
Lessons Learnt from creating platforms on Kubernetes @ Rejekts
Building Developer Experiences for the Cloud .pdf
KUBEDAY - JAPAN 2022 - Building FaaS Platforms.pdf
The Challenges of building Cloud Native Platforms
Functions Working Group Update - August 2022.pdf
JBCNConf 2022: Go vs Java (Kubernetes)
Expanding Interoperability in the CD ecosystem - CDCon - Austin, TX - 2022
Spring I/O 2022: Knative and Spring - Bringing back the `func`
KnativeCon 2022 - Knative Functions
Knative Maintainers KubeConEU 22 Knative Overview and Update
CDEventsCon Expanding Interoperability in the CD ecosystem
A Polyglot Developer Experience on Kubernetes - KubeCon EU Valencia
Pave the Golden Path On Your Internal Platform
Knative and Spring - Bringing back the func.pdf
KCD Guatemala - Abstracciones sobre Abstracciones
KubeCon NA - 2021 Tools That I Wish Existed 3 Years Ago To Build a SaaS Offering
Cloud Native Islamabad - Getting Closer to Continuous Delivery with Knative
Intro to the Cloud with Knative (Spanish)

Recently uploaded (20)

PPTX
OMC Textile Division Presentation 2021.pptx
PDF
Approach and Philosophy of On baking technology
PPTX
A Presentation on Artificial Intelligence
PDF
Encapsulation_ Review paper, used for researhc scholars
PDF
MIND Revenue Release Quarter 2 2025 Press Release
PDF
7 ChatGPT Prompts to Help You Define Your Ideal Customer Profile.pdf
PPTX
Group 1 Presentation -Planning and Decision Making .pptx
PDF
Mushroom cultivation and it's methods.pdf
PPTX
Tartificialntelligence_presentation.pptx
PDF
gpt5_lecture_notes_comprehensive_20250812015547.pdf
PDF
Building Integrated photovoltaic BIPV_UPV.pdf
PDF
Network Security Unit 5.pdf for BCA BBA.
PPTX
Programs and apps: productivity, graphics, security and other tools
PDF
Advanced methodologies resolving dimensionality complications for autism neur...
PPTX
Spectroscopy.pptx food analysis technology
PPT
Teaching material agriculture food technology
PDF
A comparative analysis of optical character recognition models for extracting...
PDF
Empathic Computing: Creating Shared Understanding
PDF
Diabetes mellitus diagnosis method based random forest with bat algorithm
PDF
Unlocking AI with Model Context Protocol (MCP)
OMC Textile Division Presentation 2021.pptx
Approach and Philosophy of On baking technology
A Presentation on Artificial Intelligence
Encapsulation_ Review paper, used for researhc scholars
MIND Revenue Release Quarter 2 2025 Press Release
7 ChatGPT Prompts to Help You Define Your Ideal Customer Profile.pdf
Group 1 Presentation -Planning and Decision Making .pptx
Mushroom cultivation and it's methods.pdf
Tartificialntelligence_presentation.pptx
gpt5_lecture_notes_comprehensive_20250812015547.pdf
Building Integrated photovoltaic BIPV_UPV.pdf
Network Security Unit 5.pdf for BCA BBA.
Programs and apps: productivity, graphics, security and other tools
Advanced methodologies resolving dimensionality complications for autism neur...
Spectroscopy.pptx food analysis technology
Teaching material agriculture food technology
A comparative analysis of optical character recognition models for extracting...
Empathic Computing: Creating Shared Understanding
Diabetes mellitus diagnosis method based random forest with bat algorithm
Unlocking AI with Model Context Protocol (MCP)

Drools5 Community Training Module 5 Drools BLIP Architectural Overview + Demos

  • 1.     Drools5 Community Training Sponsored by Plugtree
  • 2. Module 5: Drools BLiP Architectural Overview Drools5 Community Training version: 1.0-SNAPSHOT Release Date: 03/16/2011 Under The Creative Common License
  • 3. Module 5: Drools BLiP Architectural Overview Drools5 Community Training Course by Mauricio "Salaboy" Salatino and Esteban Aliverti is licensed under a Creative Commons Attribution 3.0 Unported License. Based on a work at salaboy.wordpress. com. Permissions beyond the scope of this license may be available at http: //salaboy.wordpress.com/.
  • 4. Agenda ● Drools Overview ● Core Components ○ Drools Main Modules ● Possible Architectures ● Demos
  • 5. Drools Overview ● It was born as an Inference Engine ● More functionality was added on top of it ● A Platform was created to create applications ● The declarative approach provided helps us to share the knowledge with non technical roles ● A Knowledge Driven Development Approach was proposed to build applications on top of the platform
  • 6. The Drools Project ● Open Source ● Apache Licensed ● Free to use ● Innovative approach ● Community Support
  • 7. Drools Overview ● Drools Expert (Rule Engine) ● Drools Flow == jBPM5 ● Drools Fusion ● Drools Guvnor
  • 9. Drools Expert ● Drools Expert ○ Contains the Inference Engine ○ Pure Java ○ Provides a language to write declarative rules ○ Provides the APIs to interact with it ○ Environmental Agnostic (JSE, JEE, Spring) ○ Lightweight
  • 10. jBPM5 == Drools Flow ● jBPM5 == Drools Flow ○ Provides Business Process Management features ○ Runs on top of the Rule Engine ○ Enable us with dynamic and declarative capabilities to create smarter processes
  • 11. Drools Fusion ● Drools Fusion ○ Enables the notion of time to the Rule Engine ○ Let us define our meaningful events in our domain ○ Defines 13 temporal operators to correlate and aggregate stream of events ○ It operates in near real-time allowing us to react on immediately to an ongoing situation ○ Takes advantage of the inference capabilities of the Rule Engine
  • 12. Drools Guvnor ● Drools Guvnor ○ Its a centralized Knowledge Repository ○ Allow us to store and manage our business knowledge ○ Tag, Categorize and Version our knowledge assets ○ Provides some UIs to manage our knowledge assets
  • 13. Drools Artifacts ● Drools Artifacts ○ Lightweight Java Library ○ Gives us the flexibility to use it no matter the environment ○ Allows us to define the best architecture for each specific situation
  • 14. Drools Architectural Goals ● Drools was designed and conceived for: ○ Express business knowledge declaratively ○ Integrate different solutions/applications using a declarative approach ○ To provide an unified and knowledge driven development approach ○ To provide a link of communication between business people and technical people ○ To be non-intrusive
  • 15. Alternative Architectures ● Drools Alternative Architectures ○ Embedded ○ As a Service
  • 17. Embedded -> Centralized Knowledge ● Drools Embedded Architecture, centralized Knowledge
  • 18. As A Service (Centralized) ● Drools As A Service (Centralized) Architecture
  • 19. As A Service (Centralized) ● Drools As A Service (Centralized) Architecture
  • 20. Stateful vs Stateless Services ● Stateful vs Stateless Services ○ You need to define the nature of your problems ○ Stateless situations are easy to manage ■ Replicate services in different nodes becomes trivial ■ Caches for data access can be used ○ Stateful situations give us more rich set of features ■ Require session data replication in different nodes ■ We need to analyze what happen if a session breaks and how it affects to the overall application
  • 21. Stateful Knowledge Services ● Stateful Knowledge Services ○ Enable us to have long running execution ○ We will be able to maintain contextual information to work on ○ The inference process will much more richer ○ Business Processes can run without any problem ○ Events require a stateful environment to work ○ We need to use some kind of persistence mechanism if we want to have fault tolerance
  • 22. Stateful Knowledge Services with Events ● Stateful Knowledge Services with Events
  • 23. Demos ● Demos ○ Emergency Service Application ○ Dynamic Content Selection PoC
  • 24. Emergency Service Application ● Emergency Service Application ○ Simulate a real world situation ○ Demonstrate the advantages of using business processes, business rules and event processing all together ○ Download and Play: ■ https://github.com/Salaboy/emergency-service- drools-app
  • 26. Dynamic Content Selection ● Dynamic Content Selection Application ○ Proof of Concept to show Drools features ○ Demonstrate the information that we can capture from the user interaction with different visual components ○ Demonstrate how we can create a simple to enable non technical roles to define/validate what the application needs to do in different situations ○ Demonstrate how we can react on different identified situations ○ Download and Test: ■ https://github.com/Salaboy/smart-content-selection
  • 28. Dynamic Content Selection ● Dynamic Content Selection Application ○ Drools will keep track of the status of our visual components for each use ○ Drools will be listening events that will be generated during the user interaction ○ Temporal rules will be defined to correlate the streams of events generated by one or multiple users
  • 29. Dynamic Content Selection ● Events Correlation for a Single User ○ Behavioral Event Stream ■ Navigation Events ■ Browsing Events ■ Component Interaction Events ○ Shopping Cart Event Stream
  • 30. Dynamic Content Selection ● Events Correlation for a Multiple Users ○ Trends Analysis ■ More than X users selecting interacting with a Product in the last 2 minutes ■ More than X users with similar products in their shopping carts ■ More than X searches for a specific topic
  • 31. Dynamic Content Selection ● Behavioral Event Stream ○ Page Navigation Events ■ Links Clicks, Search Events ○ Browsing Information Events ■ Analyzing a component information (Focus, Scrolling, Resizing, etc) ■ Multi Focus Analysis (selection patterns) ○ Component Interaction Events ■ Changing the component state (submitting a form, select a value that changes the state of the component)
  • 32. Dynamic Content Selection ● Shopping Cart Event Stream ○ Add Product To Cart ○ Remove Product From Cart ○ Checkout Products ○ Empty Cart
  • 33. Dynamic Content Selection ● Use Cases for Single User ○ Single Focus Interest Period ■ Offer Discount ○ Multi Focus / Pattern Selection ■ Related Product Suggestion ○ Abandoned Shopping Cart ■ Warning ○ Checkout Shopping Cart Quickly ■ Related Product Offer
  • 34. Dynamic Content Selection ● Single Focus Interest Period ○ Offer Discount
  • 35. Dynamic Content Selection ● Multi Focus / Pattern Selection ○ Related Product Suggestion
  • 36. Dynamic Content Selection ● Abandoned Shopping Cart ○ Warning
  • 37. Dynamic Content Selection ● Checkout Shopping Cart Quickly ○ 10% Discount Voucher for future shops
  • 38. Related Links ● You can find more information, examples, tutorials and more in: ○ Salaboy Blog ■ http://salaboy.wordpress.com ○ Esteban Blog ■ http://ilesteban.wordpress.com ○ Plug Tree Blog ■ http://www.plugtree.com
  • 39.     Questions?
  • 40. Enjoy! Questions and Feedback are always appreciated!
  • 41.     Contact us at www.plugtree.com