بخش های اصلی

آموزش Drools

مقدمه Drools

هر سطح از اطلاعات نرم افزار جاوا به سه بخش زیر تقسیم میشه:

  • UI– رابط کاربری (frontend (سمت کاربر))
  • لایه ی خدمات (Service)، که به نوبه ی خود به یک پایگاه داده متصله.
  • لایه ی کاری (Business)

چندین فریم‌ وُرک هستن که به هر دو لایه‌ی خدمات و رابط کاربری با هم رسیدگی می‌کنن، برای مثال ، Spring and Struts. تا قبل از این‌که Drools به وجود بیاد، هیچ راه استانداردی برای رسیدگی به لایه‌ی منطقِ کاری (business logic) نبود.

Drools چیست ؟

Drools یک پلت‌ فرم مجتمع منطقیِ کاریه (BliP). این پلت فرم به زبان جاوا نوشته شده و یک پروژه‌ی سورس‌بازِه که توسط شرکت Jboss و Red Hat پشتیبانی و حمایت میشه. این پلت‌فرم الگوریتم تطابق الگوی رِت (Rete Pattern matching algorithm) را بوجود آورد و پیاده‌سازی کرد.

به‌ عبارت دیگر، Drools مجموعه‌ ابزاریست که منطق و داده‌های یافت شده در فرآیند‌های کاری را جدا و استدلال می‌کنه. دو کلمه‌ی کلیدی مهم که باید به خاطر بسپاریم، منطق (Logic) و داده (Data) هستن.

Drools به دو بخش مهم تقسیم میشه: اعتبارسنجی (Authoring) و زمان اجرا (Runtime).

  • اعتبارسنجی (Authoring): فرآیند اعتبارسنجی شامل ایجاد فایل‌هایی از ruleها (قوانین) میشه (فایل‌های .DRL)
  • زمان اجرا (RunTime): زمان اجرا شامل ایجاد حافظه‌ی کاری و رسیدگی به فعال‌سازی میشه.

موتورِ rule (قانون) چیه؟

Drools یک موتورِ rule یا یک سیستم تولید rule است که از روش های مبتنی بر rule برای پیاده سازی و سیستم های حرفه ای استفاده میکنه. سیستم های حرفه ای، سیستم هایی مبتنی بر دانش اند که از ارائه ی دانش برای تبدیلِ دانش بدست آمده به دانش مبتنی بر چیزی که می تواند برای استدلال استفاده بشه، استفاده می کنن.

سیستم تولیدِ rule (قانون) ، یک تورینگِ کاملِه به همراه تمرکز بر ارائه ی دانش، جهت بیانِ منطق گزاره ای و منطق first-order، به شیوه ای مختصر، بدون ابهام و بصورت علنی.

مغزِ سیستم تولید ruleها ، یه موتور استنتاجه که میتواند به اندازه ی تعداد زیادی از ruleها و factها (واقعیت ها)، مقیاس پذیر باشه. موتور استنتاج، factها و داده ها را با ruleهای تولیدی هماهنگ می کنه- به آن تولیدات یا ruleها هم می گن- تا به نتیجه گیری ای دست پیدا کنه که در اعمال و اقدامات، نمود پیدا میکنه.

یک rule تولیدی، دارای ساختاری دو بخشی است و از منطق first-order برای استدلال در ارائه های دانش استفاده می کنه.

موتور rule، به شما امکان تعریف این که "چه کاری انجام بشه" رو میده نه "چطور انجام بشه".

rule چیه؟

Rule ها، قسمت هایی از دانش اند که اغلب به عنوانِ "زمانی که شرایطی خاص پیش آمد، این کارها را انجام بده"، بیان میشن.

When
    
Then
    

مهم ترین بخش ruleها (قوانین) قسمت when (زمانی که) است. اگر این قسمت درست باشه، قسمتِ then (پس)، اجرا میشه.

rule  
       
      
      when
         
      
      then
         
end

 تطابق الگو

فرآیند تطابقِ factهای (واقعیت های) جدید یا factهای (واقعیت های) موجود با ruleها (قوانین) تولید شده، تطابق الگو نامیده میشه، که توسط موتور استنتاج انجام میشه. تعدادی الگوریتم هست که برای تطابق الگو استفاده میشن:

  • Linear
  • Rete
  • Treat
  • Leaps

Drools الگوریتم Rete را پیاده سازی کرده و گسترش داده. پیاده سازیِ Rete توسط Drools، ReteOO نامیده میشه، و نشان دهنده ی اینه که Drools، ارتقاء یافته و پیاده سازی الگوریتم Rete برای سیستم های مبتنی بر شیء، بهینه شده.

مزایای موتور rule (قانون)

برنامه نویسی علنی

ruleها (قوانین)، بیان راه حل ها، برای مسائل سخت و بدست آوردن راه حل های معتبر را راحت می کنن. برعکس کدها، زبانی که ruleها (قانون ها) با آن نوشته میشن، پیچیدگی کمتری داره؛ تحلیلگرانِ کاری، می توانند به راحتی آن را بخوانند و مجموعه ای از ruleها (قوانین) را بررسی کنن.

جداسازیِ منطق و داده

داده ها در دامنه ی اشیاء قرار میگیرن و ruleهای (قوانین) کاری، در ruleها (قوانین). بسته به نوع پروژه، این نوع جداسازی میتواند بسیار مفید باشه.

سرعت و مقیاس پذیری

الگوریتم Rete OO، در Droolsای نوشته شده که یک الگوریتم از پیش اثبات شده ست. به کمک Drools، نرم افزارتان بسیار مقیاس پزیر میشه. اگه درخواست های تغییر زیادی وجود داشته باشه، می توانیم بدون این که مجبور باشیم ruleهای (قوانین) موجود را تغییر بدیم، فقط ruleهای (قوانین) جدید را تغییر بدیم.

تمرکز بر دانش

با استفاده از ruleها (قوانین)، مخزنی از دانش ها (مبتنی بر دانش) که قابل اجراست، ایجاد کرده اید. این یکی از factهای (واقعیت های) سیاست کاریِه. بصورت ایده آل، ruleها (قوانین) کاملاً قابل خواندن اند و می توانند بعنوان اسناد نیز استفاده بشن.

ابزار مجتمع (Integration)

ابزارهایی مثل Eclipse راه هایی برای ویرایش و مدیریت ruleها (قوانین) و گرفتن بازخوردِ سریع، اعتبارسنجی و کمک به محتوا، فراهم کرده. در Eclipse ابزارهای رسیدگی و اشکال زدایی هم موجودند.

مبحث آموزشی

آموزش Drools

Learn Drools

پرســیدن سؤال جدید

سؤال های تخصصی خود را از ما بپرسید

تبلیغات

دنبال کردن تلگرام کانال سافت اسکیل

https://telegram.me/softskill_ir

عملیات کاربران

خبـرنــامه

Newsletters

در خبــرنـامه سافت اسکیل عضو شویــد تا جدیدترین هـای سایت را بلافاصله در ایمیل خـود دریافت کنیـد