Εκμάθηση Drools: Μηχανή Κανόνων Archiδομή & διάγραμμα

⚡ Έξυπνη Σύνοψη

Το Drools είναι ένα σύστημα διαχείρισης επιχειρηματικών κανόνων ανοιχτού κώδικα, γραμμένο σε Java που διαχωρίζει την επιχειρηματική λογική από τον κώδικα εφαρμογής. Αυτός ο πόρος εξηγεί τους κανόνες, τον αλγόριθμο Rete, την αρχιτεκτονική και τα στοιχεία του Drools, Eclipse ρύθμιση πρόσθετου και ένα παράδειγμα κανόνα Hello World.

  • ⚙️ Βασικός Ορισμός: Τα σάλια είναι ένα JavaBRMS βασισμένο σε - που εκτελεί επιχειρηματικούς κανόνες χρησιμοποιώντας τον αλγόριθμο αντιστοίχισης προτύπων Rete.
  • 📜 Δομή Κανόνων: Ένας κανόνας ακολουθεί τη μορφή πότε-τότε, ενεργοποιώντας ενέργειες μόνο όταν οι συνθήκες του ταιριάζουν με τα γεγονότα στη μνήμη εργασίας.
  • Archiδομή: Οι κανόνες φορτώνονται σε μια βάση κανόνων, τα δεδομένα εισέρχονται στη μνήμη εργασίας και η μηχανή τα αντιστοιχίζει και τα ενεργοποιεί μέσω μιας ατζέντας.
  • 🔌 Eclipse Ρύθμιση: Το πρόσθετο Drools εγκαθίσταται σε Eclipse μέσω του ZIP διανομής jBPM και του παραθύρου διαλόγου Εγκατάσταση νέου λογισμικού.
  • 🔄 Λειτουργίες αλυσιδωτής σύνδεσης: Το Drools υποστηρίζει την αλυσιδωτή σύνδεση από γεγονότα σε συμπεράσματα και την αντίστροφη αλυσιδωτή σύνδεση από έναν στόχο πίσω στα γεγονότα.

Εκμάθηση για τα σάλια

Τι είναι το 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) Τα γεγονότα καταγράφονται στη μνήμη εργασίας, όπου μπορούν στη συνέχεια να τροποποιηθούν ή να αναδιαμορφωθούν.tracξυραίνω χόρτα.

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

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

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

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

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

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

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

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

Προσθέστε τα πρόσθετα 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

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

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

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

Συχνές Ερωτήσεις

Ναι. Το Drools κυκλοφορεί με την Άδεια Apache 2.0 και είναι εντελώς δωρεάν και ανοιχτού κώδικα. Εκτελείται σε οποιαδήποτε JVM και είναι διαθέσιμο μέσω του Maven Central Repository για εύκολη ενσωμάτωση σε έργα.

Οι κανόνες του Drools είναι γραμμένοι σε DRL (Drools Rule Language), μια δηλωτική σύνταξη που βασίζεται στη δομή when-then. Οι κανόνες μπορούν επίσης να συνταχθούν χρησιμοποιώντας πίνακες αποφάσεων, μοντέλα DMN ή γλώσσες που αφορούν συγκεκριμένους τομείς για επιχειρηματικούς χρήστες.

Μια μηχανή κανόνων εξωτερικεύει τη λογική σε διατηρήσιμους κανόνες που αλλάζουν χωρίς να χρειάζεται να αναδιαμορφωθεί η εφαρμογή. Η σκληρά κωδικοποιημένη λογική if-else είναι διάσπαρτη σε όλη τη βάση κώδικα, είναι πιο δύσκολο να ενημερωθεί και δεν κλιμακώνεται καλά καθώς αυξάνεται ο αριθμός των συνθηκών.

Το Drools υλοποιεί συστήματα εμπειρογνωμόνων, έναν κλασικό κλάδο της Τεχνητής Νοημοσύνης, κωδικοποιώντας την ανθρώπινη γνώση ως κανόνες. Η μηχανή συλλογίζεται γεγονότα για να καταλήξει σε συμπεράσματα, υποστηρίζοντας αλυσιδωτή σύνδεση προς τα εμπρός και προς τα πίσω παρόμοια με τα συμβολικά συστήματα αποφάσεων της Τεχνητής Νοημοσύνης.

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

Συνοψίστε αυτήν την ανάρτηση με: