Drools Eğitimi: Drools Kural Motoru ArchiYapı ve Örnekler
Drool nedir?
salyalar açık kaynaklı bir İş Kuralları Yönetim Yazılımıdır (BRMS) Java kullanıcılara İş Kuralı Motoru, Web yazma, Kural Yönetimi Uygulaması gibi çeşitli özellikler ve Karar Modeli ve Gösterim modelleri için çalışma zamanı desteği sağlar. Rete desen eşleştirme algoritmasının gelişmiş uygulama sistemini kullanır.
Drools, Apache Lisansı 2.0 kapsamında yayımlanmıştır ve tüm JVM'lerle uyumludur ve ayrıca Maven Merkezi Deposu'nda da mevcuttur.
Drools aracı, iş süreçlerinde bulunan mantık ve verileri ayırmanıza ve bunlar üzerinde muhakeme yapmanıza yardımcı olur. İleri ve geri zincirleme çıkarım tabanlı saçmalama kuralları motorunu destekler.
Salyalar iki kısma ayrılır:
- Yazarlık – Kural dosyalarının geliştirilmesini içerir.
- Süre – Çalışma belleğinin oluşturulmasını ve aktivasyonun ele alınmasını içerir.
Kural Nedir?
Kurallar genellikle "Belirli koşullar oluştuğunda bazı görevleri yapın" şeklinde ifade edilen bilgi parçalarıdır.
Bir kuralın en önemli kısmı, ne zaman parça. Bir kere ne zaman kısmı memnun, sonra parça tetiklenir.
Sözdizimi:
When <Condition is true> Then <Take desired Action>
Desen Eşleştirme Yöntemi
Desen eşleştirme yöntemi, yeni veya eski gerçekleri üretim kurallarıyla karşılaştırmanıza yardımcı olur. Çıkarım Motoru tarafından tamamlanır.
Algorithms Desen Eşleştirme için kullanılanlar şunlardır:
- Rete Algoritması
- Sıçrama Algoritması
- Doğrusal Algoritma
- Tedavi Algoritması
Ancak Drools'un en çok kullandığı algoritma Rete Algoritması'dır.
Rete Algoritması
Rete algoritması, üretim kural sistemlerini uygulamanıza olanak tanıyan kullanışlı bir kalıp eşleştirme algoritmasıdır. Artan hız için hafızadan ödün vermenize yardımcı olur. Ayrıca, düğüm paylaşımının yardımıyla belirli artıklık türlerini azaltır veya ortadan kaldırır. Farklı olgu türleri arasında birleştirme gerçekleştirirken kısmi eşleşmeleri saklar.
Drools Kural Motoru
Drools Kural Motoru Drools yazılımında bir Uzman sistemi uygulamaya yönelik kural tabanlı bir yaklaşımdır. Kural motoru, ne yapacağınız ve nasıl yapacağınız gibi kararlar vermenize yardımcı olan, bilgiye dayalı sistemler olan Uzman sistemler sağlar. Bilgiyi muhakeme için kullanılabilecek bir bilgi tabanında toplar.
Drools Araçlar Paketi
Şimdi bu Drools Rule Engine eğitiminde Drools Tool Suite'i öğreneceğiz. Drools paketinin bir parçası olarak gelen beş tür araç şunlardır:
- salyalar akıyor Şef: Drools KnowledgeBase için merkezi bir depodur.
- Salya Akışı: İş akışı ve iş süreçleri sunar.
- Salya Füzyonu: Karmaşık olay işleme için kullanılan araç
- Drools Expert veya Kural Motoru: Akıl yürütmeyi gerçekleştirmek için yararlı bir araç.
- Salya Planlayıcısı: NP-zor planlama problemlerini içeren otomatik planlama sunmak.
Drools'taki önemli bileşenler
Şimdi bu Drools eğitiminde Drools'un önemli bileşenlerini öğrenelim.
Drools'da kullanılan temel terimler şunlardır:
- Gerçekler – Gerçekler, kurallara girdi görevi gören verileri temsil eder
- Bellek Çalışma – Desen eşleştirme için kullanıldıkları Gerçeklerle Depolama. Değiştirilebilir, eklenebilir ve kaldırılabilir.
- Bilgi Oturumu – Bu bileşen, tetikleme kuralı için gereken tüm kaynakları içerir. Burada tüm veriler tek bir oturuma eklenir ve ardından eşleşen kurallar tetiklenir.
- Bilgi tabanı – Drools ekosistemindeki bilgiyi temsil eder. Kuralların bulunduğu kaynakların oluşumunu depolar.
- modül – Bu, farklı oturumlar düzenleyebilecek birden fazla Bilgi Tabanını saklayan bir modüldür
ArchiDrools'un yapısı
Drools mimarisinin çalışma sistemi şu şekildedir:
) 1 Adım Kurallar, her zaman kullanılabilen Kural Tabanına yüklenir.
) 2 Adım Gerçekler, daha sonra değiştirilebilecekleri veya geri çekilebilecekleri Çalışma Belleğine aktarılır.
) 3 Adım Yeni veya mevcut gerçekleri üretim kurallarıyla eşleştirme sürecine, Kural motoru tarafından gerçekleştirilen model eşleştirme adı verilir.
) 4 Adım Gündem, bir çatışma çözme stratejisinin yardımıyla çelişen kuralların uygulanma sırasını yönetmenize olanak tanır.
Drool'un Özellikleri
Drool'un önemli özellikleri şunlardır:
- Uygulamayı dinamik mantıktan ayırmanıza yardımcı olur
- Bildirimsel Programlama
- Bilginin Merkezileştirilmesi
- Hız ve Ölçeklenebilirlik
- Mantığı uygulamadan ayırın
- Anlaşılabilir kurallar
Drools eklentileri nasıl eklenir? Eclipse
Şimdi bu Drools eğitiminde, Drools eklentisini nasıl ekleyeceğimizi öğrenelim Eclipse.
) 1 Adım jBPM Entegrasyonu için “Dağıtım ZIP”ine tıklayın
MyCAD'de yazılım Güncelleme ye git https://www.drools.org/download/download.html ve jBPM Entegrasyonu için “Dağıtım ZIP”ine tıklayın. İndirdikten sonra sabit sürücünüze çıkarın.
) 2 Adım Yeni Yazılım Yükle
In Eclipse, Yeni Yazılım Yükle'yi seçin.
) 3 Adım Ekle düğmesine tıklayın
Bir yazılım eklemek için Ekle düğmesine tıklayın.
) 4 Adım Klasöre Gözat
Bir sonraki ekranda Yerel'e tıklayın ve “org.drools.updatesite/” klasörünü seçin ve ardından Tamam'a tıklayın.
) 5 Adım İleri düğmesine tıklayın
Kurulum düzeltme sayfasında İleri düğmesine tıklayın.
) 6 Adım Lisans sözleşmesini kabul edin
Lisans sözleşmesini kabul edin ve ileri'ye tıklayın.
) 7 Adım Reboot Eclipse
Yazılım indirilecek ve Eclipse'i yeniden başlatmanız istenecek.
) 8 Adım Kurulum işlemi tamamlandı
In Windows > Tercihler menüsünde, kurulu olduğunu belirten Drools seçeneğini göreceksiniz.
Drools Programı Merhaba Dünya Örneği
Aşağıda Merhaba Dünya programı için bir Drools örneği verilmiştir:
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
Geriye ve İleriye Zincirleme Nedir?
İleri zincirleme motor, gerçekleri kontrol eder ve belirli bir sonuca varır.
Tıbbi teşhis sisteminin bir senaryosunu ele alalım. Eğer hastanın semptomları çalışan hafızaya gerçekler olarak yerleştirilirse, o zaman ona bir hastalık tanısı koymak kolaydır.
Geriye zincirleme motorun belirlenmiş bir hedefi vardır ve motor bu hedefi karşılamaya çalışır.
Aynı tıbbi teşhis senaryosunu düşünün. Belirli bir hastalığın salgını olduğunu varsayalım. Bu yapay zeka, belirli bir kişinin hastalığa sahip olduğunu varsayabilir ve mevcut bilgilere dayanarak teşhisinin doğru olup olmadığını belirlemeye çalışabilir.
Neden Drools Kural Motorunu kullanmalısınız?
Drools kural motorunu kullanmanın başlıca nedenleri şunlardır:
- Kuralların geliştiriciler için anlaşılması kolaydır ve iş analistleri.
- Kurallar kolaylıkla korunabilir.
- Kural Motoru, motorun performansının hiçbir zaman kural sayısına bağlı olmadığını belirten bir Rete algoritması kullanır.
- Kurallar, uygulamayı kapatmadan değiştirilebilir ve dağıtılabilir.
- İş mantığını nispeten statik kod tabanından dışsallaştırır.
- Kurallar daha az karmaşık formatlarda geliştirilir, böylece iş analisti bir grup kuralı kolayca okuyabilir ve doğrulayabilir.
- Kurallar, formda yürütülebilir bir bilgi deposu oluşturmanıza olanak tanır.
- Gibi araçlar Eclipse kuralları yönetmenize, anında yanıt almanıza, kimlik doğrulama ve içerik desteği almanıza yardımcı olur.
Kural Motorunun Dezavantajları
Kural motorunu kullanmanın dezavantajları/eksileri şunlardır:
- Geliştiricilerin bu programlama yöntemini bilmesi çok fazla öğrenme çabası gerektirir
- Kural motoru sorunları gidermek için güvenli bir yöntem değildir.
- Daha fazla bellek tüketmek için kural motorunun çalışmasını anlaması gerekiyor
- Karmaşık bir dallanma için geniş bir kurallar kümesi vardır.
Kurallar zamanla değişebilir ve kod değişiklikleriyle geçerlilik kazanır
ÖZET
- JBoss Drools bir İş Mantığı entegrasyon Platformudur (BLiP)
- Drool aracının türleri şunlardır: 1) Drools Guvnor 2) Drools Flow 3) Drools Fusion 4) Drools Expert 5) Drools, Planner.
- Drool, uygulamayı dinamik mantıktan ayırmanıza yardımcı olur.
- Gerçek, kurallara girdi görevi gören verileri temsil etmektedir.
- Çalışma belleği, gerçeklerin kalıp eşleştirme için kullanıldığı bir depodur. Değiştirilebilir, eklenebilir ve kaldırılabilir.
- Bilgi tabanı, kuralın tetiklenmesi için gerekli tüm kaynakları barındıran bir bileşendir.
- Bilgi oturumu Drools ekosistemindeki bilgiyi temsil eder.
- Bilgi tabanı Drools ekosistemindeki bilgiyi temsil eder.
- Modül, farklı oturumları tutabilen birden fazla bilgi tabanını saklar.
- Kurallar genellikle "Belirli koşullar oluştuğunda bazı görevleri yapın" şeklinde ifade edilen bilgi parçalarıdır.
- Drools, bir Uzman sistemi uygulamak için kural tabanlı bir yaklaşım kullanan bir kural motorudur.
- İleri zincirleme motor, gerçekleri kontrol eder ve belirli bir sonuca varır.
- Geriye zincirleme motorun belirlenmiş bir hedefi vardır ve motor bu hedefi karşılamaya çalışır.
- Rete algoritması, üretim kural sistemlerini uygulamanıza olanak tanıyan kullanışlı bir kalıp eşleştirme algoritmasıdır.
- Kuralların geliştiriciler ve iş analistleri için anlaşılması kolaydır.
- Drool gibi kural motorunu kullanmanın en büyük dezavantajı, geliştiricilerin bu programlama yöntemini bilmesi için çok fazla öğrenme çabası gerektirmesidir.