Drools Tutorial: Drools Rule Engine Archiδομή & Παραδείγματα

Τι είναι το Drools;

Σκούλια είναι ένα λογισμικό διαχείρισης επιχειρηματικών κανόνων ανοιχτού κώδικα (BRMS) γραμμένο σε Java που παρέχει στους χρήστες μια ποικιλία δυνατοτήτων, όπως Business Rule Engine, Web authoring, Rules Management Application και υποστήριξη χρόνου εκτέλεσης για μοντέλα Decision Model και Notation. Χρησιμοποιεί προηγμένο σύστημα υλοποίησης αλγόριθμου αντιστοίχισης προτύπων rete.

Το Drools κυκλοφόρησε υπό την άδεια Apache 2.0 και είναι συμβατό με οποιοδήποτε JVM και διατίθεται επίσης στο Maven Central Repository.

Το εργαλείο Drools σάς βοηθά να διαχωρίσετε και να αιτιολογήσετε τη λογική και τα δεδομένα που βρίσκονται στις επιχειρηματικές διαδικασίες. Υποστηρίζει μηχανισμό κανόνων drools που βασίζεται σε συμπεράσματα προς τα εμπρός και προς τα πίσω.

Τα σάλια χωρίζονται σε δύο μέρη:

  • Συγγραφικός – Περιλαμβάνει την ανάπτυξη αρχείων κανόνων.
  • Διάρκεια – Περιλαμβάνει τη δημιουργία μνήμης εργασίας και τον χειρισμό της ενεργοποίησης.

Τι είναι ο Κανόνας;

Οι κανόνες είναι μέρη της γνώσης που εκφράζονται συχνά ως: «Όταν προκύψουν συγκεκριμένες συνθήκες, τότε κάνε κάποιες εργασίες».

Το πιο κρίσιμο μέρος ενός κανόνα είναι ότι είναι πότε μέρος. Μια φορά πότε μέρος είναι ικανοποιημένο, τότε το εξάρτημα ενεργοποιείται.

Σύνταξη:

When
<Condition is true>
Then
<Take desired Action>

Μέθοδος αντιστοίχισης προτύπων

Η μέθοδος αντιστοίχισης προτύπων σάς βοηθά να συγκρίνετε νέα ή παλιά γεγονότα με τους κανόνες παραγωγής. Συμπληρώνεται από το Inference Engine.

Algorithms που χρησιμοποιούνται για την αντιστοίχιση μοτίβων είναι:

  • Αλγόριθμος Rete
  • Αλγόριθμος αλμάτων
  • Γραμμικός Αλγόριθμος
  • Αλγόριθμος θεραπείας

Ωστόσο, ο αλγόριθμος που χρησιμοποιείται κυρίως από την Drools είναι ο αλγόριθμος Rete.

Αλγόριθμος Rete

Ο αλγόριθμος Rete είναι ένας χρήσιμος αλγόριθμος αντιστοίχισης προτύπων που σας επιτρέπει να εφαρμόσετε συστήματα κανόνων παραγωγής. Σας βοηθά να θυσιάσετε τη μνήμη για αυξημένη ταχύτητα. Επίσης, μειώνει ή εξαλείφει συγκεκριμένους τύπους πλεονασμού με τη βοήθεια της κοινής χρήσης κόμβων. Αποθηκεύει μερικές αντιστοιχίσεις ενώ εκτελεί ενώσεις μεταξύ διαφορετικών τύπων δεδομένων.

Drools Rule Engine

Drools Rule Engine είναι μια προσέγγιση βασισμένη σε κανόνες για την εφαρμογή ενός συστήματος Expert στο λογισμικό Drools. Η μηχανή Rule παρέχει συστήματα έμπειρων, τα οποία είναι συστήματα βασισμένα στη γνώση που σας βοηθούν να λαμβάνετε αποφάσεις, όπως τι να κάνετε και πώς να το κάνετε. Συγκεντρώνει τη γνώση σε μια βάση γνώσεων που μπορεί να χρησιμοποιηθεί για συλλογισμό.

Σουίτα εργαλείων Drools

Τώρα σε αυτό το σεμινάριο του Drools Rule Engine, θα μάθουμε για το Drools Tool Suite. Ακολουθούν πέντε τύποι εργαλείων που αποτελούν μέρος της σουίτας Drools:

  • Ντρουλς Γκουβνόρ: Είναι ένα κεντρικό αποθετήριο για το Drools KnowledgeBase.
  • Τα σάλια ρέουν: Προσφέρει ροή εργασιών και επιχειρηματικές διαδικασίες.
  • Drools Fusion: Εργαλείο που χρησιμοποιείται για σύνθετη επεξεργασία συμβάντων
  • Drools Expert ή Rules Engine: Ένα χρήσιμο εργαλείο για την εκτέλεση συλλογισμών.
  • Drools Planner: To προσφέρει αυτοματοποιημένο σχεδιασμό, ο οποίος περιλαμβάνει προβλήματα NP-σκληρού σχεδιασμού.

Σημαντικά στοιχεία στο Drools

Τώρα σε αυτό το σεμινάριο του Drools, ας μάθουμε για σημαντικά στοιχεία του Drools.

Ακολουθούν βασικοί όροι που χρησιμοποιούνται στο Drools:

  • Γεγονότα – Το γεγονός αντιπροσωπεύει τα δεδομένα που χρησιμεύουν ως είσοδος για κανόνες
  • Εργασία μνήμης – Αποθήκευση με Γεγονότα, όπου χρησιμοποιούνται για αντιστοίχιση προτύπων. Μπορεί να τροποποιηθεί, να εισαχθεί και να αφαιρεθεί.
  • Συνεδρία Γνώσης – Αυτό το εξάρτημα περιέχει όλους τους πόρους που απαιτούνται για τον κανόνα πυροδότησης. Εδώ, όλα τα γεγονότα εισάγονται στη μεμονωμένη περίοδο λειτουργίας και, στη συνέχεια, ενεργοποιούνται οι κανόνες που ταιριάζουν.
  • Βάση Γνώσεων – Αντιπροσωπεύει τη γνώση στο οικοσύστημα Drools. Αποθηκεύει τον σχηματισμό των πόρων όπου βρίσκονται οι κανόνες.
  • Μονάδα μέτρησης – Αυτή είναι μια ενότητα που αποθηκεύει πολλαπλές βάσεις γνώσεων που μπορούν να πραγματοποιήσουν διαφορετικές συνεδρίες

Architecture of Drools

Drools Rule Engine Archiδομή
Drools Rule Engine Archiδομή

Εδώ είναι το σύστημα εργασίας της αρχιτεκτονικής Drools:

Βήμα 1) Οι κανόνες φορτώνονται στη Βάση κανόνων, η οποία είναι διαθέσιμη ανά πάσα στιγμή.

Βήμα 2) Τα γεγονότα καταγράφονται στη μνήμη εργασίας όπου μπορούν στη συνέχεια να τροποποιηθούν ή να ανακληθούν.

Βήμα 3) Η διαδικασία αντιστοίχισης των νέων ή των υπαρχόντων γεγονότων με τους κανόνες παραγωγής ονομάζεται αντιστοίχιση προτύπων, η οποία εκτελείται από τη μηχανή Κανόνων.

Βήμα 4) Η ατζέντα σάς επιτρέπει να διαχειριστείτε τη σειρά εκτέλεσης των αντικρουόμενων κανόνων με τη βοήθεια μιας στρατηγικής επίλυσης συγκρούσεων.

Χαρακτηριστικά του Drool

Ακολουθούν σημαντικά χαρακτηριστικά του Drool:

  • Σας βοηθά να διαχωρίσετε την εφαρμογή από τη δυναμική λογική
  • Δηλωτικός Προγραμματισμός
  • Συγκεντρωτισμός της Γνώσης
  • Ταχύτητα και επεκτασιμότητα
  • Διαχωρίστε τη λογική από την εφαρμογή
  • Κατανοητοί κανόνες

Πώς να προσθέσετε προσθήκες Drools Eclipse

Τώρα σε αυτό το σεμινάριο του Drools, ας μάθουμε πώς να προσθέσουμε την προσθήκη Drools Eclipse.

Βήμα 1) Κάντε κλικ στο "Distribution ZIP" για jBPM Integration
Πηγαίνετε στο https://www.drools.org/download/download.html και κάντε κλικ στο "Distribution ZIP" για jBPM Integration. Μετά τη λήψη, εξαγάγετε το στον σκληρό σας δίσκο.

Προσθέστε τα πρόσθετα Drools Eclipse

Βήμα 2) Εγκαταστήστε νέο λογισμικό
In Eclipse, επιλέξτε Εγκατάσταση νέου λογισμικού.

Προσθέστε τα πρόσθετα Drools Eclipse

Βήμα 3) Κάντε κλικ στο κουμπί Προσθήκη
Κάντε κλικ στο κουμπί Προσθήκη για να προσθέσετε ένα λογισμικό.

Προσθέστε τα πρόσθετα Drools Eclipse

Βήμα 4) Περιήγηση στο φάκελο
Στην επόμενη οθόνη, κάντε κλικ στο Local και επιλέξτε το φάκελο "org.drools.updatesite/" και μετά κάντε κλικ στο Ok.

Προσθέστε τα πρόσθετα Drools Eclipse

Βήμα 5) Κάντε κλικ στο κουμπί Επόμενο
Στη σελίδα αποκατάστασης εγκατάστασης, κάντε κλικ στο κουμπί Επόμενο.

Προσθέστε τα πρόσθετα Drools Eclipse

Βήμα 6) Αποδεχτείτε τη συμφωνία άδειας χρήσης
Αποδεχτείτε τη συμφωνία άδειας χρήσης και κάντε κλικ στο επόμενο.

Προσθέστε τα πρόσθετα Drools Eclipse

Βήμα 7) Επανεκκίνηση Eclipse
Θα γίνει λήψη του λογισμικού και θα σας ζητηθεί να επανεκκινήσετε το eclipse.

Βήμα 8) Η διαδικασία εγκατάστασης ολοκληρώθηκε
In Windows > Μενού Προτιμήσεις, θα δείτε την επιλογή Drools που υποδεικνύει ότι έχει εγκατασταθεί.

Προσθέστε τα πρόσθετα Drools Eclipse

Παράδειγμα προγράμματος Drools Hello World

Παρακάτω είναι ένα παράδειγμα Drools για το πρόγραμμα Hello World:

package com.sample
import com.sample.DroolsTest.Message;
rule "Hello World"
 when
	m : Message( status ** Message.Hello, myMessage : message )
  then
System.out.println( myMessage );
m.setMessage( "Goodbye cruel world" );
m.setStatus( Message.GOODBYE ); 
update( m );
end
 rule "GoodBye"

when
	Message( status ** Message.GOODBYE, myMessage : message )
then
System.out.println( myMessage );
end

Τι είναι η Αλυσίδα προς τα πίσω έναντι προς τα εμπρός;

Ένας κινητήρας με αλυσίδες προς τα εμπρός ελέγχει τα γεγονότα και εξάγει ένα συγκεκριμένο συμπέρασμα.

Ας εξετάσουμε ένα σενάριο του συστήματος ιατρικής διάγνωσης. Εάν τα συμπτώματα του ασθενούς τεθούν ως γεγονότα στην εργαζόμενη μνήμη, τότε είναι εύκολο να διαγνωστεί με πάθηση.

Αλυσίδα προς τα πίσω εναντίον προς τα εμπρός

Κινητήρας με αλυσίδα προς τα εμπρός

Ένας κινητήρας με αλυσίδα προς τα πίσω έχει τον καθορισμένο στόχο και ο κινητήρας προσπαθεί να τον ικανοποιήσει.

Εξετάστε το ίδιο σενάριο ιατρικής διάγνωσης. Ας υποθέσουμε ότι μια επιδημία μιας συγκεκριμένης ασθένειας. Αυτό το AI θα μπορούσε να υποθέσει ότι ένα συγκεκριμένο άτομο είχε τη νόσο και να προσπαθήσει να προσδιορίσει εάν η διάγνωσή του είναι σωστή με βάση τις διαθέσιμες πληροφορίες.

Αλυσίδα προς τα πίσω εναντίον προς τα εμπρός

Κινητήρας με αλυσίδα προς τα πίσω

Γιατί να χρησιμοποιήσετε το Drools Rule Engine;

Ακολουθούν οι κύριοι λόγοι για τη χρήση της μηχανής κανόνων Drools:

  • Οι κανόνες είναι εύκολο να κατανοηθούν από τους προγραμματιστές και επιχειρηματικοί αναλυτές.
  • Οι κανόνες διατηρούνται εύκολα.
  • Το Rule Engine χρησιμοποιεί έναν αλγόριθμο Rete που δηλώνει ότι η απόδοση του κινητήρα δεν εξαρτάται ποτέ από τον αριθμό των κανόνων.
  • Οι κανόνες μπορούν να τροποποιηθούν και να αναπτυχθούν χωρίς να καταργηθεί η εφαρμογή.
  • Εξωτερικεύει την επιχειρηματική λογική από τη συγκριτικά στατική βάση κωδικών.
  • Οι κανόνες αναπτύσσονται σε λιγότερο περίπλοκες μορφές, ώστε ο επιχειρηματικός αναλυτής να μπορεί εύκολα να διαβάσει και να επαληθεύσει μια ομάδα κανόνων.
  • Οι κανόνες σάς επιτρέπουν να δημιουργήσετε μια αποθήκη γνώσης που είναι εκτελέσιμη σε μορφή.
  • Εργαλεία όπως Eclipse σας βοηθά να διαχειριστείτε κανόνες, να λάβετε άμεση απάντηση, έλεγχο ταυτότητας και υποστήριξη περιεχομένου.

Μειονεκτήματα του Rules Engine

Ακολουθούν τα μειονεκτήματα/μειονεκτήματα της χρήσης της μηχανής κανόνων:

  • Απαιτείται μεγάλη προσπάθεια εκμάθησης από τους προγραμματιστές για να γνωρίζουν αυτήν τη μέθοδο προγραμματισμού
  • Η μηχανή κανόνων δεν είναι μια ασφαλής μέθοδος για την αντιμετώπιση προβλημάτων.
  • Πρέπει να κατανοήσει τη λειτουργία του κινητήρα κανόνων για να καταναλώνει περισσότερη μνήμη
  • Υπάρχει ένα ευρύ σύνολο κανόνων για μια σύνθετη διακλάδωση.

Οι κανόνες ενδέχεται να αλλάξουν με την πάροδο του χρόνου και θα τεθούν σε ισχύ με τις αλλαγές στον κώδικα

Σύνοψη

  • Το JBoss Drools είναι μια πλατφόρμα ενοποίησης Business Logic (BLiP)
  • Οι τύποι του εργαλείου Drool είναι: 1) Drools Guvnor 2) Drools Flow 3) Drools Fusion 4) Drools Expert 5) Drools, Planner.
  • Το Drool σάς βοηθά να διαχωρίσετε την εφαρμογή από τη δυναμική λογική.
  • Το Fact αντιπροσώπευε τα δεδομένα που χρησιμεύουν ως είσοδος για κανόνες.
  • Η μνήμη εργασίας είναι ένας χώρος αποθήκευσης με Facts, όπου χρησιμοποιούνται για την αντιστοίχιση προτύπων. Μπορεί να τροποποιηθεί, να εισαχθεί και να αφαιρεθεί.
  • Η βάση γνώσεων είναι ένα στοιχείο που περιέχει όλους τους πόρους που απαιτούνται για τον κανόνα πυροδότησης.
  • Η συνεδρία γνώσης αντιπροσωπεύει τη γνώση στο οικοσύστημα Drools.
  • Η βάση γνώσεων αντιπροσωπεύει τη γνώση στο οικοσύστημα Drools.
  • Το Module αποθηκεύει πολλαπλές βάσεις γνώσεων, οι οποίες μπορούν να πραγματοποιούν διαφορετικές συνεδρίες.
  • Οι κανόνες είναι μέρη της γνώσης που εκφράζονται συχνά ως: «Όταν προκύψουν συγκεκριμένες συνθήκες, τότε κάνε κάποιες εργασίες».
  • Το Drools είναι μια μηχανή κανόνων που χρησιμοποιεί μια προσέγγιση βασισμένη σε κανόνες για την εφαρμογή ενός συστήματος Expert.
  • Ένας κινητήρας με αλυσίδες προς τα εμπρός ελέγχει τα γεγονότα και εξάγει ένα συγκεκριμένο συμπέρασμα.
  • Ένας κινητήρας με αλυσίδα προς τα πίσω έχει τον καθορισμένο στόχο και ο κινητήρας προσπαθεί να τον ικανοποιήσει.
  • Ο αλγόριθμος Rete είναι ένας χρήσιμος αλγόριθμος αντιστοίχισης προτύπων που σας επιτρέπει να εφαρμόσετε συστήματα κανόνων παραγωγής.
  • Οι κανόνες είναι εύκολο να κατανοηθούν από προγραμματιστές και επιχειρηματικούς αναλυτές.
  • Το κύριο μειονέκτημα της χρήσης της μηχανής κανόνων όπως το Drool είναι ότι απαιτεί πολλή προσπάθεια εκμάθησης που απαιτείται από τους προγραμματιστές για να γνωρίζουν αυτήν τη μέθοδο προγραμματισμού.