Drools - Giriş

Kurumsal düzeyde herhangi bir Java uygulaması üç bölüme ayrılabilir -

  • UI - Kullanıcı Arayüzü (Ön Uç)
  • Bir veritabanına bağlı olan hizmet katmanı
  • İş katmanı

Kullanıcı arayüzü ve hizmet katmanını birlikte işleyen bir dizi çerçeveye sahibiz, örneğin, Yay ve Dikmeler. Yine de, Drools ortaya çıkana kadar iş mantığını idare etmenin standart bir yolunu bulamadık.

Drools nedir?

Drools bir Business Logic integration Platform (BLiP). Java ile yazılmıştır. JBoss ve Red Hat, Inc. tarafından desteklenen açık kaynaklı bir projedir. Rete Pattern eşleştirme algoritmasını genişletir ve uygular.

Layman'ın terimleriyle, Drools, iş süreçlerinde bulunan mantık ve verileri ayırmamıza ve bunlar üzerinde mantık yürütmemize izin veren bir araç koleksiyonudur. Fark etmemiz gereken iki önemli anahtar kelimeLogic ve Data.

Drools iki ana bölüme ayrılmıştır: Authoring ve Runtime.

  • Authoring - Yazma süreci, Kural dosyalarının (.DRL dosyaları) oluşturulmasını içerir.

  • Runtime - Çalışma belleğinin yaratılmasını ve aktivasyonun yapılmasını içerir.

Kural Motoru nedir?

Drools, bir Kural Motoru veya Uzman Sistemi uygulamak için kural tabanlı yaklaşımı kullanan bir Üretim Kuralı Sistemidir. Uzman Sistemler, edinilen bilgiyi muhakeme için kullanılabilecek bir bilgi tabanına işlemek için bilgi temsilini kullanan bilgiye dayalı sistemlerdir.

Bir Üretim Kuralı Sistemi, önerme ve birinci dereceden mantığı özlü, belirsiz olmayan ve bildirimsel bir şekilde ifade etmek için bilgi temsiline odaklanan eksiksiz bir Turing'dir.

Bir Üretim Kuralları Sisteminin beyni bir Inference Engineçok sayıda kurala ve gerçeğe ölçeklenebilen. Çıkarım Motoru, gerçekleri ve verileri Üretim Kurallarına göre eşleştirir - aynı zamandaProductions ya da sadece Rules - eylemlerle sonuçlanan sonuçlara varmak.

Üretim Kuralı, bilgi temsili üzerinde akıl yürütmek için birinci dereceden mantığı kullanan iki bölümlü bir yapıdır. İş kuralı motoru, çalışma zamanı üretim ortamında bir veya daha fazla iş kuralını yürüten bir yazılım sistemidir.

Bir Kural Motoru, "What to Do" ve yok "How to do it. "

Kural nedir?

Kurallar bilginin parçaları genellikle olarak ifade edilir " Ne zaman bazı koşullar gerçekleştiğinde, o zaman bazı görevleri yapar."

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

Bir Kuralın en önemli kısmı, whenBölüm. Eğerwhen Kısmen memnun, then parça tetiklendi.

rule  <rule_name>
   <attribute> <value>
      
   when
      <conditions>
      
   then
      <actions>
end

Desen Eşleştirme

Yeni veya mevcut gerçekleri Üretim Kurallarıyla eşleştirme sürecine, Çıkarım Motoru tarafından gerçekleştirilen Kalıp Eşleştirme adı verilir. Örüntü Eşleştirme için kullanılan birkaç algoritma vardır:

  • Linear
  • Rete
  • Treat
  • Leaps

Drools Rete Algoritmasını uygular ve genişletir. Drools Rete uygulaması, Drools'un nesne yönelimli sistemler için geliştirilmiş ve optimize edilmiş bir Rete algoritması uygulamasına sahip olduğunu belirten ReteOO olarak adlandırılır.

Bir Kural Motorunun Avantajları

Bildirime Dayalı Programlama

Kurallar, zor sorunlara çözüm ifade etmeyi ve aynı zamanda çözümlerin doğrulanmasını kolaylaştırır. Kodlardan farklı olarak, Kurallar daha az karmaşık bir dilde yazılır; İş Analistleri bir dizi kuralı kolayca okuyabilir ve doğrulayabilir.

Mantık ve Veri Ayrımı

Veriler Etki Alanı Nesnelerinde bulunur ve iş mantığı Kurallarda bulunur. Projenin türüne bağlı olarak, bu tür bir ayırma çok avantajlı olabilir.

Hız ve Ölçeklenebilirlik

Drools'un üzerine yazıldığı Rete OO algoritması zaten kanıtlanmış bir algoritmadır. Drools'un yardımıyla uygulamanız çok ölçeklenebilir hale gelir. Sık sık değişiklik talepleri varsa, mevcut kuralları değiştirmek zorunda kalmadan yeni kurallar eklenebilir.

Bilginin Merkezileştirilmesi

Kuralları kullanarak, çalıştırılabilir bir bilgi havuzu (bilgi tabanı) oluşturursunuz. İş politikası için tek bir doğruluk noktasıdır. İdeal olarak, Kurallar o kadar okunabilir ki, aynı zamanda belge işlevi görebilirler.

Araç Entegrasyonu

Eclipse gibi araçlar, kuralları düzenleme ve yönetme ve anında geri bildirim, doğrulama ve içerik yardımı alma yolları sağlar. Denetim ve hata ayıklama araçları da mevcuttur.